{
  "_format": "hh-sol-artifact-1",
  "contractName": "NavigatorRegistry",
  "sourceName": "contracts/navigator/NavigatorRegistry.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessControlBadConfirmation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "neededRole",
          "type": "bytes32"
        }
      ],
      "name": "AccessControlUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "AddressEmptyCode",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "AlreadyDeactivated",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "currentNavigator",
          "type": "address"
        }
      ],
      "name": "AlreadyDelegated",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "AlreadyExiting",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "AlreadyRegistered",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "AlreadySlashed",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "minimum",
          "type": "uint256"
        }
      ],
      "name": "BelowMinimumDelegation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "DecisionAlreadySet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "DecisionNotSet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "delegator",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "currentNavigator",
          "type": "address"
        }
      ],
      "name": "DelegatorCannotRegister",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "DuplicateApp",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "ERC1967InvalidImplementation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1967NonPayable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EmptyPreferences",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "requested",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "available",
          "type": "uint256"
        }
      ],
      "name": "ExceedsNavigatorCapacity",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedInnerCall",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "FeesForfeited",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "unlockRound",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "currentRound",
          "type": "uint256"
        }
      ],
      "name": "FeesStillLocked",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "requested",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "available",
          "type": "uint256"
        }
      ],
      "name": "InsufficientDelegation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "available",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "requested",
          "type": "uint256"
        }
      ],
      "name": "InsufficientStake",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "requested",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "available",
          "type": "uint256"
        }
      ],
      "name": "InsufficientUnlockedBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "decision",
          "type": "uint8"
        }
      ],
      "name": "InvalidDecision",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "InvalidParameter",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "appsLength",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "percentagesLength",
          "type": "uint256"
        }
      ],
      "name": "LengthMismatch",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "NavigatorCannotAcceptDelegations",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "NavigatorDeactivated",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "NavigatorStillActive",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "NoFeesToClaim",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "NoInfractionFound",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "NoStakeToSlash",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotANavigator",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "NotDelegated",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "NotExiting",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "NotRegistered",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentRound",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "requiredRound",
          "type": "uint256"
        }
      ],
      "name": "NoticePeriodNotElapsed",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "total",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        }
      ],
      "name": "PercentageMismatch",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "PreferencesAlreadySet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "PreferencesNotSet",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ReentrancyGuardReentrantCall",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "RoundStillActive",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "SelfDelegationNotAllowed",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "slashPercentage",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max",
          "type": "uint256"
        }
      ],
      "name": "SlashExceedsMax",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "provided",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "minimum",
          "type": "uint256"
        }
      ],
      "name": "StakeBelowMinimum",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "provided",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maximum",
          "type": "uint256"
        }
      ],
      "name": "StakeExceedsMaximum",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "count",
          "type": "uint256"
        }
      ],
      "name": "TooManyApps",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "UUPSUnauthorizedCallContext",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "slot",
          "type": "bytes32"
        }
      ],
      "name": "UUPSUnsupportedProxiableUUID",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "UnauthorizedCaller",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "param",
          "type": "string"
        }
      ],
      "name": "ZeroAddress",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroDelegationAmount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroPercentage",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "appIds",
          "type": "bytes32[]"
        }
      ],
      "name": "AllocationPreferencesSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "DelegationCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "removedAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newTotal",
          "type": "uint256"
        }
      ],
      "name": "DelegationDecreased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "addedAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newTotal",
          "type": "uint256"
        }
      ],
      "name": "DelegationIncreased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "DelegationRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "announcedAtRound",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "effectiveDeadline",
          "type": "uint256"
        }
      ],
      "name": "ExitAnnounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "FeeClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "FeeDeposited",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "newURI",
          "type": "string"
        }
      ],
      "name": "MetadataURIUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "slashPercentage",
          "type": "uint256"
        }
      ],
      "name": "NavigatorDeactivatedEvent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "remainingStake",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "infractionFlags",
          "type": "uint256"
        }
      ],
      "name": "NavigatorMinorSlashed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "stakeAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "name": "NavigatorRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "remainingStake",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "NavigatorSlashed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "decision",
          "type": "uint8"
        }
      ],
      "name": "ProposalDecisionSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reportURI",
          "type": "string"
        }
      ],
      "name": "ReportSubmitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "previousAdminRole",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newAdminRole",
          "type": "bytes32"
        }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newTotal",
          "type": "uint256"
        }
      ],
      "name": "StakeAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "remaining",
          "type": "uint256"
        }
      ],
      "name": "StakeWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "BASIS_POINTS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GOVERNANCE_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UPGRADER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UPGRADE_INTERFACE_VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "addStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "announceExit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "canAcceptDelegations",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "claimFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "citizens",
          "type": "address[]"
        }
      ],
      "name": "correctOverDelegations",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "slashPercentage",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "slashFees",
          "type": "bool"
        }
      ],
      "name": "deactivateNavigator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "delegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "depositNavigatorFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "exitAnnouncedRound",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getAllocationPreferences",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "getDelegatedAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getDelegatedAmountAtTimepoint",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "getDelegationCapacity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getExitNoticePeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFeeLockPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFeePercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "getLastReportRound",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "getLastReportURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMaxStake",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "getMetadataURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMinStake",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMinorSlashPercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "getNavigator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getNavigatorAtTimepoint",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPreferenceCutoffPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getPreferencesSetBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalDecision",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "getRawNavigator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getRawNavigatorAtTimepoint",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "getRemainingCapacity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getReportInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getRoundFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "getStake",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getStakedAmountAtTimepoint",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "getStatus",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "getTotalDelegated",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getTotalDelegatedAtTimepoint",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint48",
          "name": "timepoint",
          "type": "uint48"
        }
      ],
      "name": "getTotalDelegatedCitizensAtTimepoint",
      "outputs": [
        {
          "internalType": "uint208",
          "name": "",
          "type": "uint208"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "getTotalSlashed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "hasSetDecision",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "hasSetPreferences",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "increaseDelegation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "admin",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "upgrader",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "governance",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "b3trToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "vot3Token",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "treasury",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "minStake",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxStakePercentage",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "feeLockPeriod",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "feePercentage",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "exitNoticePeriod",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reportInterval",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "minorSlashPercentage",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "preferenceCutoffPeriod",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "voterRewards",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "xAllocationVoting",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "relayerRewardsPool",
              "type": "address"
            }
          ],
          "internalType": "struct NavigatorRegistry.InitParams",
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "isDeactivated",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "isDeactivatedAtTimepoint",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "isDelegated",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "isDelegatedAtTimepoint",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "isExiting",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "isNavigator",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "isRoundFeeUnlocked",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "isSlashedForRound",
      "outputs": [
        {
          "internalType": "bool",
          "name": "slashed",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "infractionFlags",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "reduceBy",
          "type": "uint256"
        }
      ],
      "name": "reduceDelegation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "reduceStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "name": "register",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "callerConfirmation",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "uint256[]",
          "name": "proposalIds",
          "type": "uint256[]"
        }
      ],
      "name": "reportRoundInfractions",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "appIds",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "weights",
          "type": "uint256[]"
        }
      ],
      "name": "setAllocationPreferences",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newPeriod",
          "type": "uint256"
        }
      ],
      "name": "setExitNoticePeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newPeriod",
          "type": "uint256"
        }
      ],
      "name": "setFeeLockPeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newPercentage",
          "type": "uint256"
        }
      ],
      "name": "setFeePercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newPercentage",
          "type": "uint256"
        }
      ],
      "name": "setMaxStakePercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setMetadataURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newMinStake",
          "type": "uint256"
        }
      ],
      "name": "setMinStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newPercentage",
          "type": "uint256"
        }
      ],
      "name": "setMinorSlashPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newPeriod",
          "type": "uint256"
        }
      ],
      "name": "setPreferenceCutoffPeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "decision",
          "type": "uint8"
        }
      ],
      "name": "setProposalDecision",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAddress",
          "type": "address"
        }
      ],
      "name": "setRelayerRewardsPool",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newInterval",
          "type": "uint256"
        }
      ],
      "name": "setReportInterval",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAddress",
          "type": "address"
        }
      ],
      "name": "setVoterRewards",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAddress",
          "type": "address"
        }
      ],
      "name": "setXAllocationVoting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "reportURI",
          "type": "string"
        }
      ],
      "name": "submitReport",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "undelegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdrawStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516142cd62000104600039600081816133de01528181613407015261354f01526142cd6000f3fe6080604052600436106103c55760003560e01c806301ffc9a7146103ca578063026e402b146103ff578063073ea6ae1461042157806309e07b031461044f5780630a5515e31461046f5780630dd8614c146104a75780630f5f9711146104c75780630fcc3081146104dc57806311efbf61146105095780631410e22c1461051e5780631598c5111461053e578063183b44f11461055e57806318be49d91461057e57806318ff7536146105ab5780632246f2db146105c057806323b343cf146105e0578063248a9ca314610600578063253dbca41461062057806325d5971f146106405780632f2ff15d1461066057806330ccebb51461068057806332b20f34146106b257806333cc7534146106d257806333d0e2e4146106f257806336568abe1461070757806338ac29a41461072757806338b3ce1314610747578063394f8454146107675780633b103ee5146107875780633d47fe941461079c5780633e28391d146107bc57806341556405146107dc57806343028df4146107fc578063453929e01461081c5780634f1ef2861461083c578063516bb8a31461084f57806352d1902d1461086f57806353055e801461088457806354fd4d50146108a457806356a3b5fa146108ce578063589444bb146108e35780635e27c95c14610903578063635ac1ed146109235780636fb7f7eb1461094357806374c0e76814610963578063750521f51461098357806376880ddc146109a35780637a4cce6d146109c35780637a766460146109e35780637b13bd4c14610a035780637b3d0cb514610a2357806381ec292f14610a4357806389c192ba14610a635780638c80fd9014610a9a5780638e6bdcc514610aba5780639124ac4814610acf57806391d1485414610aef57806392ab89bb14610b0f578063960efad914610b24578063a00fd3c814610b44578063a0d721b614610b64578063a217fddf14610b84578063a624f5aa14610b99578063ab9d80f114610bb9578063ac5500ce14610bd9578063ad3cb1cc14610bf9578063ae06c1b714610c2a578063af00578f14610c4a578063b9c64fcd14610c6a578063c383061814610c8a578063c61c06e714610caa578063c7329cf714610cca578063c81bdf2014610cea578063cb5bfd7014610cff578063d547741f14610d1f578063dbd3aa8a14610d3f578063e1f1c4a714610d5f578063e2d4c0d614610d75578063eb4f16b514610d95578063f232dd6014610db5578063f36c8f5c14610de3578063f3a8465514610e05578063f667526a14610e25578063f72c0d8b14610e45578063f8af3bf514610e67578063fe35505b14610e87575b600080fd5b3480156103d657600080fd5b506103ea6103e53660046137e6565b610e9c565b60405190151581526020015b60405180910390f35b34801561040b57600080fd5b5061041f61041a366004613825565b610ed3565b005b34801561042d57600080fd5b5061044161043c366004613851565b610fec565b6040519081526020016103f6565b34801561045b57600080fd5b5061041f61046a36600461387d565b611067565b34801561047b57600080fd5b5061048f61048a3660046138ad565b611148565b6040516001600160d01b0390911681526020016103f6565b3480156104b357600080fd5b5061041f6104c2366004613851565b6111c6565b3480156104d357600080fd5b5061044161124b565b3480156104e857600080fd5b506104fc6104f7366004613851565b6112bf565b6040516103f691906138f9565b34801561051557600080fd5b5061044161133e565b34801561052a57600080fd5b5061041f61053936600461392c565b611389565b34801561054a57600080fd5b5061041f610559366004613945565b61190b565b34801561056a57600080fd5b5061041f6105793660046139a2565b611960565b34801561058a57600080fd5b5061059e610599366004613825565b611a23565b6040516103f69190613a1b565b3480156105b757600080fd5b5061041f611aa7565b3480156105cc57600080fd5b506103ea6105db366004613825565b611b5b565b3480156105ec57600080fd5b506103ea6105fb366004613945565b611bd8565b34801561060c57600080fd5b5061044161061b366004613945565b611c63565b34801561062c57600080fd5b5061044161063b366004613825565b611c83565b34801561064c57600080fd5b5061041f61065b366004613945565b611d00565b34801561066c57600080fd5b5061041f61067b366004613a2f565b611d7d565b34801561068c57600080fd5b506106a061069b366004613851565b611d9f565b60405160ff90911681526020016103f6565b3480156106be57600080fd5b506104fc6106cd366004613851565b611e1a565b3480156106de57600080fd5b506103ea6106ed366004613851565b611e54565b3480156106fe57600080fd5b50610441611e8e565b34801561071357600080fd5b5061041f610722366004613a2f565b611ed9565b34801561073357600080fd5b50610441610742366004613851565b611f11565b34801561075357600080fd5b506106a0610762366004613825565b611f4b565b34801561077357600080fd5b506103ea610782366004613825565b611fc8565b34801561079357600080fd5b50610441612004565b3480156107a857600080fd5b5061041f6107b7366004613851565b61204f565b3480156107c857600080fd5b506103ea6107d7366004613851565b6120af565b3480156107e857600080fd5b5061041f6107f7366004613a54565b6120e9565b34801561080857600080fd5b50610441610817366004613851565b612163565b34801561082857600080fd5b5061059e610837366004613851565b61218f565b61041f61084a366004613af6565b61220a565b34801561085b57600080fd5b506103ea61086a366004613825565b612225565b34801561087b57600080fd5b50610441612261565b34801561089057600080fd5b506103ea61089f366004613825565b61227e565b3480156108b057600080fd5b506040805180820190915260018152603160f81b60208201526104fc565b3480156108da57600080fd5b506104416122b9565b3480156108ef57600080fd5b5061059e6108fe366004613851565b612304565b34801561090f57600080fd5b5061041f61091e366004613945565b61233e565b34801561092f57600080fd5b5061041f61093e366004613bc9565b612367565b34801561094f57600080fd5b5061044161095e366004613851565b6123f5565b34801561096f57600080fd5b5061041f61097e366004613945565b61242f565b34801561098f57600080fd5b5061041f61099e366004613bc9565b6124a5565b3480156109af57600080fd5b5061041f6109be366004613c18565b61252a565b3480156109cf57600080fd5b5061041f6109de366004613851565b612629565b3480156109ef57600080fd5b506104416109fe366004613851565b6126a8565b348015610a0f57600080fd5b506103ea610a1e366004613851565b6126e2565b348015610a2f57600080fd5b5061041f610a3e366004613945565b61271c565b348015610a4f57600080fd5b5061041f610a5e366004613945565b612771565b348015610a6f57600080fd5b50610a83610a7e366004613825565b6127e8565b6040805192151583526020830191909152016103f6565b348015610aa657600080fd5b5061041f610ab5366004613945565b612870565b348015610ac657600080fd5b506104416128e1565b348015610adb57600080fd5b50610441610aea366004613851565b6128f4565b348015610afb57600080fd5b506103ea610b0a366004613a2f565b61292e565b348015610b1b57600080fd5b5061041f612964565b348015610b3057600080fd5b50610441610b3f366004613851565b6129dd565b348015610b5057600080fd5b5061041f610b5f366004613c5a565b612a17565b348015610b7057600080fd5b506103ea610b7f366004613851565b612a94565b348015610b9057600080fd5b50610441600081565b348015610ba557600080fd5b506103ea610bb4366004613851565b612ace565b348015610bc557600080fd5b50610441610bd4366004613851565b612b08565b348015610be557600080fd5b5061041f610bf4366004613ca5565b612b42565b348015610c0557600080fd5b506104fc604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610c3657600080fd5b5061041f610c45366004613945565b612b86565b348015610c5657600080fd5b5061041f610c65366004613cda565b612c02565b348015610c7657600080fd5b50610441610c85366004613825565b612c3f565b348015610c9657600080fd5b5061041f610ca5366004613945565b612c7b565b348015610cb657600080fd5b50610441610cc5366004613825565b612d40565b348015610cd657600080fd5b50610441610ce5366004613825565b612d7c565b348015610cf657600080fd5b50610441612db8565b348015610d0b57600080fd5b50610441610d1a366004613825565b612e03565b348015610d2b57600080fd5b5061041f610d3a366004613a2f565b612e3f565b348015610d4b57600080fd5b5061041f610d5a366004613945565b612e5b565b348015610d6b57600080fd5b5061044161271081565b348015610d8157600080fd5b5061041f610d90366004613945565b612e83565b348015610da157600080fd5b5061041f610db0366004613945565b612eab565b348015610dc157600080fd5b50610dd5610dd0366004613825565b612f1d565b6040516103f6929190613d35565b348015610def57600080fd5b5061044160008051602061423883398151915281565b348015610e1157600080fd5b5061059e610e20366004613825565b612f9e565b348015610e3157600080fd5b5061041f610e40366004613945565b612fda565b348015610e5157600080fd5b5061044160008051602061425883398151915281565b348015610e7357600080fd5b5061041f610e82366004613945565b61306e565b348015610e9357600080fd5b506104416130f3565b60006001600160e01b03198216637965db0b60e01b1480610ecd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610edb61313e565b73__$77001f4f990daf096ecb913067ed8000fe$__63c26f3acf336040516001600160e01b031960e084901b1681526001600160a01b03918216600482015290851660248201526044810184905260640160006040518083038186803b158015610f4457600080fd5b505af4158015610f58573d6000803e3d6000fd5b505050506000610f66613174565b60238101549091506001600160a01b031615610fdf5760238101546001600160a01b031663673fc724336040518263ffffffff1660e01b8152600401610fac9190613a1b565b600060405180830381600087803b158015610fc657600080fd5b505af1158015610fda573d6000803e3d6000fd5b505050505b50610fe8613198565b5050565b60405163039f535760e11b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063073ea6ae90611026908590600401613a1b565b602060405180830381865af4158015611043573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613db0565b6000611071613174565b336000908152601a8201602052604090205490915060ff1615806110a65750336000908152601b8201602052604090205460ff165b156110d057335b60405163bfc6c33760e01b81526004016110c79190613a1b565b60405180910390fd5b604051633eccd70d60e21b81523360048201526024810184905260ff8316604482015273__$20840a81c37bbab58fd2611bc1a03caf3b$__9063fb335c34906064015b60006040518083038186803b15801561112b57600080fd5b505af415801561113f573d6000803e3d6000fd5b50505050505050565b604051630a5515e360e01b815265ffffffffffff8216600482015260009073__$77001f4f990daf096ecb913067ed8000fe$__90630a5515e390602401602060405180830381865af41580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613dc9565b60006111d1816131a9565b6001600160a01b03821661121d5760405163eac0d38960e01b81526020600482015260126024820152711c995b185e595c94995dd85c991cd41bdbdb60721b60448201526064016110c7565b81611226613174565b60240180546001600160a01b0319166001600160a01b03929092169190911790555050565b600073__$b124684ac4fa46e1989835813ce83d3b15$__630f5f97116040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba9190613db0565b905090565b604051630fcc308160e01b815260609073__$b124684ac4fa46e1989835813ce83d3b15$__90630fcc3081906112f9908590600401613a1b565b600060405180830381865af4158015611316573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ecd9190810190613df2565b600073__$0e8b36318fa73dc05ec794fcc728ddc0b2$__6311efbf616040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b60006113936131b3565b805490915060ff600160401b82041615906001600160401b03166000811580156113ba5750825b90506000826001600160401b031660011480156113d65750303b155b9050811580156113e4575080155b156114025760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561142b57845460ff60401b1916600160401b1785555b600061143a6020880188613851565b6001600160a01b0316036114795760405163eac0d38960e01b815260206004820152600560248201526430b236b4b760d91b60448201526064016110c7565b600061148b6080880160608901613851565b6001600160a01b0316036114ce5760405163eac0d38960e01b81526020600482015260096024820152683119ba392a37b5b2b760b91b60448201526064016110c7565b60006114e060a0880160808901613851565b6001600160a01b0316036115235760405163eac0d38960e01b81526020600482015260096024820152683b37ba19aa37b5b2b760b91b60448201526064016110c7565b600061153560c0880160a08901613851565b6001600160a01b0316036115775760405163eac0d38960e01b8152602060048201526008602482015267747265617375727960c01b60448201526064016110c7565b600061158b61020088016101e08901613851565b6001600160a01b0316036115b25760405163eac0d38960e01b81526004016110c790613e5f565b6115ba6131d7565b6115c26131d7565b6115ca6131df565b6115e160006115dc6020890189613851565b6131ef565b506116046000805160206142588339815191526115dc6040890160208a01613851565b506116276000805160206142388339815191526115dc6060890160408a01613851565b506000611632613174565b60c0880135600182015560e0880135600282015590506116586080880160608901613851565b6004820180546001600160a01b0319166001600160a01b039290921691909117905561168a60a0880160808901613851565b6005820180546001600160a01b0319166001600160a01b03929092169190911790556116bc60c0880160a08901613851565b6006820180546001600160a01b0319166001600160a01b039290921691909117905561010087013560138201556101208701356014820155610140870135601e820155610160870135602282015561018087013560178201556101a087013560118201556117326101e088016101c08901613851565b6025820180546001600160a01b0319166001600160a01b039290921691909117905561176661020088016101e08901613851565b6023820180546001600160a01b0319166001600160a01b039290921691909117905561179a61022088016102008901613851565b6024820180546001600160a01b0319166001600160a01b03929092169190911790556117cc60a0880160808901613851565b6001600160a01b0316635c19a95c306040518263ffffffff1660e01b81526004016117f79190613a1b565b600060405180830381600087803b15801561181157600080fd5b505af1158015611825573d6000803e3d6000fd5b5061183a925050506080880160608901613851565b6001600160a01b031663095ea7b361185860a08a0160808b01613851565b6000196040518363ffffffff1660e01b8152600401611878929190613e8a565b6020604051808303816000875af1158015611897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bb9190613ea3565b5050831561190357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600080516020614238833981519152611923816131a9565b811580611931575061271082115b1561194f576040516305519d6f60e51b81526004016110c790613ec0565b81611958613174565b600201555050565b600061196a613174565b336000908152601a8201602052604090205490915060ff16158061199f5750336000908152601b8201602052604090205460ff165b156119aa57336110ad565b60405163235659f960e21b815273__$20840a81c37bbab58fd2611bc1a03caf3b$__90638d5967e4906119eb9033908a908a908a908a908a90600401613f1b565b60006040518083038186803b158015611a0357600080fd5b505af4158015611a17573d6000803e3d6000fd5b50505050505050505050565b6040516318be49d960e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__906318be49d990611a5f9086908690600401613e8a565b602060405180830381865af4158015611a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613f63565b9392505050565b6000611ab1613174565b336000908152601a8201602052604090205490915060ff161580611ae65750336000908152601b8201602052604090205460ff165b15611af157336110ad565b60405163fdf6b37560e01b815273__$b124684ac4fa46e1989835813ce83d3b15$__9063fdf6b37590611b28903390600401613a1b565b60006040518083038186803b158015611b4057600080fd5b505af4158015611b54573d6000803e3d6000fd5b5050505050565b604051632246f2db60e01b815260009073__$20840a81c37bbab58fd2611bc1a03caf3b$__90632246f2db90611b979086908690600401613e8a565b602060405180830381865af4158015611bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613ea3565b600073__$0e8b36318fa73dc05ec794fcc728ddc0b2$__6316a39d5583611bfd613290565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015b602060405180830381865af4158015611c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613ea3565b600080611c6e613337565b60009384526020525050604090206001015490565b60405163094f6f2960e21b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__9063253dbca490611cbf9086908690600401613e8a565b602060405180830381865af4158015611cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613db0565b611d0861313e565b73__$85fe82692a6d488d4ee73d3524f68c6ee3$__63c6066272335b836040518363ffffffff1660e01b8152600401611d42929190613e8a565b60006040518083038186803b158015611d5a57600080fd5b505af4158015611d6e573d6000803e3d6000fd5b50505050611d7a613198565b50565b611d8682611c63565b611d8f816131a9565b611d9983836131ef565b50505050565b6040516330ccebb560e01b815260009073__$b124684ac4fa46e1989835813ce83d3b15$__906330ccebb590611dd9908590600401613a1b565b602060405180830381865af4158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613f80565b604051630cac83cd60e21b815260609073__$b124684ac4fa46e1989835813ce83d3b15$__906332b20f34906112f9908590600401613a1b565b604051630cf31d4d60e21b815260009073__$b124684ac4fa46e1989835813ce83d3b15$__906333cc753490611c22908590600401613a1b565b600073__$b124684ac4fa46e1989835813ce83d3b15$__6333d0e2e46040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b6001600160a01b0381163314611f025760405163334bd91960e11b815260040160405180910390fd5b611f0c828261335b565b505050565b604051630e2b0a6960e21b815260009073__$b124684ac4fa46e1989835813ce83d3b15$__906338ac29a490611026908590600401613a1b565b6040516338b3ce1360e01b815260009073__$20840a81c37bbab58fd2611bc1a03caf3b$__906338b3ce1390611f879086908690600401613e8a565b602060405180830381865af4158015611fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613f80565b604051630e53e11560e21b815260009073__$20840a81c37bbab58fd2611bc1a03caf3b$__9063394f845490611b979086908690600401613e8a565b600073__$0e8b36318fa73dc05ec794fcc728ddc0b2$__633b103ee56040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b600061205a816131a9565b6001600160a01b0382166120815760405163eac0d38960e01b81526004016110c790613e5f565b8161208a613174565b60230180546001600160a01b0319166001600160a01b03929092169190911790555050565b604051633e28391d60e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__90633e28391d90611c22908590600401613a1b565b6120f1613174565b602501546001600160a01b0316336001600160a01b031614612128573360405163d86ad9cf60e01b81526004016110c79190613a1b565b6040516378603c2f60e01b815273__$0e8b36318fa73dc05ec794fcc728ddc0b2$__906378603c2f9061111390869086908690600401613f9d565b600061216d613174565b6001600160a01b039092166000908152601c9290920160205250604090205490565b604051630229c94f60e51b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063453929e0906121c9908590600401613a1b565b602060405180830381865af41580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613f63565b6122126133d3565b61221b82613478565b610fe88282613490565b60405163516bb8a360e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063516bb8a390611b979086908690600401613e8a565b600061226b613544565b5060008051602061427883398151915290565b60405162a60abd60e71b815260009073__$77001f4f990daf096ecb913067ed8000fe$__906353055e8090611b979086908690600401613e8a565b600073__$85fe82692a6d488d4ee73d3524f68c6ee3$__6356a3b5fa6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b60405163589444bb60e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063589444bb906121c9908590600401613a1b565b600080516020614238833981519152612356816131a9565b8161235f613174565b601e01555050565b6000612371613174565b336000908152601a8201602052604090205490915060ff1615806123a65750336000908152601b8201602052604090205460ff165b156123b157336110ad565b73__$b124684ac4fa46e1989835813ce83d3b15$__63de9e9881336123d4613290565b86866040518563ffffffff1660e01b81526004016111139493929190613fe7565b604051636fb7f7eb60e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__90636fb7f7eb90611026908590600401613a1b565b600080516020614238833981519152612447816131a9565b81600003612494576040516305519d6f60e51b815260206004820152601960248201527806665654c6f636b506572696f64206d757374206265203e203603c1b60448201526064016110c7565b8161249d613174565b601301555050565b60006124af613174565b336000908152601a8201602052604090205490915060ff1615806124e45750336000908152601b8201602052604090205460ff165b156124ef57336110ad565b604051631c26056560e01b815273__$b124684ac4fa46e1989835813ce83d3b15$__90631c2605659061111390339087908790600401614019565b600080516020614238833981519152612542816131a9565b60405163257c6bdf60e11b81526001600160a01b038516600482015260248101849052821515604482015273__$3f9f311038b7d0d2fa7787f039555a68da$__90634af8d7be9060640160006040518083038186803b1580156125a457600080fd5b505af41580156125b8573d6000803e3d6000fd5b5050604051633ea053eb60e01b815273__$b124684ac4fa46e1989835813ce83d3b15$__9250633ea053eb91506125f3908790600401613a1b565b60006040518083038186803b15801561260b57600080fd5b505af415801561261f573d6000803e3d6000fd5b5050505050505050565b6000612634816131a9565b6001600160a01b03821661267a5760405163eac0d38960e01b815260206004820152600c60248201526b766f7465725265776172647360a01b60448201526064016110c7565b81612683613174565b60250180546001600160a01b0319166001600160a01b03929092169190911790555050565b6040516303d3b32360e51b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__90637a76646090611026908590600401613a1b565b604051631ec4ef5360e21b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__90637b13bd4c90611c22908590600401613a1b565b600080516020614238833981519152612734816131a9565b811580612742575061271082115b15612760576040516305519d6f60e51b81526004016110c790613ec0565b81612769613174565b601701555050565b600080516020614238833981519152612789816131a9565b816000036127d7576040516305519d6f60e51b815260206004820152601a60248201527907265706f7274496e74657276616c206d757374206265203e20360341b60448201526064016110c7565b816127e0613174565b602201555050565b60008073__$3f9f311038b7d0d2fa7787f039555a68da$__6389c192ba85856040518363ffffffff1660e01b8152600401612824929190613e8a565b6040805180830381865af4158015612840573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612864919061403e565b915091505b9250929050565b600080516020614238833981519152612888816131a9565b816000036128d0576040516305519d6f60e51b815260206004820152601460248201527306d696e5374616b65206d757374206265203e20360641b60448201526064016110c7565b816128d9613174565b600101555050565b60006128eb613174565b60110154905090565b604051631224958960e31b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__90639124ac4890611026908590600401613a1b565b600080612939613337565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b61296c61313e565b6040516336a2fa1960e21b815273__$77001f4f990daf096ecb913067ed8000fe$__9063da8be864906129a3903390600401613a1b565b60006040518083038186803b1580156129bb57600080fd5b505af41580156129cf573d6000803e3d6000fd5b505050506129db613198565b565b60405163960efad960e01b815260009073__$3f9f311038b7d0d2fa7787f039555a68da$__9063960efad990611026908590600401613a1b565b612a1f61313e565b604051631e23637160e31b815273__$85fe82692a6d488d4ee73d3524f68c6ee3$__9063f11b1b8890612a5c903390879087908790600401613fe7565b60006040518083038186803b158015612a7457600080fd5b505af4158015612a88573d6000803e3d6000fd5b50505050611f0c613198565b60405163506b90db60e11b815260009073__$b124684ac4fa46e1989835813ce83d3b15$__9063a0d721b690611c22908590600401613a1b565b6040516353127ad560e11b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__9063a624f5aa90611c22908590600401613a1b565b60405163ab9d80f160e01b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__9063ab9d80f190611026908590600401613a1b565b6000612b4d816131a9565b60405163562a806760e11b815273__$77001f4f990daf096ecb913067ed8000fe$__9063ac5500ce90611113908690869060040161406c565b600080516020614238833981519152612b9e816131a9565b612710821115612bf1576040516305519d6f60e51b815260206004820152601e60248201527f66656550657263656e74616765206d757374206265203c3d203130303030000060448201526064016110c7565b81612bfa613174565b601401555050565b60405163af00578f60e01b815273__$3f9f311038b7d0d2fa7787f039555a68da$__9063af00578f906125f39087908790879087906004016140ba565b60405163b9c64fcd60e01b815260009073__$0e8b36318fa73dc05ec794fcc728ddc0b2$__9063b9c64fcd90611cbf9086908690600401613e8a565b612c8361313e565b6000612c8d613174565b336000908152601a8201602052604090205490915060ff161580612cc25750336000908152601b8201602052604090205460ff165b15612ccd57336110ad565b73__$85fe82692a6d488d4ee73d3524f68c6ee3$__63085655df335b846040518363ffffffff1660e01b8152600401612d07929190613e8a565b60006040518083038186803b158015612d1f57600080fd5b505af4158015612d33573d6000803e3d6000fd5b5050505050611d7a613198565b60405163c61c06e760e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063c61c06e790611cbf9086908690600401613e8a565b60405163c7329cf760e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063c7329cf790611cbf9086908690600401613e8a565b600073__$3f9f311038b7d0d2fa7787f039555a68da$__63c81bdf206040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b604051630cb5bfd760e41b815260009073__$20840a81c37bbab58fd2611bc1a03caf3b$__9063cb5bfd7090611cbf9086908690600401613e8a565b612e4882611c63565b612e51816131a9565b611d99838361335b565b612e6361313e565b73__$77001f4f990daf096ecb913067ed8000fe$__6316a6fa2633611d24565b612e8b61313e565b73__$77001f4f990daf096ecb913067ed8000fe$__630132f6c033611d24565b612eb361313e565b6000612ebd613174565b336000908152601a8201602052604090205490915060ff161580612ef25750336000908152601b8201602052604090205460ff165b15612efd57336110ad565b73__$85fe82692a6d488d4ee73d3524f68c6ee3$__636374299e33612ce9565b60608073__$20840a81c37bbab58fd2611bc1a03caf3b$__63f232dd6085856040518363ffffffff1660e01b8152600401612f59929190613e8a565b600060405180830381865af4158015612f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128649190810190614160565b60405163f3a8465560e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063f3a8465590611a5f9086908690600401613e8a565b612fe261313e565b6000612fec613174565b336000908152601a8201602052604090205490915060ff1615806130215750336000908152601b8201602052604090205460ff165b1561302c57336110ad565b73__$0e8b36318fa73dc05ec794fcc728ddc0b2$__63531a62ea3384613050613290565b6040518463ffffffff1660e01b8152600401612d0793929190613f9d565b600080516020614238833981519152613086816131a9565b816000036130e2576040516305519d6f60e51b815260206004820152602260248201527f707265666572656e63654375746f6666506572696f64206d757374206265203e604482015261020360f41b60648201526084016110c7565b816130eb613174565b601101555050565b600073__$85fe82692a6d488d4ee73d3524f68c6ee3$__63fe35505b6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b600061314861358d565b80549091506001190161316e57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b7f2556f61b975c74e3f128bbc478158bc306f6253c34d95084531f202ce74e570090565b60006131a261358d565b6001905550565b611d7a81336135b1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b6129db6135dc565b6131e76135dc565b6129db613601565b6000806131fa613337565b9050613206848461292e565b613286576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561323c3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610ecd565b6000915050610ecd565b60008061329b613174565b60238101549091506001600160a01b03166132b857600091505090565b8060230160009054906101000a90046001600160a01b03166001600160a01b0316639cbe5efd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561330d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133319190613db0565b91505090565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b600080613366613337565b9050613372848461292e565b15613286576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610ecd565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061345a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661344e600080516020614278833981519152546001600160a01b031690565b6001600160a01b031614155b156129db5760405163703e46dd60e11b815260040160405180910390fd5b600080516020614258833981519152610fe8816131a9565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156134ea575060408051601f3d908101601f191682019092526134e791810190613db0565b60015b6135095781604051634c9c8ce360e01b81526004016110c79190613a1b565b600080516020614278833981519152811461353a57604051632a87526960e21b8152600481018290526024016110c7565b611f0c8383613609565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146129db5760405163703e46dd60e11b815260040160405180910390fd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b6135bb828261292e565b610fe857808260405163e2517d3f60e01b81526004016110c7929190613e8a565b6135e461365f565b6129db57604051631afcd79f60e31b815260040160405180910390fd5b6131986135dc565b61361282613679565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561365757611f0c82826136d5565b610fe861374b565b60006136696131b3565b54600160401b900460ff16919050565b806001600160a01b03163b6000036136a65780604051634c9c8ce360e01b81526004016110c79190613a1b565b60008051602061427883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516136f2919061421b565b600060405180830381855af49150503d806000811461372d576040519150601f19603f3d011682016040523d82523d6000602084013e613732565b606091505b509150915061374285838361376a565b95945050505050565b34156129db5760405163b398979f60e01b815260040160405180910390fd5b60608261377f5761377a826137bd565b611aa0565b815115801561379657506001600160a01b0384163b155b156137b65783604051639996b31560e01b81526004016110c79190613a1b565b5092915050565b8051156137cd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000602082840312156137f857600080fd5b81356001600160e01b031981168114611aa057600080fd5b6001600160a01b0381168114611d7a57600080fd5b6000806040838503121561383857600080fd5b823561384381613810565b946020939093013593505050565b60006020828403121561386357600080fd5b8135611aa081613810565b60ff81168114611d7a57600080fd5b6000806040838503121561389057600080fd5b8235915060208301356138a28161386e565b809150509250929050565b6000602082840312156138bf57600080fd5b813565ffffffffffff81168114611aa057600080fd5b60005b838110156138f05781810151838201526020016138d8565b50506000910152565b60208152600082518060208401526139188160408501602087016138d5565b601f01601f19169190910160400192915050565b6000610220828403121561393f57600080fd5b50919050565b60006020828403121561395757600080fd5b5035919050565b60008083601f84011261397057600080fd5b5081356001600160401b0381111561398757600080fd5b6020830191508360208260051b850101111561286957600080fd5b6000806000806000606086880312156139ba57600080fd5b8535945060208601356001600160401b03808211156139d857600080fd5b6139e489838a0161395e565b909650945060408801359150808211156139fd57600080fd5b50613a0a8882890161395e565b969995985093965092949392505050565b6001600160a01b0391909116815260200190565b60008060408385031215613a4257600080fd5b8235915060208301356138a281613810565b600080600060608486031215613a6957600080fd5b8335613a7481613810565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ac757613ac7613a89565b604052919050565b60006001600160401b03821115613ae857613ae8613a89565b50601f01601f191660200190565b60008060408385031215613b0957600080fd5b8235613b1481613810565b915060208301356001600160401b03811115613b2f57600080fd5b8301601f81018513613b4057600080fd5b8035613b53613b4e82613acf565b613a9f565b818152866020838501011115613b6857600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008083601f840112613b9a57600080fd5b5081356001600160401b03811115613bb157600080fd5b60208301915083602082850101111561286957600080fd5b60008060208385031215613bdc57600080fd5b82356001600160401b03811115613bf257600080fd5b613bfe85828601613b88565b90969095509350505050565b8015158114611d7a57600080fd5b600080600060608486031215613c2d57600080fd5b8335613c3881613810565b9250602084013591506040840135613c4f81613c0a565b809150509250925092565b600080600060408486031215613c6f57600080fd5b8335925060208401356001600160401b03811115613c8c57600080fd5b613c9886828701613b88565b9497909650939450505050565b60008060208385031215613cb857600080fd5b82356001600160401b03811115613cce57600080fd5b613bfe8582860161395e565b60008060008060608587031215613cf057600080fd5b8435613cfb81613810565b93506020850135925060408501356001600160401b03811115613d1d57600080fd5b613d298782880161395e565b95989497509550505050565b604080825283519082018190526000906020906060840190828701845b82811015613d6e57815184529284019290840190600101613d52565b5050508381038285015284518082528583019183019060005b81811015613da357835183529284019291840191600101613d87565b5090979650505050505050565b600060208284031215613dc257600080fd5b5051919050565b600060208284031215613ddb57600080fd5b81516001600160d01b0381168114611aa057600080fd5b600060208284031215613e0457600080fd5b81516001600160401b03811115613e1a57600080fd5b8201601f81018413613e2b57600080fd5b8051613e39613b4e82613acf565b818152856020838501011115613e4e57600080fd5b6137428260208301602086016138d5565b60208082526011908201527078416c6c6f636174696f6e566f74696e6760781b604082015260600190565b6001600160a01b03929092168252602082015260400190565b600060208284031215613eb557600080fd5b8151611aa081613c0a565b6020808252600f908201526e06d75737420626520312d313030303608c1b604082015260600190565b81835260006001600160fb1b03831115613f0257600080fd5b8260051b80836020870137939093016020019392505050565b60018060a01b0387168152856020820152608060408201526000613f43608083018688613ee9565b8281036060840152613f56818587613ee9565b9998505050505050505050565b600060208284031215613f7557600080fd5b8151611aa081613810565b600060208284031215613f9257600080fd5b8151611aa08161386e565b6001600160a01b039390931683526020830191909152604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038516815283602082015260606040820152600061400f606083018486613fbe565b9695505050505050565b6001600160a01b03841681526040602082018190526000906137429083018486613fbe565b6000806040838503121561405157600080fd5b825161405c81613c0a565b6020939093015192949293505050565b60208082528181018390526000908460408401835b868110156140af57823561409481613810565b6001600160a01b031682529183019190830190600101614081565b509695505050505050565b60018060a01b038516815283602082015260606040820152600061400f606083018486613ee9565b60006001600160401b038211156140fb576140fb613a89565b5060051b60200190565b600082601f83011261411657600080fd5b81516020614126613b4e836140e2565b82815260059290921b8401810191818101908684111561414557600080fd5b8286015b848110156140af5780518352918301918301614149565b6000806040838503121561417357600080fd5b82516001600160401b038082111561418a57600080fd5b818501915085601f83011261419e57600080fd5b815160206141ae613b4e836140e2565b82815260059290921b840181019181810190898411156141cd57600080fd5b948201945b838610156141eb578551825294820194908201906141d2565b9188015191965090935050508082111561420457600080fd5b5061421185828601614105565b9150509250929050565b6000825161422d8184602087016138d5565b919091019291505056fe71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212200e58aa149523130f9ad9cefc3859cb8220e46b0e5ffa2dd7b0c4132c0d64dcf264736f6c63430008140033",
  "deployedBytecode": "0x6080604052600436106103c55760003560e01c806301ffc9a7146103ca578063026e402b146103ff578063073ea6ae1461042157806309e07b031461044f5780630a5515e31461046f5780630dd8614c146104a75780630f5f9711146104c75780630fcc3081146104dc57806311efbf61146105095780631410e22c1461051e5780631598c5111461053e578063183b44f11461055e57806318be49d91461057e57806318ff7536146105ab5780632246f2db146105c057806323b343cf146105e0578063248a9ca314610600578063253dbca41461062057806325d5971f146106405780632f2ff15d1461066057806330ccebb51461068057806332b20f34146106b257806333cc7534146106d257806333d0e2e4146106f257806336568abe1461070757806338ac29a41461072757806338b3ce1314610747578063394f8454146107675780633b103ee5146107875780633d47fe941461079c5780633e28391d146107bc57806341556405146107dc57806343028df4146107fc578063453929e01461081c5780634f1ef2861461083c578063516bb8a31461084f57806352d1902d1461086f57806353055e801461088457806354fd4d50146108a457806356a3b5fa146108ce578063589444bb146108e35780635e27c95c14610903578063635ac1ed146109235780636fb7f7eb1461094357806374c0e76814610963578063750521f51461098357806376880ddc146109a35780637a4cce6d146109c35780637a766460146109e35780637b13bd4c14610a035780637b3d0cb514610a2357806381ec292f14610a4357806389c192ba14610a635780638c80fd9014610a9a5780638e6bdcc514610aba5780639124ac4814610acf57806391d1485414610aef57806392ab89bb14610b0f578063960efad914610b24578063a00fd3c814610b44578063a0d721b614610b64578063a217fddf14610b84578063a624f5aa14610b99578063ab9d80f114610bb9578063ac5500ce14610bd9578063ad3cb1cc14610bf9578063ae06c1b714610c2a578063af00578f14610c4a578063b9c64fcd14610c6a578063c383061814610c8a578063c61c06e714610caa578063c7329cf714610cca578063c81bdf2014610cea578063cb5bfd7014610cff578063d547741f14610d1f578063dbd3aa8a14610d3f578063e1f1c4a714610d5f578063e2d4c0d614610d75578063eb4f16b514610d95578063f232dd6014610db5578063f36c8f5c14610de3578063f3a8465514610e05578063f667526a14610e25578063f72c0d8b14610e45578063f8af3bf514610e67578063fe35505b14610e87575b600080fd5b3480156103d657600080fd5b506103ea6103e53660046137e6565b610e9c565b60405190151581526020015b60405180910390f35b34801561040b57600080fd5b5061041f61041a366004613825565b610ed3565b005b34801561042d57600080fd5b5061044161043c366004613851565b610fec565b6040519081526020016103f6565b34801561045b57600080fd5b5061041f61046a36600461387d565b611067565b34801561047b57600080fd5b5061048f61048a3660046138ad565b611148565b6040516001600160d01b0390911681526020016103f6565b3480156104b357600080fd5b5061041f6104c2366004613851565b6111c6565b3480156104d357600080fd5b5061044161124b565b3480156104e857600080fd5b506104fc6104f7366004613851565b6112bf565b6040516103f691906138f9565b34801561051557600080fd5b5061044161133e565b34801561052a57600080fd5b5061041f61053936600461392c565b611389565b34801561054a57600080fd5b5061041f610559366004613945565b61190b565b34801561056a57600080fd5b5061041f6105793660046139a2565b611960565b34801561058a57600080fd5b5061059e610599366004613825565b611a23565b6040516103f69190613a1b565b3480156105b757600080fd5b5061041f611aa7565b3480156105cc57600080fd5b506103ea6105db366004613825565b611b5b565b3480156105ec57600080fd5b506103ea6105fb366004613945565b611bd8565b34801561060c57600080fd5b5061044161061b366004613945565b611c63565b34801561062c57600080fd5b5061044161063b366004613825565b611c83565b34801561064c57600080fd5b5061041f61065b366004613945565b611d00565b34801561066c57600080fd5b5061041f61067b366004613a2f565b611d7d565b34801561068c57600080fd5b506106a061069b366004613851565b611d9f565b60405160ff90911681526020016103f6565b3480156106be57600080fd5b506104fc6106cd366004613851565b611e1a565b3480156106de57600080fd5b506103ea6106ed366004613851565b611e54565b3480156106fe57600080fd5b50610441611e8e565b34801561071357600080fd5b5061041f610722366004613a2f565b611ed9565b34801561073357600080fd5b50610441610742366004613851565b611f11565b34801561075357600080fd5b506106a0610762366004613825565b611f4b565b34801561077357600080fd5b506103ea610782366004613825565b611fc8565b34801561079357600080fd5b50610441612004565b3480156107a857600080fd5b5061041f6107b7366004613851565b61204f565b3480156107c857600080fd5b506103ea6107d7366004613851565b6120af565b3480156107e857600080fd5b5061041f6107f7366004613a54565b6120e9565b34801561080857600080fd5b50610441610817366004613851565b612163565b34801561082857600080fd5b5061059e610837366004613851565b61218f565b61041f61084a366004613af6565b61220a565b34801561085b57600080fd5b506103ea61086a366004613825565b612225565b34801561087b57600080fd5b50610441612261565b34801561089057600080fd5b506103ea61089f366004613825565b61227e565b3480156108b057600080fd5b506040805180820190915260018152603160f81b60208201526104fc565b3480156108da57600080fd5b506104416122b9565b3480156108ef57600080fd5b5061059e6108fe366004613851565b612304565b34801561090f57600080fd5b5061041f61091e366004613945565b61233e565b34801561092f57600080fd5b5061041f61093e366004613bc9565b612367565b34801561094f57600080fd5b5061044161095e366004613851565b6123f5565b34801561096f57600080fd5b5061041f61097e366004613945565b61242f565b34801561098f57600080fd5b5061041f61099e366004613bc9565b6124a5565b3480156109af57600080fd5b5061041f6109be366004613c18565b61252a565b3480156109cf57600080fd5b5061041f6109de366004613851565b612629565b3480156109ef57600080fd5b506104416109fe366004613851565b6126a8565b348015610a0f57600080fd5b506103ea610a1e366004613851565b6126e2565b348015610a2f57600080fd5b5061041f610a3e366004613945565b61271c565b348015610a4f57600080fd5b5061041f610a5e366004613945565b612771565b348015610a6f57600080fd5b50610a83610a7e366004613825565b6127e8565b6040805192151583526020830191909152016103f6565b348015610aa657600080fd5b5061041f610ab5366004613945565b612870565b348015610ac657600080fd5b506104416128e1565b348015610adb57600080fd5b50610441610aea366004613851565b6128f4565b348015610afb57600080fd5b506103ea610b0a366004613a2f565b61292e565b348015610b1b57600080fd5b5061041f612964565b348015610b3057600080fd5b50610441610b3f366004613851565b6129dd565b348015610b5057600080fd5b5061041f610b5f366004613c5a565b612a17565b348015610b7057600080fd5b506103ea610b7f366004613851565b612a94565b348015610b9057600080fd5b50610441600081565b348015610ba557600080fd5b506103ea610bb4366004613851565b612ace565b348015610bc557600080fd5b50610441610bd4366004613851565b612b08565b348015610be557600080fd5b5061041f610bf4366004613ca5565b612b42565b348015610c0557600080fd5b506104fc604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610c3657600080fd5b5061041f610c45366004613945565b612b86565b348015610c5657600080fd5b5061041f610c65366004613cda565b612c02565b348015610c7657600080fd5b50610441610c85366004613825565b612c3f565b348015610c9657600080fd5b5061041f610ca5366004613945565b612c7b565b348015610cb657600080fd5b50610441610cc5366004613825565b612d40565b348015610cd657600080fd5b50610441610ce5366004613825565b612d7c565b348015610cf657600080fd5b50610441612db8565b348015610d0b57600080fd5b50610441610d1a366004613825565b612e03565b348015610d2b57600080fd5b5061041f610d3a366004613a2f565b612e3f565b348015610d4b57600080fd5b5061041f610d5a366004613945565b612e5b565b348015610d6b57600080fd5b5061044161271081565b348015610d8157600080fd5b5061041f610d90366004613945565b612e83565b348015610da157600080fd5b5061041f610db0366004613945565b612eab565b348015610dc157600080fd5b50610dd5610dd0366004613825565b612f1d565b6040516103f6929190613d35565b348015610def57600080fd5b5061044160008051602061423883398151915281565b348015610e1157600080fd5b5061059e610e20366004613825565b612f9e565b348015610e3157600080fd5b5061041f610e40366004613945565b612fda565b348015610e5157600080fd5b5061044160008051602061425883398151915281565b348015610e7357600080fd5b5061041f610e82366004613945565b61306e565b348015610e9357600080fd5b506104416130f3565b60006001600160e01b03198216637965db0b60e01b1480610ecd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610edb61313e565b73__$77001f4f990daf096ecb913067ed8000fe$__63c26f3acf336040516001600160e01b031960e084901b1681526001600160a01b03918216600482015290851660248201526044810184905260640160006040518083038186803b158015610f4457600080fd5b505af4158015610f58573d6000803e3d6000fd5b505050506000610f66613174565b60238101549091506001600160a01b031615610fdf5760238101546001600160a01b031663673fc724336040518263ffffffff1660e01b8152600401610fac9190613a1b565b600060405180830381600087803b158015610fc657600080fd5b505af1158015610fda573d6000803e3d6000fd5b505050505b50610fe8613198565b5050565b60405163039f535760e11b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063073ea6ae90611026908590600401613a1b565b602060405180830381865af4158015611043573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613db0565b6000611071613174565b336000908152601a8201602052604090205490915060ff1615806110a65750336000908152601b8201602052604090205460ff165b156110d057335b60405163bfc6c33760e01b81526004016110c79190613a1b565b60405180910390fd5b604051633eccd70d60e21b81523360048201526024810184905260ff8316604482015273__$20840a81c37bbab58fd2611bc1a03caf3b$__9063fb335c34906064015b60006040518083038186803b15801561112b57600080fd5b505af415801561113f573d6000803e3d6000fd5b50505050505050565b604051630a5515e360e01b815265ffffffffffff8216600482015260009073__$77001f4f990daf096ecb913067ed8000fe$__90630a5515e390602401602060405180830381865af41580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613dc9565b60006111d1816131a9565b6001600160a01b03821661121d5760405163eac0d38960e01b81526020600482015260126024820152711c995b185e595c94995dd85c991cd41bdbdb60721b60448201526064016110c7565b81611226613174565b60240180546001600160a01b0319166001600160a01b03929092169190911790555050565b600073__$b124684ac4fa46e1989835813ce83d3b15$__630f5f97116040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba9190613db0565b905090565b604051630fcc308160e01b815260609073__$b124684ac4fa46e1989835813ce83d3b15$__90630fcc3081906112f9908590600401613a1b565b600060405180830381865af4158015611316573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ecd9190810190613df2565b600073__$0e8b36318fa73dc05ec794fcc728ddc0b2$__6311efbf616040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b60006113936131b3565b805490915060ff600160401b82041615906001600160401b03166000811580156113ba5750825b90506000826001600160401b031660011480156113d65750303b155b9050811580156113e4575080155b156114025760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561142b57845460ff60401b1916600160401b1785555b600061143a6020880188613851565b6001600160a01b0316036114795760405163eac0d38960e01b815260206004820152600560248201526430b236b4b760d91b60448201526064016110c7565b600061148b6080880160608901613851565b6001600160a01b0316036114ce5760405163eac0d38960e01b81526020600482015260096024820152683119ba392a37b5b2b760b91b60448201526064016110c7565b60006114e060a0880160808901613851565b6001600160a01b0316036115235760405163eac0d38960e01b81526020600482015260096024820152683b37ba19aa37b5b2b760b91b60448201526064016110c7565b600061153560c0880160a08901613851565b6001600160a01b0316036115775760405163eac0d38960e01b8152602060048201526008602482015267747265617375727960c01b60448201526064016110c7565b600061158b61020088016101e08901613851565b6001600160a01b0316036115b25760405163eac0d38960e01b81526004016110c790613e5f565b6115ba6131d7565b6115c26131d7565b6115ca6131df565b6115e160006115dc6020890189613851565b6131ef565b506116046000805160206142588339815191526115dc6040890160208a01613851565b506116276000805160206142388339815191526115dc6060890160408a01613851565b506000611632613174565b60c0880135600182015560e0880135600282015590506116586080880160608901613851565b6004820180546001600160a01b0319166001600160a01b039290921691909117905561168a60a0880160808901613851565b6005820180546001600160a01b0319166001600160a01b03929092169190911790556116bc60c0880160a08901613851565b6006820180546001600160a01b0319166001600160a01b039290921691909117905561010087013560138201556101208701356014820155610140870135601e820155610160870135602282015561018087013560178201556101a087013560118201556117326101e088016101c08901613851565b6025820180546001600160a01b0319166001600160a01b039290921691909117905561176661020088016101e08901613851565b6023820180546001600160a01b0319166001600160a01b039290921691909117905561179a61022088016102008901613851565b6024820180546001600160a01b0319166001600160a01b03929092169190911790556117cc60a0880160808901613851565b6001600160a01b0316635c19a95c306040518263ffffffff1660e01b81526004016117f79190613a1b565b600060405180830381600087803b15801561181157600080fd5b505af1158015611825573d6000803e3d6000fd5b5061183a925050506080880160608901613851565b6001600160a01b031663095ea7b361185860a08a0160808b01613851565b6000196040518363ffffffff1660e01b8152600401611878929190613e8a565b6020604051808303816000875af1158015611897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bb9190613ea3565b5050831561190357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600080516020614238833981519152611923816131a9565b811580611931575061271082115b1561194f576040516305519d6f60e51b81526004016110c790613ec0565b81611958613174565b600201555050565b600061196a613174565b336000908152601a8201602052604090205490915060ff16158061199f5750336000908152601b8201602052604090205460ff165b156119aa57336110ad565b60405163235659f960e21b815273__$20840a81c37bbab58fd2611bc1a03caf3b$__90638d5967e4906119eb9033908a908a908a908a908a90600401613f1b565b60006040518083038186803b158015611a0357600080fd5b505af4158015611a17573d6000803e3d6000fd5b50505050505050505050565b6040516318be49d960e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__906318be49d990611a5f9086908690600401613e8a565b602060405180830381865af4158015611a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613f63565b9392505050565b6000611ab1613174565b336000908152601a8201602052604090205490915060ff161580611ae65750336000908152601b8201602052604090205460ff165b15611af157336110ad565b60405163fdf6b37560e01b815273__$b124684ac4fa46e1989835813ce83d3b15$__9063fdf6b37590611b28903390600401613a1b565b60006040518083038186803b158015611b4057600080fd5b505af4158015611b54573d6000803e3d6000fd5b5050505050565b604051632246f2db60e01b815260009073__$20840a81c37bbab58fd2611bc1a03caf3b$__90632246f2db90611b979086908690600401613e8a565b602060405180830381865af4158015611bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613ea3565b600073__$0e8b36318fa73dc05ec794fcc728ddc0b2$__6316a39d5583611bfd613290565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015b602060405180830381865af4158015611c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613ea3565b600080611c6e613337565b60009384526020525050604090206001015490565b60405163094f6f2960e21b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__9063253dbca490611cbf9086908690600401613e8a565b602060405180830381865af4158015611cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613db0565b611d0861313e565b73__$85fe82692a6d488d4ee73d3524f68c6ee3$__63c6066272335b836040518363ffffffff1660e01b8152600401611d42929190613e8a565b60006040518083038186803b158015611d5a57600080fd5b505af4158015611d6e573d6000803e3d6000fd5b50505050611d7a613198565b50565b611d8682611c63565b611d8f816131a9565b611d9983836131ef565b50505050565b6040516330ccebb560e01b815260009073__$b124684ac4fa46e1989835813ce83d3b15$__906330ccebb590611dd9908590600401613a1b565b602060405180830381865af4158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613f80565b604051630cac83cd60e21b815260609073__$b124684ac4fa46e1989835813ce83d3b15$__906332b20f34906112f9908590600401613a1b565b604051630cf31d4d60e21b815260009073__$b124684ac4fa46e1989835813ce83d3b15$__906333cc753490611c22908590600401613a1b565b600073__$b124684ac4fa46e1989835813ce83d3b15$__6333d0e2e46040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b6001600160a01b0381163314611f025760405163334bd91960e11b815260040160405180910390fd5b611f0c828261335b565b505050565b604051630e2b0a6960e21b815260009073__$b124684ac4fa46e1989835813ce83d3b15$__906338ac29a490611026908590600401613a1b565b6040516338b3ce1360e01b815260009073__$20840a81c37bbab58fd2611bc1a03caf3b$__906338b3ce1390611f879086908690600401613e8a565b602060405180830381865af4158015611fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613f80565b604051630e53e11560e21b815260009073__$20840a81c37bbab58fd2611bc1a03caf3b$__9063394f845490611b979086908690600401613e8a565b600073__$0e8b36318fa73dc05ec794fcc728ddc0b2$__633b103ee56040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b600061205a816131a9565b6001600160a01b0382166120815760405163eac0d38960e01b81526004016110c790613e5f565b8161208a613174565b60230180546001600160a01b0319166001600160a01b03929092169190911790555050565b604051633e28391d60e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__90633e28391d90611c22908590600401613a1b565b6120f1613174565b602501546001600160a01b0316336001600160a01b031614612128573360405163d86ad9cf60e01b81526004016110c79190613a1b565b6040516378603c2f60e01b815273__$0e8b36318fa73dc05ec794fcc728ddc0b2$__906378603c2f9061111390869086908690600401613f9d565b600061216d613174565b6001600160a01b039092166000908152601c9290920160205250604090205490565b604051630229c94f60e51b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063453929e0906121c9908590600401613a1b565b602060405180830381865af41580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190613f63565b6122126133d3565b61221b82613478565b610fe88282613490565b60405163516bb8a360e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063516bb8a390611b979086908690600401613e8a565b600061226b613544565b5060008051602061427883398151915290565b60405162a60abd60e71b815260009073__$77001f4f990daf096ecb913067ed8000fe$__906353055e8090611b979086908690600401613e8a565b600073__$85fe82692a6d488d4ee73d3524f68c6ee3$__6356a3b5fa6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b60405163589444bb60e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063589444bb906121c9908590600401613a1b565b600080516020614238833981519152612356816131a9565b8161235f613174565b601e01555050565b6000612371613174565b336000908152601a8201602052604090205490915060ff1615806123a65750336000908152601b8201602052604090205460ff165b156123b157336110ad565b73__$b124684ac4fa46e1989835813ce83d3b15$__63de9e9881336123d4613290565b86866040518563ffffffff1660e01b81526004016111139493929190613fe7565b604051636fb7f7eb60e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__90636fb7f7eb90611026908590600401613a1b565b600080516020614238833981519152612447816131a9565b81600003612494576040516305519d6f60e51b815260206004820152601960248201527806665654c6f636b506572696f64206d757374206265203e203603c1b60448201526064016110c7565b8161249d613174565b601301555050565b60006124af613174565b336000908152601a8201602052604090205490915060ff1615806124e45750336000908152601b8201602052604090205460ff165b156124ef57336110ad565b604051631c26056560e01b815273__$b124684ac4fa46e1989835813ce83d3b15$__90631c2605659061111390339087908790600401614019565b600080516020614238833981519152612542816131a9565b60405163257c6bdf60e11b81526001600160a01b038516600482015260248101849052821515604482015273__$3f9f311038b7d0d2fa7787f039555a68da$__90634af8d7be9060640160006040518083038186803b1580156125a457600080fd5b505af41580156125b8573d6000803e3d6000fd5b5050604051633ea053eb60e01b815273__$b124684ac4fa46e1989835813ce83d3b15$__9250633ea053eb91506125f3908790600401613a1b565b60006040518083038186803b15801561260b57600080fd5b505af415801561261f573d6000803e3d6000fd5b5050505050505050565b6000612634816131a9565b6001600160a01b03821661267a5760405163eac0d38960e01b815260206004820152600c60248201526b766f7465725265776172647360a01b60448201526064016110c7565b81612683613174565b60250180546001600160a01b0319166001600160a01b03929092169190911790555050565b6040516303d3b32360e51b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__90637a76646090611026908590600401613a1b565b604051631ec4ef5360e21b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__90637b13bd4c90611c22908590600401613a1b565b600080516020614238833981519152612734816131a9565b811580612742575061271082115b15612760576040516305519d6f60e51b81526004016110c790613ec0565b81612769613174565b601701555050565b600080516020614238833981519152612789816131a9565b816000036127d7576040516305519d6f60e51b815260206004820152601a60248201527907265706f7274496e74657276616c206d757374206265203e20360341b60448201526064016110c7565b816127e0613174565b602201555050565b60008073__$3f9f311038b7d0d2fa7787f039555a68da$__6389c192ba85856040518363ffffffff1660e01b8152600401612824929190613e8a565b6040805180830381865af4158015612840573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612864919061403e565b915091505b9250929050565b600080516020614238833981519152612888816131a9565b816000036128d0576040516305519d6f60e51b815260206004820152601460248201527306d696e5374616b65206d757374206265203e20360641b60448201526064016110c7565b816128d9613174565b600101555050565b60006128eb613174565b60110154905090565b604051631224958960e31b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__90639124ac4890611026908590600401613a1b565b600080612939613337565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b61296c61313e565b6040516336a2fa1960e21b815273__$77001f4f990daf096ecb913067ed8000fe$__9063da8be864906129a3903390600401613a1b565b60006040518083038186803b1580156129bb57600080fd5b505af41580156129cf573d6000803e3d6000fd5b505050506129db613198565b565b60405163960efad960e01b815260009073__$3f9f311038b7d0d2fa7787f039555a68da$__9063960efad990611026908590600401613a1b565b612a1f61313e565b604051631e23637160e31b815273__$85fe82692a6d488d4ee73d3524f68c6ee3$__9063f11b1b8890612a5c903390879087908790600401613fe7565b60006040518083038186803b158015612a7457600080fd5b505af4158015612a88573d6000803e3d6000fd5b50505050611f0c613198565b60405163506b90db60e11b815260009073__$b124684ac4fa46e1989835813ce83d3b15$__9063a0d721b690611c22908590600401613a1b565b6040516353127ad560e11b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__9063a624f5aa90611c22908590600401613a1b565b60405163ab9d80f160e01b815260009073__$85fe82692a6d488d4ee73d3524f68c6ee3$__9063ab9d80f190611026908590600401613a1b565b6000612b4d816131a9565b60405163562a806760e11b815273__$77001f4f990daf096ecb913067ed8000fe$__9063ac5500ce90611113908690869060040161406c565b600080516020614238833981519152612b9e816131a9565b612710821115612bf1576040516305519d6f60e51b815260206004820152601e60248201527f66656550657263656e74616765206d757374206265203c3d203130303030000060448201526064016110c7565b81612bfa613174565b601401555050565b60405163af00578f60e01b815273__$3f9f311038b7d0d2fa7787f039555a68da$__9063af00578f906125f39087908790879087906004016140ba565b60405163b9c64fcd60e01b815260009073__$0e8b36318fa73dc05ec794fcc728ddc0b2$__9063b9c64fcd90611cbf9086908690600401613e8a565b612c8361313e565b6000612c8d613174565b336000908152601a8201602052604090205490915060ff161580612cc25750336000908152601b8201602052604090205460ff165b15612ccd57336110ad565b73__$85fe82692a6d488d4ee73d3524f68c6ee3$__63085655df335b846040518363ffffffff1660e01b8152600401612d07929190613e8a565b60006040518083038186803b158015612d1f57600080fd5b505af4158015612d33573d6000803e3d6000fd5b5050505050611d7a613198565b60405163c61c06e760e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063c61c06e790611cbf9086908690600401613e8a565b60405163c7329cf760e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063c7329cf790611cbf9086908690600401613e8a565b600073__$3f9f311038b7d0d2fa7787f039555a68da$__63c81bdf206040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b604051630cb5bfd760e41b815260009073__$20840a81c37bbab58fd2611bc1a03caf3b$__9063cb5bfd7090611cbf9086908690600401613e8a565b612e4882611c63565b612e51816131a9565b611d99838361335b565b612e6361313e565b73__$77001f4f990daf096ecb913067ed8000fe$__6316a6fa2633611d24565b612e8b61313e565b73__$77001f4f990daf096ecb913067ed8000fe$__630132f6c033611d24565b612eb361313e565b6000612ebd613174565b336000908152601a8201602052604090205490915060ff161580612ef25750336000908152601b8201602052604090205460ff165b15612efd57336110ad565b73__$85fe82692a6d488d4ee73d3524f68c6ee3$__636374299e33612ce9565b60608073__$20840a81c37bbab58fd2611bc1a03caf3b$__63f232dd6085856040518363ffffffff1660e01b8152600401612f59929190613e8a565b600060405180830381865af4158015612f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128649190810190614160565b60405163f3a8465560e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__9063f3a8465590611a5f9086908690600401613e8a565b612fe261313e565b6000612fec613174565b336000908152601a8201602052604090205490915060ff1615806130215750336000908152601b8201602052604090205460ff165b1561302c57336110ad565b73__$0e8b36318fa73dc05ec794fcc728ddc0b2$__63531a62ea3384613050613290565b6040518463ffffffff1660e01b8152600401612d0793929190613f9d565b600080516020614238833981519152613086816131a9565b816000036130e2576040516305519d6f60e51b815260206004820152602260248201527f707265666572656e63654375746f6666506572696f64206d757374206265203e604482015261020360f41b60648201526084016110c7565b816130eb613174565b601101555050565b600073__$85fe82692a6d488d4ee73d3524f68c6ee3$__63fe35505b6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611296573d6000803e3d6000fd5b600061314861358d565b80549091506001190161316e57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b7f2556f61b975c74e3f128bbc478158bc306f6253c34d95084531f202ce74e570090565b60006131a261358d565b6001905550565b611d7a81336135b1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b6129db6135dc565b6131e76135dc565b6129db613601565b6000806131fa613337565b9050613206848461292e565b613286576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561323c3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610ecd565b6000915050610ecd565b60008061329b613174565b60238101549091506001600160a01b03166132b857600091505090565b8060230160009054906101000a90046001600160a01b03166001600160a01b0316639cbe5efd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561330d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133319190613db0565b91505090565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b600080613366613337565b9050613372848461292e565b15613286576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610ecd565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061345a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661344e600080516020614278833981519152546001600160a01b031690565b6001600160a01b031614155b156129db5760405163703e46dd60e11b815260040160405180910390fd5b600080516020614258833981519152610fe8816131a9565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156134ea575060408051601f3d908101601f191682019092526134e791810190613db0565b60015b6135095781604051634c9c8ce360e01b81526004016110c79190613a1b565b600080516020614278833981519152811461353a57604051632a87526960e21b8152600481018290526024016110c7565b611f0c8383613609565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146129db5760405163703e46dd60e11b815260040160405180910390fd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b6135bb828261292e565b610fe857808260405163e2517d3f60e01b81526004016110c7929190613e8a565b6135e461365f565b6129db57604051631afcd79f60e31b815260040160405180910390fd5b6131986135dc565b61361282613679565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561365757611f0c82826136d5565b610fe861374b565b60006136696131b3565b54600160401b900460ff16919050565b806001600160a01b03163b6000036136a65780604051634c9c8ce360e01b81526004016110c79190613a1b565b60008051602061427883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516136f2919061421b565b600060405180830381855af49150503d806000811461372d576040519150601f19603f3d011682016040523d82523d6000602084013e613732565b606091505b509150915061374285838361376a565b95945050505050565b34156129db5760405163b398979f60e01b815260040160405180910390fd5b60608261377f5761377a826137bd565b611aa0565b815115801561379657506001600160a01b0384163b155b156137b65783604051639996b31560e01b81526004016110c79190613a1b565b5092915050565b8051156137cd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000602082840312156137f857600080fd5b81356001600160e01b031981168114611aa057600080fd5b6001600160a01b0381168114611d7a57600080fd5b6000806040838503121561383857600080fd5b823561384381613810565b946020939093013593505050565b60006020828403121561386357600080fd5b8135611aa081613810565b60ff81168114611d7a57600080fd5b6000806040838503121561389057600080fd5b8235915060208301356138a28161386e565b809150509250929050565b6000602082840312156138bf57600080fd5b813565ffffffffffff81168114611aa057600080fd5b60005b838110156138f05781810151838201526020016138d8565b50506000910152565b60208152600082518060208401526139188160408501602087016138d5565b601f01601f19169190910160400192915050565b6000610220828403121561393f57600080fd5b50919050565b60006020828403121561395757600080fd5b5035919050565b60008083601f84011261397057600080fd5b5081356001600160401b0381111561398757600080fd5b6020830191508360208260051b850101111561286957600080fd5b6000806000806000606086880312156139ba57600080fd5b8535945060208601356001600160401b03808211156139d857600080fd5b6139e489838a0161395e565b909650945060408801359150808211156139fd57600080fd5b50613a0a8882890161395e565b969995985093965092949392505050565b6001600160a01b0391909116815260200190565b60008060408385031215613a4257600080fd5b8235915060208301356138a281613810565b600080600060608486031215613a6957600080fd5b8335613a7481613810565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ac757613ac7613a89565b604052919050565b60006001600160401b03821115613ae857613ae8613a89565b50601f01601f191660200190565b60008060408385031215613b0957600080fd5b8235613b1481613810565b915060208301356001600160401b03811115613b2f57600080fd5b8301601f81018513613b4057600080fd5b8035613b53613b4e82613acf565b613a9f565b818152866020838501011115613b6857600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008083601f840112613b9a57600080fd5b5081356001600160401b03811115613bb157600080fd5b60208301915083602082850101111561286957600080fd5b60008060208385031215613bdc57600080fd5b82356001600160401b03811115613bf257600080fd5b613bfe85828601613b88565b90969095509350505050565b8015158114611d7a57600080fd5b600080600060608486031215613c2d57600080fd5b8335613c3881613810565b9250602084013591506040840135613c4f81613c0a565b809150509250925092565b600080600060408486031215613c6f57600080fd5b8335925060208401356001600160401b03811115613c8c57600080fd5b613c9886828701613b88565b9497909650939450505050565b60008060208385031215613cb857600080fd5b82356001600160401b03811115613cce57600080fd5b613bfe8582860161395e565b60008060008060608587031215613cf057600080fd5b8435613cfb81613810565b93506020850135925060408501356001600160401b03811115613d1d57600080fd5b613d298782880161395e565b95989497509550505050565b604080825283519082018190526000906020906060840190828701845b82811015613d6e57815184529284019290840190600101613d52565b5050508381038285015284518082528583019183019060005b81811015613da357835183529284019291840191600101613d87565b5090979650505050505050565b600060208284031215613dc257600080fd5b5051919050565b600060208284031215613ddb57600080fd5b81516001600160d01b0381168114611aa057600080fd5b600060208284031215613e0457600080fd5b81516001600160401b03811115613e1a57600080fd5b8201601f81018413613e2b57600080fd5b8051613e39613b4e82613acf565b818152856020838501011115613e4e57600080fd5b6137428260208301602086016138d5565b60208082526011908201527078416c6c6f636174696f6e566f74696e6760781b604082015260600190565b6001600160a01b03929092168252602082015260400190565b600060208284031215613eb557600080fd5b8151611aa081613c0a565b6020808252600f908201526e06d75737420626520312d313030303608c1b604082015260600190565b81835260006001600160fb1b03831115613f0257600080fd5b8260051b80836020870137939093016020019392505050565b60018060a01b0387168152856020820152608060408201526000613f43608083018688613ee9565b8281036060840152613f56818587613ee9565b9998505050505050505050565b600060208284031215613f7557600080fd5b8151611aa081613810565b600060208284031215613f9257600080fd5b8151611aa08161386e565b6001600160a01b039390931683526020830191909152604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038516815283602082015260606040820152600061400f606083018486613fbe565b9695505050505050565b6001600160a01b03841681526040602082018190526000906137429083018486613fbe565b6000806040838503121561405157600080fd5b825161405c81613c0a565b6020939093015192949293505050565b60208082528181018390526000908460408401835b868110156140af57823561409481613810565b6001600160a01b031682529183019190830190600101614081565b509695505050505050565b60018060a01b038516815283602082015260606040820152600061400f606083018486613ee9565b60006001600160401b038211156140fb576140fb613a89565b5060051b60200190565b600082601f83011261411657600080fd5b81516020614126613b4e836140e2565b82815260059290921b8401810191818101908684111561414557600080fd5b8286015b848110156140af5780518352918301918301614149565b6000806040838503121561417357600080fd5b82516001600160401b038082111561418a57600080fd5b818501915085601f83011261419e57600080fd5b815160206141ae613b4e836140e2565b82815260059290921b840181019181810190898411156141cd57600080fd5b948201945b838610156141eb578551825294820194908201906141d2565b9188015191965090935050508082111561420457600080fd5b5061421185828601614105565b9150509250929050565b6000825161422d8184602087016138d5565b919091019291505056fe71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212200e58aa149523130f9ad9cefc3859cb8220e46b0e5ffa2dd7b0c4132c0d64dcf264736f6c63430008140033",
  "linkReferences": {
    "contracts/navigator/libraries/NavigatorDelegationUtils.sol": {
      "NavigatorDelegationUtils": [
        {
          "length": 20,
          "start": 4065
        },
        {
          "length": 20,
          "start": 4354
        },
        {
          "length": 20,
          "start": 4716
        },
        {
          "length": 20,
          "start": 6969
        },
        {
          "length": 20,
          "start": 8645
        },
        {
          "length": 20,
          "start": 8869
        },
        {
          "length": 20,
          "start": 9019
        },
        {
          "length": 20,
          "start": 9107
        },
        {
          "length": 20,
          "start": 9242
        },
        {
          "length": 20,
          "start": 9483
        },
        {
          "length": 20,
          "start": 10879
        },
        {
          "length": 20,
          "start": 11360
        },
        {
          "length": 20,
          "start": 11862
        },
        {
          "length": 20,
          "start": 11922
        },
        {
          "length": 20,
          "start": 12137
        },
        {
          "length": 20,
          "start": 12177
        },
        {
          "length": 20,
          "start": 12468
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorFeeUtils.sol": {
      "NavigatorFeeUtils": [
        {
          "length": 20,
          "start": 5190
        },
        {
          "length": 20,
          "start": 7392
        },
        {
          "length": 20,
          "start": 8460
        },
        {
          "length": 20,
          "start": 8763
        },
        {
          "length": 20,
          "start": 11605
        },
        {
          "length": 20,
          "start": 12594
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorLifecycleUtils.sol": {
      "NavigatorLifecycleUtils": [
        {
          "length": 20,
          "start": 4947
        },
        {
          "length": 20,
          "start": 5077
        },
        {
          "length": 20,
          "start": 7172
        },
        {
          "length": 20,
          "start": 7861
        },
        {
          "length": 20,
          "start": 7984
        },
        {
          "length": 20,
          "start": 8042
        },
        {
          "length": 20,
          "start": 8086
        },
        {
          "length": 20,
          "start": 8231
        },
        {
          "length": 20,
          "start": 9399
        },
        {
          "length": 20,
          "start": 9730
        },
        {
          "length": 20,
          "start": 9933
        },
        {
          "length": 20,
          "start": 11178
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorSlashingUtils.sol": {
      "NavigatorSlashingUtils": [
        {
          "length": 20,
          "start": 9843
        },
        {
          "length": 20,
          "start": 10481
        },
        {
          "length": 20,
          "start": 10995
        },
        {
          "length": 20,
          "start": 11541
        },
        {
          "length": 20,
          "start": 11968
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorStakingUtils.sol": {
      "NavigatorStakingUtils": [
        {
          "length": 20,
          "start": 7577
        },
        {
          "length": 20,
          "start": 7694
        },
        {
          "length": 20,
          "start": 9153
        },
        {
          "length": 20,
          "start": 10174
        },
        {
          "length": 20,
          "start": 10232
        },
        {
          "length": 20,
          "start": 10762
        },
        {
          "length": 20,
          "start": 11058
        },
        {
          "length": 20,
          "start": 11236
        },
        {
          "length": 20,
          "start": 11294
        },
        {
          "length": 20,
          "start": 11731
        },
        {
          "length": 20,
          "start": 12291
        },
        {
          "length": 20,
          "start": 12795
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorVotingUtils.sol": {
      "NavigatorVotingUtils": [
        {
          "length": 20,
          "start": 4601
        },
        {
          "length": 20,
          "start": 6845
        },
        {
          "length": 20,
          "start": 7281
        },
        {
          "length": 20,
          "start": 8289
        },
        {
          "length": 20,
          "start": 8414
        },
        {
          "length": 20,
          "start": 12057
        },
        {
          "length": 20,
          "start": 12326
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/navigator/libraries/NavigatorDelegationUtils.sol": {
      "NavigatorDelegationUtils": [
        {
          "length": 20,
          "start": 3805
        },
        {
          "length": 20,
          "start": 4094
        },
        {
          "length": 20,
          "start": 4456
        },
        {
          "length": 20,
          "start": 6709
        },
        {
          "length": 20,
          "start": 8385
        },
        {
          "length": 20,
          "start": 8609
        },
        {
          "length": 20,
          "start": 8759
        },
        {
          "length": 20,
          "start": 8847
        },
        {
          "length": 20,
          "start": 8982
        },
        {
          "length": 20,
          "start": 9223
        },
        {
          "length": 20,
          "start": 10619
        },
        {
          "length": 20,
          "start": 11100
        },
        {
          "length": 20,
          "start": 11602
        },
        {
          "length": 20,
          "start": 11662
        },
        {
          "length": 20,
          "start": 11877
        },
        {
          "length": 20,
          "start": 11917
        },
        {
          "length": 20,
          "start": 12208
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorFeeUtils.sol": {
      "NavigatorFeeUtils": [
        {
          "length": 20,
          "start": 4930
        },
        {
          "length": 20,
          "start": 7132
        },
        {
          "length": 20,
          "start": 8200
        },
        {
          "length": 20,
          "start": 8503
        },
        {
          "length": 20,
          "start": 11345
        },
        {
          "length": 20,
          "start": 12334
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorLifecycleUtils.sol": {
      "NavigatorLifecycleUtils": [
        {
          "length": 20,
          "start": 4687
        },
        {
          "length": 20,
          "start": 4817
        },
        {
          "length": 20,
          "start": 6912
        },
        {
          "length": 20,
          "start": 7601
        },
        {
          "length": 20,
          "start": 7724
        },
        {
          "length": 20,
          "start": 7782
        },
        {
          "length": 20,
          "start": 7826
        },
        {
          "length": 20,
          "start": 7971
        },
        {
          "length": 20,
          "start": 9139
        },
        {
          "length": 20,
          "start": 9470
        },
        {
          "length": 20,
          "start": 9673
        },
        {
          "length": 20,
          "start": 10918
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorSlashingUtils.sol": {
      "NavigatorSlashingUtils": [
        {
          "length": 20,
          "start": 9583
        },
        {
          "length": 20,
          "start": 10221
        },
        {
          "length": 20,
          "start": 10735
        },
        {
          "length": 20,
          "start": 11281
        },
        {
          "length": 20,
          "start": 11708
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorStakingUtils.sol": {
      "NavigatorStakingUtils": [
        {
          "length": 20,
          "start": 7317
        },
        {
          "length": 20,
          "start": 7434
        },
        {
          "length": 20,
          "start": 8893
        },
        {
          "length": 20,
          "start": 9914
        },
        {
          "length": 20,
          "start": 9972
        },
        {
          "length": 20,
          "start": 10502
        },
        {
          "length": 20,
          "start": 10798
        },
        {
          "length": 20,
          "start": 10976
        },
        {
          "length": 20,
          "start": 11034
        },
        {
          "length": 20,
          "start": 11471
        },
        {
          "length": 20,
          "start": 12031
        },
        {
          "length": 20,
          "start": 12535
        }
      ]
    },
    "contracts/navigator/libraries/NavigatorVotingUtils.sol": {
      "NavigatorVotingUtils": [
        {
          "length": 20,
          "start": 4341
        },
        {
          "length": 20,
          "start": 6585
        },
        {
          "length": 20,
          "start": 7021
        },
        {
          "length": 20,
          "start": 8029
        },
        {
          "length": 20,
          "start": 8154
        },
        {
          "length": 20,
          "start": 11797
        },
        {
          "length": 20,
          "start": 12066
        }
      ]
    }
  }
}
