FRAX Price: $0.83 (-1.55%)

Contract

0xF3daD3Ca2eF135b248128Ab1Ed984FB6F2185CBf

Overview

FRAX Balance | FXTL Balance

0 FRAX | 3,361 FXTL

FRAX Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Age:180D
Reset Filter

Transaction Hash
Block
From
To

There are no matching entries

> 10 Token Transfers found.

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
L2 Voting Escrow Oracle

Compiler Version
vyper:0.4.0

Optimization Enabled:
Yes

Other Settings:
default evmVersion, MIT license

Contract Source Code (Vyper Json-Input format)

File 1 of 3 : VecrvOracle.vy
# pragma version 0.4.0
"""
@title L2 Voting Escrow Oracle
@notice Handles veCRV balance (mainly for boosting)
@license MIT
@author curve.fi
@custom:version 1.0.0
@custom:security [email protected]
"""

from snekmate.auth import access_control

initializes: access_control
exports: (
    access_control.supportsInterface,
    access_control.hasRole,
    access_control.DEFAULT_ADMIN_ROLE,
    access_control.grantRole,
    access_control.revokeRole,
)


event UpdateTotal:
    _epoch: uint256


event UpdateBalance:
    _user: address
    _user_point_epoch: uint256


event Delegate:
    _from: address
    _to: address


struct LockedBalance:
    amount: int128
    end: uint256


struct Point:
    bias: int128
    slope: int128
    ts: uint256
    blk: uint256


WEEK: constant(uint256) = 86400 * 7
SLOPE_CHANGES_CNT: constant(uint256) = 24  # 6 months

BALANCE_VERIFIER: public(constant(bytes32)) = keccak256("BALANCE_VERIFIER")
TOTAL_VERIFIER: public(constant(bytes32)) = keccak256("TOTAL_VERIFIER")
DELEGATION_VERIFIER: public(constant(bytes32)) = keccak256("DELEGATION_VERIFIER")

epoch: public(uint256)
point_history: public(HashMap[uint256, Point])

user_point_epoch: public(HashMap[address, uint256])
user_point_history: public(HashMap[address, HashMap[uint256, Point]])

locked: public(HashMap[address, LockedBalance])
slope_changes: public(HashMap[uint256, int128])

# [address from][address to]
delegation_from: HashMap[address, address]
delegation_to: HashMap[address, address]
last_delegation: HashMap[address, uint256]

last_block_number: public(uint256)

name: public(constant(String[64])) = "Vote-escrowed CRV"
symbol: public(constant(String[32])) = "veCRV"
decimals: public(constant(uint256)) = 18

version: public(constant(String[8])) = "1.0.0"


@deploy
def __init__():
    access_control.__init__()
    access_control._set_role_admin(BALANCE_VERIFIER, access_control.DEFAULT_ADMIN_ROLE)
    access_control._set_role_admin(TOTAL_VERIFIER, access_control.DEFAULT_ADMIN_ROLE)
    access_control._set_role_admin(DELEGATION_VERIFIER, access_control.DEFAULT_ADMIN_ROLE)


### Getter methods


@view
def _balanceOf(user: address, timestamp: uint256) -> uint256:
    epoch: uint256 = self.user_point_epoch[user]
    if epoch == 0:
        return 0

    last_point: Point = self.user_point_history[user][epoch]
    last_point.bias -= last_point.slope * convert(timestamp - last_point.ts, int128)
    if last_point.bias < 0:
        return 0

    return convert(last_point.bias, uint256)


@external
@view
def delegated(_from: address) -> address:
    """
    @notice Get contract balance being delegated to
    @param _from Address of delegator
    @return Destination address of delegation
    """
    addr: address = self.delegation_from[_from]
    if addr == empty(address):
        addr = _from
    return addr


@external
@view
def delegator(_to: address) -> address:
    """
    @notice Get contract delegating balance to `_to`
    @param _to Address of delegated to
    @return Address of delegator
    """
    addr: address = self.delegation_to[_to]
    if addr == empty(address):
        addr = _to
    return addr


@view
def _get_user_after_delegation(_user: address) -> address:
    user: address = self.delegation_to[_user]
    if user == empty(address):
        if self.delegation_from[_user] not in [empty(address), _user]:  # only delegation out
            return empty(address)
        user = _user
    return user


@view
@external
def balanceOf(_user: address, _timestamp: uint256 = block.timestamp) -> uint256:
    """
    @notice Get veCRV balance of user
    @param _user Address of the user
    @param _timestamp Timestamp for the balance check
    @return Balance of user
    """
    user: address = self._get_user_after_delegation(_user)
    if user == empty(address):
        return 0
    return self._balanceOf(user, _timestamp)


@view
@external
def totalSupply(_timestamp: uint256 = block.timestamp) -> uint256:
    """
    @notice Calculate total voting power
    @param _timestamp Timestamp at which to check totalSupply
    @return Total supply
    """
    last_point: Point = self.point_history[self.epoch]
    t_i: uint256 = (last_point.ts // WEEK) * WEEK
    for i: uint256 in range(256):
        t_i += WEEK

        d_slope: int128 = 0
        if t_i > _timestamp:
            t_i = _timestamp
        else:
            d_slope = self.slope_changes[t_i]
        last_point.bias -= last_point.slope * convert(t_i - last_point.ts, int128)
        if t_i == _timestamp or d_slope == 0:
            break

        last_point.slope += d_slope
        last_point.ts = t_i

    if last_point.bias < 0:
        return 0

    return convert(last_point.bias, uint256)


@external
@view
def get_last_user_slope(_addr: address) -> int128:
    """
    @notice Get the most recently recorded rate of voting power decrease for `addr`
    @param _addr Address of the user wallet
    @return Value of the slope
    """
    user: address = self._get_user_after_delegation(_addr)
    if user == empty(address):
        return 0
    uepoch: uint256 = self.user_point_epoch[user]
    return self.user_point_history[user][uepoch].slope


@external
@view
def locked__end(_addr: address) -> uint256:
    """
    @notice Get timestamp when `_addr`'s lock finishes
    @param _addr User wallet
    @return Epoch time of the lock end
    """
    user: address = self._get_user_after_delegation(_addr)
    if user == empty(address):
        return 0
    return self.locked[user].end


### Verifiers' update methods


@external
def update_balance(
    _user: address,
    _user_point_epoch: uint256,
    _user_point_history: Point,
    _locked: LockedBalance,
    _block_number: uint256,
):
    """
    @notice Update user balance
    @param _user Address of the user to verify for
    @param _user_point_epoch Last `_user`s checkpointed epoch
    @param _user_point_history Last `_user`s point history
    @param _locked `_user`s locked balance
    """
    access_control._check_role(BALANCE_VERIFIER, msg.sender)
    assert self.last_block_number <= _block_number, "Outdated update"
    #    assert (
    #        self.user_point_epoch[_user] <= _user_point_epoch
    #        and self.user_point_history[_user][_user_point_epoch].ts <= _user_point_history.ts
    #    ), "Outdated update"

    self.user_point_epoch[_user] = _user_point_epoch
    self.user_point_history[_user][_user_point_epoch] = _user_point_history
    self.locked[_user] = _locked
    log UpdateBalance(_user, _user_point_epoch)

    self.last_block_number = _block_number


@external
def update_total(
    _epoch: uint256,
    _point_history: Point,
    _slope_changes: DynArray[int128, SLOPE_CHANGES_CNT],
    _block_number: uint256,
):
    """
    @notice Update VotingEscrow global values
    @param _epoch Current epoch in VotingEscrow contract
    @param _point_history Last epoch point history
    @param _slope_changes Slope changes for upcoming epochs
    """
    access_control._check_role(TOTAL_VERIFIER, msg.sender)
    assert self.last_block_number <= _block_number, "Outdated update"
    #    assert (
    #        self.epoch <= _epoch and self.point_history[_epoch].ts <= _point_history.ts
    #    ), "Outdated update"

    self.epoch = _epoch
    self.point_history[_epoch] = _point_history

    start_time: uint256 = WEEK + (_point_history.ts // WEEK) * WEEK
    for i: uint256 in range(len(_slope_changes), bound=SLOPE_CHANGES_CNT):
        self.slope_changes[start_time + WEEK * i] = _slope_changes[i]

    log UpdateTotal(_epoch)

    self.last_block_number = _block_number


@external
def update_delegation(_from: address, _to: address, _block_number: uint256):
    """
    @notice Update veCRV balance delegation
    @dev Block number is used to linearize updates
    @param _from Address being delegated
    @param _to Address delegated to
    @param _block_number Block number at which delegation holds true
    """
    access_control._check_role(DELEGATION_VERIFIER, msg.sender)
    assert self.last_block_number <= _block_number, "Outdated update"

    delegated: address = self.delegation_from[_from]
    if delegated != empty(address):  # revoke delegation
        self.delegation_to[delegated] = empty(address)
    self.delegation_from[_from] = _to
    if _to != empty(address):
        self.delegation_to[_to] = _from
    log Delegate(_from, _to)

    self.last_block_number = _block_number

File 2 of 3 : Vyper_contract.vy
# pragma version ~=0.4.0
"""
@title `access_control` Interface Definition
@custom:contract-name IAccessControl
@license GNU Affero General Public License v3.0 only
@author pcaversaccio
@notice The interface definition of `access_control`
        to support the ERC-165 detection. In order
        to ensure consistency and interoperability,
        we follow OpenZeppelin's definition here:
        https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/IAccessControl.sol.

        On how to use interfaces in Vyper, please visit:
        https://vyper.readthedocs.io/en/latest/interfaces.html#interfaces.
"""


# @dev Emitted when `newAdminRole` is set as
# `role`'s admin role, replacing `previousAdminRole`.
# Note that `DEFAULT_ADMIN_ROLE` is the starting
# admin for all roles, despite `RoleAdminChanged`
# not being emitted signaling this.
event RoleAdminChanged:
    role: indexed(bytes32)
    previousAdminRole: indexed(bytes32)
    newAdminRole: indexed(bytes32)


# @dev Emitted when `account` is granted `role`.
# Note that `sender` is the account (an admin
# role bearer) that originated the contract call.
event RoleGranted:
    role: indexed(bytes32)
    account: indexed(address)
    sender: indexed(address)


# @dev Emitted when `account` is revoked `role`.
# Note that `sender` is the account that originated
# the contract call:
#   - if using `revokeRole`, it is the admin role
#     bearer,
#   - if using `renounceRole`, it is the role bearer
#     (i.e. `account`).
event RoleRevoked:
    role: indexed(bytes32)
    account: indexed(address)
    sender: indexed(address)


@external
@view
def hasRole(role: bytes32, account: address) -> bool:
    """
    @dev Returns `True` if `account` has been
         granted `role`.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    @return bool The verification whether the role
            `role` has been granted to `account` or not.
    """
    return ...


@external
@view
def getRoleAdmin(role: bytes32) -> bytes32:
    """
    @dev Returns the admin role that controls
         `role`.
    @notice See `grantRole` and `revokeRole`.
            To change a role's admin, use
            {access_control-set_role_admin}.
    @param role The 32-byte role definition.
    @return bytes32 The 32-byte admin role
            that controls `role`.
    """
    return ...


@external
def grantRole(role: bytes32, account: address):
    """
    @dev Grants `role` to `account`.
    @notice If `account` had not been already
            granted `role`, emits a `RoleGranted`
            event. Note that the caller must have
            `role`'s admin role.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    ...


@external
def revokeRole(role: bytes32, account: address):
    """
    @dev Revokes `role` from `account`.
    @notice If `account` had been granted `role`,
            emits a `RoleRevoked` event. Note that
            the caller must have `role`'s admin role.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    ...


@external
def renounceRole(role: bytes32, account: address):
    """
    @dev Revokes `role` from the calling account.
    @notice Roles are often managed via `grantRole`
            and `revokeRole`. This function's purpose
            is to provide a mechanism for accounts to
            lose their privileges if they are compromised
            (such as when a trusted device is misplaced).
            If the calling account had been granted `role`,
            emits a `RoleRevoked` event. Note that the
            caller must be `account`.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    ...

File 3 of 3 : access_control.vy
# pragma version ~=0.4.0
"""
@title Multi-Role-Based Access Control Functions
@custom:contract-name access_control
@license GNU Affero General Public License v3.0 only
@author pcaversaccio
@notice These functions can be used to implement role-based access
        control mechanisms. Roles are referred to by their `bytes32`
        identifier. These should be exposed in the external API and
        be unique. The best way to achieve this is by using `public`
        `constant` hash digests:
        ```vy
        MY_ROLE: public(constant(bytes32)) = keccak256("MY_ROLE");
        ```

        Roles can be used to represent a set of permissions. To restrict
        access to a function call, use the `external` function `hasRole`
        or the `internal` function `_check_role` (to avoid any NatSpec
        parsing error, no `@` character is added to the visibility decorator
        `@external` in the following examples; please add them accordingly):
        ```vy
        from ethereum.ercs import IERC165
        implements: IERC165

        from snekmate.auth.interfaces import IAccessControl
        implements: IAccessControl

        from snekmate.auth import access_control
        initializes: access_control

        exports: access_control.__interface__

        ...

        external
        def foo():
            assert access_control.hasRole[MY_ROLE][msg.sender], "access_control: account is missing role"
            ...

        OR

        external
        def foo():
            access_control._check_role(MY_ROLE, msg.sender)
            ...
        ```

        Roles can be granted and revoked dynamically via the `grantRole`
        and `revokeRole` functions. Each role has an associated admin role,
        and only accounts that have a role's admin role can call `grantRole`
        and `revokeRole`. Also, by default, the admin role for all roles is
        `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role
        will be able to grant or revoke other roles. More complex role
        relationships can be created by using `set_role_admin`.

        WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin! It has
        permission to grant and revoke this role. Extra precautions should be
        taken to secure accounts that have been granted it.

        The implementation is inspired by OpenZeppelin's implementation here:
        https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol.
"""


# @dev We import and implement the `IERC165` interface,
# which is a built-in interface of the Vyper compiler.
from ethereum.ercs import IERC165
implements: IERC165


# @dev We import and implement the `IAccessControl`
# interface, which is written using standard Vyper
# syntax.
import interfaces.IAccessControl as IAccessControl
implements: IAccessControl


# @dev The default 32-byte admin role.
# @notice If you declare a variable as `public`,
# Vyper automatically generates an `external`
# getter function for the variable.
DEFAULT_ADMIN_ROLE: public(constant(bytes32)) = empty(bytes32)


# @dev Stores the ERC-165 interface identifier for each
# imported interface. The ERC-165 interface identifier
# is defined as the XOR of all function selectors in the
# interface.
_SUPPORTED_INTERFACES: constant(bytes4[2]) = [
    0x01FFC9A7, # The ERC-165 identifier for ERC-165.
    0x7965DB0B, # The ERC-165 identifier for `IAccessControl`.
]


# @dev Returns `True` if `account` has been granted `role`.
hasRole: public(HashMap[bytes32, HashMap[address, bool]])


# @dev Returns the admin role that controls `role`.
getRoleAdmin: public(HashMap[bytes32, bytes32])


@deploy
@payable
def __init__():
    """
    @dev To omit the opcodes for checking the `msg.value`
         in the creation-time EVM bytecode, the constructor
         is declared as `payable`.
    @notice The `DEFAULT_ADMIN_ROLE` role will be assigned
            to the `msg.sender`.
    """
    self._grant_role(DEFAULT_ADMIN_ROLE, msg.sender)


@external
@view
def supportsInterface(interface_id: bytes4) -> bool:
    """
    @dev Returns `True` if this contract implements the
         interface defined by `interface_id`.
    @param interface_id The 4-byte interface identifier.
    @return bool The verification whether the contract
            implements the interface or not.
    """
    return interface_id in _SUPPORTED_INTERFACES


@external
def grantRole(role: bytes32, account: address):
    """
    @dev Grants `role` to `account`.
    @notice If `account` had not been already
            granted `role`, emits a `RoleGranted`
            event. Note that the caller must have
            `role`'s admin role.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    self._check_role(self.getRoleAdmin[role], msg.sender)
    self._grant_role(role, account)


@external
def revokeRole(role: bytes32, account: address):
    """
    @dev Revokes `role` from `account`.
    @notice If `account` had been granted `role`,
            emits a `RoleRevoked` event. Note that
            the caller must have `role`'s admin role.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    self._check_role(self.getRoleAdmin[role], msg.sender)
    self._revoke_role(role, account)


@external
def renounceRole(role: bytes32, account: address):
    """
    @dev Revokes `role` from the calling account.
    @notice Roles are often managed via `grantRole`
            and `revokeRole`. This function's purpose
            is to provide a mechanism for accounts to
            lose their privileges if they are compromised
            (such as when a trusted device is misplaced).
            If the calling account had been granted `role`,
            emits a `RoleRevoked` event. Note that the
            caller must be `account`.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    assert account == msg.sender, "access_control: can only renounce roles for itself"
    self._revoke_role(role, account)


@external
def set_role_admin(role: bytes32, admin_role: bytes32):
    """
    @dev Sets `admin_role` as `role`'s admin role.
    @notice Note that the caller must have `role`'s
            admin role.
    @param role The 32-byte role definition.
    @param admin_role The new 32-byte admin role definition.
    """
    self._check_role(self.getRoleAdmin[role], msg.sender)
    self._set_role_admin(role, admin_role)


@internal
@view
def _check_role(role: bytes32, account: address):
    """
    @dev Reverts with a standard message if `account`
         is missing `role`.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    assert self.hasRole[role][account], "access_control: account is missing role"


@internal
def _set_role_admin(role: bytes32, admin_role: bytes32):
    """
    @dev Sets `admin_role` as `role`'s admin role.
    @notice This is an `internal` function without
            access restriction.
    @param role The 32-byte role definition.
    @param admin_role The new 32-byte admin role definition.
    """
    previous_admin_role: bytes32 = self.getRoleAdmin[role]
    self.getRoleAdmin[role] = admin_role
    log IAccessControl.RoleAdminChanged(role, previous_admin_role, admin_role)


@internal
def _grant_role(role: bytes32, account: address):
    """
    @dev Grants `role` to `account`.
    @notice This is an `internal` function without
            access restriction.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    if (not(self.hasRole[role][account])):
        self.hasRole[role][account] = True
        log IAccessControl.RoleGranted(role, account, msg.sender)


@internal
def _revoke_role(role: bytes32, account: address):
    """
    @dev Revokes `role` from `account`.
    @notice This is an `internal` function without
            access restriction.
    @param role The 32-byte role definition.
    @param account The 20-byte address of the account.
    """
    if (self.hasRole[role][account]):
        self.hasRole[role][account] = False
        log IAccessControl.RoleRevoked(role, account, msg.sender)

Settings
{
  "outputSelection": {
    "contracts/vecrv/VecrvOracle.vy": [
      "evm.bytecode",
      "evm.deployedBytecode",
      "abi"
    ]
  },
  "search_paths": [
    ".venv/lib/python3.12/site-packages",
    "."
  ]
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":false,"name":"_epoch","type":"uint256"}],"name":"UpdateTotal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"},{"indexed":false,"name":"_user_point_epoch","type":"uint256"}],"name":"UpdateBalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"Delegate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"role","type":"bytes32"},{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"role","type":"bytes32"},{"indexed":true,"name":"previousAdminRole","type":"bytes32"},{"indexed":true,"name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"role","type":"bytes32"},{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"name":"interface_id","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"bytes32"},{"name":"arg1","type":"address"}],"name":"hasRole","outputs":[{"name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"role","type":"bytes32"},{"name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"role","type":"bytes32"},{"name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_from","type":"address"}],"name":"delegated","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_to","type":"address"}],"name":"delegator","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_user","type":"address"},{"name":"_timestamp","type":"uint256"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_timestamp","type":"uint256"}],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_addr","type":"address"}],"name":"get_last_user_slope","outputs":[{"name":"","type":"int128"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_addr","type":"address"}],"name":"locked__end","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_user","type":"address"},{"name":"_user_point_epoch","type":"uint256"},{"components":[{"name":"bias","type":"int128"},{"name":"slope","type":"int128"},{"name":"ts","type":"uint256"},{"name":"blk","type":"uint256"}],"name":"_user_point_history","type":"tuple"},{"components":[{"name":"amount","type":"int128"},{"name":"end","type":"uint256"}],"name":"_locked","type":"tuple"},{"name":"_block_number","type":"uint256"}],"name":"update_balance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_epoch","type":"uint256"},{"components":[{"name":"bias","type":"int128"},{"name":"slope","type":"int128"},{"name":"ts","type":"uint256"},{"name":"blk","type":"uint256"}],"name":"_point_history","type":"tuple"},{"name":"_slope_changes","type":"int128[]"},{"name":"_block_number","type":"uint256"}],"name":"update_total","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_block_number","type":"uint256"}],"name":"update_delegation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BALANCE_VERIFIER","outputs":[{"name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_VERIFIER","outputs":[{"name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DELEGATION_VERIFIER","outputs":[{"name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"uint256"}],"name":"point_history","outputs":[{"components":[{"name":"bias","type":"int128"},{"name":"slope","type":"int128"},{"name":"ts","type":"uint256"},{"name":"blk","type":"uint256"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"address"}],"name":"user_point_epoch","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"name":"user_point_history","outputs":[{"components":[{"name":"bias","type":"int128"},{"name":"slope","type":"int128"},{"name":"ts","type":"uint256"},{"name":"blk","type":"uint256"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"address"}],"name":"locked","outputs":[{"components":[{"name":"amount","type":"int128"},{"name":"end","type":"uint256"}],"name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"uint256"}],"name":"slope_changes","outputs":[{"name":"","type":"int128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last_block_number","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"outputs":[],"stateMutability":"nonpayable","type":"constructor"}]

346101835761000c61011d565b7f91ecbab409000ca436e362529d6a0ee19bfacafc306d0b7328e4b31a37513d1c6040525f60605261003c61012f565b7f91bab4a1f219aaf3591b80c219b7a6eda6e5ddcadf2001c395591dcc40ecfbb76040525f60605261006c61012f565b7fe887cc0717dab2ad628f68695129fefff34ee397bdd39e44a259e2cae80f49b76040525f60605261009c61012f565b61122461018761000039611224610000f35b5f6040516020525f5260405f20806060516020525f5260405f2090505461011b5760015f6040516020525f5260405f20806060516020525f5260405f20905055336060516040517f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f6080a45b565b5f6040523360605261012d6100ae565b565b60016040516020525f5260405f205460805260605160016040516020525f5260405f20556060516080516040517fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff5f60a0a4565b5f80fd5f3560e01c60026019820660011b6111f201601e395f51565b6301ffc9a7811861009c576024361034176111ee576004358060201b6111ee576040526040517f01ffc9a700000000000000000000000000000000000000000000000000000000811861006c576001610091565b7f7965db0b000000000000000000000000000000000000000000000000000000008118155b905060805260206080f35b63d1febfb981186100e3576024361034176111ee5760036004356020525f5260405f20805460405260018101546060526002810154608052600381015460a0525060806040f35b6354fd4d508118610f0b57346111ee5760208060805260056040527f312e302e3000000000000000000000000000000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6391d148548118610f0b576044361034176111ee576024358060a01c6111ee576040525f6004356020525f5260405f20806040516020525f5260405f2090505460605260206060f35b63a217fddf81186101c057346111ee575f60405260206040f35b63711974848118610f0b576024361034176111ee5760076004356020525f5260405f205460405260206040f35b632f2ff15d8118610246576044361034176111ee576024358060a01c6111ee576101805260016004356020525f5260405f20546040523360605261022f610f0f565b60043560405261018051606052610244610fce565b005b63900cf0cf8118610f0b57346111ee5760025460405260206040f35b63d547741f81186102bb576044361034176111ee576024358060a01c6111ee576101805260016004356020525f5260405f2054604052336060526102a4610f0f565b600435604052610180516060526102b961103d565b005b6328d09d478118610f0b576044361034176111ee576004358060a01c6111ee5760405260056040516020525f5260405f20806024356020525f5260405f20905080546060526001810154608052600281015460a052600381015460c0525060806060f35b63f3598ad98118610368576024361034176111ee576004358060a01c6111ee5760405260086040516020525f5260405f2054606052606051610362576040516060525b60206060f35b63fb3f10e88118610f0b57346111ee577fe887cc0717dab2ad628f68695129fefff34ee397bdd39e44a259e2cae80f49b760405260206040f35b63539e508281186103eb576024361034176111ee576004358060a01c6111ee5760405260096040516020525f5260405f20546060526060516103e5576040516060525b60206060f35b63adc635898118610f0b576024361034176111ee576004358060a01c6111ee5760a05260a05160405261041e60e06110ac565b60e05160c05260c051610438575f60e052602060e0610455565b600660c0516020525f5260405f206001810190505460e052602060e05bf35b6370a082318118610476576024361034176111ee574261014052610739565b63cf75425681186106d85760e4361034176111ee5760243580600f0b81186111ee576101805260443580600f0b81186111ee576101a052604060646101c03760a43560040160188135116111ee5780355f81601881116111ee57801561050057905b8060051b60208501013580600f0b81186111ee578160051b61022001526001018181186104d8575b5050806102005250507f91bab4a1f219aaf3591b80c219b7a6eda6e5ddcadf2001c395591dcc40ecfbb760405233606052610539610f0f565b60c435600b5411156105c25760208061058052600f610520527f4f7574646174656420757064617465000000000000000000000000000000000061054052610520816105800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a0610560528060040161057cfd5b60043560025560036004356020525f5260405f206101805181556101a05160018201556101c05160028201556101e0516003820155506101c05162093a808104905062093a8081028162093a808204186111ee5790508062093a800162093a8081106111ee579050610520525f61020051601881116111ee5780156106a057905b806105405261054051610200518110156111ee5760051b61022001516007610520516105405162093a8081028162093a808204186111ee5790508082018281106111ee57905090506020525f5260405f2055600101818118610643575b50507f7e7b5bbdc9b1d93a7c5ce161502065297413f8ff6be83e914e0dd61c915ee1f7600435610540526020610540a160c435600b55005b63cbf9fe5f8118610f0b576024361034176111ee576004358060a01c6111ee5760405260066040516020525f5260405f20805460605260018101546080525060406060f35b62fdd58e8118610f0b576044361034176111ee57602435610140525b6004358060a01c6111ee57610120526101205160405261075a6101806110ac565b610180516101605261016051610779575f610180526020610180610798565b60206101605160405261014051606052610794610180611107565b6101805bf35b6318160ddd81186107b357346111ee57426040526107cf565b63bd85b0398118610f0b576024361034176111ee576004356040525b60036002546020525f5260405f2080546060526001810154608052600281015460a052600381015460c0525060a05162093a808104905062093a8081028162093a808204186111ee57905060e0525f610100905b806101005260e05162093a8081018181106111ee57905060e0525f6101205260405160e0511161086557600760e0516020525f5260405f20546101205261086c565b60405160e0525b60605160805160e05160a0518082038281116111ee579050905080607f1c6111ee5780820280600f0b81186111ee579050905080820380600f0b81186111ee579050905060605260405160e051186108c55760016108cb565b61012051155b6108fb576080516101205180820180600f0b81186111ee579050905060805260e05160a052600101818118610823575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60605113610935575f610100526020610100610949565b6060515f81126111ee576101005260206101005bf35b637c74a17481186109da576024361034176111ee576004358060a01c6111ee5760a05260a05160405261097e60e06110ac565b60e05160c05260c051610998575f60e052602060e06109d8565b600460c0516020525f5260405f205460e052600560c0516020525f5260405f208060e0516020525f5260405f209050600181019050546101005260206101005bf35b631eeaebb28118610f0b57346111ee57600b5460405260206040f35b639903dcd98118610f0b57610124361034176111ee576004358060a01c6111ee576101805260443580600f0b81186111ee576101a05260643580600f0b81186111ee576101c052604060846101e03760c43580600f0b81186111ee576102205260e435610240527f91ecbab409000ca436e362529d6a0ee19bfacafc306d0b7328e4b31a37513d1c60405233606052610a8d610f0f565b61010435600b541115610b17576020806102c052600f610260527f4f7574646174656420757064617465000000000000000000000000000000000061028052610260816102c00160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06102a052806004016102bcfd5b6024356004610180516020525f5260405f20556005610180516020525f5260405f20806024356020525f5260405f2090506101a05181556101c05160018201556101e0516002820155610200516003820155506006610180516020525f5260405f20610220518155610240516001820155507fc66f925f5ab3e2b78af5e6665528857394aaf2c48b188ccab0ead737fa33ed7a6101805161026052602435610280526040610260a161010435600b55005b631292e32b8118610d4d576064361034176111ee576004358060a01c6111ee57610180526024358060a01c6111ee576101a0527fe887cc0717dab2ad628f68695129fefff34ee397bdd39e44a259e2cae80f49b760405233606052610c2b610f0f565b604435600b541115610cb45760208061022052600f6101c0527f4f757464617465642075706461746500000000000000000000000000000000006101e0526101c0816102200160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a0610200528060040161021cfd5b6008610180516020525f5260405f20546101c0526101c05115610ce3575f60096101c0516020525f5260405f20555b6101a0516008610180516020525f5260405f20556101a05115610d15576101805160096101a0516020525f5260405f20555b7fab7d75eccd27c9989942a3a6e4137e415df0ad90ec428751b16361f16fe8780f60406101806101e05e60406101e0a1604435600b55005b63010ae7578118610f0b576024361034176111ee576004358060a01c6111ee5760405260046040516020525f5260405f205460605260206060f35b63a50cc4bf8118610dc257346111ee577f91ecbab409000ca436e362529d6a0ee19bfacafc306d0b7328e4b31a37513d1c60405260206040f35b6306fdde038118610f0b57346111ee5760208060805260116040527f566f74652d657363726f7765642043525600000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b63597b0a1a8118610f0b57346111ee577f91bab4a1f219aaf3591b80c219b7a6eda6e5ddcadf2001c395591dcc40ecfbb760405260206040f35b6395d89b418118610f0b57346111ee5760208060805260056040527f766543525600000000000000000000000000000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b63313ce5678118610f0b57346111ee57601260405260206040f35b5f5ffd5b5f6040516020525f5260405f20806060516020525f5260405f20905054610fcc576020806101005260276080527f6163636573735f636f6e74726f6c3a206163636f756e74206973206d6973736960a0527f6e6720726f6c650000000000000000000000000000000000000000000000000060c0526080816101000160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060e0528060040160fcfd5b565b5f6040516020525f5260405f20806060516020525f5260405f2090505461103b5760015f6040516020525f5260405f20806060516020525f5260405f20905055336060516040517f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f6080a45b565b5f6040516020525f5260405f20806060516020525f5260405f20905054156110aa575f5f6040516020525f5260405f20806060516020525f5260405f20905055336060516040517ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f6080a45b565b60096040516020525f5260405f20546060526060516110fe5760086040516020525f5260405f205480156110e5576040518114156110e7565b5f5b9050156110f7575f815250611105565b6040516060525b6060518152505b565b60046040516020525f5260405f2054608052608051611129575f8152506111ec565b60056040516020525f5260405f20806080516020525f5260405f209050805460a052600181015460c052600281015460e0526003810154610100525060a05160c05160605160e0518082038281116111ee579050905080607f1c6111ee5780820280600f0b81186111ee579050905080820380600f0b81186111ee579050905060a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a051136111de575f8152506111ec565b60a0515f81126111ee578152505b565b5f80fd079a03a20f0b071d0f0b0e7604570f0b01ed0f0b015d01a6031f0e3c0d880f0b0262094b09f600180f0b0ef00f0b0f0b0bc88419122481183200a1657679706572830004000015

Deployed Bytecode

0x5f3560e01c60026019820660011b6111f201601e395f51565b6301ffc9a7811861009c576024361034176111ee576004358060201b6111ee576040526040517f01ffc9a700000000000000000000000000000000000000000000000000000000811861006c576001610091565b7f7965db0b000000000000000000000000000000000000000000000000000000008118155b905060805260206080f35b63d1febfb981186100e3576024361034176111ee5760036004356020525f5260405f20805460405260018101546060526002810154608052600381015460a0525060806040f35b6354fd4d508118610f0b57346111ee5760208060805260056040527f312e302e3000000000000000000000000000000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6391d148548118610f0b576044361034176111ee576024358060a01c6111ee576040525f6004356020525f5260405f20806040516020525f5260405f2090505460605260206060f35b63a217fddf81186101c057346111ee575f60405260206040f35b63711974848118610f0b576024361034176111ee5760076004356020525f5260405f205460405260206040f35b632f2ff15d8118610246576044361034176111ee576024358060a01c6111ee576101805260016004356020525f5260405f20546040523360605261022f610f0f565b60043560405261018051606052610244610fce565b005b63900cf0cf8118610f0b57346111ee5760025460405260206040f35b63d547741f81186102bb576044361034176111ee576024358060a01c6111ee576101805260016004356020525f5260405f2054604052336060526102a4610f0f565b600435604052610180516060526102b961103d565b005b6328d09d478118610f0b576044361034176111ee576004358060a01c6111ee5760405260056040516020525f5260405f20806024356020525f5260405f20905080546060526001810154608052600281015460a052600381015460c0525060806060f35b63f3598ad98118610368576024361034176111ee576004358060a01c6111ee5760405260086040516020525f5260405f2054606052606051610362576040516060525b60206060f35b63fb3f10e88118610f0b57346111ee577fe887cc0717dab2ad628f68695129fefff34ee397bdd39e44a259e2cae80f49b760405260206040f35b63539e508281186103eb576024361034176111ee576004358060a01c6111ee5760405260096040516020525f5260405f20546060526060516103e5576040516060525b60206060f35b63adc635898118610f0b576024361034176111ee576004358060a01c6111ee5760a05260a05160405261041e60e06110ac565b60e05160c05260c051610438575f60e052602060e0610455565b600660c0516020525f5260405f206001810190505460e052602060e05bf35b6370a082318118610476576024361034176111ee574261014052610739565b63cf75425681186106d85760e4361034176111ee5760243580600f0b81186111ee576101805260443580600f0b81186111ee576101a052604060646101c03760a43560040160188135116111ee5780355f81601881116111ee57801561050057905b8060051b60208501013580600f0b81186111ee578160051b61022001526001018181186104d8575b5050806102005250507f91bab4a1f219aaf3591b80c219b7a6eda6e5ddcadf2001c395591dcc40ecfbb760405233606052610539610f0f565b60c435600b5411156105c25760208061058052600f610520527f4f7574646174656420757064617465000000000000000000000000000000000061054052610520816105800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a0610560528060040161057cfd5b60043560025560036004356020525f5260405f206101805181556101a05160018201556101c05160028201556101e0516003820155506101c05162093a808104905062093a8081028162093a808204186111ee5790508062093a800162093a8081106111ee579050610520525f61020051601881116111ee5780156106a057905b806105405261054051610200518110156111ee5760051b61022001516007610520516105405162093a8081028162093a808204186111ee5790508082018281106111ee57905090506020525f5260405f2055600101818118610643575b50507f7e7b5bbdc9b1d93a7c5ce161502065297413f8ff6be83e914e0dd61c915ee1f7600435610540526020610540a160c435600b55005b63cbf9fe5f8118610f0b576024361034176111ee576004358060a01c6111ee5760405260066040516020525f5260405f20805460605260018101546080525060406060f35b62fdd58e8118610f0b576044361034176111ee57602435610140525b6004358060a01c6111ee57610120526101205160405261075a6101806110ac565b610180516101605261016051610779575f610180526020610180610798565b60206101605160405261014051606052610794610180611107565b6101805bf35b6318160ddd81186107b357346111ee57426040526107cf565b63bd85b0398118610f0b576024361034176111ee576004356040525b60036002546020525f5260405f2080546060526001810154608052600281015460a052600381015460c0525060a05162093a808104905062093a8081028162093a808204186111ee57905060e0525f610100905b806101005260e05162093a8081018181106111ee57905060e0525f6101205260405160e0511161086557600760e0516020525f5260405f20546101205261086c565b60405160e0525b60605160805160e05160a0518082038281116111ee579050905080607f1c6111ee5780820280600f0b81186111ee579050905080820380600f0b81186111ee579050905060605260405160e051186108c55760016108cb565b61012051155b6108fb576080516101205180820180600f0b81186111ee579050905060805260e05160a052600101818118610823575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60605113610935575f610100526020610100610949565b6060515f81126111ee576101005260206101005bf35b637c74a17481186109da576024361034176111ee576004358060a01c6111ee5760a05260a05160405261097e60e06110ac565b60e05160c05260c051610998575f60e052602060e06109d8565b600460c0516020525f5260405f205460e052600560c0516020525f5260405f208060e0516020525f5260405f209050600181019050546101005260206101005bf35b631eeaebb28118610f0b57346111ee57600b5460405260206040f35b639903dcd98118610f0b57610124361034176111ee576004358060a01c6111ee576101805260443580600f0b81186111ee576101a05260643580600f0b81186111ee576101c052604060846101e03760c43580600f0b81186111ee576102205260e435610240527f91ecbab409000ca436e362529d6a0ee19bfacafc306d0b7328e4b31a37513d1c60405233606052610a8d610f0f565b61010435600b541115610b17576020806102c052600f610260527f4f7574646174656420757064617465000000000000000000000000000000000061028052610260816102c00160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06102a052806004016102bcfd5b6024356004610180516020525f5260405f20556005610180516020525f5260405f20806024356020525f5260405f2090506101a05181556101c05160018201556101e0516002820155610200516003820155506006610180516020525f5260405f20610220518155610240516001820155507fc66f925f5ab3e2b78af5e6665528857394aaf2c48b188ccab0ead737fa33ed7a6101805161026052602435610280526040610260a161010435600b55005b631292e32b8118610d4d576064361034176111ee576004358060a01c6111ee57610180526024358060a01c6111ee576101a0527fe887cc0717dab2ad628f68695129fefff34ee397bdd39e44a259e2cae80f49b760405233606052610c2b610f0f565b604435600b541115610cb45760208061022052600f6101c0527f4f757464617465642075706461746500000000000000000000000000000000006101e0526101c0816102200160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a0610200528060040161021cfd5b6008610180516020525f5260405f20546101c0526101c05115610ce3575f60096101c0516020525f5260405f20555b6101a0516008610180516020525f5260405f20556101a05115610d15576101805160096101a0516020525f5260405f20555b7fab7d75eccd27c9989942a3a6e4137e415df0ad90ec428751b16361f16fe8780f60406101806101e05e60406101e0a1604435600b55005b63010ae7578118610f0b576024361034176111ee576004358060a01c6111ee5760405260046040516020525f5260405f205460605260206060f35b63a50cc4bf8118610dc257346111ee577f91ecbab409000ca436e362529d6a0ee19bfacafc306d0b7328e4b31a37513d1c60405260206040f35b6306fdde038118610f0b57346111ee5760208060805260116040527f566f74652d657363726f7765642043525600000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b63597b0a1a8118610f0b57346111ee577f91bab4a1f219aaf3591b80c219b7a6eda6e5ddcadf2001c395591dcc40ecfbb760405260206040f35b6395d89b418118610f0b57346111ee5760208060805260056040527f766543525600000000000000000000000000000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b63313ce5678118610f0b57346111ee57601260405260206040f35b5f5ffd5b5f6040516020525f5260405f20806060516020525f5260405f20905054610fcc576020806101005260276080527f6163636573735f636f6e74726f6c3a206163636f756e74206973206d6973736960a0527f6e6720726f6c650000000000000000000000000000000000000000000000000060c0526080816101000160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060e0528060040160fcfd5b565b5f6040516020525f5260405f20806060516020525f5260405f2090505461103b5760015f6040516020525f5260405f20806060516020525f5260405f20905055336060516040517f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f6080a45b565b5f6040516020525f5260405f20806060516020525f5260405f20905054156110aa575f5f6040516020525f5260405f20806060516020525f5260405f20905055336060516040517ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f6080a45b565b60096040516020525f5260405f20546060526060516110fe5760086040516020525f5260405f205480156110e5576040518114156110e7565b5f5b9050156110f7575f815250611105565b6040516060525b6060518152505b565b60046040516020525f5260405f2054608052608051611129575f8152506111ec565b60056040516020525f5260405f20806080516020525f5260405f209050805460a052600181015460c052600281015460e0526003810154610100525060a05160c05160605160e0518082038281116111ee579050905080607f1c6111ee5780820280600f0b81186111ee579050905080820380600f0b81186111ee579050905060a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a051136111de575f8152506111ec565b60a0515f81126111ee578152505b565b5f80fd079a03a20f0b071d0f0b0e7604570f0b01ed0f0b015d01a6031f0e3c0d880f0b0262094b09f600180f0b0ef00f0b0f0b0bc8

Deployed Bytecode Sourcemap

0:8416:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4056:20:1;-1:-1:-1;4056:20:1;4373:12:1;-1:-1:-1;4373:37:1;3330:10:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4373:37:1;-1:-1:-1;4373:37:1;-1:-1:-1;-1:-1:-1;4373:37:1:-;-1:-1:-1;-1:-1:-1;4373:37:1;-1:-1:-1;-1:-1:-1;4373:37:1:-;4373:37:1:-;3384:10:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4373:37:1;-1:-1:-1;-1:-1:-1;4373:37:1:-;4373:37:1;4373:37:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4034:376:1;-1:-1:-1;4034:376:1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1110:46:0;-1:-1:-1;1110:46:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1756:7:0;-1:-1:-1;1756:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1756:7:0;1756:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1717:46:0;-1:-1:-1;1717:46:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3507:57:1;-1:-1:-1;3507:57:1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3033:62:1;-1:-1:-1;3033:62:1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1329:47:0;-1:-1:-1;1329:47:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4452:16:1;-1:-1:-1;-1:-1:-1;4452:16:1;4824:17:1;-1:-1:-1;4882:4:1;-1:-1:-1;4824:23:1;4824:23:1;-1:-1:-1;4824:23:1;4824:23:1;4824:23:1;4824:23:1;-1:-1:-1;4824:23:1;4824:23:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4849:10:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4807:53:1;-1:-1:-1;-1:-1:-1;4807:53:1:i;4807:53:1:-;4882:4:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4888:7:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4423:473:1;-1:-1:-1;-1:-1:-1;4865:31:1;-1:-1:-1;-1:-1:-1;4865:31:1:i;4423:473:1:-;4423:473:1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1087:22:0;-1:-1:-1;1087:22:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4939:16:1;-1:-1:-1;-1:-1:-1;4939:16:1;5290:17:1;-1:-1:-1;5349:4:1;-1:-1:-1;5290:23:1;5290:23:1;-1:-1:-1;5290:23:1;5290:23:1;5290:23:1;5290:23:1;-1:-1:-1;5290:23:1;5290:23:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5315:10:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5273:53:1;-1:-1:-1;-1:-1:-1;5273:53:1:i;5273:53:1:-;5349:4:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5355:7:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4909:454:1;-1:-1:-1;-1:-1:-1;5331:32:1;-1:-1:-1;-1:-1:-1;5331:32:1:i;4909:454:1:-;4909:454:1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1210:69:0;-1:-1:-1;1210:69:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2531:14:0;-1:-1:-1;2531:14:0;2731:20:0;-1:-1:-1;2752:5:0;-1:-1:-1;-1:-1:-1;2731:27:0;-1:-1:-1;2731:27:0;2731:27:0;2731:27:0;2731:27:0;-1:-1:-1;2731:27:0;2731:27:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;2715:43:0;2766:4:0;-1:-1:-1;2766:22:0;2763:47:0;-1:-1:-1;-1:-1:-1;2763:47:0:-;2805:5:0;-1:-1:-1;-1:-1:-1;2798:4:0;-1:-1:-1;-1:-1:-1;2763:47:0:-;2517:309:0;-1:-1:-1;2822:4:0;-1:-1:-1;2517:309:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;1053:32:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1004:81:0;-1:-1:-1;1004:81:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2859:12:0;-1:-1:-1;2859:12:0;3046:18:0;-1:-1:-1;3065:3:0;-1:-1:-1;-1:-1:-1;3046:23:0;-1:-1:-1;3046:23:0;3046:23:0;3046:23:0;3046:23:0;-1:-1:-1;3046:23:0;3046:23:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;3030:39:0;3077:4:0;-1:-1:-1;3077:22:0;3074:45:0;-1:-1:-1;-1:-1:-1;3074:45:0:-;3116:3:0;-1:-1:-1;-1:-1:-1;3109:4:0;-1:-1:-1;-1:-1:-1;3074:45:0:-;2845:290:0;-1:-1:-1;3131:4:0;-1:-1:-1;2845:290:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5198:14:0;-1:-1:-1;5198:14:0;5417:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5385:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5385:38:0;-1:-1:-1;5385:38:0;-1:-1:-1;-1:-1:-1;5385:38:0:i;5385:38:0:-;5385:38:0;-1:-1:-1;5369:54:0;5369:54:0;-1:-1:-1;5369:54:0;5431:4:0;-1:-1:-1;5431:22:0;5428:43:0;-1:-1:-1;-1:-1:-1;5428:43:0:-;5470:1:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5428:43:0:-;5483:11:0;-1:-1:-1;5495:4:0;-1:-1:-1;-1:-1:-1;5483:17:0;-1:-1:-1;5483:17:0;5483:17:0;5483:17:0;5483:17:0;-1:-1:-1;5483:17:0;5483:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5483:21:0;5483:21:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5182:322:0;-1:-1:-1;5182:322:0:-;5182:322:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3515:15:0;3493:19:0;-1:-1:-1;-1:-1:-1;3493:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6650:51:0;-1:-1:-1;-1:-1:-1;6650:51:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;6650:51:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6650:51:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6650:51:0;6995:14:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7011:10:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6968:54:0;-1:-1:-1;-1:-1:-1;6968:54:0:i;6968:54:0:-;7576:13:0;-1:-1:-1;7034:39:0;7034:22:0;-1:-1:-1;7034:39:0;-1:-1:-1;7027:65:0;7027:65:0;-1:-1:-1;-1:-1:-1;7027:65:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7075:17:0;-1:-1:-1;-1:-1:-1;7075:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7075:17:0;7075:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7027:65:0:-;7538:6:0;-1:-1:-1;-1:-1:-1;7235:10:0;-1:-1:-1;-1:-1:-1;7259:18:0;-1:-1:-1;7538:6:0;-1:-1:-1;7259:26:0;7259:26:0;-1:-1:-1;7259:26:0;7259:26:0;7259:26:0;7259:26:0;-1:-1:-1;7259:26:0;7259:26:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6580:1009:0;7338:17:0;-1:-1:-1;-1:-1:-1;7338:25:0;7359:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;7338:25:0;-1:-1:-1;7338:25:0;7338:25:0;7367:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;7337:34:0;-1:-1:-1;7337:34:0;7367:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;7337:34:0;7337:34:0;7330:41:0;7330:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7330:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;7330:41:0;7330:41:0;7308:63:0;-1:-1:-1;-1:-1:-1;7308:63:0;7376:140:0;7404:14:0;-1:-1:-1;-1:-1:-1;7400:19:0;7376:140:0;-1:-1:-1;7376:140:0;7376:140:0;7376:140:0;-1:-1:-1;-1:-1:-1;7376:140:0:-;7376:140:0;7376:140:0;7376:140:0;-1:-1:-1;-1:-1:-1;7376:140:0:-;7376:140:0;7376:140:0:-;7376:140:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7514:1:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;7499:14:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;7499:17:0;7499:17:0;-1:-1:-1;-1:-1:-1;7499:17:0;-1:-1:-1;7455:18:0;-1:-1:-1;7474:10:0;-1:-1:-1;-1:-1:-1;7474:21:0;7494:1:0;-1:-1:-1;-1:-1:-1;7487:8:0;7487:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;7487:8:0;-1:-1:-1;7487:8:0;7487:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;7487:8:0;7487:8:0;-1:-1:-1;7474:21:0;-1:-1:-1;7474:21:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;7474:21:0;7474:21:0;7474:21:0;7474:21:0;7455:41:0;-1:-1:-1;7455:41:0;7455:41:0;7455:41:0;7455:41:0;-1:-1:-1;7455:41:0;7455:41:0;-1:-1:-1;7376:140:0;-1:-1:-1;7376:140:0;7376:140:0;7376:140:0;7376:140:0;7376:140:0;-1:-1:-1;-1:-1:-1;7376:140:0:-;7376:140:0:-;7376:140:0;7376:140:0;7522:23:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7538:6:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7522:23:0;-1:-1:-1;-1:-1:-1;7522:23:0;7576:13:0;-1:-1:-1;-1:-1:-1;7551:22:0;-1:-1:-1;-1:-1:-1;6580:1009:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1281:47:0;-1:-1:-1;1281:47:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;3493:19:0;3493:19:0;-1:-1:-1;-1:-1:-1;3493:19:0;3463:405:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3477:14:0;-1:-1:-1;-1:-1:-1;3477:14:0;3769:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3737:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;3737:38:0;-1:-1:-1;-1:-1:-1;3737:38:0;-1:-1:-1;-1:-1:-1;3737:38:0:i;3737:38:0:-;3737:38:0;-1:-1:-1;-1:-1:-1;3721:54:0;3721:54:0;-1:-1:-1;-1:-1:-1;3721:54:0;3783:4:0;-1:-1:-1;-1:-1:-1;3783:22:0;3780:43:0;-1:-1:-1;-1:-1:-1;3780:43:0:-;3822:1:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3780:43:0:-;3463:405:0;-1:-1:-1;3851:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3857:10:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3835:33:0;-1:-1:-1;-1:-1:-1;3835:33:0;-1:-1:-1;-1:-1:-1;3835:33:0:i;3835:33:0:-;3835:33:0;-1:-1:-1;-1:-1:-1;3463:405:0:-;3463:405:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3925:15:0;3903:19:0;-1:-1:-1;3903:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;3903:19:0;3903:19:0;-1:-1:-1;3903:19:0;3887:820:0:-;4122:18:0;-1:-1:-1;4141:10:0;-1:-1:-1;-1:-1:-1;4122:30:0;-1:-1:-1;4122:30:0;4122:30:0;4122:30:0;4122:30:0;-1:-1:-1;4122:30:0;4122:30:0;4102:50:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4102:50:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4102:50:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4102:50:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4102:50:0;4173:13:0;-1:-1:-1;4173:21:0;4190:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;4173:21:0;-1:-1:-1;4173:21:0;4173:21:0;4198:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;4172:30:0;-1:-1:-1;4172:30:0;4198:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4172:30:0;4172:30:0;4157:45:0;-1:-1:-1;4157:45:0;4207:408:0;4207:408:0;-1:-1:-1;-1:-1:-1;4207:408:0;4207:408:0:-;4207:408:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4245:3:0;-1:-1:-1;-1:-1:-1;4252:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;4245:3:0;-1:-1:-1;4245:11:0;4284:1:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;4266:19:0;4303:10:0;-1:-1:-1;-1:-1:-1;4297:3:0;-1:-1:-1;-1:-1:-1;4297:16:0;4294:109:0;-1:-1:-1;-1:-1:-1;4294:109:0:-;4380:18:0;-1:-1:-1;4399:3:0;-1:-1:-1;-1:-1:-1;4380:23:0;-1:-1:-1;4380:23:0;4380:23:0;4380:23:0;4380:23:0;-1:-1:-1;4380:23:0;4380:23:0;-1:-1:-1;4370:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;4294:109:0;-1:-1:-1;-1:-1:-1;4294:109:0:-;4294:109:0:-;4333:10:0;-1:-1:-1;-1:-1:-1;4327:3:0;-1:-1:-1;-1:-1:-1;4294:109:0:-;4412:15:0;-1:-1:-1;-1:-1:-1;4431:16:0;-1:-1:-1;4431:55:0;4458:3:0;-1:-1:-1;4458:19:0;4464:13:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;4458:19:0;-1:-1:-1;4458:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4458:19:0;4458:19:0;4458:19:0;4458:19:0;4450:36:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;4431:55:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4431:55:0;4431:55:0;4431:55:0;4431:55:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;4412:74:0;4412:74:0;4412:15:0;-1:-1:-1;4412:74:0;4505:10:0;-1:-1:-1;4498:17:0;4498:3:0;-1:-1:-1;4498:17:0;4498:17:0;4498:33:0;-1:-1:-1;-1:-1:-1;4498:33:0:-;4498:33:0;-1:-1:-1;4498:33:0;-1:-1:-1;-1:-1:-1;4498:33:0:-;4498:33:0:-;4519:7:0;-1:-1:-1;-1:-1:-1;4519:12:0;4519:12:0;4498:33:0:-;4545:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4560:16:0;-1:-1:-1;-1:-1:-1;4580:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;4560:27:0;4560:27:0;4560:16:0;-1:-1:-1;4560:27:0;4612:3:0;-1:-1:-1;-1:-1:-1;4596:13:0;-1:-1:-1;-1:-1:-1;4207:408:0;-1:-1:-1;4207:408:0;4207:408:0;4207:408:0;4207:408:0;4207:408:0;-1:-1:-1;-1:-1:-1;4207:408:0:-;4207:408:0:-;4207:408:0;4207:408:0;4624:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4624:15:0;-1:-1:-1;4624:19:0;-1:-1:-1;4621:40:0;-1:-1:-1;-1:-1:-1;4621:40:0:-;4660:1:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4621:40:0:-;4682:15:0;-1:-1:-1;4674:33:0;-1:-1:-1;4674:33:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3887:820:0;-1:-1:-1;-1:-1:-1;3887:820:0:-;3887:820:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;4750:14:0;-1:-1:-1;4750:14:0;5004:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4972:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;4972:38:0;-1:-1:-1;4972:38:0;-1:-1:-1;-1:-1:-1;4972:38:0:i;4972:38:0:-;4972:38:0;-1:-1:-1;4956:54:0;4956:54:0;-1:-1:-1;4956:54:0;5018:4:0;-1:-1:-1;5018:22:0;5015:43:0;-1:-1:-1;-1:-1:-1;5015:43:0:-;5057:1:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5015:43:0:-;5081:21:0;-1:-1:-1;5103:4:0;-1:-1:-1;-1:-1:-1;5081:27:0;-1:-1:-1;5081:27:0;5081:27:0;5081:27:0;5081:27:0;-1:-1:-1;5081:27:0;5081:27:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5063:45:0;5120:23:0;-1:-1:-1;5144:4:0;-1:-1:-1;-1:-1:-1;5120:29:0;-1:-1:-1;5120:29:0;5120:29:0;5120:29:0;5120:29:0;-1:-1:-1;5120:29:0;5120:29:0;-1:-1:-1;5150:6:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5120:37:0;5120:37:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5120:43:0;5120:43:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4726:437:0;-1:-1:-1;-1:-1:-1;4726:437:0:-;4726:437:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1535:34:0;-1:-1:-1;1535:34:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5573:14:0;-1:-1:-1;-1:-1:-1;5573:14:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6006:16:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6024:10:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5979:56:0;-1:-1:-1;-1:-1:-1;5979:56:0:i;5979:56:0:-;6554:13:0;-1:-1:-1;-1:-1:-1;6047:39:0;6047:22:0;-1:-1:-1;6047:39:0;-1:-1:-1;6040:65:0;6040:65:0;-1:-1:-1;-1:-1:-1;6040:65:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6088:17:0;-1:-1:-1;-1:-1:-1;6088:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6088:17:0;6088:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6040:65:0:-;6505:17:0;-1:-1:-1;-1:-1:-1;6318:21:0;-1:-1:-1;6340:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;6318:28:0;-1:-1:-1;6318:28:0;6318:28:0;6318:28:0;6318:28:0;-1:-1:-1;6318:28:0;6318:28:0;-1:-1:-1;6371:23:0;-1:-1:-1;6395:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;6371:30:0;-1:-1:-1;6371:30:0;6371:30:0;6371:30:0;6371:30:0;-1:-1:-1;6371:30:0;6371:30:0;6371:49:0;6505:17:0;-1:-1:-1;-1:-1:-1;6371:49:0;-1:-1:-1;6371:49:0;6371:49:0;6371:49:0;6371:49:0;-1:-1:-1;6371:49:0;6371:49:0;6371:49:0;6371:49:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5549:1018:0;6447:11:0;-1:-1:-1;6459:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;6447:18:0;-1:-1:-1;6447:18:0;6447:18:0;6447:18:0;6447:18:0;-1:-1:-1;6447:18:0;6447:18:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5549:1018:0;6480:43:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6498:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6505:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6480:43:0;-1:-1:-1;-1:-1:-1;6480:43:0;6554:13:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;6529:22:0;-1:-1:-1;-1:-1:-1;5549:1018:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;7624:14:0;-1:-1:-1;-1:-1:-1;7624:14:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;7640:12:0;-1:-1:-1;-1:-1:-1;7640:12:0;7967:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7988:10:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7940:59:0;-1:-1:-1;-1:-1:-1;7940:59:0:i;7940:59:0:-;8403:13:0;-1:-1:-1;8011:39:0;8011:22:0;-1:-1:-1;8011:39:0;-1:-1:-1;8004:65:0;8004:65:0;-1:-1:-1;-1:-1:-1;8004:65:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8052:17:0;-1:-1:-1;-1:-1:-1;8052:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8052:17:0;8052:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8004:65:0:-;8096:20:0;-1:-1:-1;8117:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;8096:27:0;-1:-1:-1;8096:27:0;8096:27:0;8096:27:0;8096:27:0;-1:-1:-1;8096:27:0;8096:27:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8075:48:0;8131:9:0;-1:-1:-1;-1:-1:-1;8131:27:0;8131:27:0;8128:107:0;-1:-1:-1;-1:-1:-1;8128:107:0:-;-1:-1:-1;8189:18:0;-1:-1:-1;8208:9:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;8189:29:0;-1:-1:-1;8189:29:0;8189:29:0;8189:29:0;8189:29:0;-1:-1:-1;8189:29:0;8189:29:0;-1:-1:-1;8128:107:0:-;8270:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;8240:20:0;-1:-1:-1;8261:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;8240:27:0;-1:-1:-1;8240:27:0;8240:27:0;8240:27:0;8240:27:0;-1:-1:-1;8240:27:0;8240:27:0;-1:-1:-1;8281:3:0;-1:-1:-1;-1:-1:-1;8281:21:0;8281:21:0;8278:65:0;-1:-1:-1;-1:-1:-1;8278:65:0:-;8338:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;8312:18:0;-1:-1:-1;8331:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;8312:23:0;-1:-1:-1;8312:23:0;8312:23:0;8312:23:0;8312:23:0;-1:-1:-1;8312:23:0;8312:23:0;-1:-1:-1;8278:65:0:-;8348:24:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8348:24:0;-1:-1:-1;-1:-1:-1;8348:24:0;8403:13:0;-1:-1:-1;-1:-1:-1;8378:22:0;-1:-1:-1;-1:-1:-1;7602:814:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1158:51:0;-1:-1:-1;1158:51:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;902:29:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;856:75:0;-1:-1:-1;856:75:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1608:19:0;-1:-1:-1;1608:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1608:19:0;1608:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1571:56:0;-1:-1:-1;1571:56:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;976:27:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;932:71:0;-1:-1:-1;932:71:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1667:7:0;-1:-1:-1;1667:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1667:7:0;1667:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1628:46:0;-1:-1:-1;1628:46:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;1713:2:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1675:40:0;-1:-1:-1;1675:40:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;6841:12:1;6854:4:1;-1:-1:-1;-1:-1:-1;6841:18:1;-1:-1:-1;6841:18:1;6841:18:1;6841:18:1;6841:18:1;-1:-1:-1;6841:18:1;6841:18:1;-1:-1:-1;6860:7:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6841:27:1;6841:27:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6834:77:1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6870:41:1;-1:-1:-1;6870:41:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6870:41:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6870:41:1;6870:41:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1:-;7726:12:1;7739:4:1;-1:-1:-1;-1:-1:-1;7726:18:1;-1:-1:-1;7726:18:1;7726:18:1;7726:18:1;7726:18:1;-1:-1:-1;7726:18:1;7726:18:1;-1:-1:-1;7745:7:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7726:27:1;7726:27:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7718:147:1:-;7795:4:1;-1:-1:-1;7765:12:1;7778:4:1;-1:-1:-1;-1:-1:-1;7765:18:1;-1:-1:-1;7765:18:1;7765:18:1;7765:18:1;7765:18:1;-1:-1:-1;7765:18:1;7765:18:1;-1:-1:-1;7784:7:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7765:27:1;7765:27:1;-1:-1:-1;7854:10:1;7845:7:1;-1:-1:-1;7808:57:1;7839:4:1;-1:-1:-1;7808:57:1;7808:57:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;7808:57:1;7808:57:1;-1:-1:-1;7808:57:1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1:-;8176:12:1;8189:4:1;-1:-1:-1;-1:-1:-1;8176:18:1;-1:-1:-1;8176:18:1;8176:18:1;8176:18:1;8176:18:1;-1:-1:-1;8176:18:1;8176:18:1;-1:-1:-1;8195:7:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8176:27:1;8176:27:1;8172:143:1;8172:143:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8172:143:1:-;8244:5:1;8214:12:1;8227:4:1;-1:-1:-1;-1:-1:-1;8214:18:1;-1:-1:-1;8214:18:1;8214:18:1;8214:18:1;8214:18:1;-1:-1:-1;8214:18:1;8214:18:1;-1:-1:-1;8233:7:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8214:27:1;8214:27:1;-1:-1:-1;8304:10:1;8295:7:1;-1:-1:-1;8258:57:1;8289:4:1;-1:-1:-1;8258:57:1;8258:57:1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;8258:57:1;8258:57:1;-1:-1:-1;8258:57:1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1:-;3223:18:0;-1:-1:-1;3242:5:0;-1:-1:-1;-1:-1:-1;3223:25:0;-1:-1:-1;3223:25:0;3223:25:0;3223:25:0;3223:25:0;-1:-1:-1;3223:25:0;3223:25:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;3207:41:0;3256:4:0;-1:-1:-1;3256:22:0;3253:175:0;-1:-1:-1;-1:-1:-1;3253:175:0:-;3291:20:0;-1:-1:-1;3312:5:0;-1:-1:-1;-1:-1:-1;3291:27:0;-1:-1:-1;3291:27:0;3291:27:0;3291:27:0;3291:27:0;-1:-1:-1;3291:27:0;3291:27:0;3291:58:0;3291:58:0;-1:-1:-1;3291:58:0;-1:-1:-1;-1:-1:-1;3291:58:0:-;3343:5:0;-1:-1:-1;-1:-1:-1;3291:58:0;-1:-1:-1;-1:-1:-1;3291:58:0;-1:-1:-1;-1:-1:-1;3291:58:0:-;3291:58:0:-;-1:-1:-1;3291:58:0:-;3291:58:0;3291:58:0;3288:119:0;3288:119:0;-1:-1:-1;-1:-1:-1;3288:119:0:-;-1:-1:-1;-1:-1:-1;3386:21:0;3386:21:0;3386:21:0;-1:-1:-1;-1:-1:-1;3386:21:0:o;3288:119:0:-;3423:5:0;-1:-1:-1;-1:-1:-1;3416:4:0;-1:-1:-1;-1:-1:-1;3253:175:0:-;3440:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;3433:11:0;3433:11:0;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1:-;2197:21:0;-1:-1:-1;2219:4:0;-1:-1:-1;-1:-1:-1;2197:27:0;-1:-1:-1;2197:27:0;2197:27:0;2197:27:0;2197:27:0;-1:-1:-1;2197:27:0;2197:27:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;2180:44:0;2232:5:0;-1:-1:-1;2232:10:0;2229:31:0;-1:-1:-1;-1:-1:-1;2229:31:0:-;2259:1:0;-1:-1:-1;2252:8:0;2252:8:0;2252:8:0;-1:-1:-1;-1:-1:-1;2252:8:0:o;2229:31:0:-;2286:23:0;-1:-1:-1;2310:4:0;-1:-1:-1;-1:-1:-1;2286:29:0;-1:-1:-1;2286:29:0;2286:29:0;2286:29:0;2286:29:0;-1:-1:-1;2286:29:0;2286:29:0;-1:-1:-1;2316:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2286:36:0;2286:36:0;2266:56:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2266:56:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2266:56:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2266:56:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2266:56:0;2327:15:0;-1:-1:-1;-1:-1:-1;2346:16:0;-1:-1:-1;2346:61:0;2373:9:0;-1:-1:-1;2373:25:0;2385:13:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;2373:25:0;-1:-1:-1;2373:25:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2373:25:0;2373:25:0;2373:25:0;2373:25:0;2365:42:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;2346:61:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2346:61:0;2346:61:0;2346:61:0;2346:61:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;2327:80:0;2327:80:0;2327:15:0;-1:-1:-1;2327:80:0;2415:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2415:15:0;-1:-1:-1;2415:19:0;-1:-1:-1;2412:40:0;-1:-1:-1;-1:-1:-1;2412:40:0:-;2451:1:0;-1:-1:-1;2444:8:0;2444:8:0;2444:8:0;-1:-1:-1;-1:-1:-1;2444:8:0:o;2412:40:0:-;2473:15:0;-1:-1:-1;2465:33:0;-1:-1:-1;2465:33:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;2458:40:0;2458:40:0;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.