From 803d9528fb9cff3f229f8ccc35dfca78364f7479 Mon Sep 17 00:00:00 2001 From: antazoey Date: Tue, 26 Sep 2023 14:19:47 -0500 Subject: [PATCH 01/22] refactor: move transaction convert methods to conversion manager [APE-1416] (#1676) --- setup.cfg | 1 + src/ape/api/address.py | 3 +- src/ape/api/networks.py | 4 +- src/ape/api/projects.py | 4 +- src/ape/api/providers.py | 2 +- src/ape/api/query.py | 2 +- src/ape/api/transactions.py | 2 +- src/ape/contracts/base.py | 52 ++++++++--------- src/ape/managers/chain.py | 10 ++-- src/ape/managers/config.py | 37 +++++++++--- src/ape/managers/converters.py | 40 ++++++++++--- src/ape/managers/project/dependency.py | 2 +- src/ape/managers/project/manager.py | 13 +++-- src/ape/managers/project/types.py | 2 +- src/ape/types/__init__.py | 16 +++--- src/ape/types/signatures.py | 5 +- src/ape/utils/abi.py | 57 ++++--------------- src/ape/utils/basemodel.py | 32 ++--------- src/ape/utils/misc.py | 9 ++- src/ape_ethereum/ecosystem.py | 53 ++++++++--------- src/ape_ethereum/proxies.py | 4 +- src/ape_ethereum/transactions.py | 5 +- src/ape_geth/provider.py | 10 ++-- src/ape_test/__init__.py | 7 +-- src/ape_test/provider.py | 14 ++--- tests/functional/conftest.py | 6 +- .../conversion/test_encode_structs.py | 4 +- tests/functional/geth/conftest.py | 2 +- tests/functional/test_accounts.py | 10 ++-- tests/functional/test_config.py | 18 ++++-- tests/functional/test_contract_event.py | 2 +- tests/functional/test_coverage.py | 2 +- tests/functional/test_ecosystem.py | 3 +- tests/functional/test_project.py | 8 ++- tests/functional/test_types.py | 4 +- 35 files changed, 220 insertions(+), 225 deletions(-) diff --git a/setup.cfg b/setup.cfg index 6492cbd8be..664d5c307e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -5,6 +5,7 @@ exclude = docs build .eggs + tests/integration/cli/projects per-file-ignores = # Need signal handler before imports src/ape/__init__.py: E402 diff --git a/src/ape/api/address.py b/src/ape/api/address.py index ae4e460e3b..9a14195bac 100644 --- a/src/ape/api/address.py +++ b/src/ape/api/address.py @@ -5,7 +5,6 @@ from ape.exceptions import ConversionError from ape.types import AddressType, ContractCode from ape.utils import BaseInterface, abstractmethod, cached_property -from ape.utils.abi import _convert_kwargs if TYPE_CHECKING: from ape.api.transactions import ReceiptAPI, TransactionAPI @@ -167,7 +166,7 @@ def history(self) -> "AccountHistory": return self.chain_manager.history[self.address] def as_transaction(self, **kwargs) -> "TransactionAPI": - converted_kwargs = _convert_kwargs(kwargs, self.conversion_manager.convert) + converted_kwargs = self.conversion_manager.convert_method_kwargs(kwargs) return self.provider.network.ecosystem.create_transaction( receiver=self.address, **converted_kwargs ) diff --git a/src/ape/api/networks.py b/src/ape/api/networks.py index e78d614922..afcb5232e7 100644 --- a/src/ape/api/networks.py +++ b/src/ape/api/networks.py @@ -115,7 +115,7 @@ def encode_contract_blueprint( # type: ignore[empty-body] or Starknet's ``Declare`` transaction type. Args: - contract (``ContractType``): The type of contract to create a blueprint for. + contract_type (``ContractType``): The type of contract to create a blueprint for. This is the type of contract that will get created by factory contracts. *args: Calldata, if applicable. **kwargs: Transaction specifications, such as ``value``. @@ -686,7 +686,7 @@ def create_adhoc_network(cls) -> "NetworkAPI": return cls( name="adhoc", ecosystem=ethereum, - data_folder=data_folder, + data_folder=Path(data_folder), request_header=request_header, _default_provider="geth", ) diff --git a/src/ape/api/projects.py b/src/ape/api/projects.py index 9c6b99cb45..f41524858b 100644 --- a/src/ape/api/projects.py +++ b/src/ape/api/projects.py @@ -6,7 +6,7 @@ from ethpm_types import Checksum, ContractType, PackageManifest, Source from ethpm_types.manifest import PackageName -from ethpm_types.utils import AnyUrl, compute_checksum +from ethpm_types.utils import Algorithm, AnyUrl, compute_checksum from packaging.version import InvalidVersion, Version from pydantic import ValidationError @@ -210,7 +210,7 @@ def _create_source_dict( source_dict[key] = Source( checksum=Checksum( - algorithm="md5", + algorithm=Algorithm.MD5, hash=compute_checksum(source_path.read_bytes()), ), urls=[], diff --git a/src/ape/api/providers.py b/src/ape/api/providers.py index 21b251e743..57abd9d6e9 100644 --- a/src/ape/api/providers.py +++ b/src/ape/api/providers.py @@ -104,7 +104,7 @@ def convert_parent_hash(cls, data): @validator("hash", "parent_hash", pre=True) def validate_hexbytes(cls, value): # NOTE: pydantic treats these values as bytes and throws an error - if value and not isinstance(value, HexBytes): + if value and not isinstance(value, bytes): return HexBytes(value) return value diff --git a/src/ape/api/query.py b/src/ape/api/query.py index d9f9272764..19e1a98de5 100644 --- a/src/ape/api/query.py +++ b/src/ape/api/query.py @@ -94,7 +94,7 @@ def extract_fields(item, columns): class _BaseQuery(BaseModel): - columns: List[str] + columns: Sequence[str] # TODO: Support "*" from getting the EcosystemAPI fields diff --git a/src/ape/api/transactions.py b/src/ape/api/transactions.py index 2b85df8d2e..eac25a2db9 100644 --- a/src/ape/api/transactions.py +++ b/src/ape/api/transactions.py @@ -118,7 +118,7 @@ def total_transfer_value(self) -> int: to submit the transaction. """ if self.max_fee is None: - raise TransactionError("Max fee must not be null.") + raise TransactionError("`self.max_fee` must not be None.") return self.value + self.max_fee diff --git a/src/ape/contracts/base.py b/src/ape/contracts/base.py index 1a1462c9bc..d9f4c04ae8 100644 --- a/src/ape/contracts/base.py +++ b/src/ape/contracts/base.py @@ -25,7 +25,7 @@ from ape.logging import logger from ape.types import AddressType, ContractLog, LogFilter, MockContractLog from ape.utils import ManagerAccessMixin, cached_property, singledispatchmethod -from ape.utils.abi import StructParser, _convert_args, _convert_kwargs +from ape.utils.abi import StructParser class ContractConstructor(ManagerAccessMixin): @@ -54,10 +54,10 @@ def decode_input(self, calldata: bytes) -> Tuple[str, Dict[str, Any]]: return self.abi.selector, decoded_inputs def serialize_transaction(self, *args, **kwargs) -> TransactionAPI: - arguments = _convert_args(args, self.conversion_manager.convert, self.abi) - kwargs = _convert_kwargs(kwargs, self.conversion_manager.convert) + arguments = self.conversion_manager.convert_method_args(self.abi, args) + converted_kwargs = self.conversion_manager.convert_method_kwargs(kwargs) return self.provider.network.ecosystem.encode_deployment( - self.deployment_bytecode, self.abi, *arguments, **kwargs + self.deployment_bytecode, self.abi, *arguments, **converted_kwargs ) def __call__(self, private: bool = False, *args, **kwargs) -> ReceiptAPI: @@ -86,9 +86,9 @@ def __repr__(self) -> str: return self.abi.signature def serialize_transaction(self, *args, **kwargs) -> TransactionAPI: - kwargs = _convert_kwargs(kwargs, self.conversion_manager.convert) + converted_kwargs = self.conversion_manager.convert_method_kwargs(kwargs) return self.provider.network.ecosystem.encode_transaction( - self.address, self.abi, *args, **kwargs + self.address, self.abi, *args, **converted_kwargs ) def __call__(self, *args, **kwargs) -> Any: @@ -130,9 +130,9 @@ def __str__(self) -> str: def encode_input(self, *args) -> HexBytes: selected_abi = _select_method_abi(self.abis, args) - args = self._convert_tuple(args, selected_abi) + arguments = self.conversion_manager.convert_method_args(selected_abi, args) ecosystem = self.provider.network.ecosystem - encoded_calldata = ecosystem.encode_calldata(selected_abi, *args) + encoded_calldata = ecosystem.encode_calldata(selected_abi, *arguments) method_id = ecosystem.get_method_selector(selected_abi) return HexBytes(method_id + encoded_calldata) @@ -179,9 +179,6 @@ def decode_input(self, calldata: bytes) -> Tuple[str, Dict[str, Any]]: raise err - def _convert_tuple(self, v: tuple, abi) -> tuple: - return _convert_args(v, self.conversion_manager.convert, abi) - class ContractCallHandler(ContractMethodHandler): def __call__(self, *args, **kwargs) -> Any: @@ -190,12 +187,12 @@ def __call__(self, *args, **kwargs) -> Any: raise _get_non_contract_error(self.contract.address, network) selected_abi = _select_method_abi(self.abis, args) - args = self._convert_tuple(args, selected_abi) + arguments = self.conversion_manager.convert_method_args(selected_abi, args) return ContractCall( abi=selected_abi, address=self.contract.address, - )(*args, **kwargs) + )(*arguments, **kwargs) def as_transaction(self, *args, **kwargs): """ @@ -236,7 +233,7 @@ def estimate_gas_cost(self, *args, **kwargs) -> int: """ selected_abi = _select_method_abi(self.abis, args) - arguments = _convert_args(args, self.conversion_manager.convert, selected_abi) + arguments = self.conversion_manager.convert_method_args(selected_abi, args) return self.transact.estimate_gas_cost(*arguments, **kwargs) @@ -271,10 +268,10 @@ def serialize_transaction(self, *args, **kwargs) -> TransactionAPI: # Automatically impersonate contracts (if API available) when sender kwargs["sender"] = self.account_manager.test_accounts[kwargs["sender"].address] - arguments = _convert_args(args, self.conversion_manager.convert, self.abi) - kwargs = _convert_kwargs(kwargs, self.conversion_manager.convert) + arguments = self.conversion_manager.convert_method_args(self.abi, args) + converted_kwargs = self.conversion_manager.convert_method_kwargs(kwargs) return self.provider.network.ecosystem.encode_transaction( - self.address, self.abi, *arguments, **kwargs + self.address, self.abi, *arguments, **converted_kwargs ) def __call__(self, *args, **kwargs) -> ReceiptAPI: @@ -328,7 +325,7 @@ def estimate_gas_cost(self, *args, **kwargs) -> int: reported in the fee-currency's smallest unit, e.g. Wei. """ selected_abi = _select_method_abi(self.abis, args) - arguments = _convert_args(args, self.conversion_manager.convert, selected_abi) + arguments = self.conversion_manager.convert_method_args(selected_abi, args) txn = self.as_transaction(*arguments, **kwargs) return self.provider.estimate_gas_cost(txn) @@ -356,7 +353,6 @@ def _as_transaction(self, *args) -> ContractTransaction: raise _get_non_contract_error(self.contract.address, network) selected_abi = _select_method_abi(self.abis, args) - args = self._convert_tuple(args, selected_abi) return ContractTransaction( abi=selected_abi, @@ -500,7 +496,7 @@ def __call__(self, *args: Any, **kwargs: Any) -> MockContractLog: else: converted_args[key] = self.conversion_manager.convert(value, py_type) - properties = {"event_arguments": converted_args, "event_name": self.abi.name} + properties: Dict = {"event_arguments": converted_args, "event_name": self.abi.name} if hasattr(self.contract, "address"): # Only address if this is off an instance. properties["contract_address"] = self.contract.address @@ -551,7 +547,7 @@ def query( if columns[0] == "*": columns = list(ContractLog.__fields__) # type: ignore - query = { + query: Dict = { "columns": columns, "event": self.abi, "start_block": start_block, @@ -595,7 +591,7 @@ def range( Iterator[:class:`~ape.contracts.base.ContractLog`] """ - if not hasattr(self.contract, "address"): + if not (contract_address := getattr(self.contract, "address", None)): return start_block = None @@ -604,16 +600,16 @@ def range( if stop is None: contract = None try: - contract = self.chain_manager.contracts.instance_at(self.contract.address) + contract = self.chain_manager.contracts.instance_at(contract_address) except Exception: pass if contract: start_block = contract.receipt.block_number else: - start_block = self.chain_manager.contracts.get_creation_receipt( - self.contract.address - ).block_number + cache = self.chain_manager.contracts + receipt = cache.get_creation_receipt(contract_address) + start_block = receipt.block_number stop_block = start_or_stop elif start_or_stop is not None and stop is not None: @@ -622,7 +618,7 @@ def range( stop_block = min(stop_block, self.chain_manager.blocks.height) - addresses = set([self.contract.address] + (extra_addresses or [])) + addresses = list(set([contract_address] + (extra_addresses or []))) contract_event_query = ContractEventQuery( columns=list(ContractLog.__fields__.keys()), contract=addresses, @@ -1144,7 +1140,7 @@ def __getattr__(self, attr_name: str) -> Any: if attr_name in set(super(BaseAddress, self).__dir__()): return super(BaseAddress, self).__getattribute__(attr_name) - if attr_name not in { + elif attr_name not in { *self._view_methods_, *self._mutable_methods_, *self._events_, diff --git a/src/ape/managers/chain.py b/src/ape/managers/chain.py index 09a8d437a8..537aaafc83 100644 --- a/src/ape/managers/chain.py +++ b/src/ape/managers/chain.py @@ -113,7 +113,7 @@ def __iter__(self) -> Iterator[BlockAPI]: def query( self, - *columns: List[str], + *columns: str, start_block: int = 0, stop_block: Optional[int] = None, step: int = 1, @@ -130,7 +130,7 @@ def query( than the chain length. Args: - columns (List[str]): columns in the DataFrame to return + *columns (str): columns in the DataFrame to return start_block (int): The first block, by number, to include in the query. Defaults to 0. stop_block (Optional[int]): The last block, by number, to include @@ -438,12 +438,12 @@ def outgoing(self) -> Iterator[ReceiptAPI]: start_nonce = receipt.nonce + 1 # start next loop on the next item if start_nonce != stop_nonce: - # NOTE: there is no more sessional history, so just return query engine iterator + # NOTE: there is no more session history, so just return query engine iterator yield from iter(self[start_nonce : stop_nonce + 1]) # noqa: E203 def query( self, - *columns: List[str], + *columns: str, start_nonce: int = 0, stop_nonce: Optional[int] = None, engine_to_use: Optional[str] = None, @@ -459,7 +459,7 @@ def query( than the account's current nonce. Args: - columns (List[str]): columns in the DataFrame to return + *columns (str): columns in the DataFrame to return start_nonce (int): The first transaction, by nonce, to include in the query. Defaults to 0. stop_nonce (Optional[int]): The last transaction, by nonce, to include diff --git a/src/ape/managers/config.py b/src/ape/managers/config.py index 2384b7fef2..8512447474 100644 --- a/src/ape/managers/config.py +++ b/src/ape/managers/config.py @@ -13,7 +13,7 @@ if TYPE_CHECKING: from .project import ProjectManager -from ethpm_types import PackageMeta +from ethpm_types import BaseModel, PackageMeta CONFIG_FILE_NAME = "ape-config.yaml" @@ -28,9 +28,16 @@ class CompilerConfig(PluginConfig): """List of globular files to ignore""" -class DeploymentConfigCollection(dict): - def __init__(self, data: Dict, valid_ecosystems: Dict, valid_networks: List[str]): - for ecosystem_name, networks in data.items(): +class DeploymentConfigCollection(BaseModel): + __root__: Dict + + @root_validator(pre=True) + def validate_deployments(cls, data: Dict): + root_data = data.get("__root__", data) + valid_ecosystems = root_data.pop("valid_ecosystems", {}) + valid_networks = root_data.pop("valid_networks", {}) + valid_data: Dict = {} + for ecosystem_name, networks in root_data.items(): if ecosystem_name not in valid_ecosystems: logger.warning(f"Invalid ecosystem '{ecosystem_name}' in deployments config.") continue @@ -41,21 +48,29 @@ def __init__(self, data: Dict, valid_ecosystems: Dict, valid_networks: List[str] logger.warning(f"Invalid network '{network_name}' in deployments config.") continue + valid_deployments = [] for deployment in [d for d in contract_deployments]: - address = deployment.get("address", None) - if "address" not in deployment: + if not (address := deployment.get("address")): logger.warning( f"Missing 'address' field in deployment " f"(ecosystem={ecosystem_name}, network={network_name})" ) continue + valid_deployment = {**deployment} try: - deployment["address"] = ecosystem.decode_address(address) + valid_deployment["address"] = ecosystem.decode_address(address) except ValueError as err: logger.warning(str(err)) - super().__init__(data) + valid_deployments.append(valid_deployment) + + valid_data[ecosystem_name] = { + **valid_data.get(ecosystem_name, {}), + network_name: valid_deployments, + } + + return {"__root__": valid_data} class ConfigManager(BaseInterfaceModel): @@ -194,7 +209,11 @@ def _plugin_configs(self) -> Dict[str, PluginConfig]: valid_ecosystems = dict(self.plugin_manager.ecosystems) valid_network_names = [n[1] for n in [e[1] for e in self.plugin_manager.networks]] self.deployments = configs["deployments"] = DeploymentConfigCollection( - deployments, valid_ecosystems, valid_network_names + __root__={ + **deployments, + "valid_ecosystems": valid_ecosystems, + "valid_networks": valid_network_names, + } ) for plugin_name, config_class in self.plugin_manager.config_class: diff --git a/src/ape/managers/converters.py b/src/ape/managers/converters.py index 89ca408b4a..199c70ca9f 100644 --- a/src/ape/managers/converters.py +++ b/src/ape/managers/converters.py @@ -1,6 +1,6 @@ from datetime import datetime, timedelta, timezone from decimal import Decimal -from typing import Any, Dict, List, Tuple, Type, Union +from typing import Any, Dict, List, Sequence, Tuple, Type, Union from dateutil.parser import parse # type: ignore from eth_utils import ( @@ -12,9 +12,9 @@ to_hex, to_int, ) -from ethpm_types import HexBytes +from ethpm_types import ConstructorABI, EventABI, HexBytes, MethodABI -from ape.api import ConverterAPI +from ape.api import ConverterAPI, TransactionAPI from ape.api.address import BaseAddress from ape.exceptions import ConversionError from ape.types import AddressType @@ -291,11 +291,7 @@ def is_type(self, value: Any, type: Type) -> bool: bool: ``True`` when we consider the given value to be the given type. """ - if type is AddressType: - return is_checksum_address(value) - - else: - return isinstance(value, type) + return is_checksum_address(value) if type is AddressType else isinstance(value, type) def convert(self, value: Any, type: Union[Type, Tuple, List]) -> Any: """ @@ -356,3 +352,31 @@ def convert(self, value: Any, type: Union[Type, Tuple, List]) -> Any: raise ConversionError(message) from err raise ConversionError(f"No conversion registered to handle '{value}'.") + + def convert_method_args( + self, + abi: Union[MethodABI, ConstructorABI, EventABI], + arguments: Sequence[Any], + ): + input_types = [i.canonical_type for i in abi.inputs] + pre_processed_args = [] + for ipt, argument in zip(input_types, arguments): + # Handle primitive-addresses separately since they may not occur + # on the tuple-conversion if they are integers or bytes. + if str(ipt) == "address": + converted_value = self.convert(argument, AddressType) + pre_processed_args.append(converted_value) + else: + pre_processed_args.append(argument) + + return self.convert(pre_processed_args, tuple) + + def convert_method_kwargs(self, kwargs) -> Dict: + fields = TransactionAPI.__fields__ + + kwargs_to_convert = {k: v for k, v in kwargs.items() if k == "sender" or k in fields} + converted_fields = { + k: self.convert(v, AddressType if k == "sender" else fields[k].type_) + for k, v in kwargs_to_convert.items() + } + return {**kwargs, **converted_fields} diff --git a/src/ape/managers/project/dependency.py b/src/ape/managers/project/dependency.py index bc995a6d37..803064035d 100644 --- a/src/ape/managers/project/dependency.py +++ b/src/ape/managers/project/dependency.py @@ -287,7 +287,7 @@ class LocalDependency(DependencyAPI): """ local: str - version = "local" + version: str = "local" @root_validator() def validate_contracts_folder(cls, value): diff --git a/src/ape/managers/project/manager.py b/src/ape/managers/project/manager.py index 9cd69a6441..cb77f5b9f5 100644 --- a/src/ape/managers/project/manager.py +++ b/src/ape/managers/project/manager.py @@ -1,13 +1,13 @@ import shutil from pathlib import Path -from typing import Any, Dict, Iterable, List, Optional, Type, Union +from typing import Any, Dict, Iterable, List, Optional, Type, Union, cast from ethpm_types import ContractInstance as EthPMContractInstance from ethpm_types import ContractType, PackageManifest, PackageMeta, Source from ethpm_types.contract_type import BIP122_URI from ethpm_types.manifest import PackageName from ethpm_types.source import Compiler, ContractSource -from ethpm_types.utils import AnyUrl +from ethpm_types.utils import AnyUrl, Hex from ape.api import DependencyAPI, ProjectAPI from ape.api.networks import LOCAL_NETWORK_NAME @@ -196,7 +196,7 @@ def _get_compiler_data(self, compile_if_needed: bool = True): filtered_contract_types = [ ct for ct in contract_types if ct.source_id in source_ids ] - contract_type_names = [ct.name for ct in filtered_contract_types] + contract_type_names = [ct.name for ct in filtered_contract_types if ct.name] compiler_list.append( Compiler( name=compiler.name, @@ -703,6 +703,9 @@ def track_deployment(self, contract: ContractInstance): raise ProjectError("Can only publish deployments on a live network.") contract_name = contract.contract_type.name + if not (contract_name := contract.contract_type.name): + raise ProjectError("Contract name required when publishing.") + try: receipt = contract.receipt except ChainError as err: @@ -721,10 +724,10 @@ def track_deployment(self, contract: ContractInstance): block_hash = block_hash_bytes.hex() artifact = EthPMContractInstance( - address=contract.address, + address=cast(Hex, contract.address), block=block_hash, contractType=contract_name, - transaction=contract.txn_hash, + transaction=cast(Hex, contract.txn_hash), runtimeBytecode=contract.contract_type.runtime_bytecode, ) diff --git a/src/ape/managers/project/types.py b/src/ape/managers/project/types.py index 66541cb1cc..705b1a46ad 100644 --- a/src/ape/managers/project/types.py +++ b/src/ape/managers/project/types.py @@ -230,7 +230,7 @@ class ApeProject(BaseProject): class BrownieProject(BaseProject): - config_file_name = "brownie-config.yaml" + config_file_name: str = "brownie-config.yaml" @property def brownie_config_path(self) -> Path: diff --git a/src/ape/types/__init__.py b/src/ape/types/__init__.py index ba6776d556..3e3123328e 100644 --- a/src/ape/types/__init__.py +++ b/src/ape/types/__init__.py @@ -1,10 +1,10 @@ from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Union +from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Sequence, Union, cast from eth_abi.abi import encode from eth_abi.packed import encode_packed -from eth_typing import HexStr -from eth_utils import encode_hex, keccak +from eth_typing import Hash32, HexStr +from eth_utils import encode_hex, keccak, to_hex from ethpm_types import ( ABI, Bytecode, @@ -88,7 +88,7 @@ def validate_multiplier(cls, value): """ -TopicFilter = List[Union[Optional[HexStr], List[Optional[HexStr]]]] +TopicFilter = Sequence[Union[Optional[HexStr], List[Optional[HexStr]]]] @dataclass @@ -142,11 +142,13 @@ def validate_addresses(cls, value): return convert(value, AddressType) def dict(self, client=None): + _Hash32 = Union[Hash32, HexBytes, HexStr] + topics = cast(Sequence[Optional[Union[_Hash32, Sequence[_Hash32]]]], self.topic_filter) return FilterParams( address=self.addresses, - fromBlock=hex(self.start_block), # type: ignore - toBlock=hex(self.stop_block), # type: ignore - topics=self.topic_filter, # type: ignore + fromBlock=to_hex(self.start_block), + toBlock=to_hex(self.stop_block), + topics=topics, ) @classmethod diff --git a/src/ape/types/signatures.py b/src/ape/types/signatures.py index 979f971286..fdd182aa28 100644 --- a/src/ape/types/signatures.py +++ b/src/ape/types/signatures.py @@ -9,10 +9,7 @@ def _left_pad_bytes(val: bytes, num_bytes: int) -> bytes: - if len(val) < num_bytes: - return b"\x00" * (num_bytes - len(val)) + val - - return val + return b"\x00" * (num_bytes - len(val)) + val if len(val) < num_bytes else val @dataclass(frozen=True) diff --git a/src/ape/utils/abi.py b/src/ape/utils/abi.py index 9e1bdca651..cd0f4a3fb9 100644 --- a/src/ape/utils/abi.py +++ b/src/ape/utils/abi.py @@ -1,6 +1,6 @@ import re from dataclasses import make_dataclass -from typing import Any, Dict, List, Optional, Tuple, Union +from typing import Any, Dict, List, Optional, Sequence, Tuple, Union from eth_abi import decode, grammar from eth_abi.exceptions import DecodingError, InsufficientDataBytes @@ -9,7 +9,6 @@ from ethpm_types.abi import ABIType, ConstructorABI, EventABI, EventABIType, MethodABI from ape.logging import logger -from ape.types import AddressType ARRAY_PATTERN = re.compile(r"[(*\w,? )]*\[\d*]") @@ -42,7 +41,7 @@ def returns_array(abi: MethodABI) -> bool: return _is_array_return(abi.outputs) -def _is_array_return(outputs: List[ABIType]): +def _is_array_return(outputs: Sequence[ABIType]): return len(outputs) == 1 and is_array(outputs[0].type) @@ -77,7 +76,7 @@ def encode_input(self, values: Union[List, Tuple, Dict]) -> Any: return [self._encode(ipt, v) for ipt, v in zip(self.abi.inputs, values)] - def decode_input(self, values: Union[List, Tuple, Dict[str, Any]]) -> Any: + def decode_input(self, values: Union[Sequence, Dict[str, Any]]) -> Any: return self._decode(self.abi.inputs, values) if isinstance(self.abi, EventABI) else None def _encode(self, _type: ABIType, value: Any): @@ -121,7 +120,7 @@ def decode_output(self, values: Union[List, Tuple]) -> Any: return self._decode(self.abi.outputs, values) if isinstance(self.abi, MethodABI) else None - def _decode(self, _types: List[ABIType], values: Union[List, Tuple, Dict[str, Any]]): + def _decode(self, _types: Sequence[ABIType], values: Union[Sequence, Dict[str, Any]]): if is_struct(_types): return self._create_struct(_types[0], values) @@ -223,23 +222,21 @@ def _parse_components(self, components: List[ABIType], values) -> List: return parsed_values -def is_struct(outputs: Union[ABIType, List[ABIType]]) -> bool: +def is_struct(outputs: Union[ABIType, Sequence[ABIType]]) -> bool: """ Returns ``True`` if the given output is a struct. """ - if not isinstance(outputs, (tuple, list)): - outputs = [outputs] - + outputs_seq = outputs if isinstance(outputs, (tuple, list)) else [outputs] return ( - len(outputs) == 1 - and "[" not in outputs[0].type - and outputs[0].components not in (None, []) - and all(c.name != "" for c in outputs[0].components or []) + len(outputs_seq) == 1 + and "[" not in outputs_seq[0].type + and outputs_seq[0].components not in (None, []) + and all(c.name != "" for c in outputs_seq[0].components or []) ) -def is_named_tuple(outputs: List[ABIType], output_values: Union[List, Tuple]) -> bool: +def is_named_tuple(outputs: Sequence[ABIType], output_values: Sequence) -> bool: """ Returns ``True`` if the given output is a tuple where every item is named. """ @@ -261,9 +258,7 @@ def __setitem__(self, key, value): pass -def create_struct( - name: str, types: List[ABIType], output_values: Union[List[Any], Tuple[Any, ...]] -) -> Any: +def create_struct(name: str, types: Sequence[ABIType], output_values: Sequence) -> Any: """ Create a dataclass representing an ABI struct that can be used as inputs or outputs. The struct properties can be accessed via ``.`` notation, as keys in a dictionary, or @@ -440,31 +435,3 @@ def decode_value(self, abi_type: str, value: Any) -> Any: # ecosystem API through the calling function. return value - - -def _convert_args(arguments, converter, abi: Union[MethodABI, ConstructorABI]) -> Tuple: - input_types = [i.canonical_type for i in abi.inputs] - pre_processed_args = [] - for ipt, argument in zip(input_types, arguments): - # Handle primitive-addresses separately since they may not occur - # on the tuple-conversion if they are integers or bytes. - if str(ipt) == "address": - converted_value = converter(argument, AddressType) - pre_processed_args.append(converted_value) - else: - pre_processed_args.append(argument) - - return converter(pre_processed_args, tuple) - - -def _convert_kwargs(kwargs, converter) -> Dict: - from ape.api.transactions import TransactionAPI - - fields = TransactionAPI.__fields__ - - kwargs_to_convert = {k: v for k, v in kwargs.items() if k == "sender" or k in fields} - converted_fields = { - k: converter(v, AddressType if k == "sender" else fields[k].type_) - for k, v in kwargs_to_convert.items() - } - return {**kwargs, **converted_fields} diff --git a/src/ape/utils/basemodel.py b/src/ape/utils/basemodel.py index d3e590449a..e10d8fe49f 100644 --- a/src/ape/utils/basemodel.py +++ b/src/ape/utils/basemodel.py @@ -1,5 +1,5 @@ from abc import ABC -from typing import TYPE_CHECKING, ClassVar, Dict, List, Optional, cast +from typing import TYPE_CHECKING, ClassVar, List, Optional, cast from ethpm_types import BaseModel @@ -88,10 +88,10 @@ def provider(self) -> "ProviderAPI": Returns: :class:`~ape.api.providers.ProviderAPI` """ - if self.network_manager.active_provider is None: - raise ProviderNotConnectedError() + if provider := self.network_manager.active_provider: + return provider - return self.network_manager.active_provider + raise ProviderNotConnectedError() class BaseInterface(ManagerAccessMixin, ABC): @@ -123,27 +123,3 @@ def __dir__(self) -> List[str]: """ # Filter out protected/private members return [member for member in super().__dir__() if not member.startswith("_")] - - def dict(self, *args, **kwargs) -> Dict: - if "by_alias" not in kwargs: - kwargs["by_alias"] = True - - if "exclude_none" not in kwargs: - kwargs["exclude_none"] = True - - return super().dict(*args, **kwargs) - - def json(self, *args, **kwargs) -> str: - if "separators" not in kwargs: - kwargs["separators"] = (",", ":") - - if "sort_keys" not in kwargs: - kwargs["sort_keys"] = True - - if "by_alias" not in kwargs: - kwargs["by_alias"] = True - - if "exclude_none" not in kwargs: - kwargs["exclude_none"] = True - - return super().json(*args, **kwargs) diff --git a/src/ape/utils/misc.py b/src/ape/utils/misc.py index fefa6fff94..3b6ea1b2c8 100644 --- a/src/ape/utils/misc.py +++ b/src/ape/utils/misc.py @@ -5,7 +5,7 @@ from datetime import datetime from functools import cached_property, lru_cache, singledispatchmethod, wraps from pathlib import Path -from typing import Any, Callable, Coroutine, Dict, List, Mapping, Optional, cast +from typing import TYPE_CHECKING, Any, Callable, Coroutine, Dict, List, Mapping, Optional, cast import requests import yaml @@ -17,11 +17,14 @@ from ape.exceptions import APINotImplementedError, ProviderNotConnectedError from ape.logging import logger -from ape.types import AddressType from ape.utils.os import expand_environment_variables +if TYPE_CHECKING: + from ape.types import AddressType + + EMPTY_BYTES32 = HexBytes("0x0000000000000000000000000000000000000000000000000000000000000000") -ZERO_ADDRESS: AddressType = cast(AddressType, "0x0000000000000000000000000000000000000000") +ZERO_ADDRESS: "AddressType" = cast("AddressType", "0x0000000000000000000000000000000000000000") DEFAULT_TRANSACTION_ACCEPTANCE_TIMEOUT = 120 DEFAULT_LOCAL_TRANSACTION_ACCEPTANCE_TIMEOUT = 20 DEFAULT_LIVE_NETWORK_BASE_FEE_MULTIPLIER = 1.4 diff --git a/src/ape_ethereum/ecosystem.py b/src/ape_ethereum/ecosystem.py index 162e6d2dba..18b4a80efd 100644 --- a/src/ape_ethereum/ecosystem.py +++ b/src/ape_ethereum/ecosystem.py @@ -50,7 +50,6 @@ returns_array, to_int, ) -from ape.utils.abi import _convert_kwargs from ape.utils.misc import DEFAULT_MAX_RETRIES_TX from ape_ethereum.proxies import ( IMPLEMENTATION_ABI, @@ -91,7 +90,7 @@ class NetworkConfig(PluginConfig): block_time: int = 0 transaction_acceptance_timeout: int = DEFAULT_TRANSACTION_ACCEPTANCE_TIMEOUT default_transaction_type: TransactionType = TransactionType.DYNAMIC - max_receipt_retries = DEFAULT_MAX_RETRIES_TX + max_receipt_retries: int = DEFAULT_MAX_RETRIES_TX gas_limit: GasLimit = "auto" """ @@ -237,7 +236,7 @@ def encode_contract_blueprint( deploy_bytecode = HexBytes( return_data_size + len_bytes + return_instructions + blueprint_bytecode ) - converted_kwargs = _convert_kwargs(kwargs, self.conversion_manager.convert) + converted_kwargs = self.conversion_manager.convert_method_kwargs(kwargs) return self.encode_deployment( deploy_bytecode, contract_type.constructor, **converted_kwargs ) @@ -264,11 +263,10 @@ def get_proxy_info(self, address: AddressType) -> Optional[ProxyInfo]: ProxyType.SplitsCWIA: r"36602f57343d527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff60203da13d3df35b3d3d3d3d363d3d3761.{4}606736393661.{4}013d73(.{40})5af43d3d93803e606557fd5bf3.*", # noqa: E501 ProxyType.SoladyPush0: r"^5f5f365f5f37365f73(.{40})5af43d5f5f3e6029573d5ffd5b3d5ff3", } - for type, pattern in patterns.items(): - match = re.match(pattern, code) - if match: + for type_, pattern in patterns.items(): + if match := re.match(pattern, code): target = self.conversion_manager.convert(match.group(1), AddressType) - return ProxyInfo(type=type, target=target) + return ProxyInfo(type=type_, target=target) sequence_pattern = r"363d3d373d3d3d363d30545af43d82803e903d91601857fd5bf3" if re.match(sequence_pattern, code): @@ -350,7 +348,7 @@ def decode_receipt(self, data: dict) -> ReceiptAPI: break if txn_hash: - txn_hash = txn_hash.hex() if isinstance(txn_hash, HexBytes) else txn_hash + txn_hash = txn_hash.hex() if isinstance(txn_hash, bytes) else txn_hash data_bytes = data.get("data", b"") if data_bytes and isinstance(data_bytes, str): @@ -359,8 +357,12 @@ def decode_receipt(self, data: dict) -> ReceiptAPI: elif "input" in data and isinstance(data["input"], str): data["input"] = HexBytes(data["input"]) + block_number = data.get("block_number") or data.get("blockNumber") + if block_number is None: + raise ValueError("Missing block number.") + receipt = Receipt( - block_number=data.get("block_number") or data.get("blockNumber"), + block_number=block_number, contract_address=data.get("contract_address") or data.get("contractAddress"), gas_limit=data.get("gas", data.get("gas_limit", data.get("gasLimit"))) or 0, gas_price=data.get("gas_price", data.get("gasPrice")) or 0, @@ -491,7 +493,7 @@ def decode_returndata(self, abi: MethodABI, raw_data: bytes) -> Tuple[Any, ...]: return tuple(output_values) def _enrich_value(self, value: Any, **kwargs) -> Any: - if isinstance(value, HexBytes): + if isinstance(value, bytes): try: string_value = value.strip(b"\x00").decode("utf8") return f'"{string_value}"' @@ -554,13 +556,14 @@ def encode_deployment( self, deployment_bytecode: HexBytes, abi: ConstructorABI, *args, **kwargs ) -> BaseTransaction: txn = self.create_transaction(**kwargs) - txn.data = deployment_bytecode + data = HexBytes(deployment_bytecode) # Encode args, if there are any if abi and args: - txn.data += self.encode_calldata(abi, *args) + data = HexBytes(data + self.encode_calldata(abi, *args)) - return txn # type: ignore + txn.data = data + return cast(BaseTransaction, txn) def encode_transaction( self, @@ -573,9 +576,9 @@ def encode_transaction( # Add method ID txn.data = self.get_method_selector(abi) - txn.data += self.encode_calldata(abi, *args) + txn.data = HexBytes(txn.data + self.encode_calldata(abi, *args)) - return txn # type: ignore + return cast(BaseTransaction, txn) def create_transaction(self, **kwargs) -> TransactionAPI: """ @@ -837,10 +840,8 @@ def _enrich_calldata( **kwargs, ) -> CallTreeNode: calldata = call.inputs - if isinstance(calldata, str): + if isinstance(calldata, (str, bytes, int)): calldata_arg = HexBytes(calldata) - elif isinstance(calldata, HexBytes): - calldata_arg = calldata else: # Not sure if we can get here. # Mostly for mypy's sake. @@ -873,10 +874,10 @@ def _enrich_returndata( return call default_return_value = "" - if isinstance(call.outputs, str) and is_0x_prefixed(call.outputs): + if (isinstance(call.outputs, str) and is_0x_prefixed(call.outputs)) or isinstance( + call.outputs, (int, bytes) + ): return_value_bytes = HexBytes(call.outputs) - elif isinstance(call.outputs, HexBytes): - return_value_bytes = call.outputs else: return_value_bytes = None @@ -918,9 +919,9 @@ def get_python_types(self, abi_type: ABIType) -> Union[Type, Tuple, List]: return self._python_type_for_abi_type(abi_type) -def parse_type(type: Dict[str, Any]) -> Union[str, Tuple, List]: - if "tuple" not in type["type"]: - return type["type"] +def parse_type(type_: Dict[str, Any]) -> Union[str, Tuple, List]: + if "tuple" not in type_["type"]: + return type_["type"] - result = tuple([parse_type(c) for c in type["components"]]) - return [result] if is_array(type["type"]) else result + result = tuple([parse_type(c) for c in type_["components"]]) + return [result] if is_array(type_["type"]) else result diff --git a/src/ape_ethereum/proxies.py b/src/ape_ethereum/proxies.py index 36ed36be19..40fd31fa8e 100644 --- a/src/ape_ethereum/proxies.py +++ b/src/ape_ethereum/proxies.py @@ -1,7 +1,9 @@ from enum import IntEnum, auto +from typing import cast from ethpm_types import ContractType, MethodABI from ethpm_types.abi import ABIType +from ethpm_types.utils import Hex from lazyasd import LazyObject # type: ignore from ape.api.networks import ProxyInfoAPI @@ -90,7 +92,7 @@ class ProxyInfo(ProxyInfoAPI): def _make_minimal_proxy(address: str = MINIMAL_PROXY_TARGET_PLACEHOLDER) -> ContractContainer: address = address.replace("0x", "") - code = MINIMAL_PROXY_BYTES.replace(MINIMAL_PROXY_TARGET_PLACEHOLDER, address) + code = cast(Hex, MINIMAL_PROXY_BYTES.replace(MINIMAL_PROXY_TARGET_PLACEHOLDER, address)) bytecode = {"bytecode": code} contract_type = ContractType(abi=[], deploymentBytecode=bytecode) return ContractContainer(contract_type=contract_type) diff --git a/src/ape_ethereum/transactions.py b/src/ape_ethereum/transactions.py index b430319396..51a67cea55 100644 --- a/src/ape_ethereum/transactions.py +++ b/src/ape_ethereum/transactions.py @@ -107,10 +107,7 @@ class DynamicFeeTransaction(BaseTransaction): @validator("type", allow_reuse=True) def check_type(cls, value): - if isinstance(value, TransactionType): - return value.value - - return value + return value.value if isinstance(value, TransactionType) else value class AccessListTransaction(BaseTransaction): diff --git a/src/ape_geth/provider.py b/src/ape_geth/provider.py index dad84fd0ed..f214e7fff6 100644 --- a/src/ape_geth/provider.py +++ b/src/ape_geth/provider.py @@ -246,8 +246,8 @@ class BaseGethProvider(Web3Provider, ABC): _client_version: Optional[str] = None # optimal values for geth - block_page_size = 5000 - concurrency = 16 + block_page_size: int = 5000 + concurrency: int = 16 name: str = "geth" @@ -450,10 +450,10 @@ def __repr__(self): def connect(self): self._set_web3() - if not self.is_connected: - self.start() - else: + if self.is_connected: self._complete_connect() + else: + self.start() def start(self, timeout: int = 20): test_config = self.config_manager.get_config("test").dict() diff --git a/src/ape_test/__init__.py b/src/ape_test/__init__.py index dd5be81151..6a4507aecc 100644 --- a/src/ape_test/__init__.py +++ b/src/ape_test/__init__.py @@ -6,9 +6,8 @@ from ape.api import PluginConfig from ape.api.networks import LOCAL_NETWORK_NAME from ape.utils import DEFAULT_HD_PATH, DEFAULT_NUMBER_OF_TEST_ACCOUNTS, DEFAULT_TEST_MNEMONIC - -from .accounts import TestAccount, TestAccountContainer -from .provider import EthTesterProviderConfig, LocalProvider +from ape_test.accounts import TestAccount, TestAccountContainer +from ape_test.provider import EthTesterProviderConfig, LocalProvider class GasExclusion(PluginConfig): @@ -79,7 +78,7 @@ class CoverageConfig(PluginConfig): the ``--coverage`` flag. """ - reports = CoverageReportsConfig() + reports: CoverageReportsConfig = CoverageReportsConfig() """ Enable reports. """ diff --git a/src/ape_test/provider.py b/src/ape_test/provider.py index b4bd2b81a7..6ee20ad7b9 100644 --- a/src/ape_test/provider.py +++ b/src/ape_test/provider.py @@ -109,16 +109,16 @@ def estimate_gas_cost(self, txn: TransactionAPI, **kwargs) -> int: @property def chain_id(self) -> int: - try: - if self.cached_chain_id: - return self.cached_chain_id + if self.cached_chain_id: + return self.cached_chain_id + try: result = self._make_request("eth_chainId", []) - self.cached_chain_id = result - return result - except ProviderNotConnectedError: - return self.provider_settings.get("chain_id", self.config.provider.chain_id) + result = self.provider_settings.get("chain_id", self.config.provider.chain_id) + + self.cached_chain_id = result + return result @property def gas_price(self) -> int: diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py index e0a75bc790..58d2378111 100644 --- a/tests/functional/conftest.py +++ b/tests/functional/conftest.py @@ -2,7 +2,7 @@ import time from distutils.dir_util import copy_tree from pathlib import Path -from typing import Optional +from typing import Optional, cast import pytest from ethpm_types import ContractType, HexBytes @@ -30,7 +30,7 @@ def fn(name: str) -> ContractType: ALIAS_2 = "__FUNCTIONAL_TESTS_ALIAS_2__" -TEST_ADDRESS = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" +TEST_ADDRESS = cast(AddressType, "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045") BASE_PROJECTS_DIRECTORY = (Path(__file__).parent / "data" / "projects").absolute() PROJECT_WITH_LONG_CONTRACTS_FOLDER = BASE_PROJECTS_DIRECTORY / "LongContractsFolder" APE_PROJECT_FOLDER = BASE_PROJECTS_DIRECTORY / "ApeProject" @@ -378,7 +378,7 @@ def _assert_log_values( address: Optional[AddressType] = None, ): assert log.contract_address == address or contract_instance.address - assert isinstance(log.b, HexBytes) + assert isinstance(log.b, bytes) expected_previous_number = number - 1 if previous_number is None else previous_number assert log.prevNum == expected_previous_number, "Event param 'prevNum' has unexpected value" assert log.newNum == number, "Event param 'newNum' has unexpected value" diff --git a/tests/functional/conversion/test_encode_structs.py b/tests/functional/conversion/test_encode_structs.py index 4df9cdc011..d2709ccaac 100644 --- a/tests/functional/conversion/test_encode_structs.py +++ b/tests/functional/conversion/test_encode_structs.py @@ -1,4 +1,4 @@ -from typing import Dict, Tuple +from typing import Dict, Tuple, cast import pytest from ethpm_types import HexBytes @@ -48,7 +48,7 @@ class SimilarStruct(Struct): "0000000000000000000000000000000000000000000000000000000000000001" "000000000000000000000000d9b7fdb3fc0a0aa3a507dcf0976bc23d49a9c7a3" ) -ADDRESS = "0xD9b7fdb3FC0A0Aa3A507dCf0976bc23D49a9C7A3" +ADDRESS = cast(AddressType, "0xD9b7fdb3FC0A0Aa3A507dCf0976bc23D49a9C7A3") DATA_BY_TYPE_KEY = { "tuple": (1, HexBytes("0x02"), True, ADDRESS), "dict": {"a": 1, "b": HexBytes("0x02"), "c": True, "d": ADDRESS}, diff --git a/tests/functional/geth/conftest.py b/tests/functional/geth/conftest.py index a5540030b8..6bf6c3c771 100644 --- a/tests/functional/geth/conftest.py +++ b/tests/functional/geth/conftest.py @@ -66,7 +66,7 @@ def mock_geth(geth_provider, mock_web3): network=geth_provider.network, provider_settings={}, data_folder=Path("."), - request_header="", + request_header={}, ) original_web3 = provider._web3 provider._web3 = mock_web3 diff --git a/tests/functional/test_accounts.py b/tests/functional/test_accounts.py index 84b424d6c9..09ea66eac9 100644 --- a/tests/functional/test_accounts.py +++ b/tests/functional/test_accounts.py @@ -293,18 +293,16 @@ def test_autosign_transactions(runner, keyfile_account, receiver): assert keyfile_account.transfer(receiver, "1 gwei") -def test_impersonate_not_implemented(accounts): - test_address = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" +def test_impersonate_not_implemented(accounts, address): expected_err_msg = ( "Your provider does not support impersonating accounts:\n" - f"No account with address '{test_address}'." + f"No account with address '{address}'." ) with pytest.raises(IndexError, match=expected_err_msg): - _ = accounts[test_address] + _ = accounts[address] -def test_impersonated_account_ignores_signature_check_on_txn(accounts): - address = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" +def test_impersonated_account_ignores_signature_check_on_txn(accounts, address): account = ImpersonatedAccount(raw_address=address) # Impersonate hack, since no providers in core actually support it. diff --git a/tests/functional/test_config.py b/tests/functional/test_config.py index d69d2266cf..d3648c9268 100644 --- a/tests/functional/test_config.py +++ b/tests/functional/test_config.py @@ -3,6 +3,7 @@ import pytest from ape.api import PluginConfig +from ape.api.networks import LOCAL_NETWORK_NAME from ape.managers.config import CONFIG_FILE_NAME, DeploymentConfigCollection, merge_configs from ape.types import GasLimit from ape_ethereum.ecosystem import NetworkConfig @@ -10,11 +11,16 @@ def test_integer_deployment_addresses(networks): - deployments_data = _create_deployments() - config = DeploymentConfigCollection( - deployments_data, {"ethereum": networks.ethereum}, ["local"] + data = { + **_create_deployments(), + "valid_ecosystems": {"ethereum": networks.ethereum}, + "valid_networks": [LOCAL_NETWORK_NAME], + } + config = DeploymentConfigCollection(__root__=data) + assert ( + config.__root__["ethereum"]["local"][0]["address"] + == "0x0c25212c557d00024b7Ca3df3238683A35541354" ) - assert config["ethereum"]["local"][0]["address"] == "0x0c25212c557d00024b7Ca3df3238683A35541354" @pytest.mark.parametrize( @@ -25,9 +31,9 @@ def test_bad_value_in_deployments(ecosystems, networks, err_part, ape_caplog, pl deployments = _create_deployments() all_ecosystems = dict(plugin_manager.ecosystems) ecosystem_dict = {e: all_ecosystems[e] for e in ecosystems if e in all_ecosystems} - DeploymentConfigCollection(deployments, ecosystem_dict, networks) + data = {**deployments, "valid_ecosystems": ecosystem_dict, "valid_networks": networks} ape_caplog.assert_last_log_with_retries( - lambda: DeploymentConfigCollection(deployments, ecosystem_dict, networks), + lambda: DeploymentConfigCollection(__root__=data), f"Invalid {err_part}", ) diff --git a/tests/functional/test_contract_event.py b/tests/functional/test_contract_event.py index a0a6536801..6b9d08dae6 100644 --- a/tests/functional/test_contract_event.py +++ b/tests/functional/test_contract_event.py @@ -14,7 +14,7 @@ @pytest.fixture def assert_log_values(owner, chain): def _assert_log_values(log: ContractLog, number: int, previous_number: Optional[int] = None): - assert isinstance(log.b, HexBytes) + assert isinstance(log.b, bytes) expected_previous_number = number - 1 if previous_number is None else previous_number assert log.prevNum == expected_previous_number, "Event param 'prevNum' has unexpected value" assert log.newNum == number, "Event param 'newNum' has unexpected value" diff --git a/tests/functional/test_coverage.py b/tests/functional/test_coverage.py index 388d013c08..aeb6d510c4 100644 --- a/tests/functional/test_coverage.py +++ b/tests/functional/test_coverage.py @@ -75,7 +75,7 @@ def coverage_project(source_contract, second_source_contract): @pytest.fixture def coverage_report(coverage_project): - return CoverageReport(source_folders=[Path.cwd()], projects=[coverage_project], timestamp=None) + return CoverageReport(source_folders=[Path.cwd()], projects=[coverage_project], timestamp=0) class TestFunctionCoverage: diff --git a/tests/functional/test_ecosystem.py b/tests/functional/test_ecosystem.py index b7ebcc54dc..00ed82ff11 100644 --- a/tests/functional/test_ecosystem.py +++ b/tests/functional/test_ecosystem.py @@ -54,7 +54,7 @@ def test_encode_address(ethereum): assert actual == raw_address -def test_encode_calldata(ethereum): +def test_encode_calldata(ethereum, address): abi = MethodABI( type="function", name="callMe", @@ -65,7 +65,6 @@ def test_encode_calldata(ethereum): ABIType(name="d", type="bytes4[]"), ], ) - address = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" byte_array = ["0x456", "0x678"] values = ("0x123", address, HexBytes(55), byte_array) diff --git a/tests/functional/test_project.py b/tests/functional/test_project.py index 62144e5667..9687c9e8a0 100644 --- a/tests/functional/test_project.py +++ b/tests/functional/test_project.py @@ -1,5 +1,6 @@ import shutil from pathlib import Path +from urllib.parse import urlparse import pytest import yaml @@ -183,7 +184,10 @@ def test_meta(temp_config, project): assert project.meta.license == "MIT" assert project.meta.description == "test" assert project.meta.keywords == ["testing"] - assert "https://apeworx.io" in project.meta.links["apeworx.io"] + + actual_url = urlparse(project.meta.links["apeworx.io"]) + assert actual_url.hostname == "apeworx.io" + assert actual_url.scheme == "https" def test_brownie_project_configure(config, base_projects_directory): @@ -193,7 +197,7 @@ def test_brownie_project_configure(config, base_projects_directory): # Left from previous run expected_config_file.unlink() - project = BrownieProject(path=project_path, contracts_folder="contracts") + project = BrownieProject(path=project_path, contracts_folder=Path("contracts")) project.process_config_file() assert expected_config_file.is_file() diff --git a/tests/functional/test_types.py b/tests/functional/test_types.py index 6d5014f672..2c0ec7d620 100644 --- a/tests/functional/test_types.py +++ b/tests/functional/test_types.py @@ -1,3 +1,5 @@ +from typing import Dict + import pytest from eth_utils import to_hex from ethpm_types.abi import EventABI @@ -11,7 +13,7 @@ EVENT_NAME = "MyEvent" LOG_INDEX = 7 TXN_INDEX = 2 -RAW_LOG = { +RAW_LOG: Dict = { "block_hash": BLOCK_HASH, "block_number": BLOCK_NUMBER, "contract_address": ZERO_ADDRESS, From d70ed9bc1f932ef6172ead05b1f0109de56868bc Mon Sep 17 00:00:00 2001 From: antazoey Date: Tue, 26 Sep 2023 15:42:26 -0500 Subject: [PATCH 02/22] refactor: BaseModel getattr logic sharing [APE-1415] (#1675) --- src/ape/api/config.py | 2 +- src/ape/api/networks.py | 47 ++-------- src/ape/api/projects.py | 61 +++++-------- src/ape/api/transactions.py | 12 ++- src/ape/types/__init__.py | 43 +++++---- src/ape/utils/__init__.py | 2 + src/ape/utils/basemodel.py | 149 ++++++++++++++++++++++++++++++- tests/functional/test_receipt.py | 5 ++ 8 files changed, 212 insertions(+), 109 deletions(-) diff --git a/src/ape/api/config.py b/src/ape/api/config.py index 6bceb1b3ab..d683da2aea 100644 --- a/src/ape/api/config.py +++ b/src/ape/api/config.py @@ -40,7 +40,7 @@ def update(root: Dict, value_map: Dict): return cls(**update(default_values, overrides)) def __getattr__(self, attr_name: str) -> Any: - # allow hyphens in plugin config files + # Allow hyphens in plugin config files. attr_name = attr_name.replace("-", "_") return super().__getattribute__(attr_name) diff --git a/src/ape/api/networks.py b/src/ape/api/networks.py index afcb5232e7..d6f9baa7a5 100644 --- a/src/ape/api/networks.py +++ b/src/ape/api/networks.py @@ -25,6 +25,7 @@ from ape.utils import ( DEFAULT_TRANSACTION_ACCEPTANCE_TIMEOUT, BaseInterfaceModel, + ExtraModelAttributes, ManagerAccessMixin, abstractmethod, cached_property, @@ -221,45 +222,13 @@ def __post_init__(self): if len(self.networks) == 0: raise NetworkError("Must define at least one network in ecosystem") - def __getitem__(self, network_name: str) -> "NetworkAPI": - """ - Get a network by name. - - Raises: - :class:`~ape.exceptions.NetworkNotFoundError`: - When there is no network with the given name. - - Args: - network_name (str): The name of the network to retrieve. - - Returns: - :class:`~ape.api.networks.NetworkAPI` - """ - return self.get_network(network_name) - - def __getattr__(self, network_name: str) -> "NetworkAPI": - """ - Get a network by name using ``.`` access. - - Usage example:: - - from ape import networks - mainnet = networks.ecosystem.mainnet - - Raises: - :class:`~ape.exceptions.NetworkNotFoundError`: - When there is no network with the given name. - - Args: - network_name (str): The name of the network to retrieve. - - Returns: - :class:`~ape.api.networks.NetworkAPI` - """ - try: - return self.get_network(network_name.replace("_", "-")) - except NetworkNotFoundError: - return self.__getattribute__(network_name) + def __ape_extra_attributes__(self) -> Iterator[ExtraModelAttributes]: + yield ExtraModelAttributes( + name="networks", + attributes=self.networks, + include_getattr=True, + include_getitem=True, + ) def add_network(self, network_name: str, network: "NetworkAPI"): """ diff --git a/src/ape/api/projects.py b/src/ape/api/projects.py index f41524858b..7ff8c899ae 100644 --- a/src/ape/api/projects.py +++ b/src/ape/api/projects.py @@ -2,7 +2,7 @@ import re import tempfile from pathlib import Path -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union +from typing import TYPE_CHECKING, Any, Dict, Iterator, List, Optional, Union from ethpm_types import Checksum, ContractType, PackageManifest, Source from ethpm_types.manifest import PackageName @@ -10,10 +10,10 @@ from packaging.version import InvalidVersion, Version from pydantic import ValidationError -from ape.exceptions import ApeAttributeError from ape.logging import logger from ape.utils import ( BaseInterfaceModel, + ExtraModelAttributes, abstractmethod, cached_property, get_all_files_in_directory, @@ -259,6 +259,14 @@ class DependencyAPI(BaseInterfaceModel): def __repr__(self): return f"<{self.__class__.__name__} name='{self.name}'>" + def __ape_extra_attributes__(self) -> Iterator[ExtraModelAttributes]: + yield ExtraModelAttributes( + name=self.name, + attributes=self.contracts, + include_getattr=True, + include_getitem=True, + ) + @property @abstractmethod def version_id(self) -> str: @@ -321,46 +329,19 @@ def cached_manifest(self) -> Optional[PackageManifest]: return self._cached_manifest - def __getitem__(self, contract_name: str) -> "ContractContainer": - try: - container = self.get(contract_name) - except Exception as err: - raise IndexError(str(err)) from err - - if not container: - raise IndexError(f"Contract '{contract_name}' not found.") - - return container - - def __getattr__(self, contract_name: str) -> "ContractContainer": - try: - return self.__getattribute__(contract_name) - except AttributeError: - pass - - try: - container = self.get(contract_name) - except Exception as err: - raise ApeAttributeError( - f"Dependency project '{self.name}' has no contract " - f"or attribute '{contract_name}'.\n{err}" - ) from err - - if not container: - raise ApeAttributeError( - f"Dependency project '{self.name}' has no contract '{contract_name}'." - ) - - return container + @cached_property + def contracts(self) -> Dict[str, "ContractContainer"]: + """ + A mapping of name to contract type of all the contracts + in this dependency. + """ + return { + n: self.chain_manager.contracts.get_container(c) + for n, c in (self.compile().contract_types or {}).items() + } def get(self, contract_name: str) -> Optional["ContractContainer"]: - manifest = self.compile() - options = (contract_name, contract_name.replace("-", "_")) - for name in options: - if contract_type := manifest.get_contract_type(name): - return self.chain_manager.contracts.get_container(contract_type) - - return None + return self.contracts.get(contract_name) def compile(self, use_cache: bool = True) -> PackageManifest: """ diff --git a/src/ape/api/transactions.py b/src/ape/api/transactions.py index eac25a2db9..1e3ef14074 100644 --- a/src/ape/api/transactions.py +++ b/src/ape/api/transactions.py @@ -27,7 +27,13 @@ TraceFrame, TransactionSignature, ) -from ape.utils import BaseInterfaceModel, abstractmethod, cached_property, raises_not_implemented +from ape.utils import ( + BaseInterfaceModel, + ExtraModelAttributes, + abstractmethod, + cached_property, + raises_not_implemented, +) if TYPE_CHECKING: from ape.api.providers import BlockAPI @@ -261,8 +267,8 @@ class ReceiptAPI(BaseInterfaceModel): def __repr__(self) -> str: return f"<{self.__class__.__name__} {self.txn_hash}>" - def __getattr__(self, item: str) -> Any: - return getattr(self.transaction, item) + def __ape_extra_attributes__(self) -> Iterator[ExtraModelAttributes]: + yield ExtraModelAttributes(name="transaction", attributes=self.transaction) @validator("transaction", pre=True) def confirm_transaction(cls, value): diff --git a/src/ape/types/__init__.py b/src/ape/types/__init__.py index 3e3123328e..cf3bf73112 100644 --- a/src/ape/types/__init__.py +++ b/src/ape/types/__init__.py @@ -1,5 +1,16 @@ from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Sequence, Union, cast +from typing import ( + TYPE_CHECKING, + Any, + Dict, + Iterator, + List, + Literal, + Optional, + Sequence, + Union, + cast, +) from eth_abi.abi import encode from eth_abi.packed import encode_packed @@ -21,7 +32,6 @@ from pydantic import BaseModel, root_validator, validator from web3.types import FilterParams -from ape.exceptions import ApeAttributeError from ape.types.address import AddressType, RawAddress from ape.types.coverage import ( ContractCoverage, @@ -32,7 +42,7 @@ ) from ape.types.signatures import MessageSignature, SignableMessage, TransactionSignature from ape.types.trace import CallTreeNode, ControlFlow, GasReport, SourceTraceback, TraceFrame -from ape.utils import BaseInterfaceModel, cached_property +from ape.utils import BaseInterfaceModel, ExtraModelAttributes, cached_property from ape.utils.misc import ZERO_ADDRESS, to_int if TYPE_CHECKING: @@ -294,23 +304,13 @@ def __str__(self) -> str: def __repr__(self) -> str: return f"<{self.event_name} {self._event_args_str}>" - def __getattr__(self, item: str) -> Any: - """ - Access properties from the log via ``.`` access. - - Args: - item (str): The name of the property. - """ - - try: - return self.__getattribute__(item) - except AttributeError: - pass - - if item not in self.event_arguments: - raise ApeAttributeError(f"{self.__class__.__name__} has no attribute '{item}'.") - - return self.event_arguments[item] + def __ape_extra_attributes__(self) -> Iterator[ExtraModelAttributes]: + yield ExtraModelAttributes( + name=self.event_name, + attributes=self.event_arguments, + include_getattr=True, + include_getitem=True, + ) def __contains__(self, item: str) -> bool: return item in self.event_arguments @@ -338,9 +338,6 @@ def __eq__(self, other: Any) -> bool: # call __eq__ on parent class return super().__eq__(other) - def __getitem__(self, item: str) -> Any: - return self.event_arguments[item] - def get(self, item: str, default: Optional[Any] = None) -> Any: return self.event_arguments.get(item, default) diff --git a/src/ape/utils/__init__.py b/src/ape/utils/__init__.py index 84bff51e82..3fccd224aa 100644 --- a/src/ape/utils/__init__.py +++ b/src/ape/utils/__init__.py @@ -13,6 +13,7 @@ from ape.utils.basemodel import ( BaseInterface, BaseInterfaceModel, + ExtraModelAttributes, ManagerAccessMixin, injected_before_use, ) @@ -75,6 +76,7 @@ "EMPTY_BYTES32", "expand_environment_variables", "extract_nested_value", + "ExtraModelAttributes", "get_relative_path", "gas_estimation_error_message", "get_package_version", diff --git a/src/ape/utils/basemodel.py b/src/ape/utils/basemodel.py index e10d8fe49f..361a9a0786 100644 --- a/src/ape/utils/basemodel.py +++ b/src/ape/utils/basemodel.py @@ -1,9 +1,9 @@ from abc import ABC -from typing import TYPE_CHECKING, ClassVar, List, Optional, cast +from typing import TYPE_CHECKING, Any, ClassVar, Dict, Iterator, List, Optional, Union, cast -from ethpm_types import BaseModel +from ethpm_types import BaseModel as _BaseModel -from ape.exceptions import ProviderNotConnectedError +from ape.exceptions import ApeAttributeError, ProviderNotConnectedError from ape.logging import logger from ape.utils.misc import cached_property, singledispatchmethod @@ -100,6 +100,149 @@ class BaseInterface(ManagerAccessMixin, ABC): """ +def _get_alt(name: str) -> Optional[str]: + alt = None + if ("-" not in name and "_" not in name) or ("-" in name and "_" in name): + alt = None + elif "-" in name: + alt = name.replace("-", "_") + elif "_" in name: + alt = name.replace("_", "-") + + return alt + + +class ExtraModelAttributes(_BaseModel): + """ + A class for defining extra model attributes. + """ + + name: str + """ + The name of the attributes. This is important + in instances such as when an attribute is missing, + we can show a more accurate exception message. + """ + + attributes: Union[Dict[str, Any], "BaseModel"] + """The attributes.""" + + include_getattr: bool = True + """Whether to use these in ``__getattr__``.""" + + include_getitem: bool = False + """Whether to use these in ``__getitem__``.""" + + def __contains__(self, name: str) -> bool: + attr_dict = self.attributes if isinstance(self.attributes, dict) else self.attributes.dict() + if name in attr_dict: + return True + + elif alt := _get_alt(name): + return alt in attr_dict + + return False + + def get(self, name: str) -> Optional[Any]: + """ + Get an attribute. + + Args: + name (str): The name of the attribute. + + Returns: + Optional[Any]: The attribute if it exists, else ``None``. + """ + + res = self._get(name) + if res is not None: + return res + + if alt := _get_alt(name): + res = self._get(alt) + if res is not None: + return res + + return None + + def _get(self, name: str) -> Optional[Any]: + return ( + self.attributes.get(name) + if isinstance(self.attributes, dict) + else getattr(self.attributes, name, None) + ) + + +class BaseModel(_BaseModel): + """ + An ape-pydantic BaseModel. + """ + + def __ape_extra_attributes__(self) -> Iterator[ExtraModelAttributes]: + """ + Override this method to supply extra attributes + to a model in Ape; this allow more properties + to be available when invoking ``__getattr__``. + + Returns: + Iterator[:class:`~ape.utils.basemodel.ExtraModelAttributes`]: A + series of instances defining extra model attributes. + """ + return iter(()) + + def __getattr__(self, name: str) -> Any: + """ + An overridden ``__getattr__`` implementation that takes into + account :meth:`~ape.utils.basemodel.BaseModel.__ape_extra_attributes__`. + """ + + try: + return super().__getattr__(name) + except AttributeError: + extras_checked = set() + for ape_extra in self.__ape_extra_attributes__(): + if not ape_extra.include_getattr: + continue + + if name in ape_extra: + # Attribute was found in one of the supplied + # extra attributes mappings. + return ape_extra.get(name) + + extras_checked.add(ape_extra.name) + + # The error message mentions the alternative mappings, + # such as a contract-type map. + message = f"No attribute with name '{name}'." + if extras_checked: + extras_str = ", ".join(extras_checked) + message = f"{message} Also checked '{extras_str}'." + + raise ApeAttributeError(message) + + def __getitem__(self, name: Any) -> Any: + # For __getitem__, we first try the extra (unlike `__getattr__`). + extras_checked = set() + for extra in self.__ape_extra_attributes__(): + if not extra.include_getitem: + continue + + if name in extra: + return extra.get(name) + + extras_checked.add(extra.name) + + # NOTE: If extras were supplied, the user was expecting it to be + # there (unlike __getattr__). + if extras_checked: + extras_str = ", ".join(extras_checked) + raise IndexError(f"Unable to find '{name}' in any of '{extras_str}'.") + + # The user did not supply any extra __getitem__ attributes. + # Do what you would have normally done. + return super().__getitem__(name) + + class BaseInterfaceModel(BaseInterface, BaseModel): """ An abstract base-class with manager access on a pydantic base model. diff --git a/tests/functional/test_receipt.py b/tests/functional/test_receipt.py index 59beb4ae6f..4842e7b862 100644 --- a/tests/functional/test_receipt.py +++ b/tests/functional/test_receipt.py @@ -192,3 +192,8 @@ def test_track_coverage(deploy_receipt, mocker): assert mock_runner.track_coverage.call_count == 0 ManagerAccessMixin._test_runner = original + + +def test_access_from_tx(deploy_receipt): + actual = deploy_receipt.receiver + assert actual == "" From 1c776db511ab90bb30acd999fa240d503db564c6 Mon Sep 17 00:00:00 2001 From: antazoey Date: Wed, 27 Sep 2023 14:37:47 -0500 Subject: [PATCH 03/22] chore: remove unused type ignores and other small items [APE-1419] (#1678) --- src/ape/api/networks.py | 6 +++--- src/ape/api/providers.py | 8 ++++---- src/ape/exceptions.py | 5 +++-- src/ape/plugins/pluggy_patch.py | 2 +- src/ape/types/__init__.py | 1 - src/ape_cache/query.py | 4 ++-- src/ape_console/_cli.py | 4 ++-- src/ape_console/plugin.py | 4 ++-- src/ape_ethereum/ecosystem.py | 4 +++- src/ape_ethereum/transactions.py | 5 +---- src/ape_geth/provider.py | 8 ++++++-- src/ape_test/_cli.py | 4 ++-- src/ape_test/provider.py | 3 ++- tests/functional/test_contract_instance.py | 6 +++--- 14 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/ape/api/networks.py b/src/ape/api/networks.py index d6f9baa7a5..02339dc140 100644 --- a/src/ape/api/networks.py +++ b/src/ape/api/networks.py @@ -143,9 +143,9 @@ def serialize_transaction(self, transaction: "TransactionAPI") -> bytes: unsigned_txn = serializable_unsigned_transaction_from_dict(txn_data) signature = ( - self.signature.v, # type: ignore - to_int(self.signature.r), # type: ignore - to_int(self.signature.s), # type: ignore + self.signature.v, + to_int(self.signature.r), + to_int(self.signature.s), ) signed_txn = encode_transaction(unsigned_txn, signature) diff --git a/src/ape/api/providers.py b/src/ape/api/providers.py index 57abd9d6e9..30bc5bcf38 100644 --- a/src/ape/api/providers.py +++ b/src/ape/api/providers.py @@ -1250,8 +1250,8 @@ def get_transactions_by_block(self, block_id: BlockID) -> Iterator[TransactionAP def get_transactions_by_account_nonce( self, account: AddressType, - start_nonce: int, - stop_nonce: int, + start_nonce: int = 0, + stop_nonce: int = -1, ) -> Iterator[ReceiptAPI]: if start_nonce > stop_nonce: raise ValueError("Starting nonce cannot be greater than stop nonce for search") @@ -1326,7 +1326,7 @@ def block_ranges(self, start=0, stop=None, page=None): stop_block = min(stop, start_block + page - 1) yield start_block, stop_block - def get_contract_creation_receipts( # type: ignore[empty-body] + def get_contract_creation_receipts( self, address: AddressType, start_block: int = 0, @@ -1657,7 +1657,7 @@ class SubprocessProvider(ProviderAPI): A provider that manages a process, such as for ``ganache``. """ - PROCESS_WAIT_TIMEOUT = 15 + PROCESS_WAIT_TIMEOUT: int = 15 process: Optional[Popen] = None is_stopping: bool = False diff --git a/src/ape/exceptions.py b/src/ape/exceptions.py index 1128241d67..f5cefa8c21 100644 --- a/src/ape/exceptions.py +++ b/src/ape/exceptions.py @@ -5,9 +5,10 @@ from inspect import getframeinfo, stack from pathlib import Path from types import CodeType, TracebackType -from typing import TYPE_CHECKING, Any, Dict, Iterator, List, Optional, Union +from typing import TYPE_CHECKING, Any, Dict, Iterator, List, Optional, Union, cast import click +from eth_typing import Hash32 from eth_utils import humanize_hash from ethpm_types.abi import ConstructorABI, ErrorABI, MethodABI from rich import print as rich_print @@ -418,7 +419,7 @@ class UnknownSnapshotError(ChainError): def __init__(self, snapshot_id: "SnapshotID"): if isinstance(snapshot_id, bytes): # Is block hash - snapshot_id = humanize_hash(snapshot_id) # type: ignore + snapshot_id = humanize_hash(cast(Hash32, snapshot_id)) super().__init__(f"Unknown snapshot ID '{str(snapshot_id)}'.") diff --git a/src/ape/plugins/pluggy_patch.py b/src/ape/plugins/pluggy_patch.py index d9ae186286..fdf24bb99b 100644 --- a/src/ape/plugins/pluggy_patch.py +++ b/src/ape/plugins/pluggy_patch.py @@ -1,6 +1,6 @@ from typing import Any, Callable, TypeVar, cast -import pluggy # type: ignore +import pluggy F = TypeVar("F", bound=Callable[..., Any]) hookimpl = cast(Callable[[F], F], pluggy.HookimplMarker("ape")) diff --git a/src/ape/types/__init__.py b/src/ape/types/__init__.py index cf3bf73112..8eef9aa6c8 100644 --- a/src/ape/types/__init__.py +++ b/src/ape/types/__init__.py @@ -406,7 +406,6 @@ def __contains__(self, val: Any) -> bool: "ContractLogContainer", "ContractType", "ControlFlow", - "CoverageItem", "CoverageProject", "CoverageReport", "CoverageStatement", diff --git a/src/ape_cache/query.py b/src/ape_cache/query.py index 63a1d58f59..8cca70eee1 100644 --- a/src/ape_cache/query.py +++ b/src/ape_cache/query.py @@ -419,7 +419,7 @@ def _get_block_txns_data( new_dict = {k: v for k, v in val.dict(by_alias=False).items() if k in table_columns} for col in table_columns: if col == "txn_hash": - new_dict["txn_hash"] = val.txn_hash # type: ignore + new_dict["txn_hash"] = val.txn_hash elif col == "sender": new_dict["sender"] = new_dict["sender"].encode() elif col == "receiver" and "receiver" in new_dict: @@ -429,7 +429,7 @@ def _get_block_txns_data( elif col == "block_hash": new_dict["block_hash"] = query.block_id elif col == "signature": - new_dict["signature"] = val.signature.encode_rsv() # type: ignore + new_dict["signature"] = val.signature.encode_rsv() elif col not in new_dict: new_dict[col] = None new_result.append(new_dict) diff --git a/src/ape_console/_cli.py b/src/ape_console/_cli.py index 366dff648e..10f05f68f5 100644 --- a/src/ape_console/_cli.py +++ b/src/ape_console/_cli.py @@ -9,8 +9,8 @@ from typing import Any, Dict, cast import click -import IPython # type: ignore -from IPython.terminal.ipapp import Config as IPythonConfig # type: ignore +import IPython +from IPython.terminal.ipapp import Config as IPythonConfig from ape import config from ape import project as default_project diff --git a/src/ape_console/plugin.py b/src/ape_console/plugin.py index e8c7080a25..60a22fcefa 100644 --- a/src/ape_console/plugin.py +++ b/src/ape_console/plugin.py @@ -3,8 +3,8 @@ import click from click.testing import CliRunner from eth_utils import is_hex -from IPython import get_ipython # type: ignore -from IPython.core.magic import Magics, line_magic, magics_class # type: ignore +from IPython import get_ipython +from IPython.core.magic import Magics, line_magic, magics_class import ape from ape._cli import cli diff --git a/src/ape_ethereum/ecosystem.py b/src/ape_ethereum/ecosystem.py index 18b4a80efd..854c74e93b 100644 --- a/src/ape_ethereum/ecosystem.py +++ b/src/ape_ethereum/ecosystem.py @@ -207,7 +207,9 @@ class Ethereum(EcosystemAPI): @property def config(self) -> EthereumConfig: - return self.config_manager.get_config("ethereum") # type: ignore + result = self.config_manager.get_config("ethereum") + assert isinstance(result, EthereumConfig) # For mypy + return result @property def default_transaction_type(self) -> TransactionType: diff --git a/src/ape_ethereum/transactions.py b/src/ape_ethereum/transactions.py index 51a67cea55..65d8f8bbcc 100644 --- a/src/ape_ethereum/transactions.py +++ b/src/ape_ethereum/transactions.py @@ -121,10 +121,7 @@ class AccessListTransaction(BaseTransaction): @validator("type", allow_reuse=True) def check_type(cls, value): - if isinstance(value, TransactionType): - return value.value - - return value + return value.value if isinstance(value, TransactionType) else value class Receipt(ReceiptAPI): diff --git a/src/ape_geth/provider.py b/src/ape_geth/provider.py index f214e7fff6..65d0e9ebc5 100644 --- a/src/ape_geth/provider.py +++ b/src/ape_geth/provider.py @@ -503,7 +503,8 @@ def disconnect(self): self._process = None # Also unset the subprocess-provider reference. - self.process = None + # NOTE: Type ignore is wrong; TODO: figure out why. + self.process = None # type: ignore[assignment] super().disconnect() @@ -670,7 +671,10 @@ def http_provider(): def ipc_provider(): # NOTE: This mypy complaint seems incorrect. - return IPCProvider(ipc_path=ipc_path) # type: ignore[arg-type] + if not (path := ipc_path): + raise ValueError("IPC Path required.") + + return IPCProvider(ipc_path=path) # NOTE: This tuple is ordered by try-attempt. # Try ENV, then IPC, and then HTTP last. diff --git a/src/ape_test/_cli.py b/src/ape_test/_cli.py index 4f989cc649..f8557cc335 100644 --- a/src/ape_test/_cli.py +++ b/src/ape_test/_cli.py @@ -8,8 +8,8 @@ import click import pytest -from watchdog import events # type: ignore -from watchdog.observers import Observer # type: ignore +from watchdog import events +from watchdog.observers import Observer from ape.cli import ape_cli_context from ape.utils import ManagerAccessMixin, cached_property diff --git a/src/ape_test/provider.py b/src/ape_test/provider.py index 6ee20ad7b9..3cbb5e7db1 100644 --- a/src/ape_test/provider.py +++ b/src/ape_test/provider.py @@ -84,8 +84,9 @@ def estimate_gas_cost(self, txn: TransactionAPI, **kwargs) -> int: # Remove from dict before estimating txn_dict.pop("gas") + txn_data = cast(TxParams, txn_dict) try: - return estimate_gas(txn_dict, block_identifier=block_id) # type: ignore + return estimate_gas(txn_data, block_identifier=block_id) except (ValidationError, TransactionFailed) as err: ape_err = self.get_virtual_machine_error(err, txn=txn) gas_match = self._INVALID_NONCE_PATTERN.match(str(ape_err)) diff --git a/tests/functional/test_contract_instance.py b/tests/functional/test_contract_instance.py index 9daea52582..2514722591 100644 --- a/tests/functional/test_contract_instance.py +++ b/tests/functional/test_contract_instance.py @@ -227,7 +227,7 @@ def test_structs(contract_instance, owner, chain): # Expected: b == block.prevhash. assert actual.b == actual["b"] == actual[1] == actual_prev_block == chain.blocks[-2].hash - assert type(actual.b) is HexBytes + assert isinstance(actual.b, bytes) def test_nested_structs(contract_instance, owner, chain): @@ -254,7 +254,7 @@ def test_nested_structs(contract_instance, owner, chain): == actual_prev_block_1 == chain.blocks[-2].hash ) - assert type(actual_1.t.b) is HexBytes + assert isinstance(actual_1.t.b, bytes) assert ( actual_2.t.b == actual_2.t["b"] @@ -262,7 +262,7 @@ def test_nested_structs(contract_instance, owner, chain): == actual_prev_block_2 == chain.blocks[-2].hash ) - assert type(actual_2.t.b) is HexBytes + assert isinstance(actual_2.t.b, bytes) def test_nested_structs_in_tuples(contract_instance, owner, chain): From 9fa1a936b04961a198aa326e4360314f6dedd557 Mon Sep 17 00:00:00 2001 From: antazoey Date: Wed, 27 Sep 2023 14:52:28 -0500 Subject: [PATCH 04/22] fix: issue where could not decode array of addresses [APE-1420] (#1679) --- src/ape/contracts/base.py | 19 +++++++++++++---- src/ape/types/__init__.py | 21 ++++++++++++++++--- src/ape/utils/abi.py | 13 ++++++++++-- src/ape_ethereum/ecosystem.py | 7 ++++++- .../ethereum/local/solidity_contract.json | 2 +- .../ethereum/local/vyper_contract.json | 2 +- .../data/sources/TestContractSol.sol | 14 +++++++++++++ .../functional/data/sources/TestContractVy.vy | 13 ++++++++++++ tests/functional/test_contract_event.py | 8 +++++++ 9 files changed, 87 insertions(+), 12 deletions(-) diff --git a/src/ape/contracts/base.py b/src/ape/contracts/base.py index d9f4c04ae8..a463018ea4 100644 --- a/src/ape/contracts/base.py +++ b/src/ape/contracts/base.py @@ -1,3 +1,4 @@ +import difflib import types from functools import partial from itertools import islice @@ -469,10 +470,20 @@ def __call__(self, *args: Any, **kwargs: Any) -> MockContractLog: event_args.update(kwargs) # Check that event_args.keys() is a subset of the expected input names - if unknown_input_names := set(event_args.keys()) - {ipt.name for ipt in self.abi.inputs}: - raise ValueError( - f"Invalid argument keys found, expected subset of {', '.join(unknown_input_names)}" - ) + keys_given = set(event_args.keys()) + keys_expected = {ipt.name for ipt in self.abi.inputs} + if unknown_input_names := keys_given - keys_expected: + message = "Unknown keys: " + sections = [] + for unknown in unknown_input_names: + if matches := difflib.get_close_matches(unknown, keys_expected, n=1, cutoff=0.5): + matches_str = ", ".join(matches) + sections.append(f"{unknown} (did you mean: '{matches_str}'?)") + else: + sections.append(unknown) + + message = f"{message} '{', '.join(sections)}'" + raise ValueError(message) # Convert the arguments using the conversion manager converted_args = {} diff --git a/src/ape/types/__init__.py b/src/ape/types/__init__.py index 8eef9aa6c8..54395a931e 100644 --- a/src/ape/types/__init__.py +++ b/src/ape/types/__init__.py @@ -342,6 +342,21 @@ def get(self, item: str, default: Optional[Any] = None) -> Any: return self.event_arguments.get(item, default) +def _equal_event_inputs(mock_input: Any, real_input: Any) -> bool: + if mock_input is None: + # Check is skipped. + return True + + elif isinstance(mock_input, (list, tuple)): + if not isinstance(real_input, (list, tuple)) or len(real_input) != len(mock_input): + return False + + return all(_equal_event_inputs(m, r) for m, r in zip(mock_input, real_input)) + + else: + return mock_input == real_input + + class MockContractLog(BaseContractLog): """ A mock version of the ContractLog class used for testing purposes. @@ -365,9 +380,9 @@ def __eq__(self, other: Any) -> bool: # NOTE: `self.event_arguments` contains a subset of items from `other.event_arguments`, # but we skip those the user doesn't care to check for name, value in self.event_arguments.items(): - # Make sure `value` is not `None` (user explicitly set it `None`) - # NOTE: `other.event_arguments[name]` will raise `IndexError` only if ABIs don't match - if value is not None and value != other.event_arguments[name]: + other_input = other.event_arguments.get(name) + if not _equal_event_inputs(value, other_input): + # Only exit on False; Else, keep checking. return False return True diff --git a/src/ape/utils/abi.py b/src/ape/utils/abi.py index cd0f4a3fb9..25d6a97d60 100644 --- a/src/ape/utils/abi.py +++ b/src/ape/utils/abi.py @@ -77,7 +77,11 @@ def encode_input(self, values: Union[List, Tuple, Dict]) -> Any: return [self._encode(ipt, v) for ipt, v in zip(self.abi.inputs, values)] def decode_input(self, values: Union[Sequence, Dict[str, Any]]) -> Any: - return self._decode(self.abi.inputs, values) if isinstance(self.abi, EventABI) else None + return ( + self._decode(self.abi.inputs, values) + if isinstance(self.abi, (EventABI, MethodABI)) + else None + ) def _encode(self, _type: ABIType, value: Any): if ( @@ -380,7 +384,8 @@ def decode(self, topics: List[str], data: str, use_hex_on_fail: bool = False) -> else: # The data was formatted correctly and we were able to decode logs. - decoded[abi.name] = self.decode_value(abi_type, value) + result = self.decode_value(abi_type, value) + decoded[abi.name] = result data_abi_types = [abi.canonical_type for abi in self.data_abi_types] hex_data = decode_hex(data) if isinstance(data, str) else data @@ -427,6 +432,10 @@ def decode_value(self, abi_type: str, value: Any) -> Any: if abi_type == "bytes32": return HexBytes(value) + elif isinstance(value, (list, tuple)) and is_array(abi_type): + sub_type = "[".join(abi_type.split("[")[:-1]) + return [self.decode_value(sub_type, v) for v in value] + elif isinstance(value, (list, tuple)): parser = StructParser(self.abi) return parser.decode_input([value]) diff --git a/src/ape_ethereum/ecosystem.py b/src/ape_ethereum/ecosystem.py index 854c74e93b..7cef8c6796 100644 --- a/src/ape_ethereum/ecosystem.py +++ b/src/ape_ethereum/ecosystem.py @@ -697,7 +697,12 @@ def get_abi(_topic: HexStr) -> Optional[LogInputABICollection]: converted_arguments[key] = value elif _type == "address": - converted_arguments[key] = self.decode_primitive_value(value, _type) + converted_arguments[key] = self.decode_address(value) + + elif is_array(_type): + sub_type = "[".join(_type.split("[")[:-1]) + if sub_type == "address": + converted_arguments[key] = [self.decode_address(v) for v in value] else: # No change. diff --git a/tests/functional/data/contracts/ethereum/local/solidity_contract.json b/tests/functional/data/contracts/ethereum/local/solidity_contract.json index 4a12da0874..4f280cf0da 100644 --- a/tests/functional/data/contracts/ethereum/local/solidity_contract.json +++ b/tests/functional/data/contracts/ethereum/local/solidity_contract.json @@ -1 +1 @@ -{"abi":[{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"AddressChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"bar","type":"uint256"}],"name":"BarHappened","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"indexed":false,"internalType":"struct TestContractSol.MyStruct","name":"a_struct","type":"tuple"}],"name":"EventWithStruct","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"foo","type":"uint256"}],"name":"FooHappened","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"b","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"prevNum","type":"uint256"},{"indexed":false,"internalType":"string","name":"dynData","type":"string"},{"indexed":true,"internalType":"uint256","name":"newNum","type":"uint256"},{"indexed":true,"internalType":"string","name":"dynIndexed","type":"string"}],"name":"NumberChange","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fooAndBar","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a0","type":"uint256"},{"internalType":"uint256","name":"a1","type":"uint256"},{"internalType":"uint256","name":"a2","type":"uint256"},{"internalType":"uint256","name":"a3","type":"uint256"},{"internalType":"uint256","name":"a4","type":"uint256"},{"internalType":"uint256","name":"a5","type":"uint256"},{"internalType":"uint256","name":"a6","type":"uint256"},{"internalType":"uint256","name":"a7","type":"uint256"},{"internalType":"uint256","name":"a8","type":"uint256"},{"internalType":"uint256","name":"a9","type":"uint256"}],"name":"functionWithUniqueAmountOfArguments","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressArray","outputs":[{"internalType":"address[2]","name":"","type":"address[2]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getArrayWithBiggerSize","outputs":[{"internalType":"uint256[20]","name":"","type":"uint256[20]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDynamicStructArray","outputs":[{"components":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"},{"internalType":"uint256","name":"foo","type":"uint256"}],"internalType":"struct TestContractSol.NestedStruct1[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEmptyArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyDynArrayOfStructs","outputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs","outputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[3]","name":"","type":"tuple[3]"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfDynArrayStructs","outputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfIntAndDynArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFilledArray","outputs":[{"internalType":"uint256[3]","name":"","type":"uint256[3]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNamedSingleItem","outputs":[{"internalType":"uint256","name":"foo","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNestedAddressArray","outputs":[{"internalType":"address[3][]","name":"","type":"address[3][]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayDynamicFixed","outputs":[{"internalType":"uint256[2][]","name":"","type":"uint256[2][]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNestedArrayFixedDynamic","outputs":[{"internalType":"uint256[][3]","name":"","type":"uint256[][3]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayFixedFixed","outputs":[{"internalType":"uint256[2][3]","name":"","type":"uint256[2][3]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNestedArrayMixedDynamic","outputs":[{"internalType":"uint256[][3][][5]","name":"","type":"uint256[][3][][5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStruct1","outputs":[{"components":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"},{"internalType":"uint256","name":"foo","type":"uint256"}],"internalType":"struct TestContractSol.NestedStruct1","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStruct2","outputs":[{"components":[{"internalType":"uint256","name":"foo","type":"uint256"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"}],"internalType":"struct TestContractSol.NestedStruct2","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStructWithTuple1","outputs":[{"components":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"},{"internalType":"uint256","name":"foo","type":"uint256"}],"internalType":"struct TestContractSol.NestedStruct1","name":"","type":"tuple"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStructWithTuple2","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"uint256","name":"foo","type":"uint256"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"}],"internalType":"struct TestContractSol.NestedStruct2","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPartiallyNamedTuple","outputs":[{"internalType":"uint256","name":"foo","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getSingleItemArray","outputs":[{"internalType":"uint256[1]","name":"","type":"uint256[1]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getStaticStructArray","outputs":[{"components":[{"internalType":"uint256","name":"foo","type":"uint256"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"}],"internalType":"struct TestContractSol.NestedStruct2[3]","name":"","type":"tuple[3]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStruct","outputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStructWithArray","outputs":[{"components":[{"internalType":"uint256","name":"foo","type":"uint256"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[2]","name":"arr","type":"tuple[2]"},{"internalType":"uint256","name":"bar","type":"uint256"}],"internalType":"struct TestContractSol.WithArray","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTupleAllNamed","outputs":[{"internalType":"uint256","name":"foo","type":"uint256"},{"internalType":"uint256","name":"bar","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTupleOfAddressArray","outputs":[{"internalType":"address[20]","name":"","type":"address[20]"},{"internalType":"int128[20]","name":"","type":"int128[20]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTupleOfArrays","outputs":[{"internalType":"uint256[20]","name":"","type":"uint256[20]"},{"internalType":"uint256[20]","name":"","type":"uint256[20]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTupleOfIntAndStructArray","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"uint256","name":"one","type":"uint256"},{"internalType":"uint256","name":"two","type":"uint256"},{"internalType":"uint256","name":"three","type":"uint256"},{"internalType":"uint256","name":"four","type":"uint256"},{"internalType":"uint256","name":"five","type":"uint256"},{"internalType":"uint256","name":"six","type":"uint256"}],"internalType":"struct TestContractSol.IntStruct[5]","name":"","type":"tuple[5]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getUnnamedTuple","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"logStruct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"myNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"bal","type":"uint256"}],"name":"setBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"setNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"name":"setNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"_my_struct","type":"tuple"}],"name":"setStruct","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[2]","name":"_my_struct_array","type":"tuple[2]"}],"name":"setStructArray","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"theAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"ast":{"ast_type":"SourceUnit","children":[{"ast_type":"PragmaDirective","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":32}},{"ast_type":"ContractDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":88}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"owner","src":{"jump_code":"","length":20,"start":88}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":114}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":23,"start":114}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":143}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":25,"start":143}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":174}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"theAddress","src":{"jump_code":"","length":25,"start":174}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"Mapping","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":213}},{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":224}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":205}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"balances","src":{"jump_code":"","length":43,"start":205}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":254}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":254}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":264}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":254}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":21,"start":254}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":281}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":281}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":291}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":281}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":281}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":296}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":281}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":28,"start":281}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":316}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":343}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MAX_FOO","src":{"jump_code":"","length":28,"start":316}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bytes32","src":{"jump_code":"","length":7,"start":379}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"b","src":{"jump_code":"","length":9,"start":379}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":398}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNum","src":{"jump_code":"","length":15,"start":398}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"string","src":{"jump_code":"","length":6,"start":423}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynData","src":{"jump_code":"","length":14,"start":423}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":447}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"newNum","src":{"jump_code":"","length":22,"start":447}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"string","src":{"jump_code":"","length":6,"start":479}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynIndexed","src":{"jump_code":"","length":25,"start":479}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":141,"start":369}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NumberChange","src":{"jump_code":"","length":160,"start":351}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":546}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"newAddress","src":{"jump_code":"","length":26,"start":546}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":42,"start":536}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"AddressChange","src":{"jump_code":"","length":62,"start":517}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":612}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":19,"start":612}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":35,"start":602}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"FooHappened","src":{"jump_code":"","length":53,"start":585}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":671}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bar","src":{"jump_code":"","length":19,"start":671}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":35,"start":661}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"BarHappened","src":{"jump_code":"","length":53,"start":644}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":734}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":734}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a_struct","src":{"jump_code":"","length":17,"start":734}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":33,"start":724}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"EventWithStruct","src":{"jump_code":"","length":55,"start":703}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":790}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a","src":{"jump_code":"","length":9,"start":790}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bytes32","src":{"jump_code":"","length":7,"start":809}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"b","src":{"jump_code":"","length":9,"start":809}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":61,"start":764}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":862}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":862}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"t","src":{"jump_code":"","length":10,"start":862}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":882}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":882}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":69,"start":831}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":937}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":937}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":958}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":958}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"t","src":{"jump_code":"","length":10,"start":958}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":69,"start":906}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1008}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":1008}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":1029}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":1029}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1038}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":1029}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":15,"start":1029}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1054}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bar","src":{"jump_code":"","length":11,"start":1054}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"WithArray","src":{"jump_code":"","length":91,"start":981}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1105}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"one","src":{"jump_code":"","length":11,"start":1105}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1126}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"two","src":{"jump_code":"","length":11,"start":1126}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1147}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"three","src":{"jump_code":"","length":13,"start":1147}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1170}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"four","src":{"jump_code":"","length":12,"start":1170}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1192}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"five","src":{"jump_code":"","length":12,"start":1192}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1214}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"six","src":{"jump_code":"","length":11,"start":1214}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"IntStruct","src":{"jump_code":"","length":154,"start":1078}},{"ast_type":"ModifierDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":1277}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":1277}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"owner","src":{"jump_code":"","length":5,"start":1291}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":1277}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1298}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"require","src":{"jump_code":"","length":7,"start":1269}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":43,"start":1269}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":43,"start":1269}},{"ast_type":"PlaceholderStatement","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1322}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":71,"start":1259}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":1256}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"onlyOwner","src":{"jump_code":"","length":92,"start":1238}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":1371}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":1382}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1371}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1371}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"owner","src":{"jump_code":"","length":5,"start":1395}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":1403}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":1403}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1395}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1395}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1424}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1433}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":1424}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1444}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":1439}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":1439}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":1439}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":1438}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":1424}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":1424}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1457}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1466}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":1457}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1477}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":1472}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":1472}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":1472}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1481}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":1471}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":1457}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":1457}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1493}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1502}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":1493}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1513}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":1508}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":1508}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":1508}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1517}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1520}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":1507}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":1493}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":1493}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1552}},{"ast_type":"MemberAccess","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":10,"start":1533}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1544}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1533}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1533}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1533}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1533}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1590}},{"ast_type":"MemberAccess","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":10,"start":1571}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1582}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1571}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1571}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1571}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1571}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1628}},{"ast_type":"MemberAccess","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":10,"start":1609}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1620}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1609}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1609}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1609}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1609}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":283,"start":1361}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1348}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":11,"start":1348}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1347}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":1361}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":308,"start":1336}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1705}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"FooHappened","src":{"jump_code":"","length":11,"start":1693}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1693}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":1688}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1734}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"BarHappened","src":{"jump_code":"","length":11,"start":1722}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1722}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":1717}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":65,"start":1678}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":1668}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":1678}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"fooAndBar","src":{"jump_code":"","length":93,"start":1650}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":1816}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1823}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":1816}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"require","src":{"jump_code":"","length":7,"start":1808}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":1808}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":1808}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":10,"start":1835}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":1848}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":1835}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":1835}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":1866}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":1877}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1866}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1866}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"block","src":{"jump_code":"","length":5,"start":1918}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":1918}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1933}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":1918}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"blockhash","src":{"jump_code":"","length":9,"start":1908}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":1908}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":10,"start":1937}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":1949}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":1960}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":1965}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NumberChange","src":{"jump_code":"","length":12,"start":1895}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":80,"start":1895}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":85,"start":1890}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":184,"start":1798}},{"ast_type":"ModifierInvocation","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"onlyOwner","src":{"jump_code":"","length":9,"start":1788}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":1788}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1768}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":11,"start":1768}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1767}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":1798}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setNumber","src":{"jump_code":"","length":233,"start":1749}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":2147}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2154}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":2147}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"require","src":{"jump_code":"","length":7,"start":2139}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":2139}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":2139}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":10,"start":2166}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":2179}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2166}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2166}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":2197}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":2208}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":2197}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":2197}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"theAddress","src":{"jump_code":"","length":10,"start":2221}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":8,"start":2234}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2221}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2221}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"block","src":{"jump_code":"","length":5,"start":2280}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":2280}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2295}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":2280}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"blockhash","src":{"jump_code":"","length":9,"start":2270}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":2270}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":10,"start":2299}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":2311}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":2322}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":2327}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NumberChange","src":{"jump_code":"","length":12,"start":2257}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":80,"start":2257}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":85,"start":2252}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":289,"start":2055}},{"ast_type":"ModifierInvocation","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"onlyOwner","src":{"jump_code":"","length":9,"start":2045}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":2045}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":2007}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":11,"start":2007}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":2020}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":16,"start":2020}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":2006}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":2055}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setNumber","src":{"jump_code":"","length":356,"start":1988}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"theAddress","src":{"jump_code":"","length":10,"start":2405}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":8,"start":2418}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2405}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2405}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":8,"start":2455}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"AddressChange","src":{"jump_code":"","length":13,"start":2441}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":2441}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":2436}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":76,"start":2395}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":2370}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":16,"start":2370}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":2369}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":2395}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setAddress","src":{"jump_code":"","length":121,"start":2350}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"balances","src":{"jump_code":"","length":8,"start":2545}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":8,"start":2554}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":2545}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bal","src":{"jump_code":"","length":3,"start":2567}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":2545}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":2545}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":42,"start":2535}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":2497}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":16,"start":2497}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":2515}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bal","src":{"jump_code":"","length":11,"start":2515}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":2496}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":2535}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setBalance","src":{"jump_code":"","length":100,"start":2477}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":2667}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":2667}},{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"block","src":{"jump_code":"","length":5,"start":2689}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":2689}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2704}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":2689}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"blockhash","src":{"jump_code":"","length":9,"start":2679}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":2679}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":2658}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":49,"start":2658}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":56,"start":2651}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":73,"start":2641}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":2601}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":2624}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":2624}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":15,"start":2624}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":2623}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":131,"start":2583}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":2821}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":2821}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2834}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":2807}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":2807}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":2800}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":53,"start":2790}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":2745}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":2768}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":2768}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":2768}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":2767}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedStruct1","src":{"jump_code":"","length":123,"start":2720}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2950}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":2953}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":2953}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":2936}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":2936}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":2929}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":53,"start":2919}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":2874}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":2897}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":2897}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":2897}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":2896}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedStruct2","src":{"jump_code":"","length":123,"start":2849}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":3098}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3098}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3111}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":3084}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":3084}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3115}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":3083}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":41,"start":3076}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":58,"start":3066}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3012}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":3035}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":3035}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":3035}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":3057}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":3057}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3034}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedStructWithTuple1","src":{"jump_code":"","length":146,"start":2978}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3236}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3253}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":3256}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3256}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":3239}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":3239}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":3235}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":41,"start":3228}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":58,"start":3218}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3164}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":3187}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":3187}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":3196}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":3196}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":3196}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3186}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedStructWithTuple2","src":{"jump_code":"","length":146,"start":3130}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3368}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3368}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3368}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs","src":{"jump_code":"","length":29,"start":3368}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":3368}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs","src":{"jump_code":"","length":11,"start":3414}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":3407}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":74,"start":3358}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3316}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3339}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3339}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3339}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":3339}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":3338}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyDynArrayOfStructs","src":{"jump_code":"","length":150,"start":3282}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3548}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3548}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3548}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_0","src":{"jump_code":"","length":31,"start":3548}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3548}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3589}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3589}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3589}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_1","src":{"jump_code":"","length":31,"start":3589}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3589}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_0","src":{"jump_code":"","length":13,"start":3638}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_1","src":{"jump_code":"","length":13,"start":3653}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":30,"start":3637}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":3630}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":136,"start":3538}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3477}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3500}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3500}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3500}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":3500}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3519}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3519}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3519}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":3519}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":38,"start":3499}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyTupleOfDynArrayStructs","src":{"jump_code":"","length":236,"start":3438}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3810}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3810}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3819}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3810}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_0","src":{"jump_code":"","length":32,"start":3810}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":32,"start":3810}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3852}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3852}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3852}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_1","src":{"jump_code":"","length":31,"start":3852}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3852}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_0","src":{"jump_code":"","length":13,"start":3901}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_1","src":{"jump_code":"","length":13,"start":3916}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":30,"start":3900}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":3893}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":137,"start":3800}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3738}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3761}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3761}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3770}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3761}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":3761}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3781}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3781}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3781}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":3781}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":3760}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs","src":{"jump_code":"","length":257,"start":3680}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"IntStruct","src":{"jump_code":"","length":9,"start":4048}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4048}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MAX_FOO","src":{"jump_code":"","length":7,"start":4058}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4048}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"result","src":{"jump_code":"","length":32,"start":4048}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":32,"start":4048}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4098}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"result","src":{"jump_code":"","length":6,"start":4101}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4097}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4090}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":77,"start":4038}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3979}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4002}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":4002}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"IntStruct","src":{"jump_code":"","length":9,"start":4011}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4011}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MAX_FOO","src":{"jump_code":"","length":7,"start":4021}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4011}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":25,"start":4011}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":4001}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getTupleOfIntAndStructArray","src":{"jump_code":"","length":172,"start":3943}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4229}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4229}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_integers","src":{"jump_code":"","length":26,"start":4229}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":4229}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":4265}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":4265}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4265}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_structs","src":{"jump_code":"","length":26,"start":4265}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":4265}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_integers","src":{"jump_code":"","length":9,"start":4309}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_structs","src":{"jump_code":"","length":8,"start":4320}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":4308}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":4301}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":117,"start":4219}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4159}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4182}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4182}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":16,"start":4182}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":4200}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":4200}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4200}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":4200}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":4181}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyTupleOfIntAndDynArray","src":{"jump_code":"","length":215,"start":4121}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":4420}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":4420}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4429}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4420}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":22,"start":4420}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":4446}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4446}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":4459}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4459}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":4445}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":51,"start":4420}},{"ast_type":"Return","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4498}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":4501}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4506}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"WithArray","src":{"jump_code":"","length":9,"start":4488}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":20,"start":4488}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":4481}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":105,"start":4410}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4369}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"WithArray","src":{"jump_code":"","length":9,"start":4392}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4392}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":16,"start":4392}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4391}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStructWithArray","src":{"jump_code":"","length":173,"start":4342}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4594}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4594}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":21,"start":4594}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":4594}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":4632}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4625}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":59,"start":4584}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4543}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4566}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4566}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":16,"start":4566}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4565}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyArray","src":{"jump_code":"","length":122,"start":4521}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4728}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4736}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4728}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":22,"start":4728}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4762}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4754}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":4754}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4754}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":4753}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":4728}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":4782}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4775}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":75,"start":4718}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4676}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4699}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4707}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4699}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":4699}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":4698}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getSingleItemArray","src":{"jump_code":"","length":144,"start":4649}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4874}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4882}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4874}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":22,"start":4874}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4908}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4900}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":4900}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4900}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4920}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4912}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":4912}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4912}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4932}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4924}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":4924}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4924}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":4899}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":61,"start":4874}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":4952}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4945}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":99,"start":4864}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4822}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4845}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4853}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4845}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":4845}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":4844}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getFilledArray","src":{"jump_code":"","length":164,"start":4799}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":5045}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5053}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5045}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":22,"start":5045}},{"ast_type":"TupleExpression","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":5071}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5071}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":5083}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5083}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":5070}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":49,"start":5045}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5111}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5104}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":87,"start":5035}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4993}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":5016}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5024}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5016}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":5016}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":5015}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getAddressArray","src":{"jump_code":"","length":153,"start":4969}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5215}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5215}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":5215}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":27,"start":5215}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5265}},{"ast_type":"NewExpression","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5249}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5249}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":5249}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":5245}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":5245}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":52,"start":5215}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5277}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5282}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":5277}},{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5301}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5301}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5314}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5287}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5287}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":5277}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":5277}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5326}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5331}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":5326}},{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5350}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5350}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5363}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5336}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5336}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":5326}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":5326}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5382}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5375}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":188,"start":5205}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5158}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5181}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5181}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":5181}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":22,"start":5181}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":5180}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getDynamicStructArray","src":{"jump_code":"","length":265,"start":5128}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5484}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5484}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5498}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":5484}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":28,"start":5484}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5530}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5533}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5533}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5516}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5516}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5561}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5564}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5564}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5547}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5547}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5592}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5595}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5595}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5578}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5578}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":93,"start":5515}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":124,"start":5484}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5623}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5616}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":158,"start":5476}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5428}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5451}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5451}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5465}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":5451}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":23,"start":5451}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":5450}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStaticStructArray","src":{"jump_code":"","length":235,"start":5399}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5724}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5732}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5724}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":23,"start":5724}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":5724}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5764}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5757}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":61,"start":5714}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5671}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5694}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5702}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5694}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":5694}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":20,"start":5693}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getArrayWithBiggerSize","src":{"jump_code":"","length":135,"start":5640}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5879}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5887}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5879}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data0","src":{"jump_code":"","length":24,"start":5879}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":5879}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5913}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5921}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5913}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data1","src":{"jump_code":"","length":24,"start":5913}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":5913}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data0","src":{"jump_code":"","length":5,"start":5955}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data1","src":{"jump_code":"","length":5,"start":5962}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":5954}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":5947}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":106,"start":5869}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5806}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5829}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5837}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5829}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":5829}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5849}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5857}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5849}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":5849}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":40,"start":5828}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getTupleOfArrays","src":{"jump_code":"","length":194,"start":5781}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6061}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6054}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":6044}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6008}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6031}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":6031}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":6030}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNamedSingleItem","src":{"jump_code":"","length":90,"start":5981}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6169}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6174}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6168}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":6161}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":6151}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6102}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6125}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":6125}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6138}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bar","src":{"jump_code":"","length":11,"start":6138}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":6124}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getTupleAllNamed","src":{"jump_code":"","length":108,"start":6077}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6274}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6277}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":6273}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":6266}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":30,"start":6256}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6215}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6238}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":6238}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6247}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":6247}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":6237}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getUnnamedTuple","src":{"jump_code":"","length":95,"start":6191}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6386}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6391}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6385}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":6378}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":6368}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6323}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6346}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":6346}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6359}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":6359}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":6345}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getPartiallyNamedTuple","src":{"jump_code":"","length":110,"start":6292}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":6511}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6519}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6511}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"addresses","src":{"jump_code":"","length":28,"start":6511}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":6511}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"addresses","src":{"jump_code":"","length":9,"start":6549}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6559}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":6549}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":6564}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6564}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":6549}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":6549}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"int128","src":{"jump_code":"","length":6,"start":6584}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6591}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6584}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":22,"start":6584}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":6584}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"addresses","src":{"jump_code":"","length":9,"start":6624}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":6635}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":6623}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":6616}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":146,"start":6501}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6439}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":6462}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6470}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6462}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":6462}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"int128","src":{"jump_code":"","length":6,"start":6482}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6489}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6482}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":6482}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":6461}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getTupleOfAddressArray","src":{"jump_code":"","length":239,"start":6408}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6741}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6746}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6741}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6749}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6741}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":21,"start":6741}},{"ast_type":"TupleExpression","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6772}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6767}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":6767}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6767}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6775}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6766}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6785}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6780}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":6780}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6780}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6789}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":6779}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6799}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6794}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":6794}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6794}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6803}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":6793}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":41,"start":6765}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":65,"start":6741}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":6823}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6816}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":102,"start":6731}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6686}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6709}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6717}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6709}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6720}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":6709}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":6709}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":6708}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedArrayFixedFixed","src":{"jump_code":"","length":180,"start":6653}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6928}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6933}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6928}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":6928}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":20,"start":6928}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6965}},{"ast_type":"NewExpression","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6955}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6960}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6955}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":6955}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":6951}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":6951}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":6928}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":6977}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6981}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":6977}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6992}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6987}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":6987}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6987}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6996}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":6986}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":6977}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":6977}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7008}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7012}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":7008}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7023}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":7018}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":7018}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":7018}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7027}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7017}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7008}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7008}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7039}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7043}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":7039}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7054}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":7049}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":7049}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":7049}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7058}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7048}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7039}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7039}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7077}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7070}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":169,"start":6918}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6874}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6897}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6905}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6897}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":6897}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":19,"start":6897}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":6896}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedArrayDynamicFixed","src":{"jump_code":"","length":248,"start":6839}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":7189}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":7182}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":32,"start":7172}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":7128}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7151}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":7151}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7161}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7151}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":19,"start":7151}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7150}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedArrayFixedDynamic","src":{"jump_code":"","length":111,"start":7093}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":10,"start":7311}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":7304}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":7294}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":7245}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7268}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":7268}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7278}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7268}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":7268}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7283}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":7268}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":24,"start":7268}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":7267}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedArrayMixedDynamic","src":{"jump_code":"","length":118,"start":7210}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":7418}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7426}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7418}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7418}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":23,"start":7418}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7461}},{"ast_type":"NewExpression","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":7448}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7456}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7448}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7448}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":7444}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":7444}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":45,"start":7418}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7473}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7477}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":7473}},{"ast_type":"TupleExpression","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":7483}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7483}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":7495}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7495}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":7507}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7507}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":7482}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":45,"start":7473}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":45,"start":7473}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7535}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7528}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":137,"start":7408}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":7364}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":7387}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7395}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7387}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7387}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":19,"start":7387}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7386}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedAddressArray","src":{"jump_code":"","length":211,"start":7334}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":7814}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7605}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a0","src":{"jump_code":"","length":10,"start":7605}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7625}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a1","src":{"jump_code":"","length":10,"start":7625}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7645}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a2","src":{"jump_code":"","length":10,"start":7645}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7665}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a3","src":{"jump_code":"","length":10,"start":7665}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7685}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a4","src":{"jump_code":"","length":10,"start":7685}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7705}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a5","src":{"jump_code":"","length":10,"start":7705}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7725}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a6","src":{"jump_code":"","length":10,"start":7725}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7745}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a7","src":{"jump_code":"","length":10,"start":7745}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7765}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a8","src":{"jump_code":"","length":10,"start":7765}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7785}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a9","src":{"jump_code":"","length":10,"start":7785}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":206,"start":7595}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":7814}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"functionWithUniqueAmountOfArguments","src":{"jump_code":"","length":271,"start":7551}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":7887}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":7847}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":7847}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_struct","src":{"jump_code":"","length":26,"start":7847}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":7846}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":7887}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setStruct","src":{"jump_code":"","length":67,"start":7828}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":7974}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":7925}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":7925}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7934}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":7925}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_struct_array","src":{"jump_code":"","length":35,"start":7925}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":7924}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":7974}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setStructArray","src":{"jump_code":"","length":81,"start":7901}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bytes32","src":{"jump_code":"","length":7,"start":8026}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_bytes","src":{"jump_code":"","length":14,"start":8026}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":66,"start":8043}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":83,"start":8026}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":8119}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":8119}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_struct","src":{"jump_code":"","length":23,"start":8119}},{"ast_type":"FunctionCall","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":8154}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":8154}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_bytes","src":{"jump_code":"","length":6,"start":8166}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":8145}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":8145}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":54,"start":8119}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_struct","src":{"jump_code":"","length":7,"start":8204}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"EventWithStruct","src":{"jump_code":"","length":15,"start":8188}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":8188}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":8183}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":203,"start":8016}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":8006}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":8016}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"logStruct","src":{"jump_code":"","length":231,"start":7988}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"TestContractSol","src":{"jump_code":"","length":8164,"start":57}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8190,"start":32}},"contractName":"TestContractSol","deploymentBytecode":{"bytecode":"0x608060405234801562000010575f80fd5b5060405162001dc538038062001dc583398101604081905262000033916200029c565b60018181555f80546001600160a01b0319163317815560408051602081019091529081526200006691600591906200016f565b50604080518082019091525f8152600160208201526200008b9060069060026200016f565b50604080516060810182525f815260016020820152600291810191909152620000b99060079060036200016f565b50600880546001810182555f91909152620000ff9060039081027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600590620001bd565b50600980546001810182555f91909152620001339060039081025f8051602062001da58339815191520190600590620001bd565b50600980546001810182555f91909152620001679060039081025f8051602062001da58339815191520190600590620001bd565b5050620002b4565b828054828255905f5260205f20908101928215620001ab579160200282015b82811115620001ab5782518255916020019190600101906200018e565b50620001b992915062000207565b5090565b8260038101928215620001f9579182015b82811115620001f9578254620001e890839085906200021d565b5091600101919060010190620001ce565b50620001b99291506200025c565b5b80821115620001b9575f815560010162000208565b828054828255905f5260205f20908101928215620001ab575f5260205f209182015b82811115620001ab5782548255916001019190600101906200023f565b80821115620001b9575f6200027282826200027c565b506001016200025c565b5080545f8255905f5260205f209081019062000299919062000207565b50565b5f60208284031215620002ad575f80fd5b5051919050565b611ae380620002c25f395ff3fe608060405234801561000f575f80fd5b5060043610610260575f3560e01c80637a79591d1161014b578063a5b0930d116100bf578063c2f1483911610084578063c2f1483914610527578063ccd62aa41461053d578063d4d64b3514610552578063e30081a014610568578063e30443bc1461057b578063e9f7fd141461058e575f80fd5b8063a5b0930d146104bd578063a5c1b662146104d2578063abeb2022146104e3578063acab48d8146104f8578063b345ad9614610512575f80fd5b806399e74a4c1161011057806399e74a4c146104445780639bfb2ad8146104595780639e6b154b1461046e578063a2fbee5314610481578063a420b5a514610497578063a4f6d26b146104ac575f80fd5b80637a79591d146103ea5780637b92b7ce146103f95780638ba6052d146104075780638da5cb5b1461041d57806394a66fc91461042f575f80fd5b806335417bf4116101e25780634825cf6f116101a75780634825cf6f1461038657806348d17a781461038f57806351c039801461038f5780636126c87f146103995780636cbceeec146103ae57806378c067b0146103d9575f80fd5b806335417bf41461031f5780633ce80e94146103345780633fb5c1cb1461034957806342ce1ec61461035c57806343790b6414610371575f80fd5b806323fd0e401161022857806323fd0e40146102c1578063243e0963146102ca578063252e423e146102e257806327e235e3146102f85780632beb171114610317575f80fd5b806302f487d614610264578063039b504414610282578063052f3e761461029357806309b1b3f2146102a2578063136af17f146102b7575b5f80fd5b61026c6105a4565b60405161027991906111b1565b60405180910390f35b607b5b604051908152602001610279565b606060405161027991906111fe565b6102aa6105ce565b6040516102799190611217565b6102bf610605565b005b61028560015481565b5f805b60408051928352602083019190915201610279565b6102ea610674565b604051610279929190611282565b6102856103063660046112f9565b60046020525f908152604090205481565b6102bf61068f565b6103276106e6565b6040516102799190611312565b61033c610710565b6040516102799190611342565b6102bf610357366004611389565b61078c565b61036461087c565b60405161027991906113a0565b6103796108c9565b604051610279919061142b565b61028560025481565b607b6101416102cd565b6103a16108de565b604051610279919061146d565b6003546103c1906001600160a01b031681565b6040516001600160a01b039091168152602001610279565b6102bf6103e736600461151f565b50565b60606040516102799190611539565b6102bf6103e736600461154b565b61040f6109b9565b6040516102799291906115b1565b5f546103c1906001600160a01b031681565b6104376109e5565b6040516102799190611684565b61044c610a6f565b6040516102799190611696565b610461610ad4565b6040516102799190611708565b6102bf61047c366004611749565b610b74565b610489610c7b565b604051610279929190611773565b61049f610cab565b60405161027991906117a5565b6060806040516102799291906117ce565b6104c5610cd4565b60405161027991906117fb565b60608060405161027992919061182b565b6104eb610cf3565b604051610279919061183d565b6102bf6105063660046118d3565b50505050505050505050565b61051a610dec565b6040516102799190611935565b61052f610e07565b604051610279929190611966565b610545610e21565b60405161027991906119d2565b61055a610e81565b6040516102799291906119ff565b6102bf6105763660046112f9565b610ea1565b6102bf610589366004611a1c565b610eea565b610596610f1a565b604051610279929190611a44565b6105ac610f4a565b60405180604001604052806105bf6105ce565b81526020016001815250905090565b604080518082019091525f808252602082015260408051808201909152338152602081016105fd600143611a73565b409052919050565b6040805180820182523381527f1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef6020820181905291517fa731a78d94f9b7de7d6ab1ba8b80641702fa1c4a60a45d52c8db2bbc0a2e80a890610668908390611217565b60405180910390a15050565b61067c610f73565b6060610686610f73565b92606092509050565b6040515f907f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd908290a26040516001907fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced5905f90a2565b6106ee610fab565b5060408051606081018252600181526002602082015260039181019190915290565b610718610fc9565b5f604051806060016040528060405180604001604052806001815260200161073e6105ce565b81525081526020016040518060400160405280600281526020016107606105ce565b81525081526020016040518060400160405280600381526020016107826105ce565b9052905292915050565b5f546001600160a01b031633146107d85760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b806005036107e4575f80fd5b600180546002558190556040516644796e616d696360c81b8152600701604051908190039020817fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f968610837600143611a73565b4060025460405161087192919091825260208201526060604082018190526007908201526644796e616d696360c81b608082015260a00190565b60405180910390a350565b610884610ff6565b5f60405180604001604052806108986105ce565b81526020016108a56105ce565b90526040805160608101825260018152602081019290925260029082015292915050565b6108d161100f565b6108d961100f565b919050565b604080516003808252608082019092526060915f9190816020015b61090161102e565b8152602001906001900390816108f95790505090506040518060400160405280600181526020016002815250815f8151811061093f5761093f611a86565b602002602001018190525060405180604001604052806003815260200160048152508160018151811061097457610974611a86565b60200260200101819052506040518060400160405280600581526020016006815250816002815181106109a9576109a9611a86565b6020908102919091010152919050565b6109c161100f565b6109c961100f565b6109d161100f565b3381526109dc61100f565b90939092509050565b6109ed61104c565b6040805160608101909152600560035f835b82821015610a6657838201805480602002602001604051908101604052809291908181526020018280548015610a5257602002820191905f5260205f20905b815481526020019060010190808311610a3e575b5050505050815260200190600101906109ff565b50505050905090565b60408051600280825260608281019093525f9190816020015b610a90610fab565b815260200190600190039081610a885750506040805160608101825233808252602082018190529181019190915281519192509082905f906109a9576109a9611a86565b60408051600280825260608281019093525f9190816020015b610af5610f4a565b815260200190600190039081610aed5790505090506040518060400160405280610b1d6105ce565b81526020016001815250815f81518110610b3957610b39611a86565b60200260200101819052506040518060400160405280610b576105ce565b81526020016002815250816001815181106109a9576109a9611a86565b5f546001600160a01b03163314610bbb5760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064016107cf565b81600503610bc7575f80fd5b60018054600255829055600380546001600160a01b0319166001600160a01b0383161790556040516644796e616d696360c81b8152600701604051908190039020827fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f968610c35600143611a73565b40600254604051610c6f92919091825260208201526060604082018190526007908201526644796e616d696360c81b608082015260a00190565b60405180910390a35050565b5f610c84611073565b6002604051806040016040528060028152602001610ca06105ce565b815250915091509091565b610cb3611073565b604051806040016040528060028152602001610ccd6105ce565b9052919050565b610cdc61102e565b506040805180820190915233808252602082015290565b610cfb6110a2565b6040805160a08101909152600860055f835b82821015610a6657838201805480602002602001604051908101604052809291908181526020015f905b82821015610dd9575f8481526020812060408051606081019091529160038086029092019190835b82821015610dc657838201805480602002602001604051908101604052809291908181526020018280548015610db257602002820191905f5260205f20905b815481526020019060010190808311610d9e575b505050505081526020019060010190610d5f565b5050505081526020019060010190610d37565b5050505081526020019060010190610d0d565b610df46110bc565b5060408051602081019091526001815290565b5f610e106110da565b610e186110da565b5f939092509050565b610e29611132565b506040805160a081018252600160608201908152600260808301528152815180830183526003815260046020828101919091528083019190915282518084018452600581526006918101919091529181019190915290565b610e8961100f565b610e9161100f565b610e9961100f565b6109dc61100f565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a9905f90a250565b6001600160a01b0382165f9081526004602052604081208054839290610f11908490611a9a565b90915550505050565b610f22610f4a565b5f6040518060400160405280610f366105ce565b815260200160018152506001915091509091565b604080516080810182525f91810182815260608201929092529081905b81526020015f81525090565b60405180606001604052806003905b604080518082019091525f8082526020820152815260200190600190039081610f825790505090565b60405180606001604052806003906020820280368337509192915050565b60405180606001604052806003905b610fe0611073565b815260200190600190039081610fd85790505090565b60405180606001604052805f8152602001610f6761115f565b6040518061028001604052806014906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003905b606081526020019060019003908161105b5790505090565b60405180604001604052805f815260200161109d604080518082019091525f808252602082015290565b905290565b6040805160a081019091526060815260046020820161105b565b60405180602001604052806001906020820280368337509192915050565b6040518060a001604052806005905b61111c6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001906001900390816110e95790505090565b60405180606001604052806003905b61114961102e565b8152602001906001900390816111415790505090565b604080516080810182525f9181018281526060820192909252908152600160208201610f82565b6111a482825180516001600160a01b03168252602090810151910152565b6020015160409190910152565b606081016111bf8284611186565b92915050565b5f8151808452602080850194508084015f5b838110156111f3578151875295820195908201906001016111d7565b509495945050505050565b602081525f61121060208301846111c5565b9392505050565b81516001600160a01b0316815260208083015190820152604081016111bf565b5f8151808452602080850194508084015f5b838110156111f35761126f87835180516001600160a01b03168252602090810151910152565b6040969096019590820190600101611249565b5f8184825b60038110156112c4576112ae83835180516001600160a01b03168252602090810151910152565b6040929092019160209190910190600101611287565b50505060e060c08301526112db60e0830184611237565b949350505050565b80356001600160a01b03811681146108d9575f80fd5b5f60208284031215611309575f80fd5b611210826112e3565b6060810181835f5b600381101561133957815183526020928301929091019060010161131a565b50505092915050565b610120810181835f5b60038110156113395781518051845260209081015180516001600160a01b03168286015281015160408501526060909301929091019060010161134b565b5f60208284031215611399575f80fd5b5035919050565b8151815260208083015160c0830191908184015f5b60028110156113ef576113dc82845180516001600160a01b03168252602090810151910152565b91830191604091909101906001016113b5565b50505050604083015160a083015292915050565b805f5b6014811015611425578151845260209384019390910190600101611406565b50505050565b61028081016111bf8284611403565b5f8282825b600281101561145e57815183526020928301929091019060010161143f565b50505060408301905092915050565b602080825282518282018190525f9190848201906040850190845b818110156114a95761149b83855161143a565b938501939250600101611488565b50909695505050505050565b6040805190810167ffffffffffffffff811182821017156114e457634e487b7160e01b5f52604160045260245ffd5b60405290565b5f604082840312156114fa575f80fd5b6115026114b5565b905061150d826112e3565b81526020820135602082015292915050565b5f6040828403121561152f575f80fd5b61121083836114ea565b602081525f6112106020830184611237565b5f6080828403121561155b575f80fd5b82601f830112611569575f80fd5b6115716114b5565b806080840185811115611582575f80fd5b845b818110156115a65761159687826114ea565b8452602090930192604001611584565b509095945050505050565b610500810181845f5b60148110156115e25781516001600160a01b03168352602092830192909101906001016115ba565b5050506102808201835f5b601481101561160f578151600f0b8352602092830192909101906001016115ed565b5050509392505050565b5f8260608101835f805b6003811015611678578484038852825180518086526020918201918087019190855b8281101561166157845184529381019392810192600101611645565b509a8b019a91965050939093019250600101611623565b50919695505050505050565b602081525f6112106020830184611619565b602080825282518282018190525f919084820190604085019084805b828110156116fb57845184835b60038110156116e55782516001600160a01b0316825291880191908801906001016116bf565b50505093850193606093909301926001016116b2565b5091979650505050505050565b602080825282518282018190525f9190848201906040850190845b818110156114a957611736838551611186565b9284019260609290920191600101611723565b5f806040838503121561175a575f80fd5b8235915061176a602084016112e3565b90509250929050565b8281526080810161121060208301848051825260209081015180516001600160a01b0316828401520151604090910152565b8151815260208083015180516001600160a01b03168284015201516040820152606081016111bf565b604081525f6117e06040830185611237565b82810360208401526117f28185611237565b95945050505050565b6040810181835f5b60028110156113395781516001600160a01b0316835260209283019290910190600101611803565b604081525f6117e060408301856111c5565b60208082525f9060c083018382018584805b600580821061185e57506118c6565b601f1989870381018652845180518089529283901b88018901929089019089890190865b818110156118ae57848b870301835261189c868551611619565b9550928b0192918b0191600101611882565b5093985050509487019450509185019160010161184f565b5092979650505050505050565b5f805f805f805f805f806101408b8d0312156118ed575f80fd5b505088359a60208a01359a5060408a013599606081013599506080810135985060a0810135975060c0810135965060e081013595506101008101359450610120013592509050565b60208181019082845f5b600181101561195c5781518352918301919083019060010161193f565b5050505092915050565b8281526103e081016020808301845f5b60058110156119c757815180518452848101518585015260408082015190850152606080820151908501526080808201519085015260a0908101519084015260c09092019190830190600101611976565b505050509392505050565b60c0810181835f5b6003811015611339576119ee83835161143a565b9250602091909101906001016119da565b6105008101611a0e8285611403565b611210610280830184611403565b5f8060408385031215611a2d575f80fd5b611a36836112e3565b946020939093013593505050565b60808101611a528285611186565b8260608301529392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156111bf576111bf611a5f565b634e487b7160e01b5f52603260045260245ffd5b808201808211156111bf576111bf611a5f56fea2646970667358221220d3d0c32397c3be711567f1e53b6bb00f32e93f7c819576aaa42408e2b4ec41c164736f6c634300081500336e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af"},"devdoc":{"kind":"dev","methods":{},"version":1},"runtimeBytecode":{"bytecode":"0x608060405234801561000f575f80fd5b5060043610610260575f3560e01c80637a79591d1161014b578063a5b0930d116100bf578063c2f1483911610084578063c2f1483914610527578063ccd62aa41461053d578063d4d64b3514610552578063e30081a014610568578063e30443bc1461057b578063e9f7fd141461058e575f80fd5b8063a5b0930d146104bd578063a5c1b662146104d2578063abeb2022146104e3578063acab48d8146104f8578063b345ad9614610512575f80fd5b806399e74a4c1161011057806399e74a4c146104445780639bfb2ad8146104595780639e6b154b1461046e578063a2fbee5314610481578063a420b5a514610497578063a4f6d26b146104ac575f80fd5b80637a79591d146103ea5780637b92b7ce146103f95780638ba6052d146104075780638da5cb5b1461041d57806394a66fc91461042f575f80fd5b806335417bf4116101e25780634825cf6f116101a75780634825cf6f1461038657806348d17a781461038f57806351c039801461038f5780636126c87f146103995780636cbceeec146103ae57806378c067b0146103d9575f80fd5b806335417bf41461031f5780633ce80e94146103345780633fb5c1cb1461034957806342ce1ec61461035c57806343790b6414610371575f80fd5b806323fd0e401161022857806323fd0e40146102c1578063243e0963146102ca578063252e423e146102e257806327e235e3146102f85780632beb171114610317575f80fd5b806302f487d614610264578063039b504414610282578063052f3e761461029357806309b1b3f2146102a2578063136af17f146102b7575b5f80fd5b61026c6105a4565b60405161027991906111b1565b60405180910390f35b607b5b604051908152602001610279565b606060405161027991906111fe565b6102aa6105ce565b6040516102799190611217565b6102bf610605565b005b61028560015481565b5f805b60408051928352602083019190915201610279565b6102ea610674565b604051610279929190611282565b6102856103063660046112f9565b60046020525f908152604090205481565b6102bf61068f565b6103276106e6565b6040516102799190611312565b61033c610710565b6040516102799190611342565b6102bf610357366004611389565b61078c565b61036461087c565b60405161027991906113a0565b6103796108c9565b604051610279919061142b565b61028560025481565b607b6101416102cd565b6103a16108de565b604051610279919061146d565b6003546103c1906001600160a01b031681565b6040516001600160a01b039091168152602001610279565b6102bf6103e736600461151f565b50565b60606040516102799190611539565b6102bf6103e736600461154b565b61040f6109b9565b6040516102799291906115b1565b5f546103c1906001600160a01b031681565b6104376109e5565b6040516102799190611684565b61044c610a6f565b6040516102799190611696565b610461610ad4565b6040516102799190611708565b6102bf61047c366004611749565b610b74565b610489610c7b565b604051610279929190611773565b61049f610cab565b60405161027991906117a5565b6060806040516102799291906117ce565b6104c5610cd4565b60405161027991906117fb565b60608060405161027992919061182b565b6104eb610cf3565b604051610279919061183d565b6102bf6105063660046118d3565b50505050505050505050565b61051a610dec565b6040516102799190611935565b61052f610e07565b604051610279929190611966565b610545610e21565b60405161027991906119d2565b61055a610e81565b6040516102799291906119ff565b6102bf6105763660046112f9565b610ea1565b6102bf610589366004611a1c565b610eea565b610596610f1a565b604051610279929190611a44565b6105ac610f4a565b60405180604001604052806105bf6105ce565b81526020016001815250905090565b604080518082019091525f808252602082015260408051808201909152338152602081016105fd600143611a73565b409052919050565b6040805180820182523381527f1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef6020820181905291517fa731a78d94f9b7de7d6ab1ba8b80641702fa1c4a60a45d52c8db2bbc0a2e80a890610668908390611217565b60405180910390a15050565b61067c610f73565b6060610686610f73565b92606092509050565b6040515f907f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd908290a26040516001907fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced5905f90a2565b6106ee610fab565b5060408051606081018252600181526002602082015260039181019190915290565b610718610fc9565b5f604051806060016040528060405180604001604052806001815260200161073e6105ce565b81525081526020016040518060400160405280600281526020016107606105ce565b81525081526020016040518060400160405280600381526020016107826105ce565b9052905292915050565b5f546001600160a01b031633146107d85760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b806005036107e4575f80fd5b600180546002558190556040516644796e616d696360c81b8152600701604051908190039020817fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f968610837600143611a73565b4060025460405161087192919091825260208201526060604082018190526007908201526644796e616d696360c81b608082015260a00190565b60405180910390a350565b610884610ff6565b5f60405180604001604052806108986105ce565b81526020016108a56105ce565b90526040805160608101825260018152602081019290925260029082015292915050565b6108d161100f565b6108d961100f565b919050565b604080516003808252608082019092526060915f9190816020015b61090161102e565b8152602001906001900390816108f95790505090506040518060400160405280600181526020016002815250815f8151811061093f5761093f611a86565b602002602001018190525060405180604001604052806003815260200160048152508160018151811061097457610974611a86565b60200260200101819052506040518060400160405280600581526020016006815250816002815181106109a9576109a9611a86565b6020908102919091010152919050565b6109c161100f565b6109c961100f565b6109d161100f565b3381526109dc61100f565b90939092509050565b6109ed61104c565b6040805160608101909152600560035f835b82821015610a6657838201805480602002602001604051908101604052809291908181526020018280548015610a5257602002820191905f5260205f20905b815481526020019060010190808311610a3e575b5050505050815260200190600101906109ff565b50505050905090565b60408051600280825260608281019093525f9190816020015b610a90610fab565b815260200190600190039081610a885750506040805160608101825233808252602082018190529181019190915281519192509082905f906109a9576109a9611a86565b60408051600280825260608281019093525f9190816020015b610af5610f4a565b815260200190600190039081610aed5790505090506040518060400160405280610b1d6105ce565b81526020016001815250815f81518110610b3957610b39611a86565b60200260200101819052506040518060400160405280610b576105ce565b81526020016002815250816001815181106109a9576109a9611a86565b5f546001600160a01b03163314610bbb5760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064016107cf565b81600503610bc7575f80fd5b60018054600255829055600380546001600160a01b0319166001600160a01b0383161790556040516644796e616d696360c81b8152600701604051908190039020827fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f968610c35600143611a73565b40600254604051610c6f92919091825260208201526060604082018190526007908201526644796e616d696360c81b608082015260a00190565b60405180910390a35050565b5f610c84611073565b6002604051806040016040528060028152602001610ca06105ce565b815250915091509091565b610cb3611073565b604051806040016040528060028152602001610ccd6105ce565b9052919050565b610cdc61102e565b506040805180820190915233808252602082015290565b610cfb6110a2565b6040805160a08101909152600860055f835b82821015610a6657838201805480602002602001604051908101604052809291908181526020015f905b82821015610dd9575f8481526020812060408051606081019091529160038086029092019190835b82821015610dc657838201805480602002602001604051908101604052809291908181526020018280548015610db257602002820191905f5260205f20905b815481526020019060010190808311610d9e575b505050505081526020019060010190610d5f565b5050505081526020019060010190610d37565b5050505081526020019060010190610d0d565b610df46110bc565b5060408051602081019091526001815290565b5f610e106110da565b610e186110da565b5f939092509050565b610e29611132565b506040805160a081018252600160608201908152600260808301528152815180830183526003815260046020828101919091528083019190915282518084018452600581526006918101919091529181019190915290565b610e8961100f565b610e9161100f565b610e9961100f565b6109dc61100f565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a9905f90a250565b6001600160a01b0382165f9081526004602052604081208054839290610f11908490611a9a565b90915550505050565b610f22610f4a565b5f6040518060400160405280610f366105ce565b815260200160018152506001915091509091565b604080516080810182525f91810182815260608201929092529081905b81526020015f81525090565b60405180606001604052806003905b604080518082019091525f8082526020820152815260200190600190039081610f825790505090565b60405180606001604052806003906020820280368337509192915050565b60405180606001604052806003905b610fe0611073565b815260200190600190039081610fd85790505090565b60405180606001604052805f8152602001610f6761115f565b6040518061028001604052806014906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003905b606081526020019060019003908161105b5790505090565b60405180604001604052805f815260200161109d604080518082019091525f808252602082015290565b905290565b6040805160a081019091526060815260046020820161105b565b60405180602001604052806001906020820280368337509192915050565b6040518060a001604052806005905b61111c6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001906001900390816110e95790505090565b60405180606001604052806003905b61114961102e565b8152602001906001900390816111415790505090565b604080516080810182525f9181018281526060820192909252908152600160208201610f82565b6111a482825180516001600160a01b03168252602090810151910152565b6020015160409190910152565b606081016111bf8284611186565b92915050565b5f8151808452602080850194508084015f5b838110156111f3578151875295820195908201906001016111d7565b509495945050505050565b602081525f61121060208301846111c5565b9392505050565b81516001600160a01b0316815260208083015190820152604081016111bf565b5f8151808452602080850194508084015f5b838110156111f35761126f87835180516001600160a01b03168252602090810151910152565b6040969096019590820190600101611249565b5f8184825b60038110156112c4576112ae83835180516001600160a01b03168252602090810151910152565b6040929092019160209190910190600101611287565b50505060e060c08301526112db60e0830184611237565b949350505050565b80356001600160a01b03811681146108d9575f80fd5b5f60208284031215611309575f80fd5b611210826112e3565b6060810181835f5b600381101561133957815183526020928301929091019060010161131a565b50505092915050565b610120810181835f5b60038110156113395781518051845260209081015180516001600160a01b03168286015281015160408501526060909301929091019060010161134b565b5f60208284031215611399575f80fd5b5035919050565b8151815260208083015160c0830191908184015f5b60028110156113ef576113dc82845180516001600160a01b03168252602090810151910152565b91830191604091909101906001016113b5565b50505050604083015160a083015292915050565b805f5b6014811015611425578151845260209384019390910190600101611406565b50505050565b61028081016111bf8284611403565b5f8282825b600281101561145e57815183526020928301929091019060010161143f565b50505060408301905092915050565b602080825282518282018190525f9190848201906040850190845b818110156114a95761149b83855161143a565b938501939250600101611488565b50909695505050505050565b6040805190810167ffffffffffffffff811182821017156114e457634e487b7160e01b5f52604160045260245ffd5b60405290565b5f604082840312156114fa575f80fd5b6115026114b5565b905061150d826112e3565b81526020820135602082015292915050565b5f6040828403121561152f575f80fd5b61121083836114ea565b602081525f6112106020830184611237565b5f6080828403121561155b575f80fd5b82601f830112611569575f80fd5b6115716114b5565b806080840185811115611582575f80fd5b845b818110156115a65761159687826114ea565b8452602090930192604001611584565b509095945050505050565b610500810181845f5b60148110156115e25781516001600160a01b03168352602092830192909101906001016115ba565b5050506102808201835f5b601481101561160f578151600f0b8352602092830192909101906001016115ed565b5050509392505050565b5f8260608101835f805b6003811015611678578484038852825180518086526020918201918087019190855b8281101561166157845184529381019392810192600101611645565b509a8b019a91965050939093019250600101611623565b50919695505050505050565b602081525f6112106020830184611619565b602080825282518282018190525f919084820190604085019084805b828110156116fb57845184835b60038110156116e55782516001600160a01b0316825291880191908801906001016116bf565b50505093850193606093909301926001016116b2565b5091979650505050505050565b602080825282518282018190525f9190848201906040850190845b818110156114a957611736838551611186565b9284019260609290920191600101611723565b5f806040838503121561175a575f80fd5b8235915061176a602084016112e3565b90509250929050565b8281526080810161121060208301848051825260209081015180516001600160a01b0316828401520151604090910152565b8151815260208083015180516001600160a01b03168284015201516040820152606081016111bf565b604081525f6117e06040830185611237565b82810360208401526117f28185611237565b95945050505050565b6040810181835f5b60028110156113395781516001600160a01b0316835260209283019290910190600101611803565b604081525f6117e060408301856111c5565b60208082525f9060c083018382018584805b600580821061185e57506118c6565b601f1989870381018652845180518089529283901b88018901929089019089890190865b818110156118ae57848b870301835261189c868551611619565b9550928b0192918b0191600101611882565b5093985050509487019450509185019160010161184f565b5092979650505050505050565b5f805f805f805f805f806101408b8d0312156118ed575f80fd5b505088359a60208a01359a5060408a013599606081013599506080810135985060a0810135975060c0810135965060e081013595506101008101359450610120013592509050565b60208181019082845f5b600181101561195c5781518352918301919083019060010161193f565b5050505092915050565b8281526103e081016020808301845f5b60058110156119c757815180518452848101518585015260408082015190850152606080820151908501526080808201519085015260a0908101519084015260c09092019190830190600101611976565b505050509392505050565b60c0810181835f5b6003811015611339576119ee83835161143a565b9250602091909101906001016119da565b6105008101611a0e8285611403565b611210610280830184611403565b5f8060408385031215611a2d575f80fd5b611a36836112e3565b946020939093013593505050565b60808101611a528285611186565b8260608301529392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156111bf576111bf611a5f565b634e487b7160e01b5f52603260045260245ffd5b808201808211156111bf576111bf611a5f56fea2646970667358221220d3d0c32397c3be711567f1e53b6bb00f32e93f7c819576aaa42408e2b4ec41c164736f6c63430008150033"},"sourceId":"TestContractSol.sol","sourcemap":"57:8164:0:-:0;;;1336:308;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1371:8;:14;;;1395:5;:18;;-1:-1:-1;;;;;;1395:18:0;1403:10;1395:18;;;1424:23;;;;;;;;;;;;;;:8;;:23;;:::i;:::-;-1:-1:-1;1457:26:0;;;;;;;;;-1:-1:-1;1457:26:0;;1481:1;1457:26;;;;;;:11;;:26;;:::i;:::-;-1:-1:-1;1493:29:0;;;;;;;;-1:-1:-1;1493:29:0;;1517:1;1493:29;;;;1520:1;1493:29;;;;;;;;;:11;;:29;;:::i;:::-;-1:-1:-1;1533:10:0;:28;;;;;;;1544:1;1533:28;;;;;;;;;;;;;1552:8;;1533:28;:::i;:::-;-1:-1:-1;1571:13:0;:28;;1582:1;1571:28;;;;-1:-1:-1;1571:28:0;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1571:28:0;;1590:8;;1571:28;:::i;:::-;-1:-1:-1;1609:13:0;:28;;1620:1;1609:28;;;;-1:-1:-1;1609:28:0;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1609:28:0;;1628:8;;1609:28;:::i;:::-;;1336:308;57:8164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:8164:0;;;-1:-1:-1;57:8164:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;57:8164:0;;;-1:-1:-1;57:8164:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;14:184:1:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:1;;14:184;-1:-1:-1;14:184:1:o;203:127::-;57:8164:0;;;;;;","userdoc":{"kind":"user","methods":{},"version":1}} +{"abi":[{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"AddressChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"bar","type":"uint256"}],"name":"BarHappened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"some_id","type":"uint32"},{"indexed":true,"internalType":"address","name":"some_address","type":"address"},{"indexed":false,"internalType":"address[]","name":"participants","type":"address[]"},{"indexed":false,"internalType":"address[1]","name":"agents","type":"address[1]"}],"name":"EventWithAddressArray","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"indexed":false,"internalType":"struct TestContractSol.MyStruct","name":"a_struct","type":"tuple"}],"name":"EventWithStruct","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"foo","type":"uint256"}],"name":"FooHappened","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"b","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"prevNum","type":"uint256"},{"indexed":false,"internalType":"string","name":"dynData","type":"string"},{"indexed":true,"internalType":"uint256","name":"newNum","type":"uint256"},{"indexed":true,"internalType":"string","name":"dynIndexed","type":"string"}],"name":"NumberChange","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fooAndBar","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a0","type":"uint256"},{"internalType":"uint256","name":"a1","type":"uint256"},{"internalType":"uint256","name":"a2","type":"uint256"},{"internalType":"uint256","name":"a3","type":"uint256"},{"internalType":"uint256","name":"a4","type":"uint256"},{"internalType":"uint256","name":"a5","type":"uint256"},{"internalType":"uint256","name":"a6","type":"uint256"},{"internalType":"uint256","name":"a7","type":"uint256"},{"internalType":"uint256","name":"a8","type":"uint256"},{"internalType":"uint256","name":"a9","type":"uint256"}],"name":"functionWithUniqueAmountOfArguments","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressArray","outputs":[{"internalType":"address[2]","name":"","type":"address[2]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getArrayWithBiggerSize","outputs":[{"internalType":"uint256[20]","name":"","type":"uint256[20]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDynamicStructArray","outputs":[{"components":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"},{"internalType":"uint256","name":"foo","type":"uint256"}],"internalType":"struct TestContractSol.NestedStruct1[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEmptyArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyDynArrayOfStructs","outputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs","outputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[3]","name":"","type":"tuple[3]"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfDynArrayStructs","outputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfIntAndDynArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFilledArray","outputs":[{"internalType":"uint256[3]","name":"","type":"uint256[3]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNamedSingleItem","outputs":[{"internalType":"uint256","name":"foo","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNestedAddressArray","outputs":[{"internalType":"address[3][]","name":"","type":"address[3][]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayDynamicFixed","outputs":[{"internalType":"uint256[2][]","name":"","type":"uint256[2][]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNestedArrayFixedDynamic","outputs":[{"internalType":"uint256[][3]","name":"","type":"uint256[][3]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayFixedFixed","outputs":[{"internalType":"uint256[2][3]","name":"","type":"uint256[2][3]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNestedArrayMixedDynamic","outputs":[{"internalType":"uint256[][3][][5]","name":"","type":"uint256[][3][][5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStruct1","outputs":[{"components":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"},{"internalType":"uint256","name":"foo","type":"uint256"}],"internalType":"struct TestContractSol.NestedStruct1","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStruct2","outputs":[{"components":[{"internalType":"uint256","name":"foo","type":"uint256"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"}],"internalType":"struct TestContractSol.NestedStruct2","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStructWithTuple1","outputs":[{"components":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"},{"internalType":"uint256","name":"foo","type":"uint256"}],"internalType":"struct TestContractSol.NestedStruct1","name":"","type":"tuple"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStructWithTuple2","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"uint256","name":"foo","type":"uint256"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"}],"internalType":"struct TestContractSol.NestedStruct2","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPartiallyNamedTuple","outputs":[{"internalType":"uint256","name":"foo","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getSingleItemArray","outputs":[{"internalType":"uint256[1]","name":"","type":"uint256[1]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getStaticStructArray","outputs":[{"components":[{"internalType":"uint256","name":"foo","type":"uint256"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"t","type":"tuple"}],"internalType":"struct TestContractSol.NestedStruct2[3]","name":"","type":"tuple[3]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStruct","outputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStructWithArray","outputs":[{"components":[{"internalType":"uint256","name":"foo","type":"uint256"},{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[2]","name":"arr","type":"tuple[2]"},{"internalType":"uint256","name":"bar","type":"uint256"}],"internalType":"struct TestContractSol.WithArray","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTupleAllNamed","outputs":[{"internalType":"uint256","name":"foo","type":"uint256"},{"internalType":"uint256","name":"bar","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTupleOfAddressArray","outputs":[{"internalType":"address[20]","name":"","type":"address[20]"},{"internalType":"int128[20]","name":"","type":"int128[20]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTupleOfArrays","outputs":[{"internalType":"uint256[20]","name":"","type":"uint256[20]"},{"internalType":"uint256[20]","name":"","type":"uint256[20]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTupleOfIntAndStructArray","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"uint256","name":"one","type":"uint256"},{"internalType":"uint256","name":"two","type":"uint256"},{"internalType":"uint256","name":"three","type":"uint256"},{"internalType":"uint256","name":"four","type":"uint256"},{"internalType":"uint256","name":"five","type":"uint256"},{"internalType":"uint256","name":"six","type":"uint256"}],"internalType":"struct TestContractSol.IntStruct[5]","name":"","type":"tuple[5]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getUnnamedTuple","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"logAddressArray","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"logStruct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"myNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"bal","type":"uint256"}],"name":"setBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"setNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"name":"setNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct","name":"_my_struct","type":"tuple"}],"name":"setStruct","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes32","name":"b","type":"bytes32"}],"internalType":"struct TestContractSol.MyStruct[2]","name":"_my_struct_array","type":"tuple[2]"}],"name":"setStructArray","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"theAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"ast":{"ast_type":"SourceUnit","children":[{"ast_type":"PragmaDirective","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":32}},{"ast_type":"ContractDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":88}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"owner","src":{"jump_code":"","length":20,"start":88}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":114}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":23,"start":114}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":143}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":25,"start":143}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":174}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"theAddress","src":{"jump_code":"","length":25,"start":174}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"Mapping","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":213}},{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":224}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":205}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"balances","src":{"jump_code":"","length":43,"start":205}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":254}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":254}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":264}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":254}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":21,"start":254}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":281}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":281}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":291}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":281}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":281}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":296}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":281}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":28,"start":281}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":316}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":343}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MAX_FOO","src":{"jump_code":"","length":28,"start":316}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bytes32","src":{"jump_code":"","length":7,"start":379}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"b","src":{"jump_code":"","length":9,"start":379}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":398}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNum","src":{"jump_code":"","length":15,"start":398}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"string","src":{"jump_code":"","length":6,"start":423}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynData","src":{"jump_code":"","length":14,"start":423}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":447}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"newNum","src":{"jump_code":"","length":22,"start":447}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"string","src":{"jump_code":"","length":6,"start":479}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynIndexed","src":{"jump_code":"","length":25,"start":479}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":141,"start":369}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NumberChange","src":{"jump_code":"","length":160,"start":351}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":546}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"newAddress","src":{"jump_code":"","length":26,"start":546}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":42,"start":536}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"AddressChange","src":{"jump_code":"","length":62,"start":517}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":612}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":19,"start":612}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":35,"start":602}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"FooHappened","src":{"jump_code":"","length":53,"start":585}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":671}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bar","src":{"jump_code":"","length":19,"start":671}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":35,"start":661}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"BarHappened","src":{"jump_code":"","length":53,"start":644}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":734}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":734}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a_struct","src":{"jump_code":"","length":17,"start":734}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":33,"start":724}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"EventWithStruct","src":{"jump_code":"","length":55,"start":703}},{"ast_type":"EventDefinition","children":[{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint32","src":{"jump_code":"","length":6,"start":801}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"some_id","src":{"jump_code":"","length":22,"start":801}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":833}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"some_address","src":{"jump_code":"","length":28,"start":833}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":871}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":871}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"participants","src":{"jump_code":"","length":22,"start":871}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":903}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":911}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":903}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"agents","src":{"jump_code":"","length":17,"start":903}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":135,"start":791}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"EventWithAddressArray","src":{"jump_code":"","length":163,"start":764}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":959}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a","src":{"jump_code":"","length":9,"start":959}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bytes32","src":{"jump_code":"","length":7,"start":978}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"b","src":{"jump_code":"","length":9,"start":978}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":61,"start":933}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":1031}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":1031}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"t","src":{"jump_code":"","length":10,"start":1031}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1051}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":1051}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":69,"start":1000}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1106}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":1106}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":1127}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":1127}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"t","src":{"jump_code":"","length":10,"start":1127}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":69,"start":1075}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1177}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":1177}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":1198}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":1198}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1207}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":1198}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":15,"start":1198}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1223}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bar","src":{"jump_code":"","length":11,"start":1223}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"WithArray","src":{"jump_code":"","length":91,"start":1150}},{"ast_type":"StructDefinition","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1274}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"one","src":{"jump_code":"","length":11,"start":1274}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1295}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"two","src":{"jump_code":"","length":11,"start":1295}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1316}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"three","src":{"jump_code":"","length":13,"start":1316}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1339}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"four","src":{"jump_code":"","length":12,"start":1339}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1361}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"five","src":{"jump_code":"","length":12,"start":1361}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1383}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"six","src":{"jump_code":"","length":11,"start":1383}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"IntStruct","src":{"jump_code":"","length":154,"start":1247}},{"ast_type":"ModifierDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":1446}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":1446}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"owner","src":{"jump_code":"","length":5,"start":1460}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":1446}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1467}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"require","src":{"jump_code":"","length":7,"start":1438}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":43,"start":1438}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":43,"start":1438}},{"ast_type":"PlaceholderStatement","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1491}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":71,"start":1428}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":1425}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"onlyOwner","src":{"jump_code":"","length":92,"start":1407}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":1540}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":1551}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1540}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1540}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"owner","src":{"jump_code":"","length":5,"start":1564}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":1572}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":1572}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1564}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1564}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1593}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1602}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":1593}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1613}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":1608}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":1608}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":1608}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":1607}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":1593}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":1593}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1626}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1635}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":1626}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1646}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":1641}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":1641}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":1641}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1650}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":1640}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":1626}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":1626}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1662}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1671}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":1662}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1682}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":1677}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":1677}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":1677}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1686}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1689}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":1676}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":1662}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":1662}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1721}},{"ast_type":"MemberAccess","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":10,"start":1702}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1713}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1702}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1702}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1702}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1702}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1759}},{"ast_type":"MemberAccess","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":10,"start":1740}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1751}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1740}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1740}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1740}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1740}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":1797}},{"ast_type":"MemberAccess","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":10,"start":1778}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1789}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1778}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":1778}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1778}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":1778}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":283,"start":1530}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1517}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":11,"start":1517}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1516}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":1530}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":308,"start":1505}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1874}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"FooHappened","src":{"jump_code":"","length":11,"start":1862}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1862}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":1857}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1903}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"BarHappened","src":{"jump_code":"","length":11,"start":1891}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":1891}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":1886}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":65,"start":1847}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":1837}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":1847}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"fooAndBar","src":{"jump_code":"","length":93,"start":1819}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":1985}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":1992}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":1985}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"require","src":{"jump_code":"","length":7,"start":1977}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":1977}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":1977}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":10,"start":2004}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":2017}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2004}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2004}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":2035}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":2046}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":2035}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":2035}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"block","src":{"jump_code":"","length":5,"start":2087}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":2087}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2102}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":2087}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"blockhash","src":{"jump_code":"","length":9,"start":2077}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":2077}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":10,"start":2106}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":2118}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":2129}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":2134}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NumberChange","src":{"jump_code":"","length":12,"start":2064}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":80,"start":2064}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":85,"start":2059}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":184,"start":1967}},{"ast_type":"ModifierInvocation","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"onlyOwner","src":{"jump_code":"","length":9,"start":1957}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":1957}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":1937}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":11,"start":1937}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":1936}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":1967}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setNumber","src":{"jump_code":"","length":233,"start":1918}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":2316}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2323}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":2316}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"require","src":{"jump_code":"","length":7,"start":2308}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":2308}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":2308}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":10,"start":2335}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":2348}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2335}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2335}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"myNumber","src":{"jump_code":"","length":8,"start":2366}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":2377}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":2366}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":2366}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"theAddress","src":{"jump_code":"","length":10,"start":2390}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":8,"start":2403}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2390}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2390}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"block","src":{"jump_code":"","length":5,"start":2449}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":2449}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2464}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":2449}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"blockhash","src":{"jump_code":"","length":9,"start":2439}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":2439}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"prevNumber","src":{"jump_code":"","length":10,"start":2468}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":2480}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":3,"start":2491}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":2496}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NumberChange","src":{"jump_code":"","length":12,"start":2426}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":80,"start":2426}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":85,"start":2421}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":289,"start":2224}},{"ast_type":"ModifierInvocation","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"onlyOwner","src":{"jump_code":"","length":9,"start":2214}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":2214}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":2176}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"num","src":{"jump_code":"","length":11,"start":2176}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":2189}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":16,"start":2189}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":2175}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":2224}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setNumber","src":{"jump_code":"","length":356,"start":2157}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"theAddress","src":{"jump_code":"","length":10,"start":2574}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":8,"start":2587}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2574}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":2574}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":8,"start":2624}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"AddressChange","src":{"jump_code":"","length":13,"start":2610}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":2610}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":2605}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":76,"start":2564}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":2539}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":16,"start":2539}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":2538}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":2564}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setAddress","src":{"jump_code":"","length":121,"start":2519}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"balances","src":{"jump_code":"","length":8,"start":2714}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":8,"start":2723}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":2714}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bal","src":{"jump_code":"","length":3,"start":2736}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":2714}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":2714}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":42,"start":2704}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":2666}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_address","src":{"jump_code":"","length":16,"start":2666}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":2684}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bal","src":{"jump_code":"","length":11,"start":2684}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":2665}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":2704}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setBalance","src":{"jump_code":"","length":100,"start":2646}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":2836}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":2836}},{"ast_type":"FunctionCall","children":[{"ast_type":"BinaryOperation","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"block","src":{"jump_code":"","length":5,"start":2858}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":2858}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":2873}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":2858}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"blockhash","src":{"jump_code":"","length":9,"start":2848}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":2848}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":2827}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":49,"start":2827}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":56,"start":2820}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":73,"start":2810}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":2770}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":2793}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":2793}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":15,"start":2793}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":2792}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":131,"start":2752}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":2990}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":2990}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3003}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":2976}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":2976}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":2969}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":53,"start":2959}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":2914}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":2937}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":2937}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":2937}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":2936}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedStruct1","src":{"jump_code":"","length":123,"start":2889}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3119}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":3122}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3122}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":3105}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":3105}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":3098}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":53,"start":3088}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3043}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":3066}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":3066}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":3066}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":3065}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedStruct2","src":{"jump_code":"","length":123,"start":3018}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":3267}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3267}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3280}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":3253}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":3253}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3284}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":3252}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":41,"start":3245}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":58,"start":3235}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3181}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":3204}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":3204}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":3204}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":3226}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":3226}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3203}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedStructWithTuple1","src":{"jump_code":"","length":146,"start":3147}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3405}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3422}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":3425}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3425}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":3408}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":3408}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":3404}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":41,"start":3397}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":58,"start":3387}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3333}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":3356}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":3356}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":3365}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":3365}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":3365}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3355}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedStructWithTuple2","src":{"jump_code":"","length":146,"start":3299}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3537}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3537}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3537}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs","src":{"jump_code":"","length":29,"start":3537}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":3537}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs","src":{"jump_code":"","length":11,"start":3583}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":3576}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":74,"start":3527}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3485}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3508}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3508}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3508}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":3508}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":3507}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyDynArrayOfStructs","src":{"jump_code":"","length":150,"start":3451}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3717}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3717}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3717}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_0","src":{"jump_code":"","length":31,"start":3717}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3717}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3758}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3758}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3758}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_1","src":{"jump_code":"","length":31,"start":3758}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":3758}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_0","src":{"jump_code":"","length":13,"start":3807}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_1","src":{"jump_code":"","length":13,"start":3822}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":30,"start":3806}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":3799}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":136,"start":3707}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3646}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3669}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3669}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3669}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":3669}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3688}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3688}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3688}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":3688}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":38,"start":3668}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyTupleOfDynArrayStructs","src":{"jump_code":"","length":236,"start":3607}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3979}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3979}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3988}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3979}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_0","src":{"jump_code":"","length":32,"start":3979}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":32,"start":3979}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":4021}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":4021}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4021}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_1","src":{"jump_code":"","length":31,"start":4021}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":31,"start":4021}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_0","src":{"jump_code":"","length":13,"start":4070}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_structs_1","src":{"jump_code":"","length":13,"start":4085}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":30,"start":4069}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":4062}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":137,"start":3969}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":3907}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3930}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3930}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":3939}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":3930}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":3930}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":3950}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":3950}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":3950}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":3950}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":3929}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs","src":{"jump_code":"","length":257,"start":3849}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"IntStruct","src":{"jump_code":"","length":9,"start":4217}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4217}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MAX_FOO","src":{"jump_code":"","length":7,"start":4227}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4217}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"result","src":{"jump_code":"","length":32,"start":4217}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":32,"start":4217}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4267}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"result","src":{"jump_code":"","length":6,"start":4270}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4266}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4259}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":77,"start":4207}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4148}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4171}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":4171}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"IntStruct","src":{"jump_code":"","length":9,"start":4180}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4180}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MAX_FOO","src":{"jump_code":"","length":7,"start":4190}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4180}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":25,"start":4180}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":4170}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getTupleOfIntAndStructArray","src":{"jump_code":"","length":172,"start":4112}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4398}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4398}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_integers","src":{"jump_code":"","length":26,"start":4398}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":4398}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":4434}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":4434}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4434}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_structs","src":{"jump_code":"","length":26,"start":4434}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":4434}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_integers","src":{"jump_code":"","length":9,"start":4478}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_structs","src":{"jump_code":"","length":8,"start":4489}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":4477}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":4470}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":117,"start":4388}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4328}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4351}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4351}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":16,"start":4351}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":4369}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":4369}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4369}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":4369}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":4350}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyTupleOfIntAndDynArray","src":{"jump_code":"","length":215,"start":4290}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":4589}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":4589}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4598}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4589}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":22,"start":4589}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":4615}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4615}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":4628}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4628}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":4614}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":51,"start":4589}},{"ast_type":"Return","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4667}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":4670}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4675}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"WithArray","src":{"jump_code":"","length":9,"start":4657}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":20,"start":4657}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":4650}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":105,"start":4579}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4538}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"WithArray","src":{"jump_code":"","length":9,"start":4561}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4561}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":16,"start":4561}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4560}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStructWithArray","src":{"jump_code":"","length":173,"start":4511}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4763}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4763}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":21,"start":4763}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":4763}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":4801}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4794}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":59,"start":4753}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4712}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4735}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":4735}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":16,"start":4735}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":4734}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getEmptyArray","src":{"jump_code":"","length":122,"start":4690}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4897}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4905}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4897}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":22,"start":4897}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4931}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4923}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":4923}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4923}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":4922}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":4897}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":4951}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":4944}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":75,"start":4887}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4845}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":4868}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":4876}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":4868}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":4868}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":4867}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getSingleItemArray","src":{"jump_code":"","length":144,"start":4818}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5043}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5051}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5043}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":22,"start":5043}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5077}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5069}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":5069}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5069}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5089}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5081}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":5081}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5081}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5101}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5093}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":5093}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5093}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":5068}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":61,"start":5043}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5121}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5114}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":99,"start":5033}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":4991}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5014}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5022}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5014}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":5014}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":5013}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getFilledArray","src":{"jump_code":"","length":164,"start":4968}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":5214}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5222}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5214}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":22,"start":5214}},{"ast_type":"TupleExpression","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":5240}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5240}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":5252}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5252}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":5239}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":49,"start":5214}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5280}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5273}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":87,"start":5204}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5162}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":5185}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5193}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":5185}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":5185}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":5184}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getAddressArray","src":{"jump_code":"","length":153,"start":5138}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5384}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5384}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":5384}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":27,"start":5384}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5434}},{"ast_type":"NewExpression","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5418}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5418}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":5418}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":5414}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":5414}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":52,"start":5384}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5446}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5451}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":5446}},{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5470}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5470}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5483}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5456}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5456}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":5446}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":5446}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5495}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5500}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":5495}},{"ast_type":"FunctionCall","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5519}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5519}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5532}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5505}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5505}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":5495}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":5495}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5551}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5544}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":188,"start":5374}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5327}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct1","src":{"jump_code":"","length":13,"start":5350}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5350}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":5350}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":22,"start":5350}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":5349}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getDynamicStructArray","src":{"jump_code":"","length":265,"start":5297}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5653}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5653}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5667}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":5653}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":28,"start":5653}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5699}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5702}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5702}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5685}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5685}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5730}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5733}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5733}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5716}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5716}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5761}},{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStruct","src":{"jump_code":"","length":9,"start":5764}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5764}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5747}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":5747}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":93,"start":5684}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":124,"start":5653}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5792}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5785}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":158,"start":5645}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5597}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"NestedStruct2","src":{"jump_code":"","length":13,"start":5620}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":5620}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":5634}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":5620}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":23,"start":5620}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":5619}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getStaticStructArray","src":{"jump_code":"","length":235,"start":5568}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5893}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5901}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5893}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":23,"start":5893}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":23,"start":5893}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":5933}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5926}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":61,"start":5883}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5840}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5863}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5871}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5863}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":5863}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":20,"start":5862}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getArrayWithBiggerSize","src":{"jump_code":"","length":135,"start":5809}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6048}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6056}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6048}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data0","src":{"jump_code":"","length":24,"start":6048}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":6048}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6082}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6090}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6082}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data1","src":{"jump_code":"","length":24,"start":6082}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":6082}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data0","src":{"jump_code":"","length":5,"start":6124}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data1","src":{"jump_code":"","length":5,"start":6131}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":6123}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":6116}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":106,"start":6038}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":5975}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":5998}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6006}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":5998}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":5998}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6018}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6026}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6018}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":6018}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":40,"start":5997}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getTupleOfArrays","src":{"jump_code":"","length":194,"start":5950}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6230}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6223}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":27,"start":6213}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6177}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6200}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":6200}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":6199}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNamedSingleItem","src":{"jump_code":"","length":90,"start":6150}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6338}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6343}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6337}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":6330}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":6320}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6271}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6294}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":6294}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6307}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bar","src":{"jump_code":"","length":11,"start":6307}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":6293}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getTupleAllNamed","src":{"jump_code":"","length":108,"start":6246}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6443}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6446}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":6442}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":6435}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":30,"start":6425}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6384}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6407}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":6407}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6416}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":6416}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":18,"start":6406}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getUnnamedTuple","src":{"jump_code":"","length":95,"start":6360}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6555}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":3,"start":6560}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6554}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":6547}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":6537}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6492}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6515}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"foo","src":{"jump_code":"","length":11,"start":6515}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6528}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":7,"start":6528}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":6514}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getPartiallyNamedTuple","src":{"jump_code":"","length":110,"start":6461}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":6680}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6688}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6680}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"addresses","src":{"jump_code":"","length":28,"start":6680}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":6680}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"addresses","src":{"jump_code":"","length":9,"start":6718}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6728}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":6718}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":6733}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6733}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":6718}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":25,"start":6718}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"int128","src":{"jump_code":"","length":6,"start":6753}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6760}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6753}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":22,"start":6753}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":6753}},{"ast_type":"Return","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"addresses","src":{"jump_code":"","length":9,"start":6793}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"data","src":{"jump_code":"","length":4,"start":6804}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":6792}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":6785}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":146,"start":6670}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6608}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":6631}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6639}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6631}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":18,"start":6631}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"int128","src":{"jump_code":"","length":6,"start":6651}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6658}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6651}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":17,"start":6651}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":6630}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getTupleOfAddressArray","src":{"jump_code":"","length":239,"start":6577}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6910}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6915}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6910}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6918}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6910}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":21,"start":6910}},{"ast_type":"TupleExpression","children":[{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6941}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6936}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":6936}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6936}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6944}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":6935}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6954}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6949}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":6949}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6949}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6958}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":6948}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6968}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":6963}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":6963}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":6963}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6972}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":6962}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":41,"start":6934}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":65,"start":6910}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":6992}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6985}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":102,"start":6900}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":6855}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":6878}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6886}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":6878}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":6889}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":6878}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":20,"start":6878}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":22,"start":6877}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedArrayFixedFixed","src":{"jump_code":"","length":180,"start":6822}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":7097}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7102}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":7097}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":7097}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":20,"start":7097}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7134}},{"ast_type":"NewExpression","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":7124}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7129}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":7124}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":7124}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":7120}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":7120}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":7097}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7146}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7150}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":7146}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7161}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":7156}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":7156}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":7156}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7165}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7155}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7146}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7146}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7177}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7181}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":7177}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7192}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":7187}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":7187}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":7187}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7196}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7186}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7177}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7177}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7208}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7212}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":7208}},{"ast_type":"TupleExpression","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7223}},{"ast_type":"ElementaryTypeNameExpression","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint","src":{"jump_code":"","length":4,"start":7218}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":7218}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":7,"start":7218}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7227}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7217}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7208}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7208}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7246}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7239}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":169,"start":7087}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":7043}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7066}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7074}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7066}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7066}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":19,"start":7066}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7065}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedArrayDynamicFixed","src":{"jump_code":"","length":248,"start":7008}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"dynArray","src":{"jump_code":"","length":8,"start":7358}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":15,"start":7351}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":32,"start":7341}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":7297}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7320}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":7320}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7330}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7320}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":19,"start":7320}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7319}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedArrayFixedDynamic","src":{"jump_code":"","length":111,"start":7262}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"mixedArray","src":{"jump_code":"","length":10,"start":7480}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":7473}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":34,"start":7463}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":7414}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7437}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":7437}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7447}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7437}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":14,"start":7437}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7452}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":17,"start":7437}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":24,"start":7437}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":26,"start":7436}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedArrayMixedDynamic","src":{"jump_code":"","length":118,"start":7379}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":7587}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7595}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7587}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7587}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":23,"start":7587}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7630}},{"ast_type":"NewExpression","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":7617}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7625}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7617}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7617}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":7613}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":7613}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":45,"start":7587}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7642}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7646}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":7642}},{"ast_type":"TupleExpression","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":7652}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7652}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":7664}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7664}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":7676}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7676}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":36,"start":7651}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":45,"start":7642}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":45,"start":7642}},{"ast_type":"Return","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"arr","src":{"jump_code":"","length":3,"start":7704}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7697}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":137,"start":7577}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":7533}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":7556}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":7564}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":7556}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":7556}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"","src":{"jump_code":"","length":19,"start":7556}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":21,"start":7555}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"getNestedAddressArray","src":{"jump_code":"","length":211,"start":7503}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":7983}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7774}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a0","src":{"jump_code":"","length":10,"start":7774}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7794}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a1","src":{"jump_code":"","length":10,"start":7794}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7814}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a2","src":{"jump_code":"","length":10,"start":7814}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7834}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a3","src":{"jump_code":"","length":10,"start":7834}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7854}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a4","src":{"jump_code":"","length":10,"start":7854}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7874}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a5","src":{"jump_code":"","length":10,"start":7874}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7894}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a6","src":{"jump_code":"","length":10,"start":7894}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7914}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a7","src":{"jump_code":"","length":10,"start":7914}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7934}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a8","src":{"jump_code":"","length":10,"start":7934}},{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"uint256","src":{"jump_code":"","length":7,"start":7954}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"a9","src":{"jump_code":"","length":10,"start":7954}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":206,"start":7764}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":7983}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"functionWithUniqueAmountOfArguments","src":{"jump_code":"","length":271,"start":7720}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":8056}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":8016}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":8016}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_struct","src":{"jump_code":"","length":26,"start":8016}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":8015}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":8056}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setStruct","src":{"jump_code":"","length":67,"start":7997}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":8143}},{"ast_type":"ParameterList","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":8094}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":8094}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":8103}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":11,"start":8094}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_my_struct_array","src":{"jump_code":"","length":35,"start":8094}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":8093}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":8143}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"setStructArray","src":{"jump_code":"","length":81,"start":8070}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"bytes32","src":{"jump_code":"","length":7,"start":8195}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_bytes","src":{"jump_code":"","length":14,"start":8195}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":66,"start":8212}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":83,"start":8195}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"UserDefinedTypeName","children":[{"ast_type":"IdentifierPath","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":8288}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8,"start":8288}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_struct","src":{"jump_code":"","length":23,"start":8288}},{"ast_type":"FunctionCall","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":8323}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":8323}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_bytes","src":{"jump_code":"","length":6,"start":8335}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"MyStruct","src":{"jump_code":"","length":8,"start":8314}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":28,"start":8314}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":54,"start":8288}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"_struct","src":{"jump_code":"","length":7,"start":8373}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"EventWithStruct","src":{"jump_code":"","length":15,"start":8357}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":24,"start":8357}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":29,"start":8352}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":203,"start":8185}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":8175}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":8185}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"logStruct","src":{"jump_code":"","length":231,"start":8157}},{"ast_type":"FunctionDefinition","children":[{"ast_type":"Block","children":[{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":8438}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":8438}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"ppl","src":{"jump_code":"","length":20,"start":8438}},{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":8475}},{"ast_type":"NewExpression","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":8465}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":9,"start":8465}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":13,"start":8461}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":16,"start":8461}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":39,"start":8438}},{"ast_type":"ExpressionStatement","children":[{"ast_type":"Assignment","children":[{"ast_type":"IndexAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"ppl","src":{"jump_code":"","length":3,"start":8487}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":8491}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":6,"start":8487}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":8496}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":8496}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":8487}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":19,"start":8487}},{"ast_type":"VariableDeclarationStatement","children":[{"ast_type":"VariableDeclaration","children":[{"ast_type":"ArrayTypeName","children":[{"ast_type":"ElementaryTypeName","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"address","src":{"jump_code":"","length":7,"start":8516}},{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":1,"start":8524}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":8516}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"agts","src":{"jump_code":"","length":22,"start":8516}},{"ast_type":"TupleExpression","children":[{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":8542}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":8542}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":12,"start":8541}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":37,"start":8516}},{"ast_type":"EmitStatement","children":[{"ast_type":"FunctionCall","children":[{"ast_type":"Literal","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":4,"start":8590}},{"ast_type":"MemberAccess","children":[{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"msg","src":{"jump_code":"","length":3,"start":8596}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":10,"start":8596}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"ppl","src":{"jump_code":"","length":3,"start":8608}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"agts","src":{"jump_code":"","length":4,"start":8613}},{"ast_type":"Identifier","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"EventWithAddressArray","src":{"jump_code":"","length":21,"start":8568}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":50,"start":8568}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":55,"start":8563}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":197,"start":8428}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":2,"start":8418}},{"ast_type":"ParameterList","children":[],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","start":8428}}],"classification":1,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"logAddressArray","src":{"jump_code":"","length":231,"start":8394}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"name":"TestContractSol","src":{"jump_code":"","length":8570,"start":57}}],"classification":0,"col_offset":-1,"end_col_offset":-1,"end_lineno":-1,"lineno":-1,"src":{"jump_code":"","length":8596,"start":32}},"contractName":"TestContractSol","deploymentBytecode":{"bytecode":"0x608060405234801562000010575f80fd5b5060405162001ed838038062001ed883398101604081905262000033916200029c565b60018181555f80546001600160a01b0319163317815560408051602081019091529081526200006691600591906200016f565b50604080518082019091525f8152600160208201526200008b9060069060026200016f565b50604080516060810182525f815260016020820152600291810191909152620000b99060079060036200016f565b50600880546001810182555f91909152620000ff9060039081027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600590620001bd565b50600980546001810182555f91909152620001339060039081025f8051602062001eb88339815191520190600590620001bd565b50600980546001810182555f91909152620001679060039081025f8051602062001eb88339815191520190600590620001bd565b5050620002b4565b828054828255905f5260205f20908101928215620001ab579160200282015b82811115620001ab5782518255916020019190600101906200018e565b50620001b992915062000207565b5090565b8260038101928215620001f9579182015b82811115620001f9578254620001e890839085906200021d565b5091600101919060010190620001ce565b50620001b99291506200025c565b5b80821115620001b9575f815560010162000208565b828054828255905f5260205f20908101928215620001ab575f5260205f209182015b82811115620001ab5782548255916001019190600101906200023f565b80821115620001b9575f6200027282826200027c565b506001016200025c565b5080545f8255905f5260205f209081019062000299919062000207565b50565b5f60208284031215620002ad575f80fd5b5051919050565b611bf680620002c25f395ff3fe608060405234801561000f575f80fd5b506004361061026b575f3560e01c80637a79591d1161014b578063a5b0930d116100bf578063c2f1483911610084578063c2f148391461053a578063ccd62aa414610550578063d4d64b3514610565578063e30081a01461057b578063e30443bc1461058e578063e9f7fd14146105a1575f80fd5b8063a5b0930d146104d0578063a5c1b662146104e5578063abeb2022146104f6578063acab48d81461050b578063b345ad9614610525575f80fd5b806399e74a4c1161011057806399e74a4c146104575780639bfb2ad81461046c5780639e6b154b14610481578063a2fbee5314610494578063a420b5a5146104aa578063a4f6d26b146104bf575f80fd5b80637a79591d146103fd5780637b92b7ce1461040c5780638ba6052d1461041a5780638da5cb5b1461043057806394a66fc914610442575f80fd5b806335417bf4116101e25780634825cf6f116101a75780634825cf6f1461039957806348d17a78146103a257806351c03980146103a25780636126c87f146103ac5780636cbceeec146103c157806378c067b0146103ec575f80fd5b806335417bf4146103325780633ce80e94146103475780633fb5c1cb1461035c57806342ce1ec61461036f57806343790b6414610384575f80fd5b8063136af17f11610233578063136af17f146102cc57806323fd0e40146102d4578063243e0963146102dd578063252e423e146102f557806327e235e31461030b5780632beb17111461032a575f80fd5b806302f487d61461026f578063039b50441461028d578063052f3e761461029e57806309b1b3f2146102ad5780630cce7676146102c2575b5f80fd5b6102776105b7565b6040516102849190611251565b60405180910390f35b607b5b604051908152602001610284565b6060604051610284919061129e565b6102b56105e1565b60405161028491906112b7565b6102ca610618565b005b6102ca6106b1565b61029060015481565b5f805b60408051928352602083019190915201610284565b6102fd610720565b604051610284929190611322565b610290610319366004611399565b60046020525f908152604090205481565b6102ca61073b565b61033a610792565b60405161028491906113b2565b61034f6107bc565b60405161028491906113e2565b6102ca61036a366004611429565b610838565b610377610928565b6040516102849190611440565b61038c610975565b60405161028491906114cb565b61029060025481565b607b6101416102e0565b6103b461098a565b604051610284919061150d565b6003546103d4906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b6102ca6103fa3660046115bf565b50565b606060405161028491906115d9565b6102ca6103fa3660046115eb565b610422610a65565b604051610284929190611651565b5f546103d4906001600160a01b031681565b61044a610a91565b6040516102849190611724565b61045f610b1b565b6040516102849190611736565b610474610b80565b60405161028491906117a8565b6102ca61048f3660046117e9565b610c20565b61049c610d1b565b604051610284929190611813565b6104b2610d4b565b6040516102849190611845565b60608060405161028492919061186e565b6104d8610d74565b604051610284919061189b565b6060806040516102849291906118cb565b6104fe610d93565b60405161028491906118dd565b6102ca610519366004611973565b50505050505050505050565b61052d610e8c565b60405161028491906119d5565b610542610ea7565b604051610284929190611a06565b610558610ec1565b6040516102849190611a72565b61056d610f21565b604051610284929190611a9f565b6102ca610589366004611399565b610f41565b6102ca61059c366004611abc565b610f8a565b6105a9610fba565b604051610284929190611ae4565b6105bf610fea565b60405180604001604052806105d26105e1565b81526020016001815250905090565b604080518082019091525f80825260208201526040805180820190915233815260208101610610600143611b13565b409052919050565b6040805160018082528183019092525f916020808301908036833701905050905033815f8151811061064c5761064c611b26565b6001600160a01b039092166020928302919091018201526040805191820181523380835290516103e9907f7dba788c1fe7f1164dec800b61c5cff1499d9f96bbd6fb4deff3e11f2c109a17906106a59086908690611b3a565b60405180910390a35050565b6040805180820182523381527f1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef6020820181905291517fa731a78d94f9b7de7d6ab1ba8b80641702fa1c4a60a45d52c8db2bbc0a2e80a8906107149083906112b7565b60405180910390a15050565b610728611013565b6060610732611013565b92606092509050565b6040515f907f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd908290a26040516001907fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced5905f90a2565b61079a61104b565b5060408051606081018252600181526002602082015260039181019190915290565b6107c4611069565b5f60405180606001604052806040518060400160405280600181526020016107ea6105e1565b815250815260200160405180604001604052806002815260200161080c6105e1565b815250815260200160405180604001604052806003815260200161082e6105e1565b9052905292915050565b5f546001600160a01b031633146108845760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b80600503610890575f80fd5b600180546002558190556040516644796e616d696360c81b8152600701604051908190039020817fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686108e3600143611b13565b4060025460405161091d92919091825260208201526060604082018190526007908201526644796e616d696360c81b608082015260a00190565b60405180910390a350565b610930611096565b5f60405180604001604052806109446105e1565b81526020016109516105e1565b90526040805160608101825260018152602081019290925260029082015292915050565b61097d6110af565b6109856110af565b919050565b604080516003808252608082019092526060915f9190816020015b6109ad6110ce565b8152602001906001900390816109a55790505090506040518060400160405280600181526020016002815250815f815181106109eb576109eb611b26565b6020026020010181905250604051806040016040528060038152602001600481525081600181518110610a2057610a20611b26565b6020026020010181905250604051806040016040528060058152602001600681525081600281518110610a5557610a55611b26565b6020908102919091010152919050565b610a6d6110af565b610a756110af565b610a7d6110af565b338152610a886110af565b90939092509050565b610a996110ec565b6040805160608101909152600560035f835b82821015610b1257838201805480602002602001604051908101604052809291908181526020018280548015610afe57602002820191905f5260205f20905b815481526020019060010190808311610aea575b505050505081526020019060010190610aab565b50505050905090565b60408051600280825260608281019093525f9190816020015b610b3c61104b565b815260200190600190039081610b345750506040805160608101825233808252602082018190529181019190915281519192509082905f90610a5557610a55611b26565b60408051600280825260608281019093525f9190816020015b610ba1610fea565b815260200190600190039081610b995790505090506040518060400160405280610bc96105e1565b81526020016001815250815f81518110610be557610be5611b26565b60200260200101819052506040518060400160405280610c036105e1565b8152602001600281525081600181518110610a5557610a55611b26565b5f546001600160a01b03163314610c675760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b604482015260640161087b565b81600503610c73575f80fd5b60018054600255829055600380546001600160a01b0319166001600160a01b0383161790556040516644796e616d696360c81b8152600701604051908190039020827fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f968610ce1600143611b13565b406002546040516106a592919091825260208201526060604082018190526007908201526644796e616d696360c81b608082015260a00190565b5f610d24611113565b6002604051806040016040528060028152602001610d406105e1565b815250915091509091565b610d53611113565b604051806040016040528060028152602001610d6d6105e1565b9052919050565b610d7c6110ce565b506040805180820190915233808252602082015290565b610d9b611142565b6040805160a08101909152600860055f835b82821015610b1257838201805480602002602001604051908101604052809291908181526020015f905b82821015610e79575f8481526020812060408051606081019091529160038086029092019190835b82821015610e6657838201805480602002602001604051908101604052809291908181526020018280548015610e5257602002820191905f5260205f20905b815481526020019060010190808311610e3e575b505050505081526020019060010190610dff565b5050505081526020019060010190610dd7565b5050505081526020019060010190610dad565b610e9461115c565b5060408051602081019091526001815290565b5f610eb061117a565b610eb861117a565b5f939092509050565b610ec96111d2565b506040805160a081018252600160608201908152600260808301528152815180830183526003815260046020828101919091528083019190915282518084018452600581526006918101919091529181019190915290565b610f296110af565b610f316110af565b610f396110af565b610a886110af565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a9905f90a250565b6001600160a01b0382165f9081526004602052604081208054839290610fb1908490611bad565b90915550505050565b610fc2610fea565b5f6040518060400160405280610fd66105e1565b815260200160018152506001915091509091565b604080516080810182525f91810182815260608201929092529081905b81526020015f81525090565b60405180606001604052806003905b604080518082019091525f80825260208201528152602001906001900390816110225790505090565b60405180606001604052806003906020820280368337509192915050565b60405180606001604052806003905b611080611113565b8152602001906001900390816110785790505090565b60405180606001604052805f81526020016110076111ff565b6040518061028001604052806014906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003905b60608152602001906001900390816110fb5790505090565b60405180604001604052805f815260200161113d604080518082019091525f808252602082015290565b905290565b6040805160a08101909152606081526004602082016110fb565b60405180602001604052806001906020820280368337509192915050565b6040518060a001604052806005905b6111bc6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001906001900390816111895790505090565b60405180606001604052806003905b6111e96110ce565b8152602001906001900390816111e15790505090565b604080516080810182525f9181018281526060820192909252908152600160208201611022565b61124482825180516001600160a01b03168252602090810151910152565b6020015160409190910152565b6060810161125f8284611226565b92915050565b5f8151808452602080850194508084015f5b8381101561129357815187529582019590820190600101611277565b509495945050505050565b602081525f6112b06020830184611265565b9392505050565b81516001600160a01b03168152602080830151908201526040810161125f565b5f8151808452602080850194508084015f5b838110156112935761130f87835180516001600160a01b03168252602090810151910152565b60409690960195908201906001016112e9565b5f8184825b60038110156113645761134e83835180516001600160a01b03168252602090810151910152565b6040929092019160209190910190600101611327565b50505060e060c083015261137b60e08301846112d7565b949350505050565b80356001600160a01b0381168114610985575f80fd5b5f602082840312156113a9575f80fd5b6112b082611383565b6060810181835f5b60038110156113d95781518352602092830192909101906001016113ba565b50505092915050565b610120810181835f5b60038110156113d95781518051845260209081015180516001600160a01b0316828601528101516040850152606090930192909101906001016113eb565b5f60208284031215611439575f80fd5b5035919050565b8151815260208083015160c0830191908184015f5b600281101561148f5761147c82845180516001600160a01b03168252602090810151910152565b9183019160409190910190600101611455565b50505050604083015160a083015292915050565b805f5b60148110156114c55781518452602093840193909101906001016114a6565b50505050565b610280810161125f82846114a3565b5f8282825b60028110156114fe5781518352602092830192909101906001016114df565b50505060408301905092915050565b602080825282518282018190525f9190848201906040850190845b818110156115495761153b8385516114da565b938501939250600101611528565b50909695505050505050565b6040805190810167ffffffffffffffff8111828210171561158457634e487b7160e01b5f52604160045260245ffd5b60405290565b5f6040828403121561159a575f80fd5b6115a2611555565b90506115ad82611383565b81526020820135602082015292915050565b5f604082840312156115cf575f80fd5b6112b0838361158a565b602081525f6112b060208301846112d7565b5f608082840312156115fb575f80fd5b82601f830112611609575f80fd5b611611611555565b806080840185811115611622575f80fd5b845b8181101561164657611636878261158a565b8452602090930192604001611624565b509095945050505050565b610500810181845f5b60148110156116825781516001600160a01b031683526020928301929091019060010161165a565b5050506102808201835f5b60148110156116af578151600f0b83526020928301929091019060010161168d565b5050509392505050565b5f8260608101835f805b6003811015611718578484038852825180518086526020918201918087019190855b82811015611701578451845293810193928101926001016116e5565b509a8b019a919650509390930192506001016116c3565b50919695505050505050565b602081525f6112b060208301846116b9565b602080825282518282018190525f919084820190604085019084805b8281101561179b57845184835b60038110156117855782516001600160a01b03168252918801919088019060010161175f565b5050509385019360609390930192600101611752565b5091979650505050505050565b602080825282518282018190525f9190848201906040850190845b81811015611549576117d6838551611226565b92840192606092909201916001016117c3565b5f80604083850312156117fa575f80fd5b8235915061180a60208401611383565b90509250929050565b828152608081016112b060208301848051825260209081015180516001600160a01b0316828401520151604090910152565b8151815260208083015180516001600160a01b031682840152015160408201526060810161125f565b604081525f61188060408301856112d7565b828103602084015261189281856112d7565b95945050505050565b6040810181835f5b60028110156113d95781516001600160a01b03168352602092830192909101906001016118a3565b604081525f6118806040830185611265565b60208082525f9060c083018382018584805b60058082106118fe5750611966565b601f1989870381018652845180518089529283901b88018901929089019089890190865b8181101561194e57848b870301835261193c8685516116b9565b9550928b0192918b0191600101611922565b509398505050948701945050918501916001016118ef565b5092979650505050505050565b5f805f805f805f805f806101408b8d03121561198d575f80fd5b505088359a60208a01359a5060408a013599606081013599506080810135985060a0810135975060c0810135965060e081013595506101008101359450610120013592509050565b60208181019082845f5b60018110156119fc578151835291830191908301906001016119df565b5050505092915050565b8281526103e081016020808301845f5b6005811015611a6757815180518452848101518585015260408082015190850152606080820151908501526080808201519085015260a0908101519084015260c09092019190830190600101611a16565b505050509392505050565b60c0810181835f5b60038110156113d957611a8e8383516114da565b925060209190910190600101611a7a565b6105008101611aae82856114a3565b6112b06102808301846114a3565b5f8060408385031215611acd575f80fd5b611ad683611383565b946020939093013593505050565b60808101611af28285611226565b8260608301529392505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561125f5761125f611aff565b634e487b7160e01b5f52603260045260245ffd5b604080825283519082018190525f906020906060840190828701845b82811015611b7b5781516001600160a01b031684529284019290840190600101611b56565b509193505050828101845f5b6001811015611a675781516001600160a01b031683529183019190830190600101611b87565b8082018082111561125f5761125f611aff56fea264697066735822122022f886ade30522c149ea6aaccc52ffbee3e99391ac37b663ba3cb2a5a6ba419764736f6c634300081500336e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af"},"devdoc":{"kind":"dev","methods":{},"version":1},"runtimeBytecode":{"bytecode":"0x608060405234801561000f575f80fd5b506004361061026b575f3560e01c80637a79591d1161014b578063a5b0930d116100bf578063c2f1483911610084578063c2f148391461053a578063ccd62aa414610550578063d4d64b3514610565578063e30081a01461057b578063e30443bc1461058e578063e9f7fd14146105a1575f80fd5b8063a5b0930d146104d0578063a5c1b662146104e5578063abeb2022146104f6578063acab48d81461050b578063b345ad9614610525575f80fd5b806399e74a4c1161011057806399e74a4c146104575780639bfb2ad81461046c5780639e6b154b14610481578063a2fbee5314610494578063a420b5a5146104aa578063a4f6d26b146104bf575f80fd5b80637a79591d146103fd5780637b92b7ce1461040c5780638ba6052d1461041a5780638da5cb5b1461043057806394a66fc914610442575f80fd5b806335417bf4116101e25780634825cf6f116101a75780634825cf6f1461039957806348d17a78146103a257806351c03980146103a25780636126c87f146103ac5780636cbceeec146103c157806378c067b0146103ec575f80fd5b806335417bf4146103325780633ce80e94146103475780633fb5c1cb1461035c57806342ce1ec61461036f57806343790b6414610384575f80fd5b8063136af17f11610233578063136af17f146102cc57806323fd0e40146102d4578063243e0963146102dd578063252e423e146102f557806327e235e31461030b5780632beb17111461032a575f80fd5b806302f487d61461026f578063039b50441461028d578063052f3e761461029e57806309b1b3f2146102ad5780630cce7676146102c2575b5f80fd5b6102776105b7565b6040516102849190611251565b60405180910390f35b607b5b604051908152602001610284565b6060604051610284919061129e565b6102b56105e1565b60405161028491906112b7565b6102ca610618565b005b6102ca6106b1565b61029060015481565b5f805b60408051928352602083019190915201610284565b6102fd610720565b604051610284929190611322565b610290610319366004611399565b60046020525f908152604090205481565b6102ca61073b565b61033a610792565b60405161028491906113b2565b61034f6107bc565b60405161028491906113e2565b6102ca61036a366004611429565b610838565b610377610928565b6040516102849190611440565b61038c610975565b60405161028491906114cb565b61029060025481565b607b6101416102e0565b6103b461098a565b604051610284919061150d565b6003546103d4906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b6102ca6103fa3660046115bf565b50565b606060405161028491906115d9565b6102ca6103fa3660046115eb565b610422610a65565b604051610284929190611651565b5f546103d4906001600160a01b031681565b61044a610a91565b6040516102849190611724565b61045f610b1b565b6040516102849190611736565b610474610b80565b60405161028491906117a8565b6102ca61048f3660046117e9565b610c20565b61049c610d1b565b604051610284929190611813565b6104b2610d4b565b6040516102849190611845565b60608060405161028492919061186e565b6104d8610d74565b604051610284919061189b565b6060806040516102849291906118cb565b6104fe610d93565b60405161028491906118dd565b6102ca610519366004611973565b50505050505050505050565b61052d610e8c565b60405161028491906119d5565b610542610ea7565b604051610284929190611a06565b610558610ec1565b6040516102849190611a72565b61056d610f21565b604051610284929190611a9f565b6102ca610589366004611399565b610f41565b6102ca61059c366004611abc565b610f8a565b6105a9610fba565b604051610284929190611ae4565b6105bf610fea565b60405180604001604052806105d26105e1565b81526020016001815250905090565b604080518082019091525f80825260208201526040805180820190915233815260208101610610600143611b13565b409052919050565b6040805160018082528183019092525f916020808301908036833701905050905033815f8151811061064c5761064c611b26565b6001600160a01b039092166020928302919091018201526040805191820181523380835290516103e9907f7dba788c1fe7f1164dec800b61c5cff1499d9f96bbd6fb4deff3e11f2c109a17906106a59086908690611b3a565b60405180910390a35050565b6040805180820182523381527f1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef6020820181905291517fa731a78d94f9b7de7d6ab1ba8b80641702fa1c4a60a45d52c8db2bbc0a2e80a8906107149083906112b7565b60405180910390a15050565b610728611013565b6060610732611013565b92606092509050565b6040515f907f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd908290a26040516001907fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced5905f90a2565b61079a61104b565b5060408051606081018252600181526002602082015260039181019190915290565b6107c4611069565b5f60405180606001604052806040518060400160405280600181526020016107ea6105e1565b815250815260200160405180604001604052806002815260200161080c6105e1565b815250815260200160405180604001604052806003815260200161082e6105e1565b9052905292915050565b5f546001600160a01b031633146108845760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b80600503610890575f80fd5b600180546002558190556040516644796e616d696360c81b8152600701604051908190039020817fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686108e3600143611b13565b4060025460405161091d92919091825260208201526060604082018190526007908201526644796e616d696360c81b608082015260a00190565b60405180910390a350565b610930611096565b5f60405180604001604052806109446105e1565b81526020016109516105e1565b90526040805160608101825260018152602081019290925260029082015292915050565b61097d6110af565b6109856110af565b919050565b604080516003808252608082019092526060915f9190816020015b6109ad6110ce565b8152602001906001900390816109a55790505090506040518060400160405280600181526020016002815250815f815181106109eb576109eb611b26565b6020026020010181905250604051806040016040528060038152602001600481525081600181518110610a2057610a20611b26565b6020026020010181905250604051806040016040528060058152602001600681525081600281518110610a5557610a55611b26565b6020908102919091010152919050565b610a6d6110af565b610a756110af565b610a7d6110af565b338152610a886110af565b90939092509050565b610a996110ec565b6040805160608101909152600560035f835b82821015610b1257838201805480602002602001604051908101604052809291908181526020018280548015610afe57602002820191905f5260205f20905b815481526020019060010190808311610aea575b505050505081526020019060010190610aab565b50505050905090565b60408051600280825260608281019093525f9190816020015b610b3c61104b565b815260200190600190039081610b345750506040805160608101825233808252602082018190529181019190915281519192509082905f90610a5557610a55611b26565b60408051600280825260608281019093525f9190816020015b610ba1610fea565b815260200190600190039081610b995790505090506040518060400160405280610bc96105e1565b81526020016001815250815f81518110610be557610be5611b26565b60200260200101819052506040518060400160405280610c036105e1565b8152602001600281525081600181518110610a5557610a55611b26565b5f546001600160a01b03163314610c675760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b604482015260640161087b565b81600503610c73575f80fd5b60018054600255829055600380546001600160a01b0319166001600160a01b0383161790556040516644796e616d696360c81b8152600701604051908190039020827fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f968610ce1600143611b13565b406002546040516106a592919091825260208201526060604082018190526007908201526644796e616d696360c81b608082015260a00190565b5f610d24611113565b6002604051806040016040528060028152602001610d406105e1565b815250915091509091565b610d53611113565b604051806040016040528060028152602001610d6d6105e1565b9052919050565b610d7c6110ce565b506040805180820190915233808252602082015290565b610d9b611142565b6040805160a08101909152600860055f835b82821015610b1257838201805480602002602001604051908101604052809291908181526020015f905b82821015610e79575f8481526020812060408051606081019091529160038086029092019190835b82821015610e6657838201805480602002602001604051908101604052809291908181526020018280548015610e5257602002820191905f5260205f20905b815481526020019060010190808311610e3e575b505050505081526020019060010190610dff565b5050505081526020019060010190610dd7565b5050505081526020019060010190610dad565b610e9461115c565b5060408051602081019091526001815290565b5f610eb061117a565b610eb861117a565b5f939092509050565b610ec96111d2565b506040805160a081018252600160608201908152600260808301528152815180830183526003815260046020828101919091528083019190915282518084018452600581526006918101919091529181019190915290565b610f296110af565b610f316110af565b610f396110af565b610a886110af565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a9905f90a250565b6001600160a01b0382165f9081526004602052604081208054839290610fb1908490611bad565b90915550505050565b610fc2610fea565b5f6040518060400160405280610fd66105e1565b815260200160018152506001915091509091565b604080516080810182525f91810182815260608201929092529081905b81526020015f81525090565b60405180606001604052806003905b604080518082019091525f80825260208201528152602001906001900390816110225790505090565b60405180606001604052806003906020820280368337509192915050565b60405180606001604052806003905b611080611113565b8152602001906001900390816110785790505090565b60405180606001604052805f81526020016110076111ff565b6040518061028001604052806014906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003905b60608152602001906001900390816110fb5790505090565b60405180604001604052805f815260200161113d604080518082019091525f808252602082015290565b905290565b6040805160a08101909152606081526004602082016110fb565b60405180602001604052806001906020820280368337509192915050565b6040518060a001604052806005905b6111bc6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001906001900390816111895790505090565b60405180606001604052806003905b6111e96110ce565b8152602001906001900390816111e15790505090565b604080516080810182525f9181018281526060820192909252908152600160208201611022565b61124482825180516001600160a01b03168252602090810151910152565b6020015160409190910152565b6060810161125f8284611226565b92915050565b5f8151808452602080850194508084015f5b8381101561129357815187529582019590820190600101611277565b509495945050505050565b602081525f6112b06020830184611265565b9392505050565b81516001600160a01b03168152602080830151908201526040810161125f565b5f8151808452602080850194508084015f5b838110156112935761130f87835180516001600160a01b03168252602090810151910152565b60409690960195908201906001016112e9565b5f8184825b60038110156113645761134e83835180516001600160a01b03168252602090810151910152565b6040929092019160209190910190600101611327565b50505060e060c083015261137b60e08301846112d7565b949350505050565b80356001600160a01b0381168114610985575f80fd5b5f602082840312156113a9575f80fd5b6112b082611383565b6060810181835f5b60038110156113d95781518352602092830192909101906001016113ba565b50505092915050565b610120810181835f5b60038110156113d95781518051845260209081015180516001600160a01b0316828601528101516040850152606090930192909101906001016113eb565b5f60208284031215611439575f80fd5b5035919050565b8151815260208083015160c0830191908184015f5b600281101561148f5761147c82845180516001600160a01b03168252602090810151910152565b9183019160409190910190600101611455565b50505050604083015160a083015292915050565b805f5b60148110156114c55781518452602093840193909101906001016114a6565b50505050565b610280810161125f82846114a3565b5f8282825b60028110156114fe5781518352602092830192909101906001016114df565b50505060408301905092915050565b602080825282518282018190525f9190848201906040850190845b818110156115495761153b8385516114da565b938501939250600101611528565b50909695505050505050565b6040805190810167ffffffffffffffff8111828210171561158457634e487b7160e01b5f52604160045260245ffd5b60405290565b5f6040828403121561159a575f80fd5b6115a2611555565b90506115ad82611383565b81526020820135602082015292915050565b5f604082840312156115cf575f80fd5b6112b0838361158a565b602081525f6112b060208301846112d7565b5f608082840312156115fb575f80fd5b82601f830112611609575f80fd5b611611611555565b806080840185811115611622575f80fd5b845b8181101561164657611636878261158a565b8452602090930192604001611624565b509095945050505050565b610500810181845f5b60148110156116825781516001600160a01b031683526020928301929091019060010161165a565b5050506102808201835f5b60148110156116af578151600f0b83526020928301929091019060010161168d565b5050509392505050565b5f8260608101835f805b6003811015611718578484038852825180518086526020918201918087019190855b82811015611701578451845293810193928101926001016116e5565b509a8b019a919650509390930192506001016116c3565b50919695505050505050565b602081525f6112b060208301846116b9565b602080825282518282018190525f919084820190604085019084805b8281101561179b57845184835b60038110156117855782516001600160a01b03168252918801919088019060010161175f565b5050509385019360609390930192600101611752565b5091979650505050505050565b602080825282518282018190525f9190848201906040850190845b81811015611549576117d6838551611226565b92840192606092909201916001016117c3565b5f80604083850312156117fa575f80fd5b8235915061180a60208401611383565b90509250929050565b828152608081016112b060208301848051825260209081015180516001600160a01b0316828401520151604090910152565b8151815260208083015180516001600160a01b031682840152015160408201526060810161125f565b604081525f61188060408301856112d7565b828103602084015261189281856112d7565b95945050505050565b6040810181835f5b60028110156113d95781516001600160a01b03168352602092830192909101906001016118a3565b604081525f6118806040830185611265565b60208082525f9060c083018382018584805b60058082106118fe5750611966565b601f1989870381018652845180518089529283901b88018901929089019089890190865b8181101561194e57848b870301835261193c8685516116b9565b9550928b0192918b0191600101611922565b509398505050948701945050918501916001016118ef565b5092979650505050505050565b5f805f805f805f805f806101408b8d03121561198d575f80fd5b505088359a60208a01359a5060408a013599606081013599506080810135985060a0810135975060c0810135965060e081013595506101008101359450610120013592509050565b60208181019082845f5b60018110156119fc578151835291830191908301906001016119df565b5050505092915050565b8281526103e081016020808301845f5b6005811015611a6757815180518452848101518585015260408082015190850152606080820151908501526080808201519085015260a0908101519084015260c09092019190830190600101611a16565b505050509392505050565b60c0810181835f5b60038110156113d957611a8e8383516114da565b925060209190910190600101611a7a565b6105008101611aae82856114a3565b6112b06102808301846114a3565b5f8060408385031215611acd575f80fd5b611ad683611383565b946020939093013593505050565b60808101611af28285611226565b8260608301529392505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561125f5761125f611aff565b634e487b7160e01b5f52603260045260245ffd5b604080825283519082018190525f906020906060840190828701845b82811015611b7b5781516001600160a01b031684529284019290840190600101611b56565b509193505050828101845f5b6001811015611a675781516001600160a01b031683529183019190830190600101611b87565b8082018082111561125f5761125f611aff56fea264697066735822122022f886ade30522c149ea6aaccc52ffbee3e99391ac37b663ba3cb2a5a6ba419764736f6c63430008150033"},"sourceId":"TestContractSol.sol","sourcemap":"57:8570:0:-:0;;;1505:308;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1540:8;:14;;;1564:5;:18;;-1:-1:-1;;;;;;1564:18:0;1572:10;1564:18;;;1593:23;;;;;;;;;;;;;;:8;;:23;;:::i;:::-;-1:-1:-1;1626:26:0;;;;;;;;;-1:-1:-1;1626:26:0;;1650:1;1626:26;;;;;;:11;;:26;;:::i;:::-;-1:-1:-1;1662:29:0;;;;;;;;-1:-1:-1;1662:29:0;;1686:1;1662:29;;;;1689:1;1662:29;;;;;;;;;:11;;:29;;:::i;:::-;-1:-1:-1;1702:10:0;:28;;;;;;;1713:1;1702:28;;;;;;;;;;;;;1721:8;;1702:28;:::i;:::-;-1:-1:-1;1740:13:0;:28;;1751:1;1740:28;;;;-1:-1:-1;1740:28:0;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1740:28:0;;1759:8;;1740:28;:::i;:::-;-1:-1:-1;1778:13:0;:28;;1789:1;1778:28;;;;-1:-1:-1;1778:28:0;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1778:28:0;;1797:8;;1778:28;:::i;:::-;;1505:308;57:8570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:8570:0;;;-1:-1:-1;57:8570:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;57:8570:0;;;-1:-1:-1;57:8570:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;14:184:1:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:1;;14:184;-1:-1:-1;14:184:1:o;203:127::-;57:8570:0;;;;;;","userdoc":{"kind":"user","methods":{},"version":1}} diff --git a/tests/functional/data/contracts/ethereum/local/vyper_contract.json b/tests/functional/data/contracts/ethereum/local/vyper_contract.json index 094ab90348..0e4039d576 100644 --- a/tests/functional/data/contracts/ethereum/local/vyper_contract.json +++ b/tests/functional/data/contracts/ethereum/local/vyper_contract.json @@ -1 +1 @@ -{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"name":"b","type":"bytes32"},{"indexed":false,"name":"prevNum","type":"uint256"},{"indexed":false,"name":"dynData","type":"string"},{"indexed":true,"name":"newNum","type":"uint256"},{"indexed":true,"name":"dynIndexed","type":"string"}],"name":"NumberChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAddress","type":"address"}],"name":"AddressChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"foo","type":"uint256"}],"name":"FooHappened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"bar","type":"uint256"}],"name":"BarHappened","type":"event"},{"anonymous":false,"inputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"indexed":false,"name":"a_struct","type":"tuple"}],"name":"EventWithStruct","type":"event"},{"inputs":[{"name":"num","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"fooAndBar","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"num","type":"uint256"}],"name":"setNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_address","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_address","type":"address"},{"name":"bal","type":"uint256"}],"name":"setBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getStruct","outputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStruct1","outputs":[{"components":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"},{"name":"foo","type":"uint256"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStruct2","outputs":[{"components":[{"name":"foo","type":"uint256"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStructWithTuple1","outputs":[{"components":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"},{"name":"foo","type":"uint256"}],"name":"","type":"tuple"},{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStructWithTuple2","outputs":[{"name":"","type":"uint256"},{"components":[{"name":"foo","type":"uint256"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEmptyDynArrayOfStructs","outputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfDynArrayStructs","outputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs","outputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[3]"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTupleOfIntAndStructArray","outputs":[{"name":"","type":"uint256"},{"components":[{"name":"one","type":"uint256"},{"name":"two","type":"uint256"},{"name":"three","type":"uint256"},{"name":"four","type":"uint256"},{"name":"five","type":"uint256"},{"name":"six","type":"uint256"}],"name":"","type":"tuple[5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEmptyTupleOfIntAndDynArray","outputs":[{"name":"","type":"uint256[]"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getStructWithArray","outputs":[{"components":[{"name":"foo","type":"uint256"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"arr","type":"tuple[2]"},{"name":"bar","type":"uint256"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEmptyArray","outputs":[{"name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getSingleItemArray","outputs":[{"name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFilledArray","outputs":[{"name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getAddressArray","outputs":[{"name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDynamicStructArray","outputs":[{"components":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"},{"name":"foo","type":"uint256"}],"name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStaticStructArray","outputs":[{"components":[{"name":"foo","type":"uint256"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"}],"name":"","type":"tuple[2]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getArrayWithBiggerSize","outputs":[{"name":"","type":"uint256[20]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTupleOfArrays","outputs":[{"name":"","type":"uint256[20]"},{"name":"","type":"uint256[20]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getMultipleValues","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getUnnamedTuple","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTupleOfAddressArray","outputs":[{"name":"","type":"address[20]"},{"name":"","type":"uint128[20]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayFixedFixed","outputs":[{"name":"","type":"uint256[2][3]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayDynamicFixed","outputs":[{"name":"","type":"uint256[2][]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayFixedDynamic","outputs":[{"name":"","type":"uint256[][3]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayMixedDynamic","outputs":[{"name":"","type":"uint256[][3][][5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedAddressArray","outputs":[{"name":"","type":"address[3][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"a0","type":"uint256"},{"name":"a1","type":"uint256"},{"name":"a2","type":"uint256"},{"name":"a3","type":"uint256"},{"name":"a4","type":"uint256"},{"name":"a5","type":"uint256"},{"name":"a6","type":"uint256"},{"name":"a7","type":"uint256"},{"name":"a8","type":"uint256"},{"name":"a9","type":"uint256"}],"name":"functionWithUniqueAmountOfArguments","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"_my_struct","type":"tuple"}],"name":"setStruct","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"_my_struct_array","type":"tuple[2]"}],"name":"setStructArray","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"logStruct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myNumber","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevNumber","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"theAddress","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"uint256"},{"name":"arg1","type":"uint256"}],"name":"dynArray","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"uint256"},{"name":"arg1","type":"uint256"},{"name":"arg2","type":"uint256"},{"name":"arg3","type":"uint256"}],"name":"mixedArray","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"ast":{"ast_type":"Module","children":[{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":14,"end_lineno":4,"lineno":4,"src":{"jump_code":"","length":7,"start":45}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":4,"lineno":4,"src":{"jump_code":"","length":1,"start":42}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":4,"lineno":4,"src":{"jump_code":"","length":10,"start":42}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":20,"end_lineno":5,"lineno":5,"src":{"jump_code":"","length":7,"start":66}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":11,"end_lineno":5,"lineno":5,"src":{"jump_code":"","length":7,"start":57}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":5,"lineno":5,"src":{"jump_code":"","length":16,"start":57}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":22,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":2,"start":94}}],"classification":0,"col_offset":13,"end_col_offset":23,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":10,"start":87}},{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":19,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":6,"start":87}}],"classification":0,"col_offset":13,"end_col_offset":23,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":10,"start":87}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":11,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":7,"start":78}}],"classification":0,"col_offset":4,"end_col_offset":23,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":19,"start":78}},{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":20,"end_col_offset":27,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":7,"start":118}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":19,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":7,"start":110}}],"classification":0,"col_offset":12,"end_col_offset":28,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":16,"start":110}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":10,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":6,"start":102}}],"classification":0,"col_offset":4,"end_col_offset":28,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":24,"start":102}},{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":31,"end_col_offset":33,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":2,"start":158}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":10,"start":151}},{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":30,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":6,"start":151}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":10,"start":151}},{"ast_type":"Name","children":[],"classification":1,"col_offset":16,"end_col_offset":23,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":7,"start":143}}],"classification":0,"col_offset":16,"end_col_offset":35,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":19,"start":143}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":14,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":10,"start":131}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":31,"start":131}}],"classification":0,"col_offset":0,"end_col_offset":35,"end_lineno":8,"lineno":3,"name":"NumberChange","src":{"jump_code":"","length":144,"start":18}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":31,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":7,"start":209}},{"ast_type":"Name","children":[],"classification":1,"col_offset":16,"end_col_offset":23,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":7,"start":201}}],"classification":0,"col_offset":16,"end_col_offset":32,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":16,"start":201}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":14,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":10,"start":189}}],"classification":0,"col_offset":4,"end_col_offset":32,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":28,"start":189}}],"classification":0,"col_offset":0,"end_col_offset":32,"end_lineno":11,"lineno":10,"name":"AddressChange","src":{"jump_code":"","length":53,"start":164}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":7,"start":255}},{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":7,"start":247}}],"classification":0,"col_offset":9,"end_col_offset":25,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":16,"start":247}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":3,"start":242}}],"classification":0,"col_offset":4,"end_col_offset":25,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":21,"start":242}}],"classification":0,"col_offset":0,"end_col_offset":25,"end_lineno":14,"lineno":13,"name":"FooHappened","src":{"jump_code":"","length":44,"start":219}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":7,"start":301}},{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":7,"start":293}}],"classification":0,"col_offset":9,"end_col_offset":25,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":16,"start":293}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":3,"start":288}}],"classification":0,"col_offset":4,"end_col_offset":25,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":21,"start":288}}],"classification":0,"col_offset":0,"end_col_offset":25,"end_lineno":17,"lineno":16,"name":"BarHappened","src":{"jump_code":"","length":44,"start":265}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":14,"end_col_offset":22,"end_lineno":20,"lineno":20,"src":{"jump_code":"","length":8,"start":348}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":12,"end_lineno":20,"lineno":20,"src":{"jump_code":"","length":8,"start":338}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":20,"lineno":20,"src":{"jump_code":"","length":18,"start":338}}],"classification":0,"col_offset":0,"end_col_offset":22,"end_lineno":20,"lineno":19,"name":"EventWithStruct","src":{"jump_code":"","length":45,"start":311}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":14,"end_lineno":23,"lineno":23,"src":{"jump_code":"","length":7,"start":382}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":23,"lineno":23,"src":{"jump_code":"","length":1,"start":379}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":23,"lineno":23,"src":{"jump_code":"","length":10,"start":379}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":14,"end_lineno":24,"lineno":24,"src":{"jump_code":"","length":7,"start":397}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":24,"lineno":24,"src":{"jump_code":"","length":1,"start":394}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":24,"lineno":24,"src":{"jump_code":"","length":10,"start":394}}],"classification":0,"col_offset":0,"end_col_offset":14,"end_lineno":24,"lineno":22,"name":"MyStruct","src":{"jump_code":"","length":46,"start":358}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":15,"end_lineno":27,"lineno":27,"src":{"jump_code":"","length":8,"start":435}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":27,"lineno":27,"src":{"jump_code":"","length":1,"start":432}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":27,"lineno":27,"src":{"jump_code":"","length":11,"start":432}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":28,"lineno":28,"src":{"jump_code":"","length":7,"start":453}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":28,"lineno":28,"src":{"jump_code":"","length":3,"start":448}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":28,"lineno":28,"src":{"jump_code":"","length":12,"start":448}}],"classification":0,"col_offset":0,"end_col_offset":16,"end_lineno":28,"lineno":26,"name":"NestedStruct1","src":{"jump_code":"","length":54,"start":406}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":31,"lineno":31,"src":{"jump_code":"","length":7,"start":493}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":31,"lineno":31,"src":{"jump_code":"","length":3,"start":488}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":31,"lineno":31,"src":{"jump_code":"","length":12,"start":488}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":15,"end_lineno":32,"lineno":32,"src":{"jump_code":"","length":8,"start":508}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":32,"lineno":32,"src":{"jump_code":"","length":1,"start":505}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":32,"lineno":32,"src":{"jump_code":"","length":11,"start":505}}],"classification":0,"col_offset":0,"end_col_offset":15,"end_lineno":32,"lineno":30,"name":"NestedStruct2","src":{"jump_code":"","length":54,"start":462}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":35,"lineno":35,"src":{"jump_code":"","length":7,"start":545}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":35,"lineno":35,"src":{"jump_code":"","length":3,"start":540}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":35,"lineno":35,"src":{"jump_code":"","length":12,"start":540}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":36,"lineno":36,"src":{"jump_code":"","length":1,"start":571}}],"classification":0,"col_offset":9,"end_col_offset":20,"end_lineno":36,"lineno":36,"src":{"jump_code":"","length":11,"start":562}},{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":17,"end_lineno":36,"lineno":36,"src":{"jump_code":"","length":8,"start":562}}],"classification":0,"col_offset":9,"end_col_offset":20,"end_lineno":36,"lineno":36,"src":{"jump_code":"","length":11,"start":562}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":36,"lineno":36,"src":{"jump_code":"","length":3,"start":557}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":36,"lineno":36,"src":{"jump_code":"","length":16,"start":557}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":37,"lineno":37,"src":{"jump_code":"","length":7,"start":583}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":37,"lineno":37,"src":{"jump_code":"","length":3,"start":578}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":37,"lineno":37,"src":{"jump_code":"","length":12,"start":578}}],"classification":0,"col_offset":0,"end_col_offset":16,"end_lineno":37,"lineno":34,"name":"WithArray","src":{"jump_code":"","length":72,"start":518}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":40,"lineno":40,"src":{"jump_code":"","length":7,"start":619}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":40,"lineno":40,"src":{"jump_code":"","length":3,"start":614}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":40,"lineno":40,"src":{"jump_code":"","length":12,"start":614}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":41,"lineno":41,"src":{"jump_code":"","length":7,"start":636}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":41,"lineno":41,"src":{"jump_code":"","length":3,"start":631}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":41,"lineno":41,"src":{"jump_code":"","length":12,"start":631}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":18,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":7,"start":655}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":9,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":5,"start":648}}],"classification":0,"col_offset":4,"end_col_offset":18,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":14,"start":648}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":10,"end_col_offset":17,"end_lineno":43,"lineno":43,"src":{"jump_code":"","length":7,"start":673}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":43,"lineno":43,"src":{"jump_code":"","length":4,"start":667}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":43,"lineno":43,"src":{"jump_code":"","length":13,"start":667}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":10,"end_col_offset":17,"end_lineno":44,"lineno":44,"src":{"jump_code":"","length":7,"start":691}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":44,"lineno":44,"src":{"jump_code":"","length":4,"start":685}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":44,"lineno":44,"src":{"jump_code":"","length":13,"start":685}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":45,"lineno":45,"src":{"jump_code":"","length":7,"start":708}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":45,"lineno":45,"src":{"jump_code":"","length":3,"start":703}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":45,"lineno":45,"src":{"jump_code":"","length":12,"start":703}}],"classification":0,"col_offset":0,"end_col_offset":16,"end_lineno":45,"lineno":39,"name":"IntStruct","src":{"jump_code":"","length":123,"start":592}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":14,"end_col_offset":21,"end_lineno":47,"lineno":47,"src":{"jump_code":"","length":7,"start":731}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":5,"end_lineno":47,"lineno":47,"src":{"jump_code":"","length":5,"start":717}}],"classification":0,"col_offset":0,"end_col_offset":22,"end_lineno":47,"lineno":47,"src":{"jump_code":"","length":22,"start":717}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":48,"lineno":48,"src":{"jump_code":"","length":7,"start":757}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":48,"lineno":48,"src":{"jump_code":"","length":8,"start":740}}],"classification":0,"col_offset":0,"end_col_offset":25,"end_lineno":48,"lineno":48,"src":{"jump_code":"","length":25,"start":740}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":26,"end_lineno":49,"lineno":49,"src":{"jump_code":"","length":7,"start":785}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":10,"end_lineno":49,"lineno":49,"src":{"jump_code":"","length":10,"start":766}}],"classification":0,"col_offset":0,"end_col_offset":27,"end_lineno":49,"lineno":49,"src":{"jump_code":"","length":27,"start":766}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":26,"end_lineno":50,"lineno":50,"src":{"jump_code":"","length":7,"start":813}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":10,"end_lineno":50,"lineno":50,"src":{"jump_code":"","length":10,"start":794}}],"classification":0,"col_offset":0,"end_col_offset":27,"end_lineno":50,"lineno":50,"src":{"jump_code":"","length":27,"start":794}},{"ast_type":"VariableDecl","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":32,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":7,"start":847}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":41,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":7,"start":856}}],"classification":0,"col_offset":25,"end_col_offset":41,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":16,"start":847}}],"classification":0,"col_offset":17,"end_col_offset":42,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":25,"start":839}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":7,"start":839}}],"classification":0,"col_offset":17,"end_col_offset":42,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":25,"start":839}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":8,"start":822}}],"classification":0,"col_offset":0,"end_col_offset":43,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":43,"start":822}},{"ast_type":"VariableDecl","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":41,"end_col_offset":42,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":1,"start":907}}],"classification":0,"col_offset":17,"end_col_offset":43,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":26,"start":883}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":33,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":7,"start":892}},{"ast_type":"Int","children":[],"classification":0,"col_offset":35,"end_col_offset":39,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":4,"start":901}}],"classification":0,"col_offset":26,"end_col_offset":39,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":13,"start":892}}],"classification":0,"col_offset":17,"end_col_offset":40,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":23,"start":883}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":25,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":8,"start":883}}],"classification":0,"col_offset":17,"end_col_offset":40,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":23,"start":883}}],"classification":0,"col_offset":17,"end_col_offset":43,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":26,"start":883}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":8,"start":866}}],"classification":0,"col_offset":0,"end_col_offset":44,"end_lineno":52,"lineno":52,"src":{"jump_code":"","length":44,"start":866}},{"ast_type":"VariableDecl","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":62,"end_col_offset":63,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":1,"start":973}}],"classification":0,"col_offset":19,"end_col_offset":64,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":45,"start":930}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":52,"end_col_offset":53,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":1,"start":963}}],"classification":0,"col_offset":28,"end_col_offset":54,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":26,"start":939}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":44,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":7,"start":948}},{"ast_type":"Int","children":[],"classification":0,"col_offset":46,"end_col_offset":50,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":4,"start":957}}],"classification":0,"col_offset":37,"end_col_offset":50,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":13,"start":948}}],"classification":0,"col_offset":28,"end_col_offset":51,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":23,"start":939}},{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":8,"start":939}}],"classification":0,"col_offset":28,"end_col_offset":51,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":23,"start":939}}],"classification":0,"col_offset":28,"end_col_offset":54,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":26,"start":939}},{"ast_type":"Int","children":[],"classification":0,"col_offset":56,"end_col_offset":60,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":4,"start":967}}],"classification":0,"col_offset":28,"end_col_offset":60,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":32,"start":939}}],"classification":0,"col_offset":19,"end_col_offset":61,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":42,"start":930}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":8,"start":930}}],"classification":0,"col_offset":19,"end_col_offset":61,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":42,"start":930}}],"classification":0,"col_offset":19,"end_col_offset":64,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":45,"start":930}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":10,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":10,"start":911}}],"classification":0,"col_offset":0,"end_col_offset":65,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":65,"start":911}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":26,"end_lineno":55,"lineno":55,"src":{"jump_code":"","length":7,"start":997}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":7,"end_lineno":55,"lineno":55,"src":{"jump_code":"","length":7,"start":978}},{"ast_type":"Int","children":[],"classification":0,"col_offset":30,"end_col_offset":31,"end_lineno":55,"lineno":55,"src":{"jump_code":"","length":1,"start":1008}}],"classification":0,"col_offset":0,"end_col_offset":31,"end_lineno":55,"lineno":55,"src":{"jump_code":"","length":31,"start":978}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":25,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":7,"start":1039}}],"classification":0,"col_offset":13,"end_col_offset":25,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":12,"start":1034}}],"classification":1,"col_offset":13,"end_col_offset":25,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":12,"start":1034}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":4,"start":1053}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":13,"start":1053}},{"ast_type":"Name","children":[],"classification":1,"col_offset":20,"end_col_offset":23,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":3,"start":1069}}],"classification":0,"col_offset":4,"end_col_offset":23,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":19,"start":1053}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":60,"lineno":60,"src":{"jump_code":"","length":4,"start":1077}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":60,"lineno":60,"src":{"jump_code":"","length":10,"start":1077}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":20,"end_lineno":60,"lineno":60,"src":{"jump_code":"","length":3,"start":1090}}],"classification":0,"col_offset":17,"end_col_offset":27,"end_lineno":60,"lineno":60,"src":{"jump_code":"","length":10,"start":1090}}],"classification":0,"col_offset":4,"end_col_offset":27,"end_lineno":60,"lineno":60,"src":{"jump_code":"","length":23,"start":1077}},{"ast_type":"Assign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":1,"start":1119}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":16,"start":1105}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":4,"start":1105}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":13,"start":1105}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":16,"start":1105}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":1,"start":1125}}],"classification":0,"col_offset":23,"end_col_offset":26,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":3,"start":1124}}],"classification":0,"col_offset":4,"end_col_offset":26,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":22,"start":1105}},{"ast_type":"Assign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":1,"start":1146}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":16,"start":1132}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":4,"start":1132}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":13,"start":1132}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":16,"start":1132}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":1,"start":1152}},{"ast_type":"Int","children":[],"classification":0,"col_offset":27,"end_col_offset":28,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":1,"start":1155}}],"classification":0,"col_offset":23,"end_col_offset":29,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":6,"start":1151}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":62,"lineno":62,"src":{"jump_code":"","length":25,"start":1132}},{"ast_type":"Assign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":1,"start":1176}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":16,"start":1162}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":4,"start":1162}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":13,"start":1162}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":16,"start":1162}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":1,"start":1182}},{"ast_type":"Int","children":[],"classification":0,"col_offset":27,"end_col_offset":28,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":1,"start":1185}},{"ast_type":"Int","children":[],"classification":0,"col_offset":30,"end_col_offset":31,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":1,"start":1188}}],"classification":0,"col_offset":23,"end_col_offset":32,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":9,"start":1181}}],"classification":0,"col_offset":4,"end_col_offset":32,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":28,"start":1162}},{"ast_type":"Expr","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":34,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":4,"start":1221}}],"classification":0,"col_offset":30,"end_col_offset":43,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":13,"start":1221}},{"ast_type":"Attribute","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":21,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":1,"start":1211}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":18,"start":1195}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":4,"start":1195}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":15,"start":1195}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":18,"start":1195}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":25,"start":1195}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":40,"start":1195}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":40,"start":1195}},{"ast_type":"Expr","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":34,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":4,"start":1266}}],"classification":0,"col_offset":30,"end_col_offset":43,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":13,"start":1266}},{"ast_type":"Attribute","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":21,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":1,"start":1256}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":18,"start":1240}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":4,"start":1240}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":15,"start":1240}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":18,"start":1240}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":25,"start":1240}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":40,"start":1240}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":40,"start":1240}},{"ast_type":"Expr","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":34,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":4,"start":1311}}],"classification":0,"col_offset":30,"end_col_offset":43,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":13,"start":1311}},{"ast_type":"Attribute","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":21,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":1,"start":1301}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":18,"start":1285}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":4,"start":1285}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":15,"start":1285}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":18,"start":1285}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":25,"start":1285}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":40,"start":1285}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":40,"start":1285}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":8,"start":1012}}],"classification":1,"col_offset":0,"end_col_offset":44,"end_lineno":66,"lineno":58,"name":"__init__","src":{"jump_code":"","length":304,"start":1021}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":3,"start":1337}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":22,"end_col_offset":22,"end_lineno":70,"lineno":70,"src":{"jump_code":"","start":1376}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":19,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":11,"start":1362}}],"classification":0,"col_offset":8,"end_col_offset":22,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":14,"start":1362}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":18,"start":1358}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":22,"end_col_offset":22,"end_lineno":71,"lineno":71,"src":{"jump_code":"","start":1399}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":19,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":11,"start":1385}}],"classification":0,"col_offset":8,"end_col_offset":22,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":14,"start":1385}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":18,"start":1381}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":8,"start":1328}}],"classification":1,"col_offset":0,"end_col_offset":22,"end_lineno":71,"lineno":69,"name":"fooAndBar","src":{"jump_code":"","length":62,"start":1337}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":26,"end_lineno":74,"lineno":74,"src":{"jump_code":"","length":7,"start":1430}}],"classification":0,"col_offset":14,"end_col_offset":26,"end_lineno":74,"lineno":74,"src":{"jump_code":"","length":12,"start":1425}}],"classification":1,"col_offset":14,"end_col_offset":26,"end_lineno":74,"lineno":74,"src":{"jump_code":"","length":12,"start":1425}},{"ast_type":"Assert","children":[{"ast_type":"Str","children":[],"classification":0,"col_offset":37,"end_col_offset":50,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":13,"start":1477}},{"ast_type":"Compare","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":14,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":3,"start":1451}}],"classification":0,"col_offset":11,"end_col_offset":21,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":10,"start":1451}},{"ast_type":"Eq","children":[],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":24,"start":1451}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":29,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":4,"start":1465}}],"classification":0,"col_offset":25,"end_col_offset":35,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":10,"start":1465}}],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":24,"start":1451}}],"classification":0,"col_offset":4,"end_col_offset":50,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":46,"start":1444}},{"ast_type":"Assert","children":[{"ast_type":"Compare","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":14,"end_lineno":76,"lineno":76,"src":{"jump_code":"","length":3,"start":1502}},{"ast_type":"NotEq","children":[],"classification":0,"col_offset":11,"end_col_offset":19,"end_lineno":76,"lineno":76,"src":{"jump_code":"","length":8,"start":1502}},{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":76,"lineno":76,"src":{"jump_code":"","length":1,"start":1509}}],"classification":0,"col_offset":11,"end_col_offset":19,"end_lineno":76,"lineno":76,"src":{"jump_code":"","length":8,"start":1502}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":76,"lineno":76,"src":{"jump_code":"","length":15,"start":1495}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":77,"lineno":77,"src":{"jump_code":"","length":4,"start":1515}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":77,"lineno":77,"src":{"jump_code":"","length":15,"start":1515}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":22,"end_col_offset":26,"end_lineno":77,"lineno":77,"src":{"jump_code":"","length":4,"start":1533}}],"classification":0,"col_offset":22,"end_col_offset":35,"end_lineno":77,"lineno":77,"src":{"jump_code":"","length":13,"start":1533}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":77,"lineno":77,"src":{"jump_code":"","length":31,"start":1515}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":78,"lineno":78,"src":{"jump_code":"","length":4,"start":1551}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":78,"lineno":78,"src":{"jump_code":"","length":13,"start":1551}},{"ast_type":"Name","children":[],"classification":1,"col_offset":20,"end_col_offset":23,"end_lineno":78,"lineno":78,"src":{"jump_code":"","length":3,"start":1567}}],"classification":0,"col_offset":4,"end_col_offset":23,"end_lineno":78,"lineno":78,"src":{"jump_code":"","length":19,"start":1551}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":21,"end_col_offset":26,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":5,"start":1592}}],"classification":0,"col_offset":21,"end_col_offset":35,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":14,"start":1592}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":41,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":4,"start":1608}}],"classification":0,"col_offset":37,"end_col_offset":52,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":15,"start":1608}},{"ast_type":"Str","children":[],"classification":0,"col_offset":54,"end_col_offset":63,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":9,"start":1625}},{"ast_type":"Name","children":[],"classification":1,"col_offset":65,"end_col_offset":68,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":3,"start":1636}},{"ast_type":"Str","children":[],"classification":0,"col_offset":70,"end_col_offset":79,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":9,"start":1641}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":20,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":12,"start":1579}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":72,"start":1579}}],"classification":0,"col_offset":4,"end_col_offset":80,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":76,"start":1575}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":73,"lineno":73,"src":{"jump_code":"","length":8,"start":1402}}],"classification":1,"col_offset":0,"end_col_offset":80,"end_lineno":79,"lineno":74,"name":"setNumber","src":{"jump_code":"","length":240,"start":1411}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":32,"end_lineno":82,"lineno":82,"src":{"jump_code":"","length":7,"start":1688}}],"classification":0,"col_offset":15,"end_col_offset":32,"end_lineno":82,"lineno":82,"src":{"jump_code":"","length":17,"start":1678}}],"classification":1,"col_offset":15,"end_col_offset":32,"end_lineno":82,"lineno":82,"src":{"jump_code":"","length":17,"start":1678}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":4,"start":1702}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":15,"start":1702}},{"ast_type":"Name","children":[],"classification":1,"col_offset":22,"end_col_offset":30,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":8,"start":1720}}],"classification":0,"col_offset":4,"end_col_offset":30,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":26,"start":1702}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":22,"end_col_offset":30,"end_lineno":84,"lineno":84,"src":{"jump_code":"","length":8,"start":1751}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":84,"lineno":84,"src":{"jump_code":"","length":13,"start":1737}}],"classification":0,"col_offset":8,"end_col_offset":31,"end_lineno":84,"lineno":84,"src":{"jump_code":"","length":23,"start":1737}}],"classification":0,"col_offset":4,"end_col_offset":31,"end_lineno":84,"lineno":84,"src":{"jump_code":"","length":27,"start":1733}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":8,"start":1654}}],"classification":1,"col_offset":0,"end_col_offset":31,"end_lineno":84,"lineno":82,"name":"setAddress","src":{"jump_code":"","length":97,"start":1663}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":32,"end_lineno":87,"lineno":87,"src":{"jump_code":"","length":7,"start":1797}}],"classification":0,"col_offset":15,"end_col_offset":32,"end_lineno":87,"lineno":87,"src":{"jump_code":"","length":17,"start":1787}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":46,"end_lineno":87,"lineno":87,"src":{"jump_code":"","length":7,"start":1811}}],"classification":0,"col_offset":34,"end_col_offset":46,"end_lineno":87,"lineno":87,"src":{"jump_code":"","length":12,"start":1806}}],"classification":1,"col_offset":15,"end_col_offset":46,"end_lineno":87,"lineno":87,"src":{"jump_code":"","length":31,"start":1787}},{"ast_type":"AugAssign","children":[{"ast_type":"Add","children":[],"classification":0,"col_offset":4,"end_col_offset":34,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":30,"start":1825}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":26,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":8,"start":1839}}],"classification":0,"col_offset":4,"end_col_offset":27,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":23,"start":1825}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":4,"start":1825}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":13,"start":1825}}],"classification":0,"col_offset":4,"end_col_offset":27,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":23,"start":1825}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":34,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":3,"start":1852}}],"classification":0,"col_offset":4,"end_col_offset":34,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":30,"start":1825}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":86,"lineno":86,"src":{"jump_code":"","length":8,"start":1763}}],"classification":1,"col_offset":0,"end_col_offset":34,"end_lineno":88,"lineno":87,"name":"setBalance","src":{"jump_code":"","length":83,"start":1772}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":92,"lineno":92,"src":{"jump_code":"","length":3,"start":1873}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":21,"end_col_offset":22,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":1,"start":1923}},{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":37,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":1,"start":1938}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":27,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":3,"start":1926}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":10,"start":1926}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":44,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":5,"start":1941}}],"classification":0,"col_offset":39,"end_col_offset":53,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":14,"start":1941}}],"classification":0,"col_offset":20,"end_col_offset":54,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":34,"start":1922}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":19,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":8,"start":1913}}],"classification":0,"col_offset":11,"end_col_offset":55,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":44,"start":1913}}],"classification":0,"col_offset":4,"end_col_offset":55,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":51,"start":1906}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":90,"lineno":90,"src":{"jump_code":"","length":4,"start":1858}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":91,"lineno":91,"src":{"jump_code":"","length":8,"start":1864}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":92,"lineno":92,"src":{"jump_code":"","length":8,"start":1892}}],"classification":1,"col_offset":0,"end_col_offset":55,"end_lineno":93,"lineno":92,"name":"getStruct","src":{"jump_code":"","length":84,"start":1873}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":97,"lineno":97,"src":{"jump_code":"","length":3,"start":1975}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":27,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":1,"start":2042}},{"ast_type":"Name","children":[],"classification":1,"col_offset":75,"end_col_offset":78,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":3,"start":2091}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":40,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":1,"start":2055}},{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":55,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":1,"start":2070}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":42,"end_col_offset":45,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":3,"start":2058}}],"classification":0,"col_offset":42,"end_col_offset":52,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":10,"start":2058}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":57,"end_col_offset":62,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":5,"start":2073}}],"classification":0,"col_offset":57,"end_col_offset":71,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":14,"start":2073}}],"classification":0,"col_offset":38,"end_col_offset":72,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":34,"start":2054}},{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":37,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":8,"start":2045}}],"classification":0,"col_offset":29,"end_col_offset":73,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":44,"start":2045}},{"ast_type":"Int","children":[],"classification":0,"col_offset":80,"end_col_offset":81,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":1,"start":2096}}],"classification":0,"col_offset":25,"end_col_offset":82,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":57,"start":2041}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":24,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":13,"start":2027}}],"classification":0,"col_offset":11,"end_col_offset":83,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":72,"start":2027}}],"classification":0,"col_offset":4,"end_col_offset":83,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":79,"start":2020}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":95,"lineno":95,"src":{"jump_code":"","length":4,"start":1960}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":96,"lineno":96,"src":{"jump_code":"","length":8,"start":1966}},{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":39,"end_lineno":97,"lineno":97,"src":{"jump_code":"","length":13,"start":2001}}],"classification":1,"col_offset":0,"end_col_offset":83,"end_lineno":98,"lineno":97,"name":"getNestedStruct1","src":{"jump_code":"","length":124,"start":1975}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":102,"lineno":102,"src":{"jump_code":"","length":3,"start":2117}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":29,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":3,"start":2184}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":35,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":1,"start":2192}},{"ast_type":"Int","children":[],"classification":0,"col_offset":31,"end_col_offset":32,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":1,"start":2189}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":47,"end_col_offset":48,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":1,"start":2205}},{"ast_type":"Name","children":[],"classification":1,"col_offset":62,"end_col_offset":63,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":1,"start":2220}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":50,"end_col_offset":53,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":3,"start":2208}}],"classification":0,"col_offset":50,"end_col_offset":60,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":10,"start":2208}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":65,"end_col_offset":70,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":5,"start":2223}}],"classification":0,"col_offset":65,"end_col_offset":79,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":14,"start":2223}}],"classification":0,"col_offset":46,"end_col_offset":80,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":34,"start":2204}},{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":45,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":8,"start":2195}}],"classification":0,"col_offset":37,"end_col_offset":81,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":44,"start":2195}}],"classification":0,"col_offset":25,"end_col_offset":82,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":57,"start":2183}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":24,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":13,"start":2169}}],"classification":0,"col_offset":11,"end_col_offset":83,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":72,"start":2169}}],"classification":0,"col_offset":4,"end_col_offset":83,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":79,"start":2162}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":100,"lineno":100,"src":{"jump_code":"","length":4,"start":2102}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":101,"lineno":101,"src":{"jump_code":"","length":8,"start":2108}},{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":39,"end_lineno":102,"lineno":102,"src":{"jump_code":"","length":13,"start":2143}}],"classification":1,"col_offset":0,"end_col_offset":83,"end_lineno":103,"lineno":102,"name":"getNestedStruct2","src":{"jump_code":"","length":124,"start":2117}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":107,"lineno":107,"src":{"jump_code":"","length":3,"start":2259}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":28,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":1,"start":2347}},{"ast_type":"Name","children":[],"classification":1,"col_offset":76,"end_col_offset":79,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":3,"start":2396}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":41,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":1,"start":2360}},{"ast_type":"Name","children":[],"classification":1,"col_offset":55,"end_col_offset":56,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":1,"start":2375}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":43,"end_col_offset":46,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":3,"start":2363}}],"classification":0,"col_offset":43,"end_col_offset":53,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":10,"start":2363}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":58,"end_col_offset":63,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":5,"start":2378}}],"classification":0,"col_offset":58,"end_col_offset":72,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":14,"start":2378}}],"classification":0,"col_offset":39,"end_col_offset":73,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":34,"start":2359}},{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":38,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":8,"start":2350}}],"classification":0,"col_offset":30,"end_col_offset":74,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":44,"start":2350}},{"ast_type":"Int","children":[],"classification":0,"col_offset":81,"end_col_offset":82,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":1,"start":2401}}],"classification":0,"col_offset":26,"end_col_offset":83,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":57,"start":2346}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":25,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":13,"start":2332}}],"classification":0,"col_offset":12,"end_col_offset":84,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":72,"start":2332}},{"ast_type":"Int","children":[],"classification":0,"col_offset":86,"end_col_offset":87,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":1,"start":2406}}],"classification":0,"col_offset":11,"end_col_offset":88,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":77,"start":2331}}],"classification":0,"col_offset":4,"end_col_offset":88,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":84,"start":2324}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":105,"lineno":105,"src":{"jump_code":"","length":4,"start":2244}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":106,"lineno":106,"src":{"jump_code":"","length":8,"start":2250}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":49,"end_lineno":107,"lineno":107,"src":{"jump_code":"","length":13,"start":2295}},{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":58,"end_lineno":107,"lineno":107,"src":{"jump_code":"","length":7,"start":2310}}],"classification":0,"col_offset":35,"end_col_offset":59,"end_lineno":107,"lineno":107,"src":{"jump_code":"","length":24,"start":2294}}],"classification":1,"col_offset":0,"end_col_offset":88,"end_lineno":108,"lineno":107,"name":"getNestedStructWithTuple1","src":{"jump_code":"","length":149,"start":2259}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":112,"lineno":112,"src":{"jump_code":"","length":3,"start":2426}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":13,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":1,"start":2499}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":33,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":3,"start":2517}},{"ast_type":"Name","children":[],"classification":1,"col_offset":38,"end_col_offset":39,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":1,"start":2525}},{"ast_type":"Int","children":[],"classification":0,"col_offset":35,"end_col_offset":36,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":1,"start":2522}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":52,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":1,"start":2538}},{"ast_type":"Name","children":[],"classification":1,"col_offset":66,"end_col_offset":67,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":1,"start":2553}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":57,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":3,"start":2541}}],"classification":0,"col_offset":54,"end_col_offset":64,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":10,"start":2541}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":69,"end_col_offset":74,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":5,"start":2556}}],"classification":0,"col_offset":69,"end_col_offset":83,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":14,"start":2556}}],"classification":0,"col_offset":50,"end_col_offset":84,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":34,"start":2537}},{"ast_type":"Name","children":[],"classification":1,"col_offset":41,"end_col_offset":49,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":8,"start":2528}}],"classification":0,"col_offset":41,"end_col_offset":85,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":44,"start":2528}}],"classification":0,"col_offset":29,"end_col_offset":86,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":57,"start":2516}},{"ast_type":"Name","children":[],"classification":1,"col_offset":15,"end_col_offset":28,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":13,"start":2502}}],"classification":0,"col_offset":15,"end_col_offset":87,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":72,"start":2502}}],"classification":0,"col_offset":11,"end_col_offset":88,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":77,"start":2498}}],"classification":0,"col_offset":4,"end_col_offset":88,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":84,"start":2491}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":110,"lineno":110,"src":{"jump_code":"","length":4,"start":2411}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":111,"lineno":111,"src":{"jump_code":"","length":8,"start":2417}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":43,"end_lineno":112,"lineno":112,"src":{"jump_code":"","length":7,"start":2462}},{"ast_type":"Name","children":[],"classification":1,"col_offset":45,"end_col_offset":58,"end_lineno":112,"lineno":112,"src":{"jump_code":"","length":13,"start":2471}}],"classification":0,"col_offset":35,"end_col_offset":59,"end_lineno":112,"lineno":112,"src":{"jump_code":"","length":24,"start":2461}}],"classification":1,"col_offset":0,"end_col_offset":88,"end_lineno":113,"lineno":112,"name":"getNestedStructWithTuple2","src":{"jump_code":"","length":149,"start":2426}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":117,"lineno":117,"src":{"jump_code":"","length":3,"start":2593}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":8,"start":2678}},{"ast_type":"Int","children":[],"classification":0,"col_offset":36,"end_col_offset":38,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":2,"start":2688}}],"classification":0,"col_offset":26,"end_col_offset":38,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":12,"start":2678}}],"classification":0,"col_offset":17,"end_col_offset":39,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":22,"start":2669}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":25,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":8,"start":2669}}],"classification":0,"col_offset":17,"end_col_offset":39,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":22,"start":2669}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":15,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":11,"start":2656}},{"ast_type":"List","children":[],"classification":0,"col_offset":42,"end_col_offset":44,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":2,"start":2694}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":40,"start":2656}},{"ast_type":"Return","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":22,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":11,"start":2708}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":18,"start":2701}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":115,"lineno":115,"src":{"jump_code":"","length":4,"start":2578}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":116,"lineno":116,"src":{"jump_code":"","length":8,"start":2584}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":52,"end_lineno":117,"lineno":117,"src":{"jump_code":"","length":8,"start":2637}},{"ast_type":"Int","children":[],"classification":0,"col_offset":54,"end_col_offset":56,"end_lineno":117,"lineno":117,"src":{"jump_code":"","length":2,"start":2647}}],"classification":0,"col_offset":44,"end_col_offset":56,"end_lineno":117,"lineno":117,"src":{"jump_code":"","length":12,"start":2637}}],"classification":0,"col_offset":35,"end_col_offset":57,"end_lineno":117,"lineno":117,"src":{"jump_code":"","length":22,"start":2628}},{"ast_type":"Name","children":[],"classification":1,"col_offset":35,"end_col_offset":43,"end_lineno":117,"lineno":117,"src":{"jump_code":"","length":8,"start":2628}}],"classification":0,"col_offset":35,"end_col_offset":57,"end_lineno":117,"lineno":117,"src":{"jump_code":"","length":22,"start":2628}}],"classification":1,"col_offset":0,"end_col_offset":22,"end_lineno":119,"lineno":117,"name":"getEmptyDynArrayOfStructs","src":{"jump_code":"","length":126,"start":2593}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":3,"start":2737}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":8,"start":2855}},{"ast_type":"Int","children":[],"classification":0,"col_offset":38,"end_col_offset":40,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":2,"start":2865}}],"classification":0,"col_offset":28,"end_col_offset":40,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":12,"start":2855}}],"classification":0,"col_offset":19,"end_col_offset":41,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":22,"start":2846}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":8,"start":2846}}],"classification":0,"col_offset":19,"end_col_offset":41,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":22,"start":2846}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":17,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":13,"start":2831}},{"ast_type":"List","children":[],"classification":0,"col_offset":44,"end_col_offset":46,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":2,"start":2871}}],"classification":0,"col_offset":4,"end_col_offset":46,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":42,"start":2831}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":8,"start":2902}},{"ast_type":"Int","children":[],"classification":0,"col_offset":38,"end_col_offset":40,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":2,"start":2912}}],"classification":0,"col_offset":28,"end_col_offset":40,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":12,"start":2902}}],"classification":0,"col_offset":19,"end_col_offset":41,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":22,"start":2893}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":8,"start":2893}}],"classification":0,"col_offset":19,"end_col_offset":41,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":22,"start":2893}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":17,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":13,"start":2878}},{"ast_type":"List","children":[],"classification":0,"col_offset":44,"end_col_offset":46,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":2,"start":2918}}],"classification":0,"col_offset":4,"end_col_offset":46,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":42,"start":2878}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":25,"end_lineno":126,"lineno":126,"src":{"jump_code":"","length":13,"start":2933}},{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":40,"end_lineno":126,"lineno":126,"src":{"jump_code":"","length":13,"start":2948}}],"classification":0,"col_offset":11,"end_col_offset":41,"end_lineno":126,"lineno":126,"src":{"jump_code":"","length":30,"start":2932}}],"classification":0,"col_offset":4,"end_col_offset":41,"end_lineno":126,"lineno":126,"src":{"jump_code":"","length":37,"start":2925}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":121,"lineno":121,"src":{"jump_code":"","length":4,"start":2722}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":122,"lineno":122,"src":{"jump_code":"","length":8,"start":2728}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":50,"end_col_offset":58,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":8,"start":2787}},{"ast_type":"Int","children":[],"classification":0,"col_offset":60,"end_col_offset":62,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":2,"start":2797}}],"classification":0,"col_offset":50,"end_col_offset":62,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":12,"start":2787}}],"classification":0,"col_offset":41,"end_col_offset":63,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":22,"start":2778}},{"ast_type":"Name","children":[],"classification":1,"col_offset":41,"end_col_offset":49,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":8,"start":2778}}],"classification":0,"col_offset":41,"end_col_offset":63,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":22,"start":2778}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":74,"end_col_offset":82,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":8,"start":2811}},{"ast_type":"Int","children":[],"classification":0,"col_offset":84,"end_col_offset":86,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":2,"start":2821}}],"classification":0,"col_offset":74,"end_col_offset":86,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":12,"start":2811}}],"classification":0,"col_offset":65,"end_col_offset":87,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":22,"start":2802}},{"ast_type":"Name","children":[],"classification":1,"col_offset":65,"end_col_offset":73,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":8,"start":2802}}],"classification":0,"col_offset":65,"end_col_offset":87,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":22,"start":2802}}],"classification":0,"col_offset":40,"end_col_offset":88,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":48,"start":2777}}],"classification":1,"col_offset":0,"end_col_offset":41,"end_lineno":126,"lineno":123,"name":"getEmptyTupleOfDynArrayStructs","src":{"jump_code":"","length":225,"start":2737}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":3,"start":2980}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":28,"end_col_offset":29,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":1,"start":3105}}],"classification":0,"col_offset":19,"end_col_offset":30,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":11,"start":3096}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":8,"start":3096}}],"classification":0,"col_offset":19,"end_col_offset":30,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":11,"start":3096}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":17,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":13,"start":3081}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":48,"end_col_offset":49,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":1,"start":3125}}],"classification":0,"col_offset":39,"end_col_offset":50,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":11,"start":3116}},{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":47,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":8,"start":3116}}],"classification":0,"col_offset":39,"end_col_offset":50,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":11,"start":3116}},{"ast_type":"Name","children":[],"classification":1,"col_offset":33,"end_col_offset":38,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":5,"start":3110}}],"classification":0,"col_offset":33,"end_col_offset":51,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":18,"start":3110}}],"classification":0,"col_offset":4,"end_col_offset":51,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":47,"start":3081}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":8,"start":3157}},{"ast_type":"Int","children":[],"classification":0,"col_offset":38,"end_col_offset":39,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":1,"start":3167}}],"classification":0,"col_offset":28,"end_col_offset":39,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":11,"start":3157}}],"classification":0,"col_offset":19,"end_col_offset":40,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":21,"start":3148}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":8,"start":3148}}],"classification":0,"col_offset":19,"end_col_offset":40,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":21,"start":3148}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":17,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":13,"start":3133}},{"ast_type":"List","children":[],"classification":0,"col_offset":43,"end_col_offset":45,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":2,"start":3172}}],"classification":0,"col_offset":4,"end_col_offset":45,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":41,"start":3133}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":25,"end_lineno":133,"lineno":133,"src":{"jump_code":"","length":13,"start":3187}},{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":40,"end_lineno":133,"lineno":133,"src":{"jump_code":"","length":13,"start":3202}}],"classification":0,"col_offset":11,"end_col_offset":41,"end_lineno":133,"lineno":133,"src":{"jump_code":"","length":30,"start":3186}}],"classification":0,"col_offset":4,"end_col_offset":41,"end_lineno":133,"lineno":133,"src":{"jump_code":"","length":37,"start":3179}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":128,"lineno":128,"src":{"jump_code":"","length":4,"start":2965}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":8,"start":2971}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":69,"end_col_offset":70,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":1,"start":3049}}],"classification":0,"col_offset":60,"end_col_offset":71,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":11,"start":3040}},{"ast_type":"Name","children":[],"classification":1,"col_offset":60,"end_col_offset":68,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":8,"start":3040}}],"classification":0,"col_offset":60,"end_col_offset":71,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":11,"start":3040}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":82,"end_col_offset":90,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":8,"start":3062}},{"ast_type":"Int","children":[],"classification":0,"col_offset":92,"end_col_offset":93,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":1,"start":3072}}],"classification":0,"col_offset":82,"end_col_offset":93,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":11,"start":3062}}],"classification":0,"col_offset":73,"end_col_offset":94,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":21,"start":3053}},{"ast_type":"Name","children":[],"classification":1,"col_offset":73,"end_col_offset":81,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":8,"start":3053}}],"classification":0,"col_offset":73,"end_col_offset":94,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":21,"start":3053}}],"classification":0,"col_offset":59,"end_col_offset":95,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":36,"start":3039}}],"classification":1,"col_offset":0,"end_col_offset":41,"end_lineno":133,"lineno":130,"name":"getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs","src":{"jump_code":"","length":236,"start":2980}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":3,"start":3234}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":30,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":7,"start":3325}}],"classification":0,"col_offset":13,"end_col_offset":31,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":18,"start":3315}},{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":22,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":9,"start":3315}}],"classification":0,"col_offset":13,"end_col_offset":31,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":18,"start":3315}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":10,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":6,"start":3306}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":50,"end_col_offset":57,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":7,"start":3352}}],"classification":0,"col_offset":40,"end_col_offset":58,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":18,"start":3342}},{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":49,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":9,"start":3342}}],"classification":0,"col_offset":40,"end_col_offset":58,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":18,"start":3342}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":39,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":5,"start":3336}}],"classification":0,"col_offset":34,"end_col_offset":59,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":25,"start":3336}}],"classification":0,"col_offset":4,"end_col_offset":59,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":55,"start":3306}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":11,"end_col_offset":12,"end_lineno":139,"lineno":139,"src":{"jump_code":"","length":1,"start":3373}},{"ast_type":"Name","children":[],"classification":1,"col_offset":14,"end_col_offset":20,"end_lineno":139,"lineno":139,"src":{"jump_code":"","length":6,"start":3376}}],"classification":0,"col_offset":11,"end_col_offset":20,"end_lineno":139,"lineno":139,"src":{"jump_code":"","length":9,"start":3373}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":139,"lineno":139,"src":{"jump_code":"","length":16,"start":3366}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":135,"lineno":135,"src":{"jump_code":"","length":4,"start":3219}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":8,"start":3225}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":38,"end_col_offset":45,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":7,"start":3272}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":57,"end_col_offset":64,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":7,"start":3291}}],"classification":0,"col_offset":47,"end_col_offset":65,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":18,"start":3281}},{"ast_type":"Name","children":[],"classification":1,"col_offset":47,"end_col_offset":56,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":9,"start":3281}}],"classification":0,"col_offset":47,"end_col_offset":65,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":18,"start":3281}}],"classification":0,"col_offset":37,"end_col_offset":66,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":29,"start":3271}}],"classification":1,"col_offset":0,"end_col_offset":20,"end_lineno":139,"lineno":137,"name":"getTupleOfIntAndStructArray","src":{"jump_code":"","length":148,"start":3234}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":3,"start":3400}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":31,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":7,"start":3512}},{"ast_type":"Int","children":[],"classification":0,"col_offset":33,"end_col_offset":35,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":2,"start":3521}}],"classification":0,"col_offset":24,"end_col_offset":35,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":11,"start":3512}}],"classification":0,"col_offset":15,"end_col_offset":36,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":21,"start":3503}},{"ast_type":"Name","children":[],"classification":1,"col_offset":15,"end_col_offset":23,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":8,"start":3503}}],"classification":0,"col_offset":15,"end_col_offset":36,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":21,"start":3503}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":13,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":9,"start":3492}},{"ast_type":"List","children":[],"classification":0,"col_offset":39,"end_col_offset":41,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":2,"start":3527}}],"classification":0,"col_offset":4,"end_col_offset":41,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":37,"start":3492}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":8,"start":3556}},{"ast_type":"Int","children":[],"classification":0,"col_offset":36,"end_col_offset":38,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":2,"start":3566}}],"classification":0,"col_offset":26,"end_col_offset":38,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":12,"start":3556}}],"classification":0,"col_offset":17,"end_col_offset":39,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":22,"start":3547}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":25,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":8,"start":3547}}],"classification":0,"col_offset":17,"end_col_offset":39,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":22,"start":3547}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":15,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":11,"start":3534}},{"ast_type":"List","children":[],"classification":0,"col_offset":42,"end_col_offset":44,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":2,"start":3572}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":40,"start":3534}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":20,"end_lineno":146,"lineno":146,"src":{"jump_code":"","length":9,"start":3586}},{"ast_type":"Name","children":[],"classification":1,"col_offset":22,"end_col_offset":33,"end_lineno":146,"lineno":146,"src":{"jump_code":"","length":11,"start":3597}}],"classification":0,"col_offset":11,"end_col_offset":33,"end_lineno":146,"lineno":146,"src":{"jump_code":"","length":22,"start":3586}}],"classification":0,"col_offset":4,"end_col_offset":33,"end_lineno":146,"lineno":146,"src":{"jump_code":"","length":29,"start":3579}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":141,"lineno":141,"src":{"jump_code":"","length":4,"start":3385}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":142,"lineno":142,"src":{"jump_code":"","length":8,"start":3391}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":49,"end_col_offset":56,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":7,"start":3449}},{"ast_type":"Int","children":[],"classification":0,"col_offset":58,"end_col_offset":60,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":2,"start":3458}}],"classification":0,"col_offset":49,"end_col_offset":60,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":11,"start":3449}}],"classification":0,"col_offset":40,"end_col_offset":61,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":21,"start":3440}},{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":48,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":8,"start":3440}}],"classification":0,"col_offset":40,"end_col_offset":61,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":21,"start":3440}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":72,"end_col_offset":80,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":8,"start":3472}},{"ast_type":"Int","children":[],"classification":0,"col_offset":82,"end_col_offset":84,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":2,"start":3482}}],"classification":0,"col_offset":72,"end_col_offset":84,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":12,"start":3472}}],"classification":0,"col_offset":63,"end_col_offset":85,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":22,"start":3463}},{"ast_type":"Name","children":[],"classification":1,"col_offset":63,"end_col_offset":71,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":8,"start":3463}}],"classification":0,"col_offset":63,"end_col_offset":85,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":22,"start":3463}}],"classification":0,"col_offset":39,"end_col_offset":86,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":47,"start":3439}}],"classification":1,"col_offset":0,"end_col_offset":33,"end_lineno":146,"lineno":143,"name":"getEmptyTupleOfIntAndDynArray","src":{"jump_code":"","length":208,"start":3400}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":3,"start":3626}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":15,"end_lineno":153,"lineno":153,"src":{"jump_code":"","length":3,"start":3709}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":15,"end_lineno":154,"lineno":154,"src":{"jump_code":"","length":3,"start":3729}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":15,"end_lineno":158,"lineno":158,"src":{"jump_code":"","length":3,"start":3886}},{"ast_type":"Int","children":[],"classification":0,"col_offset":17,"end_col_offset":18,"end_lineno":153,"lineno":153,"src":{"jump_code":"","length":1,"start":3714}},{"ast_type":"List","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":27,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":1,"start":3762}},{"ast_type":"Name","children":[],"classification":1,"col_offset":41,"end_col_offset":42,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":1,"start":3777}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":32,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":3,"start":3765}}],"classification":0,"col_offset":29,"end_col_offset":39,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":10,"start":3765}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":49,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":5,"start":3780}}],"classification":0,"col_offset":44,"end_col_offset":58,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":14,"start":3780}}],"classification":0,"col_offset":25,"end_col_offset":59,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":34,"start":3761}},{"ast_type":"Name","children":[],"classification":1,"col_offset":16,"end_col_offset":24,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":8,"start":3752}}],"classification":0,"col_offset":16,"end_col_offset":60,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":44,"start":3752}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":27,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":1,"start":3824}},{"ast_type":"Name","children":[],"classification":1,"col_offset":41,"end_col_offset":42,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":1,"start":3839}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":32,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":3,"start":3827}}],"classification":0,"col_offset":29,"end_col_offset":39,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":10,"start":3827}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":49,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":5,"start":3842}}],"classification":0,"col_offset":44,"end_col_offset":58,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":14,"start":3842}}],"classification":0,"col_offset":25,"end_col_offset":59,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":34,"start":3823}},{"ast_type":"Name","children":[],"classification":1,"col_offset":16,"end_col_offset":24,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":8,"start":3814}}],"classification":0,"col_offset":16,"end_col_offset":60,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":44,"start":3814}}],"classification":0,"col_offset":17,"end_col_offset":13,"end_lineno":157,"lineno":154,"src":{"jump_code":"","length":138,"start":3734}},{"ast_type":"Int","children":[],"classification":0,"col_offset":17,"end_col_offset":18,"end_lineno":158,"lineno":158,"src":{"jump_code":"","length":1,"start":3891}}],"classification":0,"col_offset":8,"end_col_offset":9,"end_lineno":159,"lineno":152,"src":{"jump_code":"","length":207,"start":3695}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":20,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":9,"start":3676}}],"classification":0,"col_offset":11,"end_col_offset":5,"end_lineno":160,"lineno":151,"src":{"jump_code":"","length":232,"start":3676}}],"classification":0,"col_offset":4,"end_col_offset":5,"end_lineno":160,"lineno":151,"src":{"jump_code":"","length":239,"start":3669}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":148,"lineno":148,"src":{"jump_code":"","length":4,"start":3611}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":8,"start":3617}},{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":37,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":9,"start":3654}}],"classification":1,"col_offset":0,"end_col_offset":5,"end_lineno":160,"lineno":150,"name":"getStructWithArray","src":{"jump_code":"","length":282,"start":3626}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":3,"start":3926}},{"ast_type":"Return","children":[{"ast_type":"List","children":[],"classification":0,"col_offset":11,"end_col_offset":13,"end_lineno":165,"lineno":165,"src":{"jump_code":"","length":2,"start":3982}}],"classification":0,"col_offset":4,"end_col_offset":13,"end_lineno":165,"lineno":165,"src":{"jump_code":"","length":9,"start":3975}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":4,"start":3911}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":163,"lineno":163,"src":{"jump_code":"","length":8,"start":3917}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":32,"end_col_offset":39,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":7,"start":3958}},{"ast_type":"Int","children":[],"classification":0,"col_offset":41,"end_col_offset":42,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":1,"start":3967}}],"classification":0,"col_offset":32,"end_col_offset":42,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":10,"start":3958}}],"classification":0,"col_offset":23,"end_col_offset":43,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":20,"start":3949}},{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":31,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":8,"start":3949}}],"classification":0,"col_offset":23,"end_col_offset":43,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":20,"start":3949}}],"classification":1,"col_offset":0,"end_col_offset":13,"end_lineno":165,"lineno":164,"name":"getEmptyArray","src":{"jump_code":"","length":58,"start":3926}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":169,"lineno":169,"src":{"jump_code":"","length":3,"start":4002}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":13,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":1,"start":4064}}],"classification":0,"col_offset":11,"end_col_offset":14,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":3,"start":4063}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":10,"start":4056}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":167,"lineno":167,"src":{"jump_code":"","length":4,"start":3987}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":168,"lineno":168,"src":{"jump_code":"","length":8,"start":3993}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":44,"end_lineno":169,"lineno":169,"src":{"jump_code":"","length":7,"start":4039}},{"ast_type":"Int","children":[],"classification":0,"col_offset":46,"end_col_offset":47,"end_lineno":169,"lineno":169,"src":{"jump_code":"","length":1,"start":4048}}],"classification":0,"col_offset":37,"end_col_offset":47,"end_lineno":169,"lineno":169,"src":{"jump_code":"","length":10,"start":4039}}],"classification":0,"col_offset":28,"end_col_offset":48,"end_lineno":169,"lineno":169,"src":{"jump_code":"","length":20,"start":4030}},{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":169,"lineno":169,"src":{"jump_code":"","length":8,"start":4030}}],"classification":0,"col_offset":28,"end_col_offset":48,"end_lineno":169,"lineno":169,"src":{"jump_code":"","length":20,"start":4030}}],"classification":1,"col_offset":0,"end_col_offset":14,"end_lineno":170,"lineno":169,"name":"getSingleItemArray","src":{"jump_code":"","length":64,"start":4002}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":174,"lineno":174,"src":{"jump_code":"","length":3,"start":4084}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":13,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":1,"start":4142}},{"ast_type":"Int","children":[],"classification":0,"col_offset":15,"end_col_offset":16,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":1,"start":4145}},{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":1,"start":4148}}],"classification":0,"col_offset":11,"end_col_offset":20,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":9,"start":4141}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":16,"start":4134}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":172,"lineno":172,"src":{"jump_code":"","length":4,"start":4069}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":173,"lineno":173,"src":{"jump_code":"","length":8,"start":4075}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":33,"end_col_offset":40,"end_lineno":174,"lineno":174,"src":{"jump_code":"","length":7,"start":4117}},{"ast_type":"Int","children":[],"classification":0,"col_offset":42,"end_col_offset":43,"end_lineno":174,"lineno":174,"src":{"jump_code":"","length":1,"start":4126}}],"classification":0,"col_offset":33,"end_col_offset":43,"end_lineno":174,"lineno":174,"src":{"jump_code":"","length":10,"start":4117}}],"classification":0,"col_offset":24,"end_col_offset":44,"end_lineno":174,"lineno":174,"src":{"jump_code":"","length":20,"start":4108}},{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":32,"end_lineno":174,"lineno":174,"src":{"jump_code":"","length":8,"start":4108}}],"classification":0,"col_offset":24,"end_col_offset":44,"end_lineno":174,"lineno":174,"src":{"jump_code":"","length":20,"start":4108}}],"classification":1,"col_offset":0,"end_col_offset":20,"end_lineno":175,"lineno":174,"name":"getFilledArray","src":{"jump_code":"","length":66,"start":4084}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":179,"lineno":179,"src":{"jump_code":"","length":3,"start":4168}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":15,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":3,"start":4227}}],"classification":0,"col_offset":12,"end_col_offset":22,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":10,"start":4227}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":27,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":3,"start":4239}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":10,"start":4239}}],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":24,"start":4226}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":31,"start":4219}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":177,"lineno":177,"src":{"jump_code":"","length":4,"start":4153}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":178,"lineno":178,"src":{"jump_code":"","length":8,"start":4159}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":41,"end_lineno":179,"lineno":179,"src":{"jump_code":"","length":7,"start":4202}},{"ast_type":"Int","children":[],"classification":0,"col_offset":43,"end_col_offset":44,"end_lineno":179,"lineno":179,"src":{"jump_code":"","length":1,"start":4211}}],"classification":0,"col_offset":34,"end_col_offset":44,"end_lineno":179,"lineno":179,"src":{"jump_code":"","length":10,"start":4202}}],"classification":0,"col_offset":25,"end_col_offset":45,"end_lineno":179,"lineno":179,"src":{"jump_code":"","length":20,"start":4193}},{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":33,"end_lineno":179,"lineno":179,"src":{"jump_code":"","length":8,"start":4193}}],"classification":0,"col_offset":25,"end_col_offset":45,"end_lineno":179,"lineno":179,"src":{"jump_code":"","length":20,"start":4193}}],"classification":1,"col_offset":0,"end_col_offset":35,"end_lineno":180,"lineno":179,"name":"getAddressArray","src":{"jump_code":"","length":82,"start":4168}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":184,"lineno":184,"src":{"jump_code":"","length":3,"start":4268}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":24,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":1,"start":4363}},{"ast_type":"Name","children":[],"classification":1,"col_offset":72,"end_col_offset":75,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":3,"start":4412}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":37,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":1,"start":4376}},{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":52,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":1,"start":4391}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":42,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":3,"start":4379}}],"classification":0,"col_offset":39,"end_col_offset":49,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":10,"start":4379}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":59,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":5,"start":4394}}],"classification":0,"col_offset":54,"end_col_offset":68,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":14,"start":4394}}],"classification":0,"col_offset":35,"end_col_offset":69,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":34,"start":4375}},{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":8,"start":4366}}],"classification":0,"col_offset":26,"end_col_offset":70,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":44,"start":4366}},{"ast_type":"Int","children":[],"classification":0,"col_offset":77,"end_col_offset":78,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":1,"start":4417}}],"classification":0,"col_offset":22,"end_col_offset":79,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":57,"start":4362}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":13,"start":4348}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":72,"start":4348}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":24,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":1,"start":4445}},{"ast_type":"Name","children":[],"classification":1,"col_offset":72,"end_col_offset":75,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":3,"start":4494}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":37,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":1,"start":4458}},{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":52,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":1,"start":4473}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":42,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":3,"start":4461}}],"classification":0,"col_offset":39,"end_col_offset":49,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":10,"start":4461}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":59,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":5,"start":4476}}],"classification":0,"col_offset":54,"end_col_offset":68,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":14,"start":4476}}],"classification":0,"col_offset":35,"end_col_offset":69,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":34,"start":4457}},{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":8,"start":4448}}],"classification":0,"col_offset":26,"end_col_offset":70,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":44,"start":4448}},{"ast_type":"Int","children":[],"classification":0,"col_offset":77,"end_col_offset":78,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":1,"start":4499}}],"classification":0,"col_offset":22,"end_col_offset":79,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":57,"start":4444}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":13,"start":4430}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":187,"lineno":187,"src":{"jump_code":"","length":72,"start":4430}}],"classification":0,"col_offset":11,"end_col_offset":5,"end_lineno":188,"lineno":185,"src":{"jump_code":"","length":170,"start":4338}}],"classification":0,"col_offset":4,"end_col_offset":5,"end_lineno":188,"lineno":185,"src":{"jump_code":"","length":177,"start":4331}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":182,"lineno":182,"src":{"jump_code":"","length":4,"start":4253}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":183,"lineno":183,"src":{"jump_code":"","length":8,"start":4259}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":53,"end_lineno":184,"lineno":184,"src":{"jump_code":"","length":13,"start":4308}},{"ast_type":"Int","children":[],"classification":0,"col_offset":55,"end_col_offset":56,"end_lineno":184,"lineno":184,"src":{"jump_code":"","length":1,"start":4323}}],"classification":0,"col_offset":40,"end_col_offset":56,"end_lineno":184,"lineno":184,"src":{"jump_code":"","length":16,"start":4308}}],"classification":0,"col_offset":31,"end_col_offset":57,"end_lineno":184,"lineno":184,"src":{"jump_code":"","length":26,"start":4299}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":39,"end_lineno":184,"lineno":184,"src":{"jump_code":"","length":8,"start":4299}}],"classification":0,"col_offset":31,"end_col_offset":57,"end_lineno":184,"lineno":184,"src":{"jump_code":"","length":26,"start":4299}}],"classification":1,"col_offset":0,"end_col_offset":5,"end_lineno":188,"lineno":184,"name":"getDynamicStructArray","src":{"jump_code":"","length":240,"start":4268}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":3,"start":4526}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":26,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":3,"start":4610}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":32,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":1,"start":4618}},{"ast_type":"Int","children":[],"classification":0,"col_offset":28,"end_col_offset":29,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":1,"start":4615}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":45,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":1,"start":4631}},{"ast_type":"Name","children":[],"classification":1,"col_offset":59,"end_col_offset":60,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":1,"start":4646}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":47,"end_col_offset":50,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":3,"start":4634}}],"classification":0,"col_offset":47,"end_col_offset":57,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":10,"start":4634}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":62,"end_col_offset":67,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":5,"start":4649}}],"classification":0,"col_offset":62,"end_col_offset":76,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":14,"start":4649}}],"classification":0,"col_offset":43,"end_col_offset":77,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":34,"start":4630}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":42,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":8,"start":4621}}],"classification":0,"col_offset":34,"end_col_offset":78,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":44,"start":4621}}],"classification":0,"col_offset":22,"end_col_offset":79,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":57,"start":4609}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":13,"start":4595}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":194,"lineno":194,"src":{"jump_code":"","length":72,"start":4595}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":26,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":3,"start":4692}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":32,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":1,"start":4700}},{"ast_type":"Int","children":[],"classification":0,"col_offset":28,"end_col_offset":29,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":1,"start":4697}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":45,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":1,"start":4713}},{"ast_type":"Name","children":[],"classification":1,"col_offset":59,"end_col_offset":60,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":1,"start":4728}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":47,"end_col_offset":50,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":3,"start":4716}}],"classification":0,"col_offset":47,"end_col_offset":57,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":10,"start":4716}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":62,"end_col_offset":67,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":5,"start":4731}}],"classification":0,"col_offset":62,"end_col_offset":76,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":14,"start":4731}}],"classification":0,"col_offset":43,"end_col_offset":77,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":34,"start":4712}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":42,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":8,"start":4703}}],"classification":0,"col_offset":34,"end_col_offset":78,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":44,"start":4703}}],"classification":0,"col_offset":22,"end_col_offset":79,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":57,"start":4691}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":13,"start":4677}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":195,"lineno":195,"src":{"jump_code":"","length":72,"start":4677}}],"classification":0,"col_offset":11,"end_col_offset":5,"end_lineno":196,"lineno":193,"src":{"jump_code":"","length":170,"start":4585}}],"classification":0,"col_offset":4,"end_col_offset":5,"end_lineno":196,"lineno":193,"src":{"jump_code":"","length":177,"start":4578}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":190,"lineno":190,"src":{"jump_code":"","length":4,"start":4511}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":191,"lineno":191,"src":{"jump_code":"","length":8,"start":4517}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":44,"end_col_offset":45,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":1,"start":4570}}],"classification":0,"col_offset":30,"end_col_offset":46,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":16,"start":4556}},{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":43,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":13,"start":4556}}],"classification":0,"col_offset":30,"end_col_offset":46,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":16,"start":4556}}],"classification":1,"col_offset":0,"end_col_offset":5,"end_lineno":196,"lineno":192,"name":"getStaticStructArray","src":{"jump_code":"","length":229,"start":4526}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":3,"start":4773}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":25,"end_col_offset":27,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":2,"start":4843}}],"classification":0,"col_offset":17,"end_col_offset":28,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":11,"start":4835}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":7,"start":4835}}],"classification":0,"col_offset":17,"end_col_offset":28,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":11,"start":4835}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":16,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":5,"start":4829}}],"classification":0,"col_offset":11,"end_col_offset":29,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":18,"start":4829}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":25,"start":4822}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":198,"lineno":198,"src":{"jump_code":"","length":4,"start":4758}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":199,"lineno":199,"src":{"jump_code":"","length":8,"start":4764}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":40,"end_col_offset":42,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":2,"start":4813}}],"classification":0,"col_offset":32,"end_col_offset":43,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":11,"start":4805}},{"ast_type":"Name","children":[],"classification":1,"col_offset":32,"end_col_offset":39,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":7,"start":4805}}],"classification":0,"col_offset":32,"end_col_offset":43,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":11,"start":4805}}],"classification":1,"col_offset":0,"end_col_offset":29,"end_lineno":201,"lineno":200,"name":"getArrayWithBiggerSize","src":{"jump_code":"","length":74,"start":4773}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":3,"start":4866}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":26,"end_col_offset":28,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":2,"start":4946}}],"classification":0,"col_offset":18,"end_col_offset":29,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":11,"start":4938}},{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":25,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":7,"start":4938}}],"classification":0,"col_offset":18,"end_col_offset":29,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":11,"start":4938}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":17,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":5,"start":4932}}],"classification":0,"col_offset":12,"end_col_offset":30,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":18,"start":4932}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":46,"end_col_offset":48,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":2,"start":4966}}],"classification":0,"col_offset":38,"end_col_offset":49,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":11,"start":4958}},{"ast_type":"Name","children":[],"classification":1,"col_offset":38,"end_col_offset":45,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":7,"start":4958}}],"classification":0,"col_offset":38,"end_col_offset":49,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":11,"start":4958}},{"ast_type":"Name","children":[],"classification":1,"col_offset":32,"end_col_offset":37,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":5,"start":4952}}],"classification":0,"col_offset":32,"end_col_offset":50,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":18,"start":4952}}],"classification":0,"col_offset":11,"end_col_offset":51,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":40,"start":4931}}],"classification":0,"col_offset":4,"end_col_offset":51,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":47,"start":4924}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":204,"lineno":204,"src":{"jump_code":"","length":4,"start":4851}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":205,"lineno":205,"src":{"jump_code":"","length":8,"start":4857}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":35,"end_col_offset":37,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":2,"start":4901}}],"classification":0,"col_offset":27,"end_col_offset":38,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":11,"start":4893}},{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":34,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":7,"start":4893}}],"classification":0,"col_offset":27,"end_col_offset":38,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":11,"start":4893}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":48,"end_col_offset":50,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":2,"start":4914}}],"classification":0,"col_offset":40,"end_col_offset":51,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":11,"start":4906}},{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":47,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":7,"start":4906}}],"classification":0,"col_offset":40,"end_col_offset":51,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":11,"start":4906}}],"classification":0,"col_offset":26,"end_col_offset":52,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":26,"start":4892}}],"classification":1,"col_offset":0,"end_col_offset":51,"end_lineno":207,"lineno":206,"name":"getTupleOfArrays","src":{"jump_code":"","length":105,"start":4866}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":211,"lineno":211,"src":{"jump_code":"","length":3,"start":4989}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":15,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":3,"start":5048}},{"ast_type":"Int","children":[],"classification":0,"col_offset":17,"end_col_offset":20,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":3,"start":5053}}],"classification":0,"col_offset":11,"end_col_offset":21,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":10,"start":5047}}],"classification":0,"col_offset":4,"end_col_offset":21,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":17,"start":5040}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":209,"lineno":209,"src":{"jump_code":"","length":4,"start":4974}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":210,"lineno":210,"src":{"jump_code":"","length":8,"start":4980}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":35,"end_lineno":211,"lineno":211,"src":{"jump_code":"","length":7,"start":5017}},{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":44,"end_lineno":211,"lineno":211,"src":{"jump_code":"","length":7,"start":5026}}],"classification":0,"col_offset":27,"end_col_offset":45,"end_lineno":211,"lineno":211,"src":{"jump_code":"","length":18,"start":5016}}],"classification":1,"col_offset":0,"end_col_offset":21,"end_lineno":212,"lineno":211,"name":"getMultipleValues","src":{"jump_code":"","length":68,"start":4989}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":216,"lineno":216,"src":{"jump_code":"","length":3,"start":5075}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":13,"end_lineno":217,"lineno":217,"src":{"jump_code":"","length":1,"start":5132}},{"ast_type":"Int","children":[],"classification":0,"col_offset":15,"end_col_offset":16,"end_lineno":217,"lineno":217,"src":{"jump_code":"","length":1,"start":5135}}],"classification":0,"col_offset":11,"end_col_offset":17,"end_lineno":217,"lineno":217,"src":{"jump_code":"","length":6,"start":5131}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":217,"lineno":217,"src":{"jump_code":"","length":13,"start":5124}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":214,"lineno":214,"src":{"jump_code":"","length":4,"start":5060}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":215,"lineno":215,"src":{"jump_code":"","length":8,"start":5066}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":33,"end_lineno":216,"lineno":216,"src":{"jump_code":"","length":7,"start":5101}},{"ast_type":"Name","children":[],"classification":1,"col_offset":35,"end_col_offset":42,"end_lineno":216,"lineno":216,"src":{"jump_code":"","length":7,"start":5110}}],"classification":0,"col_offset":25,"end_col_offset":43,"end_lineno":216,"lineno":216,"src":{"jump_code":"","length":18,"start":5100}}],"classification":1,"col_offset":0,"end_col_offset":17,"end_lineno":217,"lineno":216,"name":"getUnnamedTuple","src":{"jump_code":"","length":62,"start":5075}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":3,"start":5155}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":23,"end_col_offset":25,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":2,"start":5238}}],"classification":0,"col_offset":15,"end_col_offset":26,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":11,"start":5230}},{"ast_type":"Name","children":[],"classification":1,"col_offset":15,"end_col_offset":22,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":7,"start":5230}}],"classification":0,"col_offset":15,"end_col_offset":26,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":11,"start":5230}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":13,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":9,"start":5219}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":43,"end_col_offset":45,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":2,"start":5258}}],"classification":0,"col_offset":35,"end_col_offset":46,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":11,"start":5250}},{"ast_type":"Name","children":[],"classification":1,"col_offset":35,"end_col_offset":42,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":7,"start":5250}}],"classification":0,"col_offset":35,"end_col_offset":46,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":11,"start":5250}},{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":34,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":5,"start":5244}}],"classification":0,"col_offset":29,"end_col_offset":47,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":18,"start":5244}}],"classification":0,"col_offset":4,"end_col_offset":47,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":43,"start":5219}},{"ast_type":"Assign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":14,"end_col_offset":15,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":1,"start":5277}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":12,"start":5267}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":13,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":9,"start":5267}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":12,"start":5267}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":22,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":3,"start":5282}}],"classification":0,"col_offset":19,"end_col_offset":29,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":10,"start":5282}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":25,"start":5267}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":21,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":9,"start":5305}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":37,"end_col_offset":39,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":2,"start":5330}}],"classification":0,"col_offset":29,"end_col_offset":40,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":11,"start":5322}},{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":36,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":7,"start":5322}}],"classification":0,"col_offset":29,"end_col_offset":40,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":11,"start":5322}},{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":28,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":5,"start":5316}}],"classification":0,"col_offset":23,"end_col_offset":41,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":18,"start":5316}}],"classification":0,"col_offset":11,"end_col_offset":42,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":31,"start":5304}}],"classification":0,"col_offset":4,"end_col_offset":42,"end_lineno":224,"lineno":224,"src":{"jump_code":"","length":38,"start":5297}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":219,"lineno":219,"src":{"jump_code":"","length":4,"start":5140}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":220,"lineno":220,"src":{"jump_code":"","length":8,"start":5146}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":41,"end_col_offset":43,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":2,"start":5196}}],"classification":0,"col_offset":33,"end_col_offset":44,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":11,"start":5188}},{"ast_type":"Name","children":[],"classification":1,"col_offset":33,"end_col_offset":40,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":7,"start":5188}}],"classification":0,"col_offset":33,"end_col_offset":44,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":11,"start":5188}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":54,"end_col_offset":56,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":2,"start":5209}}],"classification":0,"col_offset":46,"end_col_offset":57,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":11,"start":5201}},{"ast_type":"Name","children":[],"classification":1,"col_offset":46,"end_col_offset":53,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":7,"start":5201}}],"classification":0,"col_offset":46,"end_col_offset":57,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":11,"start":5201}}],"classification":0,"col_offset":32,"end_col_offset":58,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":26,"start":5187}}],"classification":1,"col_offset":0,"end_col_offset":42,"end_lineno":224,"lineno":221,"name":"getTupleOfAddressArray","src":{"jump_code":"","length":180,"start":5155}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":3,"start":5353}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":13,"end_col_offset":14,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":1,"start":5415}},{"ast_type":"Int","children":[],"classification":0,"col_offset":16,"end_col_offset":17,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":1,"start":5418}}],"classification":0,"col_offset":12,"end_col_offset":18,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":6,"start":5414}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":21,"end_col_offset":22,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":1,"start":5423}},{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":1,"start":5426}}],"classification":0,"col_offset":20,"end_col_offset":26,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":6,"start":5422}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":29,"end_col_offset":30,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":1,"start":5431}},{"ast_type":"Int","children":[],"classification":0,"col_offset":32,"end_col_offset":33,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":1,"start":5434}}],"classification":0,"col_offset":28,"end_col_offset":34,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":6,"start":5430}}],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":24,"start":5413}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":31,"start":5406}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":226,"lineno":226,"src":{"jump_code":"","length":4,"start":5338}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":8,"start":5344}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":45,"end_col_offset":46,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":1,"start":5398}}],"classification":0,"col_offset":34,"end_col_offset":47,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":13,"start":5387}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":42,"end_col_offset":43,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":1,"start":5395}}],"classification":0,"col_offset":34,"end_col_offset":44,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":10,"start":5387}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":41,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":7,"start":5387}}],"classification":0,"col_offset":34,"end_col_offset":44,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":10,"start":5387}}],"classification":0,"col_offset":34,"end_col_offset":47,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":13,"start":5387}}],"classification":1,"col_offset":0,"end_col_offset":35,"end_lineno":229,"lineno":228,"name":"getNestedArrayFixedFixed","src":{"jump_code":"","length":84,"start":5353}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":3,"start":5455}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":13,"end_col_offset":14,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":1,"start":5532}},{"ast_type":"Int","children":[],"classification":0,"col_offset":16,"end_col_offset":17,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":1,"start":5535}}],"classification":0,"col_offset":12,"end_col_offset":18,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":6,"start":5531}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":21,"end_col_offset":22,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":1,"start":5540}},{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":1,"start":5543}}],"classification":0,"col_offset":20,"end_col_offset":26,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":6,"start":5539}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":29,"end_col_offset":30,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":1,"start":5548}},{"ast_type":"Int","children":[],"classification":0,"col_offset":32,"end_col_offset":33,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":1,"start":5551}}],"classification":0,"col_offset":28,"end_col_offset":34,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":6,"start":5547}}],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":24,"start":5530}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":31,"start":5523}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":231,"lineno":231,"src":{"jump_code":"","length":4,"start":5440}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":232,"lineno":232,"src":{"jump_code":"","length":8,"start":5446}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":53,"end_col_offset":54,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":1,"start":5508}}],"classification":0,"col_offset":45,"end_col_offset":55,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":10,"start":5500}},{"ast_type":"Name","children":[],"classification":1,"col_offset":45,"end_col_offset":52,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":7,"start":5500}}],"classification":0,"col_offset":45,"end_col_offset":55,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":10,"start":5500}},{"ast_type":"Int","children":[],"classification":0,"col_offset":57,"end_col_offset":61,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":4,"start":5512}}],"classification":0,"col_offset":45,"end_col_offset":61,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":16,"start":5500}}],"classification":0,"col_offset":36,"end_col_offset":62,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":26,"start":5491}},{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":44,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":8,"start":5491}}],"classification":0,"col_offset":36,"end_col_offset":62,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":26,"start":5491}}],"classification":1,"col_offset":0,"end_col_offset":35,"end_lineno":234,"lineno":233,"name":"getNestedArrayDynamicFixed","src":{"jump_code":"","length":99,"start":5455}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":3,"start":5572}},{"ast_type":"Return","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":15,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":4,"start":5647}}],"classification":0,"col_offset":11,"end_col_offset":24,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":13,"start":5647}}],"classification":0,"col_offset":4,"end_col_offset":24,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":20,"start":5640}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":236,"lineno":236,"src":{"jump_code":"","length":4,"start":5557}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":237,"lineno":237,"src":{"jump_code":"","length":8,"start":5563}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":60,"end_col_offset":61,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":1,"start":5632}}],"classification":0,"col_offset":36,"end_col_offset":62,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":26,"start":5608}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":45,"end_col_offset":52,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":7,"start":5617}},{"ast_type":"Int","children":[],"classification":0,"col_offset":54,"end_col_offset":58,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":4,"start":5626}}],"classification":0,"col_offset":45,"end_col_offset":58,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":13,"start":5617}}],"classification":0,"col_offset":36,"end_col_offset":59,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":23,"start":5608}},{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":44,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":8,"start":5608}}],"classification":0,"col_offset":36,"end_col_offset":59,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":23,"start":5608}}],"classification":0,"col_offset":36,"end_col_offset":62,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":26,"start":5608}}],"classification":1,"col_offset":0,"end_col_offset":24,"end_lineno":239,"lineno":238,"name":"getNestedArrayFixedDynamic","src":{"jump_code":"","length":88,"start":5572}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":3,"start":5678}},{"ast_type":"Return","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":15,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":4,"start":5772}}],"classification":0,"col_offset":11,"end_col_offset":26,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":15,"start":5772}}],"classification":0,"col_offset":4,"end_col_offset":26,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":22,"start":5765}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":241,"lineno":241,"src":{"jump_code":"","length":4,"start":5663}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":242,"lineno":242,"src":{"jump_code":"","length":8,"start":5669}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":79,"end_col_offset":80,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":1,"start":5757}}],"classification":0,"col_offset":36,"end_col_offset":81,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":45,"start":5714}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":69,"end_col_offset":70,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":1,"start":5747}}],"classification":0,"col_offset":45,"end_col_offset":71,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":26,"start":5723}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":61,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":7,"start":5732}},{"ast_type":"Int","children":[],"classification":0,"col_offset":63,"end_col_offset":67,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":4,"start":5741}}],"classification":0,"col_offset":54,"end_col_offset":67,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":13,"start":5732}}],"classification":0,"col_offset":45,"end_col_offset":68,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":23,"start":5723}},{"ast_type":"Name","children":[],"classification":1,"col_offset":45,"end_col_offset":53,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":8,"start":5723}}],"classification":0,"col_offset":45,"end_col_offset":68,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":23,"start":5723}}],"classification":0,"col_offset":45,"end_col_offset":71,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":26,"start":5723}},{"ast_type":"Int","children":[],"classification":0,"col_offset":73,"end_col_offset":77,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":4,"start":5751}}],"classification":0,"col_offset":45,"end_col_offset":77,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":32,"start":5723}}],"classification":0,"col_offset":36,"end_col_offset":78,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":42,"start":5714}},{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":44,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":8,"start":5714}}],"classification":0,"col_offset":36,"end_col_offset":78,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":42,"start":5714}}],"classification":0,"col_offset":36,"end_col_offset":81,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":45,"start":5714}}],"classification":1,"col_offset":0,"end_col_offset":26,"end_lineno":244,"lineno":243,"name":"getNestedArrayMixedDynamic","src":{"jump_code":"","length":109,"start":5678}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":3,"start":5805}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"List","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":16,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":3,"start":5877}}],"classification":0,"col_offset":13,"end_col_offset":23,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":10,"start":5877}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":28,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":3,"start":5889}}],"classification":0,"col_offset":25,"end_col_offset":35,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":10,"start":5889}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":40,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":3,"start":5901}}],"classification":0,"col_offset":37,"end_col_offset":47,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":10,"start":5901}}],"classification":0,"col_offset":12,"end_col_offset":48,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":36,"start":5876}},{"ast_type":"List","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":57,"end_col_offset":64,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":7,"start":5921}},{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":56,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":5,"start":5915}}],"classification":0,"col_offset":51,"end_col_offset":65,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":14,"start":5915}},{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":73,"end_col_offset":80,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":7,"start":5937}},{"ast_type":"Name","children":[],"classification":1,"col_offset":67,"end_col_offset":72,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":5,"start":5931}}],"classification":0,"col_offset":67,"end_col_offset":81,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":14,"start":5931}},{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":89,"end_col_offset":96,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":7,"start":5953}},{"ast_type":"Name","children":[],"classification":1,"col_offset":83,"end_col_offset":88,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":5,"start":5947}}],"classification":0,"col_offset":83,"end_col_offset":97,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":14,"start":5947}}],"classification":0,"col_offset":50,"end_col_offset":98,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":48,"start":5914}}],"classification":0,"col_offset":11,"end_col_offset":99,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":88,"start":5875}}],"classification":0,"col_offset":4,"end_col_offset":99,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":95,"start":5868}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":246,"lineno":246,"src":{"jump_code":"","length":4,"start":5790}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":247,"lineno":247,"src":{"jump_code":"","length":8,"start":5796}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":48,"end_col_offset":49,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":1,"start":5853}}],"classification":0,"col_offset":40,"end_col_offset":50,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":10,"start":5845}},{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":47,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":7,"start":5845}}],"classification":0,"col_offset":40,"end_col_offset":50,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":10,"start":5845}},{"ast_type":"Int","children":[],"classification":0,"col_offset":52,"end_col_offset":56,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":4,"start":5857}}],"classification":0,"col_offset":40,"end_col_offset":56,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":16,"start":5845}}],"classification":0,"col_offset":31,"end_col_offset":57,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":26,"start":5836}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":39,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":8,"start":5836}}],"classification":0,"col_offset":31,"end_col_offset":57,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":26,"start":5836}}],"classification":1,"col_offset":0,"end_col_offset":99,"end_lineno":249,"lineno":248,"name":"getNestedAddressArray","src":{"jump_code":"","length":158,"start":5805}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":7,"start":6030}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":11,"start":6026}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":7,"start":6047}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":11,"start":6043}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":256,"lineno":256,"src":{"jump_code":"","length":7,"start":6064}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":256,"lineno":256,"src":{"jump_code":"","length":11,"start":6060}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":257,"lineno":257,"src":{"jump_code":"","length":7,"start":6081}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":257,"lineno":257,"src":{"jump_code":"","length":11,"start":6077}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":258,"lineno":258,"src":{"jump_code":"","length":7,"start":6098}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":258,"lineno":258,"src":{"jump_code":"","length":11,"start":6094}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":259,"lineno":259,"src":{"jump_code":"","length":7,"start":6115}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":259,"lineno":259,"src":{"jump_code":"","length":11,"start":6111}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":260,"lineno":260,"src":{"jump_code":"","length":7,"start":6132}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":260,"lineno":260,"src":{"jump_code":"","length":11,"start":6128}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":261,"lineno":261,"src":{"jump_code":"","length":7,"start":6149}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":261,"lineno":261,"src":{"jump_code":"","length":11,"start":6145}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":262,"lineno":262,"src":{"jump_code":"","length":7,"start":6166}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":262,"lineno":262,"src":{"jump_code":"","length":11,"start":6162}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":263,"lineno":263,"src":{"jump_code":"","length":7,"start":6183}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":263,"lineno":263,"src":{"jump_code":"","length":11,"start":6179}}],"classification":1,"col_offset":4,"end_col_offset":15,"end_lineno":263,"lineno":254,"src":{"jump_code":"","length":164,"start":6026}},{"ast_type":"Pass","children":[],"classification":0,"col_offset":4,"end_col_offset":8,"end_lineno":265,"lineno":265,"src":{"jump_code":"","length":4,"start":6198}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":251,"lineno":251,"src":{"jump_code":"","length":4,"start":5966}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":252,"lineno":252,"src":{"jump_code":"","length":8,"start":5972}}],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":265,"lineno":253,"name":"functionWithUniqueAmountOfArguments","src":{"jump_code":"","length":221,"start":5981}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":269,"lineno":269,"src":{"jump_code":"","length":8,"start":6246}}],"classification":0,"col_offset":14,"end_col_offset":34,"end_lineno":269,"lineno":269,"src":{"jump_code":"","length":20,"start":6234}}],"classification":1,"col_offset":14,"end_col_offset":34,"end_lineno":269,"lineno":269,"src":{"jump_code":"","length":20,"start":6234}},{"ast_type":"Pass","children":[],"classification":0,"col_offset":4,"end_col_offset":8,"end_lineno":270,"lineno":270,"src":{"jump_code":"","length":4,"start":6261}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":267,"lineno":267,"src":{"jump_code":"","length":4,"start":6205}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":268,"lineno":268,"src":{"jump_code":"","length":8,"start":6211}}],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":270,"lineno":269,"name":"setStruct","src":{"jump_code":"","length":45,"start":6220}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":46,"end_col_offset":47,"end_lineno":274,"lineno":274,"src":{"jump_code":"","length":1,"start":6329}}],"classification":0,"col_offset":37,"end_col_offset":48,"end_lineno":274,"lineno":274,"src":{"jump_code":"","length":11,"start":6320}},{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":45,"end_lineno":274,"lineno":274,"src":{"jump_code":"","length":8,"start":6320}}],"classification":0,"col_offset":37,"end_col_offset":48,"end_lineno":274,"lineno":274,"src":{"jump_code":"","length":11,"start":6320}}],"classification":0,"col_offset":19,"end_col_offset":48,"end_lineno":274,"lineno":274,"src":{"jump_code":"","length":29,"start":6302}}],"classification":1,"col_offset":19,"end_col_offset":48,"end_lineno":274,"lineno":274,"src":{"jump_code":"","length":29,"start":6302}},{"ast_type":"Pass","children":[],"classification":0,"col_offset":4,"end_col_offset":8,"end_lineno":275,"lineno":275,"src":{"jump_code":"","length":4,"start":6338}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":272,"lineno":272,"src":{"jump_code":"","length":4,"start":6268}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":273,"lineno":273,"src":{"jump_code":"","length":8,"start":6274}}],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":275,"lineno":274,"name":"setStructArray","src":{"jump_code":"","length":59,"start":6283}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":278,"lineno":278,"src":{"jump_code":"","length":3,"start":6354}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":19,"end_lineno":279,"lineno":279,"src":{"jump_code":"","length":7,"start":6383}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":10,"end_lineno":279,"lineno":279,"src":{"jump_code":"","length":6,"start":6375}},{"ast_type":"Hex","children":[],"classification":0,"col_offset":22,"end_col_offset":88,"end_lineno":279,"lineno":279,"src":{"jump_code":"","length":66,"start":6393}}],"classification":0,"col_offset":4,"end_col_offset":88,"end_lineno":279,"lineno":279,"src":{"jump_code":"","length":84,"start":6375}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":21,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":8,"start":6473}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":11,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":7,"start":6464}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":9,"end_lineno":281,"lineno":281,"src":{"jump_code":"","length":1,"start":6503}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":9,"end_lineno":282,"lineno":282,"src":{"jump_code":"","length":1,"start":6526}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":14,"end_lineno":281,"lineno":281,"src":{"jump_code":"","length":3,"start":6506}}],"classification":0,"col_offset":11,"end_col_offset":21,"end_lineno":281,"lineno":281,"src":{"jump_code":"","length":10,"start":6506}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":17,"end_lineno":282,"lineno":282,"src":{"jump_code":"","length":6,"start":6529}}],"classification":0,"col_offset":33,"end_col_offset":5,"end_lineno":283,"lineno":280,"src":{"jump_code":"","length":48,"start":6493}},{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":32,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":8,"start":6484}}],"classification":0,"col_offset":24,"end_col_offset":6,"end_lineno":283,"lineno":280,"src":{"jump_code":"","length":58,"start":6484}}],"classification":0,"col_offset":4,"end_col_offset":6,"end_lineno":283,"lineno":280,"src":{"jump_code":"","length":78,"start":6464}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":31,"end_lineno":284,"lineno":284,"src":{"jump_code":"","length":7,"start":6567}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":23,"end_lineno":284,"lineno":284,"src":{"jump_code":"","length":15,"start":6551}}],"classification":0,"col_offset":8,"end_col_offset":32,"end_lineno":284,"lineno":284,"src":{"jump_code":"","length":24,"start":6551}}],"classification":0,"col_offset":4,"end_col_offset":32,"end_lineno":284,"lineno":284,"src":{"jump_code":"","length":28,"start":6547}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":277,"lineno":277,"src":{"jump_code":"","length":8,"start":6345}}],"classification":1,"col_offset":0,"end_col_offset":32,"end_lineno":284,"lineno":278,"name":"logStruct","src":{"jump_code":"","length":221,"start":6354}}],"classification":0,"col_offset":0,"end_col_offset":32,"end_lineno":284,"lineno":1,"name":"TestContractVy.vy","src":{"jump_code":"","length":6575}},"contractName":"TestContractVy","deploymentBytecode":{"bytecode":"0x34611a28576020611a2c5f395f51600155335f555f60065560016005555f610407556001610408556002610406555f61080855600161080955600261080a55600361080755610c08546103ff8111611a2857610c038102610c09016005548060051b600183015f82601f0160051c6104008111611a2857801561009257905b80600601548184015560010181811861007e575b5050505080825550610406548060051b60016104018401015f82601f0160051c6104008111611a285780156100d857905b806104070154818401556001018181186100c3575b505050508061040183015550610807548060051b60016108028401015f82601f0160051c6104008111611a2857801561012257905b8061080801548184015560010181811861010d575b5050505080610802830155505060018101610c08555062301809546103ff8111611a2857610c0381026230180a016005548060051b600183015f82601f0160051c6104008111611a2857801561018857905b806006015481840155600101818118610174575b5050505080825550610406548060051b60016104018401015f82601f0160051c6104008111611a285780156101ce57905b806104070154818401556001018181186101b9575b505050508061040183015550610807548060051b60016108028401015f82601f0160051c6104008111611a2857801561021857905b80610808015481840155600101818118610203575b505050508061080283015550506001810162301809555062301809546103ff8111611a2857610c0381026230180a016005548060051b600183015f82601f0160051c6104008111611a2857801561027f57905b80600601548184015560010181811861026b575b5050505080825550610406548060051b60016104018401015f82601f0160051c6104008111611a285780156102c557905b806104070154818401556001018181186102b0575b505050508061040183015550610807548060051b60016108028401015f82601f0160051c6104008111611a2857801561030f57905b806108080154818401556001018181186102fa575b50505050806108028301555050600181016230180955506116ef610338610000396116ef610000f36003361161000c576116da565b5f3560e01c346116de57638da5cb5b811861002c575f5460405260206040f35b6323fd0e4081186100435760015460405260206040f35b634825cf6f811861005a5760025460405260206040f35b636cbceeec81186100715760035460405260206040f35b6327e235e381186100aa57602436106116de576004358060a01c6116de5760405260046040516020525f5260405f205460605260206060f35b63d3aaff6d81186100ec57604436106116de57610401600435600281116116de570260050160243581548110156116de57600182010190505460405260206040f35b63ae8ef2cb811861015a57608436106116de5762300c01600435600481116116de5702610c0801610c0360243582548110156116de570260018201019050610401604435600281116116de57028101905060643581548110156116de57600182010190505460405260206040f35b632beb171181186101b4575f7f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd5f6040a260017fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced55f6040a2005b633fb5c1cb811861031d57602436106116de575f5433181561022b57600b6040527f21617574686f72697a656400000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b6005600435146116de5760015460025560043560015560076080527f44796e616d69630000000000000000000000000000000000000000000000000060a05260808051602082012090506004357fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686060600143034060c05260025460e052806101005260076040527f44796e616d69630000000000000000000000000000000000000000000000000060605260408160c00181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f82516020010116905090508101905060c0a3005b63e30081a0811861036e57602436106116de576004358060a01c6116de576040526040516003556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a95f6060a2005b63e30443bc81186103b557604436106116de576004358060a01c6116de5760405260046040516020525f5260405f2080546024358082018281106116de5790509050815550005b6309b1b3f281186103d25733604052600143034060605260406040f35b6302f487d681186103f457336040526001430340606052600160805260606040f35b63a420b5a5811861041657600260405233606052600143034060805260606040f35b63e9f7fd14811861043d573360405260014303406060526001608052600160a05260806040f35b63a2fbee538118610464576002604052600260605233608052600143034060a05260806040f35b637a79591d81186104dc575f6040526020806102e052806102e0015f6040518083528060061b5f82600a81116116de5780156104c757905b8060061b60208701018160061b6060018051825260208101516020830152505060010181811861049c575b505082016020019150509050810190506102e0f35b63a4f6d26b81186105bd575f6040525f6102e0526040806105805280610580015f6040518083528060061b5f82600a81116116de57801561054457905b8060061b60208701018160061b60600180518252602081015160208301525050600101818118610519575b50508201602001915050905081019050806105a05280610580015f6102e0518083528060061b5f82600a81116116de5780156105a857905b8060061b60208701018160061b610300018051825260208101516020830152505060010181811861057c575b50508201602001915050905081019050610580f35b63252e423e81186106635760e03660403760e06040516101a0526060516101c0526080516101e05260a0516102005260c0516102205260e051610240528061026052806101a0015f610100518083528060061b5f82600281116116de57801561064e57905b8060061b60208701018160061b6101200180518252602081015160208301525050600101818118610622575b505082016020019150509050810190506101a0f35b63c2f14839811861076c576103c0366040375f6104005260405161042052606051610440526080516104605260a0516104805260c0516104a05260e0516104c052610100516104e05261012051610500526101405161052052610160516105405261018051610560526101a051610580526101c0516105a0526101e0516105c052610200516105e05261022051610600526102405161062052610260516106405261028051610660526102a051610680526102c0516106a0526102e0516106c052610300516106e05261032051610700526103405161072052610360516107405261038051610760526103a051610780526103c0516107a0526103e0516107c0526103e0610400f35b63a5c1b662811861083f575f6040525f6101a0526040806104405280610440015f6040518083528060051b5f82600a81116116de5780156107c657905b8060051b606001518160051b6020880101526001018181186107a9575b50508201602001915050905081019050806104605280610440015f6101a0518083528060061b5f82600a81116116de57801561082a57905b8060061b60208701018160061b6101c001805182526020810151602083015250506001018181186107fe575b50508201602001915050905081019050610440f35b6342ce1ec681186108725760016040523360605260014303406080523360a052600143034060c052600260e05260c06040f35b63052f3e7681186108c757602080604052806040015f5f82525f5f5f600181116116de5780156108b457905b5f8160051b60208701015260010181811861089e575b5050810160200190509050810190506040f35b63b345ad96811861093757602080604052806040015f600160c052600160a0525f60a0518084528060051b5f82600181116116de57801561092157905b8060051b60c001518160051b602089010152600101818118610904575b5050820160200191505090509050810190506040f35b6335417bf481186109b557602080604052806040015f600161010052600261012052600361014052600360e0525f60e0518084528060051b5f82600381116116de57801561099f57905b8060051b61010001518160051b602089010152600101818118610981575b5050820160200191505090509050810190506040f35b63a5b0930d8118610a2957602080604052806040015f3360e0523361010052600260c0525f60c0518084528060051b5f82600281116116de578015610a1357905b8060051b60e001518160051b6020890101526001018181186109f6575b5050820160200191505090509050810190506040f35b639bfb2ad88118610ad757602080604052806040015f336101605260014303406101805260016101a052336101c05260014303406101e0526002610200526002610140525f61014051808452606081025f82600281116116de578015610ac157905b60608102602088010160608202610160018051825260208101516020830152604081015160408301525050600101818118610a8b575b5050820160200191505090509050810190506040f35b633ce80e948118610b0a576001604052336060526001430340608052600260a0523360c052600143034060e05260c06040f35b6343790b648118610b2357610280366040376102806040f35b63d4d64b358118610b3c57610500366040376105006040f35b63650543a38118610b5857607b60405261014160605260406040f35b63243e09638118610b6f5760403660403760406040f35b638ba6052d8118610c2f5761028036604037336040526040516102c0526060516102e0526080516103005260a0516103205260c0516103405260e051610360526101005161038052610120516103a052610140516103c052610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a0516105205261028036610540376105006102c0f35b63ccd62aa48118610c5e57600160405260026060526003608052600460a052600560c052600660e05260c06040f35b636126c87f8118610d0857602080604052806040015f6001620100a0526002620100c0526003620100e052600462010100526005620101205260066201014052600362010080525f62010080518084528060061b5f8261040081116116de578015610cf257905b8060061b60208801018160061b620100a00180518252602081015160208301525050600101818118610cc5575b5050820160200191505090509050810190506040f35b6394a66fc98118610e1d576020806040528060400160608082528082015f6005548083528060051b5f8261040081116116de578015610d5d57905b80600601548160051b602088010152600101818118610d43575b505082016020019150509050810190508060208301528082015f610406548083528060051b5f8261040081116116de578015610db057905b8061040701548160051b602088010152600101818118610d95575b505082016020019150509050810190508060408301528082015f610807548083528060051b5f8261040081116116de578015610e0357905b8061080801548160051b602088010152600101818118610de8575b505082016020019150509050810190509050810190506040f35b63abeb2022811861154b576020806040528060400160a08082528082015f610c08548083528060051b5f8261040081116116de578015610f8957905b828160051b602088010152610c038102610c090183602088010160608082528082015f84548083528060051b5f8261040081116116de578015610eb457905b8060018a0101548160051b602088010152600101818118610e98575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de578015610f0b57905b806001880101548160051b602088010152600101818118610eef575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de578015610f6457905b806001880101548160051b602088010152600101818118610f48575b5050820160200191505090509050810190509050905083019250600101818118610e59575b505082016020019150509050810190508060208301528082015f62301809548083528060051b5f8261040081116116de5780156110f357905b828160051b602088010152610c0381026230180a0183602088010160608082528082015f84548083528060051b5f8261040081116116de57801561101e57905b8060018a0101548160051b602088010152600101818118611002575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de57801561107557905b806001880101548160051b602088010152600101818118611059575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de5780156110ce57905b806001880101548160051b6020880101526001018181186110b2575b5050820160200191505090509050810190509050905083019250600101818118610fc2575b505082016020019150509050810190508060408301528082015f6260240a548083528060051b5f8261040081116116de57801561125d57905b828160051b602088010152610c0381026260240b0183602088010160608082528082015f84548083528060051b5f8261040081116116de57801561118857905b8060018a0101548160051b60208801015260010181811861116c575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de5780156111df57905b806001880101548160051b6020880101526001018181186111c3575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de57801561123857905b806001880101548160051b60208801015260010181811861121c575b505082016020019150509050905081019050905090508301925060010181811861112c575b505082016020019150509050810190508060608301528082015f6290300b548083528060051b5f8261040081116116de5780156113c757905b828160051b602088010152610c0381026290300c0183602088010160608082528082015f84548083528060051b5f8261040081116116de5780156112f257905b8060018a0101548160051b6020880101526001018181186112d6575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de57801561134957905b806001880101548160051b60208801015260010181811861132d575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de5780156113a257905b806001880101548160051b602088010152600101818118611386575b5050820160200191505090509050810190509050905083019250600101818118611296575b505082016020019150509050810190508060808301528082015f62c03c0c548083528060051b5f8261040081116116de57801561153157905b828160051b602088010152610c03810262c03c0d0183602088010160608082528082015f84548083528060051b5f8261040081116116de57801561145c57905b8060018a0101548160051b602088010152600101818118611440575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de5780156114b357905b806001880101548160051b602088010152600101818118611497575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de57801561150c57905b806001880101548160051b6020880101526001018181186114f0575b5050820160200191505090509050810190509050905083019250600101818118611400575b505082016020019150509050810190509050810190506040f35b6399e74a4c81186115ef57602080604052806040015f33620180a05233620180c05233620180e0526060366201810037600262018080525f6201808051808452606081025f8261040081116116de5780156115d957905b60608102602088010160608202620180a00180518252602081015160208301526040810151604083015250506001018181186115a2575b5050820160200191505090509050810190506040f35b63acab48d881186116055761014436106116de57005b6378c067b0811861162e57604436106116de576004358060a01c6116de57604052602435606052005b637b92b7ce811861166b57608436106116de576004358060a01c6116de576040526024356060526044358060a01c6116de5760805260643560a052005b63136af17f81186116d8577f1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef604052336060526040516080527fa731a78d94f9b7de7d6ab1ba8b80641702fa1c4a60a45d52c8db2bbc0a2e80a860605160a05260805160c052604060a0a1005b505b5f5ffd5b5f80fda165767970657283000309000b005b5f80fd"},"dev_messages":{},"devdoc":{},"pcmap":{"1002":{"location":[98,80,98,81]},"1009":{"location":[97,0,98,83]},"101":{"location":[50,19,50,26]},"1011":{"location":[97,0,98,83]},"1012":{"location":[97,0,98,83]},"1013":{"location":[102,0,103,83]},"1018":{"location":[102,0,103,83]},"1019":{"location":[102,0,103,83]},"1020":{"location":[102,0,103,83]},"1023":{"location":[102,0,103,83]},"1024":{"location":[103,31,103,32]},"1029":{"location":[103,50,103,60]},"1037":{"location":[103,65,103,79]},"1043":{"location":[102,0,103,83]},"1045":{"location":[102,0,103,83]},"1046":{"location":[102,0,103,83]},"1047":{"location":[107,0,108,88]},"1052":{"location":[107,0,108,88]},"1053":{"location":[107,0,108,88]},"1054":{"location":[107,0,108,88]},"1057":{"location":[107,0,108,88]},"1058":{"location":[108,43,108,53]},"1066":{"location":[108,58,108,72]},"1070":{"location":[108,81,108,82]},"1075":{"location":[108,86,108,87]},"1082":{"location":[107,0,108,88]},"1084":{"location":[107,0,108,88]},"1085":{"location":[107,0,108,88]},"1086":{"location":[112,0,113,88]},"1091":{"location":[112,0,113,88]},"1092":{"location":[112,0,113,88]},"1093":{"location":[112,0,113,88]},"1096":{"location":[112,0,113,88]},"1097":{"location":[113,12,113,13]},"110":{"location":[50,19,50,26]},"1102":{"location":[113,35,113,36]},"1107":{"location":[113,54,113,64]},"1115":{"location":[113,69,113,83]},"112":{"location":[50,19,50,26]},"1121":{"location":[112,0,113,88]},"1123":{"location":[112,0,113,88]},"1124":{"location":[112,0,113,88]},"1125":{"location":[117,0,119,22]},"113":{"location":[50,19,50,26]},"1130":{"location":[117,0,119,22]},"1131":{"location":[117,0,119,22]},"1132":{"location":[117,0,119,22]},"1135":{"location":[117,0,119,22]},"1139":{"location":[118,4,118,44]},"114":{"location":[51,17,51,42]},"1153":{"location":[119,11,119,22]},"119":{"location":[51,17,51,42]},"120":{"location":[51,17,51,42]},"121":{"location":[51,17,51,42]},"124":{"location":[51,17,51,42]},"1240":{"location":[117,0,119,22]},"1243":{"location":[117,0,119,22]},"1244":{"location":[117,0,119,22]},"1245":{"location":[123,0,126,41]},"125":{"location":[51,17,51,42]},"1250":{"location":[123,0,126,41]},"1251":{"location":[123,0,126,41]},"1252":{"location":[123,0,126,41]},"1255":{"location":[123,0,126,41]},"1259":{"location":[124,4,124,46]},"1264":{"location":[125,4,125,46]},"127":{"location":[51,17,51,42]},"1278":{"location":[126,12,126,25]},"129":{"location":[51,17,51,42]},"132":{"location":[51,17,51,42]},"1376":{"location":[126,27,126,40]},"140":{"dev":"dev: Integer overflow","location":[51,17,51,42]},"143":{"dev":"dev: Integer overflow","location":[51,17,51,42]},"1465":{"location":[123,0,126,41]},"1468":{"location":[123,0,126,41]},"1469":{"location":[123,0,126,41]},"1470":{"location":[130,0,133,41]},"1475":{"location":[130,0,133,41]},"1476":{"location":[130,0,133,41]},"1477":{"location":[130,0,133,41]},"1480":{"location":[130,0,133,41]},"1481":{"location":[131,4,131,51]},"1483":{"location":[131,4,131,51]},"1484":{"location":[131,4,131,51]},"1486":{"location":[131,4,131,51]},"1542":{"location":[133,27,133,40]},"1631":{"location":[130,0,133,41]},"1634":{"location":[130,0,133,41]},"1635":{"location":[130,0,133,41]},"1636":{"location":[137,0,139,20]},"1641":{"location":[137,0,139,20]},"1642":{"location":[137,0,139,20]},"1643":{"location":[137,0,139,20]},"1646":{"location":[137,0,139,20]},"1653":{"location":[138,4,138,59]},"1654":{"location":[139,11,139,12]},"167":{"location":[51,17,51,42]},"169":{"location":[51,17,51,42]},"170":{"location":[51,17,51,42]},"171":{"location":[52,17,52,43]},"176":{"location":[52,17,52,43]},"177":{"location":[52,17,52,43]},"178":{"location":[52,17,52,43]},"181":{"location":[52,17,52,43]},"182":{"location":[52,17,52,43]},"184":{"location":[52,17,52,43]},"186":{"location":[52,17,52,43]},"189":{"location":[52,17,52,43]},"1896":{"location":[137,0,139,20]},"1899":{"location":[137,0,139,20]},"19":{"dev":"dev: Cannot send ether to non-payable function","location":null},"1900":{"location":[137,0,139,20]},"1901":{"location":[143,0,146,33]},"1906":{"location":[143,0,146,33]},"1907":{"location":[143,0,146,33]},"1908":{"location":[143,0,146,33]},"1911":{"location":[143,0,146,33]},"1915":{"location":[144,4,144,41]},"1920":{"location":[145,4,145,44]},"1934":{"location":[146,11,146,20]},"200":{"dev":"dev: Integer underflow","location":[52,17,52,43]},"2018":{"location":[146,22,146,33]},"203":{"dev":"dev: Integer underflow","location":[52,17,52,43]},"2107":{"location":[143,0,146,33]},"2110":{"location":[143,0,146,33]},"2111":{"location":[143,0,146,33]},"2112":{"location":[150,0,160,5]},"2117":{"location":[150,0,160,5]},"2118":{"location":[150,0,160,5]},"2119":{"location":[150,0,160,5]},"2122":{"location":[150,0,160,5]},"2123":{"location":[153,17,153,18]},"2128":{"location":[155,29,155,39]},"2136":{"location":[155,44,155,58]},"2140":{"location":[156,29,156,39]},"2148":{"location":[156,44,156,58]},"215":{"dev":"dev: Integer underflow","location":[52,17,52,43]},"2152":{"location":[158,17,158,18]},"2159":{"location":[150,0,160,5]},"216":{"dev":"dev: Integer underflow","location":[52,17,52,43]},"2161":{"location":[150,0,160,5]},"2162":{"location":[150,0,160,5]},"2163":{"location":[164,0,165,13]},"2168":{"location":[164,0,165,13]},"2169":{"location":[164,0,165,13]},"2170":{"location":[164,0,165,13]},"2173":{"location":[164,0,165,13]},"219":{"dev":"dev: Integer underflow","location":[52,17,52,43]},"22":{"dev":"dev: Cannot send ether to non-payable function","location":null},"2244":{"location":[164,0,165,13]},"2246":{"location":[164,0,165,13]},"2247":{"location":[164,0,165,13]},"2248":{"location":[169,0,170,14]},"2253":{"location":[169,0,170,14]},"2254":{"location":[169,0,170,14]},"2255":{"location":[169,0,170,14]},"2258":{"location":[169,0,170,14]},"2270":{"location":[170,12,170,13]},"23":{"location":[47,14,47,21]},"233":{"location":[52,17,52,43]},"235":{"location":[52,17,52,43]},"2356":{"location":[169,0,170,14]},"2358":{"location":[169,0,170,14]},"2359":{"location":[169,0,170,14]},"236":{"location":[52,17,52,43]},"2360":{"location":[174,0,175,20]},"2365":{"location":[174,0,175,20]},"2366":{"location":[174,0,175,20]},"2367":{"location":[174,0,175,20]},"237":{"location":[53,19,53,64]},"2370":{"location":[174,0,175,20]},"2382":{"location":[175,12,175,13]},"2388":{"location":[175,15,175,16]},"2394":{"location":[175,18,175,19]},"242":{"location":[53,19,53,64]},"243":{"location":[53,19,53,64]},"244":{"location":[53,19,53,64]},"247":{"location":[53,19,53,64]},"248":{"location":[53,19,53,64]},"2482":{"location":[174,0,175,20]},"2484":{"location":[174,0,175,20]},"2485":{"location":[174,0,175,20]},"2486":{"location":[179,0,180,35]},"2491":{"location":[179,0,180,35]},"2492":{"location":[179,0,180,35]},"2493":{"location":[179,0,180,35]},"2496":{"location":[179,0,180,35]},"250":{"location":[53,19,53,64]},"2508":{"location":[180,12,180,22]},"2512":{"location":[180,24,180,34]},"252":{"location":[53,19,53,64]},"255":{"location":[53,19,53,64]},"2598":{"location":[179,0,180,35]},"2600":{"location":[179,0,180,35]},"2601":{"location":[179,0,180,35]},"2602":{"location":[184,0,188,5]},"2607":{"location":[184,0,188,5]},"2608":{"location":[184,0,188,5]},"2609":{"location":[184,0,188,5]},"2612":{"location":[184,0,188,5]},"2624":{"location":[186,39,186,49]},"2633":{"location":[186,54,186,68]},"2638":{"location":[186,77,186,78]},"2644":{"location":[187,39,187,49]},"2653":{"location":[187,54,187,68]},"2658":{"location":[187,77,187,78]},"267":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"270":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"2772":{"location":[184,0,188,5]},"2774":{"location":[184,0,188,5]},"2775":{"location":[184,0,188,5]},"2776":{"location":[192,0,196,5]},"2781":{"location":[192,0,196,5]},"2782":{"location":[192,0,196,5]},"2783":{"location":[192,0,196,5]},"2786":{"location":[192,0,196,5]},"2787":{"location":[194,28,194,29]},"2792":{"location":[194,47,194,57]},"28":{"location":[47,14,47,21]},"2800":{"location":[194,62,194,76]},"2804":{"location":[195,28,195,29]},"2809":{"location":[195,47,195,57]},"2817":{"location":[195,62,195,76]},"2823":{"location":[192,0,196,5]},"2825":{"location":[192,0,196,5]},"2826":{"location":[192,0,196,5]},"2827":{"location":[200,0,201,29]},"2832":{"location":[200,0,201,29]},"2833":{"location":[200,0,201,29]},"2834":{"location":[200,0,201,29]},"2837":{"location":[200,0,201,29]},"2848":{"location":[200,0,201,29]},"2850":{"location":[200,0,201,29]},"2851":{"location":[200,0,201,29]},"2852":{"location":[206,0,207,51]},"2857":{"location":[206,0,207,51]},"2858":{"location":[206,0,207,51]},"2859":{"location":[206,0,207,51]},"286":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"2862":{"location":[206,0,207,51]},"287":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"2873":{"location":[206,0,207,51]},"2875":{"location":[206,0,207,51]},"2876":{"location":[206,0,207,51]},"2877":{"location":[211,0,212,21]},"2882":{"location":[211,0,212,21]},"2883":{"location":[211,0,212,21]},"2884":{"location":[211,0,212,21]},"2887":{"location":[211,0,212,21]},"2888":{"location":[212,12,212,15]},"2893":{"location":[212,17,212,20]},"29":{"location":[47,14,47,21]},"290":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"2901":{"location":[211,0,212,21]},"2903":{"location":[211,0,212,21]},"2904":{"location":[211,0,212,21]},"2905":{"location":[216,0,217,17]},"2910":{"location":[216,0,217,17]},"2911":{"location":[216,0,217,17]},"2912":{"location":[216,0,217,17]},"2915":{"location":[216,0,217,17]},"2924":{"location":[216,0,217,17]},"2926":{"location":[216,0,217,17]},"2927":{"location":[216,0,217,17]},"2928":{"location":[221,0,224,42]},"2933":{"location":[221,0,224,42]},"2934":{"location":[221,0,224,42]},"2935":{"location":[221,0,224,42]},"2938":{"location":[221,0,224,42]},"2945":{"location":[222,4,222,47]},"2946":{"location":[223,19,223,29]},"2947":{"location":[223,4,223,16]},"2949":{"location":[221,0,224,42]},"30":{"location":[47,14,47,21]},"309":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"3115":{"location":[221,0,224,42]},"3118":{"location":[221,0,224,42]},"3119":{"location":[221,0,224,42]},"312":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"3120":{"location":[228,0,229,35]},"3125":{"location":[228,0,229,35]},"3126":{"location":[228,0,229,35]},"3127":{"location":[228,0,229,35]},"3130":{"location":[228,0,229,35]},"3131":{"location":[229,13,229,14]},"3136":{"location":[229,16,229,17]},"3141":{"location":[229,21,229,22]},"3146":{"location":[229,24,229,25]},"3151":{"location":[229,29,229,30]},"3156":{"location":[229,32,229,33]},"3163":{"location":[228,0,229,35]},"3165":{"location":[228,0,229,35]},"3166":{"location":[228,0,229,35]},"3167":{"location":[233,0,234,35]},"3172":{"location":[233,0,234,35]},"3173":{"location":[233,0,234,35]},"3174":{"location":[233,0,234,35]},"3177":{"location":[233,0,234,35]},"3189":{"location":[234,13,234,14]},"3196":{"location":[234,16,234,17]},"3203":{"location":[234,21,234,22]},"3210":{"location":[234,24,234,25]},"3217":{"location":[234,29,234,30]},"3224":{"location":[234,32,234,33]},"325":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"326":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"329":{"dev":"dev: Integer underflow","location":[53,19,53,64]},"33":{"location":[47,14,47,21]},"3333":{"location":[233,0,234,35]},"3335":{"location":[233,0,234,35]},"3336":{"location":[233,0,234,35]},"3337":{"location":[238,0,239,24]},"3342":{"location":[238,0,239,24]},"3343":{"location":[238,0,239,24]},"3344":{"location":[238,0,239,24]},"3347":{"location":[238,0,239,24]},"343":{"location":[53,19,53,64]},"345":{"location":[53,19,53,64]},"346":{"location":[53,19,53,64]},"347":{"location":[69,0,71,22]},"352":{"location":[69,0,71,22]},"353":{"location":[69,0,71,22]},"354":{"location":[69,0,71,22]},"357":{"location":[69,0,71,22]},"358":{"location":[70,22,70,22]},"359":{"location":[70,4,70,22]},"3610":{"location":[238,0,239,24]},"3612":{"location":[238,0,239,24]},"3613":{"location":[238,0,239,24]},"3614":{"location":[243,0,244,26]},"3619":{"location":[243,0,244,26]},"3620":{"location":[243,0,244,26]},"3621":{"location":[243,0,244,26]},"3624":{"location":[243,0,244,26]},"392":{"location":[70,4,70,22]},"393":{"location":[70,4,70,22]},"395":{"location":[70,4,70,22]},"396":{"location":[71,22,71,22]},"398":{"location":[71,4,71,22]},"41":{"location":[47,14,47,21]},"43":{"location":[47,14,47,21]},"431":{"location":[71,4,71,22]},"432":{"location":[71,4,71,22]},"434":{"location":[71,4,71,22]},"435":{"location":[69,0,71,22]},"436":{"location":[69,0,71,22]},"437":{"location":[74,0,79,80]},"44":{"location":[47,14,47,21]},"442":{"location":[74,0,79,80]},"443":{"location":[74,0,79,80]},"444":{"location":[74,0,79,80]},"447":{"location":[74,0,79,80]},"448":{"location":[74,0,79,80]},"45":{"location":[48,17,48,24]},"450":{"location":[74,0,79,80]},"452":{"location":[74,0,79,80]},"455":{"location":[74,0,79,80]},"456":{"location":[75,25,75,35]},"457":{"location":[75,11,75,35]},"458":{"location":[75,11,75,21]},"459":{"location":[75,11,75,35]},"460":{"location":[75,11,75,35]},"461":{"dev":"dev: USER_ASSERT","location":[75,4,75,50]},"464":{"dev":"dev: USER_ASSERT","location":[75,4,75,50]},"469":{"location":[75,37,75,50]},"50":{"location":[48,17,48,24]},"505":{"location":[75,37,75,50]},"506":{"location":[75,37,75,50]},"508":{"location":[75,4,75,50]},"51":{"location":[48,17,48,24]},"52":{"location":[48,17,48,24]},"5448":{"location":[243,0,244,26]},"5450":{"location":[243,0,244,26]},"5451":{"location":[243,0,244,26]},"5452":{"location":[248,0,249,99]},"5457":{"location":[248,0,249,99]},"5458":{"location":[248,0,249,99]},"5459":{"location":[248,0,249,99]},"5462":{"location":[248,0,249,99]},"5474":{"location":[249,13,249,23]},"5480":{"location":[249,25,249,35]},"5486":{"location":[249,37,249,47]},"55":{"location":[48,17,48,24]},"555":{"dev":"dev: USER_ASSERT","location":[75,4,75,50]},"556":{"location":[76,18,76,19]},"558":{"location":[79,65,79,68]},"560":{"location":[76,11,76,19]},"5612":{"location":[248,0,249,99]},"5614":{"location":[248,0,249,99]},"5615":{"location":[248,0,249,99]},"5616":{"location":[253,0,265,8]},"562":{"dev":"dev: USER_ASSERT","location":[76,4,76,19]},"5621":{"location":[253,0,265,8]},"5622":{"location":[253,0,265,8]},"5623":{"location":[253,0,265,8]},"5626":{"location":[253,0,265,8]},"5627":{"location":[253,0,265,8]},"5630":{"location":[253,0,265,8]},"5632":{"location":[253,0,265,8]},"5635":{"location":[253,0,265,8]},"5636":{"location":[253,0,265,8]},"5637":{"location":[253,0,265,8]},"5638":{"location":[269,0,270,8]},"5643":{"location":[269,0,270,8]},"5644":{"location":[269,0,270,8]},"5645":{"location":[269,0,270,8]},"5648":{"location":[269,0,270,8]},"5649":{"location":[269,0,270,8]},"565":{"dev":"dev: USER_ASSERT","location":[76,4,76,19]},"5651":{"location":[269,0,270,8]},"5653":{"location":[269,0,270,8]},"5656":{"location":[269,0,270,8]},"566":{"location":[77,22,77,35]},"5664":{"dev":"dev: Integer overflow","location":[269,0,270,8]},"5667":{"dev":"dev: Integer overflow","location":[269,0,270,8]},"5670":{"location":[269,14,269,34]},"5676":{"location":[269,14,269,34]},"5677":{"location":[269,0,270,8]},"5678":{"location":[269,0,270,8]},"5679":{"location":[274,0,275,8]},"5684":{"location":[274,0,275,8]},"5685":{"location":[274,0,275,8]},"5686":{"location":[274,0,275,8]},"5689":{"location":[274,0,275,8]},"569":{"location":[77,4,77,19]},"5690":{"location":[274,0,275,8]},"5692":{"location":[274,0,275,8]},"5694":{"location":[274,0,275,8]},"5697":{"location":[274,0,275,8]},"5705":{"dev":"dev: Integer overflow","location":[274,0,275,8]},"5708":{"dev":"dev: Integer overflow","location":[274,0,275,8]},"572":{"location":[79,65,79,68]},"5725":{"dev":"dev: Integer overflow","location":[274,0,275,8]},"5728":{"dev":"dev: Integer overflow","location":[274,0,275,8]},"5738":{"location":[274,0,275,8]},"5739":{"location":[274,0,275,8]},"5740":{"location":[278,0,284,32]},"5745":{"location":[278,0,284,32]},"5746":{"location":[278,0,284,32]},"5747":{"location":[278,0,284,32]},"575":{"location":[78,4,78,17]},"5750":{"location":[278,0,284,32]},"5751":{"location":[279,22,279,88]},"5786":{"location":[279,4,279,88]},"5787":{"location":[281,11,281,21]},"5790":{"location":[280,4,283,6]},"5791":{"location":[282,11,282,17]},"5796":{"location":[280,4,283,6]},"5797":{"location":[284,4,284,32]},"582":{"location":[79,70,79,79]},"5844":{"location":[284,4,284,32]},"5846":{"location":[284,4,284,32]},"5847":{"location":[278,0,284,32]},"5848":{"location":[278,0,284,32]},"5853":{"dev":"dev: Fallback not defined","location":null},"618":{"location":[79,70,79,79]},"619":{"location":[79,70,79,79]},"628":{"location":[79,4,79,80]},"629":{"location":[79,4,79,80]},"630":{"location":[79,65,79,68]},"632":{"location":[79,4,79,80]},"633":{"location":[79,4,79,80]},"64":{"location":[48,17,48,24]},"66":{"location":[48,17,48,24]},"67":{"location":[48,17,48,24]},"672":{"location":[79,21,79,35]},"676":{"location":[79,37,79,52]},"68":{"location":[49,19,49,26]},"691":{"location":[79,54,79,63]},"727":{"location":[79,54,79,63]},"728":{"location":[79,54,79,63]},"73":{"location":[49,19,49,26]},"74":{"location":[49,19,49,26]},"75":{"location":[49,19,49,26]},"78":{"location":[49,19,49,26]},"793":{"location":[79,4,79,80]},"795":{"location":[79,4,79,80]},"796":{"location":[74,0,79,80]},"797":{"location":[74,0,79,80]},"798":{"location":[82,0,84,31]},"803":{"location":[82,0,84,31]},"804":{"location":[82,0,84,31]},"805":{"location":[82,0,84,31]},"808":{"location":[82,0,84,31]},"809":{"location":[82,0,84,31]},"811":{"location":[82,0,84,31]},"813":{"location":[82,0,84,31]},"816":{"location":[82,0,84,31]},"824":{"dev":"dev: Integer overflow","location":[82,0,84,31]},"827":{"dev":"dev: Integer overflow","location":[82,0,84,31]},"828":{"location":[82,15,82,32]},"830":{"location":[82,15,82,32]},"831":{"location":[83,22,83,30]},"834":{"location":[83,4,83,19]},"837":{"location":[84,22,84,30]},"839":{"location":[84,4,84,31]},"840":{"location":[84,4,84,31]},"87":{"location":[49,19,49,26]},"873":{"location":[84,4,84,31]},"874":{"location":[84,4,84,31]},"876":{"location":[84,4,84,31]},"877":{"location":[82,0,84,31]},"878":{"location":[82,0,84,31]},"879":{"location":[87,0,88,34]},"884":{"location":[87,0,88,34]},"885":{"location":[87,0,88,34]},"886":{"location":[87,0,88,34]},"889":{"location":[87,0,88,34]},"89":{"location":[49,19,49,26]},"890":{"location":[87,0,88,34]},"892":{"location":[87,0,88,34]},"894":{"location":[87,0,88,34]},"897":{"location":[87,0,88,34]},"90":{"location":[49,19,49,26]},"905":{"dev":"dev: Integer overflow","location":[87,0,88,34]},"908":{"dev":"dev: Integer overflow","location":[87,0,88,34]},"909":{"location":[87,15,87,32]},"91":{"location":[50,19,50,26]},"911":{"location":[87,15,87,32]},"912":{"location":[88,4,88,17]},"914":{"location":[88,18,88,26]},"917":{"location":[88,4,88,27]},"919":{"location":[88,4,88,27]},"920":{"location":[88,4,88,27]},"921":{"location":[88,4,88,27]},"922":{"location":[88,4,88,27]},"924":{"location":[88,4,88,27]},"925":{"location":[88,4,88,27]},"926":{"location":[88,4,88,34]},"927":{"location":[88,4,88,34]},"928":{"location":[88,31,88,34]},"932":{"location":[88,4,88,34]},"934":{"location":[88,4,88,34]},"937":{"dev":"dev: Integer overflow","location":[88,4,88,34]},"940":{"dev":"dev: Integer overflow","location":[88,4,88,34]},"941":{"location":[88,4,88,34]},"942":{"location":[88,4,88,34]},"943":{"location":[88,4,88,34]},"944":{"location":[88,4,88,34]},"945":{"location":[88,4,88,34]},"947":{"location":[88,4,88,34]},"948":{"location":[87,0,88,34]},"949":{"location":[87,0,88,34]},"950":{"location":[92,0,93,55]},"955":{"location":[92,0,93,55]},"956":{"location":[92,0,93,55]},"957":{"location":[92,0,93,55]},"96":{"location":[50,19,50,26]},"960":{"location":[92,0,93,55]},"961":{"location":[93,24,93,34]},"969":{"location":[93,39,93,53]},"97":{"location":[50,19,50,26]},"975":{"location":[92,0,93,55]},"977":{"location":[92,0,93,55]},"978":{"location":[92,0,93,55]},"979":{"location":[97,0,98,83]},"98":{"location":[50,19,50,26]},"984":{"location":[97,0,98,83]},"985":{"location":[97,0,98,83]},"986":{"location":[97,0,98,83]},"989":{"location":[97,0,98,83]},"990":{"location":[98,42,98,52]},"998":{"location":[98,57,98,71]}},"runtimeBytecode":{"bytecode":"0x6003361161000c576116da565b5f3560e01c346116de57638da5cb5b811861002c575f5460405260206040f35b6323fd0e4081186100435760015460405260206040f35b634825cf6f811861005a5760025460405260206040f35b636cbceeec81186100715760035460405260206040f35b6327e235e381186100aa57602436106116de576004358060a01c6116de5760405260046040516020525f5260405f205460605260206060f35b63d3aaff6d81186100ec57604436106116de57610401600435600281116116de570260050160243581548110156116de57600182010190505460405260206040f35b63ae8ef2cb811861015a57608436106116de5762300c01600435600481116116de5702610c0801610c0360243582548110156116de570260018201019050610401604435600281116116de57028101905060643581548110156116de57600182010190505460405260206040f35b632beb171181186101b4575f7f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd5f6040a260017fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced55f6040a2005b633fb5c1cb811861031d57602436106116de575f5433181561022b57600b6040527f21617574686f72697a656400000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b6005600435146116de5760015460025560043560015560076080527f44796e616d69630000000000000000000000000000000000000000000000000060a05260808051602082012090506004357fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686060600143034060c05260025460e052806101005260076040527f44796e616d69630000000000000000000000000000000000000000000000000060605260408160c00181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f82516020010116905090508101905060c0a3005b63e30081a0811861036e57602436106116de576004358060a01c6116de576040526040516003556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a95f6060a2005b63e30443bc81186103b557604436106116de576004358060a01c6116de5760405260046040516020525f5260405f2080546024358082018281106116de5790509050815550005b6309b1b3f281186103d25733604052600143034060605260406040f35b6302f487d681186103f457336040526001430340606052600160805260606040f35b63a420b5a5811861041657600260405233606052600143034060805260606040f35b63e9f7fd14811861043d573360405260014303406060526001608052600160a05260806040f35b63a2fbee538118610464576002604052600260605233608052600143034060a05260806040f35b637a79591d81186104dc575f6040526020806102e052806102e0015f6040518083528060061b5f82600a81116116de5780156104c757905b8060061b60208701018160061b6060018051825260208101516020830152505060010181811861049c575b505082016020019150509050810190506102e0f35b63a4f6d26b81186105bd575f6040525f6102e0526040806105805280610580015f6040518083528060061b5f82600a81116116de57801561054457905b8060061b60208701018160061b60600180518252602081015160208301525050600101818118610519575b50508201602001915050905081019050806105a05280610580015f6102e0518083528060061b5f82600a81116116de5780156105a857905b8060061b60208701018160061b610300018051825260208101516020830152505060010181811861057c575b50508201602001915050905081019050610580f35b63252e423e81186106635760e03660403760e06040516101a0526060516101c0526080516101e05260a0516102005260c0516102205260e051610240528061026052806101a0015f610100518083528060061b5f82600281116116de57801561064e57905b8060061b60208701018160061b6101200180518252602081015160208301525050600101818118610622575b505082016020019150509050810190506101a0f35b63c2f14839811861076c576103c0366040375f6104005260405161042052606051610440526080516104605260a0516104805260c0516104a05260e0516104c052610100516104e05261012051610500526101405161052052610160516105405261018051610560526101a051610580526101c0516105a0526101e0516105c052610200516105e05261022051610600526102405161062052610260516106405261028051610660526102a051610680526102c0516106a0526102e0516106c052610300516106e05261032051610700526103405161072052610360516107405261038051610760526103a051610780526103c0516107a0526103e0516107c0526103e0610400f35b63a5c1b662811861083f575f6040525f6101a0526040806104405280610440015f6040518083528060051b5f82600a81116116de5780156107c657905b8060051b606001518160051b6020880101526001018181186107a9575b50508201602001915050905081019050806104605280610440015f6101a0518083528060061b5f82600a81116116de57801561082a57905b8060061b60208701018160061b6101c001805182526020810151602083015250506001018181186107fe575b50508201602001915050905081019050610440f35b6342ce1ec681186108725760016040523360605260014303406080523360a052600143034060c052600260e05260c06040f35b63052f3e7681186108c757602080604052806040015f5f82525f5f5f600181116116de5780156108b457905b5f8160051b60208701015260010181811861089e575b5050810160200190509050810190506040f35b63b345ad96811861093757602080604052806040015f600160c052600160a0525f60a0518084528060051b5f82600181116116de57801561092157905b8060051b60c001518160051b602089010152600101818118610904575b5050820160200191505090509050810190506040f35b6335417bf481186109b557602080604052806040015f600161010052600261012052600361014052600360e0525f60e0518084528060051b5f82600381116116de57801561099f57905b8060051b61010001518160051b602089010152600101818118610981575b5050820160200191505090509050810190506040f35b63a5b0930d8118610a2957602080604052806040015f3360e0523361010052600260c0525f60c0518084528060051b5f82600281116116de578015610a1357905b8060051b60e001518160051b6020890101526001018181186109f6575b5050820160200191505090509050810190506040f35b639bfb2ad88118610ad757602080604052806040015f336101605260014303406101805260016101a052336101c05260014303406101e0526002610200526002610140525f61014051808452606081025f82600281116116de578015610ac157905b60608102602088010160608202610160018051825260208101516020830152604081015160408301525050600101818118610a8b575b5050820160200191505090509050810190506040f35b633ce80e948118610b0a576001604052336060526001430340608052600260a0523360c052600143034060e05260c06040f35b6343790b648118610b2357610280366040376102806040f35b63d4d64b358118610b3c57610500366040376105006040f35b63650543a38118610b5857607b60405261014160605260406040f35b63243e09638118610b6f5760403660403760406040f35b638ba6052d8118610c2f5761028036604037336040526040516102c0526060516102e0526080516103005260a0516103205260c0516103405260e051610360526101005161038052610120516103a052610140516103c052610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a0516105205261028036610540376105006102c0f35b63ccd62aa48118610c5e57600160405260026060526003608052600460a052600560c052600660e05260c06040f35b636126c87f8118610d0857602080604052806040015f6001620100a0526002620100c0526003620100e052600462010100526005620101205260066201014052600362010080525f62010080518084528060061b5f8261040081116116de578015610cf257905b8060061b60208801018160061b620100a00180518252602081015160208301525050600101818118610cc5575b5050820160200191505090509050810190506040f35b6394a66fc98118610e1d576020806040528060400160608082528082015f6005548083528060051b5f8261040081116116de578015610d5d57905b80600601548160051b602088010152600101818118610d43575b505082016020019150509050810190508060208301528082015f610406548083528060051b5f8261040081116116de578015610db057905b8061040701548160051b602088010152600101818118610d95575b505082016020019150509050810190508060408301528082015f610807548083528060051b5f8261040081116116de578015610e0357905b8061080801548160051b602088010152600101818118610de8575b505082016020019150509050810190509050810190506040f35b63abeb2022811861154b576020806040528060400160a08082528082015f610c08548083528060051b5f8261040081116116de578015610f8957905b828160051b602088010152610c038102610c090183602088010160608082528082015f84548083528060051b5f8261040081116116de578015610eb457905b8060018a0101548160051b602088010152600101818118610e98575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de578015610f0b57905b806001880101548160051b602088010152600101818118610eef575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de578015610f6457905b806001880101548160051b602088010152600101818118610f48575b5050820160200191505090509050810190509050905083019250600101818118610e59575b505082016020019150509050810190508060208301528082015f62301809548083528060051b5f8261040081116116de5780156110f357905b828160051b602088010152610c0381026230180a0183602088010160608082528082015f84548083528060051b5f8261040081116116de57801561101e57905b8060018a0101548160051b602088010152600101818118611002575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de57801561107557905b806001880101548160051b602088010152600101818118611059575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de5780156110ce57905b806001880101548160051b6020880101526001018181186110b2575b5050820160200191505090509050810190509050905083019250600101818118610fc2575b505082016020019150509050810190508060408301528082015f6260240a548083528060051b5f8261040081116116de57801561125d57905b828160051b602088010152610c0381026260240b0183602088010160608082528082015f84548083528060051b5f8261040081116116de57801561118857905b8060018a0101548160051b60208801015260010181811861116c575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de5780156111df57905b806001880101548160051b6020880101526001018181186111c3575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de57801561123857905b806001880101548160051b60208801015260010181811861121c575b505082016020019150509050905081019050905090508301925060010181811861112c575b505082016020019150509050810190508060608301528082015f6290300b548083528060051b5f8261040081116116de5780156113c757905b828160051b602088010152610c0381026290300c0183602088010160608082528082015f84548083528060051b5f8261040081116116de5780156112f257905b8060018a0101548160051b6020880101526001018181186112d6575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de57801561134957905b806001880101548160051b60208801015260010181811861132d575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de5780156113a257905b806001880101548160051b602088010152600101818118611386575b5050820160200191505090509050810190509050905083019250600101818118611296575b505082016020019150509050810190508060808301528082015f62c03c0c548083528060051b5f8261040081116116de57801561153157905b828160051b602088010152610c03810262c03c0d0183602088010160608082528082015f84548083528060051b5f8261040081116116de57801561145c57905b8060018a0101548160051b602088010152600101818118611440575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116116de5780156114b357905b806001880101548160051b602088010152600101818118611497575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116116de57801561150c57905b806001880101548160051b6020880101526001018181186114f0575b5050820160200191505090509050810190509050905083019250600101818118611400575b505082016020019150509050810190509050810190506040f35b6399e74a4c81186115ef57602080604052806040015f33620180a05233620180c05233620180e0526060366201810037600262018080525f6201808051808452606081025f8261040081116116de5780156115d957905b60608102602088010160608202620180a00180518252602081015160208301526040810151604083015250506001018181186115a2575b5050820160200191505090509050810190506040f35b63acab48d881186116055761014436106116de57005b6378c067b0811861162e57604436106116de576004358060a01c6116de57604052602435606052005b637b92b7ce811861166b57608436106116de576004358060a01c6116de576040526024356060526044358060a01c6116de5760805260643560a052005b63136af17f81186116d8577f1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef604052336060526040516080527fa731a78d94f9b7de7d6ab1ba8b80641702fa1c4a60a45d52c8db2bbc0a2e80a860605160a05260805160c052604060a0a1005b505b5f5ffd5b5f80fda165767970657283000309000b"},"sourceId":"TestContractVy.vy","sourcemap":"-1:-1:0:-;;;;:::-;;:::-;:::-;;;;;;;:::-;731:7;;;;:::-;-1:-1;;;;;731:7;;:::-;757;;;;:::-;-1:-1;;;;;757:7;;:::-;785;;;;:::-;-1:-1;;;;;785:7;;:::-;813;;;;:::-;-1:-1;;;;;813:7;;:::-;839:25;;;;:::-;;;-1:-1;839:25;:::-;-1:-1;;;;;;:::-;;;;;;;;;;;;;;;;;839:25;;:::-;883:26;;;;:::-;;;-1:-1;883:26;:::-;-1:-1;;;;;;;:::-;;;;;;;;;;;;:::-;;;;;;;;;;;883:26;;:::-;930:45;;;;:::-;;;-1:-1;930:45;:::-;-1:-1;;;;;;;:::-;;;;;;;;;;;;;:::-;;;;;;;;;;;;;;;:::-;;;;;;;;;;;;;;:::-;;;;;;;;;;;930:45;;:::-;1337:62;;;;:::-;1376:0;1358:18;;;;1399:0;1381:18;;;;1337:62;:::-;1411:240;;;;:::-;;;-1:-1;1411:240;:::-;1465:10;1451:24;:10;:24;;1444:46;:::-;-1:-1;;1477:13;-1:-1;;1477:13;;1444:46;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1444:46::-;1509:1;1636:3;1502:8;-1:-1;1495:15;:::-;1533:13;-1:-1;1515:15;-1:-1;1636:3;-1:-1;1551:13;-1:-1;;;1641:9;-1:-1;;1641:9;;-1:-1;;;;;;1575:76;;1636:3;1575:76;;-1:-1;;;;1592:14;-1:-1;;1608:15;-1:-1;;;;;;;;1625:9;-1:-1;;1625:9;;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1575:76;;1411:240;:::-;1663:97;;;;:::-;;;-1:-1;1663:97;:::-;-1:-1;;;;;;:::-;1678:17;;1720:8;-1:-1;1702:15;-1:-1;1751:8;1733:27;;;;;1663:97;:::-;1772:83;;;;:::-;;;-1:-1;1772:83;:::-;-1:-1;;;;;;:::-;1787:17;;1825:13;1839:8;-1:-1;1825:23;;;;;;;:30;;1852:3;-1:-1;;1825:30;-1:-1;1825:30;-1:-1;;;:::-;1825:30;;;;;-1:-1;1825:30;1772:83;:::-;1873:84;;;;:::-;1926:10;-1:-1;;;;;1941:14;-1:-1;;;1873:84;;:::-;1975:124;;;;:::-;2058:10;-1:-1;;;;;2073:14;-1:-1;;2096:1;-1:-1;;;1975:124;;:::-;2117;;;;:::-;2189:1;-1:-1;;2208:10;-1:-1;;;;;2223:14;-1:-1;;;2117:124;;:::-;2259:149;;;;:::-;2363:10;-1:-1;;;;;2378:14;-1:-1;;2401:1;-1:-1;;2406:1;-1:-1;;;2259:149;;:::-;2426;;;;:::-;2499:1;-1:-1;;2522:1;-1:-1;;2541:10;-1:-1;;;;;2556:14;-1:-1;;;2426:149;;:::-;2593:126;;;;:::-;-1:-1;;2656:40;-1:-1;;;;;;;;2708:11;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;2593:126;;:::-;2737:225;;;;:::-;-1:-1;;2831:42;-1:-1;;2878:42;-1:-1;;;;;;;;2933:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;2948:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;2737:225;;:::-;2980:236;;;;:::-;3081:47;;;;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3202:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;2980:236;;:::-;3234:148;;;;:::-;-1:-1;;;3306:55;3373:1;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3234:148;;:::-;3400:208;;;;:::-;-1:-1;;3492:37;-1:-1;;3534:40;-1:-1;;;;;;;;3586:9;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;3597:11;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;3400:208;;:::-;3626:282;;;;:::-;3714:1;-1:-1;;3765:10;-1:-1;;;;;3780:14;-1:-1;;3827:10;-1:-1;;;;;3842:14;-1:-1;;3891:1;-1:-1;;;3626:282;;:::-;3926:58;;;;:::-;-1:-1;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;3926:58;;:::-;4002:64;;;;:::-;-1:-1;;;;;;;;4064:1;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;4002:64;;:::-;4084:66;;;;:::-;-1:-1;;;;;;;;4142:1;-1:-1;;4145:1;-1:-1;;4148:1;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;4084:66;;:::-;4168:82;;;;:::-;-1:-1;;;;;;;;4227:10;-1:-1;;4239:10;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;4168:82;;:::-;4268:240;;;;:::-;-1:-1;;;;;;;;4379:10;-1:-1;;;;;4394:14;-1:-1;;4417:1;-1:-1;;4461:10;-1:-1;;;;;4476:14;-1:-1;;4499:1;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;4268:240;;:::-;4526:229;;;;:::-;4615:1;-1:-1;;4634:10;-1:-1;;;;;4649:14;-1:-1;;4697:1;-1:-1;;4716:10;-1:-1;;;;;4731:14;-1:-1;;;4526:229;;:::-;4773:74;;;;:::-;-1:-1;;;;;4773:74;;:::-;4866:105;;;;:::-;-1:-1;;;;;4866:105;;:::-;4989:68;;;;:::-;5048:3;-1:-1;;5053:3;-1:-1;;;4989:68;;:::-;5075:62;;;;:::-;-1:-1;;;;;5075:62;;:::-;5155:180;;;;:::-;-1:-1;;;5219:43;5282:10;5267:12;5155:180;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5155:180;;:::-;5353:84;;;;:::-;5415:1;-1:-1;;5418:1;-1:-1;;5423:1;-1:-1;;5426:1;-1:-1;;5431:1;-1:-1;;5434:1;-1:-1;;;5353:84;;:::-;5455:99;;;;:::-;-1:-1;;;;;;;;5532:1;-1:-1;;5535:1;-1:-1;;5540:1;-1:-1;;5543:1;-1:-1;;5548:1;-1:-1;;5551:1;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;5455:99;;:::-;5572:88;;;;:::-;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;5572:88;;:::-;5678:109;;;;:::-;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;5678:109;;:::-;5805:158;;;;:::-;-1:-1;;;;;;;;5877:10;-1:-1;;5889:10;-1:-1;;5901:10;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;5805:158;;:::-;5981:221;;;;:::-;;;-1:-1;5981:221;:::-;;:::-;6220:45;;;;:::-;;;-1:-1;6220:45;:::-;-1:-1;;;;;;:::-;;6234:20;-1:-1;;;6234:20;6220:45;:::-;6283:59;;;;:::-;;;-1:-1;6283:59;:::-;-1:-1;;;;;;:::-;;;;;;;;;;;;;:::-;;;;;;;6283:59;:::-;6354:221;;;;:::-;6393:66;-1:-1;6375:84;6506:10;-1:-1;6464:78;6529:6;-1:-1;;6464:78;6547:28;-1:-1;;;;;;;;;6547:28;;6354:221;:::-;-1:-1;:::-;;;;:::-;;;","userdoc":{}} +{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"name":"b","type":"bytes32"},{"indexed":false,"name":"prevNum","type":"uint256"},{"indexed":false,"name":"dynData","type":"string"},{"indexed":true,"name":"newNum","type":"uint256"},{"indexed":true,"name":"dynIndexed","type":"string"}],"name":"NumberChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAddress","type":"address"}],"name":"AddressChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"foo","type":"uint256"}],"name":"FooHappened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"bar","type":"uint256"}],"name":"BarHappened","type":"event"},{"anonymous":false,"inputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"indexed":false,"name":"a_struct","type":"tuple"}],"name":"EventWithStruct","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"some_id","type":"uint256"},{"indexed":false,"name":"some_address","type":"address"},{"indexed":false,"name":"participants","type":"address[]"},{"indexed":false,"name":"agents","type":"address[1]"}],"name":"EventWithAddressArray","type":"event"},{"inputs":[{"name":"num","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"fooAndBar","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"num","type":"uint256"}],"name":"setNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_address","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_address","type":"address"},{"name":"bal","type":"uint256"}],"name":"setBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getStruct","outputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStruct1","outputs":[{"components":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"},{"name":"foo","type":"uint256"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStruct2","outputs":[{"components":[{"name":"foo","type":"uint256"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStructWithTuple1","outputs":[{"components":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"},{"name":"foo","type":"uint256"}],"name":"","type":"tuple"},{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedStructWithTuple2","outputs":[{"name":"","type":"uint256"},{"components":[{"name":"foo","type":"uint256"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEmptyDynArrayOfStructs","outputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfDynArrayStructs","outputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs","outputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[3]"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTupleOfIntAndStructArray","outputs":[{"name":"","type":"uint256"},{"components":[{"name":"one","type":"uint256"},{"name":"two","type":"uint256"},{"name":"three","type":"uint256"},{"name":"four","type":"uint256"},{"name":"five","type":"uint256"},{"name":"six","type":"uint256"}],"name":"","type":"tuple[5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEmptyTupleOfIntAndDynArray","outputs":[{"name":"","type":"uint256[]"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getStructWithArray","outputs":[{"components":[{"name":"foo","type":"uint256"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"arr","type":"tuple[2]"},{"name":"bar","type":"uint256"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEmptyArray","outputs":[{"name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getSingleItemArray","outputs":[{"name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFilledArray","outputs":[{"name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getAddressArray","outputs":[{"name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDynamicStructArray","outputs":[{"components":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"},{"name":"foo","type":"uint256"}],"name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStaticStructArray","outputs":[{"components":[{"name":"foo","type":"uint256"},{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"t","type":"tuple"}],"name":"","type":"tuple[2]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getArrayWithBiggerSize","outputs":[{"name":"","type":"uint256[20]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTupleOfArrays","outputs":[{"name":"","type":"uint256[20]"},{"name":"","type":"uint256[20]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getMultipleValues","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getUnnamedTuple","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTupleOfAddressArray","outputs":[{"name":"","type":"address[20]"},{"name":"","type":"uint128[20]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayFixedFixed","outputs":[{"name":"","type":"uint256[2][3]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayDynamicFixed","outputs":[{"name":"","type":"uint256[2][]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayFixedDynamic","outputs":[{"name":"","type":"uint256[][3]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedArrayMixedDynamic","outputs":[{"name":"","type":"uint256[][3][][5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNestedAddressArray","outputs":[{"name":"","type":"address[3][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"a0","type":"uint256"},{"name":"a1","type":"uint256"},{"name":"a2","type":"uint256"},{"name":"a3","type":"uint256"},{"name":"a4","type":"uint256"},{"name":"a5","type":"uint256"},{"name":"a6","type":"uint256"},{"name":"a7","type":"uint256"},{"name":"a8","type":"uint256"},{"name":"a9","type":"uint256"}],"name":"functionWithUniqueAmountOfArguments","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"_my_struct","type":"tuple"}],"name":"setStruct","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"name":"a","type":"address"},{"name":"b","type":"bytes32"}],"name":"_my_struct_array","type":"tuple[2]"}],"name":"setStructArray","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"logStruct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"logAddressArray","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myNumber","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevNumber","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"theAddress","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"uint256"},{"name":"arg1","type":"uint256"}],"name":"dynArray","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"uint256"},{"name":"arg1","type":"uint256"},{"name":"arg2","type":"uint256"},{"name":"arg3","type":"uint256"}],"name":"mixedArray","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"ast":{"ast_type":"Module","children":[{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":14,"end_lineno":4,"lineno":4,"src":{"jump_code":"","length":7,"start":45}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":4,"lineno":4,"src":{"jump_code":"","length":1,"start":42}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":4,"lineno":4,"src":{"jump_code":"","length":10,"start":42}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":20,"end_lineno":5,"lineno":5,"src":{"jump_code":"","length":7,"start":66}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":11,"end_lineno":5,"lineno":5,"src":{"jump_code":"","length":7,"start":57}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":5,"lineno":5,"src":{"jump_code":"","length":16,"start":57}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":22,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":2,"start":94}}],"classification":0,"col_offset":13,"end_col_offset":23,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":10,"start":87}},{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":19,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":6,"start":87}}],"classification":0,"col_offset":13,"end_col_offset":23,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":10,"start":87}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":11,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":7,"start":78}}],"classification":0,"col_offset":4,"end_col_offset":23,"end_lineno":6,"lineno":6,"src":{"jump_code":"","length":19,"start":78}},{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":20,"end_col_offset":27,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":7,"start":118}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":19,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":7,"start":110}}],"classification":0,"col_offset":12,"end_col_offset":28,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":16,"start":110}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":10,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":6,"start":102}}],"classification":0,"col_offset":4,"end_col_offset":28,"end_lineno":7,"lineno":7,"src":{"jump_code":"","length":24,"start":102}},{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":31,"end_col_offset":33,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":2,"start":158}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":10,"start":151}},{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":30,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":6,"start":151}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":10,"start":151}},{"ast_type":"Name","children":[],"classification":1,"col_offset":16,"end_col_offset":23,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":7,"start":143}}],"classification":0,"col_offset":16,"end_col_offset":35,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":19,"start":143}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":14,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":10,"start":131}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":8,"lineno":8,"src":{"jump_code":"","length":31,"start":131}}],"classification":0,"col_offset":0,"end_col_offset":35,"end_lineno":8,"lineno":3,"name":"NumberChange","src":{"jump_code":"","length":144,"start":18}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":31,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":7,"start":209}},{"ast_type":"Name","children":[],"classification":1,"col_offset":16,"end_col_offset":23,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":7,"start":201}}],"classification":0,"col_offset":16,"end_col_offset":32,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":16,"start":201}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":14,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":10,"start":189}}],"classification":0,"col_offset":4,"end_col_offset":32,"end_lineno":11,"lineno":11,"src":{"jump_code":"","length":28,"start":189}}],"classification":0,"col_offset":0,"end_col_offset":32,"end_lineno":11,"lineno":10,"name":"AddressChange","src":{"jump_code":"","length":53,"start":164}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":7,"start":255}},{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":7,"start":247}}],"classification":0,"col_offset":9,"end_col_offset":25,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":16,"start":247}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":3,"start":242}}],"classification":0,"col_offset":4,"end_col_offset":25,"end_lineno":14,"lineno":14,"src":{"jump_code":"","length":21,"start":242}}],"classification":0,"col_offset":0,"end_col_offset":25,"end_lineno":14,"lineno":13,"name":"FooHappened","src":{"jump_code":"","length":44,"start":219}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":7,"start":301}},{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":7,"start":293}}],"classification":0,"col_offset":9,"end_col_offset":25,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":16,"start":293}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":3,"start":288}}],"classification":0,"col_offset":4,"end_col_offset":25,"end_lineno":17,"lineno":17,"src":{"jump_code":"","length":21,"start":288}}],"classification":0,"col_offset":0,"end_col_offset":25,"end_lineno":17,"lineno":16,"name":"BarHappened","src":{"jump_code":"","length":44,"start":265}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":14,"end_col_offset":22,"end_lineno":20,"lineno":20,"src":{"jump_code":"","length":8,"start":348}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":12,"end_lineno":20,"lineno":20,"src":{"jump_code":"","length":8,"start":338}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":20,"lineno":20,"src":{"jump_code":"","length":18,"start":338}}],"classification":0,"col_offset":0,"end_col_offset":22,"end_lineno":20,"lineno":19,"name":"EventWithStruct","src":{"jump_code":"","length":45,"start":311}},{"ast_type":"EventDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":20,"end_lineno":23,"lineno":23,"src":{"jump_code":"","length":7,"start":400}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":11,"end_lineno":23,"lineno":23,"src":{"jump_code":"","length":7,"start":391}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":23,"lineno":23,"src":{"jump_code":"","length":16,"start":391}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":25,"end_lineno":24,"lineno":24,"src":{"jump_code":"","length":7,"start":426}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":16,"end_lineno":24,"lineno":24,"src":{"jump_code":"","length":12,"start":412}}],"classification":0,"col_offset":4,"end_col_offset":25,"end_lineno":24,"lineno":24,"src":{"jump_code":"","length":21,"start":412}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":34,"end_lineno":25,"lineno":25,"src":{"jump_code":"","length":7,"start":461}},{"ast_type":"Int","children":[],"classification":0,"col_offset":36,"end_col_offset":40,"end_lineno":25,"lineno":25,"src":{"jump_code":"","length":4,"start":470}}],"classification":0,"col_offset":27,"end_col_offset":40,"end_lineno":25,"lineno":25,"src":{"jump_code":"","length":13,"start":461}}],"classification":0,"col_offset":18,"end_col_offset":41,"end_lineno":25,"lineno":25,"src":{"jump_code":"","length":23,"start":452}},{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":26,"end_lineno":25,"lineno":25,"src":{"jump_code":"","length":8,"start":452}}],"classification":0,"col_offset":18,"end_col_offset":41,"end_lineno":25,"lineno":25,"src":{"jump_code":"","length":23,"start":452}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":16,"end_lineno":25,"lineno":25,"src":{"jump_code":"","length":12,"start":438}}],"classification":0,"col_offset":4,"end_col_offset":41,"end_lineno":25,"lineno":25,"src":{"jump_code":"","length":37,"start":438}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":21,"end_lineno":26,"lineno":26,"src":{"jump_code":"","length":1,"start":496}}],"classification":0,"col_offset":12,"end_col_offset":22,"end_lineno":26,"lineno":26,"src":{"jump_code":"","length":10,"start":488}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":19,"end_lineno":26,"lineno":26,"src":{"jump_code":"","length":7,"start":488}}],"classification":0,"col_offset":12,"end_col_offset":22,"end_lineno":26,"lineno":26,"src":{"jump_code":"","length":10,"start":488}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":10,"end_lineno":26,"lineno":26,"src":{"jump_code":"","length":6,"start":480}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":26,"lineno":26,"src":{"jump_code":"","length":18,"start":480}}],"classification":0,"col_offset":0,"end_col_offset":22,"end_lineno":26,"lineno":22,"name":"EventWithAddressArray","src":{"jump_code":"","length":140,"start":358}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":14,"end_lineno":29,"lineno":29,"src":{"jump_code":"","length":7,"start":524}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":29,"lineno":29,"src":{"jump_code":"","length":1,"start":521}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":29,"lineno":29,"src":{"jump_code":"","length":10,"start":521}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":14,"end_lineno":30,"lineno":30,"src":{"jump_code":"","length":7,"start":539}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":30,"lineno":30,"src":{"jump_code":"","length":1,"start":536}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":30,"lineno":30,"src":{"jump_code":"","length":10,"start":536}}],"classification":0,"col_offset":0,"end_col_offset":14,"end_lineno":30,"lineno":28,"name":"MyStruct","src":{"jump_code":"","length":46,"start":500}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":15,"end_lineno":33,"lineno":33,"src":{"jump_code":"","length":8,"start":577}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":33,"lineno":33,"src":{"jump_code":"","length":1,"start":574}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":33,"lineno":33,"src":{"jump_code":"","length":11,"start":574}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":34,"lineno":34,"src":{"jump_code":"","length":7,"start":595}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":34,"lineno":34,"src":{"jump_code":"","length":3,"start":590}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":34,"lineno":34,"src":{"jump_code":"","length":12,"start":590}}],"classification":0,"col_offset":0,"end_col_offset":16,"end_lineno":34,"lineno":32,"name":"NestedStruct1","src":{"jump_code":"","length":54,"start":548}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":37,"lineno":37,"src":{"jump_code":"","length":7,"start":635}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":37,"lineno":37,"src":{"jump_code":"","length":3,"start":630}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":37,"lineno":37,"src":{"jump_code":"","length":12,"start":630}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":7,"end_col_offset":15,"end_lineno":38,"lineno":38,"src":{"jump_code":"","length":8,"start":650}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":5,"end_lineno":38,"lineno":38,"src":{"jump_code":"","length":1,"start":647}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":38,"lineno":38,"src":{"jump_code":"","length":11,"start":647}}],"classification":0,"col_offset":0,"end_col_offset":15,"end_lineno":38,"lineno":36,"name":"NestedStruct2","src":{"jump_code":"","length":54,"start":604}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":41,"lineno":41,"src":{"jump_code":"","length":7,"start":687}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":41,"lineno":41,"src":{"jump_code":"","length":3,"start":682}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":41,"lineno":41,"src":{"jump_code":"","length":12,"start":682}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":1,"start":713}}],"classification":0,"col_offset":9,"end_col_offset":20,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":11,"start":704}},{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":17,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":8,"start":704}}],"classification":0,"col_offset":9,"end_col_offset":20,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":11,"start":704}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":3,"start":699}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":42,"lineno":42,"src":{"jump_code":"","length":16,"start":699}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":43,"lineno":43,"src":{"jump_code":"","length":7,"start":725}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":43,"lineno":43,"src":{"jump_code":"","length":3,"start":720}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":43,"lineno":43,"src":{"jump_code":"","length":12,"start":720}}],"classification":0,"col_offset":0,"end_col_offset":16,"end_lineno":43,"lineno":40,"name":"WithArray","src":{"jump_code":"","length":72,"start":660}},{"ast_type":"StructDef","children":[{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":46,"lineno":46,"src":{"jump_code":"","length":7,"start":761}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":46,"lineno":46,"src":{"jump_code":"","length":3,"start":756}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":46,"lineno":46,"src":{"jump_code":"","length":12,"start":756}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":47,"lineno":47,"src":{"jump_code":"","length":7,"start":778}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":47,"lineno":47,"src":{"jump_code":"","length":3,"start":773}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":47,"lineno":47,"src":{"jump_code":"","length":12,"start":773}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":18,"end_lineno":48,"lineno":48,"src":{"jump_code":"","length":7,"start":797}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":9,"end_lineno":48,"lineno":48,"src":{"jump_code":"","length":5,"start":790}}],"classification":0,"col_offset":4,"end_col_offset":18,"end_lineno":48,"lineno":48,"src":{"jump_code":"","length":14,"start":790}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":10,"end_col_offset":17,"end_lineno":49,"lineno":49,"src":{"jump_code":"","length":7,"start":815}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":49,"lineno":49,"src":{"jump_code":"","length":4,"start":809}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":49,"lineno":49,"src":{"jump_code":"","length":13,"start":809}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":10,"end_col_offset":17,"end_lineno":50,"lineno":50,"src":{"jump_code":"","length":7,"start":833}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":50,"lineno":50,"src":{"jump_code":"","length":4,"start":827}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":50,"lineno":50,"src":{"jump_code":"","length":13,"start":827}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":16,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":7,"start":850}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":3,"start":845}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":51,"lineno":51,"src":{"jump_code":"","length":12,"start":845}}],"classification":0,"col_offset":0,"end_col_offset":16,"end_lineno":51,"lineno":45,"name":"IntStruct","src":{"jump_code":"","length":123,"start":734}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":14,"end_col_offset":21,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":7,"start":873}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":5,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":5,"start":859}}],"classification":0,"col_offset":0,"end_col_offset":22,"end_lineno":53,"lineno":53,"src":{"jump_code":"","length":22,"start":859}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":54,"lineno":54,"src":{"jump_code":"","length":7,"start":899}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":54,"lineno":54,"src":{"jump_code":"","length":8,"start":882}}],"classification":0,"col_offset":0,"end_col_offset":25,"end_lineno":54,"lineno":54,"src":{"jump_code":"","length":25,"start":882}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":26,"end_lineno":55,"lineno":55,"src":{"jump_code":"","length":7,"start":927}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":10,"end_lineno":55,"lineno":55,"src":{"jump_code":"","length":10,"start":908}}],"classification":0,"col_offset":0,"end_col_offset":27,"end_lineno":55,"lineno":55,"src":{"jump_code":"","length":27,"start":908}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":26,"end_lineno":56,"lineno":56,"src":{"jump_code":"","length":7,"start":955}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":10,"end_lineno":56,"lineno":56,"src":{"jump_code":"","length":10,"start":936}}],"classification":0,"col_offset":0,"end_col_offset":27,"end_lineno":56,"lineno":56,"src":{"jump_code":"","length":27,"start":936}},{"ast_type":"VariableDecl","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":32,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":7,"start":989}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":41,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":7,"start":998}}],"classification":0,"col_offset":25,"end_col_offset":41,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":16,"start":989}}],"classification":0,"col_offset":17,"end_col_offset":42,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":25,"start":981}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":7,"start":981}}],"classification":0,"col_offset":17,"end_col_offset":42,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":25,"start":981}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":8,"start":964}}],"classification":0,"col_offset":0,"end_col_offset":43,"end_lineno":57,"lineno":57,"src":{"jump_code":"","length":43,"start":964}},{"ast_type":"VariableDecl","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":41,"end_col_offset":42,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":1,"start":1049}}],"classification":0,"col_offset":17,"end_col_offset":43,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":26,"start":1025}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":33,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":7,"start":1034}},{"ast_type":"Int","children":[],"classification":0,"col_offset":35,"end_col_offset":39,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":4,"start":1043}}],"classification":0,"col_offset":26,"end_col_offset":39,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":13,"start":1034}}],"classification":0,"col_offset":17,"end_col_offset":40,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":23,"start":1025}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":25,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":8,"start":1025}}],"classification":0,"col_offset":17,"end_col_offset":40,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":23,"start":1025}}],"classification":0,"col_offset":17,"end_col_offset":43,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":26,"start":1025}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":8,"start":1008}}],"classification":0,"col_offset":0,"end_col_offset":44,"end_lineno":58,"lineno":58,"src":{"jump_code":"","length":44,"start":1008}},{"ast_type":"VariableDecl","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":62,"end_col_offset":63,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":1,"start":1115}}],"classification":0,"col_offset":19,"end_col_offset":64,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":45,"start":1072}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":52,"end_col_offset":53,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":1,"start":1105}}],"classification":0,"col_offset":28,"end_col_offset":54,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":26,"start":1081}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":44,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":7,"start":1090}},{"ast_type":"Int","children":[],"classification":0,"col_offset":46,"end_col_offset":50,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":4,"start":1099}}],"classification":0,"col_offset":37,"end_col_offset":50,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":13,"start":1090}}],"classification":0,"col_offset":28,"end_col_offset":51,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":23,"start":1081}},{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":8,"start":1081}}],"classification":0,"col_offset":28,"end_col_offset":51,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":23,"start":1081}}],"classification":0,"col_offset":28,"end_col_offset":54,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":26,"start":1081}},{"ast_type":"Int","children":[],"classification":0,"col_offset":56,"end_col_offset":60,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":4,"start":1109}}],"classification":0,"col_offset":28,"end_col_offset":60,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":32,"start":1081}}],"classification":0,"col_offset":19,"end_col_offset":61,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":42,"start":1072}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":8,"start":1072}}],"classification":0,"col_offset":19,"end_col_offset":61,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":42,"start":1072}}],"classification":0,"col_offset":19,"end_col_offset":64,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":45,"start":1072}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":10,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":10,"start":1053}}],"classification":0,"col_offset":0,"end_col_offset":65,"end_lineno":59,"lineno":59,"src":{"jump_code":"","length":65,"start":1053}},{"ast_type":"VariableDecl","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":26,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":7,"start":1139}},{"ast_type":"Name","children":[],"classification":1,"col_offset":0,"end_col_offset":7,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":7,"start":1120}},{"ast_type":"Int","children":[],"classification":0,"col_offset":30,"end_col_offset":31,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":1,"start":1150}}],"classification":0,"col_offset":0,"end_col_offset":31,"end_lineno":61,"lineno":61,"src":{"jump_code":"","length":31,"start":1120}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":25,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":7,"start":1181}}],"classification":0,"col_offset":13,"end_col_offset":25,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":12,"start":1176}}],"classification":1,"col_offset":13,"end_col_offset":25,"end_lineno":64,"lineno":64,"src":{"jump_code":"","length":12,"start":1176}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":4,"start":1195}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":13,"start":1195}},{"ast_type":"Name","children":[],"classification":1,"col_offset":20,"end_col_offset":23,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":3,"start":1211}}],"classification":0,"col_offset":4,"end_col_offset":23,"end_lineno":65,"lineno":65,"src":{"jump_code":"","length":19,"start":1195}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":4,"start":1219}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":10,"start":1219}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":20,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":3,"start":1232}}],"classification":0,"col_offset":17,"end_col_offset":27,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":10,"start":1232}}],"classification":0,"col_offset":4,"end_col_offset":27,"end_lineno":66,"lineno":66,"src":{"jump_code":"","length":23,"start":1219}},{"ast_type":"Assign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":67,"lineno":67,"src":{"jump_code":"","length":1,"start":1261}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":67,"lineno":67,"src":{"jump_code":"","length":16,"start":1247}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":67,"lineno":67,"src":{"jump_code":"","length":4,"start":1247}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":67,"lineno":67,"src":{"jump_code":"","length":13,"start":1247}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":67,"lineno":67,"src":{"jump_code":"","length":16,"start":1247}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":67,"lineno":67,"src":{"jump_code":"","length":1,"start":1267}}],"classification":0,"col_offset":23,"end_col_offset":26,"end_lineno":67,"lineno":67,"src":{"jump_code":"","length":3,"start":1266}}],"classification":0,"col_offset":4,"end_col_offset":26,"end_lineno":67,"lineno":67,"src":{"jump_code":"","length":22,"start":1247}},{"ast_type":"Assign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":1,"start":1288}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":16,"start":1274}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":4,"start":1274}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":13,"start":1274}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":16,"start":1274}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":1,"start":1294}},{"ast_type":"Int","children":[],"classification":0,"col_offset":27,"end_col_offset":28,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":1,"start":1297}}],"classification":0,"col_offset":23,"end_col_offset":29,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":6,"start":1293}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":68,"lineno":68,"src":{"jump_code":"","length":25,"start":1274}},{"ast_type":"Assign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":1,"start":1318}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":16,"start":1304}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":4,"start":1304}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":13,"start":1304}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":16,"start":1304}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":1,"start":1324}},{"ast_type":"Int","children":[],"classification":0,"col_offset":27,"end_col_offset":28,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":1,"start":1327}},{"ast_type":"Int","children":[],"classification":0,"col_offset":30,"end_col_offset":31,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":1,"start":1330}}],"classification":0,"col_offset":23,"end_col_offset":32,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":9,"start":1323}}],"classification":0,"col_offset":4,"end_col_offset":32,"end_lineno":69,"lineno":69,"src":{"jump_code":"","length":28,"start":1304}},{"ast_type":"Expr","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":34,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":4,"start":1363}}],"classification":0,"col_offset":30,"end_col_offset":43,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":13,"start":1363}},{"ast_type":"Attribute","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":21,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":1,"start":1353}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":18,"start":1337}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":4,"start":1337}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":15,"start":1337}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":18,"start":1337}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":25,"start":1337}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":40,"start":1337}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":70,"lineno":70,"src":{"jump_code":"","length":40,"start":1337}},{"ast_type":"Expr","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":34,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":4,"start":1408}}],"classification":0,"col_offset":30,"end_col_offset":43,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":13,"start":1408}},{"ast_type":"Attribute","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":21,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":1,"start":1398}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":18,"start":1382}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":4,"start":1382}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":15,"start":1382}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":18,"start":1382}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":25,"start":1382}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":40,"start":1382}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":71,"lineno":71,"src":{"jump_code":"","length":40,"start":1382}},{"ast_type":"Expr","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":34,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":4,"start":1453}}],"classification":0,"col_offset":30,"end_col_offset":43,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":13,"start":1453}},{"ast_type":"Attribute","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":20,"end_col_offset":21,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":1,"start":1443}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":18,"start":1427}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":4,"start":1427}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":15,"start":1427}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":18,"start":1427}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":25,"start":1427}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":40,"start":1427}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":72,"lineno":72,"src":{"jump_code":"","length":40,"start":1427}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":63,"lineno":63,"src":{"jump_code":"","length":8,"start":1154}}],"classification":1,"col_offset":0,"end_col_offset":44,"end_lineno":72,"lineno":64,"name":"__init__","src":{"jump_code":"","length":304,"start":1163}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":75,"lineno":75,"src":{"jump_code":"","length":3,"start":1479}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":22,"end_col_offset":22,"end_lineno":76,"lineno":76,"src":{"jump_code":"","start":1518}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":19,"end_lineno":76,"lineno":76,"src":{"jump_code":"","length":11,"start":1504}}],"classification":0,"col_offset":8,"end_col_offset":22,"end_lineno":76,"lineno":76,"src":{"jump_code":"","length":14,"start":1504}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":76,"lineno":76,"src":{"jump_code":"","length":18,"start":1500}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":22,"end_col_offset":22,"end_lineno":77,"lineno":77,"src":{"jump_code":"","start":1541}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":19,"end_lineno":77,"lineno":77,"src":{"jump_code":"","length":11,"start":1527}}],"classification":0,"col_offset":8,"end_col_offset":22,"end_lineno":77,"lineno":77,"src":{"jump_code":"","length":14,"start":1527}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":77,"lineno":77,"src":{"jump_code":"","length":18,"start":1523}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":74,"lineno":74,"src":{"jump_code":"","length":8,"start":1470}}],"classification":1,"col_offset":0,"end_col_offset":22,"end_lineno":77,"lineno":75,"name":"fooAndBar","src":{"jump_code":"","length":62,"start":1479}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":26,"end_lineno":80,"lineno":80,"src":{"jump_code":"","length":7,"start":1572}}],"classification":0,"col_offset":14,"end_col_offset":26,"end_lineno":80,"lineno":80,"src":{"jump_code":"","length":12,"start":1567}}],"classification":1,"col_offset":14,"end_col_offset":26,"end_lineno":80,"lineno":80,"src":{"jump_code":"","length":12,"start":1567}},{"ast_type":"Assert","children":[{"ast_type":"Str","children":[],"classification":0,"col_offset":37,"end_col_offset":50,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":13,"start":1619}},{"ast_type":"Compare","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":14,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":3,"start":1593}}],"classification":0,"col_offset":11,"end_col_offset":21,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":10,"start":1593}},{"ast_type":"Eq","children":[],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":24,"start":1593}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":29,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":4,"start":1607}}],"classification":0,"col_offset":25,"end_col_offset":35,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":10,"start":1607}}],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":24,"start":1593}}],"classification":0,"col_offset":4,"end_col_offset":50,"end_lineno":81,"lineno":81,"src":{"jump_code":"","length":46,"start":1586}},{"ast_type":"Assert","children":[{"ast_type":"Compare","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":14,"end_lineno":82,"lineno":82,"src":{"jump_code":"","length":3,"start":1644}},{"ast_type":"NotEq","children":[],"classification":0,"col_offset":11,"end_col_offset":19,"end_lineno":82,"lineno":82,"src":{"jump_code":"","length":8,"start":1644}},{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":82,"lineno":82,"src":{"jump_code":"","length":1,"start":1651}}],"classification":0,"col_offset":11,"end_col_offset":19,"end_lineno":82,"lineno":82,"src":{"jump_code":"","length":8,"start":1644}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":82,"lineno":82,"src":{"jump_code":"","length":15,"start":1637}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":4,"start":1657}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":15,"start":1657}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":22,"end_col_offset":26,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":4,"start":1675}}],"classification":0,"col_offset":22,"end_col_offset":35,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":13,"start":1675}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":83,"lineno":83,"src":{"jump_code":"","length":31,"start":1657}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":84,"lineno":84,"src":{"jump_code":"","length":4,"start":1693}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":84,"lineno":84,"src":{"jump_code":"","length":13,"start":1693}},{"ast_type":"Name","children":[],"classification":1,"col_offset":20,"end_col_offset":23,"end_lineno":84,"lineno":84,"src":{"jump_code":"","length":3,"start":1709}}],"classification":0,"col_offset":4,"end_col_offset":23,"end_lineno":84,"lineno":84,"src":{"jump_code":"","length":19,"start":1693}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":21,"end_col_offset":26,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":5,"start":1734}}],"classification":0,"col_offset":21,"end_col_offset":35,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":14,"start":1734}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":41,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":4,"start":1750}}],"classification":0,"col_offset":37,"end_col_offset":52,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":15,"start":1750}},{"ast_type":"Str","children":[],"classification":0,"col_offset":54,"end_col_offset":63,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":9,"start":1767}},{"ast_type":"Name","children":[],"classification":1,"col_offset":65,"end_col_offset":68,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":3,"start":1778}},{"ast_type":"Str","children":[],"classification":0,"col_offset":70,"end_col_offset":79,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":9,"start":1783}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":20,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":12,"start":1721}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":72,"start":1721}}],"classification":0,"col_offset":4,"end_col_offset":80,"end_lineno":85,"lineno":85,"src":{"jump_code":"","length":76,"start":1717}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":79,"lineno":79,"src":{"jump_code":"","length":8,"start":1544}}],"classification":1,"col_offset":0,"end_col_offset":80,"end_lineno":85,"lineno":80,"name":"setNumber","src":{"jump_code":"","length":240,"start":1553}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":32,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":7,"start":1830}}],"classification":0,"col_offset":15,"end_col_offset":32,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":17,"start":1820}}],"classification":1,"col_offset":15,"end_col_offset":32,"end_lineno":88,"lineno":88,"src":{"jump_code":"","length":17,"start":1820}},{"ast_type":"Assign","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":89,"lineno":89,"src":{"jump_code":"","length":4,"start":1844}}],"classification":0,"col_offset":4,"end_col_offset":19,"end_lineno":89,"lineno":89,"src":{"jump_code":"","length":15,"start":1844}},{"ast_type":"Name","children":[],"classification":1,"col_offset":22,"end_col_offset":30,"end_lineno":89,"lineno":89,"src":{"jump_code":"","length":8,"start":1862}}],"classification":0,"col_offset":4,"end_col_offset":30,"end_lineno":89,"lineno":89,"src":{"jump_code":"","length":26,"start":1844}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":22,"end_col_offset":30,"end_lineno":90,"lineno":90,"src":{"jump_code":"","length":8,"start":1893}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":90,"lineno":90,"src":{"jump_code":"","length":13,"start":1879}}],"classification":0,"col_offset":8,"end_col_offset":31,"end_lineno":90,"lineno":90,"src":{"jump_code":"","length":23,"start":1879}}],"classification":0,"col_offset":4,"end_col_offset":31,"end_lineno":90,"lineno":90,"src":{"jump_code":"","length":27,"start":1875}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":87,"lineno":87,"src":{"jump_code":"","length":8,"start":1796}}],"classification":1,"col_offset":0,"end_col_offset":31,"end_lineno":90,"lineno":88,"name":"setAddress","src":{"jump_code":"","length":97,"start":1805}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":32,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":7,"start":1939}}],"classification":0,"col_offset":15,"end_col_offset":32,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":17,"start":1929}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":46,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":7,"start":1953}}],"classification":0,"col_offset":34,"end_col_offset":46,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":12,"start":1948}}],"classification":1,"col_offset":15,"end_col_offset":46,"end_lineno":93,"lineno":93,"src":{"jump_code":"","length":31,"start":1929}},{"ast_type":"AugAssign","children":[{"ast_type":"Add","children":[],"classification":0,"col_offset":4,"end_col_offset":34,"end_lineno":94,"lineno":94,"src":{"jump_code":"","length":30,"start":1967}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":26,"end_lineno":94,"lineno":94,"src":{"jump_code":"","length":8,"start":1981}}],"classification":0,"col_offset":4,"end_col_offset":27,"end_lineno":94,"lineno":94,"src":{"jump_code":"","length":23,"start":1967}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":94,"lineno":94,"src":{"jump_code":"","length":4,"start":1967}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":94,"lineno":94,"src":{"jump_code":"","length":13,"start":1967}}],"classification":0,"col_offset":4,"end_col_offset":27,"end_lineno":94,"lineno":94,"src":{"jump_code":"","length":23,"start":1967}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":34,"end_lineno":94,"lineno":94,"src":{"jump_code":"","length":3,"start":1994}}],"classification":0,"col_offset":4,"end_col_offset":34,"end_lineno":94,"lineno":94,"src":{"jump_code":"","length":30,"start":1967}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":92,"lineno":92,"src":{"jump_code":"","length":8,"start":1905}}],"classification":1,"col_offset":0,"end_col_offset":34,"end_lineno":94,"lineno":93,"name":"setBalance","src":{"jump_code":"","length":83,"start":1914}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":3,"start":2015}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":21,"end_col_offset":22,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":1,"start":2065}},{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":37,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":1,"start":2080}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":27,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":3,"start":2068}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":10,"start":2068}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":44,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":5,"start":2083}}],"classification":0,"col_offset":39,"end_col_offset":53,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":14,"start":2083}}],"classification":0,"col_offset":20,"end_col_offset":54,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":34,"start":2064}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":19,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":8,"start":2055}}],"classification":0,"col_offset":11,"end_col_offset":55,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":44,"start":2055}}],"classification":0,"col_offset":4,"end_col_offset":55,"end_lineno":99,"lineno":99,"src":{"jump_code":"","length":51,"start":2048}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":96,"lineno":96,"src":{"jump_code":"","length":4,"start":2000}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":97,"lineno":97,"src":{"jump_code":"","length":8,"start":2006}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":98,"lineno":98,"src":{"jump_code":"","length":8,"start":2034}}],"classification":1,"col_offset":0,"end_col_offset":55,"end_lineno":99,"lineno":98,"name":"getStruct","src":{"jump_code":"","length":84,"start":2015}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":3,"start":2117}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":27,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":1,"start":2184}},{"ast_type":"Name","children":[],"classification":1,"col_offset":75,"end_col_offset":78,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":3,"start":2233}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":40,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":1,"start":2197}},{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":55,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":1,"start":2212}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":42,"end_col_offset":45,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":3,"start":2200}}],"classification":0,"col_offset":42,"end_col_offset":52,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":10,"start":2200}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":57,"end_col_offset":62,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":5,"start":2215}}],"classification":0,"col_offset":57,"end_col_offset":71,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":14,"start":2215}}],"classification":0,"col_offset":38,"end_col_offset":72,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":34,"start":2196}},{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":37,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":8,"start":2187}}],"classification":0,"col_offset":29,"end_col_offset":73,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":44,"start":2187}},{"ast_type":"Int","children":[],"classification":0,"col_offset":80,"end_col_offset":81,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":1,"start":2238}}],"classification":0,"col_offset":25,"end_col_offset":82,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":57,"start":2183}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":24,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":13,"start":2169}}],"classification":0,"col_offset":11,"end_col_offset":83,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":72,"start":2169}}],"classification":0,"col_offset":4,"end_col_offset":83,"end_lineno":104,"lineno":104,"src":{"jump_code":"","length":79,"start":2162}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":101,"lineno":101,"src":{"jump_code":"","length":4,"start":2102}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":102,"lineno":102,"src":{"jump_code":"","length":8,"start":2108}},{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":39,"end_lineno":103,"lineno":103,"src":{"jump_code":"","length":13,"start":2143}}],"classification":1,"col_offset":0,"end_col_offset":83,"end_lineno":104,"lineno":103,"name":"getNestedStruct1","src":{"jump_code":"","length":124,"start":2117}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":3,"start":2259}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":29,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":3,"start":2326}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":35,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":1,"start":2334}},{"ast_type":"Int","children":[],"classification":0,"col_offset":31,"end_col_offset":32,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":1,"start":2331}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":47,"end_col_offset":48,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":1,"start":2347}},{"ast_type":"Name","children":[],"classification":1,"col_offset":62,"end_col_offset":63,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":1,"start":2362}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":50,"end_col_offset":53,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":3,"start":2350}}],"classification":0,"col_offset":50,"end_col_offset":60,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":10,"start":2350}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":65,"end_col_offset":70,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":5,"start":2365}}],"classification":0,"col_offset":65,"end_col_offset":79,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":14,"start":2365}}],"classification":0,"col_offset":46,"end_col_offset":80,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":34,"start":2346}},{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":45,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":8,"start":2337}}],"classification":0,"col_offset":37,"end_col_offset":81,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":44,"start":2337}}],"classification":0,"col_offset":25,"end_col_offset":82,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":57,"start":2325}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":24,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":13,"start":2311}}],"classification":0,"col_offset":11,"end_col_offset":83,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":72,"start":2311}}],"classification":0,"col_offset":4,"end_col_offset":83,"end_lineno":109,"lineno":109,"src":{"jump_code":"","length":79,"start":2304}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":106,"lineno":106,"src":{"jump_code":"","length":4,"start":2244}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":107,"lineno":107,"src":{"jump_code":"","length":8,"start":2250}},{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":39,"end_lineno":108,"lineno":108,"src":{"jump_code":"","length":13,"start":2285}}],"classification":1,"col_offset":0,"end_col_offset":83,"end_lineno":109,"lineno":108,"name":"getNestedStruct2","src":{"jump_code":"","length":124,"start":2259}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":3,"start":2401}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":28,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":1,"start":2489}},{"ast_type":"Name","children":[],"classification":1,"col_offset":76,"end_col_offset":79,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":3,"start":2538}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":41,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":1,"start":2502}},{"ast_type":"Name","children":[],"classification":1,"col_offset":55,"end_col_offset":56,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":1,"start":2517}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":43,"end_col_offset":46,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":3,"start":2505}}],"classification":0,"col_offset":43,"end_col_offset":53,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":10,"start":2505}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":58,"end_col_offset":63,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":5,"start":2520}}],"classification":0,"col_offset":58,"end_col_offset":72,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":14,"start":2520}}],"classification":0,"col_offset":39,"end_col_offset":73,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":34,"start":2501}},{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":38,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":8,"start":2492}}],"classification":0,"col_offset":30,"end_col_offset":74,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":44,"start":2492}},{"ast_type":"Int","children":[],"classification":0,"col_offset":81,"end_col_offset":82,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":1,"start":2543}}],"classification":0,"col_offset":26,"end_col_offset":83,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":57,"start":2488}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":25,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":13,"start":2474}}],"classification":0,"col_offset":12,"end_col_offset":84,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":72,"start":2474}},{"ast_type":"Int","children":[],"classification":0,"col_offset":86,"end_col_offset":87,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":1,"start":2548}}],"classification":0,"col_offset":11,"end_col_offset":88,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":77,"start":2473}}],"classification":0,"col_offset":4,"end_col_offset":88,"end_lineno":114,"lineno":114,"src":{"jump_code":"","length":84,"start":2466}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":111,"lineno":111,"src":{"jump_code":"","length":4,"start":2386}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":112,"lineno":112,"src":{"jump_code":"","length":8,"start":2392}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":49,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":13,"start":2437}},{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":58,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":7,"start":2452}}],"classification":0,"col_offset":35,"end_col_offset":59,"end_lineno":113,"lineno":113,"src":{"jump_code":"","length":24,"start":2436}}],"classification":1,"col_offset":0,"end_col_offset":88,"end_lineno":114,"lineno":113,"name":"getNestedStructWithTuple1","src":{"jump_code":"","length":149,"start":2401}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":3,"start":2568}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":13,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":1,"start":2641}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":33,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":3,"start":2659}},{"ast_type":"Name","children":[],"classification":1,"col_offset":38,"end_col_offset":39,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":1,"start":2667}},{"ast_type":"Int","children":[],"classification":0,"col_offset":35,"end_col_offset":36,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":1,"start":2664}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":52,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":1,"start":2680}},{"ast_type":"Name","children":[],"classification":1,"col_offset":66,"end_col_offset":67,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":1,"start":2695}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":57,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":3,"start":2683}}],"classification":0,"col_offset":54,"end_col_offset":64,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":10,"start":2683}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":69,"end_col_offset":74,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":5,"start":2698}}],"classification":0,"col_offset":69,"end_col_offset":83,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":14,"start":2698}}],"classification":0,"col_offset":50,"end_col_offset":84,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":34,"start":2679}},{"ast_type":"Name","children":[],"classification":1,"col_offset":41,"end_col_offset":49,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":8,"start":2670}}],"classification":0,"col_offset":41,"end_col_offset":85,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":44,"start":2670}}],"classification":0,"col_offset":29,"end_col_offset":86,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":57,"start":2658}},{"ast_type":"Name","children":[],"classification":1,"col_offset":15,"end_col_offset":28,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":13,"start":2644}}],"classification":0,"col_offset":15,"end_col_offset":87,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":72,"start":2644}}],"classification":0,"col_offset":11,"end_col_offset":88,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":77,"start":2640}}],"classification":0,"col_offset":4,"end_col_offset":88,"end_lineno":119,"lineno":119,"src":{"jump_code":"","length":84,"start":2633}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":116,"lineno":116,"src":{"jump_code":"","length":4,"start":2553}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":117,"lineno":117,"src":{"jump_code":"","length":8,"start":2559}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":43,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":7,"start":2604}},{"ast_type":"Name","children":[],"classification":1,"col_offset":45,"end_col_offset":58,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":13,"start":2613}}],"classification":0,"col_offset":35,"end_col_offset":59,"end_lineno":118,"lineno":118,"src":{"jump_code":"","length":24,"start":2603}}],"classification":1,"col_offset":0,"end_col_offset":88,"end_lineno":119,"lineno":118,"name":"getNestedStructWithTuple2","src":{"jump_code":"","length":149,"start":2568}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":3,"start":2735}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":8,"start":2820}},{"ast_type":"Int","children":[],"classification":0,"col_offset":36,"end_col_offset":38,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":2,"start":2830}}],"classification":0,"col_offset":26,"end_col_offset":38,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":12,"start":2820}}],"classification":0,"col_offset":17,"end_col_offset":39,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":22,"start":2811}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":25,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":8,"start":2811}}],"classification":0,"col_offset":17,"end_col_offset":39,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":22,"start":2811}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":15,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":11,"start":2798}},{"ast_type":"List","children":[],"classification":0,"col_offset":42,"end_col_offset":44,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":2,"start":2836}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":124,"lineno":124,"src":{"jump_code":"","length":40,"start":2798}},{"ast_type":"Return","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":22,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":11,"start":2850}}],"classification":0,"col_offset":4,"end_col_offset":22,"end_lineno":125,"lineno":125,"src":{"jump_code":"","length":18,"start":2843}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":121,"lineno":121,"src":{"jump_code":"","length":4,"start":2720}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":122,"lineno":122,"src":{"jump_code":"","length":8,"start":2726}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":52,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":8,"start":2779}},{"ast_type":"Int","children":[],"classification":0,"col_offset":54,"end_col_offset":56,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":2,"start":2789}}],"classification":0,"col_offset":44,"end_col_offset":56,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":12,"start":2779}}],"classification":0,"col_offset":35,"end_col_offset":57,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":22,"start":2770}},{"ast_type":"Name","children":[],"classification":1,"col_offset":35,"end_col_offset":43,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":8,"start":2770}}],"classification":0,"col_offset":35,"end_col_offset":57,"end_lineno":123,"lineno":123,"src":{"jump_code":"","length":22,"start":2770}}],"classification":1,"col_offset":0,"end_col_offset":22,"end_lineno":125,"lineno":123,"name":"getEmptyDynArrayOfStructs","src":{"jump_code":"","length":126,"start":2735}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":3,"start":2879}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":8,"start":2997}},{"ast_type":"Int","children":[],"classification":0,"col_offset":38,"end_col_offset":40,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":2,"start":3007}}],"classification":0,"col_offset":28,"end_col_offset":40,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":12,"start":2997}}],"classification":0,"col_offset":19,"end_col_offset":41,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":22,"start":2988}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":8,"start":2988}}],"classification":0,"col_offset":19,"end_col_offset":41,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":22,"start":2988}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":17,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":13,"start":2973}},{"ast_type":"List","children":[],"classification":0,"col_offset":44,"end_col_offset":46,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":2,"start":3013}}],"classification":0,"col_offset":4,"end_col_offset":46,"end_lineno":130,"lineno":130,"src":{"jump_code":"","length":42,"start":2973}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":8,"start":3044}},{"ast_type":"Int","children":[],"classification":0,"col_offset":38,"end_col_offset":40,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":2,"start":3054}}],"classification":0,"col_offset":28,"end_col_offset":40,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":12,"start":3044}}],"classification":0,"col_offset":19,"end_col_offset":41,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":22,"start":3035}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":8,"start":3035}}],"classification":0,"col_offset":19,"end_col_offset":41,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":22,"start":3035}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":17,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":13,"start":3020}},{"ast_type":"List","children":[],"classification":0,"col_offset":44,"end_col_offset":46,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":2,"start":3060}}],"classification":0,"col_offset":4,"end_col_offset":46,"end_lineno":131,"lineno":131,"src":{"jump_code":"","length":42,"start":3020}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":25,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":13,"start":3075}},{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":40,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":13,"start":3090}}],"classification":0,"col_offset":11,"end_col_offset":41,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":30,"start":3074}}],"classification":0,"col_offset":4,"end_col_offset":41,"end_lineno":132,"lineno":132,"src":{"jump_code":"","length":37,"start":3067}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":127,"lineno":127,"src":{"jump_code":"","length":4,"start":2864}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":128,"lineno":128,"src":{"jump_code":"","length":8,"start":2870}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":50,"end_col_offset":58,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":8,"start":2929}},{"ast_type":"Int","children":[],"classification":0,"col_offset":60,"end_col_offset":62,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":2,"start":2939}}],"classification":0,"col_offset":50,"end_col_offset":62,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":12,"start":2929}}],"classification":0,"col_offset":41,"end_col_offset":63,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":22,"start":2920}},{"ast_type":"Name","children":[],"classification":1,"col_offset":41,"end_col_offset":49,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":8,"start":2920}}],"classification":0,"col_offset":41,"end_col_offset":63,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":22,"start":2920}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":74,"end_col_offset":82,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":8,"start":2953}},{"ast_type":"Int","children":[],"classification":0,"col_offset":84,"end_col_offset":86,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":2,"start":2963}}],"classification":0,"col_offset":74,"end_col_offset":86,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":12,"start":2953}}],"classification":0,"col_offset":65,"end_col_offset":87,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":22,"start":2944}},{"ast_type":"Name","children":[],"classification":1,"col_offset":65,"end_col_offset":73,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":8,"start":2944}}],"classification":0,"col_offset":65,"end_col_offset":87,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":22,"start":2944}}],"classification":0,"col_offset":40,"end_col_offset":88,"end_lineno":129,"lineno":129,"src":{"jump_code":"","length":48,"start":2919}}],"classification":1,"col_offset":0,"end_col_offset":41,"end_lineno":132,"lineno":129,"name":"getEmptyTupleOfDynArrayStructs","src":{"jump_code":"","length":225,"start":2879}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":3,"start":3122}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":28,"end_col_offset":29,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":1,"start":3247}}],"classification":0,"col_offset":19,"end_col_offset":30,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":11,"start":3238}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":8,"start":3238}}],"classification":0,"col_offset":19,"end_col_offset":30,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":11,"start":3238}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":17,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":13,"start":3223}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":48,"end_col_offset":49,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":1,"start":3267}}],"classification":0,"col_offset":39,"end_col_offset":50,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":11,"start":3258}},{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":47,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":8,"start":3258}}],"classification":0,"col_offset":39,"end_col_offset":50,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":11,"start":3258}},{"ast_type":"Name","children":[],"classification":1,"col_offset":33,"end_col_offset":38,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":5,"start":3252}}],"classification":0,"col_offset":33,"end_col_offset":51,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":18,"start":3252}}],"classification":0,"col_offset":4,"end_col_offset":51,"end_lineno":137,"lineno":137,"src":{"jump_code":"","length":47,"start":3223}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":8,"start":3299}},{"ast_type":"Int","children":[],"classification":0,"col_offset":38,"end_col_offset":39,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":1,"start":3309}}],"classification":0,"col_offset":28,"end_col_offset":39,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":11,"start":3299}}],"classification":0,"col_offset":19,"end_col_offset":40,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":21,"start":3290}},{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":27,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":8,"start":3290}}],"classification":0,"col_offset":19,"end_col_offset":40,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":21,"start":3290}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":17,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":13,"start":3275}},{"ast_type":"List","children":[],"classification":0,"col_offset":43,"end_col_offset":45,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":2,"start":3314}}],"classification":0,"col_offset":4,"end_col_offset":45,"end_lineno":138,"lineno":138,"src":{"jump_code":"","length":41,"start":3275}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":25,"end_lineno":139,"lineno":139,"src":{"jump_code":"","length":13,"start":3329}},{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":40,"end_lineno":139,"lineno":139,"src":{"jump_code":"","length":13,"start":3344}}],"classification":0,"col_offset":11,"end_col_offset":41,"end_lineno":139,"lineno":139,"src":{"jump_code":"","length":30,"start":3328}}],"classification":0,"col_offset":4,"end_col_offset":41,"end_lineno":139,"lineno":139,"src":{"jump_code":"","length":37,"start":3321}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":134,"lineno":134,"src":{"jump_code":"","length":4,"start":3107}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":135,"lineno":135,"src":{"jump_code":"","length":8,"start":3113}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":69,"end_col_offset":70,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":1,"start":3191}}],"classification":0,"col_offset":60,"end_col_offset":71,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":11,"start":3182}},{"ast_type":"Name","children":[],"classification":1,"col_offset":60,"end_col_offset":68,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":8,"start":3182}}],"classification":0,"col_offset":60,"end_col_offset":71,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":11,"start":3182}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":82,"end_col_offset":90,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":8,"start":3204}},{"ast_type":"Int","children":[],"classification":0,"col_offset":92,"end_col_offset":93,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":1,"start":3214}}],"classification":0,"col_offset":82,"end_col_offset":93,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":11,"start":3204}}],"classification":0,"col_offset":73,"end_col_offset":94,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":21,"start":3195}},{"ast_type":"Name","children":[],"classification":1,"col_offset":73,"end_col_offset":81,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":8,"start":3195}}],"classification":0,"col_offset":73,"end_col_offset":94,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":21,"start":3195}}],"classification":0,"col_offset":59,"end_col_offset":95,"end_lineno":136,"lineno":136,"src":{"jump_code":"","length":36,"start":3181}}],"classification":1,"col_offset":0,"end_col_offset":41,"end_lineno":139,"lineno":136,"name":"getEmptyTupleOfArrayOfStructsAndDynArrayOfStructs","src":{"jump_code":"","length":236,"start":3122}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":3,"start":3376}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":30,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":7,"start":3467}}],"classification":0,"col_offset":13,"end_col_offset":31,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":18,"start":3457}},{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":22,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":9,"start":3457}}],"classification":0,"col_offset":13,"end_col_offset":31,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":18,"start":3457}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":10,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":6,"start":3448}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":50,"end_col_offset":57,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":7,"start":3494}}],"classification":0,"col_offset":40,"end_col_offset":58,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":18,"start":3484}},{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":49,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":9,"start":3484}}],"classification":0,"col_offset":40,"end_col_offset":58,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":18,"start":3484}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":39,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":5,"start":3478}}],"classification":0,"col_offset":34,"end_col_offset":59,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":25,"start":3478}}],"classification":0,"col_offset":4,"end_col_offset":59,"end_lineno":144,"lineno":144,"src":{"jump_code":"","length":55,"start":3448}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":11,"end_col_offset":12,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":1,"start":3515}},{"ast_type":"Name","children":[],"classification":1,"col_offset":14,"end_col_offset":20,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":6,"start":3518}}],"classification":0,"col_offset":11,"end_col_offset":20,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":9,"start":3515}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":145,"lineno":145,"src":{"jump_code":"","length":16,"start":3508}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":141,"lineno":141,"src":{"jump_code":"","length":4,"start":3361}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":142,"lineno":142,"src":{"jump_code":"","length":8,"start":3367}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":38,"end_col_offset":45,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":7,"start":3414}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":57,"end_col_offset":64,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":7,"start":3433}}],"classification":0,"col_offset":47,"end_col_offset":65,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":18,"start":3423}},{"ast_type":"Name","children":[],"classification":1,"col_offset":47,"end_col_offset":56,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":9,"start":3423}}],"classification":0,"col_offset":47,"end_col_offset":65,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":18,"start":3423}}],"classification":0,"col_offset":37,"end_col_offset":66,"end_lineno":143,"lineno":143,"src":{"jump_code":"","length":29,"start":3413}}],"classification":1,"col_offset":0,"end_col_offset":20,"end_lineno":145,"lineno":143,"name":"getTupleOfIntAndStructArray","src":{"jump_code":"","length":148,"start":3376}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":3,"start":3542}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":31,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":7,"start":3654}},{"ast_type":"Int","children":[],"classification":0,"col_offset":33,"end_col_offset":35,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":2,"start":3663}}],"classification":0,"col_offset":24,"end_col_offset":35,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":11,"start":3654}}],"classification":0,"col_offset":15,"end_col_offset":36,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":21,"start":3645}},{"ast_type":"Name","children":[],"classification":1,"col_offset":15,"end_col_offset":23,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":8,"start":3645}}],"classification":0,"col_offset":15,"end_col_offset":36,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":21,"start":3645}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":13,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":9,"start":3634}},{"ast_type":"List","children":[],"classification":0,"col_offset":39,"end_col_offset":41,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":2,"start":3669}}],"classification":0,"col_offset":4,"end_col_offset":41,"end_lineno":150,"lineno":150,"src":{"jump_code":"","length":37,"start":3634}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":8,"start":3698}},{"ast_type":"Int","children":[],"classification":0,"col_offset":36,"end_col_offset":38,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":2,"start":3708}}],"classification":0,"col_offset":26,"end_col_offset":38,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":12,"start":3698}}],"classification":0,"col_offset":17,"end_col_offset":39,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":22,"start":3689}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":25,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":8,"start":3689}}],"classification":0,"col_offset":17,"end_col_offset":39,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":22,"start":3689}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":15,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":11,"start":3676}},{"ast_type":"List","children":[],"classification":0,"col_offset":42,"end_col_offset":44,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":2,"start":3714}}],"classification":0,"col_offset":4,"end_col_offset":44,"end_lineno":151,"lineno":151,"src":{"jump_code":"","length":40,"start":3676}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":20,"end_lineno":152,"lineno":152,"src":{"jump_code":"","length":9,"start":3728}},{"ast_type":"Name","children":[],"classification":1,"col_offset":22,"end_col_offset":33,"end_lineno":152,"lineno":152,"src":{"jump_code":"","length":11,"start":3739}}],"classification":0,"col_offset":11,"end_col_offset":33,"end_lineno":152,"lineno":152,"src":{"jump_code":"","length":22,"start":3728}}],"classification":0,"col_offset":4,"end_col_offset":33,"end_lineno":152,"lineno":152,"src":{"jump_code":"","length":29,"start":3721}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":147,"lineno":147,"src":{"jump_code":"","length":4,"start":3527}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":148,"lineno":148,"src":{"jump_code":"","length":8,"start":3533}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":49,"end_col_offset":56,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":7,"start":3591}},{"ast_type":"Int","children":[],"classification":0,"col_offset":58,"end_col_offset":60,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":2,"start":3600}}],"classification":0,"col_offset":49,"end_col_offset":60,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":11,"start":3591}}],"classification":0,"col_offset":40,"end_col_offset":61,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":21,"start":3582}},{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":48,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":8,"start":3582}}],"classification":0,"col_offset":40,"end_col_offset":61,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":21,"start":3582}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":72,"end_col_offset":80,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":8,"start":3614}},{"ast_type":"Int","children":[],"classification":0,"col_offset":82,"end_col_offset":84,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":2,"start":3624}}],"classification":0,"col_offset":72,"end_col_offset":84,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":12,"start":3614}}],"classification":0,"col_offset":63,"end_col_offset":85,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":22,"start":3605}},{"ast_type":"Name","children":[],"classification":1,"col_offset":63,"end_col_offset":71,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":8,"start":3605}}],"classification":0,"col_offset":63,"end_col_offset":85,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":22,"start":3605}}],"classification":0,"col_offset":39,"end_col_offset":86,"end_lineno":149,"lineno":149,"src":{"jump_code":"","length":47,"start":3581}}],"classification":1,"col_offset":0,"end_col_offset":33,"end_lineno":152,"lineno":149,"name":"getEmptyTupleOfIntAndDynArray","src":{"jump_code":"","length":208,"start":3542}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":3,"start":3768}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":15,"end_lineno":159,"lineno":159,"src":{"jump_code":"","length":3,"start":3851}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":15,"end_lineno":160,"lineno":160,"src":{"jump_code":"","length":3,"start":3871}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":15,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":3,"start":4028}},{"ast_type":"Int","children":[],"classification":0,"col_offset":17,"end_col_offset":18,"end_lineno":159,"lineno":159,"src":{"jump_code":"","length":1,"start":3856}},{"ast_type":"List","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":27,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":1,"start":3904}},{"ast_type":"Name","children":[],"classification":1,"col_offset":41,"end_col_offset":42,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":1,"start":3919}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":32,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":3,"start":3907}}],"classification":0,"col_offset":29,"end_col_offset":39,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":10,"start":3907}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":49,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":5,"start":3922}}],"classification":0,"col_offset":44,"end_col_offset":58,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":14,"start":3922}}],"classification":0,"col_offset":25,"end_col_offset":59,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":34,"start":3903}},{"ast_type":"Name","children":[],"classification":1,"col_offset":16,"end_col_offset":24,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":8,"start":3894}}],"classification":0,"col_offset":16,"end_col_offset":60,"end_lineno":161,"lineno":161,"src":{"jump_code":"","length":44,"start":3894}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":27,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":1,"start":3966}},{"ast_type":"Name","children":[],"classification":1,"col_offset":41,"end_col_offset":42,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":1,"start":3981}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":32,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":3,"start":3969}}],"classification":0,"col_offset":29,"end_col_offset":39,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":10,"start":3969}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":49,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":5,"start":3984}}],"classification":0,"col_offset":44,"end_col_offset":58,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":14,"start":3984}}],"classification":0,"col_offset":25,"end_col_offset":59,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":34,"start":3965}},{"ast_type":"Name","children":[],"classification":1,"col_offset":16,"end_col_offset":24,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":8,"start":3956}}],"classification":0,"col_offset":16,"end_col_offset":60,"end_lineno":162,"lineno":162,"src":{"jump_code":"","length":44,"start":3956}}],"classification":0,"col_offset":17,"end_col_offset":13,"end_lineno":163,"lineno":160,"src":{"jump_code":"","length":138,"start":3876}},{"ast_type":"Int","children":[],"classification":0,"col_offset":17,"end_col_offset":18,"end_lineno":164,"lineno":164,"src":{"jump_code":"","length":1,"start":4033}}],"classification":0,"col_offset":8,"end_col_offset":9,"end_lineno":165,"lineno":158,"src":{"jump_code":"","length":207,"start":3837}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":20,"end_lineno":157,"lineno":157,"src":{"jump_code":"","length":9,"start":3818}}],"classification":0,"col_offset":11,"end_col_offset":5,"end_lineno":166,"lineno":157,"src":{"jump_code":"","length":232,"start":3818}}],"classification":0,"col_offset":4,"end_col_offset":5,"end_lineno":166,"lineno":157,"src":{"jump_code":"","length":239,"start":3811}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":154,"lineno":154,"src":{"jump_code":"","length":4,"start":3753}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":155,"lineno":155,"src":{"jump_code":"","length":8,"start":3759}},{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":37,"end_lineno":156,"lineno":156,"src":{"jump_code":"","length":9,"start":3796}}],"classification":1,"col_offset":0,"end_col_offset":5,"end_lineno":166,"lineno":156,"name":"getStructWithArray","src":{"jump_code":"","length":282,"start":3768}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":3,"start":4068}},{"ast_type":"Return","children":[{"ast_type":"List","children":[],"classification":0,"col_offset":11,"end_col_offset":13,"end_lineno":171,"lineno":171,"src":{"jump_code":"","length":2,"start":4124}}],"classification":0,"col_offset":4,"end_col_offset":13,"end_lineno":171,"lineno":171,"src":{"jump_code":"","length":9,"start":4117}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":168,"lineno":168,"src":{"jump_code":"","length":4,"start":4053}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":169,"lineno":169,"src":{"jump_code":"","length":8,"start":4059}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":32,"end_col_offset":39,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":7,"start":4100}},{"ast_type":"Int","children":[],"classification":0,"col_offset":41,"end_col_offset":42,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":1,"start":4109}}],"classification":0,"col_offset":32,"end_col_offset":42,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":10,"start":4100}}],"classification":0,"col_offset":23,"end_col_offset":43,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":20,"start":4091}},{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":31,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":8,"start":4091}}],"classification":0,"col_offset":23,"end_col_offset":43,"end_lineno":170,"lineno":170,"src":{"jump_code":"","length":20,"start":4091}}],"classification":1,"col_offset":0,"end_col_offset":13,"end_lineno":171,"lineno":170,"name":"getEmptyArray","src":{"jump_code":"","length":58,"start":4068}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":3,"start":4144}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":13,"end_lineno":176,"lineno":176,"src":{"jump_code":"","length":1,"start":4206}}],"classification":0,"col_offset":11,"end_col_offset":14,"end_lineno":176,"lineno":176,"src":{"jump_code":"","length":3,"start":4205}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":176,"lineno":176,"src":{"jump_code":"","length":10,"start":4198}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":173,"lineno":173,"src":{"jump_code":"","length":4,"start":4129}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":174,"lineno":174,"src":{"jump_code":"","length":8,"start":4135}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":44,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":7,"start":4181}},{"ast_type":"Int","children":[],"classification":0,"col_offset":46,"end_col_offset":47,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":1,"start":4190}}],"classification":0,"col_offset":37,"end_col_offset":47,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":10,"start":4181}}],"classification":0,"col_offset":28,"end_col_offset":48,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":20,"start":4172}},{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":36,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":8,"start":4172}}],"classification":0,"col_offset":28,"end_col_offset":48,"end_lineno":175,"lineno":175,"src":{"jump_code":"","length":20,"start":4172}}],"classification":1,"col_offset":0,"end_col_offset":14,"end_lineno":176,"lineno":175,"name":"getSingleItemArray","src":{"jump_code":"","length":64,"start":4144}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":3,"start":4226}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":13,"end_lineno":181,"lineno":181,"src":{"jump_code":"","length":1,"start":4284}},{"ast_type":"Int","children":[],"classification":0,"col_offset":15,"end_col_offset":16,"end_lineno":181,"lineno":181,"src":{"jump_code":"","length":1,"start":4287}},{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":181,"lineno":181,"src":{"jump_code":"","length":1,"start":4290}}],"classification":0,"col_offset":11,"end_col_offset":20,"end_lineno":181,"lineno":181,"src":{"jump_code":"","length":9,"start":4283}}],"classification":0,"col_offset":4,"end_col_offset":20,"end_lineno":181,"lineno":181,"src":{"jump_code":"","length":16,"start":4276}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":178,"lineno":178,"src":{"jump_code":"","length":4,"start":4211}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":179,"lineno":179,"src":{"jump_code":"","length":8,"start":4217}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":33,"end_col_offset":40,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":7,"start":4259}},{"ast_type":"Int","children":[],"classification":0,"col_offset":42,"end_col_offset":43,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":1,"start":4268}}],"classification":0,"col_offset":33,"end_col_offset":43,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":10,"start":4259}}],"classification":0,"col_offset":24,"end_col_offset":44,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":20,"start":4250}},{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":32,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":8,"start":4250}}],"classification":0,"col_offset":24,"end_col_offset":44,"end_lineno":180,"lineno":180,"src":{"jump_code":"","length":20,"start":4250}}],"classification":1,"col_offset":0,"end_col_offset":20,"end_lineno":181,"lineno":180,"name":"getFilledArray","src":{"jump_code":"","length":66,"start":4226}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":185,"lineno":185,"src":{"jump_code":"","length":3,"start":4310}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":15,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":3,"start":4369}}],"classification":0,"col_offset":12,"end_col_offset":22,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":10,"start":4369}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":27,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":3,"start":4381}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":10,"start":4381}}],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":24,"start":4368}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":186,"lineno":186,"src":{"jump_code":"","length":31,"start":4361}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":183,"lineno":183,"src":{"jump_code":"","length":4,"start":4295}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":184,"lineno":184,"src":{"jump_code":"","length":8,"start":4301}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":41,"end_lineno":185,"lineno":185,"src":{"jump_code":"","length":7,"start":4344}},{"ast_type":"Int","children":[],"classification":0,"col_offset":43,"end_col_offset":44,"end_lineno":185,"lineno":185,"src":{"jump_code":"","length":1,"start":4353}}],"classification":0,"col_offset":34,"end_col_offset":44,"end_lineno":185,"lineno":185,"src":{"jump_code":"","length":10,"start":4344}}],"classification":0,"col_offset":25,"end_col_offset":45,"end_lineno":185,"lineno":185,"src":{"jump_code":"","length":20,"start":4335}},{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":33,"end_lineno":185,"lineno":185,"src":{"jump_code":"","length":8,"start":4335}}],"classification":0,"col_offset":25,"end_col_offset":45,"end_lineno":185,"lineno":185,"src":{"jump_code":"","length":20,"start":4335}}],"classification":1,"col_offset":0,"end_col_offset":35,"end_lineno":186,"lineno":185,"name":"getAddressArray","src":{"jump_code":"","length":82,"start":4310}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":190,"lineno":190,"src":{"jump_code":"","length":3,"start":4410}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":24,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":1,"start":4505}},{"ast_type":"Name","children":[],"classification":1,"col_offset":72,"end_col_offset":75,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":3,"start":4554}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":37,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":1,"start":4518}},{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":52,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":1,"start":4533}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":42,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":3,"start":4521}}],"classification":0,"col_offset":39,"end_col_offset":49,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":10,"start":4521}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":59,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":5,"start":4536}}],"classification":0,"col_offset":54,"end_col_offset":68,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":14,"start":4536}}],"classification":0,"col_offset":35,"end_col_offset":69,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":34,"start":4517}},{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":8,"start":4508}}],"classification":0,"col_offset":26,"end_col_offset":70,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":44,"start":4508}},{"ast_type":"Int","children":[],"classification":0,"col_offset":77,"end_col_offset":78,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":1,"start":4559}}],"classification":0,"col_offset":22,"end_col_offset":79,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":57,"start":4504}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":13,"start":4490}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":192,"lineno":192,"src":{"jump_code":"","length":72,"start":4490}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":24,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":1,"start":4587}},{"ast_type":"Name","children":[],"classification":1,"col_offset":72,"end_col_offset":75,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":3,"start":4636}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":37,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":1,"start":4600}},{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":52,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":1,"start":4615}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":39,"end_col_offset":42,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":3,"start":4603}}],"classification":0,"col_offset":39,"end_col_offset":49,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":10,"start":4603}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":59,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":5,"start":4618}}],"classification":0,"col_offset":54,"end_col_offset":68,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":14,"start":4618}}],"classification":0,"col_offset":35,"end_col_offset":69,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":34,"start":4599}},{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":8,"start":4590}}],"classification":0,"col_offset":26,"end_col_offset":70,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":44,"start":4590}},{"ast_type":"Int","children":[],"classification":0,"col_offset":77,"end_col_offset":78,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":1,"start":4641}}],"classification":0,"col_offset":22,"end_col_offset":79,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":57,"start":4586}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":13,"start":4572}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":193,"lineno":193,"src":{"jump_code":"","length":72,"start":4572}}],"classification":0,"col_offset":11,"end_col_offset":5,"end_lineno":194,"lineno":191,"src":{"jump_code":"","length":170,"start":4480}}],"classification":0,"col_offset":4,"end_col_offset":5,"end_lineno":194,"lineno":191,"src":{"jump_code":"","length":177,"start":4473}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":188,"lineno":188,"src":{"jump_code":"","length":4,"start":4395}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":189,"lineno":189,"src":{"jump_code":"","length":8,"start":4401}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":53,"end_lineno":190,"lineno":190,"src":{"jump_code":"","length":13,"start":4450}},{"ast_type":"Int","children":[],"classification":0,"col_offset":55,"end_col_offset":56,"end_lineno":190,"lineno":190,"src":{"jump_code":"","length":1,"start":4465}}],"classification":0,"col_offset":40,"end_col_offset":56,"end_lineno":190,"lineno":190,"src":{"jump_code":"","length":16,"start":4450}}],"classification":0,"col_offset":31,"end_col_offset":57,"end_lineno":190,"lineno":190,"src":{"jump_code":"","length":26,"start":4441}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":39,"end_lineno":190,"lineno":190,"src":{"jump_code":"","length":8,"start":4441}}],"classification":0,"col_offset":31,"end_col_offset":57,"end_lineno":190,"lineno":190,"src":{"jump_code":"","length":26,"start":4441}}],"classification":1,"col_offset":0,"end_col_offset":5,"end_lineno":194,"lineno":190,"name":"getDynamicStructArray","src":{"jump_code":"","length":240,"start":4410}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":198,"lineno":198,"src":{"jump_code":"","length":3,"start":4668}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":26,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":3,"start":4752}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":32,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":1,"start":4760}},{"ast_type":"Int","children":[],"classification":0,"col_offset":28,"end_col_offset":29,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":1,"start":4757}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":45,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":1,"start":4773}},{"ast_type":"Name","children":[],"classification":1,"col_offset":59,"end_col_offset":60,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":1,"start":4788}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":47,"end_col_offset":50,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":3,"start":4776}}],"classification":0,"col_offset":47,"end_col_offset":57,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":10,"start":4776}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":62,"end_col_offset":67,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":5,"start":4791}}],"classification":0,"col_offset":62,"end_col_offset":76,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":14,"start":4791}}],"classification":0,"col_offset":43,"end_col_offset":77,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":34,"start":4772}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":42,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":8,"start":4763}}],"classification":0,"col_offset":34,"end_col_offset":78,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":44,"start":4763}}],"classification":0,"col_offset":22,"end_col_offset":79,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":57,"start":4751}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":13,"start":4737}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":200,"lineno":200,"src":{"jump_code":"","length":72,"start":4737}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":26,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":3,"start":4834}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":32,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":1,"start":4842}},{"ast_type":"Int","children":[],"classification":0,"col_offset":28,"end_col_offset":29,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":1,"start":4839}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":44,"end_col_offset":45,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":1,"start":4855}},{"ast_type":"Name","children":[],"classification":1,"col_offset":59,"end_col_offset":60,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":1,"start":4870}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":47,"end_col_offset":50,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":3,"start":4858}}],"classification":0,"col_offset":47,"end_col_offset":57,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":10,"start":4858}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":62,"end_col_offset":67,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":5,"start":4873}}],"classification":0,"col_offset":62,"end_col_offset":76,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":14,"start":4873}}],"classification":0,"col_offset":43,"end_col_offset":77,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":34,"start":4854}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":42,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":8,"start":4845}}],"classification":0,"col_offset":34,"end_col_offset":78,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":44,"start":4845}}],"classification":0,"col_offset":22,"end_col_offset":79,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":57,"start":4833}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":21,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":13,"start":4819}}],"classification":0,"col_offset":8,"end_col_offset":80,"end_lineno":201,"lineno":201,"src":{"jump_code":"","length":72,"start":4819}}],"classification":0,"col_offset":11,"end_col_offset":5,"end_lineno":202,"lineno":199,"src":{"jump_code":"","length":170,"start":4727}}],"classification":0,"col_offset":4,"end_col_offset":5,"end_lineno":202,"lineno":199,"src":{"jump_code":"","length":177,"start":4720}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":196,"lineno":196,"src":{"jump_code":"","length":4,"start":4653}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":197,"lineno":197,"src":{"jump_code":"","length":8,"start":4659}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":44,"end_col_offset":45,"end_lineno":198,"lineno":198,"src":{"jump_code":"","length":1,"start":4712}}],"classification":0,"col_offset":30,"end_col_offset":46,"end_lineno":198,"lineno":198,"src":{"jump_code":"","length":16,"start":4698}},{"ast_type":"Name","children":[],"classification":1,"col_offset":30,"end_col_offset":43,"end_lineno":198,"lineno":198,"src":{"jump_code":"","length":13,"start":4698}}],"classification":0,"col_offset":30,"end_col_offset":46,"end_lineno":198,"lineno":198,"src":{"jump_code":"","length":16,"start":4698}}],"classification":1,"col_offset":0,"end_col_offset":5,"end_lineno":202,"lineno":198,"name":"getStaticStructArray","src":{"jump_code":"","length":229,"start":4668}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":3,"start":4915}},{"ast_type":"Return","children":[{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":25,"end_col_offset":27,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":2,"start":4985}}],"classification":0,"col_offset":17,"end_col_offset":28,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":11,"start":4977}},{"ast_type":"Name","children":[],"classification":1,"col_offset":17,"end_col_offset":24,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":7,"start":4977}}],"classification":0,"col_offset":17,"end_col_offset":28,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":11,"start":4977}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":16,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":5,"start":4971}}],"classification":0,"col_offset":11,"end_col_offset":29,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":18,"start":4971}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":207,"lineno":207,"src":{"jump_code":"","length":25,"start":4964}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":204,"lineno":204,"src":{"jump_code":"","length":4,"start":4900}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":205,"lineno":205,"src":{"jump_code":"","length":8,"start":4906}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":40,"end_col_offset":42,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":2,"start":4955}}],"classification":0,"col_offset":32,"end_col_offset":43,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":11,"start":4947}},{"ast_type":"Name","children":[],"classification":1,"col_offset":32,"end_col_offset":39,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":7,"start":4947}}],"classification":0,"col_offset":32,"end_col_offset":43,"end_lineno":206,"lineno":206,"src":{"jump_code":"","length":11,"start":4947}}],"classification":1,"col_offset":0,"end_col_offset":29,"end_lineno":207,"lineno":206,"name":"getArrayWithBiggerSize","src":{"jump_code":"","length":74,"start":4915}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":3,"start":5008}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":26,"end_col_offset":28,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":2,"start":5088}}],"classification":0,"col_offset":18,"end_col_offset":29,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":11,"start":5080}},{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":25,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":7,"start":5080}}],"classification":0,"col_offset":18,"end_col_offset":29,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":11,"start":5080}},{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":17,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":5,"start":5074}}],"classification":0,"col_offset":12,"end_col_offset":30,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":18,"start":5074}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":46,"end_col_offset":48,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":2,"start":5108}}],"classification":0,"col_offset":38,"end_col_offset":49,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":11,"start":5100}},{"ast_type":"Name","children":[],"classification":1,"col_offset":38,"end_col_offset":45,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":7,"start":5100}}],"classification":0,"col_offset":38,"end_col_offset":49,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":11,"start":5100}},{"ast_type":"Name","children":[],"classification":1,"col_offset":32,"end_col_offset":37,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":5,"start":5094}}],"classification":0,"col_offset":32,"end_col_offset":50,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":18,"start":5094}}],"classification":0,"col_offset":11,"end_col_offset":51,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":40,"start":5073}}],"classification":0,"col_offset":4,"end_col_offset":51,"end_lineno":213,"lineno":213,"src":{"jump_code":"","length":47,"start":5066}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":210,"lineno":210,"src":{"jump_code":"","length":4,"start":4993}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":211,"lineno":211,"src":{"jump_code":"","length":8,"start":4999}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":35,"end_col_offset":37,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":2,"start":5043}}],"classification":0,"col_offset":27,"end_col_offset":38,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":11,"start":5035}},{"ast_type":"Name","children":[],"classification":1,"col_offset":27,"end_col_offset":34,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":7,"start":5035}}],"classification":0,"col_offset":27,"end_col_offset":38,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":11,"start":5035}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":48,"end_col_offset":50,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":2,"start":5056}}],"classification":0,"col_offset":40,"end_col_offset":51,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":11,"start":5048}},{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":47,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":7,"start":5048}}],"classification":0,"col_offset":40,"end_col_offset":51,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":11,"start":5048}}],"classification":0,"col_offset":26,"end_col_offset":52,"end_lineno":212,"lineno":212,"src":{"jump_code":"","length":26,"start":5034}}],"classification":1,"col_offset":0,"end_col_offset":51,"end_lineno":213,"lineno":212,"name":"getTupleOfArrays","src":{"jump_code":"","length":105,"start":5008}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":217,"lineno":217,"src":{"jump_code":"","length":3,"start":5131}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":15,"end_lineno":218,"lineno":218,"src":{"jump_code":"","length":3,"start":5190}},{"ast_type":"Int","children":[],"classification":0,"col_offset":17,"end_col_offset":20,"end_lineno":218,"lineno":218,"src":{"jump_code":"","length":3,"start":5195}}],"classification":0,"col_offset":11,"end_col_offset":21,"end_lineno":218,"lineno":218,"src":{"jump_code":"","length":10,"start":5189}}],"classification":0,"col_offset":4,"end_col_offset":21,"end_lineno":218,"lineno":218,"src":{"jump_code":"","length":17,"start":5182}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":215,"lineno":215,"src":{"jump_code":"","length":4,"start":5116}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":216,"lineno":216,"src":{"jump_code":"","length":8,"start":5122}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":28,"end_col_offset":35,"end_lineno":217,"lineno":217,"src":{"jump_code":"","length":7,"start":5159}},{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":44,"end_lineno":217,"lineno":217,"src":{"jump_code":"","length":7,"start":5168}}],"classification":0,"col_offset":27,"end_col_offset":45,"end_lineno":217,"lineno":217,"src":{"jump_code":"","length":18,"start":5158}}],"classification":1,"col_offset":0,"end_col_offset":21,"end_lineno":218,"lineno":217,"name":"getMultipleValues","src":{"jump_code":"","length":68,"start":5131}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":3,"start":5217}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":12,"end_col_offset":13,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":1,"start":5274}},{"ast_type":"Int","children":[],"classification":0,"col_offset":15,"end_col_offset":16,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":1,"start":5277}}],"classification":0,"col_offset":11,"end_col_offset":17,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":6,"start":5273}}],"classification":0,"col_offset":4,"end_col_offset":17,"end_lineno":223,"lineno":223,"src":{"jump_code":"","length":13,"start":5266}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":220,"lineno":220,"src":{"jump_code":"","length":4,"start":5202}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":221,"lineno":221,"src":{"jump_code":"","length":8,"start":5208}},{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":33,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":7,"start":5243}},{"ast_type":"Name","children":[],"classification":1,"col_offset":35,"end_col_offset":42,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":7,"start":5252}}],"classification":0,"col_offset":25,"end_col_offset":43,"end_lineno":222,"lineno":222,"src":{"jump_code":"","length":18,"start":5242}}],"classification":1,"col_offset":0,"end_col_offset":17,"end_lineno":223,"lineno":222,"name":"getUnnamedTuple","src":{"jump_code":"","length":62,"start":5217}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":3,"start":5297}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":23,"end_col_offset":25,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":2,"start":5380}}],"classification":0,"col_offset":15,"end_col_offset":26,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":11,"start":5372}},{"ast_type":"Name","children":[],"classification":1,"col_offset":15,"end_col_offset":22,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":7,"start":5372}}],"classification":0,"col_offset":15,"end_col_offset":26,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":11,"start":5372}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":13,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":9,"start":5361}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":43,"end_col_offset":45,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":2,"start":5400}}],"classification":0,"col_offset":35,"end_col_offset":46,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":11,"start":5392}},{"ast_type":"Name","children":[],"classification":1,"col_offset":35,"end_col_offset":42,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":7,"start":5392}}],"classification":0,"col_offset":35,"end_col_offset":46,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":11,"start":5392}},{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":34,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":5,"start":5386}}],"classification":0,"col_offset":29,"end_col_offset":47,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":18,"start":5386}}],"classification":0,"col_offset":4,"end_col_offset":47,"end_lineno":228,"lineno":228,"src":{"jump_code":"","length":43,"start":5361}},{"ast_type":"Assign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":14,"end_col_offset":15,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":1,"start":5419}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":12,"start":5409}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":13,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":9,"start":5409}}],"classification":0,"col_offset":4,"end_col_offset":16,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":12,"start":5409}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":19,"end_col_offset":22,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":3,"start":5424}}],"classification":0,"col_offset":19,"end_col_offset":29,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":10,"start":5424}}],"classification":0,"col_offset":4,"end_col_offset":29,"end_lineno":229,"lineno":229,"src":{"jump_code":"","length":25,"start":5409}},{"ast_type":"Return","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":21,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":9,"start":5447}},{"ast_type":"Call","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":37,"end_col_offset":39,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":2,"start":5472}}],"classification":0,"col_offset":29,"end_col_offset":40,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":11,"start":5464}},{"ast_type":"Name","children":[],"classification":1,"col_offset":29,"end_col_offset":36,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":7,"start":5464}}],"classification":0,"col_offset":29,"end_col_offset":40,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":11,"start":5464}},{"ast_type":"Name","children":[],"classification":1,"col_offset":23,"end_col_offset":28,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":5,"start":5458}}],"classification":0,"col_offset":23,"end_col_offset":41,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":18,"start":5458}}],"classification":0,"col_offset":11,"end_col_offset":42,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":31,"start":5446}}],"classification":0,"col_offset":4,"end_col_offset":42,"end_lineno":230,"lineno":230,"src":{"jump_code":"","length":38,"start":5439}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":225,"lineno":225,"src":{"jump_code":"","length":4,"start":5282}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":226,"lineno":226,"src":{"jump_code":"","length":8,"start":5288}},{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":41,"end_col_offset":43,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":2,"start":5338}}],"classification":0,"col_offset":33,"end_col_offset":44,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":11,"start":5330}},{"ast_type":"Name","children":[],"classification":1,"col_offset":33,"end_col_offset":40,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":7,"start":5330}}],"classification":0,"col_offset":33,"end_col_offset":44,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":11,"start":5330}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":54,"end_col_offset":56,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":2,"start":5351}}],"classification":0,"col_offset":46,"end_col_offset":57,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":11,"start":5343}},{"ast_type":"Name","children":[],"classification":1,"col_offset":46,"end_col_offset":53,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":7,"start":5343}}],"classification":0,"col_offset":46,"end_col_offset":57,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":11,"start":5343}}],"classification":0,"col_offset":32,"end_col_offset":58,"end_lineno":227,"lineno":227,"src":{"jump_code":"","length":26,"start":5329}}],"classification":1,"col_offset":0,"end_col_offset":42,"end_lineno":230,"lineno":227,"name":"getTupleOfAddressArray","src":{"jump_code":"","length":180,"start":5297}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":3,"start":5495}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":13,"end_col_offset":14,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":1,"start":5557}},{"ast_type":"Int","children":[],"classification":0,"col_offset":16,"end_col_offset":17,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":1,"start":5560}}],"classification":0,"col_offset":12,"end_col_offset":18,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":6,"start":5556}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":21,"end_col_offset":22,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":1,"start":5565}},{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":1,"start":5568}}],"classification":0,"col_offset":20,"end_col_offset":26,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":6,"start":5564}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":29,"end_col_offset":30,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":1,"start":5573}},{"ast_type":"Int","children":[],"classification":0,"col_offset":32,"end_col_offset":33,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":1,"start":5576}}],"classification":0,"col_offset":28,"end_col_offset":34,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":6,"start":5572}}],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":24,"start":5555}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":235,"lineno":235,"src":{"jump_code":"","length":31,"start":5548}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":232,"lineno":232,"src":{"jump_code":"","length":4,"start":5480}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":233,"lineno":233,"src":{"jump_code":"","length":8,"start":5486}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":45,"end_col_offset":46,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":1,"start":5540}}],"classification":0,"col_offset":34,"end_col_offset":47,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":13,"start":5529}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":42,"end_col_offset":43,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":1,"start":5537}}],"classification":0,"col_offset":34,"end_col_offset":44,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":10,"start":5529}},{"ast_type":"Name","children":[],"classification":1,"col_offset":34,"end_col_offset":41,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":7,"start":5529}}],"classification":0,"col_offset":34,"end_col_offset":44,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":10,"start":5529}}],"classification":0,"col_offset":34,"end_col_offset":47,"end_lineno":234,"lineno":234,"src":{"jump_code":"","length":13,"start":5529}}],"classification":1,"col_offset":0,"end_col_offset":35,"end_lineno":235,"lineno":234,"name":"getNestedArrayFixedFixed","src":{"jump_code":"","length":84,"start":5495}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":3,"start":5597}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":13,"end_col_offset":14,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":1,"start":5674}},{"ast_type":"Int","children":[],"classification":0,"col_offset":16,"end_col_offset":17,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":1,"start":5677}}],"classification":0,"col_offset":12,"end_col_offset":18,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":6,"start":5673}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":21,"end_col_offset":22,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":1,"start":5682}},{"ast_type":"Int","children":[],"classification":0,"col_offset":24,"end_col_offset":25,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":1,"start":5685}}],"classification":0,"col_offset":20,"end_col_offset":26,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":6,"start":5681}},{"ast_type":"List","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":29,"end_col_offset":30,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":1,"start":5690}},{"ast_type":"Int","children":[],"classification":0,"col_offset":32,"end_col_offset":33,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":1,"start":5693}}],"classification":0,"col_offset":28,"end_col_offset":34,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":6,"start":5689}}],"classification":0,"col_offset":11,"end_col_offset":35,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":24,"start":5672}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":240,"lineno":240,"src":{"jump_code":"","length":31,"start":5665}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":237,"lineno":237,"src":{"jump_code":"","length":4,"start":5582}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":238,"lineno":238,"src":{"jump_code":"","length":8,"start":5588}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":53,"end_col_offset":54,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":1,"start":5650}}],"classification":0,"col_offset":45,"end_col_offset":55,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":10,"start":5642}},{"ast_type":"Name","children":[],"classification":1,"col_offset":45,"end_col_offset":52,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":7,"start":5642}}],"classification":0,"col_offset":45,"end_col_offset":55,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":10,"start":5642}},{"ast_type":"Int","children":[],"classification":0,"col_offset":57,"end_col_offset":61,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":4,"start":5654}}],"classification":0,"col_offset":45,"end_col_offset":61,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":16,"start":5642}}],"classification":0,"col_offset":36,"end_col_offset":62,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":26,"start":5633}},{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":44,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":8,"start":5633}}],"classification":0,"col_offset":36,"end_col_offset":62,"end_lineno":239,"lineno":239,"src":{"jump_code":"","length":26,"start":5633}}],"classification":1,"col_offset":0,"end_col_offset":35,"end_lineno":240,"lineno":239,"name":"getNestedArrayDynamicFixed","src":{"jump_code":"","length":99,"start":5597}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":3,"start":5714}},{"ast_type":"Return","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":15,"end_lineno":245,"lineno":245,"src":{"jump_code":"","length":4,"start":5789}}],"classification":0,"col_offset":11,"end_col_offset":24,"end_lineno":245,"lineno":245,"src":{"jump_code":"","length":13,"start":5789}}],"classification":0,"col_offset":4,"end_col_offset":24,"end_lineno":245,"lineno":245,"src":{"jump_code":"","length":20,"start":5782}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":242,"lineno":242,"src":{"jump_code":"","length":4,"start":5699}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":243,"lineno":243,"src":{"jump_code":"","length":8,"start":5705}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":60,"end_col_offset":61,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":1,"start":5774}}],"classification":0,"col_offset":36,"end_col_offset":62,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":26,"start":5750}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":45,"end_col_offset":52,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":7,"start":5759}},{"ast_type":"Int","children":[],"classification":0,"col_offset":54,"end_col_offset":58,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":4,"start":5768}}],"classification":0,"col_offset":45,"end_col_offset":58,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":13,"start":5759}}],"classification":0,"col_offset":36,"end_col_offset":59,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":23,"start":5750}},{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":44,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":8,"start":5750}}],"classification":0,"col_offset":36,"end_col_offset":59,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":23,"start":5750}}],"classification":0,"col_offset":36,"end_col_offset":62,"end_lineno":244,"lineno":244,"src":{"jump_code":"","length":26,"start":5750}}],"classification":1,"col_offset":0,"end_col_offset":24,"end_lineno":245,"lineno":244,"name":"getNestedArrayFixedDynamic","src":{"jump_code":"","length":88,"start":5714}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":3,"start":5820}},{"ast_type":"Return","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":15,"end_lineno":250,"lineno":250,"src":{"jump_code":"","length":4,"start":5914}}],"classification":0,"col_offset":11,"end_col_offset":26,"end_lineno":250,"lineno":250,"src":{"jump_code":"","length":15,"start":5914}}],"classification":0,"col_offset":4,"end_col_offset":26,"end_lineno":250,"lineno":250,"src":{"jump_code":"","length":22,"start":5907}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":247,"lineno":247,"src":{"jump_code":"","length":4,"start":5805}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":248,"lineno":248,"src":{"jump_code":"","length":8,"start":5811}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":79,"end_col_offset":80,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":1,"start":5899}}],"classification":0,"col_offset":36,"end_col_offset":81,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":45,"start":5856}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":69,"end_col_offset":70,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":1,"start":5889}}],"classification":0,"col_offset":45,"end_col_offset":71,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":26,"start":5865}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":54,"end_col_offset":61,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":7,"start":5874}},{"ast_type":"Int","children":[],"classification":0,"col_offset":63,"end_col_offset":67,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":4,"start":5883}}],"classification":0,"col_offset":54,"end_col_offset":67,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":13,"start":5874}}],"classification":0,"col_offset":45,"end_col_offset":68,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":23,"start":5865}},{"ast_type":"Name","children":[],"classification":1,"col_offset":45,"end_col_offset":53,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":8,"start":5865}}],"classification":0,"col_offset":45,"end_col_offset":68,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":23,"start":5865}}],"classification":0,"col_offset":45,"end_col_offset":71,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":26,"start":5865}},{"ast_type":"Int","children":[],"classification":0,"col_offset":73,"end_col_offset":77,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":4,"start":5893}}],"classification":0,"col_offset":45,"end_col_offset":77,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":32,"start":5865}}],"classification":0,"col_offset":36,"end_col_offset":78,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":42,"start":5856}},{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":44,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":8,"start":5856}}],"classification":0,"col_offset":36,"end_col_offset":78,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":42,"start":5856}}],"classification":0,"col_offset":36,"end_col_offset":81,"end_lineno":249,"lineno":249,"src":{"jump_code":"","length":45,"start":5856}}],"classification":1,"col_offset":0,"end_col_offset":26,"end_lineno":250,"lineno":249,"name":"getNestedArrayMixedDynamic","src":{"jump_code":"","length":109,"start":5820}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":3,"start":5947}},{"ast_type":"Return","children":[{"ast_type":"List","children":[{"ast_type":"List","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":16,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":3,"start":6019}}],"classification":0,"col_offset":13,"end_col_offset":23,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":10,"start":6019}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":25,"end_col_offset":28,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":3,"start":6031}}],"classification":0,"col_offset":25,"end_col_offset":35,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":10,"start":6031}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":40,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":3,"start":6043}}],"classification":0,"col_offset":37,"end_col_offset":47,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":10,"start":6043}}],"classification":0,"col_offset":12,"end_col_offset":48,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":36,"start":6018}},{"ast_type":"List","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":57,"end_col_offset":64,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":7,"start":6063}},{"ast_type":"Name","children":[],"classification":1,"col_offset":51,"end_col_offset":56,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":5,"start":6057}}],"classification":0,"col_offset":51,"end_col_offset":65,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":14,"start":6057}},{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":73,"end_col_offset":80,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":7,"start":6079}},{"ast_type":"Name","children":[],"classification":1,"col_offset":67,"end_col_offset":72,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":5,"start":6073}}],"classification":0,"col_offset":67,"end_col_offset":81,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":14,"start":6073}},{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":89,"end_col_offset":96,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":7,"start":6095}},{"ast_type":"Name","children":[],"classification":1,"col_offset":83,"end_col_offset":88,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":5,"start":6089}}],"classification":0,"col_offset":83,"end_col_offset":97,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":14,"start":6089}}],"classification":0,"col_offset":50,"end_col_offset":98,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":48,"start":6056}}],"classification":0,"col_offset":11,"end_col_offset":99,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":88,"start":6017}}],"classification":0,"col_offset":4,"end_col_offset":99,"end_lineno":255,"lineno":255,"src":{"jump_code":"","length":95,"start":6010}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":252,"lineno":252,"src":{"jump_code":"","length":4,"start":5932}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":253,"lineno":253,"src":{"jump_code":"","length":8,"start":5938}},{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":48,"end_col_offset":49,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":1,"start":5995}}],"classification":0,"col_offset":40,"end_col_offset":50,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":10,"start":5987}},{"ast_type":"Name","children":[],"classification":1,"col_offset":40,"end_col_offset":47,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":7,"start":5987}}],"classification":0,"col_offset":40,"end_col_offset":50,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":10,"start":5987}},{"ast_type":"Int","children":[],"classification":0,"col_offset":52,"end_col_offset":56,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":4,"start":5999}}],"classification":0,"col_offset":40,"end_col_offset":56,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":16,"start":5987}}],"classification":0,"col_offset":31,"end_col_offset":57,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":26,"start":5978}},{"ast_type":"Name","children":[],"classification":1,"col_offset":31,"end_col_offset":39,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":8,"start":5978}}],"classification":0,"col_offset":31,"end_col_offset":57,"end_lineno":254,"lineno":254,"src":{"jump_code":"","length":26,"start":5978}}],"classification":1,"col_offset":0,"end_col_offset":99,"end_lineno":255,"lineno":254,"name":"getNestedAddressArray","src":{"jump_code":"","length":158,"start":5947}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":260,"lineno":260,"src":{"jump_code":"","length":7,"start":6172}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":260,"lineno":260,"src":{"jump_code":"","length":11,"start":6168}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":261,"lineno":261,"src":{"jump_code":"","length":7,"start":6189}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":261,"lineno":261,"src":{"jump_code":"","length":11,"start":6185}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":262,"lineno":262,"src":{"jump_code":"","length":7,"start":6206}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":262,"lineno":262,"src":{"jump_code":"","length":11,"start":6202}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":263,"lineno":263,"src":{"jump_code":"","length":7,"start":6223}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":263,"lineno":263,"src":{"jump_code":"","length":11,"start":6219}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":264,"lineno":264,"src":{"jump_code":"","length":7,"start":6240}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":264,"lineno":264,"src":{"jump_code":"","length":11,"start":6236}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":265,"lineno":265,"src":{"jump_code":"","length":7,"start":6257}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":265,"lineno":265,"src":{"jump_code":"","length":11,"start":6253}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":266,"lineno":266,"src":{"jump_code":"","length":7,"start":6274}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":266,"lineno":266,"src":{"jump_code":"","length":11,"start":6270}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":267,"lineno":267,"src":{"jump_code":"","length":7,"start":6291}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":267,"lineno":267,"src":{"jump_code":"","length":11,"start":6287}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":268,"lineno":268,"src":{"jump_code":"","length":7,"start":6308}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":268,"lineno":268,"src":{"jump_code":"","length":11,"start":6304}},{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":15,"end_lineno":269,"lineno":269,"src":{"jump_code":"","length":7,"start":6325}}],"classification":0,"col_offset":4,"end_col_offset":15,"end_lineno":269,"lineno":269,"src":{"jump_code":"","length":11,"start":6321}}],"classification":1,"col_offset":4,"end_col_offset":15,"end_lineno":269,"lineno":260,"src":{"jump_code":"","length":164,"start":6168}},{"ast_type":"Pass","children":[],"classification":0,"col_offset":4,"end_col_offset":8,"end_lineno":271,"lineno":271,"src":{"jump_code":"","length":4,"start":6340}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":257,"lineno":257,"src":{"jump_code":"","length":4,"start":6108}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":258,"lineno":258,"src":{"jump_code":"","length":8,"start":6114}}],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":271,"lineno":259,"name":"functionWithUniqueAmountOfArguments","src":{"jump_code":"","length":221,"start":6123}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":26,"end_col_offset":34,"end_lineno":275,"lineno":275,"src":{"jump_code":"","length":8,"start":6388}}],"classification":0,"col_offset":14,"end_col_offset":34,"end_lineno":275,"lineno":275,"src":{"jump_code":"","length":20,"start":6376}}],"classification":1,"col_offset":14,"end_col_offset":34,"end_lineno":275,"lineno":275,"src":{"jump_code":"","length":20,"start":6376}},{"ast_type":"Pass","children":[],"classification":0,"col_offset":4,"end_col_offset":8,"end_lineno":276,"lineno":276,"src":{"jump_code":"","length":4,"start":6403}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":273,"lineno":273,"src":{"jump_code":"","length":4,"start":6347}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":274,"lineno":274,"src":{"jump_code":"","length":8,"start":6353}}],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":276,"lineno":275,"name":"setStruct","src":{"jump_code":"","length":45,"start":6362}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[{"ast_type":"arg","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":46,"end_col_offset":47,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":1,"start":6471}}],"classification":0,"col_offset":37,"end_col_offset":48,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":11,"start":6462}},{"ast_type":"Name","children":[],"classification":1,"col_offset":37,"end_col_offset":45,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":8,"start":6462}}],"classification":0,"col_offset":37,"end_col_offset":48,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":11,"start":6462}}],"classification":0,"col_offset":19,"end_col_offset":48,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":29,"start":6444}}],"classification":1,"col_offset":19,"end_col_offset":48,"end_lineno":280,"lineno":280,"src":{"jump_code":"","length":29,"start":6444}},{"ast_type":"Pass","children":[],"classification":0,"col_offset":4,"end_col_offset":8,"end_lineno":281,"lineno":281,"src":{"jump_code":"","length":4,"start":6480}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":5,"end_lineno":278,"lineno":278,"src":{"jump_code":"","length":4,"start":6410}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":279,"lineno":279,"src":{"jump_code":"","length":8,"start":6416}}],"classification":1,"col_offset":0,"end_col_offset":8,"end_lineno":281,"lineno":280,"name":"setStructArray","src":{"jump_code":"","length":59,"start":6425}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":284,"lineno":284,"src":{"jump_code":"","length":3,"start":6496}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":12,"end_col_offset":19,"end_lineno":285,"lineno":285,"src":{"jump_code":"","length":7,"start":6525}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":10,"end_lineno":285,"lineno":285,"src":{"jump_code":"","length":6,"start":6517}},{"ast_type":"Hex","children":[],"classification":0,"col_offset":22,"end_col_offset":88,"end_lineno":285,"lineno":285,"src":{"jump_code":"","length":66,"start":6535}}],"classification":0,"col_offset":4,"end_col_offset":88,"end_lineno":285,"lineno":285,"src":{"jump_code":"","length":84,"start":6517}},{"ast_type":"AnnAssign","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":13,"end_col_offset":21,"end_lineno":286,"lineno":286,"src":{"jump_code":"","length":8,"start":6615}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":11,"end_lineno":286,"lineno":286,"src":{"jump_code":"","length":7,"start":6606}},{"ast_type":"Call","children":[{"ast_type":"Dict","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":9,"end_lineno":287,"lineno":287,"src":{"jump_code":"","length":1,"start":6645}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":9,"end_lineno":288,"lineno":288,"src":{"jump_code":"","length":1,"start":6668}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":14,"end_lineno":287,"lineno":287,"src":{"jump_code":"","length":3,"start":6648}}],"classification":0,"col_offset":11,"end_col_offset":21,"end_lineno":287,"lineno":287,"src":{"jump_code":"","length":10,"start":6648}},{"ast_type":"Name","children":[],"classification":1,"col_offset":11,"end_col_offset":17,"end_lineno":288,"lineno":288,"src":{"jump_code":"","length":6,"start":6671}}],"classification":0,"col_offset":33,"end_col_offset":5,"end_lineno":289,"lineno":286,"src":{"jump_code":"","length":48,"start":6635}},{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":32,"end_lineno":286,"lineno":286,"src":{"jump_code":"","length":8,"start":6626}}],"classification":0,"col_offset":24,"end_col_offset":6,"end_lineno":289,"lineno":286,"src":{"jump_code":"","length":58,"start":6626}}],"classification":0,"col_offset":4,"end_col_offset":6,"end_lineno":289,"lineno":286,"src":{"jump_code":"","length":78,"start":6606}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":31,"end_lineno":290,"lineno":290,"src":{"jump_code":"","length":7,"start":6709}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":23,"end_lineno":290,"lineno":290,"src":{"jump_code":"","length":15,"start":6693}}],"classification":0,"col_offset":8,"end_col_offset":32,"end_lineno":290,"lineno":290,"src":{"jump_code":"","length":24,"start":6693}}],"classification":0,"col_offset":4,"end_col_offset":32,"end_lineno":290,"lineno":290,"src":{"jump_code":"","length":28,"start":6689}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":283,"lineno":283,"src":{"jump_code":"","length":8,"start":6487}}],"classification":1,"col_offset":0,"end_col_offset":32,"end_lineno":290,"lineno":284,"name":"logStruct","src":{"jump_code":"","length":221,"start":6496}},{"ast_type":"FunctionDef","children":[{"ast_type":"arguments","children":[],"classification":1,"col_offset":0,"end_col_offset":3,"end_lineno":293,"lineno":293,"src":{"jump_code":"","length":3,"start":6729}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Tuple","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":18,"end_col_offset":25,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":7,"start":6770}},{"ast_type":"Int","children":[],"classification":0,"col_offset":27,"end_col_offset":31,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":4,"start":6779}}],"classification":0,"col_offset":18,"end_col_offset":31,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":13,"start":6770}}],"classification":0,"col_offset":9,"end_col_offset":32,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":23,"start":6761}},{"ast_type":"Name","children":[],"classification":1,"col_offset":9,"end_col_offset":17,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":8,"start":6761}}],"classification":0,"col_offset":9,"end_col_offset":32,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":23,"start":6761}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":3,"start":6756}},{"ast_type":"List","children":[],"classification":0,"col_offset":35,"end_col_offset":37,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":2,"start":6787}}],"classification":0,"col_offset":4,"end_col_offset":37,"end_lineno":294,"lineno":294,"src":{"jump_code":"","length":33,"start":6756}},{"ast_type":"Expr","children":[{"ast_type":"Call","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":15,"end_col_offset":18,"end_lineno":295,"lineno":295,"src":{"jump_code":"","length":3,"start":6805}}],"classification":0,"col_offset":15,"end_col_offset":25,"end_lineno":295,"lineno":295,"src":{"jump_code":"","length":10,"start":6805}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":7,"end_lineno":295,"lineno":295,"src":{"jump_code":"","length":3,"start":6794}}],"classification":0,"col_offset":4,"end_col_offset":14,"end_lineno":295,"lineno":295,"src":{"jump_code":"","length":10,"start":6794}}],"classification":0,"col_offset":4,"end_col_offset":26,"end_lineno":295,"lineno":295,"src":{"jump_code":"","length":22,"start":6794}}],"classification":0,"col_offset":4,"end_col_offset":26,"end_lineno":295,"lineno":295,"src":{"jump_code":"","length":22,"start":6794}},{"ast_type":"AnnAssign","children":[{"ast_type":"Subscript","children":[{"ast_type":"Index","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":18,"end_col_offset":19,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":1,"start":6835}}],"classification":0,"col_offset":10,"end_col_offset":20,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":10,"start":6827}},{"ast_type":"Name","children":[],"classification":1,"col_offset":10,"end_col_offset":17,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":7,"start":6827}}],"classification":0,"col_offset":10,"end_col_offset":20,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":10,"start":6827}},{"ast_type":"Name","children":[],"classification":1,"col_offset":4,"end_col_offset":8,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":4,"start":6821}},{"ast_type":"List","children":[{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":24,"end_col_offset":27,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":3,"start":6841}}],"classification":0,"col_offset":24,"end_col_offset":34,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":10,"start":6841}}],"classification":0,"col_offset":23,"end_col_offset":35,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":12,"start":6840}}],"classification":0,"col_offset":4,"end_col_offset":35,"end_lineno":296,"lineno":296,"src":{"jump_code":"","length":31,"start":6821}},{"ast_type":"Log","children":[{"ast_type":"Call","children":[{"ast_type":"Int","children":[],"classification":0,"col_offset":30,"end_col_offset":34,"end_lineno":297,"lineno":297,"src":{"jump_code":"","length":4,"start":6883}},{"ast_type":"Attribute","children":[{"ast_type":"Name","children":[],"classification":1,"col_offset":36,"end_col_offset":39,"end_lineno":297,"lineno":297,"src":{"jump_code":"","length":3,"start":6889}}],"classification":0,"col_offset":36,"end_col_offset":46,"end_lineno":297,"lineno":297,"src":{"jump_code":"","length":10,"start":6889}},{"ast_type":"Name","children":[],"classification":1,"col_offset":48,"end_col_offset":51,"end_lineno":297,"lineno":297,"src":{"jump_code":"","length":3,"start":6901}},{"ast_type":"Name","children":[],"classification":1,"col_offset":53,"end_col_offset":57,"end_lineno":297,"lineno":297,"src":{"jump_code":"","length":4,"start":6906}},{"ast_type":"Name","children":[],"classification":1,"col_offset":8,"end_col_offset":29,"end_lineno":297,"lineno":297,"src":{"jump_code":"","length":21,"start":6861}}],"classification":0,"col_offset":8,"end_col_offset":58,"end_lineno":297,"lineno":297,"src":{"jump_code":"","length":50,"start":6861}}],"classification":0,"col_offset":4,"end_col_offset":58,"end_lineno":297,"lineno":297,"src":{"jump_code":"","length":54,"start":6857}},{"ast_type":"Name","children":[],"classification":1,"col_offset":1,"end_col_offset":9,"end_lineno":292,"lineno":292,"src":{"jump_code":"","length":8,"start":6720}}],"classification":1,"col_offset":0,"end_col_offset":58,"end_lineno":297,"lineno":293,"name":"logAddressArray","src":{"jump_code":"","length":182,"start":6729}}],"classification":0,"col_offset":0,"end_col_offset":58,"end_lineno":297,"lineno":1,"name":"TestContractVy.vy","src":{"jump_code":"","length":6911}},"contractName":"TestContractVy","deploymentBytecode":{"bytecode":"0x34611aeb576020611aef5f395f51600155335f555f60065560016005555f610407556001610408556002610406555f61080855600161080955600261080a55600361080755610c08546103ff8111611aeb57610c038102610c09016005548060051b600183015f82601f0160051c6104008111611aeb57801561009257905b80600601548184015560010181811861007e575b5050505080825550610406548060051b60016104018401015f82601f0160051c6104008111611aeb5780156100d857905b806104070154818401556001018181186100c3575b505050508061040183015550610807548060051b60016108028401015f82601f0160051c6104008111611aeb57801561012257905b8061080801548184015560010181811861010d575b5050505080610802830155505060018101610c08555062301809546103ff8111611aeb57610c0381026230180a016005548060051b600183015f82601f0160051c6104008111611aeb57801561018857905b806006015481840155600101818118610174575b5050505080825550610406548060051b60016104018401015f82601f0160051c6104008111611aeb5780156101ce57905b806104070154818401556001018181186101b9575b505050508061040183015550610807548060051b60016108028401015f82601f0160051c6104008111611aeb57801561021857905b80610808015481840155600101818118610203575b505050508061080283015550506001810162301809555062301809546103ff8111611aeb57610c0381026230180a016005548060051b600183015f82601f0160051c6104008111611aeb57801561027f57905b80600601548184015560010181811861026b575b5050505080825550610406548060051b60016104018401015f82601f0160051c6104008111611aeb5780156102c557905b806104070154818401556001018181186102b0575b505050508061040183015550610807548060051b60016108028401015f82601f0160051c6104008111611aeb57801561030f57905b806108080154818401556001018181186102fa575b50505050806108028301555050600181016230180955506117b2610338610000396117b2610000f36003361161000c5761179d565b5f3560e01c346117a157638da5cb5b811861002c575f5460405260206040f35b6323fd0e4081186100435760015460405260206040f35b634825cf6f811861005a5760025460405260206040f35b636cbceeec81186100715760035460405260206040f35b6327e235e381186100aa57602436106117a1576004358060a01c6117a15760405260046040516020525f5260405f205460605260206060f35b63d3aaff6d81186100ec57604436106117a157610401600435600281116117a1570260050160243581548110156117a157600182010190505460405260206040f35b63ae8ef2cb811861015a57608436106117a15762300c01600435600481116117a15702610c0801610c0360243582548110156117a1570260018201019050610401604435600281116117a157028101905060643581548110156117a157600182010190505460405260206040f35b632beb171181186101b4575f7f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd5f6040a260017fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced55f6040a2005b633fb5c1cb811861031d57602436106117a1575f5433181561022b57600b6040527f21617574686f72697a656400000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b6005600435146117a15760015460025560043560015560076080527f44796e616d69630000000000000000000000000000000000000000000000000060a05260808051602082012090506004357fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686060600143034060c05260025460e052806101005260076040527f44796e616d69630000000000000000000000000000000000000000000000000060605260408160c00181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f82516020010116905090508101905060c0a3005b63e30081a0811861036e57602436106117a1576004358060a01c6117a1576040526040516003556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a95f6060a2005b63e30443bc81186103b557604436106117a1576004358060a01c6117a15760405260046040516020525f5260405f2080546024358082018281106117a15790509050815550005b6309b1b3f281186103d25733604052600143034060605260406040f35b6302f487d681186103f457336040526001430340606052600160805260606040f35b63a420b5a5811861041657600260405233606052600143034060805260606040f35b63e9f7fd14811861043d573360405260014303406060526001608052600160a05260806040f35b63a2fbee538118610464576002604052600260605233608052600143034060a05260806040f35b637a79591d81186104dc575f6040526020806102e052806102e0015f6040518083528060061b5f82600a81116117a15780156104c757905b8060061b60208701018160061b6060018051825260208101516020830152505060010181811861049c575b505082016020019150509050810190506102e0f35b63a4f6d26b81186105bd575f6040525f6102e0526040806105805280610580015f6040518083528060061b5f82600a81116117a157801561054457905b8060061b60208701018160061b60600180518252602081015160208301525050600101818118610519575b50508201602001915050905081019050806105a05280610580015f6102e0518083528060061b5f82600a81116117a15780156105a857905b8060061b60208701018160061b610300018051825260208101516020830152505060010181811861057c575b50508201602001915050905081019050610580f35b63252e423e81186106635760e03660403760e06040516101a0526060516101c0526080516101e05260a0516102005260c0516102205260e051610240528061026052806101a0015f610100518083528060061b5f82600281116117a157801561064e57905b8060061b60208701018160061b6101200180518252602081015160208301525050600101818118610622575b505082016020019150509050810190506101a0f35b63c2f14839811861076c576103c0366040375f6104005260405161042052606051610440526080516104605260a0516104805260c0516104a05260e0516104c052610100516104e05261012051610500526101405161052052610160516105405261018051610560526101a051610580526101c0516105a0526101e0516105c052610200516105e05261022051610600526102405161062052610260516106405261028051610660526102a051610680526102c0516106a0526102e0516106c052610300516106e05261032051610700526103405161072052610360516107405261038051610760526103a051610780526103c0516107a0526103e0516107c0526103e0610400f35b63a5c1b662811861083f575f6040525f6101a0526040806104405280610440015f6040518083528060051b5f82600a81116117a15780156107c657905b8060051b606001518160051b6020880101526001018181186107a9575b50508201602001915050905081019050806104605280610440015f6101a0518083528060061b5f82600a81116117a157801561082a57905b8060061b60208701018160061b6101c001805182526020810151602083015250506001018181186107fe575b50508201602001915050905081019050610440f35b6342ce1ec681186108725760016040523360605260014303406080523360a052600143034060c052600260e05260c06040f35b63052f3e7681186108c757602080604052806040015f5f82525f5f5f600181116117a15780156108b457905b5f8160051b60208701015260010181811861089e575b5050810160200190509050810190506040f35b63b345ad96811861093757602080604052806040015f600160c052600160a0525f60a0518084528060051b5f82600181116117a157801561092157905b8060051b60c001518160051b602089010152600101818118610904575b5050820160200191505090509050810190506040f35b6335417bf481186109b557602080604052806040015f600161010052600261012052600361014052600360e0525f60e0518084528060051b5f82600381116117a157801561099f57905b8060051b61010001518160051b602089010152600101818118610981575b5050820160200191505090509050810190506040f35b63a5b0930d8118610a2957602080604052806040015f3360e0523361010052600260c0525f60c0518084528060051b5f82600281116117a1578015610a1357905b8060051b60e001518160051b6020890101526001018181186109f6575b5050820160200191505090509050810190506040f35b639bfb2ad88118610ad757602080604052806040015f336101605260014303406101805260016101a052336101c05260014303406101e0526002610200526002610140525f61014051808452606081025f82600281116117a1578015610ac157905b60608102602088010160608202610160018051825260208101516020830152604081015160408301525050600101818118610a8b575b5050820160200191505090509050810190506040f35b633ce80e948118610b0a576001604052336060526001430340608052600260a0523360c052600143034060e05260c06040f35b6343790b648118610b2357610280366040376102806040f35b63d4d64b358118610b3c57610500366040376105006040f35b63650543a38118610b5857607b60405261014160605260406040f35b63243e09638118610b6f5760403660403760406040f35b638ba6052d8118610c2f5761028036604037336040526040516102c0526060516102e0526080516103005260a0516103205260c0516103405260e051610360526101005161038052610120516103a052610140516103c052610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a0516105205261028036610540376105006102c0f35b63ccd62aa48118610c5e57600160405260026060526003608052600460a052600560c052600660e05260c06040f35b636126c87f8118610d0857602080604052806040015f6001620100a0526002620100c0526003620100e052600462010100526005620101205260066201014052600362010080525f62010080518084528060061b5f8261040081116117a1578015610cf257905b8060061b60208801018160061b620100a00180518252602081015160208301525050600101818118610cc5575b5050820160200191505090509050810190506040f35b6394a66fc98118610e1d576020806040528060400160608082528082015f6005548083528060051b5f8261040081116117a1578015610d5d57905b80600601548160051b602088010152600101818118610d43575b505082016020019150509050810190508060208301528082015f610406548083528060051b5f8261040081116117a1578015610db057905b8061040701548160051b602088010152600101818118610d95575b505082016020019150509050810190508060408301528082015f610807548083528060051b5f8261040081116117a1578015610e0357905b8061080801548160051b602088010152600101818118610de8575b505082016020019150509050810190509050810190506040f35b63abeb2022811861154b576020806040528060400160a08082528082015f610c08548083528060051b5f8261040081116117a1578015610f8957905b828160051b602088010152610c038102610c090183602088010160608082528082015f84548083528060051b5f8261040081116117a1578015610eb457905b8060018a0101548160051b602088010152600101818118610e98575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a1578015610f0b57905b806001880101548160051b602088010152600101818118610eef575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a1578015610f6457905b806001880101548160051b602088010152600101818118610f48575b5050820160200191505090509050810190509050905083019250600101818118610e59575b505082016020019150509050810190508060208301528082015f62301809548083528060051b5f8261040081116117a15780156110f357905b828160051b602088010152610c0381026230180a0183602088010160608082528082015f84548083528060051b5f8261040081116117a157801561101e57905b8060018a0101548160051b602088010152600101818118611002575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a157801561107557905b806001880101548160051b602088010152600101818118611059575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a15780156110ce57905b806001880101548160051b6020880101526001018181186110b2575b5050820160200191505090509050810190509050905083019250600101818118610fc2575b505082016020019150509050810190508060408301528082015f6260240a548083528060051b5f8261040081116117a157801561125d57905b828160051b602088010152610c0381026260240b0183602088010160608082528082015f84548083528060051b5f8261040081116117a157801561118857905b8060018a0101548160051b60208801015260010181811861116c575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a15780156111df57905b806001880101548160051b6020880101526001018181186111c3575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a157801561123857905b806001880101548160051b60208801015260010181811861121c575b505082016020019150509050905081019050905090508301925060010181811861112c575b505082016020019150509050810190508060608301528082015f6290300b548083528060051b5f8261040081116117a15780156113c757905b828160051b602088010152610c0381026290300c0183602088010160608082528082015f84548083528060051b5f8261040081116117a15780156112f257905b8060018a0101548160051b6020880101526001018181186112d6575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a157801561134957905b806001880101548160051b60208801015260010181811861132d575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a15780156113a257905b806001880101548160051b602088010152600101818118611386575b5050820160200191505090509050810190509050905083019250600101818118611296575b505082016020019150509050810190508060808301528082015f62c03c0c548083528060051b5f8261040081116117a157801561153157905b828160051b602088010152610c03810262c03c0d0183602088010160608082528082015f84548083528060051b5f8261040081116117a157801561145c57905b8060018a0101548160051b602088010152600101818118611440575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a15780156114b357905b806001880101548160051b602088010152600101818118611497575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a157801561150c57905b806001880101548160051b6020880101526001018181186114f0575b5050820160200191505090509050810190509050905083019250600101818118611400575b505082016020019150509050810190509050810190506040f35b6399e74a4c81186115ef57602080604052806040015f33620180a05233620180c05233620180e0526060366201810037600262018080525f6201808051808452606081025f8261040081116117a15780156115d957905b60608102602088010160608202620180a00180518252602081015160208301526040810151604083015250506001018181186115a2575b5050820160200191505090509050810190506040f35b63acab48d881186116055761014436106117a157005b6378c067b0811861162e57604436106117a1576004358060a01c6117a157604052602435606052005b637b92b7ce811861166b57608436106117a1576004358060a01c6117a1576040526024356060526044358060a01c6117a15760805260643560a052005b63136af17f81186116d8577f1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef604052336060526040516080527fa731a78d94f9b7de7d6ab1ba8b80641702fa1c4a60a45d52c8db2bbc0a2e80a860605160a05260805160c052604060a0a1005b630cce7676811861179b575f6040526040516103ff81116117a157338160051b60600152600181016040525033618060527f104c91de427fc87afec34d4d2ccb7171d5e4dc6c34d60cf6d18fa324bb455cb660806103e961808052336180a052806180c05280618080015f6040518083528060051b5f8261040081116117a157801561177d57905b8060051b606001518160051b602088010152600101818118611760575b50508201602001915050905081019050618060516180e052618080a1005b505b5f5ffd5b5f80fda165767970657283000309000b005b5f80fd"},"dev_messages":{},"devdoc":{},"pcmap":{"1002":{"location":[104,80,104,81]},"1009":{"location":[103,0,104,83]},"101":{"location":[56,19,56,26]},"1011":{"location":[103,0,104,83]},"1012":{"location":[103,0,104,83]},"1013":{"location":[108,0,109,83]},"1018":{"location":[108,0,109,83]},"1019":{"location":[108,0,109,83]},"1020":{"location":[108,0,109,83]},"1023":{"location":[108,0,109,83]},"1024":{"location":[109,31,109,32]},"1029":{"location":[109,50,109,60]},"1037":{"location":[109,65,109,79]},"1043":{"location":[108,0,109,83]},"1045":{"location":[108,0,109,83]},"1046":{"location":[108,0,109,83]},"1047":{"location":[113,0,114,88]},"1052":{"location":[113,0,114,88]},"1053":{"location":[113,0,114,88]},"1054":{"location":[113,0,114,88]},"1057":{"location":[113,0,114,88]},"1058":{"location":[114,43,114,53]},"1066":{"location":[114,58,114,72]},"1070":{"location":[114,81,114,82]},"1075":{"location":[114,86,114,87]},"1082":{"location":[113,0,114,88]},"1084":{"location":[113,0,114,88]},"1085":{"location":[113,0,114,88]},"1086":{"location":[118,0,119,88]},"1091":{"location":[118,0,119,88]},"1092":{"location":[118,0,119,88]},"1093":{"location":[118,0,119,88]},"1096":{"location":[118,0,119,88]},"1097":{"location":[119,12,119,13]},"110":{"location":[56,19,56,26]},"1102":{"location":[119,35,119,36]},"1107":{"location":[119,54,119,64]},"1115":{"location":[119,69,119,83]},"112":{"location":[56,19,56,26]},"1121":{"location":[118,0,119,88]},"1123":{"location":[118,0,119,88]},"1124":{"location":[118,0,119,88]},"1125":{"location":[123,0,125,22]},"113":{"location":[56,19,56,26]},"1130":{"location":[123,0,125,22]},"1131":{"location":[123,0,125,22]},"1132":{"location":[123,0,125,22]},"1135":{"location":[123,0,125,22]},"1139":{"location":[124,4,124,44]},"114":{"location":[57,17,57,42]},"1153":{"location":[125,11,125,22]},"119":{"location":[57,17,57,42]},"120":{"location":[57,17,57,42]},"121":{"location":[57,17,57,42]},"124":{"location":[57,17,57,42]},"1240":{"location":[123,0,125,22]},"1243":{"location":[123,0,125,22]},"1244":{"location":[123,0,125,22]},"1245":{"location":[129,0,132,41]},"125":{"location":[57,17,57,42]},"1250":{"location":[129,0,132,41]},"1251":{"location":[129,0,132,41]},"1252":{"location":[129,0,132,41]},"1255":{"location":[129,0,132,41]},"1259":{"location":[130,4,130,46]},"1264":{"location":[131,4,131,46]},"127":{"location":[57,17,57,42]},"1278":{"location":[132,12,132,25]},"129":{"location":[57,17,57,42]},"132":{"location":[57,17,57,42]},"1376":{"location":[132,27,132,40]},"140":{"dev":"dev: Integer overflow","location":[57,17,57,42]},"143":{"dev":"dev: Integer overflow","location":[57,17,57,42]},"1465":{"location":[129,0,132,41]},"1468":{"location":[129,0,132,41]},"1469":{"location":[129,0,132,41]},"1470":{"location":[136,0,139,41]},"1475":{"location":[136,0,139,41]},"1476":{"location":[136,0,139,41]},"1477":{"location":[136,0,139,41]},"1480":{"location":[136,0,139,41]},"1481":{"location":[137,4,137,51]},"1483":{"location":[137,4,137,51]},"1484":{"location":[137,4,137,51]},"1486":{"location":[137,4,137,51]},"1542":{"location":[139,27,139,40]},"1631":{"location":[136,0,139,41]},"1634":{"location":[136,0,139,41]},"1635":{"location":[136,0,139,41]},"1636":{"location":[143,0,145,20]},"1641":{"location":[143,0,145,20]},"1642":{"location":[143,0,145,20]},"1643":{"location":[143,0,145,20]},"1646":{"location":[143,0,145,20]},"1653":{"location":[144,4,144,59]},"1654":{"location":[145,11,145,12]},"167":{"location":[57,17,57,42]},"169":{"location":[57,17,57,42]},"170":{"location":[57,17,57,42]},"171":{"location":[58,17,58,43]},"176":{"location":[58,17,58,43]},"177":{"location":[58,17,58,43]},"178":{"location":[58,17,58,43]},"181":{"location":[58,17,58,43]},"182":{"location":[58,17,58,43]},"184":{"location":[58,17,58,43]},"186":{"location":[58,17,58,43]},"189":{"location":[58,17,58,43]},"1896":{"location":[143,0,145,20]},"1899":{"location":[143,0,145,20]},"19":{"dev":"dev: Cannot send ether to non-payable function","location":null},"1900":{"location":[143,0,145,20]},"1901":{"location":[149,0,152,33]},"1906":{"location":[149,0,152,33]},"1907":{"location":[149,0,152,33]},"1908":{"location":[149,0,152,33]},"1911":{"location":[149,0,152,33]},"1915":{"location":[150,4,150,41]},"1920":{"location":[151,4,151,44]},"1934":{"location":[152,11,152,20]},"200":{"dev":"dev: Integer underflow","location":[58,17,58,43]},"2018":{"location":[152,22,152,33]},"203":{"dev":"dev: Integer underflow","location":[58,17,58,43]},"2107":{"location":[149,0,152,33]},"2110":{"location":[149,0,152,33]},"2111":{"location":[149,0,152,33]},"2112":{"location":[156,0,166,5]},"2117":{"location":[156,0,166,5]},"2118":{"location":[156,0,166,5]},"2119":{"location":[156,0,166,5]},"2122":{"location":[156,0,166,5]},"2123":{"location":[159,17,159,18]},"2128":{"location":[161,29,161,39]},"2136":{"location":[161,44,161,58]},"2140":{"location":[162,29,162,39]},"2148":{"location":[162,44,162,58]},"215":{"dev":"dev: Integer underflow","location":[58,17,58,43]},"2152":{"location":[164,17,164,18]},"2159":{"location":[156,0,166,5]},"216":{"dev":"dev: Integer underflow","location":[58,17,58,43]},"2161":{"location":[156,0,166,5]},"2162":{"location":[156,0,166,5]},"2163":{"location":[170,0,171,13]},"2168":{"location":[170,0,171,13]},"2169":{"location":[170,0,171,13]},"2170":{"location":[170,0,171,13]},"2173":{"location":[170,0,171,13]},"219":{"dev":"dev: Integer underflow","location":[58,17,58,43]},"22":{"dev":"dev: Cannot send ether to non-payable function","location":null},"2244":{"location":[170,0,171,13]},"2246":{"location":[170,0,171,13]},"2247":{"location":[170,0,171,13]},"2248":{"location":[175,0,176,14]},"2253":{"location":[175,0,176,14]},"2254":{"location":[175,0,176,14]},"2255":{"location":[175,0,176,14]},"2258":{"location":[175,0,176,14]},"2270":{"location":[176,12,176,13]},"23":{"location":[53,14,53,21]},"233":{"location":[58,17,58,43]},"235":{"location":[58,17,58,43]},"2356":{"location":[175,0,176,14]},"2358":{"location":[175,0,176,14]},"2359":{"location":[175,0,176,14]},"236":{"location":[58,17,58,43]},"2360":{"location":[180,0,181,20]},"2365":{"location":[180,0,181,20]},"2366":{"location":[180,0,181,20]},"2367":{"location":[180,0,181,20]},"237":{"location":[59,19,59,64]},"2370":{"location":[180,0,181,20]},"2382":{"location":[181,12,181,13]},"2388":{"location":[181,15,181,16]},"2394":{"location":[181,18,181,19]},"242":{"location":[59,19,59,64]},"243":{"location":[59,19,59,64]},"244":{"location":[59,19,59,64]},"247":{"location":[59,19,59,64]},"248":{"location":[59,19,59,64]},"2482":{"location":[180,0,181,20]},"2484":{"location":[180,0,181,20]},"2485":{"location":[180,0,181,20]},"2486":{"location":[185,0,186,35]},"2491":{"location":[185,0,186,35]},"2492":{"location":[185,0,186,35]},"2493":{"location":[185,0,186,35]},"2496":{"location":[185,0,186,35]},"250":{"location":[59,19,59,64]},"2508":{"location":[186,12,186,22]},"2512":{"location":[186,24,186,34]},"252":{"location":[59,19,59,64]},"255":{"location":[59,19,59,64]},"2598":{"location":[185,0,186,35]},"2600":{"location":[185,0,186,35]},"2601":{"location":[185,0,186,35]},"2602":{"location":[190,0,194,5]},"2607":{"location":[190,0,194,5]},"2608":{"location":[190,0,194,5]},"2609":{"location":[190,0,194,5]},"2612":{"location":[190,0,194,5]},"2624":{"location":[192,39,192,49]},"2633":{"location":[192,54,192,68]},"2638":{"location":[192,77,192,78]},"2644":{"location":[193,39,193,49]},"2653":{"location":[193,54,193,68]},"2658":{"location":[193,77,193,78]},"267":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"270":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"2772":{"location":[190,0,194,5]},"2774":{"location":[190,0,194,5]},"2775":{"location":[190,0,194,5]},"2776":{"location":[198,0,202,5]},"2781":{"location":[198,0,202,5]},"2782":{"location":[198,0,202,5]},"2783":{"location":[198,0,202,5]},"2786":{"location":[198,0,202,5]},"2787":{"location":[200,28,200,29]},"2792":{"location":[200,47,200,57]},"28":{"location":[53,14,53,21]},"2800":{"location":[200,62,200,76]},"2804":{"location":[201,28,201,29]},"2809":{"location":[201,47,201,57]},"2817":{"location":[201,62,201,76]},"2823":{"location":[198,0,202,5]},"2825":{"location":[198,0,202,5]},"2826":{"location":[198,0,202,5]},"2827":{"location":[206,0,207,29]},"2832":{"location":[206,0,207,29]},"2833":{"location":[206,0,207,29]},"2834":{"location":[206,0,207,29]},"2837":{"location":[206,0,207,29]},"2848":{"location":[206,0,207,29]},"2850":{"location":[206,0,207,29]},"2851":{"location":[206,0,207,29]},"2852":{"location":[212,0,213,51]},"2857":{"location":[212,0,213,51]},"2858":{"location":[212,0,213,51]},"2859":{"location":[212,0,213,51]},"286":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"2862":{"location":[212,0,213,51]},"287":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"2873":{"location":[212,0,213,51]},"2875":{"location":[212,0,213,51]},"2876":{"location":[212,0,213,51]},"2877":{"location":[217,0,218,21]},"2882":{"location":[217,0,218,21]},"2883":{"location":[217,0,218,21]},"2884":{"location":[217,0,218,21]},"2887":{"location":[217,0,218,21]},"2888":{"location":[218,12,218,15]},"2893":{"location":[218,17,218,20]},"29":{"location":[53,14,53,21]},"290":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"2901":{"location":[217,0,218,21]},"2903":{"location":[217,0,218,21]},"2904":{"location":[217,0,218,21]},"2905":{"location":[222,0,223,17]},"2910":{"location":[222,0,223,17]},"2911":{"location":[222,0,223,17]},"2912":{"location":[222,0,223,17]},"2915":{"location":[222,0,223,17]},"2924":{"location":[222,0,223,17]},"2926":{"location":[222,0,223,17]},"2927":{"location":[222,0,223,17]},"2928":{"location":[227,0,230,42]},"2933":{"location":[227,0,230,42]},"2934":{"location":[227,0,230,42]},"2935":{"location":[227,0,230,42]},"2938":{"location":[227,0,230,42]},"2945":{"location":[228,4,228,47]},"2946":{"location":[229,19,229,29]},"2947":{"location":[229,4,229,16]},"2949":{"location":[227,0,230,42]},"30":{"location":[53,14,53,21]},"309":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"3115":{"location":[227,0,230,42]},"3118":{"location":[227,0,230,42]},"3119":{"location":[227,0,230,42]},"312":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"3120":{"location":[234,0,235,35]},"3125":{"location":[234,0,235,35]},"3126":{"location":[234,0,235,35]},"3127":{"location":[234,0,235,35]},"3130":{"location":[234,0,235,35]},"3131":{"location":[235,13,235,14]},"3136":{"location":[235,16,235,17]},"3141":{"location":[235,21,235,22]},"3146":{"location":[235,24,235,25]},"3151":{"location":[235,29,235,30]},"3156":{"location":[235,32,235,33]},"3163":{"location":[234,0,235,35]},"3165":{"location":[234,0,235,35]},"3166":{"location":[234,0,235,35]},"3167":{"location":[239,0,240,35]},"3172":{"location":[239,0,240,35]},"3173":{"location":[239,0,240,35]},"3174":{"location":[239,0,240,35]},"3177":{"location":[239,0,240,35]},"3189":{"location":[240,13,240,14]},"3196":{"location":[240,16,240,17]},"3203":{"location":[240,21,240,22]},"3210":{"location":[240,24,240,25]},"3217":{"location":[240,29,240,30]},"3224":{"location":[240,32,240,33]},"325":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"326":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"329":{"dev":"dev: Integer underflow","location":[59,19,59,64]},"33":{"location":[53,14,53,21]},"3333":{"location":[239,0,240,35]},"3335":{"location":[239,0,240,35]},"3336":{"location":[239,0,240,35]},"3337":{"location":[244,0,245,24]},"3342":{"location":[244,0,245,24]},"3343":{"location":[244,0,245,24]},"3344":{"location":[244,0,245,24]},"3347":{"location":[244,0,245,24]},"343":{"location":[59,19,59,64]},"345":{"location":[59,19,59,64]},"346":{"location":[59,19,59,64]},"347":{"location":[75,0,77,22]},"352":{"location":[75,0,77,22]},"353":{"location":[75,0,77,22]},"354":{"location":[75,0,77,22]},"357":{"location":[75,0,77,22]},"358":{"location":[76,22,76,22]},"359":{"location":[76,4,76,22]},"3610":{"location":[244,0,245,24]},"3612":{"location":[244,0,245,24]},"3613":{"location":[244,0,245,24]},"3614":{"location":[249,0,250,26]},"3619":{"location":[249,0,250,26]},"3620":{"location":[249,0,250,26]},"3621":{"location":[249,0,250,26]},"3624":{"location":[249,0,250,26]},"392":{"location":[76,4,76,22]},"393":{"location":[76,4,76,22]},"395":{"location":[76,4,76,22]},"396":{"location":[77,22,77,22]},"398":{"location":[77,4,77,22]},"41":{"location":[53,14,53,21]},"43":{"location":[53,14,53,21]},"431":{"location":[77,4,77,22]},"432":{"location":[77,4,77,22]},"434":{"location":[77,4,77,22]},"435":{"location":[75,0,77,22]},"436":{"location":[75,0,77,22]},"437":{"location":[80,0,85,80]},"44":{"location":[53,14,53,21]},"442":{"location":[80,0,85,80]},"443":{"location":[80,0,85,80]},"444":{"location":[80,0,85,80]},"447":{"location":[80,0,85,80]},"448":{"location":[80,0,85,80]},"45":{"location":[54,17,54,24]},"450":{"location":[80,0,85,80]},"452":{"location":[80,0,85,80]},"455":{"location":[80,0,85,80]},"456":{"location":[81,25,81,35]},"457":{"location":[81,11,81,35]},"458":{"location":[81,11,81,21]},"459":{"location":[81,11,81,35]},"460":{"location":[81,11,81,35]},"461":{"dev":"dev: USER_ASSERT","location":[81,4,81,50]},"464":{"dev":"dev: USER_ASSERT","location":[81,4,81,50]},"469":{"location":[81,37,81,50]},"50":{"location":[54,17,54,24]},"505":{"location":[81,37,81,50]},"506":{"location":[81,37,81,50]},"508":{"location":[81,4,81,50]},"51":{"location":[54,17,54,24]},"52":{"location":[54,17,54,24]},"5448":{"location":[249,0,250,26]},"5450":{"location":[249,0,250,26]},"5451":{"location":[249,0,250,26]},"5452":{"location":[254,0,255,99]},"5457":{"location":[254,0,255,99]},"5458":{"location":[254,0,255,99]},"5459":{"location":[254,0,255,99]},"5462":{"location":[254,0,255,99]},"5474":{"location":[255,13,255,23]},"5480":{"location":[255,25,255,35]},"5486":{"location":[255,37,255,47]},"55":{"location":[54,17,54,24]},"555":{"dev":"dev: USER_ASSERT","location":[81,4,81,50]},"556":{"location":[82,18,82,19]},"558":{"location":[85,65,85,68]},"560":{"location":[82,11,82,19]},"5612":{"location":[254,0,255,99]},"5614":{"location":[254,0,255,99]},"5615":{"location":[254,0,255,99]},"5616":{"location":[259,0,271,8]},"562":{"dev":"dev: USER_ASSERT","location":[82,4,82,19]},"5621":{"location":[259,0,271,8]},"5622":{"location":[259,0,271,8]},"5623":{"location":[259,0,271,8]},"5626":{"location":[259,0,271,8]},"5627":{"location":[259,0,271,8]},"5630":{"location":[259,0,271,8]},"5632":{"location":[259,0,271,8]},"5635":{"location":[259,0,271,8]},"5636":{"location":[259,0,271,8]},"5637":{"location":[259,0,271,8]},"5638":{"location":[275,0,276,8]},"5643":{"location":[275,0,276,8]},"5644":{"location":[275,0,276,8]},"5645":{"location":[275,0,276,8]},"5648":{"location":[275,0,276,8]},"5649":{"location":[275,0,276,8]},"565":{"dev":"dev: USER_ASSERT","location":[82,4,82,19]},"5651":{"location":[275,0,276,8]},"5653":{"location":[275,0,276,8]},"5656":{"location":[275,0,276,8]},"566":{"location":[83,22,83,35]},"5664":{"dev":"dev: Integer overflow","location":[275,0,276,8]},"5667":{"dev":"dev: Integer overflow","location":[275,0,276,8]},"5670":{"location":[275,14,275,34]},"5676":{"location":[275,14,275,34]},"5677":{"location":[275,0,276,8]},"5678":{"location":[275,0,276,8]},"5679":{"location":[280,0,281,8]},"5684":{"location":[280,0,281,8]},"5685":{"location":[280,0,281,8]},"5686":{"location":[280,0,281,8]},"5689":{"location":[280,0,281,8]},"569":{"location":[83,4,83,19]},"5690":{"location":[280,0,281,8]},"5692":{"location":[280,0,281,8]},"5694":{"location":[280,0,281,8]},"5697":{"location":[280,0,281,8]},"5705":{"dev":"dev: Integer overflow","location":[280,0,281,8]},"5708":{"dev":"dev: Integer overflow","location":[280,0,281,8]},"572":{"location":[85,65,85,68]},"5725":{"dev":"dev: Integer overflow","location":[280,0,281,8]},"5728":{"dev":"dev: Integer overflow","location":[280,0,281,8]},"5738":{"location":[280,0,281,8]},"5739":{"location":[280,0,281,8]},"5740":{"location":[284,0,290,32]},"5745":{"location":[284,0,290,32]},"5746":{"location":[284,0,290,32]},"5747":{"location":[284,0,290,32]},"575":{"location":[84,4,84,17]},"5750":{"location":[284,0,290,32]},"5751":{"location":[285,22,285,88]},"5786":{"location":[285,4,285,88]},"5787":{"location":[287,11,287,21]},"5790":{"location":[286,4,289,6]},"5791":{"location":[288,11,288,17]},"5796":{"location":[286,4,289,6]},"5797":{"location":[290,4,290,32]},"582":{"location":[85,70,85,79]},"5844":{"location":[290,4,290,32]},"5846":{"location":[290,4,290,32]},"5847":{"location":[284,0,290,32]},"5848":{"location":[284,0,290,32]},"5849":{"location":[293,0,297,58]},"5854":{"location":[293,0,297,58]},"5855":{"location":[293,0,297,58]},"5856":{"location":[293,0,297,58]},"5859":{"location":[293,0,297,58]},"5863":{"location":[294,4,294,37]},"5864":{"location":[295,4,295,7]},"5866":{"location":[295,4,295,26]},"5870":{"location":[295,4,295,26]},"5872":{"dev":"dev: Integer overflow","location":[295,4,295,26]},"5875":{"dev":"dev: Integer overflow","location":[295,4,295,26]},"5876":{"location":[295,15,295,25]},"5877":{"location":[295,4,295,26]},"5887":{"location":[295,4,295,26]},"5889":{"location":[295,4,295,7]},"5892":{"location":[295,4,295,26]},"5893":{"location":[296,24,296,34]},"5897":{"location":[293,0,297,58]},"5898":{"location":[297,4,297,58]},"5933":{"location":[297,30,297,34]},"5940":{"location":[297,36,297,46]},"5956":{"location":[297,48,297,51]},"6038":{"location":[297,4,297,58]},"6041":{"location":[297,4,297,58]},"6042":{"location":[293,0,297,58]},"6043":{"location":[293,0,297,58]},"6048":{"dev":"dev: Fallback not defined","location":null},"618":{"location":[85,70,85,79]},"619":{"location":[85,70,85,79]},"628":{"location":[85,4,85,80]},"629":{"location":[85,4,85,80]},"630":{"location":[85,65,85,68]},"632":{"location":[85,4,85,80]},"633":{"location":[85,4,85,80]},"64":{"location":[54,17,54,24]},"66":{"location":[54,17,54,24]},"67":{"location":[54,17,54,24]},"672":{"location":[85,21,85,35]},"676":{"location":[85,37,85,52]},"68":{"location":[55,19,55,26]},"691":{"location":[85,54,85,63]},"727":{"location":[85,54,85,63]},"728":{"location":[85,54,85,63]},"73":{"location":[55,19,55,26]},"74":{"location":[55,19,55,26]},"75":{"location":[55,19,55,26]},"78":{"location":[55,19,55,26]},"793":{"location":[85,4,85,80]},"795":{"location":[85,4,85,80]},"796":{"location":[80,0,85,80]},"797":{"location":[80,0,85,80]},"798":{"location":[88,0,90,31]},"803":{"location":[88,0,90,31]},"804":{"location":[88,0,90,31]},"805":{"location":[88,0,90,31]},"808":{"location":[88,0,90,31]},"809":{"location":[88,0,90,31]},"811":{"location":[88,0,90,31]},"813":{"location":[88,0,90,31]},"816":{"location":[88,0,90,31]},"824":{"dev":"dev: Integer overflow","location":[88,0,90,31]},"827":{"dev":"dev: Integer overflow","location":[88,0,90,31]},"828":{"location":[88,15,88,32]},"830":{"location":[88,15,88,32]},"831":{"location":[89,22,89,30]},"834":{"location":[89,4,89,19]},"837":{"location":[90,22,90,30]},"839":{"location":[90,4,90,31]},"840":{"location":[90,4,90,31]},"87":{"location":[55,19,55,26]},"873":{"location":[90,4,90,31]},"874":{"location":[90,4,90,31]},"876":{"location":[90,4,90,31]},"877":{"location":[88,0,90,31]},"878":{"location":[88,0,90,31]},"879":{"location":[93,0,94,34]},"884":{"location":[93,0,94,34]},"885":{"location":[93,0,94,34]},"886":{"location":[93,0,94,34]},"889":{"location":[93,0,94,34]},"89":{"location":[55,19,55,26]},"890":{"location":[93,0,94,34]},"892":{"location":[93,0,94,34]},"894":{"location":[93,0,94,34]},"897":{"location":[93,0,94,34]},"90":{"location":[55,19,55,26]},"905":{"dev":"dev: Integer overflow","location":[93,0,94,34]},"908":{"dev":"dev: Integer overflow","location":[93,0,94,34]},"909":{"location":[93,15,93,32]},"91":{"location":[56,19,56,26]},"911":{"location":[93,15,93,32]},"912":{"location":[94,4,94,17]},"914":{"location":[94,18,94,26]},"917":{"location":[94,4,94,27]},"919":{"location":[94,4,94,27]},"920":{"location":[94,4,94,27]},"921":{"location":[94,4,94,27]},"922":{"location":[94,4,94,27]},"924":{"location":[94,4,94,27]},"925":{"location":[94,4,94,27]},"926":{"location":[94,4,94,34]},"927":{"location":[94,4,94,34]},"928":{"location":[94,31,94,34]},"932":{"location":[94,4,94,34]},"934":{"location":[94,4,94,34]},"937":{"dev":"dev: Integer overflow","location":[94,4,94,34]},"940":{"dev":"dev: Integer overflow","location":[94,4,94,34]},"941":{"location":[94,4,94,34]},"942":{"location":[94,4,94,34]},"943":{"location":[94,4,94,34]},"944":{"location":[94,4,94,34]},"945":{"location":[94,4,94,34]},"947":{"location":[94,4,94,34]},"948":{"location":[93,0,94,34]},"949":{"location":[93,0,94,34]},"950":{"location":[98,0,99,55]},"955":{"location":[98,0,99,55]},"956":{"location":[98,0,99,55]},"957":{"location":[98,0,99,55]},"96":{"location":[56,19,56,26]},"960":{"location":[98,0,99,55]},"961":{"location":[99,24,99,34]},"969":{"location":[99,39,99,53]},"97":{"location":[56,19,56,26]},"975":{"location":[98,0,99,55]},"977":{"location":[98,0,99,55]},"978":{"location":[98,0,99,55]},"979":{"location":[103,0,104,83]},"98":{"location":[56,19,56,26]},"984":{"location":[103,0,104,83]},"985":{"location":[103,0,104,83]},"986":{"location":[103,0,104,83]},"989":{"location":[103,0,104,83]},"990":{"location":[104,42,104,52]},"998":{"location":[104,57,104,71]}},"runtimeBytecode":{"bytecode":"0x6003361161000c5761179d565b5f3560e01c346117a157638da5cb5b811861002c575f5460405260206040f35b6323fd0e4081186100435760015460405260206040f35b634825cf6f811861005a5760025460405260206040f35b636cbceeec81186100715760035460405260206040f35b6327e235e381186100aa57602436106117a1576004358060a01c6117a15760405260046040516020525f5260405f205460605260206060f35b63d3aaff6d81186100ec57604436106117a157610401600435600281116117a1570260050160243581548110156117a157600182010190505460405260206040f35b63ae8ef2cb811861015a57608436106117a15762300c01600435600481116117a15702610c0801610c0360243582548110156117a1570260018201019050610401604435600281116117a157028101905060643581548110156117a157600182010190505460405260206040f35b632beb171181186101b4575f7f1a7c56fae0af54ebae73bc4699b9de9835e7bb86b050dff7e80695b633f17abd5f6040a260017fe5299d63f5ecdd1740024ea0902bd82cc8dc6b51d69078e007096f907615ced55f6040a2005b633fb5c1cb811861031d57602436106117a1575f5433181561022b57600b6040527f21617574686f72697a656400000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b6005600435146117a15760015460025560043560015560076080527f44796e616d69630000000000000000000000000000000000000000000000000060a05260808051602082012090506004357fa84473122c11e32cd505595f246a28418b8ecd6cf819f4e3915363fad1b8f9686060600143034060c05260025460e052806101005260076040527f44796e616d69630000000000000000000000000000000000000000000000000060605260408160c00181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f82516020010116905090508101905060c0a3005b63e30081a0811861036e57602436106117a1576004358060a01c6117a1576040526040516003556040517f7ff7bacc6cd661809ed1ddce28d4ad2c5b37779b61b9e3235f8262be529101a95f6060a2005b63e30443bc81186103b557604436106117a1576004358060a01c6117a15760405260046040516020525f5260405f2080546024358082018281106117a15790509050815550005b6309b1b3f281186103d25733604052600143034060605260406040f35b6302f487d681186103f457336040526001430340606052600160805260606040f35b63a420b5a5811861041657600260405233606052600143034060805260606040f35b63e9f7fd14811861043d573360405260014303406060526001608052600160a05260806040f35b63a2fbee538118610464576002604052600260605233608052600143034060a05260806040f35b637a79591d81186104dc575f6040526020806102e052806102e0015f6040518083528060061b5f82600a81116117a15780156104c757905b8060061b60208701018160061b6060018051825260208101516020830152505060010181811861049c575b505082016020019150509050810190506102e0f35b63a4f6d26b81186105bd575f6040525f6102e0526040806105805280610580015f6040518083528060061b5f82600a81116117a157801561054457905b8060061b60208701018160061b60600180518252602081015160208301525050600101818118610519575b50508201602001915050905081019050806105a05280610580015f6102e0518083528060061b5f82600a81116117a15780156105a857905b8060061b60208701018160061b610300018051825260208101516020830152505060010181811861057c575b50508201602001915050905081019050610580f35b63252e423e81186106635760e03660403760e06040516101a0526060516101c0526080516101e05260a0516102005260c0516102205260e051610240528061026052806101a0015f610100518083528060061b5f82600281116117a157801561064e57905b8060061b60208701018160061b6101200180518252602081015160208301525050600101818118610622575b505082016020019150509050810190506101a0f35b63c2f14839811861076c576103c0366040375f6104005260405161042052606051610440526080516104605260a0516104805260c0516104a05260e0516104c052610100516104e05261012051610500526101405161052052610160516105405261018051610560526101a051610580526101c0516105a0526101e0516105c052610200516105e05261022051610600526102405161062052610260516106405261028051610660526102a051610680526102c0516106a0526102e0516106c052610300516106e05261032051610700526103405161072052610360516107405261038051610760526103a051610780526103c0516107a0526103e0516107c0526103e0610400f35b63a5c1b662811861083f575f6040525f6101a0526040806104405280610440015f6040518083528060051b5f82600a81116117a15780156107c657905b8060051b606001518160051b6020880101526001018181186107a9575b50508201602001915050905081019050806104605280610440015f6101a0518083528060061b5f82600a81116117a157801561082a57905b8060061b60208701018160061b6101c001805182526020810151602083015250506001018181186107fe575b50508201602001915050905081019050610440f35b6342ce1ec681186108725760016040523360605260014303406080523360a052600143034060c052600260e05260c06040f35b63052f3e7681186108c757602080604052806040015f5f82525f5f5f600181116117a15780156108b457905b5f8160051b60208701015260010181811861089e575b5050810160200190509050810190506040f35b63b345ad96811861093757602080604052806040015f600160c052600160a0525f60a0518084528060051b5f82600181116117a157801561092157905b8060051b60c001518160051b602089010152600101818118610904575b5050820160200191505090509050810190506040f35b6335417bf481186109b557602080604052806040015f600161010052600261012052600361014052600360e0525f60e0518084528060051b5f82600381116117a157801561099f57905b8060051b61010001518160051b602089010152600101818118610981575b5050820160200191505090509050810190506040f35b63a5b0930d8118610a2957602080604052806040015f3360e0523361010052600260c0525f60c0518084528060051b5f82600281116117a1578015610a1357905b8060051b60e001518160051b6020890101526001018181186109f6575b5050820160200191505090509050810190506040f35b639bfb2ad88118610ad757602080604052806040015f336101605260014303406101805260016101a052336101c05260014303406101e0526002610200526002610140525f61014051808452606081025f82600281116117a1578015610ac157905b60608102602088010160608202610160018051825260208101516020830152604081015160408301525050600101818118610a8b575b5050820160200191505090509050810190506040f35b633ce80e948118610b0a576001604052336060526001430340608052600260a0523360c052600143034060e05260c06040f35b6343790b648118610b2357610280366040376102806040f35b63d4d64b358118610b3c57610500366040376105006040f35b63650543a38118610b5857607b60405261014160605260406040f35b63243e09638118610b6f5760403660403760406040f35b638ba6052d8118610c2f5761028036604037336040526040516102c0526060516102e0526080516103005260a0516103205260c0516103405260e051610360526101005161038052610120516103a052610140516103c052610160516103e05261018051610400526101a051610420526101c051610440526101e051610460526102005161048052610220516104a052610240516104c052610260516104e05261028051610500526102a0516105205261028036610540376105006102c0f35b63ccd62aa48118610c5e57600160405260026060526003608052600460a052600560c052600660e05260c06040f35b636126c87f8118610d0857602080604052806040015f6001620100a0526002620100c0526003620100e052600462010100526005620101205260066201014052600362010080525f62010080518084528060061b5f8261040081116117a1578015610cf257905b8060061b60208801018160061b620100a00180518252602081015160208301525050600101818118610cc5575b5050820160200191505090509050810190506040f35b6394a66fc98118610e1d576020806040528060400160608082528082015f6005548083528060051b5f8261040081116117a1578015610d5d57905b80600601548160051b602088010152600101818118610d43575b505082016020019150509050810190508060208301528082015f610406548083528060051b5f8261040081116117a1578015610db057905b8061040701548160051b602088010152600101818118610d95575b505082016020019150509050810190508060408301528082015f610807548083528060051b5f8261040081116117a1578015610e0357905b8061080801548160051b602088010152600101818118610de8575b505082016020019150509050810190509050810190506040f35b63abeb2022811861154b576020806040528060400160a08082528082015f610c08548083528060051b5f8261040081116117a1578015610f8957905b828160051b602088010152610c038102610c090183602088010160608082528082015f84548083528060051b5f8261040081116117a1578015610eb457905b8060018a0101548160051b602088010152600101818118610e98575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a1578015610f0b57905b806001880101548160051b602088010152600101818118610eef575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a1578015610f6457905b806001880101548160051b602088010152600101818118610f48575b5050820160200191505090509050810190509050905083019250600101818118610e59575b505082016020019150509050810190508060208301528082015f62301809548083528060051b5f8261040081116117a15780156110f357905b828160051b602088010152610c0381026230180a0183602088010160608082528082015f84548083528060051b5f8261040081116117a157801561101e57905b8060018a0101548160051b602088010152600101818118611002575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a157801561107557905b806001880101548160051b602088010152600101818118611059575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a15780156110ce57905b806001880101548160051b6020880101526001018181186110b2575b5050820160200191505090509050810190509050905083019250600101818118610fc2575b505082016020019150509050810190508060408301528082015f6260240a548083528060051b5f8261040081116117a157801561125d57905b828160051b602088010152610c0381026260240b0183602088010160608082528082015f84548083528060051b5f8261040081116117a157801561118857905b8060018a0101548160051b60208801015260010181811861116c575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a15780156111df57905b806001880101548160051b6020880101526001018181186111c3575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a157801561123857905b806001880101548160051b60208801015260010181811861121c575b505082016020019150509050905081019050905090508301925060010181811861112c575b505082016020019150509050810190508060608301528082015f6290300b548083528060051b5f8261040081116117a15780156113c757905b828160051b602088010152610c0381026290300c0183602088010160608082528082015f84548083528060051b5f8261040081116117a15780156112f257905b8060018a0101548160051b6020880101526001018181186112d6575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a157801561134957905b806001880101548160051b60208801015260010181811861132d575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a15780156113a257905b806001880101548160051b602088010152600101818118611386575b5050820160200191505090509050810190509050905083019250600101818118611296575b505082016020019150509050810190508060808301528082015f62c03c0c548083528060051b5f8261040081116117a157801561153157905b828160051b602088010152610c03810262c03c0d0183602088010160608082528082015f84548083528060051b5f8261040081116117a157801561145c57905b8060018a0101548160051b602088010152600101818118611440575b5050820160200191505090508101905080602083015261040183018183015f82548083528060051b5f8261040081116117a15780156114b357905b806001880101548160051b602088010152600101818118611497575b50508201602001915050905090508101905080604083015261080283018183015f82548083528060051b5f8261040081116117a157801561150c57905b806001880101548160051b6020880101526001018181186114f0575b5050820160200191505090509050810190509050905083019250600101818118611400575b505082016020019150509050810190509050810190506040f35b6399e74a4c81186115ef57602080604052806040015f33620180a05233620180c05233620180e0526060366201810037600262018080525f6201808051808452606081025f8261040081116117a15780156115d957905b60608102602088010160608202620180a00180518252602081015160208301526040810151604083015250506001018181186115a2575b5050820160200191505090509050810190506040f35b63acab48d881186116055761014436106117a157005b6378c067b0811861162e57604436106117a1576004358060a01c6117a157604052602435606052005b637b92b7ce811861166b57608436106117a1576004358060a01c6117a1576040526024356060526044358060a01c6117a15760805260643560a052005b63136af17f81186116d8577f1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef604052336060526040516080527fa731a78d94f9b7de7d6ab1ba8b80641702fa1c4a60a45d52c8db2bbc0a2e80a860605160a05260805160c052604060a0a1005b630cce7676811861179b575f6040526040516103ff81116117a157338160051b60600152600181016040525033618060527f104c91de427fc87afec34d4d2ccb7171d5e4dc6c34d60cf6d18fa324bb455cb660806103e961808052336180a052806180c05280618080015f6040518083528060051b5f8261040081116117a157801561177d57905b8060051b606001518160051b602088010152600101818118611760575b50508201602001915050905081019050618060516180e052618080a1005b505b5f5ffd5b5f80fda165767970657283000309000b"},"sourceId":"TestContractVy.vy","sourcemap":"-1:-1:0:-;;;;:::-;;:::-;:::-;;;;;;;:::-;873:7;;;;:::-;-1:-1;;;;;873:7;;:::-;899;;;;:::-;-1:-1;;;;;899:7;;:::-;927;;;;:::-;-1:-1;;;;;927:7;;:::-;955;;;;:::-;-1:-1;;;;;955:7;;:::-;981:25;;;;:::-;;;-1:-1;981:25;:::-;-1:-1;;;;;;:::-;;;;;;;;;;;;;;;;;981:25;;:::-;1025:26;;;;:::-;;;-1:-1;1025:26;:::-;-1:-1;;;;;;;:::-;;;;;;;;;;;;:::-;;;;;;;;;;;1025:26;;:::-;1072:45;;;;:::-;;;-1:-1;1072:45;:::-;-1:-1;;;;;;;:::-;;;;;;;;;;;;;:::-;;;;;;;;;;;;;;;:::-;;;;;;;;;;;;;;:::-;;;;;;;;;;;1072:45;;:::-;1479:62;;;;:::-;1518:0;1500:18;;;;1541:0;1523:18;;;;1479:62;:::-;1553:240;;;;:::-;;;-1:-1;1553:240;:::-;1607:10;1593:24;:10;:24;;1586:46;:::-;-1:-1;;1619:13;-1:-1;;1619:13;;1586:46;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1586:46::-;1651:1;1778:3;1644:8;-1:-1;1637:15;:::-;1675:13;-1:-1;1657:15;-1:-1;1778:3;-1:-1;1693:13;-1:-1;;;1783:9;-1:-1;;1783:9;;-1:-1;;;;;;1717:76;;1778:3;1717:76;;-1:-1;;;;1734:14;-1:-1;;1750:15;-1:-1;;;;;;;;1767:9;-1:-1;;1767:9;;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:76;;1553:240;:::-;1805:97;;;;:::-;;;-1:-1;1805:97;:::-;-1:-1;;;;;;:::-;1820:17;;1862:8;-1:-1;1844:15;-1:-1;1893:8;1875:27;;;;;1805:97;:::-;1914:83;;;;:::-;;;-1:-1;1914:83;:::-;-1:-1;;;;;;:::-;1929:17;;1967:13;1981:8;-1:-1;1967:23;;;;;;;:30;;1994:3;-1:-1;;1967:30;-1:-1;1967:30;-1:-1;;;:::-;1967:30;;;;;-1:-1;1967:30;1914:83;:::-;2015:84;;;;:::-;2068:10;-1:-1;;;;;2083:14;-1:-1;;;2015:84;;:::-;2117:124;;;;:::-;2200:10;-1:-1;;;;;2215:14;-1:-1;;2238:1;-1:-1;;;2117:124;;:::-;2259;;;;:::-;2331:1;-1:-1;;2350:10;-1:-1;;;;;2365:14;-1:-1;;;2259:124;;:::-;2401:149;;;;:::-;2505:10;-1:-1;;;;;2520:14;-1:-1;;2543:1;-1:-1;;2548:1;-1:-1;;;2401:149;;:::-;2568;;;;:::-;2641:1;-1:-1;;2664:1;-1:-1;;2683:10;-1:-1;;;;;2698:14;-1:-1;;;2568:149;;:::-;2735:126;;;;:::-;-1:-1;;2798:40;-1:-1;;;;;;;;2850:11;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;2735:126;;:::-;2879:225;;;;:::-;-1:-1;;2973:42;-1:-1;;3020:42;-1:-1;;;;;;;;3075:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;3090:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;2879:225;;:::-;3122:236;;;;:::-;3223:47;;;;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3344:13;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;3122:236;;:::-;3376:148;;;;:::-;-1:-1;;;3448:55;3515:1;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3376:148;;:::-;3542:208;;;;:::-;-1:-1;;3634:37;-1:-1;;3676:40;-1:-1;;;;;;;;3728:9;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;3739:11;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;3542:208;;:::-;3768:282;;;;:::-;3856:1;-1:-1;;3907:10;-1:-1;;;;;3922:14;-1:-1;;3969:10;-1:-1;;;;;3984:14;-1:-1;;4033:1;-1:-1;;;3768:282;;:::-;4068:58;;;;:::-;-1:-1;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;4068:58;;:::-;4144:64;;;;:::-;-1:-1;;;;;;;;4206:1;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;4144:64;;:::-;4226:66;;;;:::-;-1:-1;;;;;;;;4284:1;-1:-1;;4287:1;-1:-1;;4290:1;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;4226:66;;:::-;4310:82;;;;:::-;-1:-1;;;;;;;;4369:10;-1:-1;;4381:10;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;4310:82;;:::-;4410:240;;;;:::-;-1:-1;;;;;;;;4521:10;-1:-1;;;;;4536:14;-1:-1;;4559:1;-1:-1;;4603:10;-1:-1;;;;;4618:14;-1:-1;;4641:1;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;4410:240;;:::-;4668:229;;;;:::-;4757:1;-1:-1;;4776:10;-1:-1;;;;;4791:14;-1:-1;;4839:1;-1:-1;;4858:10;-1:-1;;;;;4873:14;-1:-1;;;4668:229;;:::-;4915:74;;;;:::-;-1:-1;;;;;4915:74;;:::-;5008:105;;;;:::-;-1:-1;;;;;5008:105;;:::-;5131:68;;;;:::-;5190:3;-1:-1;;5195:3;-1:-1;;;5131:68;;:::-;5217:62;;;;:::-;-1:-1;;;;;5217:62;;:::-;5297:180;;;;:::-;-1:-1;;;5361:43;5424:10;5409:12;5297:180;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5297:180;;:::-;5495:84;;;;:::-;5557:1;-1:-1;;5560:1;-1:-1;;5565:1;-1:-1;;5568:1;-1:-1;;5573:1;-1:-1;;5576:1;-1:-1;;;5495:84;;:::-;5597:99;;;;:::-;-1:-1;;;;;;;;5674:1;-1:-1;;5677:1;-1:-1;;5682:1;-1:-1;;5685:1;-1:-1;;5690:1;-1:-1;;5693:1;-1:-1;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;5597:99;;:::-;5714:88;;;;:::-;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;5714:88;;:::-;5820:109;;;;:::-;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;;;5820:109;;:::-;5947:158;;;;:::-;-1:-1;;;;;;;;6019:10;-1:-1;;6031:10;-1:-1;;6043:10;-1:-1;;;;;;;;;;;;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;5947:158;;:::-;6123:221;;;;:::-;;;-1:-1;6123:221;:::-;;:::-;6362:45;;;;:::-;;;-1:-1;6362:45;:::-;-1:-1;;;;;;:::-;;6376:20;-1:-1;;;6376:20;6362:45;:::-;6425:59;;;;:::-;;;-1:-1;6425:59;:::-;-1:-1;;;;;;:::-;;;;;;;;;;;;;:::-;;;;;;;6425:59;:::-;6496:221;;;;:::-;6535:66;-1:-1;6517:84;6648:10;-1:-1;6606:78;6671:6;-1:-1;;6606:78;6689:28;-1:-1;;;;;;;;;6689:28;;6496:221;:::-;6729:182;;;;:::-;-1:-1;;6756:33;6794:3;:22;-1:-1;6794:22;-1:-1;;:::-;6805:10;6794:22;-1:-1;;;;;;6794:22;-1:-1;6794:3;-1:-1;6794:22;6841:10;-1:-1;6729:182;6857:54;-1:-1;6883:4;-1:-1;;6889:10;-1:-1;;;;;;;;;6901:3;-1:-1;;;;;;;;;;;;;:::-;;;;:::-;;:::-;;;;;;;;;;;;;;;;;;;;;:::-;:::-;;;;;;;;;;;;;;;;;;;;6857:54;;6729:182;:::-;-1:-1;:::-;;;;:::-;;;","userdoc":{}} diff --git a/tests/functional/data/sources/TestContractSol.sol b/tests/functional/data/sources/TestContractSol.sol index 4931dff287..5698d517d8 100644 --- a/tests/functional/data/sources/TestContractSol.sol +++ b/tests/functional/data/sources/TestContractSol.sol @@ -36,6 +36,13 @@ contract TestContractSol { MyStruct a_struct ); + event EventWithAddressArray( + uint32 indexed some_id, + address indexed some_address, + address[] participants, + address[1] agents + ); + struct MyStruct { address a; bytes32 b; @@ -288,4 +295,11 @@ contract TestContractSol { MyStruct memory _struct = MyStruct(msg.sender, _bytes); emit EventWithStruct(_struct); } + + function logAddressArray() public { + address[] memory ppl = new address[](1); + ppl[0] = msg.sender; + address[1] memory agts = [msg.sender]; + emit EventWithAddressArray(1001, msg.sender, ppl, agts); + } } diff --git a/tests/functional/data/sources/TestContractVy.vy b/tests/functional/data/sources/TestContractVy.vy index 945f02f897..e727bb654e 100644 --- a/tests/functional/data/sources/TestContractVy.vy +++ b/tests/functional/data/sources/TestContractVy.vy @@ -19,6 +19,12 @@ event BarHappened: event EventWithStruct: a_struct: MyStruct +event EventWithAddressArray: + some_id: uint256 + some_address: address + participants: DynArray[address, 1024] + agents: address[1] + struct MyStruct: a: address b: bytes32 @@ -282,3 +288,10 @@ def logStruct(): b: _bytes }) log EventWithStruct(_struct) + +@external +def logAddressArray(): + ppl: DynArray[address, 1024] = [] + ppl.append(msg.sender) + agts: address[1] = [msg.sender] + log EventWithAddressArray(1001, msg.sender, ppl, agts) diff --git a/tests/functional/test_contract_event.py b/tests/functional/test_contract_event.py index 6b9d08dae6..16a1eeeebb 100644 --- a/tests/functional/test_contract_event.py +++ b/tests/functional/test_contract_event.py @@ -326,3 +326,11 @@ def test_structs_in_events(contract_instance, owner): expected_bytes = HexBytes(0x1234567890ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF) expected = contract_instance.EventWithStruct(a_struct={"a": owner, "b": expected_bytes}) assert tx.events == [expected] + + +def test_address_arrays_in_events(contract_instance, owner): + tx = contract_instance.logAddressArray(sender=owner) + expected = contract_instance.EventWithAddressArray( + some_id=1001, some_address=owner, participants=[owner], agents=[owner] + ) + assert tx.events == [expected] From 62687ab5d26de14ffa86e304ad4364c040fa95dd Mon Sep 17 00:00:00 2001 From: El De-dog-lo <3859395+fubuloubu@users.noreply.github.com> Date: Wed, 27 Sep 2023 21:45:30 -0400 Subject: [PATCH 05/22] feat(query): add timestamp to ContractLog [APE-1391] (#1660) * feat(query): add timestamp to ContractLog fixes: #1612 * docs: add docstring to timestamp property of ContractLog * test: add test for ContractLog.timestamp --- src/ape/types/__init__.py | 9 +++++++++ tests/functional/test_receipt.py | 1 + 2 files changed, 10 insertions(+) diff --git a/src/ape/types/__init__.py b/src/ape/types/__init__.py index 54395a931e..e083a3ad8a 100644 --- a/src/ape/types/__init__.py +++ b/src/ape/types/__init__.py @@ -294,6 +294,15 @@ def validate_address(cls, value): def block(self) -> "BlockAPI": return self.chain_manager.blocks[self.block_number] + @property + def timestamp(self) -> int: + """ + The UNIX timestamp of when the event was emitted. + + NOTE: This performs a block lookup. + """ + return self.block.timestamp + @property def _event_args_str(self) -> str: return " ".join(f"{key}={val}" for key, val in self.event_arguments.items()) diff --git a/tests/functional/test_receipt.py b/tests/functional/test_receipt.py index 4842e7b862..336d8d867c 100644 --- a/tests/functional/test_receipt.py +++ b/tests/functional/test_receipt.py @@ -102,6 +102,7 @@ def assert_receipt_logs(receipt: ReceiptAPI, num: int): logs = receipt.decode_logs(event_type) assert len(logs) == 1 assert_log_values(logs[0], num) + assert receipt.timestamp == logs[0].timestamp assert_receipt_logs(receipt_0, 1) assert_receipt_logs(receipt_1, 2) From db491852cf17a7b1308937fed00bf8a1b9e01d5a Mon Sep 17 00:00:00 2001 From: banteg <4562643+banteg@users.noreply.github.com> Date: Thu, 28 Sep 2023 19:19:19 +0400 Subject: [PATCH 06/22] feat: support pydantic v2 [APE-1374] (#1651) --------- Co-authored-by: Juliya Smith --- setup.py | 3 +- src/ape/_pydantic_compat.py | 47 +++++++++++++++++++ src/ape/api/config.py | 2 +- src/ape/api/networks.py | 2 +- src/ape/api/projects.py | 7 +-- src/ape/api/providers.py | 2 +- src/ape/api/query.py | 2 +- src/ape/api/transactions.py | 3 +- src/ape/managers/chain.py | 8 ++-- src/ape/managers/config.py | 3 +- src/ape/managers/project/dependency.py | 2 +- src/ape/managers/project/manager.py | 1 - src/ape/types/__init__.py | 4 +- src/ape/types/coverage.py | 2 +- src/ape/types/trace.py | 2 +- src/ape/utils/abi.py | 6 ++- src/ape_compile/__init__.py | 3 +- src/ape_ethereum/ecosystem.py | 2 +- src/ape_ethereum/transactions.py | 2 +- src/ape_geth/provider.py | 2 +- src/ape_plugins/utils.py | 3 +- src/ape_test/__init__.py | 3 +- .../conversion/test_encode_structs.py | 2 +- tests/functional/test_contract_instance.py | 2 +- 24 files changed, 82 insertions(+), 33 deletions(-) create mode 100644 src/ape/_pydantic_compat.py diff --git a/setup.py b/setup.py index 28bf4c257c..77876ff758 100644 --- a/setup.py +++ b/setup.py @@ -33,6 +33,7 @@ "mdformat-gfm>=0.3.5", # Needed for formatting GitHub-flavored markdown "mdformat-frontmatter>=0.4.1", # Needed for frontmatters-style headers in issue templates "mdformat-pyproject>=0.0.1", # Allows configuring in pyproject.toml + "pydantic<2.0", # Needed for successful type check. TODO: Remove after full v2 support. ], "doc": [ "myst-parser>=1.0.0,<2", # Parse markdown docs @@ -101,7 +102,7 @@ "packaging>=23.0,<24", "pandas>=1.3.0,<2", "pluggy>=1.3,<2", - "pydantic>=1.10.8,<2", + "pydantic>=1.10.8,<3", "PyGithub>=1.59,<2", "pytest>=6.0,<8.0", "python-dateutil>=2.8.2,<3", diff --git a/src/ape/_pydantic_compat.py b/src/ape/_pydantic_compat.py new file mode 100644 index 0000000000..16bfe4b3a8 --- /dev/null +++ b/src/ape/_pydantic_compat.py @@ -0,0 +1,47 @@ +# support both pydantic v1 and v2 + +try: + from pydantic.v1 import ( # type: ignore + BaseModel, + BaseSettings, + Extra, + Field, + FileUrl, + HttpUrl, + NonNegativeInt, + PositiveInt, + ValidationError, + root_validator, + validator, + ) + from pydantic.v1.dataclasses import dataclass # type: ignore +except ImportError: + from pydantic import ( # type: ignore + BaseModel, + BaseSettings, + Extra, + Field, + FileUrl, + HttpUrl, + NonNegativeInt, + PositiveInt, + ValidationError, + root_validator, + validator, + ) + from pydantic.dataclasses import dataclass # type: ignore + +__all__ = ( + "BaseModel", + "BaseSettings", + "dataclass", + "Extra", + "Field", + "FileUrl", + "HttpUrl", + "NonNegativeInt", + "PositiveInt", + "ValidationError", + "root_validator", + "validator", +) diff --git a/src/ape/api/config.py b/src/ape/api/config.py index d683da2aea..b08a6a8086 100644 --- a/src/ape/api/config.py +++ b/src/ape/api/config.py @@ -1,7 +1,7 @@ from enum import Enum from typing import Any, Dict, Optional, TypeVar -from pydantic import BaseModel, BaseSettings +from ape._pydantic_compat import BaseModel, BaseSettings T = TypeVar("T") diff --git a/src/ape/api/networks.py b/src/ape/api/networks.py index 02339dc140..3252a6cd2a 100644 --- a/src/ape/api/networks.py +++ b/src/ape/api/networks.py @@ -11,8 +11,8 @@ from eth_utils import keccak, to_int from ethpm_types import ContractType, HexBytes from ethpm_types.abi import ABIType, ConstructorABI, EventABI, MethodABI -from pydantic import BaseModel +from ape._pydantic_compat import BaseModel from ape.exceptions import ( NetworkError, NetworkMismatchError, diff --git a/src/ape/api/projects.py b/src/ape/api/projects.py index 7ff8c899ae..b386257682 100644 --- a/src/ape/api/projects.py +++ b/src/ape/api/projects.py @@ -6,10 +6,11 @@ from ethpm_types import Checksum, ContractType, PackageManifest, Source from ethpm_types.manifest import PackageName +from ethpm_types.source import Content from ethpm_types.utils import Algorithm, AnyUrl, compute_checksum from packaging.version import InvalidVersion, Version -from pydantic import ValidationError +from ape._pydantic_compat import ValidationError from ape.logging import logger from ape.utils import ( BaseInterfaceModel, @@ -143,7 +144,7 @@ def contracts(self) -> Dict[str, ContractType]: continue contract_name = p.stem - contract_type = ContractType().parse_file(p) + contract_type = ContractType.parse_file(p) if contract_type.name is None: contract_type.name = contract_name @@ -214,7 +215,7 @@ def _create_source_dict( hash=compute_checksum(source_path.read_bytes()), ), urls=[], - content=text, + content=Content(__root__={i + 1: x for i, x in enumerate(text.splitlines())}), imports=source_imports.get(key, []), references=source_references.get(key, []), ) diff --git a/src/ape/api/providers.py b/src/ape/api/providers.py index 30bc5bcf38..9da5605c48 100644 --- a/src/ape/api/providers.py +++ b/src/ape/api/providers.py @@ -21,12 +21,12 @@ from ethpm_types import HexBytes from evm_trace import CallTreeNode as EvmCallTreeNode from evm_trace import TraceFrame as EvmTraceFrame -from pydantic import Field, root_validator, validator from web3 import Web3 from web3.exceptions import ContractLogicError as Web3ContractLogicError from web3.exceptions import MethodUnavailable, TimeExhausted, TransactionNotFound from web3.types import RPCEndpoint, TxParams +from ape._pydantic_compat import Field, root_validator, validator from ape.api.config import PluginConfig from ape.api.networks import LOCAL_NETWORK_NAME, NetworkAPI from ape.api.query import BlockTransactionQuery diff --git a/src/ape/api/query.py b/src/ape/api/query.py index 19e1a98de5..3067d505bd 100644 --- a/src/ape/api/query.py +++ b/src/ape/api/query.py @@ -2,8 +2,8 @@ from typing import Any, Dict, Iterator, List, Optional, Sequence, Set, Type, Union from ethpm_types.abi import EventABI, MethodABI -from pydantic import BaseModel, NonNegativeInt, PositiveInt, root_validator +from ape._pydantic_compat import BaseModel, NonNegativeInt, PositiveInt, root_validator from ape.api.transactions import ReceiptAPI, TransactionAPI from ape.logging import logger from ape.types import AddressType diff --git a/src/ape/api/transactions.py b/src/ape/api/transactions.py index 1e3ef14074..71b82fe805 100644 --- a/src/ape/api/transactions.py +++ b/src/ape/api/transactions.py @@ -6,10 +6,9 @@ from eth_utils import is_0x_prefixed, is_hex, to_int from ethpm_types import HexBytes from ethpm_types.abi import EventABI, MethodABI -from pydantic import validator -from pydantic.fields import Field from tqdm import tqdm # type: ignore +from ape._pydantic_compat import Field, validator from ape.api.explorers import ExplorerAPI from ape.exceptions import ( NetworkError, diff --git a/src/ape/managers/chain.py b/src/ape/managers/chain.py index 537aaafc83..f46dea2726 100644 --- a/src/ape/managers/chain.py +++ b/src/ape/managers/chain.py @@ -159,14 +159,16 @@ def query( ) query = BlockQuery( - columns=columns, + columns=list(columns), start_block=start_block, stop_block=stop_block, step=step, ) blocks = self.query_manager.query(query, engine_to_use=engine_to_use) - columns = validate_and_expand_columns(columns, self.head.__class__) # type: ignore + columns: List[str] = validate_and_expand_columns( # type: ignore + columns, self.head.__class__ + ) blocks = map(partial(extract_fields, columns=columns), blocks) return pd.DataFrame(columns=columns, data=blocks) @@ -486,7 +488,7 @@ def query( ) query = AccountTransactionQuery( - columns=columns, + columns=list(columns), account=self.address, start_nonce=start_nonce, stop_nonce=stop_nonce, diff --git a/src/ape/managers/config.py b/src/ape/managers/config.py index 8512447474..f5883eb59a 100644 --- a/src/ape/managers/config.py +++ b/src/ape/managers/config.py @@ -3,8 +3,7 @@ from pathlib import Path from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Union -from pydantic import root_validator - +from ape._pydantic_compat import root_validator from ape.api import ConfigDict, DependencyAPI, PluginConfig from ape.exceptions import ConfigError, NetworkError from ape.logging import logger diff --git a/src/ape/managers/project/dependency.py b/src/ape/managers/project/dependency.py index 803064035d..d4bdf4ff29 100644 --- a/src/ape/managers/project/dependency.py +++ b/src/ape/managers/project/dependency.py @@ -7,9 +7,9 @@ from ethpm_types import PackageManifest from ethpm_types.utils import AnyUrl -from pydantic import FileUrl, HttpUrl, root_validator from semantic_version import NpmSpec, Version # type: ignore +from ape._pydantic_compat import FileUrl, HttpUrl, root_validator from ape.api import DependencyAPI from ape.exceptions import ProjectError, UnknownVersionError from ape.logging import logger diff --git a/src/ape/managers/project/manager.py b/src/ape/managers/project/manager.py index cb77f5b9f5..69dc1ec921 100644 --- a/src/ape/managers/project/manager.py +++ b/src/ape/managers/project/manager.py @@ -702,7 +702,6 @@ def track_deployment(self, contract: ContractInstance): if network == LOCAL_NETWORK_NAME or network.endswith("-fork"): raise ProjectError("Can only publish deployments on a live network.") - contract_name = contract.contract_type.name if not (contract_name := contract.contract_type.name): raise ProjectError("Contract name required when publishing.") diff --git a/src/ape/types/__init__.py b/src/ape/types/__init__.py index e083a3ad8a..8f110d2eee 100644 --- a/src/ape/types/__init__.py +++ b/src/ape/types/__init__.py @@ -29,9 +29,9 @@ ) from ethpm_types.abi import EventABI from ethpm_types.source import Closure -from pydantic import BaseModel, root_validator, validator from web3.types import FilterParams +from ape._pydantic_compat import BaseModel, root_validator, validator from ape.types.address import AddressType, RawAddress from ape.types.coverage import ( ContractCoverage, @@ -98,7 +98,7 @@ def validate_multiplier(cls, value): """ -TopicFilter = Sequence[Union[Optional[HexStr], List[Optional[HexStr]]]] +TopicFilter = Sequence[Union[Optional[HexStr], Sequence[Optional[HexStr]]]] @dataclass diff --git a/src/ape/types/coverage.py b/src/ape/types/coverage.py index dbb45b8f8e..462b6ca1b1 100644 --- a/src/ape/types/coverage.py +++ b/src/ape/types/coverage.py @@ -9,8 +9,8 @@ import requests from ethpm_types import BaseModel from ethpm_types.source import ContractSource, SourceLocation -from pydantic import NonNegativeInt, validator +from ape._pydantic_compat import NonNegativeInt, validator from ape.logging import logger from ape.utils.misc import get_current_timestamp_ms from ape.version import version as ape_version diff --git a/src/ape/types/trace.py b/src/ape/types/trace.py index b1c4a5b63b..ccc613f152 100644 --- a/src/ape/types/trace.py +++ b/src/ape/types/trace.py @@ -6,10 +6,10 @@ from ethpm_types.ast import SourceLocation from ethpm_types.source import Closure, Content, Function, SourceStatement, Statement from evm_trace.gas import merge_reports -from pydantic import Field from rich.table import Table from rich.tree import Tree +from ape._pydantic_compat import Field from ape.types.address import AddressType from ape.utils.basemodel import BaseInterfaceModel from ape.utils.misc import is_evm_precompile, is_zero_hex diff --git a/src/ape/utils/abi.py b/src/ape/utils/abi.py index 25d6a97d60..0a9b21ebde 100644 --- a/src/ape/utils/abi.py +++ b/src/ape/utils/abi.py @@ -124,7 +124,11 @@ def decode_output(self, values: Union[List, Tuple]) -> Any: return self._decode(self.abi.outputs, values) if isinstance(self.abi, MethodABI) else None - def _decode(self, _types: Sequence[ABIType], values: Union[Sequence, Dict[str, Any]]): + def _decode( + self, + _types: Union[Sequence[ABIType]], + values: Union[Sequence, Dict[str, Any]], + ): if is_struct(_types): return self._create_struct(_types[0], values) diff --git a/src/ape_compile/__init__.py b/src/ape_compile/__init__.py index 57406c3379..a829ae2bfc 100644 --- a/src/ape_compile/__init__.py +++ b/src/ape_compile/__init__.py @@ -1,8 +1,7 @@ from typing import Any, List, Optional -from pydantic import Field, validator - from ape import plugins +from ape._pydantic_compat import Field, validator from ape.api import PluginConfig from ape.logging import logger diff --git a/src/ape_ethereum/ecosystem.py b/src/ape_ethereum/ecosystem.py index 7cef8c6796..1b027ee88e 100644 --- a/src/ape_ethereum/ecosystem.py +++ b/src/ape_ethereum/ecosystem.py @@ -16,8 +16,8 @@ ) from ethpm_types import ContractType, HexBytes from ethpm_types.abi import ABIType, ConstructorABI, EventABI, MethodABI -from pydantic import Field, validator +from ape._pydantic_compat import Field, validator from ape.api import BlockAPI, EcosystemAPI, PluginConfig, ReceiptAPI, TransactionAPI from ape.api.networks import LOCAL_NETWORK_NAME from ape.contracts.base import ContractCall diff --git a/src/ape_ethereum/transactions.py b/src/ape_ethereum/transactions.py index 65d8f8bbcc..3d4c3e59e2 100644 --- a/src/ape_ethereum/transactions.py +++ b/src/ape_ethereum/transactions.py @@ -11,8 +11,8 @@ from eth_utils import decode_hex, encode_hex, keccak, to_hex, to_int from ethpm_types import ContractType, HexBytes from ethpm_types.abi import EventABI, MethodABI -from pydantic import BaseModel, Field, root_validator, validator +from ape._pydantic_compat import BaseModel, Field, root_validator, validator from ape.api import ReceiptAPI, TransactionAPI from ape.contracts import ContractEvent from ape.exceptions import OutOfGasError, SignatureError, TransactionError diff --git a/src/ape_geth/provider.py b/src/ape_geth/provider.py index 65d0e9ebc5..2d414c130f 100644 --- a/src/ape_geth/provider.py +++ b/src/ape_geth/provider.py @@ -25,7 +25,6 @@ from geth.chain import initialize_chain # type: ignore from geth.process import BaseGethProcess # type: ignore from geth.wrapper import construct_test_chain_kwargs # type: ignore -from pydantic import Extra from requests.exceptions import ConnectionError from web3 import HTTPProvider, Web3 from web3.exceptions import ExtraDataLengthError @@ -36,6 +35,7 @@ from web3.providers.auto import load_provider_from_environment from yarl import URL +from ape._pydantic_compat import Extra from ape.api import ( PluginConfig, SubprocessProvider, diff --git a/src/ape_plugins/utils.py b/src/ape_plugins/utils.py index a27965a158..8bcebb71a2 100644 --- a/src/ape_plugins/utils.py +++ b/src/ape_plugins/utils.py @@ -2,9 +2,8 @@ import sys from typing import List, Optional, Tuple -from pydantic import root_validator - from ape.__modules__ import __modules__ +from ape._pydantic_compat import root_validator from ape.logging import ApeLogger from ape.plugins import clean_plugin_name from ape.utils import BaseInterfaceModel, cached_property, get_package_version, github_client diff --git a/src/ape_test/__init__.py b/src/ape_test/__init__.py index 6a4507aecc..53bf1de479 100644 --- a/src/ape_test/__init__.py +++ b/src/ape_test/__init__.py @@ -1,8 +1,7 @@ from typing import Dict, List, NewType, Optional, Union -from pydantic import NonNegativeInt - from ape import plugins +from ape._pydantic_compat import NonNegativeInt from ape.api import PluginConfig from ape.api.networks import LOCAL_NETWORK_NAME from ape.utils import DEFAULT_HD_PATH, DEFAULT_NUMBER_OF_TEST_ACCOUNTS, DEFAULT_TEST_MNEMONIC diff --git a/tests/functional/conversion/test_encode_structs.py b/tests/functional/conversion/test_encode_structs.py index d2709ccaac..cd0373a9fa 100644 --- a/tests/functional/conversion/test_encode_structs.py +++ b/tests/functional/conversion/test_encode_structs.py @@ -3,8 +3,8 @@ import pytest from ethpm_types import HexBytes from ethpm_types.abi import MethodABI -from pydantic import BaseModel +from ape._pydantic_compat import BaseModel from ape.types import AddressType ABI = MethodABI.parse_obj( diff --git a/tests/functional/test_contract_instance.py b/tests/functional/test_contract_instance.py index 2514722591..2ee7180943 100644 --- a/tests/functional/test_contract_instance.py +++ b/tests/functional/test_contract_instance.py @@ -4,9 +4,9 @@ import pytest from eth_utils import is_checksum_address, to_hex from ethpm_types import ContractType, HexBytes -from pydantic import BaseModel from ape import Contract +from ape._pydantic_compat import BaseModel from ape.api import TransactionAPI from ape.contracts import ContractInstance from ape.exceptions import ( From 0eb247808c51a9ef724d46f80c44d09b14329230 Mon Sep 17 00:00:00 2001 From: antazoey Date: Fri, 29 Sep 2023 12:36:09 -0500 Subject: [PATCH 07/22] fix: issue with custom errors on estimate gas and static fee txns [APE-1421] (#1680) --- src/ape/api/networks.py | 41 +++++++-- src/ape/api/providers.py | 15 +++- src/ape/managers/config.py | 7 +- src/ape/managers/networks.py | 89 ++++++++----------- src/ape/plugins/__init__.py | 9 +- src/ape_ethereum/ecosystem.py | 9 +- tests/conftest.py | 4 +- tests/functional/conftest.py | 22 +++-- tests/functional/geth/test_provider.py | 1 + tests/functional/test_accounts.py | 54 ++++++----- tests/functional/test_config.py | 10 ++- tests/functional/test_contract_container.py | 6 +- tests/functional/test_contract_instance.py | 8 +- tests/functional/test_ecosystem.py | 25 +++++- tests/functional/test_history.py | 3 +- tests/functional/test_network_api.py | 35 ++++++++ ...st_networks.py => test_network_manager.py} | 56 +----------- tests/functional/test_provider.py | 11 +++ tests/integration/cli/test_networks.py | 11 ++- tests/integration/cli/test_test.py | 8 ++ 20 files changed, 249 insertions(+), 175 deletions(-) create mode 100644 tests/functional/test_network_api.py rename tests/functional/{test_networks.py => test_network_manager.py} (77%) diff --git a/src/ape/api/networks.py b/src/ape/api/networks.py index 3252a6cd2a..5d7e9ab40f 100644 --- a/src/ape/api/networks.py +++ b/src/ape/api/networks.py @@ -74,7 +74,7 @@ class EcosystemAPI(BaseInterfaceModel): fee_token_decimals: int = 18 """The number of the decimals the fee token has.""" - _default_network: str = LOCAL_NETWORK_NAME + _default_network: Optional[str] = None def __repr__(self) -> str: return f"<{self.name}>" @@ -254,7 +254,25 @@ def default_network(self) -> str: Returns: str """ - return self._default_network + + if network := self._default_network: + # Was set programatically. + return network + + elif network := self.config.get("default_network"): + # Default found in config. + return network + + elif LOCAL_NETWORK_NAME in self.networks: + # Default to the LOCAL_NETWORK_NAME, at last resort. + return LOCAL_NETWORK_NAME + + elif len(self.networks) >= 1: + # Use the first network. + return self.networks[0] + + # Very unlikely scenario. + raise ValueError("No networks found.") def set_default_network(self, network_name: str): """ @@ -425,7 +443,7 @@ def get_network_data(self, network_name: str) -> Dict: Returns: dict: A dictionary containing the providers in a network. """ - data: Dict[str, Any] = {"name": network_name} + data: Dict[str, Any] = {"name": str(network_name)} # Only add isDefault key when True if network_name == self.default_network: @@ -435,10 +453,10 @@ def get_network_data(self, network_name: str) -> Dict: network = self[network_name] if network.explorer: - data["explorer"] = network.explorer.name + data["explorer"] = str(network.explorer.name) for provider_name in network.providers: - provider_data = {"name": provider_name} + provider_data: Dict = {"name": str(provider_name)} # Only add isDefault key when True if provider_name == network.default_provider: @@ -906,12 +924,19 @@ def default_provider(self) -> Optional[str]: Optional[str] """ - if self._default_provider: - return self._default_provider + if provider := self._default_provider: + # Was set programatically. + return provider + + elif provider_from_config := self._network_config.get("default_provider"): + # The default is found in the Network's config class. + return provider_from_config - if len(self.providers) > 0: + elif len(self.providers) > 0: + # No default set anywhere - use the first installed. return list(self.providers)[0] + # There are no providers at all for this network. return None @property diff --git a/src/ape/api/providers.py b/src/ape/api/providers.py index 9da5605c48..5e52f79671 100644 --- a/src/ape/api/providers.py +++ b/src/ape/api/providers.py @@ -1420,8 +1420,13 @@ def prepare_transaction(self, txn: TransactionAPI) -> TransactionAPI: txn.max_fee = int(self.base_fee * multiplier + txn.max_priority_fee) # else: Assume user specified the correct amount or txn will fail and waste gas - if txn.gas_limit is None: - multiplier = self.network.auto_gas_multiplier + gas_limit = self.network.gas_limit if txn.gas_limit is None else txn.gas_limit + if gas_limit in (None, "auto") or isinstance(gas_limit, AutoGasLimit): + multiplier = ( + gas_limit.multiplier + if isinstance(gas_limit, AutoGasLimit) + else self.network.auto_gas_multiplier + ) if multiplier != 1.0: gas = min(int(self.estimate_gas_cost(txn) * multiplier), self.max_gas) else: @@ -1429,6 +1434,12 @@ def prepare_transaction(self, txn: TransactionAPI) -> TransactionAPI: txn.gas_limit = gas + elif gas_limit == "max": + txn.gas_limit = self.max_gas + + elif gas_limit is not None and isinstance(gas_limit, int): + txn.gas_limit = gas_limit + if txn.required_confirmations is None: txn.required_confirmations = self.network.required_confirmations elif not isinstance(txn.required_confirmations, int) or txn.required_confirmations < 0: diff --git a/src/ape/managers/config.py b/src/ape/managers/config.py index f5883eb59a..ba10efc5de 100644 --- a/src/ape/managers/config.py +++ b/src/ape/managers/config.py @@ -5,7 +5,7 @@ from ape._pydantic_compat import root_validator from ape.api import ConfigDict, DependencyAPI, PluginConfig -from ape.exceptions import ConfigError, NetworkError +from ape.exceptions import ConfigError from ape.logging import logger from ape.utils import BaseInterfaceModel, load_config @@ -182,11 +182,6 @@ def _plugin_configs(self) -> Dict[str, PluginConfig]: configs["compiler"] = compiler_dict self.compiler = CompilerConfig(**compiler_dict) - try: - self.network_manager.set_default_ecosystem(self.default_ecosystem) - except NetworkError as err: - logger.warning(str(err)) - dependencies = user_config.pop("dependencies", []) or [] if not isinstance(dependencies, list): raise ConfigError("'dependencies' config item must be a list of dicts.") diff --git a/src/ape/managers/networks.py b/src/ape/managers/networks.py index ef752fef9e..4e5b038fcf 100644 --- a/src/ape/managers/networks.py +++ b/src/ape/managers/networks.py @@ -1,13 +1,13 @@ +import json +from functools import cached_property from typing import Dict, Iterator, List, Optional, Set, Union import yaml from ape.api import EcosystemAPI, ProviderAPI, ProviderContextManager -from ape.api.networks import LOCAL_NETWORK_NAME, NetworkAPI +from ape.api.networks import NetworkAPI from ape.exceptions import ApeAttributeError, NetworkError -from ape.logging import logger - -from .base import BaseManager +from ape.managers.base import BaseManager class NetworkManager(BaseManager): @@ -27,7 +27,6 @@ class NetworkManager(BaseManager): _active_provider: Optional[ProviderAPI] = None _default: Optional[str] = None - _ecosystems_by_project: Dict[str, Dict[str, EcosystemAPI]] = {} def __repr__(self): provider = self.active_provider @@ -137,54 +136,21 @@ def provider_names(self) -> Set[str]: return names - @property + @cached_property def ecosystems(self) -> Dict[str, EcosystemAPI]: """ All the registered ecosystems in ``ape``, such as ``ethereum``. """ - project_name = self.config_manager.PROJECT_FOLDER.stem - if project_name in self._ecosystems_by_project: - return self._ecosystems_by_project[project_name] - - ecosystem_dict = {} - for plugin_name, ecosystem_class in self.plugin_manager.ecosystems: - ecosystem = ecosystem_class( # type: ignore - name=plugin_name, - data_folder=self.config_manager.DATA_FOLDER / plugin_name, - request_header=self.config_manager.REQUEST_HEADER, - ) - ecosystem_config = self.config_manager.get_config(plugin_name).dict() - default_network = ecosystem_config.get("default_network", LOCAL_NETWORK_NAME) + def to_kwargs(name: str) -> Dict: + return { + "name": name, + "data_folder": self.config_manager.DATA_FOLDER / name, + "request_header": self.config_manager.REQUEST_HEADER, + } - try: - ecosystem.set_default_network(default_network) - except NetworkError as err: - message = f"Failed setting default network: {err}" - logger.error(message) - - if ecosystem_config: - for network_name, network in ecosystem.networks.items(): - network_name = network_name.replace("-", "_") - if network_name not in ecosystem_config: - continue - - network_config = ecosystem_config[network_name] - if "default_provider" not in network_config: - continue - - default_provider = network_config["default_provider"] - if default_provider: - try: - network.set_default_provider(default_provider) - except NetworkError as err: - message = f"Failed setting default provider: {err}" - logger.error(message) - - ecosystem_dict[plugin_name] = ecosystem - - self._ecosystems_by_project[project_name] = ecosystem_dict - return ecosystem_dict + ecosystems = self.plugin_manager.ecosystems + return {n: cls(**to_kwargs(n)) for n, cls in ecosystems} # type: ignore def create_adhoc_geth_provider(self, uri: str) -> ProviderAPI: """ @@ -485,6 +451,9 @@ def default_ecosystem(self) -> EcosystemAPI: if self._default: return ecosystems[self._default] + elif self.config_manager.default_ecosystem: + return ecosystems[self.config_manager.default_ecosystem] + # If explicit default is not set, use first registered ecosystem elif len(ecosystems) > 0: return list(ecosystems.values())[0] @@ -529,16 +498,17 @@ def network_data(self) -> Dict: return data - def _get_ecosystem_data(self, ecosystem_name) -> Dict: + def _get_ecosystem_data(self, ecosystem_name: str) -> Dict: ecosystem = self[ecosystem_name] - ecosystem_data = {"name": ecosystem_name} + ecosystem_data: Dict = {"name": str(ecosystem_name)} # Only add isDefault key when True if ecosystem_name == self.default_ecosystem.name: ecosystem_data["isDefault"] = True ecosystem_data["networks"] = [] - for network_name in getattr(self, ecosystem_name).networks.keys(): + + for network_name in getattr(self, ecosystem_name).networks: network_data = ecosystem.get_network_data(network_name) ecosystem_data["networks"].append(network_data) @@ -556,7 +526,24 @@ def networks_yaml(self) -> str: str """ - return yaml.dump(self.network_data, sort_keys=False) + data = self.network_data + if not isinstance(data, dict): + raise TypeError( + f"Unexpected network data type: {type(data)}. " + f"Expecting dict. YAML dump will fail." + ) + + try: + return yaml.dump(data, sort_keys=False) + except ValueError as err: + try: + data_str = json.dumps(data) + except Exception: + data_str = str(data) + + raise NetworkError( + f"Network data did not dump to YAML: {data_str}\nAcual err: {err}" + ) from err def _validate_filter(arg: Optional[Union[List[str], str]], options: Set[str]): diff --git a/src/ape/plugins/__init__.py b/src/ape/plugins/__init__.py index bf42745450..d27ca8f90b 100644 --- a/src/ape/plugins/__init__.py +++ b/src/ape/plugins/__init__.py @@ -195,7 +195,9 @@ def _warn_not_fully_implemented_error(self, results, plugin_name): # Likely only ever a single class in a registration, but just in case. api_name = " - ".join([p.__name__ for p in classes]) for api_cls in classes: - if hasattr(api_cls, "__abstractmethods__") and api_cls.__abstractmethods__: + if ( + abstract_methods := getattr(api_cls, "__abstractmethods__", None) + ) and isinstance(abstract_methods, dict): unimplemented_methods.extend(api_cls.__abstractmethods__) else: @@ -204,8 +206,11 @@ def _warn_not_fully_implemented_error(self, results, plugin_name): elif hasattr(results, "__name__"): api_name = results.__name__ - if hasattr(results, "__abstractmethods__") and results.__abstractmethods__: + if (abstract_methods := getattr(results, "__abstractmethods__", None)) and isinstance( + abstract_methods, dict + ): unimplemented_methods.extend(results.__abstractmethods__) + else: api_name = results diff --git a/src/ape_ethereum/ecosystem.py b/src/ape_ethereum/ecosystem.py index 1b027ee88e..b6dfd5ce12 100644 --- a/src/ape_ethereum/ecosystem.py +++ b/src/ape_ethereum/ecosystem.py @@ -602,10 +602,13 @@ def create_transaction(self, **kwargs) -> TransactionAPI: if "type" in kwargs: if kwargs["type"] is None: version = TransactionType.DYNAMIC - elif not isinstance(kwargs["type"], int): - version = TransactionType(self.conversion_manager.convert(kwargs["type"], int)) - else: + elif isinstance(kwargs["type"], TransactionType): + version = kwargs["type"] + elif isinstance(kwargs["type"], int): version = TransactionType(kwargs["type"]) + else: + # Using hex values or alike. + version = TransactionType(self.conversion_manager.convert(kwargs["type"], int)) elif "gas_price" in kwargs: version = TransactionType.STATIC diff --git a/tests/conftest.py b/tests/conftest.py index d1c843c1a3..b1f3a794ef 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -203,9 +203,9 @@ def ethereum(networks): @pytest.fixture(autouse=True) -def eth_tester_provider(): +def eth_tester_provider(ethereum): if not ape.networks.active_provider or ape.networks.provider.name != "test": - with ape.networks.ethereum.local.use_provider("test") as provider: + with ethereum.local.use_provider("test") as provider: yield provider else: yield ape.networks.provider diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py index 58d2378111..83e64bf7d9 100644 --- a/tests/functional/conftest.py +++ b/tests/functional/conftest.py @@ -8,8 +8,7 @@ from ethpm_types import ContractType, HexBytes import ape -from ape.api import EcosystemAPI, NetworkAPI, TransactionAPI -from ape.api.networks import LOCAL_NETWORK_NAME +from ape.api import TransactionAPI from ape.contracts import ContractContainer, ContractInstance from ape.exceptions import ChainError, ContractLogicError from ape.logging import LogLevel @@ -48,15 +47,6 @@ def pytest_collection_finish(session): yield -@pytest.fixture -def mock_network_api(mocker): - mock = mocker.MagicMock(spec=NetworkAPI) - mock_ecosystem = mocker.MagicMock(spec=EcosystemAPI) - mock_ecosystem.virtual_machine_error_class = _ContractLogicError - mock.ecosystem = mock_ecosystem - return mock - - @pytest.fixture def mock_web3(mocker): return mocker.MagicMock() @@ -416,9 +406,10 @@ def use_debug(logger): @pytest.fixture def dummy_live_network(chain): + original_network = chain.provider.network.name chain.provider.network.name = "goerli" yield chain.provider.network - chain.provider.network.name = LOCAL_NETWORK_NAME + chain.provider.network.name = original_network @pytest.fixture(scope="session") @@ -514,3 +505,10 @@ def minimal_proxy_container(): @pytest.fixture def minimal_proxy(owner, minimal_proxy_container): return owner.deploy(minimal_proxy_container) + + +@pytest.fixture +def mock_explorer(mocker): + explorer = mocker.MagicMock() + explorer.name = "mock" # Needed for network data serialization. + return explorer diff --git a/tests/functional/geth/test_provider.py b/tests/functional/geth/test_provider.py index feccaf493e..e5955ccf91 100644 --- a/tests/functional/geth/test_provider.py +++ b/tests/functional/geth/test_provider.py @@ -68,6 +68,7 @@ def test_chain_id_live_network_not_connected(networks): def test_chain_id_live_network_connected_uses_web3_chain_id(mocker, geth_provider): mock_network = mocker.MagicMock() mock_network.chain_id = 999999999 # Shouldn't use hardcoded network + mock_network.name = "mock" orig_network = geth_provider.network try: diff --git a/tests/functional/test_accounts.py b/tests/functional/test_accounts.py index 09ea66eac9..7054e6f2c9 100644 --- a/tests/functional/test_accounts.py +++ b/tests/functional/test_accounts.py @@ -11,6 +11,7 @@ from ape.types.signatures import recover_signer from ape.utils.testing import DEFAULT_NUMBER_OF_TEST_ACCOUNTS from ape_ethereum.ecosystem import ProxyType +from ape_ethereum.transactions import TransactionType from ape_test.accounts import TestAccount from tests.conftest import explorer_test @@ -204,16 +205,14 @@ def test_deploy_and_publish_live_network_no_explorer(owner, contract_container, @explorer_test -def test_deploy_and_publish(mocker, owner, contract_container, dummy_live_network): - mock_explorer = mocker.MagicMock() +def test_deploy_and_publish(owner, contract_container, dummy_live_network, mock_explorer): dummy_live_network.__dict__["explorer"] = mock_explorer contract = owner.deploy(contract_container, 0, publish=True, required_confirmations=0) mock_explorer.publish_contract.assert_called_once_with(contract.address) @explorer_test -def test_deploy_and_not_publish(mocker, owner, contract_container, dummy_live_network): - mock_explorer = mocker.MagicMock() +def test_deploy_and_not_publish(owner, contract_container, dummy_live_network, mock_explorer): dummy_live_network.__dict__["explorer"] = mock_explorer owner.deploy(contract_container, 0, publish=True, required_confirmations=0) assert not mock_explorer.call_count @@ -499,28 +498,33 @@ def test_declare(contract_container, sender): assert not receipt.failed -@pytest.mark.parametrize( - "tx_type,params", [(0, ["gas_price"]), (2, ["max_fee", "max_priority_fee"])] -) -def test_prepare_transaction(sender, ethereum, tx_type, params): +@pytest.mark.parametrize("tx_type", (TransactionType.STATIC, TransactionType.DYNAMIC)) +def test_prepare_transaction_using_auto_gas(sender, ethereum, tx_type): + params = ( + ("gas_price",) if tx_type is TransactionType.STATIC else ("max_fee", "max_priority_fee") + ) + def clear_network_property_cached(): for field in ("gas_limit", "auto_gas_multiplier"): - if field in tx.provider.network.__dict__: - del tx.provider.network.__dict__[field] + if field in ethereum.local.__dict__: + del ethereum.local.__dict__[field] - tx = ethereum.create_transaction(type=tx_type, gas_limit="auto") auto_gas = AutoGasLimit(multiplier=1.0) - original_limit = tx.provider.network.config.local.gas_limit + original_limit = ethereum.config.local.gas_limit try: - tx.provider.network.config.local.gas_limit = auto_gas + ethereum.config.local.gas_limit = auto_gas clear_network_property_cached() + assert ethereum.local.gas_limit == auto_gas, "Setup failed - auto gas not set." + + # NOTE: Must create tx _after_ setting network gas value. + tx = ethereum.create_transaction(type=tx_type) # Show tx doesn't have these by default. assert tx.nonce is None for param in params: # Custom fields depending on type. - assert getattr(tx, param) is None + assert getattr(tx, param) is None, f"'{param}' unexpectedly set." # Gas should NOT yet be estimated, as that happens closer to sending. assert tx.gas_limit is None @@ -530,24 +534,34 @@ def clear_network_property_cached(): # We expect these fields to have been set. assert tx.nonce is not None - assert tx.gas_limit is not None # Gas was estimated (using eth_estimateGas). + assert tx.gas_limit is not None # Show multipliers work. First, reset network to use one (hack). gas_smaller = tx.gas_limit - clear_network_property_cached() auto_gas.multiplier = 1.1 - tx.provider.network.config.local.gas_limit = auto_gas + ethereum.config.local.gas_limit = auto_gas + clear_network_property_cached() + assert ethereum.local.gas_limit == auto_gas, "Setup failed - auto gas multiplier not set." - tx2 = ethereum.create_transaction(type=tx_type, gas_limit="auto") + tx2 = ethereum.create_transaction(type=tx_type) tx2 = sender.prepare_transaction(tx2) gas_bigger = tx2.gas_limit - assert gas_smaller < gas_bigger for param in params: assert getattr(tx, param) is not None finally: - tx.provider.network.config.local.gas_limit = original_limit + ethereum.config.local.gas_limit = original_limit clear_network_property_cached() + + +@pytest.mark.parametrize("tx_type", (TransactionType.STATIC, TransactionType.DYNAMIC)) +def test_prepare_transaction_and_call_using_max_gas(tx_type, ethereum, sender, eth_tester_provider): + tx = ethereum.create_transaction(type=tx_type.value) + tx = sender.prepare_transaction(tx) + assert tx.gas_limit == eth_tester_provider.max_gas, "Test setup failed - gas limit unexpected." + + actual = sender.call(tx) + assert not actual.failed diff --git a/tests/functional/test_config.py b/tests/functional/test_config.py index d3648c9268..0b614c6cf2 100644 --- a/tests/functional/test_config.py +++ b/tests/functional/test_config.py @@ -24,14 +24,16 @@ def test_integer_deployment_addresses(networks): @pytest.mark.parametrize( - "ecosystems,networks,err_part", + "ecosystem_names,network_names,err_part", [(["ERRORS"], ["mainnet"], "ecosystem"), (["ethereum"], ["ERRORS"], "network")], ) -def test_bad_value_in_deployments(ecosystems, networks, err_part, ape_caplog, plugin_manager): +def test_bad_value_in_deployments( + ecosystem_names, network_names, err_part, ape_caplog, plugin_manager +): deployments = _create_deployments() all_ecosystems = dict(plugin_manager.ecosystems) - ecosystem_dict = {e: all_ecosystems[e] for e in ecosystems if e in all_ecosystems} - data = {**deployments, "valid_ecosystems": ecosystem_dict, "valid_networks": networks} + ecosystem_dict = {e: all_ecosystems[e] for e in ecosystem_names if e in all_ecosystems} + data = {**deployments, "valid_ecosystems": ecosystem_dict, "valid_networks": network_names} ape_caplog.assert_last_log_with_retries( lambda: DeploymentConfigCollection(__root__=data), f"Invalid {err_part}", diff --git a/tests/functional/test_contract_container.py b/tests/functional/test_contract_container.py index 3c3767ea8f..47b2eaa376 100644 --- a/tests/functional/test_contract_container.py +++ b/tests/functional/test_contract_container.py @@ -53,15 +53,13 @@ def test_deploy_and_publish_live_network_no_explorer(owner, contract_container, contract_container.deploy(0, sender=owner, publish=True, required_confirmations=0) -def test_deploy_and_publish(mocker, owner, contract_container, dummy_live_network): - mock_explorer = mocker.MagicMock() +def test_deploy_and_publish(owner, contract_container, dummy_live_network, mock_explorer): dummy_live_network.__dict__["explorer"] = mock_explorer contract = contract_container.deploy(0, sender=owner, publish=True, required_confirmations=0) mock_explorer.publish_contract.assert_called_once_with(contract.address) -def test_deploy_and_not_publish(mocker, owner, contract_container, dummy_live_network): - mock_explorer = mocker.MagicMock() +def test_deploy_and_not_publish(owner, contract_container, dummy_live_network, mock_explorer): dummy_live_network.__dict__["explorer"] = mock_explorer contract_container.deploy(0, sender=owner, publish=False, required_confirmations=0) assert not mock_explorer.call_count diff --git a/tests/functional/test_contract_instance.py b/tests/functional/test_contract_instance.py index 2ee7180943..48524e6787 100644 --- a/tests/functional/test_contract_instance.py +++ b/tests/functional/test_contract_instance.py @@ -19,7 +19,7 @@ MethodNonPayableError, ) from ape.types import AddressType -from ape_ethereum.transactions import TransactionStatusEnum +from ape_ethereum.transactions import TransactionStatusEnum, TransactionType MATCH_TEST_CONTRACT = re.compile(r" Date: Fri, 29 Sep 2023 14:26:32 -0500 Subject: [PATCH 08/22] perf: lazily load plugins [APE-1422] (#1681) Co-authored-by: El De-dog-lo <3859395+fubuloubu@users.noreply.github.com> --- src/ape/_cli.py | 43 ++++++------ src/ape/cli/arguments.py | 8 +-- src/ape/cli/choices.py | 106 ++++++++++++++++++++---------- src/ape/cli/options.py | 12 ++-- src/ape/plugins/__init__.py | 38 +++++++---- src/ape/types/__init__.py | 61 +++++++++++++++++ src/ape_networks/_cli.py | 15 ++++- src/ape_run/_cli.py | 30 ++------- tests/integration/cli/test_run.py | 2 +- 9 files changed, 209 insertions(+), 106 deletions(-) diff --git a/src/ape/_cli.py b/src/ape/_cli.py index bd9b2b38e3..f51778e1cd 100644 --- a/src/ape/_cli.py +++ b/src/ape/_cli.py @@ -1,7 +1,7 @@ import difflib import re import sys -from typing import Any, Dict +from typing import Any, Dict, List, Optional import click import importlib_metadata as metadata @@ -29,7 +29,8 @@ def display_config(ctx, param, value): class ApeCLI(click.MultiCommand): - _commands = None + _commands: Optional[Dict] = None + _CLI_GROUP_NAME = "ape_cli_subcommands" def invoke(self, ctx) -> Any: try: @@ -48,11 +49,14 @@ def _suggest_cmd(usage_error): if usage_error.message is None: raise usage_error - match = re.match("No such command '(.*)'.", usage_error.message) - if not match: + elif not (match := re.match("No such command '(.*)'.", usage_error.message)): raise usage_error - bad_arg = match.groups()[0] + groups = match.groups() + if len(groups) < 1: + raise usage_error + + bad_arg = groups[0] suggested_commands = difflib.get_close_matches( bad_arg, list(usage_error.ctx.command.commands.keys()), cutoff=_DIFFLIB_CUT_OFF ) @@ -66,30 +70,22 @@ def _suggest_cmd(usage_error): @property def commands(self) -> Dict: - group_name = "ape_cli_subcommands" - if not self._commands: - try: - entry_points = metadata.entry_points(group=group_name) - except TypeError: - entry_points = metadata.entry_points() - entry_points = ( - entry_points[group_name] if group_name in entry_points else [] # type: ignore - ) - - if not entry_points: - raise Abort("Missing registered cli subcommands") + if self._commands: + return self._commands - self._commands = { - clean_plugin_name(entry_point.name): entry_point.load - for entry_point in entry_points - } + entry_points = metadata.entry_points(group=self._CLI_GROUP_NAME) + if not entry_points: + raise Abort("Missing registered CLI subcommands.") + self._commands = { + clean_plugin_name(entry_point.name): entry_point.load for entry_point in entry_points + } return self._commands - def list_commands(self, ctx): + def list_commands(self, ctx) -> List[str]: return list(sorted(self.commands)) - def get_command(self, ctx, name): + def get_command(self, ctx, name) -> Optional[click.Command]: if name in self.commands: try: return self.commands[name]() @@ -99,6 +95,7 @@ def get_command(self, ctx, name): ) # NOTE: don't return anything so Click displays proper error + return None @click.command(cls=ApeCLI, context_settings=dict(help_option_names=["-h", "--help"])) diff --git a/src/ape/cli/arguments.py b/src/ape/cli/arguments.py index d6306c0aff..2a61cbc2fe 100644 --- a/src/ape/cli/arguments.py +++ b/src/ape/cli/arguments.py @@ -55,13 +55,11 @@ def _raise_bad_arg(name): resolved_contract_paths = set() for contract_path in contract_paths: # Adds missing absolute path as well as extension. - pm = project if ctx.obj is None else ctx.obj.project_manager - resolved_contract_path = pm.lookup_path(contract_path) - if not resolved_contract_path: + if resolved_contract_path := project.lookup_path(contract_path): + resolved_contract_paths.add(resolved_contract_path) + else: _raise_bad_arg(contract_path.name) - resolved_contract_paths.add(resolved_contract_path) - return resolved_contract_paths diff --git a/src/ape/cli/choices.py b/src/ape/cli/choices.py index 5d509b8570..387ef5a112 100644 --- a/src/ape/cli/choices.py +++ b/src/ape/cli/choices.py @@ -1,6 +1,7 @@ import re from enum import Enum -from typing import Any, List, Optional, Type, Union +from functools import lru_cache +from typing import Any, Iterator, List, Optional, Sequence, Type, Union import click from click import Choice, Context, Parameter @@ -8,6 +9,7 @@ from ape import accounts, networks from ape.api.accounts import AccountAPI from ape.exceptions import AccountsError +from ape.types import _LazySequence ADHOC_NETWORK_PATTERN = re.compile(r"\w*:\w*:https?://\w*.*") @@ -34,18 +36,15 @@ def __init__(self, account_type: Optional[Type[AccountAPI]] = None): # NOTE: we purposely skip the constructor of `Choice` self.case_sensitive = False self._account_type = account_type + self.choices = _LazySequence(self._choices_iterator) @property - def choices(self) -> List[str]: # type: ignore - """ - The aliases available to choose from. - - Returns: - List[str]: A list of account aliases the user may choose from. - """ + def _choices_iterator(self) -> Iterator[str]: + for acct in _get_account_by_type(self._account_type): + if acct.alias is None: + continue - options = _get_account_by_type(self._account_type) - return [a.alias for a in options if a.alias is not None] + yield acct.alias class PromptChoice(click.ParamType): @@ -67,7 +66,7 @@ def cmd(choice): click.echo(f"__expected_{choice}") """ - def __init__(self, choices, name: Optional[str] = None): + def __init__(self, choices: Sequence[str], name: Optional[str] = None): self.choices = choices # Since we purposely skip the super() constructor, we need to make # sure the class still has a name. @@ -159,6 +158,7 @@ def __init__( self._account_type = account_type self._prompt_message = prompt_message or "Select an account" self.name = name + self.choices = _LazySequence(self._choices_iterator) def convert( self, value: Any, param: Optional[Parameter], ctx: Optional[Context] @@ -201,21 +201,15 @@ def print_choices(self): click.echo() @property - def choices(self) -> List[str]: - """ - All the account aliases. + def _choices_iterator(self) -> Iterator[str]: + # Yield real accounts. + for account in _get_account_by_type(self._account_type): + if account and (alias := account.alias): + yield alias - Returns: - List[str]: A list of all the account aliases. - """ - - _accounts = [ - a.alias - for a in _get_account_by_type(self._account_type) - if a is not None and a.alias is not None - ] - _accounts.extend([f"TEST::{i}" for i, _ in enumerate(accounts.test_accounts)]) - return _accounts + # Yield test accounts (at the end). + for idx, _ in enumerate(accounts.test_accounts): + yield f"TEST::{idx}" def get_user_selected_account(self) -> AccountAPI: """ @@ -239,6 +233,53 @@ def fail_from_invalid_choice(self, param): return self.fail("Invalid choice. Type the number or the alias.", param=param) +_NETWORK_FILTER = Optional[Union[List[str], str]] + + +def get_networks( + ecosystem: _NETWORK_FILTER = None, + network: _NETWORK_FILTER = None, + provider: _NETWORK_FILTER = None, +) -> _LazySequence: + # NOTE: Use str-keys and lru_cache. + return _get_networks_sequence_from_cache( + _network_filter_to_key(ecosystem), + _network_filter_to_key(network), + _network_filter_to_key(provider), + ) + + +@lru_cache(maxsize=None) +def _get_networks_sequence_from_cache(ecosystem_key: str, network_key: str, provider_key: str): + return _LazySequence( + networks.get_network_choices( + ecosystem_filter=_key_to_network_filter(ecosystem_key), + network_filter=_key_to_network_filter(network_key), + provider_filter=_key_to_network_filter(provider_key), + ) + ) + + +def _network_filter_to_key(filter_: _NETWORK_FILTER) -> str: + if filter_ is None: + return "__none__" + + elif isinstance(filter_, list): + return ",".join(filter_) + + return filter_ + + +def _key_to_network_filter(key: str) -> _NETWORK_FILTER: + if key == "__none__": + return None + + elif "," in key: + return [n.strip() for n in key.split(",")] + + return key + + class NetworkChoice(click.Choice): """ A ``click.Choice`` to provide network choice defaults for the active project. @@ -252,17 +293,12 @@ class NetworkChoice(click.Choice): def __init__( self, case_sensitive=True, - ecosystem: Optional[Union[List[str], str]] = None, - network: Optional[Union[List[str], str]] = None, - provider: Optional[Union[List[str], str]] = None, + ecosystem: _NETWORK_FILTER = None, + network: _NETWORK_FILTER = None, + provider: _NETWORK_FILTER = None, ): super().__init__( - list( - networks.get_network_choices( - ecosystem_filter=ecosystem, network_filter=network, provider_filter=provider - ) - ), - case_sensitive, + get_networks(ecosystem=ecosystem, network=network, provider=provider), case_sensitive ) def get_metavar(self, param): @@ -306,7 +342,7 @@ def output_format_choice(options: Optional[List[OutputFormat]] = None) -> Choice :class:`click.Choice` """ - options = options or [o for o in OutputFormat] + options = options or list(OutputFormat) # Uses `str` form of enum for CLI choices. return click.Choice([o.value for o in options], case_sensitive=False) diff --git a/src/ape/cli/options.py b/src/ape/cli/options.py index 61ebb7c90a..1341c5b81b 100644 --- a/src/ape/cli/options.py +++ b/src/ape/cli/options.py @@ -1,4 +1,4 @@ -from typing import Dict, List, NoReturn, Optional, Union +from typing import Callable, Dict, List, NoReturn, Optional, Union import click from ethpm_types import ContractType @@ -27,7 +27,6 @@ class ApeCliContextObject(ManagerAccessMixin): def __init__(self): self.logger = logger - self.config_manager.load() @staticmethod def abort(msg: str, base_error: Optional[Exception] = None) -> NoReturn: @@ -96,7 +95,7 @@ def decorator(f): def network_option( - default: Optional[str] = "auto", + default: Optional[Union[str, Callable]] = "auto", ecosystem: Optional[Union[List[str], str]] = None, network: Optional[Union[List[str], str]] = None, provider: Optional[Union[List[str], str]] = None, @@ -126,8 +125,13 @@ def network_option( if auto and not required: if ecosystem: default = ecosystem[0] if isinstance(ecosystem, (list, tuple)) else ecosystem + else: - default = networks.default_ecosystem.name + # NOTE: Use a function as the default so it is calculated lazily + def fn(): + return networks.default_ecosystem.name + + default = fn elif auto: default = None diff --git a/src/ape/plugins/__init__.py b/src/ape/plugins/__init__.py index d27ca8f90b..2b6a61f363 100644 --- a/src/ape/plugins/__init__.py +++ b/src/ape/plugins/__init__.py @@ -121,6 +121,10 @@ class PluginManager: _unimplemented_plugins: List[str] = [] def __init__(self) -> None: + self.__registered = False + + @functools.cached_property + def _plugin_modules(self) -> Tuple[str, ...]: # NOTE: Unable to use pkgutil.iter_modules() for installed plugins # because it does not work with editable installs. # See https://github.com/python/cpython/issues/99805. @@ -134,23 +138,18 @@ def __init__(self) -> None: core_plugin_module_names = { n for _, n, ispkg in pkgutil.iter_modules() if n.startswith("ape_") } - module_names = installed_plugin_module_names.union(core_plugin_module_names) - - for module_name in module_names: - try: - module = importlib.import_module(module_name) - plugin_manager.register(module) - except Exception as err: - if module_name in __modules__: - # Always raise core plugin registration errors. - raise - logger.warn_from_exception(err, f"Error loading plugin package '{module_name}'.") + # NOTE: Returns tuple because this shouldn't change. + return tuple(installed_plugin_module_names.union(core_plugin_module_names)) def __repr__(self): return f"<{self.__class__.__name__}>" def __getattr__(self, attr_name: str) -> Iterator[Tuple[str, Tuple]]: + # NOTE: The first time this method is called, the actual + # plugin registration occurs. Registration only happens once. + self._register_plugins() + if not hasattr(plugin_manager.hook, attr_name): raise ApeAttributeError(f"{self.__class__.__name__} has no attribute '{attr_name}'.") @@ -174,6 +173,23 @@ def get_plugin_name_and_hookfn(h): if validated_plugin: yield validated_plugin + def _register_plugins(self): + if self.__registered: + return + + for module_name in self._plugin_modules: + try: + module = importlib.import_module(module_name) + plugin_manager.register(module) + except Exception as err: + if module_name in __modules__: + # Always raise core plugin registration errors. + raise + + logger.warn_from_exception(err, f"Error loading plugin package '{module_name}'.") + + self.__registered = True + def _validate_plugin(self, plugin_name: str, plugin_cls) -> Optional[Tuple[str, Tuple]]: if valid_impl(plugin_cls): return clean_plugin_name(plugin_name), plugin_cls diff --git a/src/ape/types/__init__.py b/src/ape/types/__init__.py index 8f110d2eee..131382e26b 100644 --- a/src/ape/types/__init__.py +++ b/src/ape/types/__init__.py @@ -2,14 +2,17 @@ from typing import ( TYPE_CHECKING, Any, + Callable, Dict, Iterator, List, Literal, Optional, Sequence, + TypeVar, Union, cast, + overload, ) from eth_abi.abi import encode @@ -415,6 +418,64 @@ def __contains__(self, val: Any) -> bool: return any(log == val for log in self) +_T = TypeVar("_T") # _LazySequence generic. + + +class _LazySequence(Sequence[_T]): + def __init__(self, generator: Union[Iterator[_T], Callable[[], Iterator[_T]]]): + self._generator = generator + self.cache: List = [] + + @overload + def __getitem__(self, index: int) -> _T: + ... + + @overload + def __getitem__(self, index: slice) -> Sequence[_T]: + ... + + def __getitem__(self, index: Union[int, slice]) -> Union[_T, Sequence[_T]]: + if isinstance(index, int): + while len(self.cache) <= index: + # Catch up the cache. + if value := next(self.generator, None): + self.cache.append(value) + + return self.cache[index] + + elif isinstance(index, slice): + # TODO: Make slices lazier. Right now, it deqeues all. + for item in self.generator: + self.cache.append(item) + + return self.cache[index] + + else: + raise TypeError("Index must be int or slice.") + + def __len__(self) -> int: + # NOTE: This will deque everything. + + for value in self.generator: + self.cache.append(value) + + return len(self.cache) + + def __iter__(self) -> Iterator[_T]: + yield from self.cache + for value in self.generator: + yield value + self.cache.append(value) + + @property + def generator(self) -> Iterator: + if callable(self._generator): + self._generator = self._generator() + + assert isinstance(self._generator, Iterator) # For type-checking. + yield from self._generator + + __all__ = [ "ABI", "AddressType", diff --git a/src/ape_networks/_cli.py b/src/ape_networks/_cli.py index c7b61f1cc4..414b556fa8 100644 --- a/src/ape_networks/_cli.py +++ b/src/ape_networks/_cli.py @@ -10,6 +10,7 @@ from ape.cli.choices import OutputFormat from ape.cli.options import output_format_option from ape.logging import LogLevel +from ape.types import _LazySequence def _filter_option(name: str, options): @@ -29,12 +30,20 @@ def cli(): """ +def _lazy_get(name: str) -> _LazySequence: + # NOTE: Using fn generator to maintain laziness. + def gen(): + yield from getattr(networks, f"{name}_names") + + return _LazySequence(gen) + + @cli.command(name="list", short_help="List registered networks") @ape_cli_context() @output_format_option() -@_filter_option("ecosystem", networks.ecosystem_names) -@_filter_option("network", networks.network_names) -@_filter_option("provider", networks.provider_names) +@_filter_option("ecosystem", _lazy_get("ecosystem")) +@_filter_option("network", _lazy_get("network")) +@_filter_option("provider", _lazy_get("provider")) def _list(cli_ctx, output_format, ecosystem_filter, network_filter, provider_filter): if output_format == OutputFormat.TREE: default_suffix = "[dim default] (default)" diff --git a/src/ape_run/_cli.py b/src/ape_run/_cli.py index 8efaa1c7ec..737b6f9d8f 100644 --- a/src/ape_run/_cli.py +++ b/src/ape_run/_cli.py @@ -10,11 +10,11 @@ import click from click import Command, Context, Option +from ape import project from ape.cli import NetworkBoundCommand, network_option, verbosity_option from ape.cli.options import _VERBOSITY_VALUES, _create_verbosity_kwargs from ape.exceptions import ApeException, handle_ape_exception from ape.logging import logger -from ape.managers.project import ProjectManager from ape.utils import get_relative_path, use_temp_sys_path from ape_console._cli import console @@ -88,7 +88,7 @@ def invoke(self, ctx: Context) -> Any: raise def _get_command(self, filepath: Path) -> Union[click.Command, click.Group, None]: - relative_filepath = get_relative_path(filepath, self._project.path) + relative_filepath = get_relative_path(filepath, project.path) # First load the code module by compiling it # NOTE: This does not execute the module @@ -167,28 +167,12 @@ def call(network): return call - @property - def _project(self) -> ProjectManager: - """ - A class representing the project that is active at runtime. - (This is the same object as from ``from ape import project``). - - Returns: - :class:`~ape.managers.project.ProjectManager` - """ - - from ape import project - - project.config_manager.load() - - return project - @property def commands(self) -> Dict[str, Union[click.Command, click.Group]]: - if not self._project.scripts_folder.is_dir(): + if not project.scripts_folder.is_dir(): return {} - return self._get_cli_commands(self._project.scripts_folder) + return self._get_cli_commands(project.scripts_folder) def _get_cli_commands(self, base_path: Path) -> Dict: commands: Dict[str, Command] = {} @@ -234,9 +218,7 @@ def result_callback(self, result, interactive): def _launch_console(self): trace = inspect.trace() - trace_frames = [ - x for x in trace if x.filename.startswith(str(self._project.scripts_folder)) - ] + trace_frames = [x for x in trace if x.filename.startswith(str(project.scripts_folder))] if not trace_frames: # Error from Ape internals; avoid launching console. sys.exit(1) @@ -257,7 +239,7 @@ def _launch_console(self): if frame: del frame - return console(project=self._project, extra_locals=extra_locals, embed=True) + return console(project=project, extra_locals=extra_locals, embed=True) @click.command( diff --git a/tests/integration/cli/test_run.py b/tests/integration/cli/test_run.py index c5d4824376..5e3485989d 100644 --- a/tests/integration/cli/test_run.py +++ b/tests/integration/cli/test_run.py @@ -21,7 +21,7 @@ def test_run(ape_cli, runner, project): scripts = [s for s in project.scripts_folder.glob("*.py") if not s.name.startswith("error")] for script_file in scripts: - result = runner.invoke(ape_cli, ["run", script_file.stem]) + result = runner.invoke(ape_cli, ["run", script_file.stem], catch_exceptions=False) assert ( result.exit_code == 0 ), f"Unexpected exit code for '{script_file.name}'\n{result.output}" From d7f6f1b80bfaa8a598d24d31f2f6fc16d39d055f Mon Sep 17 00:00:00 2001 From: antazoey Date: Fri, 29 Sep 2023 15:39:08 -0500 Subject: [PATCH 09/22] fix: empty plugins list (#1683) --- src/ape/utils/misc.py | 3 +++ tests/functional/test_project.py | 8 +++++--- tests/functional/utils/test_misc.py | 7 ++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ape/utils/misc.py b/src/ape/utils/misc.py index 3b6ea1b2c8..1c958c3bd3 100644 --- a/src/ape/utils/misc.py +++ b/src/ape/utils/misc.py @@ -218,6 +218,9 @@ def add_padding_to_strings( List[str]: A list of equal-length strings with padded spaces. """ + if not str_list: + return [] + longest_item = len(max(str_list, key=len)) spaced_items = [] diff --git a/tests/functional/test_project.py b/tests/functional/test_project.py index 9687c9e8a0..4829a64a87 100644 --- a/tests/functional/test_project.py +++ b/tests/functional/test_project.py @@ -340,9 +340,9 @@ def test_get_project_without_contracts_path(project): def test_get_project_with_contracts_path(project): - project_path = WITH_DEPS_PROJECT / "renamed_contracts_folder" - project = project.get_project(project_path, project_path / "sources") - assert project.contracts_folder == project_path / "sources" + project_path = WITH_DEPS_PROJECT / "renamed_contracts_folder_specified_in_config" + project = project.get_project(project_path, project_path / "my_contracts") + assert project.contracts_folder == project_path / "my_contracts" def test_get_project_figure_out_contracts_path(project): @@ -351,6 +351,8 @@ def test_get_project_figure_out_contracts_path(project): to figure it out. """ project_path = WITH_DEPS_PROJECT / "renamed_contracts_folder" + (project_path / "ape-config.yaml").unlink(missing_ok=True) # Clean from prior. + project = project.get_project(project_path) assert project.contracts_folder == project_path / "sources" diff --git a/tests/functional/utils/test_misc.py b/tests/functional/utils/test_misc.py index becbc8dacf..1e1cee2330 100644 --- a/tests/functional/utils/test_misc.py +++ b/tests/functional/utils/test_misc.py @@ -27,13 +27,18 @@ def test_extract_nested_value_non_dict_in_middle_returns_none(): assert not extract_nested_value(structure, "foo", "non_dict", "test") -def test_add_spacing_to_strings(): +def test_add_padding_to_strings(): string_list = ["foo", "address", "ethereum"] expected = ["foo ", "address ", "ethereum "] actual = add_padding_to_strings(string_list, extra_spaces=4) assert actual == expected +def test_add_padding_to_strings_empty_list(): + actual = add_padding_to_strings([]) + assert actual == [] + + def test_raises_not_implemented(): @raises_not_implemented def unimplemented_api_method(): From 536d591908ef2e8aad45e81a89e0f40bf1dab84d Mon Sep 17 00:00:00 2001 From: antazoey Date: Mon, 2 Oct 2023 12:59:14 -0500 Subject: [PATCH 10/22] fix: plugins list, install, and uninstall issues [APE-1427] (#1684) --- src/ape/plugins/__init__.py | 45 +++-- src/ape_plugins/_cli.py | 166 ++++++---------- src/ape_plugins/utils.py | 268 ++++++++++++++++++++++---- tests/functional/test_plugins.py | 136 ++++++++++--- tests/integration/cli/conftest.py | 2 +- tests/integration/cli/test_plugins.py | 6 +- 6 files changed, 427 insertions(+), 196 deletions(-) diff --git a/src/ape/plugins/__init__.py b/src/ape/plugins/__init__.py index 2b6a61f363..0f5574b2b8 100644 --- a/src/ape/plugins/__init__.py +++ b/src/ape/plugins/__init__.py @@ -2,7 +2,7 @@ import importlib import pkgutil import subprocess -from typing import Any, Callable, Generator, Iterator, List, Optional, Tuple, Type +from typing import Any, Callable, Generator, Iterator, List, Optional, Set, Tuple, Type from ape.__modules__ import __modules__ from ape.exceptions import ApeAttributeError @@ -123,25 +123,6 @@ class PluginManager: def __init__(self) -> None: self.__registered = False - @functools.cached_property - def _plugin_modules(self) -> Tuple[str, ...]: - # NOTE: Unable to use pkgutil.iter_modules() for installed plugins - # because it does not work with editable installs. - # See https://github.com/python/cpython/issues/99805. - result = subprocess.check_output( - ["pip", "list", "--format", "freeze", "--disable-pip-version-check"] - ) - packages = result.decode("utf8").splitlines() - installed_plugin_module_names = { - p.split("==")[0].replace("-", "_") for p in packages if p.startswith("ape-") - } - core_plugin_module_names = { - n for _, n, ispkg in pkgutil.iter_modules() if n.startswith("ape_") - } - - # NOTE: Returns tuple because this shouldn't change. - return tuple(installed_plugin_module_names.union(core_plugin_module_names)) - def __repr__(self): return f"<{self.__class__.__name__}>" @@ -173,6 +154,30 @@ def get_plugin_name_and_hookfn(h): if validated_plugin: yield validated_plugin + @property + def registered_plugins(self) -> Set[str]: + self._register_plugins() + return {x[0] for x in plugin_manager.list_name_plugin()} + + @functools.cached_property + def _plugin_modules(self) -> Tuple[str, ...]: + # NOTE: Unable to use pkgutil.iter_modules() for installed plugins + # because it does not work with editable installs. + # See https://github.com/python/cpython/issues/99805. + result = subprocess.check_output( + ["pip", "list", "--format", "freeze", "--disable-pip-version-check"] + ) + packages = result.decode("utf8").splitlines() + installed_plugin_module_names = { + p.split("==")[0].replace("-", "_") for p in packages if p.startswith("ape-") + } + core_plugin_module_names = { + n for _, n, ispkg in pkgutil.iter_modules() if n.startswith("ape_") + } + + # NOTE: Returns tuple because this shouldn't change. + return tuple(installed_plugin_module_names.union(core_plugin_module_names)) + def _register_plugins(self): if self.__registered: return diff --git a/src/ape_plugins/_cli.py b/src/ape_plugins/_cli.py index 07cbe8f8bd..c1607fa781 100644 --- a/src/ape_plugins/_cli.py +++ b/src/ape_plugins/_cli.py @@ -1,54 +1,42 @@ import subprocess import sys from pathlib import Path -from typing import Collection, Dict, List, Set, Tuple +from typing import List, Tuple import click from ape.cli import ape_cli_context, skip_confirmation_option from ape.managers.config import CONFIG_FILE_NAME -from ape.plugins import plugin_manager -from ape.utils import add_padding_to_strings, github_client, load_config -from ape_plugins.utils import ModifyPluginResultHandler, PluginInstallRequest +from ape.utils import github_client, load_config +from ape_plugins.utils import ( + ModifyPluginResultHandler, + PluginMetadata, + PluginMetadataList, + PluginType, +) @click.group(short_help="Manage ape plugins") def cli(): """ - Command-line helper for managing installed plugins. + Command-line helper for managing plugins. """ -def _display_section(header: str, lines: List[Set[str]]): - click.echo(header) - for output in lines: - if output: - formatted_output = _format_output(output) - click.echo(" {}".format("\n ".join(formatted_output))) - - -def _format_output(plugins_list: Collection[str]) -> Set: - output = set() - for i in plugins_list: - text = i.replace("ape_", "") - output.add(text) - return output - - def plugins_argument(): """ An argument that is either the given list of plugins or plugins loaded from the local config file. """ - def load_from_file(ctx, file_path: Path) -> List[PluginInstallRequest]: + def load_from_file(ctx, file_path: Path) -> List[PluginMetadata]: if file_path.is_dir() and (file_path / CONFIG_FILE_NAME).is_file(): file_path = file_path / CONFIG_FILE_NAME if file_path.is_file(): config = load_config(file_path) if plugins := config.get("plugins"): - return [PluginInstallRequest.parse_obj(d) for d in plugins] + return [PluginMetadata.parse_obj(d) for d in plugins] ctx.obj.logger.warning(f"No plugins found at '{file_path}'.") return [] @@ -63,11 +51,11 @@ def callback(ctx, param, value: Tuple[str]): return ( load_from_file(ctx, file_path) if file_path.exists() - else [PluginInstallRequest(name=v) for v in value[0].split(" ")] + else [PluginMetadata(name=v) for v in value[0].split(" ")] ) else: - return [PluginInstallRequest(name=v) for v in value] + return [PluginMetadata(name=v) for v in value] return click.argument( "plugins", @@ -88,75 +76,36 @@ def upgrade_option(help: str = "", **kwargs): return click.option("-U", "--upgrade", default=False, is_flag=True, help=help, **kwargs) +def _display_all_callback(ctx, param, value): + return ( + (PluginType.CORE, PluginType.INSTALLED, PluginType.THIRD_PARTY, PluginType.AVAILABLE) + if value + else (PluginType.INSTALLED, PluginType.THIRD_PARTY) + ) + + @cli.command(name="list", short_help="Display plugins") @click.option( "-a", "--all", - "display_all", + "to_display", default=False, is_flag=True, + callback=_display_all_callback, help="Display all plugins installed and available (including Core)", ) @ape_cli_context() -def _list(cli_ctx, display_all): - installed_core_plugins = set() - installed_org_plugins = {} - installed_third_party_plugins = {} - plugin_list = plugin_manager.list_name_plugin() - spaced_names = add_padding_to_strings([p[0] for p in plugin_list], extra_spaces=4) - - for name in spaced_names: - plugin = PluginInstallRequest(name=name.strip()) - if plugin.in_core: - if not display_all: - continue +def _list(cli_ctx, to_display): + registered_plugins = cli_ctx.plugin_manager.registered_plugins + available_plugins = github_client.available_plugins + metadata = PluginMetadataList.from_package_names(registered_plugins.union(available_plugins)) + if output := metadata.to_str(include=to_display): + click.echo(output) + if not metadata.installed and not metadata.third_party: + click.echo("No plugins installed (besides core plugins).") - installed_core_plugins.add(name) - - elif plugin.is_available: - installed_org_plugins[name] = plugin.current_version - elif not plugin.in_core or not plugin.is_available: - installed_third_party_plugins[name] = plugin.current_version - else: - cli_ctx.logger.error(f"'{plugin.name}' is not a plugin.") - - sections: Dict[str, List[Set[str]]] = {} - if display_all: - sections["Installed Core Plugins"] = [installed_core_plugins] - - # Get all plugins that are available and not already installed. - available_plugins = list( - github_client.available_plugins - {p.strip() for p in installed_org_plugins.keys()} - ) - - formatted_org_plugins = {f"{k}{v}" for k, v in installed_org_plugins.items()} - formatted_installed_third_party_plugins = { - f"{k}{v}" for k, v in installed_third_party_plugins.items() - } - # Get the list of plugin lists that are populated. - installed_plugin_lists = [ - ls for ls in [formatted_org_plugins, formatted_installed_third_party_plugins] if ls - ] - if installed_plugin_lists: - sections["Installed Plugins"] = installed_plugin_lists - elif not display_all and available_plugins: - # User has no plugins installed | can't verify installed plugins - click.echo("No plugins installed. Use '--all' to see available plugins.") - - if display_all: - available_second_output = _format_output(available_plugins) - if available_second_output: - sections["Available Plugins"] = [available_second_output] - elif github_client.available_plugins: - click.echo("You have installed all the available plugins.\n") - - for i in range(len(sections)): - header = list(sections.keys())[i] - output = sections[header] - _display_section(f"{header}:", output) - - if i < len(sections) - 1: - click.echo() + else: + click.echo("No plugins installed.") @cli.command() @@ -168,44 +117,50 @@ def install(cli_ctx, plugins, skip_confirmation, upgrade): """Install plugins""" failures_occurred = False - for plugin_request in plugins: - if plugin_request.in_core: - cli_ctx.logger.error(f"Cannot install core 'ape' plugin '{plugin_request.name}'.") + for plugin in plugins: + if plugin.in_core: + cli_ctx.logger.error(f"Cannot install core 'ape' plugin '{plugin.name}'.") failures_occurred = True continue - elif plugin_request.version is not None and upgrade: + elif plugin.version is not None and upgrade: cli_ctx.logger.error( f"Cannot use '--upgrade' option when specifying " - f"a version for plugin '{plugin_request.name}'." + f"a version for plugin '{plugin.name}'." ) failures_occurred = True continue - # if plugin is installed but not a 2nd class. It must be a third party - elif not plugin_request.is_installed and not plugin_request.is_available: - cli_ctx.logger.warning(f"Plugin '{plugin_request.name}' is not an trusted plugin.") + # if plugin is installed but not trusted. It must be a third party + elif plugin.is_third_party: + cli_ctx.logger.warning(f"Plugin '{plugin.name}' is not an trusted plugin.") - result_handler = ModifyPluginResultHandler(cli_ctx.logger, plugin_request) - pip_arguments = [sys.executable, "-m", "pip", "install", "--quiet"] + result_handler = ModifyPluginResultHandler(plugin) + pip_arguments = [sys.executable, "-m", "pip", "install"] if upgrade: - cli_ctx.logger.info(f"Upgrading '{plugin_request.name}'...") - pip_arguments.extend(("--upgrade", plugin_request.package_name)) + cli_ctx.logger.info(f"Upgrading '{plugin.name}'...") + pip_arguments.extend(("--upgrade", plugin.package_name)) + + version_before = plugin.current_version + + # NOTE: There can issues when --quiet is not at the end. + pip_arguments.append("--quiet") - version_before = plugin_request.current_version result = subprocess.call(pip_arguments) # Returns ``True`` when upgraded successfully failures_occurred = not result_handler.handle_upgrade_result(result, version_before) - elif plugin_request.can_install and ( - plugin_request.is_available + elif plugin.can_install and ( + plugin.is_available or skip_confirmation - or click.confirm(f"Install unknown 3rd party plugin '{plugin_request.name}'?") + or click.confirm(f"Install the '{plugin.name}' plugin?") ): - cli_ctx.logger.info(f"Installing {plugin_request}...") - pip_arguments.append(plugin_request.install_str) + cli_ctx.logger.info(f"Installing {plugin}...") + + # NOTE: There can issues when --quiet is not at the end. + pip_arguments.extend((plugin.install_str, "--quiet")) # NOTE: Be *extremely careful* with this command, as it modifies the user's # installed packages, to potentially catastrophic results @@ -215,8 +170,7 @@ def install(cli_ctx, plugins, skip_confirmation, upgrade): else: cli_ctx.logger.warning( - f"'{plugin_request.name}' is already installed. " - f"Did you mean to include '--upgrade'." + f"'{plugin.name}' is already installed. " f"Did you mean to include '--upgrade'." ) if failures_occurred: @@ -237,7 +191,7 @@ def uninstall(cli_ctx, plugins, skip_confirmation): cli_ctx.logger.warning("Specifying a version when uninstalling is not necessary.") did_warn_about_version = True - result_handler = ModifyPluginResultHandler(cli_ctx.logger, plugin) + result_handler = ModifyPluginResultHandler(plugin) # if plugin is installed but not a 2nd class. It must be a third party if plugin.is_installed and not plugin.is_available: @@ -259,7 +213,7 @@ def uninstall(cli_ctx, plugins, skip_confirmation): skip_confirmation or click.confirm(f"Remove plugin '{plugin}'?") ): cli_ctx.logger.info(f"Uninstalling '{plugin.name}'...") - args = [sys.executable, "-m", "pip", "uninstall", "--quiet", "-y", plugin.package_name] + args = [sys.executable, "-m", "pip", "uninstall", "-y", plugin.package_name, "--quiet"] # NOTE: Be *extremely careful* with this command, as it modifies the user's # installed packages, to potentially catastrophic results diff --git a/src/ape_plugins/utils.py b/src/ape_plugins/utils.py index 8bcebb71a2..9f19d64094 100644 --- a/src/ape_plugins/utils.py +++ b/src/ape_plugins/utils.py @@ -1,42 +1,131 @@ import subprocess import sys -from typing import List, Optional, Tuple +from enum import Enum +from functools import cached_property +from typing import Iterator, List, Optional, Sequence, Set, Tuple from ape.__modules__ import __modules__ from ape._pydantic_compat import root_validator -from ape.logging import ApeLogger +from ape.logging import logger from ape.plugins import clean_plugin_name -from ape.utils import BaseInterfaceModel, cached_property, get_package_version, github_client +from ape.utils import BaseInterfaceModel, get_package_version, github_client +from ape.utils.basemodel import BaseModel # Plugins maintained OSS by ApeWorX (and trusted) CORE_PLUGINS = {p for p in __modules__ if p != "ape"} -def _pip_freeze_plugins() -> List[str]: - # NOTE: This uses 'pip' subprocess because often we have installed - # in the same process and this session's site-packages won't know about it yet. - output = subprocess.check_output([sys.executable, "-m", "pip", "freeze"]) - lines = [ - p - for p in output.decode().splitlines() - if p.startswith("ape-") or (p.startswith("-e") and "ape-" in p) - ] - - new_lines = [] - for package in lines: - if "-e" in package: - new_lines.append(package.split(".git")[0].split("/")[-1]) - elif "@" in package: - new_lines.append(package.split("@")[0].strip()) - elif "==" in package: - new_lines.append(package.split("==")[0].strip()) - else: - new_lines.append(package) +class PluginType(Enum): + CORE = "core" + """ + Plugins that ship with the core product. + """ - return new_lines + INSTALLED = "installed" + """ + Plugins that are installed (packages). + """ + THIRD_PARTY = "third-party" + """ + Plugins that are installed that are not maintained by a trusted source. + """ -class PluginInstallRequest(BaseInterfaceModel): + AVAILABLE = "available" + """ + Plugins that are available to install from a trusted-source. + """ + + +class _PipFreeze: + cache: Optional[Set[str]] = None + + def get_plugins(self, use_cache: bool = True) -> Set[str]: + if use_cache and self.cache is not None: + return self.cache + + output = subprocess.check_output([sys.executable, "-m", "pip", "freeze"]) + lines = [ + p + for p in output.decode().splitlines() + if p.startswith("ape-") or (p.startswith("-e") and "ape-" in p) + ] + + new_lines = [] + for package in lines: + if "-e" in package: + new_lines.append(package.split(".git")[0].split("/")[-1]) + elif "@" in package: + new_lines.append(package.split("@")[0].strip()) + elif "==" in package: + new_lines.append(package.split("==")[0].strip()) + else: + new_lines.append(package) + + self.cache = {x for x in new_lines} + return self.cache + + +_pip_freeze = _PipFreeze() + + +def _pip_freeze_plugins(use_cache: bool = True): + # NOTE: In a method for mocking purposes in tests. + return _pip_freeze.get_plugins(use_cache=use_cache) + + +class PluginMetadataList(BaseModel): + """ + Metadata per plugin type, including information for all plugins. + """ + + core: "PluginGroup" + available: "PluginGroup" + installed: "PluginGroup" + third_party: "PluginGroup" + + @classmethod + def from_package_names(cls, packages: Sequence[str]) -> "PluginMetadataList": + PluginMetadataList.update_forward_refs() + core = PluginGroup(plugin_type=PluginType.CORE) + available = PluginGroup(plugin_type=PluginType.AVAILABLE) + installed = PluginGroup(plugin_type=PluginType.INSTALLED) + third_party = PluginGroup(plugin_type=PluginType.THIRD_PARTY) + for name in {p for p in packages}: + plugin = PluginMetadata(name=name.strip()) + if plugin.in_core: + core.plugins.append(plugin) + elif plugin.is_available and not plugin.is_installed: + available.plugins.append(plugin) + elif plugin.is_installed and not plugin.in_core and not plugin.is_available: + third_party.plugins.append(plugin) + elif plugin.is_installed: + installed.plugins.append(plugin) + else: + logger.error(f"'{plugin.name}' is not a plugin.") + + return cls(core=core, available=available, installed=installed, third_party=third_party) + + def __str__(self) -> str: + return self.to_str() + + def to_str(self, include: Optional[Sequence[PluginType]] = None) -> str: + return str(ApePluginsRepr(self, include=include)) + + @property + def all_plugins(self) -> Iterator["PluginMetadata"]: + yield from self.core.plugins + yield from self.available.plugins + yield from self.installed.plugins + yield from self.third_party.plugins + + +def _get_available_plugins(): + # NOTE: Wrapped in a method so can GitHub HTTP can be avoided in tests. + return github_client.available_plugins + + +class PluginMetadata(BaseInterfaceModel): """ An encapsulation of a request to install a particular plugin. """ @@ -149,8 +238,11 @@ def is_installed(self) -> bool: """ ``True`` if the plugin is installed in the current Python environment. """ - ape_packages = [_split_name_and_version(n)[0] for n in _pip_freeze_plugins()] - return self.package_name in ape_packages + return self.check_installed() + + @property + def is_third_party(self) -> bool: + return self.is_installed and not self.is_available @property def pip_freeze_version(self) -> Optional[str]: @@ -179,7 +271,7 @@ def is_available(self) -> bool: Whether the plugin is maintained by the ApeWorX organization. """ - return self.module_name in github_client.available_plugins + return self.module_name in _get_available_plugins() def __str__(self): """ @@ -191,14 +283,19 @@ def __str__(self): version_key = f"=={self.version}" if self.version and self.version[0].isnumeric() else "" return f"{self.name}{version_key}" + def check_installed(self, use_cache: bool = True): + ape_packages = [ + _split_name_and_version(n)[0] for n in _pip_freeze_plugins(use_cache=use_cache) + ] + return self.package_name in ape_packages + class ModifyPluginResultHandler: - def __init__(self, logger: ApeLogger, plugin: PluginInstallRequest): - self._logger = logger + def __init__(self, plugin: PluginMetadata): self._plugin = plugin def handle_install_result(self, result) -> bool: - if not self._plugin.is_installed: + if not self._plugin.check_installed(use_cache=False): self._log_modify_failed("install") return False elif result != 0: @@ -211,7 +308,7 @@ def handle_install_result(self, result) -> bool: # Sometimes, like in editable mode, the version is missing here. plugin_id = f"{plugin_id}=={version}" - self._logger.success(f"Plugin '{plugin_id}' has been installed.") + logger.success(f"Plugin '{plugin_id}' has been installed.") return True def handle_upgrade_result(self, result, version_before: str) -> bool: @@ -222,36 +319,34 @@ def handle_upgrade_result(self, result, version_before: str) -> bool: pip_freeze_version = self._plugin.pip_freeze_version if version_before == pip_freeze_version or not pip_freeze_version: if self._plugin.version: - self._logger.info( - f"'{self._plugin.name}' already has version '{self._plugin.version}'." - ) + logger.info(f"'{self._plugin.name}' already has version '{self._plugin.version}'.") else: - self._logger.info(f"'{self._plugin.name}' already up to date.") + logger.info(f"'{self._plugin.name}' already up to date.") return True else: - self._logger.success( + logger.success( f"Plugin '{self._plugin.name}' has been " f"upgraded to version {self._plugin.pip_freeze_version}." ) return True def handle_uninstall_result(self, result) -> bool: - if self._plugin.is_installed: + if self._plugin.check_installed(use_cache=False): self._log_modify_failed("uninstall") return False elif result != 0: self._log_errors_occurred("uninstalling") return False else: - self._logger.success(f"Plugin '{self._plugin.name}' has been uninstalled.") + logger.success(f"Plugin '{self._plugin.name}' has been uninstalled.") return True def _log_errors_occurred(self, verb: str): - self._logger.error(f"Errors occurred when {verb} '{self._plugin}'.") + logger.error(f"Errors occurred when {verb} '{self._plugin}'.") def _log_modify_failed(self, verb: str): - self._logger.error(f"Failed to {verb} plugin '{self._plugin}.") + logger.error(f"Failed to {verb} plugin '{self._plugin}.") def _split_name_and_version(value: str) -> Tuple[str, Optional[str]]: @@ -264,3 +359,94 @@ def _split_name_and_version(value: str) -> Tuple[str, Optional[str]]: index = min(value.index(c) for c in chars) return value[:index], value[index:] + + +class PluginGroup(BaseModel): + """ + A group of plugin metadata by type. + """ + + plugin_type: PluginType + plugins: List[PluginMetadata] = [] + + def __bool__(self) -> bool: + return len(self.plugins) > 0 + + def __repr__(self) -> str: + return f"<{self.name} Plugins Group>" + + def __str__(self) -> str: + return self.to_str() + + @property + def name(self) -> str: + return self.plugin_type.value.capitalize() + + @property + def plugin_names(self) -> List[str]: + return [x.name for x in self.plugins] + + def to_str(self, max_length: Optional[int] = None, include_version: bool = True) -> str: + title = f"{self.name} Plugins" + if len(self.plugins) <= 0: + return title + + lines = [title] + max_length = self.max_name_length if max_length is None else max_length + plugins_sorted = sorted(self.plugins, key=lambda p: p.name) + for plugin in plugins_sorted: + line = plugin.name + if include_version: + version = plugin.version or get_package_version(plugin.package_name) + if version: + spacing = (max_length - len(line)) + 4 + line = f"{line}{spacing * ' '}{version}" + + lines.append(f" {line}") # Indent. + + return "\n".join(lines) + + @property + def max_name_length(self) -> int: + if not self.plugins: + return 0 + + return max(len(x.name) for x in self.plugins) + + +class ApePluginsRepr: + """ + A str-builder for all installed Ape plugins. + """ + + def __init__( + self, metadata: PluginMetadataList, include: Optional[Sequence[PluginType]] = None + ): + self.include = include or (PluginType.INSTALLED, PluginType.THIRD_PARTY) + self.metadata = metadata + + def __repr__(self) -> str: + to_display_str = ", ".join([x.value for x in self.include]) + return f"" + + def __str__(self) -> str: + sections = [] + + if PluginType.CORE in self.include and self.metadata.core: + sections.append(self.metadata.core) + if PluginType.INSTALLED in self.include and self.metadata.installed: + sections.append(self.metadata.installed) + if PluginType.THIRD_PARTY in self.include and self.metadata.third_party: + sections.append(self.metadata.third_party) + if PluginType.AVAILABLE in self.include and self.metadata.available: + sections.append(self.metadata.available) + + # Use a single max length for all the sections. + max_length = max(x.max_name_length for x in sections) + + version_skips = (PluginType.CORE, PluginType.AVAILABLE) + formatted_sections = [ + x.to_str(max_length=max_length, include_version=x.plugin_type not in version_skips) + for x in sections + ] + return "\n\n".join(formatted_sections) diff --git a/tests/functional/test_plugins.py b/tests/functional/test_plugins.py index a6896433b7..37f163b630 100644 --- a/tests/functional/test_plugins.py +++ b/tests/functional/test_plugins.py @@ -1,59 +1,145 @@ +from typing import Set + import pytest -from ape_plugins.utils import PluginInstallRequest +from ape_plugins.utils import ApePluginsRepr, PluginMetadata, PluginMetadataList, PluginType + +CORE_PLUGINS = ("run",) +AVAILABLE_PLUGINS = ("available", "installed") +INSTALLED_PLUGINS = ("installed", "thirdparty") +THIRD_PARTY = ("thirdparty",) +VERSION = "0.6.2" + + +@pytest.fixture(autouse=True) +def plugin_test_env(mocker): + root = "ape_plugins.utils" + + # Prevent calling out to GitHub + gh_mock = mocker.patch(f"{root}._get_available_plugins") + gh_mock.return_value = {f"ape_{x}" for x in AVAILABLE_PLUGINS} + + # Prevent requiring plugins to be installed. + installed_mock = mocker.patch(f"{root}._pip_freeze_plugins") + installed_mock.return_value = {f"ape-{x}" for x in INSTALLED_PLUGINS} + + # Prevent version lookups. + version_mock = mocker.patch(f"{root}.get_package_version") + version_mock.return_value = VERSION + + +@pytest.fixture +def package_names() -> Set[str]: + return { + f"ape-{x}" for x in [*CORE_PLUGINS, *AVAILABLE_PLUGINS, *INSTALLED_PLUGINS, *THIRD_PARTY] + } + + +@pytest.fixture +def plugin_metadata(package_names) -> PluginMetadataList: + return PluginMetadataList.from_package_names(package_names) -EXPECTED_PLUGIN_NAME = "plugin_name" +class TestPluginMetadataList: + def test_from_package_names(self, plugin_metadata): + actual = plugin_metadata + assert actual.core.plugin_names == list(CORE_PLUGINS) + assert actual.third_party.plugin_names == list(THIRD_PARTY) + assert actual.installed.plugin_names == [INSTALLED_PLUGINS[0]] # Not 3rd party + assert actual.available.plugin_names == [AVAILABLE_PLUGINS[0]] # Not installed -class TestPluginInstallRequest: + def test_all_plugins(self, plugin_metadata, package_names): + actual = {f"ape-{x.name}" for x in plugin_metadata.all_plugins} + assert actual == package_names + + +class TestPluginMetadata: @pytest.mark.parametrize( "name", ("ape-foo-bar", "ape-foo-bar", "ape_foo_bar", "foo-bar", "foo_bar") ) def test_names(self, name): - request = PluginInstallRequest(name=name) - assert request.name == "foo-bar" - assert request.package_name == "ape-foo-bar" - assert request.module_name == "ape_foo_bar" + metadata = PluginMetadata(name=name) + assert metadata.name == "foo-bar" + assert metadata.package_name == "ape-foo-bar" + assert metadata.module_name == "ape_foo_bar" - def test_parse_obj_when_version_included_with_name(self): + def test_model_when_version_included_with_name(self): # This allows parsing requirements files easier - request = PluginInstallRequest(name="ape-foo-bar==0.5.0") - assert request.name == "foo-bar" - assert request.version == "==0.5.0" + metadata = PluginMetadata(name="ape-foo-bar==0.5.0") + assert metadata.name == "foo-bar" + assert metadata.version == "==0.5.0" @pytest.mark.parametrize("version", ("0.5.0", "v0.5.0", "0.5.0a123")) def test_version(self, version): - request = PluginInstallRequest(name="foo", version=version) - assert request.version == version + metadata = PluginMetadata(name="foo", version=version) + assert metadata.version == version def test_install_str_without_version(self): - request = PluginInstallRequest(name="foo-bar") - actual = request.install_str + metadata = PluginMetadata(name="foo-bar") + actual = metadata.install_str assert actual == "ape-foo-bar" def test_install_str_with_version(self): - request = PluginInstallRequest(name="foo-bar", version="0.5.0") - actual = request.install_str + metadata = PluginMetadata(name="foo-bar", version="0.5.0") + actual = metadata.install_str assert actual == "ape-foo-bar==0.5.0" def test_install_str_with_complex_constraint(self): - request = PluginInstallRequest(name="foo", version=">=0.5.0,<0.6.0") - actual = request.install_str + metadata = PluginMetadata(name="foo", version=">=0.5.0,<0.6.0") + actual = metadata.install_str assert actual == "ape-foo>=0.5.0,<0.6.0" def test_install_str_with_complex_constraint_in_name(self): - request = PluginInstallRequest(name="foo>=0.5.0,<0.6.0") - actual = request.install_str + metadata = PluginMetadata(name="foo>=0.5.0,<0.6.0") + actual = metadata.install_str assert actual == "ape-foo>=0.5.0,<0.6.0" def test_install_str_when_using_git_remote(self): url = "git+https://example.com/ape-foo/branch" - request = PluginInstallRequest(name="foo", version=url) - actual = request.install_str + metadata = PluginMetadata(name="foo", version=url) + actual = metadata.install_str assert actual == url def test_install_str_remote_in_name(self): url = "git+https://example.com/ape-foo/branch" - request = PluginInstallRequest(name=f"foo@{url}") - actual = request.install_str + metadata = PluginMetadata(name=f"foo@{url}") + actual = metadata.install_str assert actual == url + + def test_is_available(self): + metadata = PluginMetadata(name=list(AVAILABLE_PLUGINS)[0]) + assert metadata.is_available + metadata = PluginMetadata(name="foobar") + assert not metadata.is_available + + +class TestApePluginsRepr: + def test_str(self, plugin_metadata): + plugin_map = ApePluginsRepr(plugin_metadata) + actual = str(plugin_map) + expected = f""" +Installed Plugins + installed {VERSION} + +Third-party Plugins + thirdparty {VERSION} + """ + assert actual == expected.strip() + + def test_str_all_types(self, plugin_metadata): + plugin_map = ApePluginsRepr(plugin_metadata, include=list(PluginType)) + actual = str(plugin_map) + expected = f""" +Core Plugins + run + +Installed Plugins + installed {VERSION} + +Third-party Plugins + thirdparty {VERSION} + +Available Plugins + available + """ + assert actual == expected.strip() diff --git a/tests/integration/cli/conftest.py b/tests/integration/cli/conftest.py index 446ae18ddb..bf6d8bf7cc 100644 --- a/tests/integration/cli/conftest.py +++ b/tests/integration/cli/conftest.py @@ -228,7 +228,7 @@ def __init__(self): def invoke_list(self, arguments: Optional[List] = None): arguments = arguments or [] result = self.invoke(["list", *arguments]) - assert result.exit_code == 0 + assert result.exit_code == 0, result.output return ListResult.parse_output(result.output) return PluginSubprocessRunner() diff --git a/tests/integration/cli/test_plugins.py b/tests/integration/cli/test_plugins.py index e8599dc8db..c3f273ee61 100644 --- a/tests/integration/cli/test_plugins.py +++ b/tests/integration/cli/test_plugins.py @@ -17,9 +17,9 @@ def __init__(self, header: str, lines: List[str]): class ListResult: - CORE_KEY = "Installed Core Plugins:" - INSTALLED_KEY = "Installed Plugins:" - AVAILABLE_KEY = "Available Plugins:" + CORE_KEY = "Core Plugins" + INSTALLED_KEY = "Installed Plugins" + AVAILABLE_KEY = "Available Plugins" def __init__(self, lines: List[str]): self._lines = lines From 74fdcbb291767c4aea27c619823e678f30f8558b Mon Sep 17 00:00:00 2001 From: antazoey Date: Wed, 4 Oct 2023 19:05:16 -0500 Subject: [PATCH 11/22] fix: hyphenated ecosystem names (#1689) --- src/ape/managers/networks.py | 7 +++++++ tests/functional/test_network_manager.py | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/ape/managers/networks.py b/src/ape/managers/networks.py index 4e5b038fcf..d769f9719c 100644 --- a/src/ape/managers/networks.py +++ b/src/ape/managers/networks.py @@ -227,6 +227,13 @@ def __getattr__(self, attr_name: str) -> EcosystemAPI: """ if attr_name not in self.ecosystems: + # First try alternating the hyphen and underscores. + attr_name_fix = ( + attr_name.replace("_", "-") if "_" in attr_name else attr_name.replace("-", "_") + ) + if attr_name_fix in self.ecosystems: + return self.ecosystems[attr_name_fix] + raise ApeAttributeError(f"{self.__class__.__name__} has no attribute '{attr_name}'.") return self.ecosystems[attr_name] diff --git a/tests/functional/test_network_manager.py b/tests/functional/test_network_manager.py index 6d15fac357..85b20dbf73 100644 --- a/tests/functional/test_network_manager.py +++ b/tests/functional/test_network_manager.py @@ -189,3 +189,9 @@ def test_parse_network_choice_multiple_contexts(get_provider_with_unused_chain_i # Second context should already know about connected providers assert len(first_context.connected_providers) == expected_next_count assert len(second_context.connected_providers) == expected_next_count + + +def test_getattr_ecosystem_with_hyphenated_name(networks, ethereum): + networks.ecosystems["hyphen-in-name"] = networks.ecosystems["ethereum"] + assert networks.hyphen_in_name # Make sure does not raise AttributeError + del networks.ecosystems["hyphen-in-name"] From fbc5fd1c043cc14c0430a0af943fe20aa4732dd7 Mon Sep 17 00:00:00 2001 From: antazoey Date: Thu, 5 Oct 2023 09:48:06 -0500 Subject: [PATCH 12/22] feat: sort networks (#1690) --- src/ape/managers/networks.py | 2 +- src/ape_networks/_cli.py | 14 +++-- tests/integration/cli/test_networks.py | 84 +++++++++++++++----------- 3 files changed, 58 insertions(+), 42 deletions(-) diff --git a/src/ape/managers/networks.py b/src/ape/managers/networks.py index d769f9719c..b6f87bde16 100644 --- a/src/ape/managers/networks.py +++ b/src/ape/managers/networks.py @@ -541,7 +541,7 @@ def networks_yaml(self) -> str: ) try: - return yaml.dump(data, sort_keys=False) + return yaml.dump(data, sort_keys=True) except ValueError as err: try: data_str = json.dumps(data) diff --git a/src/ape_networks/_cli.py b/src/ape_networks/_cli.py index 414b556fa8..3275da300e 100644 --- a/src/ape_networks/_cli.py +++ b/src/ape_networks/_cli.py @@ -47,7 +47,8 @@ def gen(): def _list(cli_ctx, output_format, ecosystem_filter, network_filter, provider_filter): if output_format == OutputFormat.TREE: default_suffix = "[dim default] (default)" - ecosystems = cli_ctx.network_manager.network_data["ecosystems"] + ecosystems = {e["name"]: e for e in cli_ctx.network_manager.network_data["ecosystems"]} + ecosystems = {n: ecosystems[n] for n in sorted(ecosystems)} def make_sub_tree(data: Dict, create_tree: Callable) -> Tree: name = f"[bold green]{data['name']}" @@ -57,17 +58,18 @@ def make_sub_tree(data: Dict, create_tree: Callable) -> Tree: sub_tree = create_tree(name) return sub_tree - for ecosystem in ecosystems: + for ecosystem_name, ecosystem in ecosystems.items(): if ecosystem_filter and ecosystem["name"] not in ecosystem_filter: continue ecosystem_tree = make_sub_tree(ecosystem, Tree) - _networks = ecosystem["networks"] + _networks = {n["name"]: n for n in ecosystem["networks"]} + _networks = {n: _networks[n] for n in sorted(_networks)} if network_filter: - _networks = [n for n in _networks if n["name"] in network_filter] + _networks = {n: v for n, v in _networks.items() if n in network_filter} - for network in _networks: - if network_filter and network["name"] not in network_filter: + for network_name, network in _networks.items(): + if network_filter and network_name not in network_filter: continue providers = network["providers"] diff --git a/tests/integration/cli/test_networks.py b/tests/integration/cli/test_networks.py index f2f98d76e3..4b00769a3f 100644 --- a/tests/integration/cli/test_networks.py +++ b/tests/integration/cli/test_networks.py @@ -5,55 +5,53 @@ _DEFAULT_NETWORKS_TREE = """ ethereum (default) -├── mainnet -│ └── geth (default) ├── goerli │ └── geth (default) -├── sepolia -│ └── geth (default) -└── local (default) - ├── geth - └── test (default) +├── local (default) +│ └── test (default) +├── mainnet +│ └── test (default) +└── sepolia + └── geth (default) """ _DEFAULT_NETWORKS_YAML = """ ecosystems: -- name: ethereum - isDefault: true +- isDefault: true + name: ethereum networks: - - name: mainnet + - name: goerli providers: - - name: geth - isDefault: true - - name: mainnet-fork + - isDefault: true + name: geth + - name: goerli-fork providers: [] - - name: goerli + - isDefault: true + name: local providers: - name: geth - isDefault: true - - name: goerli-fork + - isDefault: true + name: test + - name: mainnet + providers: + - isDefault: true + name: geth + - name: mainnet-fork providers: [] - name: sepolia providers: - - name: geth - isDefault: true + - isDefault: true + name: geth - name: sepolia-fork providers: [] - - name: local - isDefault: true - providers: - - name: geth - - name: test - isDefault: true """ _GETH_NETWORKS_TREE = """ ethereum (default) -├── mainnet -│ └── geth (default) ├── goerli │ └── geth (default) -└── local (default) - ├── geth (default) - └── test +├── local (default) +│ └── geth (default) +└── mainnet + └── geth (default) """ _TEST_PROVIDER_TREE_OUTPUT = """ ethereum (default) @@ -91,7 +89,11 @@ def assert_rich_text(actual: str, expected: str): @run_once def test_list(ape_cli, runner): result = runner.invoke(ape_cli, ["networks", "list"]) - assert_rich_text(result.output, _DEFAULT_NETWORKS_TREE) + + # Grab ethereum + actual = "ethereum (default)\n" + "".join(result.output.split("ethereum (default)\n")[-1]) + + assert_rich_text(actual, _DEFAULT_NETWORKS_TREE) @run_once @@ -115,25 +117,37 @@ def test_geth(ape_cli, runner, networks, project): assert ( networks.provider.network.default_provider == "geth" ), "Setup failed - default provider didn't apply from config" - assert_rich_text(result.output, _GETH_NETWORKS_TREE) + + # Grab ethereum + actual = "ethereum (default)\n" + "".join(result.output.split("ethereum (default)\n")[-1]) + + assert_rich_text(actual, _GETH_NETWORKS_TREE) # Assert that URI still exists for local network # (was bug where one network's URI disappeared when setting different network's URI) geth_provider = networks.get_provider_from_choice(f"ethereum:{LOCAL_NETWORK_NAME}:geth") - actual = geth_provider.uri - assert actual == GETH_URI + actual_uri = geth_provider.uri + assert actual_uri == GETH_URI @run_once def test_filter_networks(ape_cli, runner, networks): result = runner.invoke(ape_cli, ["networks", "list", "--network", "goerli"]) - assert_rich_text(result.output, _GOERLI_NETWORK_TREE_OUTPUT) + + # Grab ethereum + actual = "ethereum (default)\n" + "".join(result.output.split("ethereum (default)\n")[-1]) + + assert_rich_text(actual, _GOERLI_NETWORK_TREE_OUTPUT) @run_once def test_filter_providers(ape_cli, runner, networks): result = runner.invoke(ape_cli, ["networks", "list", "--provider", "test"]) - assert_rich_text(result.output, _TEST_PROVIDER_TREE_OUTPUT) + + # Grab ethereum + actual = "ethereum (default)\n" + "".join(result.output.split("ethereum (default)\n")[-1]) + + assert_rich_text(actual, _TEST_PROVIDER_TREE_OUTPUT) @run_once From af4d3e496259809c47c8fe98c2cc7ef77db27b35 Mon Sep 17 00:00:00 2001 From: antazoey Date: Thu, 5 Oct 2023 12:43:12 -0500 Subject: [PATCH 13/22] fix: sort prov (#1692) --- src/ape_networks/_cli.py | 1 + tests/integration/cli/test_networks.py | 1 + 2 files changed, 2 insertions(+) diff --git a/src/ape_networks/_cli.py b/src/ape_networks/_cli.py index 3275da300e..9acb336172 100644 --- a/src/ape_networks/_cli.py +++ b/src/ape_networks/_cli.py @@ -78,6 +78,7 @@ def make_sub_tree(data: Dict, create_tree: Callable) -> Tree: if providers: network_tree = make_sub_tree(network, ecosystem_tree.add) + providers = sorted(providers, key=lambda p: p["name"]) for provider in providers: make_sub_tree(provider, network_tree.add) diff --git a/tests/integration/cli/test_networks.py b/tests/integration/cli/test_networks.py index 4b00769a3f..fd763e1332 100644 --- a/tests/integration/cli/test_networks.py +++ b/tests/integration/cli/test_networks.py @@ -8,6 +8,7 @@ ├── goerli │ └── geth (default) ├── local (default) +│ ├── geth │ └── test (default) ├── mainnet │ └── test (default) From f7d84f3268295210c281206a1dd6ee4ba25f1307 Mon Sep 17 00:00:00 2001 From: antazoey Date: Fri, 6 Oct 2023 10:09:14 -0500 Subject: [PATCH 14/22] fix: better network errors when choice not found [APE-1441] (#1691) --- src/ape/api/networks.py | 14 +++-- src/ape/cli/choices.py | 15 +++++- src/ape/exceptions.py | 80 ++++++++++++++++++++++++++-- src/ape/managers/networks.py | 13 +++-- tests/functional/test_cli.py | 2 +- tests/functional/test_ecosystem.py | 6 +-- tests/functional/test_network_api.py | 9 ++-- 7 files changed, 116 insertions(+), 23 deletions(-) diff --git a/src/ape/api/networks.py b/src/ape/api/networks.py index 5d7e9ab40f..a0840adc26 100644 --- a/src/ape/api/networks.py +++ b/src/ape/api/networks.py @@ -18,6 +18,7 @@ NetworkMismatchError, NetworkNotFoundError, ProviderNotConnectedError, + ProviderNotFoundError, SignatureError, ) from ape.logging import logger @@ -287,8 +288,7 @@ def set_default_network(self, network_name: str): if network_name in self.networks: self._default_network = network_name else: - message = f"'{network_name}' is not a valid network for ecosystem '{self.name}'." - raise NetworkError(message) + raise NetworkNotFoundError(network_name, ecosystem=self.name, options=self.networks) @abstractmethod def encode_deployment( @@ -428,7 +428,7 @@ def get_network(self, network_name: str) -> "NetworkAPI": if name in self.networks: return self.networks[name] - raise NetworkNotFoundError(network_name) + raise NetworkNotFoundError(network_name, ecosystem=self.name, options=self.networks) def get_network_data(self, network_name: str) -> Dict: """ @@ -877,8 +877,12 @@ def get_provider( return provider else: - message = f"'{provider_name}' is not a valid provider for network '{self.name}'" - raise NetworkError(message) + raise ProviderNotFoundError( + provider_name, + network=self.name, + ecosystem=self.ecosystem.name, + options=self.providers, + ) def use_provider( self, diff --git a/src/ape/cli/choices.py b/src/ape/cli/choices.py index 387ef5a112..e8c5f9d46d 100644 --- a/src/ape/cli/choices.py +++ b/src/ape/cli/choices.py @@ -4,7 +4,7 @@ from typing import Any, Iterator, List, Optional, Sequence, Type, Union import click -from click import Choice, Context, Parameter +from click import BadParameter, Choice, Context, Parameter from ape import accounts, networks from ape.api.accounts import AccountAPI @@ -313,7 +313,18 @@ def convert(self, value: Any, param: Optional[Parameter], ctx: Optional[Context] # By-pass choice constraints when using adhoc network return value - return super().convert(value, param, ctx) + try: + return super().convert(value, param, ctx) + except BadParameter as err: + # Find out actual bad parts of the value to show better error. + # The following line should raise a nicer error. + networks.get_provider_from_choice(network_choice=value) + + # If an error was not raised for some reason, raise a simpler error. + # NOTE: Still avoid showing the massive network options list. + raise click.BadParameter( + "Invalid network choice. Use `ape networks list` to see options." + ) from err class OutputFormat(Enum): diff --git a/src/ape/exceptions.py b/src/ape/exceptions.py index f5cefa8c21..1a0b2fccc7 100644 --- a/src/ape/exceptions.py +++ b/src/ape/exceptions.py @@ -1,3 +1,4 @@ +import difflib import sys import tempfile import time @@ -5,7 +6,7 @@ from inspect import getframeinfo, stack from pathlib import Path from types import CodeType, TracebackType -from typing import TYPE_CHECKING, Any, Dict, Iterator, List, Optional, Union, cast +from typing import TYPE_CHECKING, Any, Collection, Dict, Iterator, List, Optional, Union, cast import click from eth_typing import Hash32 @@ -274,14 +275,87 @@ class NetworkError(ApeException): """ +class EcosystemNotFoundError(NetworkError): + """ + Raised when the ecosystem with the given name was not found. + """ + + def __init__(self, ecosystem: str, options: Optional[Collection[str]] = None): + self.ecosystem = ecosystem + self.options = options + message = f"No ecosystem named '{ecosystem}'." + if options: + close_matches = difflib.get_close_matches(ecosystem, options, cutoff=0.6) + if close_matches: + message = f"{message} Did you mean '{', '.join(close_matches)}'?" + else: + # No close matches. Show all the options. + options_str = "\n".join(sorted(options)) + message = f"{message} Options:\n{options_str}" + + super().__init__(message) + + class NetworkNotFoundError(NetworkError): """ Raised when the network with the given name was not found. """ - def __init__(self, network: str): + def __init__( + self, + network: str, + ecosystem: Optional[str] = None, + options: Optional[Collection[str]] = None, + ): self.network = network - message = f"No network named '{network}'." + message = ( + f"No network in '{ecosystem}' named '{network}'." + if ecosystem + else f"No network named '{network}'." + ) + if options: + close_matches = difflib.get_close_matches(network, options, cutoff=0.6) + if close_matches: + message = f"{message} Did you mean '{', '.join(close_matches)}'?" + else: + # No close matches - show all options. + options_str = "\n".join(sorted(options)) + message = f"{message} Options:\n{options_str}" + + super().__init__(message) + + +class ProviderNotFoundError(NetworkError): + """ + Raised when the provider with the given name was not found. + """ + + def __init__( + self, + provider: str, + network: Optional[str] = None, + ecosystem: Optional[str] = None, + options: Optional[Collection[str]] = None, + ): + self.provider = provider + self.network = network + self.ecosystem = ecosystem + message = f"No provider named '{provider}'" + if network: + message = f"{message} in network '{network}'" + if ecosystem: + message = f"{message} in ecosystem '{ecosystem}'" + if options: + close_matches = difflib.get_close_matches(provider, options, cutoff=0.6) + if close_matches: + message = f"{message} Did you mean '{', '.join(close_matches)}'?" + else: + # No close matches. Show all provider options. + options_str = "\n".join(sorted(options)) + message = f"{message}. Options:\n{options_str}" + else: + message = f"{message}." + super().__init__(message) diff --git a/src/ape/managers/networks.py b/src/ape/managers/networks.py index b6f87bde16..64cf8ae044 100644 --- a/src/ape/managers/networks.py +++ b/src/ape/managers/networks.py @@ -6,7 +6,7 @@ from ape.api import EcosystemAPI, ProviderAPI, ProviderContextManager from ape.api.networks import NetworkAPI -from ape.exceptions import ApeAttributeError, NetworkError +from ape.exceptions import ApeAttributeError, EcosystemNotFoundError, NetworkError from ape.managers.base import BaseManager @@ -207,7 +207,7 @@ def __getitem__(self, ecosystem_name: str) -> EcosystemAPI: :class:`~ape.api.networks.EcosystemAPI` """ if ecosystem_name not in self.ecosystems: - raise NetworkError(f"Unknown ecosystem '{ecosystem_name}'.") + raise IndexError(f"Unknown ecosystem '{ecosystem_name}'.") return self.ecosystems[ecosystem_name] @@ -337,7 +337,7 @@ def get_ecosystem(self, ecosystem_name: str) -> EcosystemAPI: """ if ecosystem_name not in self.ecosystem_names: - raise NetworkError(f"Ecosystem '{ecosystem_name}' not found.") + raise EcosystemNotFoundError(ecosystem_name, options=self.ecosystem_names) return self.ecosystems[ecosystem_name] @@ -433,6 +433,9 @@ def parse_network_choice( (see :meth:`~ape.managers.networks.NetworkManager.get_network_choices`). Defaults to the default ecosystem, network, and provider combination. provider_settings (dict, optional): Settings for the provider. Defaults to None. + disconnect_after (bool): Set to True to terminate the connection completely + at the end of context. NOTE: May only work if the network was also started + from this session. Returns: :class:`~api.api.networks.ProviderContextManager` @@ -484,7 +487,7 @@ def set_default_ecosystem(self, ecosystem_name: str): self._default = ecosystem_name else: - raise NetworkError(f"Ecosystem '{ecosystem_name}' is not a registered ecosystem.") + raise EcosystemNotFoundError(ecosystem_name, options=self.ecosystem_names) @property def network_data(self) -> Dict: @@ -549,7 +552,7 @@ def networks_yaml(self) -> str: data_str = str(data) raise NetworkError( - f"Network data did not dump to YAML: {data_str}\nAcual err: {err}" + f"Network data did not dump to YAML: {data_str}\nActual err: {err}" ) from err diff --git a/tests/functional/test_cli.py b/tests/functional/test_cli.py index be4e951db0..6795c43656 100644 --- a/tests/functional/test_cli.py +++ b/tests/functional/test_cli.py @@ -161,7 +161,7 @@ def test_network_option_specified(runner, network_cmd): def test_network_option_unknown(runner, network_cmd): result = runner.invoke(network_cmd, ["--network", "UNKNOWN"]) assert result.exit_code != 0, result.output - assert "Invalid value for '--network'" in result.output + assert "No ecosystem named 'UNKNOWN'" in str(result.exception) @pytest.mark.parametrize( diff --git a/tests/functional/test_ecosystem.py b/tests/functional/test_ecosystem.py index 6222ed21cd..c347f366a6 100644 --- a/tests/functional/test_ecosystem.py +++ b/tests/functional/test_ecosystem.py @@ -6,7 +6,7 @@ from ethpm_types.abi import ABIType, MethodABI from ape.api.networks import LOCAL_NETWORK_NAME -from ape.exceptions import DecodingError, NetworkError +from ape.exceptions import DecodingError, NetworkNotFoundError from ape.types import AddressType from ape.utils import DEFAULT_LOCAL_TRANSACTION_ACCEPTANCE_TIMEOUT from ape_ethereum.ecosystem import BLUEPRINT_HEADER, Block @@ -327,6 +327,6 @@ def test_encode_transaction(tx_type, ethereum, vyper_contract_instance, owner, e def test_set_default_network_not_exists(temp_config, ethereum): bad_network = "NOT_EXISTS" - expected = f"'{bad_network}' is not a valid network for ecosystem 'ethereum'." - with pytest.raises(NetworkError, match=expected): + expected = f"No network in 'ethereum' named '{bad_network}'. Options:.*" + with pytest.raises(NetworkNotFoundError, match=expected): ethereum.set_default_network(bad_network) diff --git a/tests/functional/test_network_api.py b/tests/functional/test_network_api.py index 291a6bdf65..6c79314df8 100644 --- a/tests/functional/test_network_api.py +++ b/tests/functional/test_network_api.py @@ -1,12 +1,13 @@ import pytest -from ape.exceptions import NetworkError +from ape.exceptions import NetworkError, ProviderNotFoundError def test_get_provider_when_not_found(ethereum): - network = ethereum.get_network("goerli-fork") - expected = "'test' is not a valid provider for network 'goerli-fork'" - with pytest.raises(NetworkError, match=expected): + name = "goerli-fork" + network = ethereum.get_network(name) + expected = f"No provider named 'test' in network '{name}' in ecosystem 'ethereum'.*" + with pytest.raises(ProviderNotFoundError, match=expected): network.get_provider("test") From 8f06f0af5c58597b27b3a17c072f8615443114a9 Mon Sep 17 00:00:00 2001 From: antazoey Date: Fri, 6 Oct 2023 10:23:42 -0500 Subject: [PATCH 15/22] fix: issue where subclass receipts were not recognized in transaction error [APE-1445] (#1693) --- src/ape/exceptions.py | 5 +++-- tests/functional/test_exceptions.py | 25 ++++++++++++++++++++++++- tests/functional/test_transaction.py | 11 ++++++++++- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/ape/exceptions.py b/src/ape/exceptions.py index 1a0b2fccc7..273064be75 100644 --- a/src/ape/exceptions.py +++ b/src/ape/exceptions.py @@ -724,8 +724,9 @@ def name(self) -> str: def _get_ape_traceback(txn: FailedTxn) -> Optional["SourceTraceback"]: - is_receipt = "ReceiptAPI" in [t.__name__ for t in txn.__class__.__bases__] - receipt: "ReceiptAPI" = txn if is_receipt else txn.receipt # type: ignore + from ape.api.transactions import ReceiptAPI + + receipt: "ReceiptAPI" = txn if isinstance(txn, ReceiptAPI) else txn.receipt # type: ignore if not receipt: return None diff --git a/tests/functional/test_exceptions.py b/tests/functional/test_exceptions.py index 0a5adb25ca..68e0bb101c 100644 --- a/tests/functional/test_exceptions.py +++ b/tests/functional/test_exceptions.py @@ -1,5 +1,28 @@ +import re + +from ape.api import ReceiptAPI from ape.cli import Abort +from ape.exceptions import TransactionError +from ape_ethereum.transactions import Receipt def test_abort(): - assert str(Abort()) == "Operation aborted in test_exceptions.py::test_abort on line 5." + expected = re.compile(r"Operation aborted in test_exceptions.py::test_abort on line \d+\.") + assert expected.match(str(Abort())) + + +def test_transaction_error_when_receipt_is_subclass(vyper_contract_instance, owner): + """ + Ensure TransactionError knows subclass Receipts are still receipts. + (There was a bug once when it didn't, and that caused internal AttributeErrors). + """ + + class SubclassReceipt(Receipt): + pass + + receipt = vyper_contract_instance.setNumber(123, sender=owner) + receipt_data = {**receipt.dict(), "transaction": receipt.transaction} + sub_receipt = SubclassReceipt.parse_obj(receipt_data) + + err = TransactionError(txn=sub_receipt) + assert isinstance(err.txn, ReceiptAPI) # Same check used. diff --git a/tests/functional/test_transaction.py b/tests/functional/test_transaction.py index c83c12b73b..b562f242d5 100644 --- a/tests/functional/test_transaction.py +++ b/tests/functional/test_transaction.py @@ -44,7 +44,7 @@ def test_create_dynamic_fee_kwargs(ethereum, fee_kwargs): assert txn.max_fee == int(100e9) -def test_txn_hash(owner, eth_tester_provider, ethereum): +def test_txn_hash_and_receipt(owner, eth_tester_provider, ethereum): txn = ethereum.create_transaction() txn = owner.prepare_transaction(txn) txn = owner.sign_transaction(txn) @@ -52,6 +52,10 @@ def test_txn_hash(owner, eth_tester_provider, ethereum): actual = txn.txn_hash.hex() receipt = eth_tester_provider.send_transaction(txn) + + # Show that we can access the receipt from the transaction. + assert txn.receipt == receipt + expected = receipt.txn_hash assert actual == expected @@ -82,3 +86,8 @@ def test_txn_str_when_data_is_bytes(ethereum): txn = ethereum.create_transaction(data=HexBytes("0x123")) actual = str(txn) assert isinstance(actual, str) + + +def test_transaction_with_none_receipt(ethereum): + txn = ethereum.create_transaction(data=HexBytes("0x123")) + assert txn.receipt is None From adba4e48fa519f8762639bccaafcac9dd05add3a Mon Sep 17 00:00:00 2001 From: antazoey Date: Mon, 9 Oct 2023 11:50:11 -0500 Subject: [PATCH 16/22] fix: unnecessary modification (#1695) --- src/ape/api/projects.py | 25 ++++++++++++++----------- src/ape/managers/project/manager.py | 2 +- tests/functional/test_project.py | 19 +++++++++++++++++++ 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/src/ape/api/projects.py b/src/ape/api/projects.py index b386257682..a213382252 100644 --- a/src/ape/api/projects.py +++ b/src/ape/api/projects.py @@ -137,19 +137,22 @@ def cached_manifest(self) -> Optional[PackageManifest]: @property def contracts(self) -> Dict[str, ContractType]: - if self._contracts is None: - contracts = {} - for p in self._cache_folder.glob("*.json"): - if p == self.manifest_cachefile: - continue + if self._contracts is not None: + return self._contracts + + contracts = {} + for p in self._cache_folder.glob("*.json"): + if p == self.manifest_cachefile: + continue + + contract_name = p.stem + contract_type = ContractType.parse_file(p) + if contract_type.name is None: + contract_type.name = contract_name - contract_name = p.stem - contract_type = ContractType.parse_file(p) - if contract_type.name is None: - contract_type.name = contract_name + contracts[contract_type.name] = contract_type - contracts[contract_type.name] = contract_type - self._contracts = contracts + self._contracts = contracts return self._contracts @property diff --git a/src/ape/managers/project/manager.py b/src/ape/managers/project/manager.py index 69dc1ec921..c214a41afb 100644 --- a/src/ape/managers/project/manager.py +++ b/src/ape/managers/project/manager.py @@ -407,7 +407,7 @@ def contracts(self) -> Dict[str, ContractType]: Returns: Dict[str, ``ContractType``] """ - if self.local_project._cached_manifest is None: + if self.local_project.cached_manifest is None: return self.load_contracts() return self.local_project.contracts diff --git a/tests/functional/test_project.py b/tests/functional/test_project.py index 4829a64a87..1b81ca2a6d 100644 --- a/tests/functional/test_project.py +++ b/tests/functional/test_project.py @@ -1,3 +1,4 @@ +import os import shutil from pathlib import Path from urllib.parse import urlparse @@ -394,3 +395,21 @@ def test_getattr_contract_not_exists(project): contract.touch() with pytest.raises(AttributeError, match=expected): _ = project.ThisIsNotAContractThatExists + + +def test_build_file_only_modified_once(project_with_contract): + project = project_with_contract + artifact = project.path / ".build" / "__local__.json" + _ = project.contracts # Ensure compiled. + + # NOTE: This is how re-create the bug. Delete the underscore-prefixed + # cached object and attempt to re-compile. Previously, the ProjectManager + # was relying on an internal cache rather than the external one, and thus + # caused the file to get unnecessarily re-made (modified). + project.local_project._cached_manifest = None + + # Prove the file is not unnecessarily modified. + time_before = os.path.getmtime(artifact) + _ = project.contracts + time_after = os.path.getmtime(artifact) + assert time_before == time_after From 4738b343a289cacf3770d0b6976509e10ac7d2cb Mon Sep 17 00:00:00 2001 From: antazoey Date: Mon, 9 Oct 2023 12:26:31 -0500 Subject: [PATCH 17/22] fix: an indefinite compile issue [APE-1450] (#1696) --- build_docs.py | 3 ++- src/ape/managers/compilers.py | 27 +++++++++++++++++++++++++-- tests/functional/conftest.py | 20 ++++++++++++++++++++ tests/functional/test_compilers.py | 21 ++++++++++++++++++++- 4 files changed, 67 insertions(+), 4 deletions(-) diff --git a/build_docs.py b/build_docs.py index 98ea402824..870d477a30 100644 --- a/build_docs.py +++ b/build_docs.py @@ -36,7 +36,8 @@ def build_docs(path: Path) -> Path: try: subprocess.check_call(["sphinx-build", "docs", str(path)]) except subprocess.SubprocessError as err: - raise ApeDocsBuildError(f"Command 'sphinx-build docs {path}' failed.") from err + message = f"Command 'sphinx-build docs {path}' failed.\nErr:{err}" + raise ApeDocsBuildError(message) from err return path diff --git a/src/ape/managers/compilers.py b/src/ape/managers/compilers.py index 30cc0dda0e..5be5adcb28 100644 --- a/src/ape/managers/compilers.py +++ b/src/ape/managers/compilers.py @@ -100,6 +100,8 @@ def compile(self, contract_filepaths: List[Path]) -> Dict[str, ContractType]: contracts_folder = self.config_manager.contracts_folder contract_types_dict: Dict[str, ContractType] = {} built_paths = [p for p in self.project_manager.local_project._cache_folder.glob("*.json")] + built_names = [p.stem for p in built_paths if p.stem != "__local__"] + for extension in extensions: path_patterns_to_ignore = self.config_manager.compiler.ignore_files ignore_path_lists = [contracts_folder.rglob(p) for p in path_patterns_to_ignore] @@ -120,8 +122,8 @@ def compile(self, contract_filepaths: List[Path]) -> Dict[str, ContractType]: and not any(x in [p.name for p in path.parents] for x in (".cache", ".build")) ] - for path in paths_to_compile: - source_id = get_relative_path(path, contracts_folder) + source_ids = [get_relative_path(p, contracts_folder) for p in paths_to_compile] + for source_id in source_ids: logger.info(f"Compiling '{source_id}'.") compiled_contracts = self.registered_compilers[extension].compile( @@ -152,6 +154,27 @@ def compile(self, contract_filepaths: List[Path]) -> Dict[str, ContractType]: ) raise CompilerError(error_message) + elif contract_name in built_names: + # Ensure we are not colliding. + existing_artifact = ( + self.project_manager.local_project._cache_folder / f"{contract_name}.json" + ) + + try: + existing_contract = ContractType.parse_file(existing_artifact) + except Exception: + existing_artifact.unlink() + + else: + path = self.project_manager.lookup_path(existing_contract.source_id) + if path and existing_contract.source_id != contract_type.source_id: + error_message = f"{ContractType.__name__} collision '{contract_name}'." + raise CompilerError(error_message) + + elif not path: + # Artifact remaining from deleted contract, can delete. + existing_artifact.unlink() + contract_types_dict[contract_name] = contract_type return contract_types_dict diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py index 83e64bf7d9..c4920f6e1b 100644 --- a/tests/functional/conftest.py +++ b/tests/functional/conftest.py @@ -512,3 +512,23 @@ def mock_explorer(mocker): explorer = mocker.MagicMock() explorer.name = "mock" # Needed for network data serialization. return explorer + + +@pytest.fixture +def mock_compiler(mocker): + mock = mocker.MagicMock() + mock.ext = ".__mock__" + + def mock_compile(paths, *args, **kwargs): + result = [] + for path in paths: + if path.suffix == mock.ext: + name = path.stem + code = HexBytes(123).hex() + contract_type = ContractType(contractName=name, abi=[], deploymentBytecode=code) + result.append(contract_type) + + return result + + mock.compile.side_effect = mock_compile + return mock diff --git a/tests/functional/test_compilers.py b/tests/functional/test_compilers.py index 40e60f4893..4c9a7c814e 100644 --- a/tests/functional/test_compilers.py +++ b/tests/functional/test_compilers.py @@ -67,6 +67,25 @@ def test_flatten_contract(compilers, project_with_contract): with pytest.raises(APINotImplementedError): compilers.flatten_contract(path) - expected = r"Unable to flatten contract\. Missing compiler for '.foo'." + expected = r"Unable to flatten contract\. Missing compiler for '.foo'\." with pytest.raises(CompilerError, match=expected): compilers.flatten_contract(Path("contract.foo")) + + +def test_contract_type_collision(compilers, project_with_contract, mock_compiler): + existing_compilers = compilers._registered_compilers_cache[project_with_contract.path] + all_compilers = {**existing_compilers, mock_compiler.ext: mock_compiler} + + try: + compilers._registered_compilers_cache[project_with_contract.path] = all_compilers + + # Make contracts of type .__mock__ with the same names. + contract_name = next(iter(project_with_contract.contracts)) + new_contract = project_with_contract.path / f"{contract_name}{mock_compiler.ext}" + new_contract.write_text("foobar") + + with pytest.raises(CompilerError, match="ContractType collision.*"): + compilers.compile([new_contract]) + + finally: + compilers._registered_compilers_cache[project_with_contract.path] = existing_compilers From eaa0d028d9b98b593b9f90b151c3f561feede813 Mon Sep 17 00:00:00 2001 From: antazoey Date: Mon, 9 Oct 2023 17:50:52 -0500 Subject: [PATCH 18/22] fix: multiple ABI encoding and decoding bug fixes (#1694) --- src/ape/utils/abi.py | 11 +- src/ape_ethereum/ecosystem.py | 3 + src/ape_ethereum/multicall/constants.py | 5 +- src/ape_ethereum/multicall/handlers.py | 100 ++++++++---- tests/functional/conftest.py | 146 +++++++++++++++++- .../functional/test_contract_call_handler.py | 5 + .../test_contract_method_handler.py | 27 ++++ tests/functional/test_ecosystem.py | 64 +++++++- tests/functional/test_multicall.py | 72 +++++++++ 9 files changed, 394 insertions(+), 39 deletions(-) create mode 100644 tests/functional/test_contract_call_handler.py create mode 100644 tests/functional/test_contract_method_handler.py create mode 100644 tests/functional/test_multicall.py diff --git a/src/ape/utils/abi.py b/src/ape/utils/abi.py index 0a9b21ebde..8e49b1a89e 100644 --- a/src/ape/utils/abi.py +++ b/src/ape/utils/abi.py @@ -93,6 +93,10 @@ def _encode(self, _type: ABIType, value: Any): if isinstance(value, dict): return tuple([value[m.name] for m in _type.components]) + elif isinstance(value, (list, tuple)): + # NOTE: Args must be passed in correct order. + return tuple(value) + else: arg = [getattr(value, m.name) for m in _type.components if m.name] return tuple(arg) @@ -188,10 +192,10 @@ def _decode( parsed_item = [] else: - # Handle tuple of arrays - parsed_item = [v for v in value] + parsed_item = [HexBytes(v) if isinstance(v, bytes) else v for v in value] return_values.append(parsed_item) + else: return_values.append(value) @@ -442,7 +446,8 @@ def decode_value(self, abi_type: str, value: Any) -> Any: elif isinstance(value, (list, tuple)): parser = StructParser(self.abi) - return parser.decode_input([value]) + result = parser.decode_input([value]) + return result[0] if len(result) == 1 else result # NOTE: All the rest of the types are handled by the # ecosystem API through the calling function. diff --git a/src/ape_ethereum/ecosystem.py b/src/ape_ethereum/ecosystem.py index b6dfd5ce12..4f9d1aadc7 100644 --- a/src/ape_ethereum/ecosystem.py +++ b/src/ape_ethereum/ecosystem.py @@ -656,6 +656,9 @@ def create_transaction(self, **kwargs) -> TransactionAPI: return txn_class(**kwargs) def decode_logs(self, logs: List[Dict], *events: EventABI) -> Iterator["ContractLog"]: + if not logs: + return + abi_inputs = { encode_hex(keccak(text=abi.selector)): LogInputABICollection(abi) for abi in events } diff --git a/src/ape_ethereum/multicall/constants.py b/src/ape_ethereum/multicall/constants.py index 6bc2717e36..d2c82a8a1b 100644 --- a/src/ape_ethereum/multicall/constants.py +++ b/src/ape_ethereum/multicall/constants.py @@ -1,6 +1,7 @@ from copy import deepcopy +from typing import cast -from ape.types import HexBytes +from ape.types import AddressType, HexBytes SUPPORTED_CHAINS = [ 1, @@ -57,7 +58,7 @@ 106, 40, ] -MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11" +MULTICALL3_ADDRESS = cast(AddressType, "0xcA11bde05977b3631167028862bE2a173976CA11") MULTICALL3_CODE = HexBytes( "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0" "574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80" diff --git a/src/ape_ethereum/multicall/handlers.py b/src/ape_ethereum/multicall/handlers.py index 22f65f3c2a..14d948ba1b 100644 --- a/src/ape_ethereum/multicall/handlers.py +++ b/src/ape_ethereum/multicall/handlers.py @@ -1,4 +1,5 @@ -from typing import Any, Iterator, List, Tuple, Union +from types import ModuleType +from typing import Any, Dict, Iterator, List, Optional, Tuple, Union from ape.api import ReceiptAPI, TransactionAPI from ape.contracts.base import ( @@ -8,8 +9,9 @@ ContractTransactionHandler, _select_method_abi, ) -from ape.exceptions import ChainError -from ape.types import ContractType, HexBytes +from ape.exceptions import ChainError, DecodingError +from ape.logging import logger +from ape.types import AddressType, ContractType, HexBytes from ape.utils import ManagerAccessMixin, cached_property from ape.utils.abi import MethodABI @@ -23,14 +25,20 @@ class BaseMulticall(ManagerAccessMixin): - def __init__(self) -> None: + def __init__( + self, + address: AddressType = MULTICALL3_ADDRESS, + supported_chains: Optional[List[int]] = None, + ) -> None: """ Initialize a new Multicall session object. By default, there are no calls to make. """ - self.calls: List[dict] = [] + self.address = address + self.supported_chains = supported_chains or SUPPORTED_CHAINS + self.calls: List[Dict] = [] @classmethod - def inject(cls): + def inject(cls) -> ModuleType: """ Create the multicall module contract on-chain, so we can use it. Must use a provider that supports ``debug_setCode``. @@ -42,23 +50,24 @@ def inject(cls): @pytest.fixture(scope="session") def use_multicall(): # NOTE: use this fixture any test where you want to use a multicall - multicall.BaseMulticall.deploy() + return multicall.BaseMulticall.inject() """ - active_provider = cls.network_manager.active_provider - assert active_provider, "Must be connected to an active network to deploy" from ape_ethereum import multicall - active_provider.set_code( - multicall.constants.MULTICALL3_ADDRESS, - multicall.constants.MULTICALL3_CODE, - ) + provider = cls.network_manager.provider + provider.set_code(MULTICALL3_ADDRESS, MULTICALL3_CODE) + + if provider.chain_id not in SUPPORTED_CHAINS: + SUPPORTED_CHAINS.append(provider.chain_id) + return multicall @cached_property def contract(self) -> ContractInstance: try: - # See if we can fetch it from an explorer first - contract = self.chain_manager.contracts.instance_at(MULTICALL3_ADDRESS) + # NOTE: This will attempt to fetch the contract, such as from an explorer, + # if it is not yet cached. + contract = self.chain_manager.contracts.instance_at(self.address) except ChainError: # else use our backend (with less methods) @@ -67,7 +76,7 @@ def contract(self) -> ContractInstance: contract_type=ContractType.parse_obj(MULTICALL3_CONTRACT_TYPE), ) - if self.provider.chain_id not in SUPPORTED_CHAINS and contract.code != MULTICALL3_CODE: + if self.provider.chain_id not in self.supported_chains and contract.code != MULTICALL3_CODE: # NOTE: 2nd condition allows for use in local test deployments and fork networks raise UnsupportedChainError() @@ -95,13 +104,15 @@ def add( Adds a call to the Multicall session object. Raises: - :class:`InvalidOption`: If one of the kwarg modifiers is not able to be used. + :class:`~ape_ethereum.multicall.exceptions.InvalidOption`: If one + of the kwarg modifiers is not able to be used. Args: - call: :class:`ContractMethodHandler` The method to call. + call (:class:`~ape_ethereum.multicall.handlers.ContractMethodHandler`): + The method to call. *args: The arguments to invoke the method with. - allowFailure: bool Whether the call is allowed to fail. - value: int The amount of ether to forward with the call. + allowFailure (bool): Whether the call is allowed to fail. + value (int): The amount of ether to forward with the call. """ # Append call dict to the list @@ -133,11 +144,16 @@ class Call(BaseMulticall): a, b, ..., z = call() # Performs multicall """ - def __init__(self) -> None: - super().__init__() + def __init__( + self, + address: AddressType = MULTICALL3_ADDRESS, + supported_chains: Optional[List[int]] = None, + ) -> None: + super().__init__(address=address, supported_chains=supported_chains) self.abis: List[MethodABI] = [] self._result: Union[None, Tuple[int, List[HexBytes]], List[Tuple[bool, HexBytes]]] = None + self._failed_results: List[HexBytes] = [] @property def handler(self) -> ContractCallHandler: # type: ignore[override] @@ -152,20 +168,40 @@ def add(self, call: ContractMethodHandler, *args, **kwargs): @property def returnData(self) -> List[HexBytes]: - if not self._result: + result = self._result # Declare for typing reasons. + if not result: raise NotExecutedError() - elif isinstance(self._result, tuple): - # Call3[] or Call3Value[] - return list(r[1] for r in self._result) # type: ignore[index] + elif ( + isinstance(result, (tuple, list)) + and len(result) >= 2 + and type(result[0]) is bool + and isinstance(result[1], bytes) + ): + # Call3[] or Call3Value[] when only single call. + return [result[1]] + + elif isinstance(result, tuple): + # Call3[] or Call3Value[] when multiple calls. + return list(r[1] for r in self._result) # type: ignore else: # blockNumber: uint256, returnData: Call[] - return self._result.returnData # type: ignore[attr-defined] + return result.returnData # type: ignore def _decode_results(self) -> Iterator[Any]: for abi, data in zip(self.abis, self.returnData): - result = self.provider.network.ecosystem.decode_returndata(abi, data) + if data in self._failed_results: + # The call failed. + yield data + continue + + try: + result = self.provider.network.ecosystem.decode_returndata(abi, data) + except DecodingError as err: + logger.error(err) + yield data # Yield the raw data + continue if isinstance(result, (list, tuple)) and len(result) == 1: yield result[0] @@ -179,7 +215,7 @@ def __call__(self, **call_kwargs) -> Iterator[Any]: is called. Raises: - :class:`~ape_ethereum.multicall.exceptions.UnsupportedChain`: + :class:`~ape_ethereum.multicall.exceptions.UnsupportedChainError`: If there is not an instance of Multicall3 deployed on the current chain at the expected address. @@ -210,14 +246,14 @@ class Transaction(BaseMulticall): Usage example:: - from ape_ethereum import multicall + from ape_ethereum.multicall import Transaction - txn = multitxn.Transaction() + txn = Transaction() txn.add(contract.myMethod, *call_args) txn.add(contract.myMethod, *call_args) ... # Add as many calls as desired to execute txn.add(contract.myMethod, *call_args) - a, b, ..., z = txn(sender=my_signer) # Sends the multical transaction + a, b, ..., z = txn(sender=my_signer) # Sends the multicall transaction """ def _validate_calls(self, **txn_kwargs) -> None: diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py index c4920f6e1b..8f54482b2e 100644 --- a/tests/functional/conftest.py +++ b/tests/functional/conftest.py @@ -5,11 +5,12 @@ from typing import Optional, cast import pytest -from ethpm_types import ContractType, HexBytes +from ethpm_types import ContractType, HexBytes, MethodABI import ape from ape.api import TransactionAPI from ape.contracts import ContractContainer, ContractInstance +from ape.contracts.base import ContractCallHandler from ape.exceptions import ChainError, ContractLogicError from ape.logging import LogLevel from ape.logging import logger as _logger @@ -35,6 +36,103 @@ def fn(name: str) -> ContractType: APE_PROJECT_FOLDER = BASE_PROJECTS_DIRECTORY / "ApeProject" BASE_SOURCES_DIRECTORY = (Path(__file__).parent / "data/sources").absolute() +CALL_WITH_STRUCT_INPUT = MethodABI.parse_obj( + { + "type": "function", + "name": "getTradeableOrderWithSignature", + "stateMutability": "view", + "inputs": [ + {"name": "owner", "type": "address", "internalType": "address"}, + { + "name": "params", + "type": "tuple", + "components": [ + { + "name": "handler", + "type": "address", + "internalType": "contract IConditionalOrder", + }, + {"name": "salt", "type": "bytes32", "internalType": "bytes32"}, + {"name": "staticInput", "type": "bytes", "internalType": "bytes"}, + ], + "internalType": "struct IConditionalOrder.ConditionalOrderParams", + }, + {"name": "offchainInput", "type": "bytes", "internalType": "bytes"}, + {"name": "proof", "type": "bytes32[]", "internalType": "bytes32[]"}, + ], + "outputs": [ + { + "name": "order", + "type": "tuple", + "components": [ + {"name": "sellToken", "type": "address", "internalType": "contract IERC20"}, + {"name": "buyToken", "type": "address", "internalType": "contract IERC20"}, + {"name": "receiver", "type": "address", "internalType": "address"}, + {"name": "sellAmount", "type": "uint256", "internalType": "uint256"}, + {"name": "buyAmount", "type": "uint256", "internalType": "uint256"}, + {"name": "validTo", "type": "uint32", "internalType": "uint32"}, + {"name": "appData", "type": "bytes32", "internalType": "bytes32"}, + {"name": "feeAmount", "type": "uint256", "internalType": "uint256"}, + {"name": "kind", "type": "bytes32", "internalType": "bytes32"}, + {"name": "partiallyFillable", "type": "bool", "internalType": "bool"}, + {"name": "sellTokenBalance", "type": "bytes32", "internalType": "bytes32"}, + {"name": "buyTokenBalance", "type": "bytes32", "internalType": "bytes32"}, + ], + "internalType": "struct GPv2Order.Data", + }, + {"name": "signature", "type": "bytes", "internalType": "bytes"}, + ], + } +) +METHOD_WITH_STRUCT_INPUT = MethodABI.parse_obj( + { + "type": "function", + "name": "getTradeableOrderWithSignature", + "stateMutability": "view", + "inputs": [ + {"name": "owner", "type": "address", "internalType": "address"}, + { + "name": "params", + "type": "tuple", + "components": [ + { + "name": "handler", + "type": "address", + "internalType": "contract IConditionalOrder", + }, + {"name": "salt", "type": "bytes32", "internalType": "bytes32"}, + {"name": "staticInput", "type": "bytes", "internalType": "bytes"}, + ], + "internalType": "struct IConditionalOrder.ConditionalOrderParams", + }, + {"name": "offchainInput", "type": "bytes", "internalType": "bytes"}, + {"name": "proof", "type": "bytes32[]", "internalType": "bytes32[]"}, + ], + "outputs": [ + { + "name": "order", + "type": "tuple", + "components": [ + {"name": "sellToken", "type": "address", "internalType": "contract IERC20"}, + {"name": "buyToken", "type": "address", "internalType": "contract IERC20"}, + {"name": "receiver", "type": "address", "internalType": "address"}, + {"name": "sellAmount", "type": "uint256", "internalType": "uint256"}, + {"name": "buyAmount", "type": "uint256", "internalType": "uint256"}, + {"name": "validTo", "type": "uint32", "internalType": "uint32"}, + {"name": "appData", "type": "bytes32", "internalType": "bytes32"}, + {"name": "feeAmount", "type": "uint256", "internalType": "uint256"}, + {"name": "kind", "type": "bytes32", "internalType": "bytes32"}, + {"name": "partiallyFillable", "type": "bool", "internalType": "bool"}, + {"name": "sellTokenBalance", "type": "bytes32", "internalType": "bytes32"}, + {"name": "buyTokenBalance", "type": "bytes32", "internalType": "bytes32"}, + ], + "internalType": "struct GPv2Order.Data", + }, + {"name": "signature", "type": "bytes", "internalType": "bytes"}, + ], + } +) + class _ContractLogicError(ContractLogicError): pass @@ -514,6 +612,52 @@ def mock_explorer(mocker): return explorer +@pytest.fixture +def call_abi_with_struct_input(): + return CALL_WITH_STRUCT_INPUT + + +@pytest.fixture +def fake_contract(mocker): + # Only needed for initialization; never used. + return mocker.MagicMock() + + +@pytest.fixture +def call_handler_with_struct_input(fake_contract, call_abi_with_struct_input): + abi = call_abi_with_struct_input + return ContractCallHandler(contract=fake_contract, abis=[abi]) + + +@pytest.fixture(scope="session") +def struct_input_for_call(owner): + return [owner, [owner, b"skip", b"skip"], b"skip", [b"skip"]] + + +@pytest.fixture(scope="session") +def output_from_struct_input_call(): + # Expected when using `struct_input_for_call`. + return HexBytes( + "0x26e0a1960000000000000000000000001e59ce931b4cfea3fe4b875411e280e173cb7a9c" + "00000000000000000000000000000000000000000000000000000000000000800000000000" + "00000000000000000000000000000000000000000000000000012000000000000000000000" + "000000000000000000000000000000000000000001600000000000000000000000001e59ce" + "931b4cfea3fe4b875411e280e173cb7a9c736b697000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000060000000000000000000000000000000000000000000000000000000000000" + "0004736b697000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000004736b697000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000001736b69700000000000000000000000000000" + "0000000000000000000000000000" + ) + + +@pytest.fixture +def method_abi_with_struct_input(): + return METHOD_WITH_STRUCT_INPUT + + @pytest.fixture def mock_compiler(mocker): mock = mocker.MagicMock() diff --git a/tests/functional/test_contract_call_handler.py b/tests/functional/test_contract_call_handler.py new file mode 100644 index 0000000000..9d5f907bb5 --- /dev/null +++ b/tests/functional/test_contract_call_handler.py @@ -0,0 +1,5 @@ +def test_struct_input( + call_handler_with_struct_input, struct_input_for_call, output_from_struct_input_call +): + actual = call_handler_with_struct_input.encode_input(*struct_input_for_call) + assert actual == output_from_struct_input_call diff --git a/tests/functional/test_contract_method_handler.py b/tests/functional/test_contract_method_handler.py new file mode 100644 index 0000000000..06433cf181 --- /dev/null +++ b/tests/functional/test_contract_method_handler.py @@ -0,0 +1,27 @@ +from ethpm_types import HexBytes + +from ape.contracts.base import ContractMethodHandler + + +def test_encode_input_list_for_struct(chain, mocker, owner, method_abi_with_struct_input): + method = method_abi_with_struct_input + handler = ContractMethodHandler(contract=mocker.MagicMock(), abis=[method]) + + # NOTE: Purposely passing a list for the struct type here! + # this is to ensure we can use lists (instead of objects or dictionaries). + params = [owner.address, b"foo", b"bar"] + + actual = handler.encode_input(owner.address, params, b"", []) + expected = HexBytes( + "0x26e0a1960000000000000000000000001e59ce931b4cfea3fe4b875411e280e173cb7a9c" + "00000000000000000000000000000000000000000000000000000000000000800000000000" + "00000000000000000000000000000000000000000000000000012000000000000000000000" + "000000000000000000000000000000000000000001400000000000000000000000001e59ce" + "931b4cfea3fe4b875411e280e173cb7a9c666f6f0000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000060000000000000000000000000000000000000000000000000000000000000" + "00036261720000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000" + ) + assert actual == expected diff --git a/tests/functional/test_ecosystem.py b/tests/functional/test_ecosystem.py index c347f366a6..3c165eef8e 100644 --- a/tests/functional/test_ecosystem.py +++ b/tests/functional/test_ecosystem.py @@ -3,7 +3,7 @@ import pytest from eth_typing import HexAddress, HexStr from ethpm_types import HexBytes -from ethpm_types.abi import ABIType, MethodABI +from ethpm_types.abi import ABIType, EventABI, MethodABI from ape.api.networks import LOCAL_NETWORK_NAME from ape.exceptions import DecodingError, NetworkNotFoundError @@ -138,6 +138,68 @@ def test_decode_logs_empty_list(ethereum, event_abi): assert actual == [] +def test_decode_logs_with_struct_from_interface(ethereum): + abi = EventABI.parse_obj( + { + "type": "event", + "name": "ConditionalOrderCreated", + "inputs": [ + {"name": "owner", "type": "address", "internalType": "address", "indexed": True}, + { + "name": "params", + "type": "tuple", + "components": [ + { + "name": "handler", + "type": "address", + "internalType": "contract IConditionalOrder", + }, + {"name": "salt", "type": "bytes32", "internalType": "bytes32"}, + {"name": "staticInput", "type": "bytes", "internalType": "bytes"}, + ], + "internalType": "struct IConditionalOrder.ConditionalOrderParams", + "indexed": False, + }, + ], + "anonymous": False, + } + ) + logs = [ + { + "address": "0xfdafc9d1902f4e0b84f65f49f244b32b31013b74", + "blockHash": "0xec1b8e18412dd91114c0b3ea03c41d02243d60cd05661861df5765fb5ec462c6", + "blockNumber": "0x11101cc", + "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000006cf1e9ca41f7611def408122793c358a3d11e5a5000000000000000000000000000000000000000000000000000000189e491e96000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e7602ca44f83a5e9ba8bd14125ddcb295f3d63bd00000000000000000000000000000000000000000000018eb03406b6af33c8c3000000000000000000000000000000000000000000000000345d7669a1e8815700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000007b9bc44550e2cc369010139a1d3a5a6ec6d65910379e0ee35a7c3cdf24cb12a7", # noqa: E501 + "logIndex": "0x97", + "removed": False, + "topics": [ + "0x2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361", + "0x000000000000000000000000e7602ca44f83a5e9ba8bd14125ddcb295f3d63bd", + ], + "transactionHash": "0x55859e74e591100e0f37f146abc0dbebe2252eaf5f533319ca77427745b85ceb", + "transactionIndex": "0x45", + } + ] + actual = list(ethereum.decode_logs(logs, abi)) + assert len(actual) == 1 + assert actual[0].owner == "0xE7602Ca44f83a5E9Ba8BD14125dDcb295f3D63BD" + assert actual[0].params == [ + "0x6cf1e9ca41f7611def408122793c358a3d11e5a5", + HexBytes("0x000000000000000000000000000000000000000000000000000000189e491e96"), + HexBytes( + "0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000" + "00000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000" + "00000000e7602ca44f83a5e9ba8bd14125ddcb295f3d63bd0000000000000000000000000" + "0000000000000000000018eb03406b6af33c8c30000000000000000000000000000000000" + "00000000000000345d7669a1e881570000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000000020000000000000000000000000000000000000000000000000000000000000" + "12c00000000000000000000000000000000000000000000000000000000000000007b9bc4" + "4550e2cc369010139a1d3a5a6ec6d65910379e0ee35a7c3cdf24cb12a7" + ), + ] + + def test_decode_block_when_hash_is_none(ethereum): # When using some providers, such as hardhat, the hash of the pending block is None block_data_with_none_hash: Dict[str, Any] = { diff --git a/tests/functional/test_multicall.py b/tests/functional/test_multicall.py new file mode 100644 index 0000000000..c678bbe9b8 --- /dev/null +++ b/tests/functional/test_multicall.py @@ -0,0 +1,72 @@ +from typing import List + +import pytest +from ethpm_types import ContractType, HexBytes + +from ape.exceptions import APINotImplementedError +from ape_ethereum.multicall import Call +from ape_ethereum.multicall.constants import MULTICALL3_ADDRESS, MULTICALL3_CONTRACT_TYPE +from ape_ethereum.multicall.exceptions import UnsupportedChainError + +RETURNDATA = HexBytes("0x4a821464") + + +class ReturndataClass: + returnData: List[HexBytes] = [RETURNDATA] + + +RETURNDATA_PARAMS = { + "result": ReturndataClass(), + # Happens when using Call() for a single call. + "result_single": [False, RETURNDATA], +} + + +@pytest.fixture(scope="module") +def undeployed_multicall(chain): + # NOTE: Still has the ability to decode/encode inputs. + return chain.contracts.instance_at( + MULTICALL3_ADDRESS, + contract_type=ContractType.parse_obj(MULTICALL3_CONTRACT_TYPE), + ) + + +@pytest.fixture(scope="module") +def aggregate3(undeployed_multicall): + # NOTE: Avoid `__getattr__` call as it requires a real contract. + return undeployed_multicall._mutable_methods_["aggregate3"] + + +def test_inject_raises_not_implemented(): + with pytest.raises(APINotImplementedError): + Call.inject() + + +def test_unsupported_chain(call_handler_with_struct_input, struct_input_for_call): + call = Call() + call.add(call_handler_with_struct_input, *struct_input_for_call, allowFailure=True) + + # The local test chain doesn't have the multicall contracts. + with pytest.raises(UnsupportedChainError): + next(call()) + + +def test_aggregate3_input( + aggregate3, call_handler_with_struct_input, struct_input_for_call, vyper_contract_instance +): + call = Call() + + # Use a real contract here so the target encoding works. + call_handler_with_struct_input.contract = vyper_contract_instance + + call.add(call_handler_with_struct_input, *struct_input_for_call) + actual = aggregate3.encode_input(call.calls) + assert isinstance(actual, HexBytes) + + +@pytest.mark.parametrize("returndata_key", RETURNDATA_PARAMS) +def test_returndata(returndata_key): + returndata = RETURNDATA_PARAMS[returndata_key] + call = Call() + call._result = returndata # type: ignore + assert call.returnData[0] == HexBytes("0x4a821464") From 69529fecbb16f1163f9b99ba6a47ab0c9cd8be7b Mon Sep 17 00:00:00 2001 From: antazoey Date: Tue, 10 Oct 2023 14:59:23 -0500 Subject: [PATCH 19/22] chore: bump ethpmtypes (#1698) --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 77876ff758..1dd14c7d14 100644 --- a/setup.py +++ b/setup.py @@ -124,7 +124,7 @@ "web3[tester]>=6.7.0,<7", # ** Dependencies maintained by ApeWorX ** "eip712>=0.2.1,<0.3", - "ethpm-types>=0.5.6,<0.6", + "ethpm-types>=0.5.8,<0.6", "evm-trace>=0.1.0a23", ], entry_points={ From 4c5b8538e5e9bc84e0964ea77ebbe98d29872316 Mon Sep 17 00:00:00 2001 From: antazoey Date: Tue, 10 Oct 2023 16:44:22 -0500 Subject: [PATCH 20/22] feat: use OTS namespace for get contract creation receipt in ape-geth [APE-1453] (#1697) --- src/ape/api/providers.py | 2 + src/ape_geth/__init__.py | 6 +++ src/ape_geth/provider.py | 60 +++++++++++++++++++++++++---- src/ape_geth/query.py | 35 +++++++++++++++++ tests/functional/geth/test_query.py | 31 +++++++++++++++ 5 files changed, 127 insertions(+), 7 deletions(-) create mode 100644 src/ape_geth/query.py create mode 100644 tests/functional/geth/test_query.py diff --git a/src/ape/api/providers.py b/src/ape/api/providers.py index 5e52f79671..b3399c0230 100644 --- a/src/ape/api/providers.py +++ b/src/ape/api/providers.py @@ -1358,6 +1358,7 @@ def get_contract_creation_receipts( # TODO: Handle when code is nonzero but doesn't match # TODO: Handle when code is empty after it's not (re-init) elif HexBytes(self.get_code(address, block_id=mid_block)) == contract_code: + # If the code exists, we need to look backwards. yield from self.get_contract_creation_receipts( address, start_block=start_block, @@ -1366,6 +1367,7 @@ def get_contract_creation_receipts( ) elif mid_block + 1 <= stop_block: + # The code does not exist yet, we need to look ahead. yield from self.get_contract_creation_receipts( address, start_block=mid_block + 1, diff --git a/src/ape_geth/__init__.py b/src/ape_geth/__init__.py index 93efbd0009..05b66fe3bd 100644 --- a/src/ape_geth/__init__.py +++ b/src/ape_geth/__init__.py @@ -3,6 +3,7 @@ from .provider import Geth as GethProvider from .provider import GethConfig, GethDev, GethNetworkConfig +from .query import OTSQueryEngine @plugins.register(plugins.Config) @@ -18,3 +19,8 @@ def providers(): yield "ethereum", network_name, GethProvider yield "ethereum", LOCAL_NETWORK_NAME, GethDev + + +@plugins.register(plugins.QueryPlugin) +def query_engines(): + yield OTSQueryEngine diff --git a/src/ape_geth/provider.py b/src/ape_geth/provider.py index 2d414c130f..872a85a879 100644 --- a/src/ape_geth/provider.py +++ b/src/ape_geth/provider.py @@ -3,6 +3,7 @@ import shutil import sys from abc import ABC +from functools import cached_property from itertools import tee from pathlib import Path from subprocess import DEVNULL, PIPE, Popen @@ -38,15 +39,21 @@ from ape._pydantic_compat import Extra from ape.api import ( PluginConfig, + ReceiptAPI, SubprocessProvider, TestProviderAPI, TransactionAPI, UpstreamProvider, Web3Provider, ) -from ape.exceptions import APINotImplementedError, ProviderError +from ape.exceptions import ( + ApeException, + APINotImplementedError, + ContractNotFoundError, + ProviderError, +) from ape.logging import LogLevel, logger -from ape.types import CallTreeNode, SnapshotID, SourceTraceback, TraceFrame +from ape.types import AddressType, CallTreeNode, SnapshotID, SourceTraceback, TraceFrame from ape.utils import ( DEFAULT_NUMBER_OF_TEST_ACCOUNTS, DEFAULT_TEST_CHAIN_ID, @@ -290,23 +297,43 @@ def data_dir(self) -> Path: return _get_default_data_dir() + @cached_property + def _ots_api_level(self) -> Optional[int]: + # NOTE: Returns None when OTS namespace is not enabled. + try: + result = self._make_request("ots_getApiLevel") + except (NotImplementedError, ApeException, ValueError): + return None + + if isinstance(result, int): + return result + + elif isinstance(result, str) and result.isnumeric(): + return int(result) + + return None + def _set_web3(self): self._client_version = None # Clear cached version when connecting to another URI. self._web3 = _create_web3(self.uri, ipc_path=self.ipc_path) def _complete_connect(self): - if "geth" in self.client_version.lower(): + client_version = self.client_version.lower() + if "geth" in client_version: self._log_connection("Geth") - elif "erigon" in self.client_version.lower(): + elif "reth" in client_version: + self._log_connection("Reth") + elif "erigon" in client_version: self._log_connection("Erigon") self.concurrency = 8 self.block_page_size = 40_000 - elif "nethermind" in self.client_version.lower(): + elif "nethermind" in client_version: self._log_connection("Nethermind") self.concurrency = 32 self.block_page_size = 50_000 else: - client_name = self.client_version.split("/")[0] + client_name = client_version.split("/")[0] + logger.warning(f"Connecting Geth plugin to non-Geth client '{client_name}'.") logger.warning(f"Connecting Geth plugin to non-Geth client '{client_name}'.") self.web3.eth.set_gas_price_strategy(rpc_gas_price_strategy) @@ -399,7 +426,26 @@ def _log_connection(self, client_name: str): ) logger.info(f"{msg} {suffix}.") - def _make_request(self, endpoint: str, parameters: List) -> Any: + def ots_get_contract_creator(self, address: AddressType) -> Optional[Dict]: + if self._ots_api_level is None: + return None + + result = self._make_request("ots_getContractCreator", [address]) + if result is None: + # NOTE: Skip the explorer part of the error message via `has_explorer=True`. + raise ContractNotFoundError(address, has_explorer=True, provider_name=self.name) + + return result + + def _get_contract_creation_receipt(self, address: AddressType) -> Optional[ReceiptAPI]: + if result := self.ots_get_contract_creator(address): + tx_hash = result["hash"] + return self.get_receipt(tx_hash) + + return None + + def _make_request(self, endpoint: str, parameters: Optional[List] = None) -> Any: + parameters = parameters or [] try: return super()._make_request(endpoint, parameters) except ProviderError as err: diff --git a/src/ape_geth/query.py b/src/ape_geth/query.py new file mode 100644 index 0000000000..98d6de374f --- /dev/null +++ b/src/ape_geth/query.py @@ -0,0 +1,35 @@ +from functools import singledispatchmethod +from typing import Iterator, Optional + +from ape.api import ReceiptAPI +from ape.api.query import ContractCreationQuery, QueryAPI, QueryType +from ape.exceptions import QueryEngineError +from ape_geth.provider import BaseGethProvider + + +class OTSQueryEngine(QueryAPI): + @singledispatchmethod + def estimate_query(self, query: QueryType) -> Optional[int]: # type: ignore[override] + return None + + @singledispatchmethod + def perform_query(self, query: QueryType) -> Iterator: # type: ignore[override] + raise QueryEngineError( + f"{self.__class__.__name__} cannot handle {query.__class__.__name__} queries." + ) + + @estimate_query.register + def estimate_contract_creation_query(self, query: ContractCreationQuery) -> Optional[int]: + if provider := self.network_manager.active_provider: + if not isinstance(provider, BaseGethProvider): + return None + elif uri := provider.http_uri: + return 225 if uri.startswith("http://") else 600 + + return None + + @perform_query.register + def get_contract_creation_receipt(self, query: ContractCreationQuery) -> Iterator[ReceiptAPI]: + if self.network_manager.active_provider and isinstance(self.provider, BaseGethProvider): + if receipt := self.provider._get_contract_creation_receipt(query.contract): + yield receipt diff --git a/tests/functional/geth/test_query.py b/tests/functional/geth/test_query.py new file mode 100644 index 0000000000..0416cb0543 --- /dev/null +++ b/tests/functional/geth/test_query.py @@ -0,0 +1,31 @@ +from typing import List, Tuple + +from ape.exceptions import ChainError +from tests.conftest import geth_process_test + + +@geth_process_test +def test_get_contract_creation_receipts(mock_geth, geth_contract, chain, networks, geth_provider): + geth_provider.__dict__["explorer"] = None + provider = networks.active_provider + networks.active_provider = mock_geth + mock_geth._web3.eth.get_block.side_effect = geth_provider.get_block + + try: + mock_geth._web3.eth.get_code.return_value = b"123" + + # NOTE: Due to mocks, this next part may not actually find the contract. + # but that is ok but we mostly want to make sure it tries OTS. There + # are other tests for the brute-force logic. + try: + next(chain.contracts.get_creation_receipt(geth_contract.address), None) + except ChainError: + pass + + # Ensure we tried using OTS. + actual = mock_geth._web3.provider.make_request.call_args + expected: Tuple[str, List] = ("ots_getApiLevel", []) + assert any(arguments == expected for arguments in actual) + + finally: + networks.active_provider = provider From 9e50016fb80e1ce11e63b61497cd1bce4de062b9 Mon Sep 17 00:00:00 2001 From: Saikat Karmakar <31238298+Aviksaikat@users.noreply.github.com> Date: Fri, 20 Oct 2023 00:40:45 +0100 Subject: [PATCH 21/22] feat: `public_key` method added to `KeyfileAccount` class [APE-1466] (#1702) --- src/ape_accounts/accounts.py | 19 +++++++++++++++++++ tests/functional/test_accounts.py | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/ape_accounts/accounts.py b/src/ape_accounts/accounts.py index 04efccc8f2..588e8038a5 100644 --- a/src/ape_accounts/accounts.py +++ b/src/ape_accounts/accounts.py @@ -5,6 +5,7 @@ import click from eth_account import Account as EthAccount +from eth_keys import keys # type: ignore from eth_utils import to_bytes from ethpm_types import HexBytes @@ -92,6 +93,24 @@ def __key(self) -> HexBytes: return key + @property + def public_key(self) -> HexBytes: + if "public_key" in self.keyfile: + return HexBytes(bytes.fromhex(self.keyfile["public_key"])) + key = self.__key + + # Derive the public key from the private key + pk = keys.PrivateKey(key) + # convert from eth_keys.datatypes.PublicKey to str to make it HexBytes + publicKey = str(pk.public_key) + + key_file_data = self.keyfile + key_file_data["public_key"] = publicKey[2:] + + self.keyfile_path.write_text(json.dumps(key_file_data)) + + return HexBytes(bytes.fromhex(publicKey[2:])) + def unlock(self, passphrase: Optional[str] = None): if not passphrase: # Check if environment variable is available diff --git a/tests/functional/test_accounts.py b/tests/functional/test_accounts.py index 7054e6f2c9..fd7690e3f3 100644 --- a/tests/functional/test_accounts.py +++ b/tests/functional/test_accounts.py @@ -3,6 +3,7 @@ import pytest from eip712.messages import EIP712Message from eth_account.messages import encode_defunct +from hexbytes import HexBytes import ape from ape.api import ImpersonatedAccount @@ -565,3 +566,20 @@ def test_prepare_transaction_and_call_using_max_gas(tx_type, ethereum, sender, e actual = sender.call(tx) assert not actual.failed + + +def test_public_key(runner, keyfile_account): + with runner.isolation(input="a\ny\n"): + assert isinstance(keyfile_account.public_key, HexBytes) + + +def test_load_public_key_from_keyfile(runner, keyfile_account): + with runner.isolation(input="a\ny\n"): + assert isinstance(keyfile_account.public_key, HexBytes) + + assert ( + keyfile_account.public_key.hex() + == "0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8" # noqa: 501 + ) + # no need for password when loading from the keyfile + assert keyfile_account.public_key From e3cb2c848c1eb1afb98fda54b1cf4513a42e5c0f Mon Sep 17 00:00:00 2001 From: antazoey Date: Thu, 19 Oct 2023 19:10:37 -0500 Subject: [PATCH 22/22] feat: handle when local dependency is already a manifest [APE-1397] (#1666) --- docs/userguides/dependencies.md | 10 +++++++ src/ape/api/projects.py | 26 +++++++++++++++++++ .../with-dependencies/ape-config.yaml | 3 +++ .../manifest_dependency.json | 1 + tests/integration/cli/test_compile.py | 1 + 5 files changed, 41 insertions(+) create mode 100644 tests/integration/cli/projects/with-dependencies/manifest_dependency.json diff --git a/docs/userguides/dependencies.md b/docs/userguides/dependencies.md index 17192d025c..b546c83ecc 100644 --- a/docs/userguides/dependencies.md +++ b/docs/userguides/dependencies.md @@ -62,6 +62,16 @@ This is helpful when: - When there is not a suitable `DependencyAPI` implementation available for downloading your dependency. - Testing the framework. +You can also reference local project manifests and use those as dependencies. +To do this, use a local value pointing to the manifest file, like this: + +```yaml +dependencies: + - name: MyDependency + local: ./my-dependency.json + version: 1.0.0 +``` + ### NPM You can use dependencies from NPM. diff --git a/src/ape/api/projects.py b/src/ape/api/projects.py index a213382252..8e91399b77 100644 --- a/src/ape/api/projects.py +++ b/src/ape/api/projects.py @@ -11,6 +11,7 @@ from packaging.version import InvalidVersion, Version from ape._pydantic_compat import ValidationError +from ape.exceptions import ProjectError from ape.logging import logger from ape.utils import ( BaseInterfaceModel, @@ -395,6 +396,31 @@ def _extract_local_manifest( if cached_manifest: return cached_manifest + if project_path.is_file() and project_path.suffix == ".json": + try: + manifest = PackageManifest.parse_file(project_path) + + except ValueError as err: + if project_path.parent.is_dir(): + project_path = project_path.parent + + else: + raise ProjectError(f"Invalid manifest file: '{project_path}'.") from err + + else: + # Was given a path to a manifest JSON. + self._write_manifest_to_cache(manifest) + return manifest + + elif (project_path.parent / project_path.name.replace("-", "_")).is_dir(): + project_path = project_path.parent / project_path.name.replace("-", "_") + + elif (project_path.parent / project_path.name.replace("_", "-")).is_dir(): + project_path = project_path.parent / project_path.name.replace("_", "-") + + elif project_path.parent.is_dir(): + project_path = project_path.parent + # NOTE: Dependencies are not compiled here. Instead, the sources are packaged # for later usage via imports. For legacy reasons, many dependency-esque projects # are not meant to compile on their own. diff --git a/tests/integration/cli/projects/with-dependencies/ape-config.yaml b/tests/integration/cli/projects/with-dependencies/ape-config.yaml index 07f8e7f4b0..7d44091fad 100644 --- a/tests/integration/cli/projects/with-dependencies/ape-config.yaml +++ b/tests/integration/cli/projects/with-dependencies/ape-config.yaml @@ -15,3 +15,6 @@ dependencies: - name: renamed-contracts-folder-specified-in-config local: ./renamed_contracts_folder_specified_in_config + + - name: manifest-dependency + local: ./manifest_dependency.json diff --git a/tests/integration/cli/projects/with-dependencies/manifest_dependency.json b/tests/integration/cli/projects/with-dependencies/manifest_dependency.json new file mode 100644 index 0000000000..73894ec3ad --- /dev/null +++ b/tests/integration/cli/projects/with-dependencies/manifest_dependency.json @@ -0,0 +1 @@ +{"contractTypes":{"manifest-dependency":{"abi":[{"stateMutability":"nonpayable","type":"fallback"}],"contractName":"manifest-dependency","sourceId":"manifest-dependency.json"}},"manifest":"ethpm/3","sources":{"manifest-dependency.json":{"checksum":{"algorithm":"md5","hash":"0xaaf11362c066814f73d7db766ade0a0c"},"content":"[\n {\"name\":\"foo\",\"type\":\"fallback\", \"stateMutability\":\"nonpayable\"}\n]\n","imports":[],"references":[],"urls":[]}}} diff --git a/tests/integration/cli/test_compile.py b/tests/integration/cli/test_compile.py index 3736ed2137..c2a2af1446 100644 --- a/tests/integration/cli/test_compile.py +++ b/tests/integration/cli/test_compile.py @@ -240,6 +240,7 @@ def test_compile_with_dependency(ape_cli, runner, project, contract_path): "containing-sub-dependencies", "renamed-complex-contracts-folder", "renamed-contracts-folder-specified-in-config", + "manifest-dependency", ): assert name in list(project.dependencies.keys()) dependency = project.dependencies[name]["local"]