@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
3,413 lines • 152 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "VeBetterPassport",
"sourceName": "contracts/ve-better-passport/VeBetterPassport.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": "entity",
"type": "address"
}
],
"name": "AlreadyDelegated",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "AlreadyLinked",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "CannotDelegateToSelf",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "CannotLinkToSelf",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "DelegatedEntity",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "InvalidSignature",
"type": "error"
},
{
"inputs": [],
"name": "MaxEntitiesPerPassportReached",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "NotDelegated",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "NotLinked",
"type": "error"
},
{
"inputs": [],
"name": "OnlyOneLinkAllowed",
"type": "error"
},
{
"inputs": [],
"name": "OnlyOneUserAllowed",
"type": "error"
},
{
"inputs": [],
"name": "PassportDelegationFromEntity",
"type": "error"
},
{
"inputs": [],
"name": "PassportDelegationToEntity",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "PassportDelegationUnauthorizedUser",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "bits",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "SafeCastOverflowedUintDowncast",
"type": "error"
},
{
"inputs": [],
"name": "SignatureExpired",
"type": "error"
},
{
"inputs": [],
"name": "UUPSUnauthorizedCallContext",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "slot",
"type": "bytes32"
}
],
"name": "UUPSUnsupportedProxiableUUID",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "UnauthorizedUser",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "VeBetterPassportUnauthorizedUser",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "string",
"name": "checkName",
"type": "string"
},
{
"indexed": false,
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "CheckToggled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "DelegationCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "DelegationPending",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "DelegationRevoked",
"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": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkPending",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "minimumGalaxyMemberLevel",
"type": "uint256"
}
],
"name": "MinimumGalaxyMemberLevelSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "passport",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "uint256",
"name": "round",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "actionScore",
"type": "uint256"
}
],
"name": "RegisteredAction",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "removedBy",
"type": "address"
}
],
"name": "RemovedUserFromBlacklist",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "removedBy",
"type": "address"
}
],
"name": "RemovedUserFromWhitelist",
"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": "signaler",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
}
],
"name": "SignalerAssignedToApp",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "signaler",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
}
],
"name": "SignalerRemovedFromApp",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "blacklistedBy",
"type": "address"
}
],
"name": "UserBlacklisted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signaler",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "UserSignaled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "UserSignalsReset",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "UserSignalsResetForApp",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "whitelistedBy",
"type": "address"
}
],
"name": "UserWhitelisted",
"type": "event"
},
{
"inputs": [],
"name": "ACTION_REGISTRAR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ACTION_SCORE_MANAGER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "CLOCK_MODE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "RESET_SIGNALER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ROLE_GRANTER",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SETTINGS_MANAGER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SIGNALER_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": [],
"name": "WHITELISTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "acceptDelegation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "acceptEntityLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_signaler",
"type": "address"
}
],
"name": "appOfSignaler",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
}
],
"name": "appRoundActionCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "appSecurity",
"outputs": [
{
"internalType": "enum PassportTypes.APP_SECURITY",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_app",
"type": "bytes32"
},
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "appSignalsCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_app",
"type": "bytes32"
}
],
"name": "appTotalSignalsCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "assignSignalerToApp",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "assignSignalerToAppByAppAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "blacklist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "blacklistThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cancelOutgoingPendingDelegation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "cancelOutgoingPendingEntityLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "clock",
"outputs": [
{
"internalType": "uint48",
"name": "",
"type": "uint48"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decayRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "delegatePassport",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "delegateWithSignature",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "denyIncomingPendingDelegation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "denyIncomingPendingEntityLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "eip712Domain",
"outputs": [
{
"internalType": "bytes1",
"name": "fields",
"type": "bytes1"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "signatureVersion",
"type": "string"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "verifyingContract",
"type": "address"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256[]",
"name": "extensions",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "lastRound",
"type": "uint256"
}
],
"name": "getCumulativeScoreWithDecay",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "getDelegatee",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "getDelegateeInTimepoint",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "getDelegator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegatee",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "getDelegatorInTimepoint",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "getEntitiesLinkedToPassport",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getGalaxyMember",
"outputs": [
{
"internalType": "contract IGalaxyMember",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMinimumGalaxyMemberLevel",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "getPassportForEntity",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "getPassportForEntityAtTimepoint",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getPendingDelegations",
"outputs": [
{
"internalType": "address[]",
"name": "incoming",
"type": "address[]"
},
{
"internalType": "address",
"name": "outgoing",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getPendingLinkings",
"outputs": [
{
"internalType": "address[]",
"name": "incoming",
"type": "address[]"
},
{
"internalType": "address",
"name": "outgoing",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getX2EarnApps",
"outputs": [
{
"internalType": "contract IX2EarnApps",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getXAllocationVoting",
"outputs": [
{
"internalType": "contract IXAllocationVotingGovernor",
"name": "",
"type": "address"
}
],
"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": [
{
"components": [
{
"internalType": "contract IXAllocationVotingGovernor",
"name": "xAllocationVoting",
"type": "address"
},
{
"internalType": "contract IX2EarnApps",
"name": "x2EarnApps",
"type": "address"
},
{
"internalType": "contract IGalaxyMember",
"name": "galaxyMember",
"type": "address"
},
{
"internalType": "uint256",
"name": "signalingThreshold",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "roundsForCumulativeScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minimumGalaxyMemberLevel",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blacklistThreshold",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "whitelistThreshold",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxEntitiesPerPassport",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "decayRate",
"type": "uint256"
}
],
"internalType": "struct PassportTypes.InitializationData",
"name": "data",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "address",
"name": "botSignaler",
"type": "address"
},
{
"internalType": "address",
"name": "upgrader",
"type": "address"
},
{
"internalType": "address",
"name": "settingsManager",
"type": "address"
},
{
"internalType": "address",
"name": "roleGranter",
"type": "address"
},
{
"internalType": "address",
"name": "blacklister",
"type": "address"
},
{
"internalType": "address",
"name": "whitelister",
"type": "address"
},
{
"internalType": "address",
"name": "actionRegistrar",
"type": "address"
},
{
"internalType": "address",
"name": "actionScoreManager",
"type": "address"
},
{
"internalType": "address",
"name": "resetSignaler",
"type": "address"
}
],
"internalType": "struct PassportTypes.InitializationRoleData",
"name": "roles",
"type": "tuple"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_resetSignaler",
"type": "address"
}
],
"name": "initializeV4",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "initializeV5",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "isBlacklisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum PassportTypes.CheckType",
"name": "check",
"type": "uint8"
}
],
"name": "isCheckEnabled",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isDelegatee",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "isDelegateeInTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isDelegator",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "isDelegatorInTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isEntity",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "isEntityInTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isPassport",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "isPassportBlacklisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "isPassportInTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "isPassportWhitelisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isPerson",
"outputs": [
{
"internalType": "bool",
"name": "person",
"type": "bool"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint48",
"name": "timepoint",
"type": "uint48"
}
],
"name": "isPersonAtTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "person",
"type": "bool"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "isWhitelisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "linkEntityToPassport",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "linkEntityToPassportWithSignature",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "maxEntitiesPerPassport",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minimumGalaxyMemberLevel",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "registerAction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
}
],
"name": "registerActionForRound",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "removeEntityLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "removeFromBlacklist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "removeFromWhitelist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "removeSignalerFromApp",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "removeSignalerFromAppByAppAdmin",
"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": "user",
"type": "address"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "resetUserSignalsByAppWithReason",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "resetUserSignalsWithReason",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "revokeDelegation",
"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": [],
"name": "roundsForCumulativeScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum PassportTypes.APP_SECURITY",
"name": "security",
"type": "uint8"
}
],
"name": "securityMultiplier",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"internalType": "enum PassportTypes.APP_SECURITY",
"name": "security",
"type": "uint8"
}
],
"name": "setAppSecurity",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_threshold",
"type": "uint256"
}
],
"name": "setBlacklistThreshold",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_decayRate",
"type": "uint256"
}
],
"name": "setDecayRate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IGalaxyMember",
"name": "galaxyMember",
"type": "address"
}
],
"name": "setGalaxyMember",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "maxEntities",
"type": "uint256"
}
],
"name": "setMaxEntitiesPerPassport",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_minimumGalaxyMemberLevel",
"type": "uint256"
}
],
"name": "setMinimumGalaxyMemberLevel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "rounds",
"type": "uint256"
}
],
"name": "setRoundsForCumulativeScore",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum PassportTypes.APP_SECURITY",
"name": "security",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "multiplier",
"type": "uint256"
}
],
"name": "setSecurityMultiplier",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "threshold",
"type": "uint256"
}
],
"name": "setSignalingThreshold",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint208",
"name": "threshold",
"type": "uint208"
}
],
"name": "setThresholdPoPScore",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_threshold",
"type": "uint256"
}
],
"name": "setWhitelistThreshold",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IX2EarnApps",
"name": "_x2EarnApps",
"type": "address"
}
],
"name": "setX2EarnApps",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IXAllocationVotingGovernor",
"name": "xAllocationVoting",
"type": "address"
}
],
"name": "setXAllocationVoting",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "signalUser",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "signalUserWithReason",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "signaledCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "signalingThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "thresholdPoPScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint48",
"name": "timepoint",
"type": "uint48"
}
],
"name": "thresholdPoPScoreAtTimepoint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum PassportTypes.CheckType",
"name": "check",
"type": "uint8"
}
],
"name": "toggleCheck",
"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": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "userAppTotalScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "userInteractedApps",
"outputs": [
{
"internalType": "bytes32[]",
"name": "",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
}
],
"name": "userRoundActionCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "userRoundActionCountApp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
}
],
"name": "userRoundAppCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
}
],
"name": "userRoundScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "userRoundScoreApp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "userTotalScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "userUniqueAppInteraction",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "whitelist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "whitelistThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051614e2a62000104600039600081816137310152818161375a01526138c10152614e2a6000f3fe60806040526004361061052e5760003560e01c80623620161461053357806270f93d1461056657806301ffc9a71461058857806304e2a79a146105b857806304e7e0b9146105da578063080abb4c146105fa578063081bc0ba1461061a57806308b76b3a1461063c5780630e668aac1461065c5780630f73927a1461067c578063110a8308146106aa5780631332de46146106ca57806313ebae2a146106ea57806314887c581461070c57806315b75cf01461072c57806316e1f015146107415780631acebfbe146107565780631ee7632314610778578063248a9ca31461079857806326b320ab146107b85780632be4d14d146107d85780632d01a9b4146107f85780632d92dcdc146108185780632f2ff15d1461082d578063315b8bd01461084d57806336568abe1461086257806336db28b31461088257806338d8d688146108975780633910d657146108b75780633af32abf146108d75780633bf451a9146108f75780633c8c8f79146109175780633d47fe94146109375780633e420ce31461095757806340a6fc0b14610977578063428cce4414610997578063451e100d146109b7578063453b8b07146109d7578063467b99b6146109f75780634959971214610a175780634bf5d7e914610a375780634e54078014610a595780634f1ef28614610a795780634f69de0814610a8c57806352ba35c414610aa157806352d1902d14610ac1578063537df3b614610ad657806354fd4d5014610af6578063570618e114610b205780635801b70f14610b425780635a1dcf2c14610b625780635ce3309314610b82578063664d6e9e14610b975780636e6a304c14610bac5780637fd4f54f14610bcc57806384b0196e14610be1578063856868ec14610c0957806386fc460614610c29578063886d15d214610c495780638919b6e514610c695780638ab1d68114610c895780638d38b50f14610ca957806391d1485414610cc957806391ddadf414610ce95780639352d27214610d15578063943e710014610d355780639687f51114610d5557806397d8886814610d6a578063981e766214610d8a578063989f5fd514610dac5780639b19251a14610dcc5780639b4e735f14610dec5780639f14e0e214610e0c578063a217fddf14610e2c578063a26596de14610e41578063a4d3180514610e61578063a64ad59514610e76578063a8165f8614610e96578063a9c1f2f114610ec3578063ad3cb1cc14610ed8578063ae0b8da814610f09578063b292864a14610f29578063b48a963414610f56578063b5dadb1714610f76578063b7af069014610f8b578063b93501a514610fab578063bb004e9314610fcb578063bc6237ff14610feb578063c107e0d11461100b578063c60ef11d1461102b578063c791e9371461104b578063c817dcec1461106b578063ca3f511f14611080578063cb156fb0146110ae578063ccc3ced3146110ce578063ce371f06146110ee578063d0023fcb1461110e578063d0ebb0ee1461112e578063d1143f3a1461114e578063d2a98f8b1461116e578063d547741f1461118e578063d6cfbe1b146111ae578063d7ce41eb146111ce578063dc8debb0146111ee578063dd0c704b1461120e578063e0b23db414611223578063e0e4879514611243578063e18c10d314611265578063e432504414611285578063e60fd76c146112a5578063ebd695c3146112d2578063f4079c1f146112f2578063f72c0d8b14611312578063f9561f6714611334578063f9cfdfcc14611354578063f9f92be414611374578063fa7626d014611394578063fd8ab482146113b6578063fe575a87146113d6575b600080fd5b34801561053f57600080fd5b5061055361054e36600461422a565b6113f6565b6040519081526020015b60405180910390f35b34801561057257600080fd5b50610586610581366004614271565b61140b565b005b34801561059457600080fd5b506105a86105a336600461428e565b611473565b604051901515815260200161055d565b3480156105c457600080fd5b50610553600080516020614dd583398151915281565b3480156105e657600080fd5b506105866105f53660046142b8565b6114a8565b34801561060657600080fd5b506105a8610615366004614271565b61155a565b34801561062657600080fd5b50610553600080516020614cb583398151915281565b34801561064857600080fd5b506105a86106573660046142d1565b611565565b34801561066857600080fd5b5061058661067736600461430c565b6115e2565b34801561068857600080fd5b5061069c610697366004614271565b61169e565b60405161055d929190614388565b3480156106b657600080fd5b506105866106c5366004614271565b611727565b3480156106d657600080fd5b506105866106e5366004614271565b611872565b3480156106f657600080fd5b506106ff6118a9565b60405161055d91906143b0565b34801561071857600080fd5b506105a8610727366004614271565b6118b8565b34801561073857600080fd5b506105866118c3565b34801561074d57600080fd5b50610586611921565b34801561076257600080fd5b50610553600080516020614d5583398151915281565b34801561078457600080fd5b50610586610793366004614498565b6119df565b3480156107a457600080fd5b506105536107b33660046142b8565b611a66565b3480156107c457600080fd5b506105866107d33660046144fb565b611a86565b3480156107e457600080fd5b506105866107f3366004614271565b611b55565b34801561080457600080fd5b506105866108133660046142b8565b611b8c565b34801561082457600080fd5b506106ff611bdc565b34801561083957600080fd5b506105866108483660046144fb565b611be6565b34801561085957600080fd5b50610553611c3e565b34801561086e57600080fd5b5061058661087d3660046144fb565b611c48565b34801561088e57600080fd5b50610586611c80565b3480156108a357600080fd5b506106ff6108b23660046142d1565b611cc4565b3480156108c357600080fd5b506105536108d23660046142d1565b611d41565b3480156108e357600080fd5b506105a86108f2366004614271565b611d4d565b34801561090357600080fd5b506105536109123660046142b8565b611d58565b34801561092357600080fd5b50610553610932366004614541565b611d63565b34801561094357600080fd5b50610586610952366004614271565b611de1565b34801561096357600080fd5b5061055361097236600461455c565b611e58565b34801561098357600080fd5b50610586610992366004614271565b611e63565b3480156109a357600080fd5b506105a86109b23660046142d1565b611ea5565b3480156109c357600080fd5b506105866109d2366004614498565b611eb1565b3480156109e357600080fd5b506105866109f23660046142b8565b611f38565b348015610a0357600080fd5b506106ff610a12366004614271565b611fbe565b348015610a2357600080fd5b50610586610a32366004614271565b612039565b348015610a4357600080fd5b50610a4c612070565b60405161055d9190614577565b348015610a6557600080fd5b506105a8610a74366004614271565b6120ac565b610586610a873660046145aa565b612126565b348015610a9857600080fd5b50610553612145565b348015610aad57600080fd5b50610586610abc3660046146b8565b61214f565b348015610acd57600080fd5b50610553612384565b348015610ae257600080fd5b50610586610af1366004614271565b6123a1565b348015610b0257600080fd5b506040805180820190915260018152601b60f91b6020820152610a4c565b348015610b2c57600080fd5b50610553600080516020614d9583398151915281565b348015610b4e57600080fd5b50610586610b5d366004614778565b612426565b348015610b6e57600080fd5b506105a8610b7d366004614271565b6124bd565b348015610b8e57600080fd5b506105536124c8565b348015610ba357600080fd5b506105536124d2565b348015610bb857600080fd5b506105a8610bc73660046142d1565b6124dc565b348015610bd857600080fd5b50610553612518565b348015610bed57600080fd5b50610bf6612522565b60405161055d97969594939291906147ad565b348015610c1557600080fd5b50610553610c24366004614271565b61254c565b348015610c3557600080fd5b50610553610c443660046144fb565b612557565b348015610c5557600080fd5b50610553610c643660046142d1565b612563565b348015610c7557600080fd5b50610553610c843660046142d1565b61256f565b348015610c9557600080fd5b50610586610ca4366004614271565b61257b565b348015610cb557600080fd5b50610553610cc4366004614778565b612600565b348015610cd557600080fd5b506105a8610ce43660046144fb565b612617565b348015610cf557600080fd5b50610cfe61264d565b60405165ffffffffffff909116815260200161055d565b348015610d2157600080fd5b50610553610d30366004614778565b612657565b348015610d4157600080fd5b50610586610d503660046144fb565b612664565b348015610d6157600080fd5b506105536126e4565b348015610d7657600080fd5b50610586610d853660046142b8565b6126f9565b348015610d9657600080fd5b50610553600080516020614cd583398151915281565b348015610db857600080fd5b506105a8610dc7366004614271565b61277f565b348015610dd857600080fd5b50610586610de7366004614271565b6127b9565b348015610df857600080fd5b506106ff610e07366004614271565b61283e565b348015610e1857600080fd5b50610586610e27366004614843565b612878565b348015610e3857600080fd5b50610553600081565b348015610e4d57600080fd5b50610586610e5c36600461485f565b6128ff565b348015610e6d57600080fd5b5061058661298d565b348015610e8257600080fd5b506106ff610e91366004614271565b6129d1565b348015610ea257600080fd5b50610eb6610eb1366004614271565b612a0b565b60405161055d9190614888565b348015610ecf57600080fd5b50610553612a16565b348015610ee457600080fd5b50610a4c604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610f1557600080fd5b50610586610f24366004614271565b612a20565b348015610f3557600080fd5b50610f49610f443660046142b8565b612a98565b60405161055d91906148f6565b348015610f6257600080fd5b50610586610f71366004614271565b612aa3565b348015610f8257600080fd5b50610553612ada565b348015610f9757600080fd5b50610586610fa63660046142d1565b612ae4565b348015610fb757600080fd5b50610586610fc6366004614904565b612b35565b348015610fd757600080fd5b50610586610fe63660046142b8565b612b70565b348015610ff757600080fd5b506106ff6110063660046142d1565b612bf6565b34801561101757600080fd5b50610553611026366004614271565b612c32565b34801561103757600080fd5b50610586611046366004614271565b612c3d565b34801561105757600080fd5b50610586611066366004614904565b612c7f565b34801561107757600080fd5b50610553612cba565b34801561108c57600080fd5b506110a061109b366004614271565b612cc4565b60405161055d9291906149a0565b3480156110ba57600080fd5b506105866110c9366004614271565b612cd1565b3480156110da57600080fd5b506105a86110e93660046149ca565b612d50565b3480156110fa57600080fd5b50610586611109366004614498565b612d8a565b34801561111a57600080fd5b50610553611129366004614271565b612e11565b34801561113a57600080fd5b5061069c6111493660046149eb565b612e1c565b34801561115a57600080fd5b50610586611169366004614271565b612ebb565b34801561117a57600080fd5b506105866111893660046142b8565b612ef2565b34801561119a57600080fd5b506105866111a93660046144fb565b612f78565b3480156111ba57600080fd5b506105866111c93660046149ca565b612fd0565b3480156111da57600080fd5b506105536111e93660046142d1565b61301f565b3480156111fa57600080fd5b50610586611209366004614271565b61302b565b34801561121a57600080fd5b506106ff6130f8565b34801561122f57600080fd5b5061058661123e366004614271565b613102565b34801561124f57600080fd5b50610553600080516020614db583398151915281565b34801561127157600080fd5b506105536112803660046142d1565b613139565b34801561129157600080fd5b506105a86112a03660046142d1565b6131b6565b3480156112b157600080fd5b506112c56112c0366004614271565b6131f2565b60405161055d9190614a17565b3480156112de57600080fd5b506105866112ed3660046142b8565b6131fd565b3480156112fe57600080fd5b506105a861130d3660046142d1565b613283565b34801561131e57600080fd5b50610553600080516020614d1583398151915281565b34801561134057600080fd5b506106ff61134f3660046142d1565b6132bf565b34801561136057600080fd5b506110a061136f366004614271565b6132fb565b34801561138057600080fd5b5061058661138f366004614271565b613308565b3480156113a057600080fd5b50610553600080516020614d7583398151915281565b3480156113c257600080fd5b506105a86113d1366004614271565b61338d565b3480156113e257600080fd5b506105a86113f1366004614271565b613398565b600061140283836133a3565b90505b92915050565b6040516270f93d60e01b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__906270f93d906114409084906004016143b0565b60006040518083038186803b15801561145857600080fd5b505af415801561146c573d6000803e3d6000fd5b5050505050565b60006001600160e01b03198216637965db0b60e01b148061140557506301ffc9a760e01b6001600160e01b0319831614611405565b60006114b48133612617565b1580156114c957506114c7600033612617565b155b156114f25733604051634f2bbdc160e01b81526004016114e991906143b0565b60405180910390fd5b6040516304e7e0b960e01b81526004810183905273__$5ea5deb279e67f1b375f504c6c3760c192$__906304e7e0b9906024015b60006040518083038186803b15801561153e57600080fd5b505af4158015611552573d6000803e3d6000fd5b505050505050565b6000611405826133ce565b60405163045bb59d60e11b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__906308b76b3a906115a19086908690600401614a2a565b602060405180830381865af41580156115be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190614a53565b600080516020614dd58339815191526115fb8133612617565b158015611610575061160e600033612617565b155b156116305733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163010be51d60e01b815273__$5ea5deb279e67f1b375f504c6c3760c192$__9063010be51d906116699086908690600401614a6e565b60006040518083038186803b15801561168157600080fd5b505af4158015611695573d6000803e3d6000fd5b50505050505050565b6000606073__$02e8094622249c44141512a139b84c6aea$__630f73927a846040518263ffffffff1660e01b81526004016116d991906143b0565b600060405180830381865af41580156116f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261171e9190810190614a82565b91509150915091565b60046000611733613411565b8054909150600160401b900460ff168061175a575080546001600160401b03808416911610155b156117785760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b178155600080516020614d158339815191526117af81613435565b6001600160a01b0384166118225760405162461bcd60e51b815260206004820152603460248201527f566542657474657250617373706f72743a207265736574207369676e616c657260448201527320697320746865207a65726f206164647265737360601b60648201526084016114e9565b61183a600080516020614cd583398151915285613442565b5050805460ff60401b19168155604051600080516020614cf583398151915290611865908490614b0c565b60405180910390a1505050565b6040516309996f2360e11b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__90631332de46906114409084906004016143b0565b60006118b36134e3565b905090565b600061140582613501565b73__$9d0bf73e5ce11cdf40429bd81e14f98471$__6315b75cf06040518163ffffffff1660e01b815260040160006040518083038186803b15801561190757600080fd5b505af415801561191b573d6000803e3d6000fd5b50505050565b6005600061192d613411565b8054909150600160401b900460ff1680611954575080546001600160401b03808416911610155b156119725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b178155600080516020614d158339815191526119a981613435565b50805460ff60401b19168155604051600080516020614cf5833981519152906119d3908490614b0c565b60405180910390a15050565b600080516020614cd58339815191526119f88133612617565b158015611a0d5750611a0b600033612617565b155b15611a2d5733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516307d3ca5d60e11b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__90630fa794ba906116699086908690600401614b20565b600080611a71613532565b60009384526020525050604090206001015490565b600080516020614cb5833981519152611a9f8133612617565b158015611ab45750611ab2600033612617565b155b15611ad45733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516326b320ab60e01b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__906326b320ab90611b0d9086908690600401614b44565b60006040518083038186803b158015611b2557600080fd5b505af4158015611b39573d6000803e3d6000fd5b5050505061191b600080516020614d5583398151915283613442565b604051632be4d14d60e01b815273__$2985e6abc2cebada14b17fef0634f57c61$__90632be4d14d906114409084906004016143b0565b600080516020614d75833981519152611ba481613435565b604051630b406a6d60e21b81526004810183905273__$e0a66e28968a7213586b34fb34bba7250f$__90632d01a9b490602401611526565b60006118b3613556565b600080516020614cb5833981519152611bff8133612617565b158015611c145750611c12600033612617565b155b15611c345733604051634f2bbdc160e01b81526004016114e991906143b0565b61191b8383613442565b60006118b3613574565b6001600160a01b0381163314611c715760405163334bd91960e11b815260040160405180910390fd5b611c7b828261359c565b505050565b73__$2985e6abc2cebada14b17fef0634f57c61$__6336db28b36040518163ffffffff1660e01b815260040160006040518083038186803b15801561190757600080fd5b60405163071b1ad160e31b815260009073__$9d0bf73e5ce11cdf40429bd81e14f98471$__906338d8d68890611d009086908690600401614a2a565b602060405180830381865af4158015611d1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190614b5b565b60006114028383613614565b60006114058261364d565b60006114058261367d565b604051633c8c8f7960e01b815265ffffffffffff8216600482015260009073__$5ea5deb279e67f1b375f504c6c3760c192$__90633c8c8f7990602401602060405180830381865af4158015611dbd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190614b78565b6000611ded8133612617565b158015611e025750611e00600033612617565b155b15611e225733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516241c19d60e91b815273__$2a21571691ce6c98823596bc25617838fe$__906383833a00906115269085906004016143b0565b60006114058261369d565b6000611e6e81613435565b604051637d4b948360e01b815273__$2a21571691ce6c98823596bc25617838fe$__90637d4b9483906115269085906004016143b0565b600061140283836136ea565b600080516020614d55833981519152611eca8133612617565b158015611edf5750611edd600033612617565b155b15611eff5733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163451e100d60e01b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063451e100d906116699086908690600401614b20565b600080516020614d75833981519152611f518133612617565b158015611f665750611f64600033612617565b155b15611f865733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163453b8b0760e01b81526004810183905273__$86cd02d2241e00b16463882c31c896a15a$__9063453b8b0790602401611526565b60405163233dccdb60e11b815260009073__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063467b99b690611ff89085906004016143b0565b602060405180830381865af4158015612015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190614b5b565b6040516324accb8960e11b815273__$2985e6abc2cebada14b17fef0634f57c61$__906349599712906114409084906004016143b0565b60606118b360408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b604051629ca80f60e71b815260009073__$86cd02d2241e00b16463882c31c896a15a$__90634e540780906120e59085906004016143b0565b602060405180830381865af4158015612102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190614a53565b61212e613726565b612137826137cd565b61214182826137e5565b5050565b60006118b3613899565b6000612159613411565b805490915060ff600160401b82041615906001600160401b03166000811580156121805750825b90506000826001600160401b0316600114801561219c5750303b155b9050811580156121aa575080155b156121c85760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156121f157845460ff60401b1916600160401b1785555b6121f96138ae565b6122016138ae565b60405163348c39c960e21b815273__$2a21571691ce6c98823596bc25617838fe$__9063d230e72490612238908a90600401614b91565b60006040518083038186803b15801561225057600080fd5b505af4158015612264573d6000803e3d6000fd5b50508751612276925060009150613442565b50612293600080516020614d158339815191528760400151613442565b506122b0600080516020614d558339815191528760200151613442565b506122cd600080516020614cb58339815191528760800151613442565b506122ea600080516020614d758339815191528760600151613442565b50612307600080516020614d958339815191528760c00151613442565b50612324600080516020614db58339815191528760e00151613442565b50612342600080516020614dd5833981519152876101000151613442565b50831561169557845460ff60401b19168555604051600080516020614cf58339815191529061237390600190614b0c565b60405180910390a150505050505050565b600061238e6138b6565b50600080516020614d3583398151915290565b600080516020614d958339815191526123ba8133612617565b1580156123cf57506123cd600033612617565b155b156123ef5733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516329bef9db60e11b815273__$86cd02d2241e00b16463882c31c896a15a$__9063537df3b6906115269085906004016143b0565b600080516020614db583398151915261243e81613435565b604051635801b70f60e01b81526001600160a01b0385166004820152602481018490526044810183905273__$5ea5deb279e67f1b375f504c6c3760c192$__90635801b70f9060640160006040518083038186803b15801561249f57600080fd5b505af41580156124b3573d6000803e3d6000fd5b5050505050505050565b6000611405826138ff565b60006118b361392d565b60006118b3613942565b604051631b9a8c1360e21b815260009073__$9d0bf73e5ce11cdf40429bd81e14f98471$__90636e6a304c906115a19086908690600401614a2a565b60006118b3613957565b60006060806000806000606061253661396c565b959d949c50929a50909850965094509092509050565b600061140582613a1d565b60006114028383613a4a565b60006114028383613a80565b60006114028383613ab9565b600080516020614d958339815191526125948133612617565b1580156125a957506125a7600033612617565b155b156125c95733604051634f2bbdc160e01b81526004016114e991906143b0565b604051638ab1d68160e01b815273__$86cd02d2241e00b16463882c31c896a15a$__90638ab1d681906115269085906004016143b0565b600061260d848484613af2565b90505b9392505050565b600080612622613532565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b60006118b3613b36565b600061260d848484613b40565b60405162943e7160e81b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063943e71009061269c9085908590600401614b44565b60006040518083038186803b1580156126b457600080fd5b505af41580156126c8573d6000803e3d6000fd5b50505050611c7b600080516020614d5583398151915282613442565b6000806126ef613b84565b6001015492915050565b600080516020614d758339815191526127128133612617565b1580156127275750612725600033612617565b155b156127475733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516312fb110d60e31b81526004810183905273__$86cd02d2241e00b16463882c31c896a15a$__906397d8886890602401611526565b60405163989f5fd560e01b815260009073__$86cd02d2241e00b16463882c31c896a15a$__9063989f5fd5906120e59085906004016143b0565b600080516020614d958339815191526127d28133612617565b1580156127e757506127e5600033612617565b155b156128075733604051634f2bbdc160e01b81526004016114e991906143b0565b604051634d8c928d60e11b815273__$86cd02d2241e00b16463882c31c896a15a$__90639b19251a906115269085906004016143b0565b604051639b4e735f60e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__90639b4e735f90611ff89085906004016143b0565b600080516020614dd58339815191526128918133612617565b1580156128a657506128a4600033612617565b155b156128c65733604051634f2bbdc160e01b81526004016114e991906143b0565b604051632d37e9c760e01b815273__$5ea5deb279e67f1b375f504c6c3760c192$__90632d37e9c7906116699086908690600401614c1b565b600080516020614dd58339815191526129188133612617565b15801561292d575061292b600033612617565b155b1561294d5733604051634f2bbdc160e01b81526004016114e991906143b0565b604051635132cb6f60e11b81526001600160d01b038316600482015273__$5ea5deb279e67f1b375f504c6c3760c192$__9063a26596de90602401611526565b73__$2985e6abc2cebada14b17fef0634f57c61$__63a4d318056040518163ffffffff1660e01b815260040160006040518083038186803b15801561190757600080fd5b60405163a64ad59560e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__9063a64ad59590611ff89085906004016143b0565b606061140582613ba8565b60006118b3613c25565b6000612a2c8133612617565b158015612a415750612a3f600033612617565b155b15612a615733604051634f2bbdc160e01b81526004016114e991906143b0565b604051633c6e220160e11b815273__$2a21571691ce6c98823596bc25617838fe$__906378dc4402906115269085906004016143b0565b600061140582613c3a565b604051632d22a58d60e21b815273__$2985e6abc2cebada14b17fef0634f57c61$__9063b48a9634906114409084906004016143b0565b60006118b3613c5d565b600080516020614db5833981519152612afc81613435565b604051630b7af06960e41b815273__$5ea5deb279e67f1b375f504c6c3760c192$__9063b7af0690906116699086908690600401614a2a565b60405163b93501a560e01b815273__$2985e6abc2cebada14b17fef0634f57c61$__9063b93501a59061166990869086908690600401614c36565b600080516020614dd5833981519152612b898133612617565b158015612b9e5750612b9c600033612617565b155b15612bbe5733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163bb004e9360e01b81526004810183905273__$5ea5deb279e67f1b375f504c6c3760c192$__9063bb004e9390602401611526565b60405163bc6237ff60e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__9063bc6237ff90611d009086908690600401614a2a565b600061140582613c72565b6000612c4881613435565b60405163c60ef11d60e01b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063c60ef11d906115269085906004016143b0565b60405163c791e93760e01b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063c791e9379061166990869086908690600401614c36565b60006118b36126e4565b6060600061171e83613c9f565b604051630cb156fb60e41b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063cb156fb090612d089084906004016143b0565b60006040518083038186803b158015612d2057600080fd5b505af4158015612d34573d6000803e3d6000fd5b50505050612141600080516020614d558339815191528261359c565b6040516312c9427160e31b815260009073__$e0a66e28968a7213586b34fb34bba7250f$__9063964a1388906120e5908590600401614c5d565b600080516020614d55833981519152612da38133612617565b158015612db85750612db6600033612617565b155b15612dd85733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163671b8f8360e11b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063ce371f06906116699086908690600401614b20565b600061140582613d3d565b604051636875d87760e11b81526001600160a01b038316600482015265ffffffffffff8216602482015260009060609073__$02e8094622249c44141512a139b84c6aea$__9063d0ebb0ee90604401600060405180830381865af4158015612e88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eb09190810190614a82565b915091509250929050565b60405163688a1f9d60e11b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063d1143f3a906114409084906004016143b0565b600080516020614d75833981519152612f0b8133612617565b158015612f205750612f1e600033612617565b155b15612f405733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163d2a98f8b60e01b81526004810183905273__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063d2a98f8b90602401611526565b600080516020614cb5833981519152612f918133612617565b158015612fa65750612fa4600033612617565b155b15612fc65733604051634f2bbdc160e01b81526004016114e991906143b0565b61191b838361359c565b600080516020614d75833981519152612fe881613435565b604051631907297160e11b815273__$e0a66e28968a7213586b34fb34bba7250f$__9063320e52e290611526908590600401614c5d565b60006114028383613d6a565b600080516020614cb58339815191526130448133612617565b1580156130595750613057600033612617565b155b156130795733604051634f2bbdc160e01b81526004016114e991906143b0565b604051630dc8debb60e41b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063dc8debb0906130b09085906004016143b0565b60006040518083038186803b1580156130c857600080fd5b505af41580156130dc573d6000803e3d6000fd5b50505050611c7b600080516020614d558339815191528361359c565b60006118b3613da3565b60405163382c8f6d60e21b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063e0b23db4906114409084906004016143b0565b60405163e18c10d360e01b815260009073__$5ea5deb279e67f1b375f504c6c3760c192$__9063e18c10d3906131759086908690600401614a2a565b602060405180830381865af4158015613192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190614b78565b60405163390c941160e21b815260009073__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063e4325044906115a19086908690600401614a2a565b606061140582613dc1565b600080516020614d158339815191526132168133612617565b15801561322b5750613229600033612617565b155b1561324b5733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163ebd695c360e01b81526004810183905273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063ebd695c390602401611526565b60405163f4079c1f60e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__9063f4079c1f906115a19086908690600401614a2a565b60405163f9561f6760e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__9063f9561f6790611d009086908690600401614a2a565b6060600061171e83613e47565b600080516020614d958339815191526133218133612617565b1580156133365750613334600033612617565b155b156133565733604051634f2bbdc160e01b81526004016114e991906143b0565b604051633e7e4af960e21b815273__$86cd02d2241e00b16463882c31c896a15a$__9063f9f92be4906115269085906004016143b0565b600061140582613ee3565b600061140582613f14565b6000806133ae613b84565b6000948552602a0160209081526040808620948652939052505090205490565b6000806133d9613b84565b6001600160a01b0384166000908152601f8201602052604090209091506133ff90613f44565b6001600160a01b031615159392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b61343f8133613f8b565b50565b60008061344d613532565b90506134598484612617565b6134d9576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561348f3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050611405565b6000915050611405565b6000806134ee613b84565b600401546001600160a01b031692915050565b60008061350c613b84565b6001600160a01b038416600090815260178201602052604090209091506133ff90613f44565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b600080613561613b84565b600301546001600160a01b031692915050565b60008061357f613b84565b905061358d81601101613fb6565b6001600160d01b031691505090565b6000806135a7613532565b90506135b38484612617565b156134d9576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050611405565b60008061361f613b84565b6001600160a01b03949094166000908152600e90940160209081526040808620948652939052505090205490565b600080613658613b84565b6001600160a01b03909316600090815260059093016020525050604090205460ff1690565b600080613688613b84565b60009384526027016020525050604090205490565b6000806136a8613b84565b905080600b0160008460038111156136c2576136c26148cc565b60038111156136d3576136d36148cc565b815260200190815260200160002054915050919050565b6000806136f5613b84565b6001600160a01b03949094166000908152601490940160209081526040808620948652939052505090205460ff1690565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806137ad57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166137a1600080516020614d35833981519152546001600160a01b031690565b6001600160a01b031614155b156137cb5760405163703e46dd60e11b815260040160405180910390fd5b565b600080516020614d1583398151915261214181613435565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561383f575060408051601f3d908101601f1916820190925261383c91810190614b78565b60015b61385e5781604051634c9c8ce360e01b81526004016114e991906143b0565b600080516020614d35833981519152811461388f57604051632a87526960e21b8152600481018290526024016114e9565b611c7b8383613fe6565b6000806138a4613b84565b601d015492915050565b6137cb61403c565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146137cb5760405163703e46dd60e11b815260040160405180910390fd5b60008061390a613b84565b6001600160a01b0390931660009081526018909301602052505060409020541590565b600080613938613b84565b600a015492915050565b60008061394d613b84565b6012015492915050565b600080613962613b84565b6024015492915050565b6000606080600080600060606040518060400160405280601081526020016f159950995d1d195c94185cdcdc1bdc9d60821b815250604051806040016040528060018152602001603160f81b81525046306000801b60006001600160401b038111156139da576139da6143c4565b604051908082528060200260200182016040528015613a03578160200160208202803683370190505b50600f60f81b9d959c50939a509198509650945092509050565b600080613a28613b84565b6001600160a01b03909316600090815260259093016020525050604090205490565b600080613a55613b84565b6000948552602601602090815260408086206001600160a01b03959095168652939052505090205490565b600080613a8b613b84565b6001600160a01b03949094166000908152602c90940160209081526040808620948652939052505090205490565b600080613ac4613b84565b6001600160a01b03949094166000908152600f90940160209081526040808620948652939052505090205490565b600080613afd613b84565b6001600160a01b038616600090815260109091016020908152604080832087845282528083208684529091529020549150509392505050565b60006118b3614061565b600080613b4b613b84565b6001600160a01b0386166000908152602b9091016020908152604080832087845282528083208684529091529020549150509392505050565b7f273c9387b78d9b22e6f3371bb3aa3a918f53507e8cacc54e4831933cbb84410090565b60606000613bb4613b84565b6001600160a01b03841660009081526015820160209081526040918290208054835181840281018401909452808452939450919290830182828015613c1857602002820191906000526020600020905b815481526020019060010190808311613c04575b5050505050915050919050565b600080613c30613b84565b6013015492915050565b600080613c45613b84565b6000938452600c016020525050604090205460ff1690565b600080613c68613b84565b6009015492915050565b600080613c7d613b84565b6001600160a01b03909316600090815260239093016020525050604090205490565b6060600080613cac613b84565b6001600160a01b03808616600090815260218301602090815260408083206022860183529281902054835482518185028101850190935280835295965092949290931692918491830182828015613d2c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613d0e575b505050505091509250925050915091565b600080613d48613b84565b6001600160a01b039093166000908152600d9093016020525050604090205490565b600080613d75613b84565b6001600160a01b03949094166000908152602990940160209081526040808620948652939052505090205490565b600080613dae613b84565b600201546001600160a01b031692915050565b60606000613dcd613b84565b6001600160a01b03841660009081526019820160209081526040918290208054835181840281018401909452808452939450919290830182828015613c1857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e1d575050505050915050919050565b6060600080613e54613b84565b6001600160a01b038086166000908152601b830160209081526040808320601c860183529281902054835482518185028101850190935280835295965092949290931692918491830182828015613d2c576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311613d0e57505050505091509250925050915091565b600080613eee613b84565b6001600160a01b0384166000908152601e8201602052604090209091506133ff90613f44565b600080613f1f613b84565b6001600160a01b03909316600090815260069093016020525050604090205460ff1690565b80546000908015613f8257613f6c83613f5e600184614c77565b600091825260209091200190565b54600160601b90046001600160a01b0316612610565b60009392505050565b613f958282612617565b61214157808260405163e2517d3f60e01b81526004016114e9929190614a2a565b80546000908015613f8257613fd083613f5e600184614c77565b54600160301b90046001600160d01b0316612610565b613fef8261406c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561403457611c7b82826140c8565b61214161413e565b61404461415d565b6137cb57604051631afcd79f60e31b815260040160405180910390fd5b60006118b343614177565b806001600160a01b03163b6000036140995780604051634c9c8ce360e01b81526004016114e991906143b0565b600080516020614d3583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516140e59190614c98565b600060405180830381855af49150503d8060008114614120576040519150601f19603f3d011682016040523d82523d6000602084013e614125565b606091505b50915091506141358583836141ae565b95945050505050565b34156137cb5760405163b398979f60e01b815260040160405180910390fd5b6000614167613411565b54600160401b900460ff16919050565b600065ffffffffffff8211156141aa576040516306dfcc6560e41b815260306004820152602481018390526044016114e9565b5090565b6060826141c3576141be82614201565b612610565b81511580156141da57506001600160a01b0384163b155b156141fa5783604051639996b31560e01b81526004016114e991906143b0565b5080612610565b8051156142115780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000806040838503121561423d57600080fd5b50508035926020909101359150565b6001600160a01b038116811461343f57600080fd5b803561426c8161424c565b919050565b60006020828403121561428357600080fd5b81356126108161424c565b6000602082840312156142a057600080fd5b81356001600160e01b03198116811461261057600080fd5b6000602082840312156142ca57600080fd5b5035919050565b600080604083850312156142e457600080fd5b82356142ef8161424c565b946020939093013593505050565b80356004811061426c57600080fd5b6000806040838503121561431f57600080fd5b8235915061432f602084016142fd565b90509250929050565b60005b8381101561435357818101518382015260200161433b565b50506000910152565b60008151808452614374816020860160208601614338565b601f01601f19169290920160200192915050565b821515815260406020820152600061260d604083018461435c565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156143fd576143fd6143c4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561442b5761442b6143c4565b604052919050565b60006001600160401b0382111561444c5761444c6143c4565b50601f01601f191660200190565b600061446d61446884614433565b614403565b905082815283838301111561448157600080fd5b828260208301376000602084830101529392505050565b600080604083850312156144ab57600080fd5b82356144b68161424c565b915060208301356001600160401b038111156144d157600080fd5b8301601f810185136144e257600080fd5b6144f18582356020840161445a565b9150509250929050565b6000806040838503121561450e57600080fd5b8235915060208301356145208161424c565b809150509250929050565b803565ffffffffffff8116811461426c57600080fd5b60006020828403121561455357600080fd5b6114028261452b565b60006020828403121561456e57600080fd5b611402826142fd565b602081526000611402602083018461435c565b600082601f83011261459b57600080fd5b6114028383356020850161445a565b600080604083850312156145bd57600080fd5b82356145c88161424c565b915060208301356001600160401b038111156145e357600080fd5b6144f18582860161458a565b6000610140828403121561460257600080fd5b61460a6143da565b905061461582614261565b815261462360208301614261565b602082015261463460408301614261565b604082015261464560608301614261565b606082015261465660808301614261565b608082015261466760a08301614261565b60a082015261467860c08301614261565b60c082015261468960e08301614261565b60e082015261010061469c818401614261565b908201526101206146ae838201614261565b9082015292915050565b6000808284036102808112156146cd57600080fd5b610140808212156146dd57600080fd5b6146e56143da565b91506146f085614261565b82526146fe60208601614261565b602083015261470f60408601614261565b6040830152606085013560608301526080850135608083015260a085013560a083015260c085013560c083015260e085013560e083015261010080860135818401525061012080860135818401525081935061476d868287016145ef565b925050509250929050565b60008060006060848603121561478d57600080fd5b83356147988161424c565b95602085013595506040909401359392505050565b60ff60f81b881681526000602060e0818401526147cd60e084018a61435c565b83810360408501526147df818a61435c565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561483157835183529284019291840191600101614815565b50909c9b505050505050505050505050565b6000806040838503121561485657600080fd5b6142ef836142fd565b60006020828403121561487157600080fd5b81356001600160d01b038116811461261057600080fd5b6020808252825182820181905260009190848201906040850190845b818110156148c0578351835292840192918401916001016148a4565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600481106148f2576148f26148cc565b9052565b6020810161140582846148e2565b60008060006060848603121561491957600080fd5b83356149248161424c565b92506020840135915060408401356001600160401b0381111561494657600080fd5b6149528682870161458a565b9150509250925092565b600081518084526020808501945080840160005b838110156149955781516001600160a01b031687529582019590820190600101614970565b509495945050505050565b6040815260006149b3604083018561495c565b905060018060a01b03831660208301529392505050565b6000602082840312156149dc57600080fd5b81356006811061261057600080fd5b600080604083850312156149fe57600080fd5b8235614a098161424c565b915061432f6020840161452b565b602081526000611402602083018461495c565b6001600160a01b03929092168252602082015260400190565b8051801515811461426c57600080fd5b600060208284031215614a6557600080fd5b61140282614a43565b8281526040810161261060208301846148e2565b60008060408385031215614a9557600080fd5b614a9e83614a43565b60208401519092506001600160401b03811115614aba57600080fd5b8301601f81018513614acb57600080fd5b8051614ad961446882614433565b818152866020838501011115614aee57600080fd5b614aff826020830160208601614338565b8093505050509250929050565b6001600160401b0391909116815260200190565b6001600160a01b038316815260406020820181905260009061260d9083018461435c565b9182526001600160a01b0316602082015260400190565b600060208284031215614b6d57600080fd5b81516126108161424c565b600060208284031215614b8a57600080fd5b5051919050565b600061014082019050614ba58284516143a3565b6020830151614bb760208401826143a3565b506040830151614bca60408401826143a3565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525092915050565b60408101614c2982856148e2565b8260208301529392505050565b60018060a01b0384168152826020820152606060408201526000614135606083018461435c565b6020810160068310614c7157614c716148cc565b91905290565b8181038181111561140557634e487b7160e01b600052601160045260246000fd5b60008251614caa818460208701614338565b919091019291505056fea2328fc90c90feb8f254e41caa67a90952094a7c9c879c5eb4f2088aaecb4ae8ac58be8a321c2206f40fa040e0bfbe81fe4f1915b764a1a014733153b88bdbc4c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca4ce4aad7fca001529f4aae69bf669c4020e0aaa65ff85dc9f7b13c20e01624adfc0438b5754beb343462ff330f73266ff7457fdf879dfb68c958ccbe15765f38619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a8593847a64af02e2c08b9075e3efde9fd32eb3ff59614cee8a349147abaf4870871b548319d0d53ee45b68fe2655a151a3b31b6371a6e2c04597200a2ca54474a2646970667358221220ec28ade9d840cbe36ab04691c5cd4c2b3dbe8932470f312262ed17c8e7ba22cb64736f6c63430008140033",
"deployedBytecode": "0x60806040526004361061052e5760003560e01c80623620161461053357806270f93d1461056657806301ffc9a71461058857806304e2a79a146105b857806304e7e0b9146105da578063080abb4c146105fa578063081bc0ba1461061a57806308b76b3a1461063c5780630e668aac1461065c5780630f73927a1461067c578063110a8308146106aa5780631332de46146106ca57806313ebae2a146106ea57806314887c581461070c57806315b75cf01461072c57806316e1f015146107415780631acebfbe146107565780631ee7632314610778578063248a9ca31461079857806326b320ab146107b85780632be4d14d146107d85780632d01a9b4146107f85780632d92dcdc146108185780632f2ff15d1461082d578063315b8bd01461084d57806336568abe1461086257806336db28b31461088257806338d8d688146108975780633910d657146108b75780633af32abf146108d75780633bf451a9146108f75780633c8c8f79146109175780633d47fe94146109375780633e420ce31461095757806340a6fc0b14610977578063428cce4414610997578063451e100d146109b7578063453b8b07146109d7578063467b99b6146109f75780634959971214610a175780634bf5d7e914610a375780634e54078014610a595780634f1ef28614610a795780634f69de0814610a8c57806352ba35c414610aa157806352d1902d14610ac1578063537df3b614610ad657806354fd4d5014610af6578063570618e114610b205780635801b70f14610b425780635a1dcf2c14610b625780635ce3309314610b82578063664d6e9e14610b975780636e6a304c14610bac5780637fd4f54f14610bcc57806384b0196e14610be1578063856868ec14610c0957806386fc460614610c29578063886d15d214610c495780638919b6e514610c695780638ab1d68114610c895780638d38b50f14610ca957806391d1485414610cc957806391ddadf414610ce95780639352d27214610d15578063943e710014610d355780639687f51114610d5557806397d8886814610d6a578063981e766214610d8a578063989f5fd514610dac5780639b19251a14610dcc5780639b4e735f14610dec5780639f14e0e214610e0c578063a217fddf14610e2c578063a26596de14610e41578063a4d3180514610e61578063a64ad59514610e76578063a8165f8614610e96578063a9c1f2f114610ec3578063ad3cb1cc14610ed8578063ae0b8da814610f09578063b292864a14610f29578063b48a963414610f56578063b5dadb1714610f76578063b7af069014610f8b578063b93501a514610fab578063bb004e9314610fcb578063bc6237ff14610feb578063c107e0d11461100b578063c60ef11d1461102b578063c791e9371461104b578063c817dcec1461106b578063ca3f511f14611080578063cb156fb0146110ae578063ccc3ced3146110ce578063ce371f06146110ee578063d0023fcb1461110e578063d0ebb0ee1461112e578063d1143f3a1461114e578063d2a98f8b1461116e578063d547741f1461118e578063d6cfbe1b146111ae578063d7ce41eb146111ce578063dc8debb0146111ee578063dd0c704b1461120e578063e0b23db414611223578063e0e4879514611243578063e18c10d314611265578063e432504414611285578063e60fd76c146112a5578063ebd695c3146112d2578063f4079c1f146112f2578063f72c0d8b14611312578063f9561f6714611334578063f9cfdfcc14611354578063f9f92be414611374578063fa7626d014611394578063fd8ab482146113b6578063fe575a87146113d6575b600080fd5b34801561053f57600080fd5b5061055361054e36600461422a565b6113f6565b6040519081526020015b60405180910390f35b34801561057257600080fd5b50610586610581366004614271565b61140b565b005b34801561059457600080fd5b506105a86105a336600461428e565b611473565b604051901515815260200161055d565b3480156105c457600080fd5b50610553600080516020614dd583398151915281565b3480156105e657600080fd5b506105866105f53660046142b8565b6114a8565b34801561060657600080fd5b506105a8610615366004614271565b61155a565b34801561062657600080fd5b50610553600080516020614cb583398151915281565b34801561064857600080fd5b506105a86106573660046142d1565b611565565b34801561066857600080fd5b5061058661067736600461430c565b6115e2565b34801561068857600080fd5b5061069c610697366004614271565b61169e565b60405161055d929190614388565b3480156106b657600080fd5b506105866106c5366004614271565b611727565b3480156106d657600080fd5b506105866106e5366004614271565b611872565b3480156106f657600080fd5b506106ff6118a9565b60405161055d91906143b0565b34801561071857600080fd5b506105a8610727366004614271565b6118b8565b34801561073857600080fd5b506105866118c3565b34801561074d57600080fd5b50610586611921565b34801561076257600080fd5b50610553600080516020614d5583398151915281565b34801561078457600080fd5b50610586610793366004614498565b6119df565b3480156107a457600080fd5b506105536107b33660046142b8565b611a66565b3480156107c457600080fd5b506105866107d33660046144fb565b611a86565b3480156107e457600080fd5b506105866107f3366004614271565b611b55565b34801561080457600080fd5b506105866108133660046142b8565b611b8c565b34801561082457600080fd5b506106ff611bdc565b34801561083957600080fd5b506105866108483660046144fb565b611be6565b34801561085957600080fd5b50610553611c3e565b34801561086e57600080fd5b5061058661087d3660046144fb565b611c48565b34801561088e57600080fd5b50610586611c80565b3480156108a357600080fd5b506106ff6108b23660046142d1565b611cc4565b3480156108c357600080fd5b506105536108d23660046142d1565b611d41565b3480156108e357600080fd5b506105a86108f2366004614271565b611d4d565b34801561090357600080fd5b506105536109123660046142b8565b611d58565b34801561092357600080fd5b50610553610932366004614541565b611d63565b34801561094357600080fd5b50610586610952366004614271565b611de1565b34801561096357600080fd5b5061055361097236600461455c565b611e58565b34801561098357600080fd5b50610586610992366004614271565b611e63565b3480156109a357600080fd5b506105a86109b23660046142d1565b611ea5565b3480156109c357600080fd5b506105866109d2366004614498565b611eb1565b3480156109e357600080fd5b506105866109f23660046142b8565b611f38565b348015610a0357600080fd5b506106ff610a12366004614271565b611fbe565b348015610a2357600080fd5b50610586610a32366004614271565b612039565b348015610a4357600080fd5b50610a4c612070565b60405161055d9190614577565b348015610a6557600080fd5b506105a8610a74366004614271565b6120ac565b610586610a873660046145aa565b612126565b348015610a9857600080fd5b50610553612145565b348015610aad57600080fd5b50610586610abc3660046146b8565b61214f565b348015610acd57600080fd5b50610553612384565b348015610ae257600080fd5b50610586610af1366004614271565b6123a1565b348015610b0257600080fd5b506040805180820190915260018152601b60f91b6020820152610a4c565b348015610b2c57600080fd5b50610553600080516020614d9583398151915281565b348015610b4e57600080fd5b50610586610b5d366004614778565b612426565b348015610b6e57600080fd5b506105a8610b7d366004614271565b6124bd565b348015610b8e57600080fd5b506105536124c8565b348015610ba357600080fd5b506105536124d2565b348015610bb857600080fd5b506105a8610bc73660046142d1565b6124dc565b348015610bd857600080fd5b50610553612518565b348015610bed57600080fd5b50610bf6612522565b60405161055d97969594939291906147ad565b348015610c1557600080fd5b50610553610c24366004614271565b61254c565b348015610c3557600080fd5b50610553610c443660046144fb565b612557565b348015610c5557600080fd5b50610553610c643660046142d1565b612563565b348015610c7557600080fd5b50610553610c843660046142d1565b61256f565b348015610c9557600080fd5b50610586610ca4366004614271565b61257b565b348015610cb557600080fd5b50610553610cc4366004614778565b612600565b348015610cd557600080fd5b506105a8610ce43660046144fb565b612617565b348015610cf557600080fd5b50610cfe61264d565b60405165ffffffffffff909116815260200161055d565b348015610d2157600080fd5b50610553610d30366004614778565b612657565b348015610d4157600080fd5b50610586610d503660046144fb565b612664565b348015610d6157600080fd5b506105536126e4565b348015610d7657600080fd5b50610586610d853660046142b8565b6126f9565b348015610d9657600080fd5b50610553600080516020614cd583398151915281565b348015610db857600080fd5b506105a8610dc7366004614271565b61277f565b348015610dd857600080fd5b50610586610de7366004614271565b6127b9565b348015610df857600080fd5b506106ff610e07366004614271565b61283e565b348015610e1857600080fd5b50610586610e27366004614843565b612878565b348015610e3857600080fd5b50610553600081565b348015610e4d57600080fd5b50610586610e5c36600461485f565b6128ff565b348015610e6d57600080fd5b5061058661298d565b348015610e8257600080fd5b506106ff610e91366004614271565b6129d1565b348015610ea257600080fd5b50610eb6610eb1366004614271565b612a0b565b60405161055d9190614888565b348015610ecf57600080fd5b50610553612a16565b348015610ee457600080fd5b50610a4c604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610f1557600080fd5b50610586610f24366004614271565b612a20565b348015610f3557600080fd5b50610f49610f443660046142b8565b612a98565b60405161055d91906148f6565b348015610f6257600080fd5b50610586610f71366004614271565b612aa3565b348015610f8257600080fd5b50610553612ada565b348015610f9757600080fd5b50610586610fa63660046142d1565b612ae4565b348015610fb757600080fd5b50610586610fc6366004614904565b612b35565b348015610fd757600080fd5b50610586610fe63660046142b8565b612b70565b348015610ff757600080fd5b506106ff6110063660046142d1565b612bf6565b34801561101757600080fd5b50610553611026366004614271565b612c32565b34801561103757600080fd5b50610586611046366004614271565b612c3d565b34801561105757600080fd5b50610586611066366004614904565b612c7f565b34801561107757600080fd5b50610553612cba565b34801561108c57600080fd5b506110a061109b366004614271565b612cc4565b60405161055d9291906149a0565b3480156110ba57600080fd5b506105866110c9366004614271565b612cd1565b3480156110da57600080fd5b506105a86110e93660046149ca565b612d50565b3480156110fa57600080fd5b50610586611109366004614498565b612d8a565b34801561111a57600080fd5b50610553611129366004614271565b612e11565b34801561113a57600080fd5b5061069c6111493660046149eb565b612e1c565b34801561115a57600080fd5b50610586611169366004614271565b612ebb565b34801561117a57600080fd5b506105866111893660046142b8565b612ef2565b34801561119a57600080fd5b506105866111a93660046144fb565b612f78565b3480156111ba57600080fd5b506105866111c93660046149ca565b612fd0565b3480156111da57600080fd5b506105536111e93660046142d1565b61301f565b3480156111fa57600080fd5b50610586611209366004614271565b61302b565b34801561121a57600080fd5b506106ff6130f8565b34801561122f57600080fd5b5061058661123e366004614271565b613102565b34801561124f57600080fd5b50610553600080516020614db583398151915281565b34801561127157600080fd5b506105536112803660046142d1565b613139565b34801561129157600080fd5b506105a86112a03660046142d1565b6131b6565b3480156112b157600080fd5b506112c56112c0366004614271565b6131f2565b60405161055d9190614a17565b3480156112de57600080fd5b506105866112ed3660046142b8565b6131fd565b3480156112fe57600080fd5b506105a861130d3660046142d1565b613283565b34801561131e57600080fd5b50610553600080516020614d1583398151915281565b34801561134057600080fd5b506106ff61134f3660046142d1565b6132bf565b34801561136057600080fd5b506110a061136f366004614271565b6132fb565b34801561138057600080fd5b5061058661138f366004614271565b613308565b3480156113a057600080fd5b50610553600080516020614d7583398151915281565b3480156113c257600080fd5b506105a86113d1366004614271565b61338d565b3480156113e257600080fd5b506105a86113f1366004614271565b613398565b600061140283836133a3565b90505b92915050565b6040516270f93d60e01b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__906270f93d906114409084906004016143b0565b60006040518083038186803b15801561145857600080fd5b505af415801561146c573d6000803e3d6000fd5b5050505050565b60006001600160e01b03198216637965db0b60e01b148061140557506301ffc9a760e01b6001600160e01b0319831614611405565b60006114b48133612617565b1580156114c957506114c7600033612617565b155b156114f25733604051634f2bbdc160e01b81526004016114e991906143b0565b60405180910390fd5b6040516304e7e0b960e01b81526004810183905273__$5ea5deb279e67f1b375f504c6c3760c192$__906304e7e0b9906024015b60006040518083038186803b15801561153e57600080fd5b505af4158015611552573d6000803e3d6000fd5b505050505050565b6000611405826133ce565b60405163045bb59d60e11b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__906308b76b3a906115a19086908690600401614a2a565b602060405180830381865af41580156115be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190614a53565b600080516020614dd58339815191526115fb8133612617565b158015611610575061160e600033612617565b155b156116305733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163010be51d60e01b815273__$5ea5deb279e67f1b375f504c6c3760c192$__9063010be51d906116699086908690600401614a6e565b60006040518083038186803b15801561168157600080fd5b505af4158015611695573d6000803e3d6000fd5b50505050505050565b6000606073__$02e8094622249c44141512a139b84c6aea$__630f73927a846040518263ffffffff1660e01b81526004016116d991906143b0565b600060405180830381865af41580156116f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261171e9190810190614a82565b91509150915091565b60046000611733613411565b8054909150600160401b900460ff168061175a575080546001600160401b03808416911610155b156117785760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b178155600080516020614d158339815191526117af81613435565b6001600160a01b0384166118225760405162461bcd60e51b815260206004820152603460248201527f566542657474657250617373706f72743a207265736574207369676e616c657260448201527320697320746865207a65726f206164647265737360601b60648201526084016114e9565b61183a600080516020614cd583398151915285613442565b5050805460ff60401b19168155604051600080516020614cf583398151915290611865908490614b0c565b60405180910390a1505050565b6040516309996f2360e11b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__90631332de46906114409084906004016143b0565b60006118b36134e3565b905090565b600061140582613501565b73__$9d0bf73e5ce11cdf40429bd81e14f98471$__6315b75cf06040518163ffffffff1660e01b815260040160006040518083038186803b15801561190757600080fd5b505af415801561191b573d6000803e3d6000fd5b50505050565b6005600061192d613411565b8054909150600160401b900460ff1680611954575080546001600160401b03808416911610155b156119725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b178155600080516020614d158339815191526119a981613435565b50805460ff60401b19168155604051600080516020614cf5833981519152906119d3908490614b0c565b60405180910390a15050565b600080516020614cd58339815191526119f88133612617565b158015611a0d5750611a0b600033612617565b155b15611a2d5733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516307d3ca5d60e11b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__90630fa794ba906116699086908690600401614b20565b600080611a71613532565b60009384526020525050604090206001015490565b600080516020614cb5833981519152611a9f8133612617565b158015611ab45750611ab2600033612617565b155b15611ad45733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516326b320ab60e01b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__906326b320ab90611b0d9086908690600401614b44565b60006040518083038186803b158015611b2557600080fd5b505af4158015611b39573d6000803e3d6000fd5b5050505061191b600080516020614d5583398151915283613442565b604051632be4d14d60e01b815273__$2985e6abc2cebada14b17fef0634f57c61$__90632be4d14d906114409084906004016143b0565b600080516020614d75833981519152611ba481613435565b604051630b406a6d60e21b81526004810183905273__$e0a66e28968a7213586b34fb34bba7250f$__90632d01a9b490602401611526565b60006118b3613556565b600080516020614cb5833981519152611bff8133612617565b158015611c145750611c12600033612617565b155b15611c345733604051634f2bbdc160e01b81526004016114e991906143b0565b61191b8383613442565b60006118b3613574565b6001600160a01b0381163314611c715760405163334bd91960e11b815260040160405180910390fd5b611c7b828261359c565b505050565b73__$2985e6abc2cebada14b17fef0634f57c61$__6336db28b36040518163ffffffff1660e01b815260040160006040518083038186803b15801561190757600080fd5b60405163071b1ad160e31b815260009073__$9d0bf73e5ce11cdf40429bd81e14f98471$__906338d8d68890611d009086908690600401614a2a565b602060405180830381865af4158015611d1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190614b5b565b60006114028383613614565b60006114058261364d565b60006114058261367d565b604051633c8c8f7960e01b815265ffffffffffff8216600482015260009073__$5ea5deb279e67f1b375f504c6c3760c192$__90633c8c8f7990602401602060405180830381865af4158015611dbd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190614b78565b6000611ded8133612617565b158015611e025750611e00600033612617565b155b15611e225733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516241c19d60e91b815273__$2a21571691ce6c98823596bc25617838fe$__906383833a00906115269085906004016143b0565b60006114058261369d565b6000611e6e81613435565b604051637d4b948360e01b815273__$2a21571691ce6c98823596bc25617838fe$__90637d4b9483906115269085906004016143b0565b600061140283836136ea565b600080516020614d55833981519152611eca8133612617565b158015611edf5750611edd600033612617565b155b15611eff5733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163451e100d60e01b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063451e100d906116699086908690600401614b20565b600080516020614d75833981519152611f518133612617565b158015611f665750611f64600033612617565b155b15611f865733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163453b8b0760e01b81526004810183905273__$86cd02d2241e00b16463882c31c896a15a$__9063453b8b0790602401611526565b60405163233dccdb60e11b815260009073__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063467b99b690611ff89085906004016143b0565b602060405180830381865af4158015612015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190614b5b565b6040516324accb8960e11b815273__$2985e6abc2cebada14b17fef0634f57c61$__906349599712906114409084906004016143b0565b60606118b360408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b604051629ca80f60e71b815260009073__$86cd02d2241e00b16463882c31c896a15a$__90634e540780906120e59085906004016143b0565b602060405180830381865af4158015612102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190614a53565b61212e613726565b612137826137cd565b61214182826137e5565b5050565b60006118b3613899565b6000612159613411565b805490915060ff600160401b82041615906001600160401b03166000811580156121805750825b90506000826001600160401b0316600114801561219c5750303b155b9050811580156121aa575080155b156121c85760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156121f157845460ff60401b1916600160401b1785555b6121f96138ae565b6122016138ae565b60405163348c39c960e21b815273__$2a21571691ce6c98823596bc25617838fe$__9063d230e72490612238908a90600401614b91565b60006040518083038186803b15801561225057600080fd5b505af4158015612264573d6000803e3d6000fd5b50508751612276925060009150613442565b50612293600080516020614d158339815191528760400151613442565b506122b0600080516020614d558339815191528760200151613442565b506122cd600080516020614cb58339815191528760800151613442565b506122ea600080516020614d758339815191528760600151613442565b50612307600080516020614d958339815191528760c00151613442565b50612324600080516020614db58339815191528760e00151613442565b50612342600080516020614dd5833981519152876101000151613442565b50831561169557845460ff60401b19168555604051600080516020614cf58339815191529061237390600190614b0c565b60405180910390a150505050505050565b600061238e6138b6565b50600080516020614d3583398151915290565b600080516020614d958339815191526123ba8133612617565b1580156123cf57506123cd600033612617565b155b156123ef5733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516329bef9db60e11b815273__$86cd02d2241e00b16463882c31c896a15a$__9063537df3b6906115269085906004016143b0565b600080516020614db583398151915261243e81613435565b604051635801b70f60e01b81526001600160a01b0385166004820152602481018490526044810183905273__$5ea5deb279e67f1b375f504c6c3760c192$__90635801b70f9060640160006040518083038186803b15801561249f57600080fd5b505af41580156124b3573d6000803e3d6000fd5b5050505050505050565b6000611405826138ff565b60006118b361392d565b60006118b3613942565b604051631b9a8c1360e21b815260009073__$9d0bf73e5ce11cdf40429bd81e14f98471$__90636e6a304c906115a19086908690600401614a2a565b60006118b3613957565b60006060806000806000606061253661396c565b959d949c50929a50909850965094509092509050565b600061140582613a1d565b60006114028383613a4a565b60006114028383613a80565b60006114028383613ab9565b600080516020614d958339815191526125948133612617565b1580156125a957506125a7600033612617565b155b156125c95733604051634f2bbdc160e01b81526004016114e991906143b0565b604051638ab1d68160e01b815273__$86cd02d2241e00b16463882c31c896a15a$__90638ab1d681906115269085906004016143b0565b600061260d848484613af2565b90505b9392505050565b600080612622613532565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b60006118b3613b36565b600061260d848484613b40565b60405162943e7160e81b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063943e71009061269c9085908590600401614b44565b60006040518083038186803b1580156126b457600080fd5b505af41580156126c8573d6000803e3d6000fd5b50505050611c7b600080516020614d5583398151915282613442565b6000806126ef613b84565b6001015492915050565b600080516020614d758339815191526127128133612617565b1580156127275750612725600033612617565b155b156127475733604051634f2bbdc160e01b81526004016114e991906143b0565b6040516312fb110d60e31b81526004810183905273__$86cd02d2241e00b16463882c31c896a15a$__906397d8886890602401611526565b60405163989f5fd560e01b815260009073__$86cd02d2241e00b16463882c31c896a15a$__9063989f5fd5906120e59085906004016143b0565b600080516020614d958339815191526127d28133612617565b1580156127e757506127e5600033612617565b155b156128075733604051634f2bbdc160e01b81526004016114e991906143b0565b604051634d8c928d60e11b815273__$86cd02d2241e00b16463882c31c896a15a$__90639b19251a906115269085906004016143b0565b604051639b4e735f60e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__90639b4e735f90611ff89085906004016143b0565b600080516020614dd58339815191526128918133612617565b1580156128a657506128a4600033612617565b155b156128c65733604051634f2bbdc160e01b81526004016114e991906143b0565b604051632d37e9c760e01b815273__$5ea5deb279e67f1b375f504c6c3760c192$__90632d37e9c7906116699086908690600401614c1b565b600080516020614dd58339815191526129188133612617565b15801561292d575061292b600033612617565b155b1561294d5733604051634f2bbdc160e01b81526004016114e991906143b0565b604051635132cb6f60e11b81526001600160d01b038316600482015273__$5ea5deb279e67f1b375f504c6c3760c192$__9063a26596de90602401611526565b73__$2985e6abc2cebada14b17fef0634f57c61$__63a4d318056040518163ffffffff1660e01b815260040160006040518083038186803b15801561190757600080fd5b60405163a64ad59560e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__9063a64ad59590611ff89085906004016143b0565b606061140582613ba8565b60006118b3613c25565b6000612a2c8133612617565b158015612a415750612a3f600033612617565b155b15612a615733604051634f2bbdc160e01b81526004016114e991906143b0565b604051633c6e220160e11b815273__$2a21571691ce6c98823596bc25617838fe$__906378dc4402906115269085906004016143b0565b600061140582613c3a565b604051632d22a58d60e21b815273__$2985e6abc2cebada14b17fef0634f57c61$__9063b48a9634906114409084906004016143b0565b60006118b3613c5d565b600080516020614db5833981519152612afc81613435565b604051630b7af06960e41b815273__$5ea5deb279e67f1b375f504c6c3760c192$__9063b7af0690906116699086908690600401614a2a565b60405163b93501a560e01b815273__$2985e6abc2cebada14b17fef0634f57c61$__9063b93501a59061166990869086908690600401614c36565b600080516020614dd5833981519152612b898133612617565b158015612b9e5750612b9c600033612617565b155b15612bbe5733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163bb004e9360e01b81526004810183905273__$5ea5deb279e67f1b375f504c6c3760c192$__9063bb004e9390602401611526565b60405163bc6237ff60e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__9063bc6237ff90611d009086908690600401614a2a565b600061140582613c72565b6000612c4881613435565b60405163c60ef11d60e01b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063c60ef11d906115269085906004016143b0565b60405163c791e93760e01b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063c791e9379061166990869086908690600401614c36565b60006118b36126e4565b6060600061171e83613c9f565b604051630cb156fb60e41b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063cb156fb090612d089084906004016143b0565b60006040518083038186803b158015612d2057600080fd5b505af4158015612d34573d6000803e3d6000fd5b50505050612141600080516020614d558339815191528261359c565b6040516312c9427160e31b815260009073__$e0a66e28968a7213586b34fb34bba7250f$__9063964a1388906120e5908590600401614c5d565b600080516020614d55833981519152612da38133612617565b158015612db85750612db6600033612617565b155b15612dd85733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163671b8f8360e11b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063ce371f06906116699086908690600401614b20565b600061140582613d3d565b604051636875d87760e11b81526001600160a01b038316600482015265ffffffffffff8216602482015260009060609073__$02e8094622249c44141512a139b84c6aea$__9063d0ebb0ee90604401600060405180830381865af4158015612e88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eb09190810190614a82565b915091509250929050565b60405163688a1f9d60e11b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063d1143f3a906114409084906004016143b0565b600080516020614d75833981519152612f0b8133612617565b158015612f205750612f1e600033612617565b155b15612f405733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163d2a98f8b60e01b81526004810183905273__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063d2a98f8b90602401611526565b600080516020614cb5833981519152612f918133612617565b158015612fa65750612fa4600033612617565b155b15612fc65733604051634f2bbdc160e01b81526004016114e991906143b0565b61191b838361359c565b600080516020614d75833981519152612fe881613435565b604051631907297160e11b815273__$e0a66e28968a7213586b34fb34bba7250f$__9063320e52e290611526908590600401614c5d565b60006114028383613d6a565b600080516020614cb58339815191526130448133612617565b1580156130595750613057600033612617565b155b156130795733604051634f2bbdc160e01b81526004016114e991906143b0565b604051630dc8debb60e41b815273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063dc8debb0906130b09085906004016143b0565b60006040518083038186803b1580156130c857600080fd5b505af41580156130dc573d6000803e3d6000fd5b50505050611c7b600080516020614d558339815191528361359c565b60006118b3613da3565b60405163382c8f6d60e21b815273__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063e0b23db4906114409084906004016143b0565b60405163e18c10d360e01b815260009073__$5ea5deb279e67f1b375f504c6c3760c192$__9063e18c10d3906131759086908690600401614a2a565b602060405180830381865af4158015613192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190614b78565b60405163390c941160e21b815260009073__$9d0bf73e5ce11cdf40429bd81e14f98471$__9063e4325044906115a19086908690600401614a2a565b606061140582613dc1565b600080516020614d158339815191526132168133612617565b15801561322b5750613229600033612617565b155b1561324b5733604051634f2bbdc160e01b81526004016114e991906143b0565b60405163ebd695c360e01b81526004810183905273__$af6c66d00afaf2fd623c14a411c5a4b83a$__9063ebd695c390602401611526565b60405163f4079c1f60e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__9063f4079c1f906115a19086908690600401614a2a565b60405163f9561f6760e01b815260009073__$2985e6abc2cebada14b17fef0634f57c61$__9063f9561f6790611d009086908690600401614a2a565b6060600061171e83613e47565b600080516020614d958339815191526133218133612617565b1580156133365750613334600033612617565b155b156133565733604051634f2bbdc160e01b81526004016114e991906143b0565b604051633e7e4af960e21b815273__$86cd02d2241e00b16463882c31c896a15a$__9063f9f92be4906115269085906004016143b0565b600061140582613ee3565b600061140582613f14565b6000806133ae613b84565b6000948552602a0160209081526040808620948652939052505090205490565b6000806133d9613b84565b6001600160a01b0384166000908152601f8201602052604090209091506133ff90613f44565b6001600160a01b031615159392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b61343f8133613f8b565b50565b60008061344d613532565b90506134598484612617565b6134d9576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561348f3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050611405565b6000915050611405565b6000806134ee613b84565b600401546001600160a01b031692915050565b60008061350c613b84565b6001600160a01b038416600090815260178201602052604090209091506133ff90613f44565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b600080613561613b84565b600301546001600160a01b031692915050565b60008061357f613b84565b905061358d81601101613fb6565b6001600160d01b031691505090565b6000806135a7613532565b90506135b38484612617565b156134d9576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050611405565b60008061361f613b84565b6001600160a01b03949094166000908152600e90940160209081526040808620948652939052505090205490565b600080613658613b84565b6001600160a01b03909316600090815260059093016020525050604090205460ff1690565b600080613688613b84565b60009384526027016020525050604090205490565b6000806136a8613b84565b905080600b0160008460038111156136c2576136c26148cc565b60038111156136d3576136d36148cc565b815260200190815260200160002054915050919050565b6000806136f5613b84565b6001600160a01b03949094166000908152601490940160209081526040808620948652939052505090205460ff1690565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806137ad57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166137a1600080516020614d35833981519152546001600160a01b031690565b6001600160a01b031614155b156137cb5760405163703e46dd60e11b815260040160405180910390fd5b565b600080516020614d1583398151915261214181613435565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561383f575060408051601f3d908101601f1916820190925261383c91810190614b78565b60015b61385e5781604051634c9c8ce360e01b81526004016114e991906143b0565b600080516020614d35833981519152811461388f57604051632a87526960e21b8152600481018290526024016114e9565b611c7b8383613fe6565b6000806138a4613b84565b601d015492915050565b6137cb61403c565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146137cb5760405163703e46dd60e11b815260040160405180910390fd5b60008061390a613b84565b6001600160a01b0390931660009081526018909301602052505060409020541590565b600080613938613b84565b600a015492915050565b60008061394d613b84565b6012015492915050565b600080613962613b84565b6024015492915050565b6000606080600080600060606040518060400160405280601081526020016f159950995d1d195c94185cdcdc1bdc9d60821b815250604051806040016040528060018152602001603160f81b81525046306000801b60006001600160401b038111156139da576139da6143c4565b604051908082528060200260200182016040528015613a03578160200160208202803683370190505b50600f60f81b9d959c50939a509198509650945092509050565b600080613a28613b84565b6001600160a01b03909316600090815260259093016020525050604090205490565b600080613a55613b84565b6000948552602601602090815260408086206001600160a01b03959095168652939052505090205490565b600080613a8b613b84565b6001600160a01b03949094166000908152602c90940160209081526040808620948652939052505090205490565b600080613ac4613b84565b6001600160a01b03949094166000908152600f90940160209081526040808620948652939052505090205490565b600080613afd613b84565b6001600160a01b038616600090815260109091016020908152604080832087845282528083208684529091529020549150509392505050565b60006118b3614061565b600080613b4b613b84565b6001600160a01b0386166000908152602b9091016020908152604080832087845282528083208684529091529020549150509392505050565b7f273c9387b78d9b22e6f3371bb3aa3a918f53507e8cacc54e4831933cbb84410090565b60606000613bb4613b84565b6001600160a01b03841660009081526015820160209081526040918290208054835181840281018401909452808452939450919290830182828015613c1857602002820191906000526020600020905b815481526020019060010190808311613c04575b5050505050915050919050565b600080613c30613b84565b6013015492915050565b600080613c45613b84565b6000938452600c016020525050604090205460ff1690565b600080613c68613b84565b6009015492915050565b600080613c7d613b84565b6001600160a01b03909316600090815260239093016020525050604090205490565b6060600080613cac613b84565b6001600160a01b03808616600090815260218301602090815260408083206022860183529281902054835482518185028101850190935280835295965092949290931692918491830182828015613d2c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613d0e575b505050505091509250925050915091565b600080613d48613b84565b6001600160a01b039093166000908152600d9093016020525050604090205490565b600080613d75613b84565b6001600160a01b03949094166000908152602990940160209081526040808620948652939052505090205490565b600080613dae613b84565b600201546001600160a01b031692915050565b60606000613dcd613b84565b6001600160a01b03841660009081526019820160209081526040918290208054835181840281018401909452808452939450919290830182828015613c1857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e1d575050505050915050919050565b6060600080613e54613b84565b6001600160a01b038086166000908152601b830160209081526040808320601c860183529281902054835482518185028101850190935280835295965092949290931692918491830182828015613d2c576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311613d0e57505050505091509250925050915091565b600080613eee613b84565b6001600160a01b0384166000908152601e8201602052604090209091506133ff90613f44565b600080613f1f613b84565b6001600160a01b03909316600090815260069093016020525050604090205460ff1690565b80546000908015613f8257613f6c83613f5e600184614c77565b600091825260209091200190565b54600160601b90046001600160a01b0316612610565b60009392505050565b613f958282612617565b61214157808260405163e2517d3f60e01b81526004016114e9929190614a2a565b80546000908015613f8257613fd083613f5e600184614c77565b54600160301b90046001600160d01b0316612610565b613fef8261406c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561403457611c7b82826140c8565b61214161413e565b61404461415d565b6137cb57604051631afcd79f60e31b815260040160405180910390fd5b60006118b343614177565b806001600160a01b03163b6000036140995780604051634c9c8ce360e01b81526004016114e991906143b0565b600080516020614d3583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516140e59190614c98565b600060405180830381855af49150503d8060008114614120576040519150601f19603f3d011682016040523d82523d6000602084013e614125565b606091505b50915091506141358583836141ae565b95945050505050565b34156137cb5760405163b398979f60e01b815260040160405180910390fd5b6000614167613411565b54600160401b900460ff16919050565b600065ffffffffffff8211156141aa576040516306dfcc6560e41b815260306004820152602481018390526044016114e9565b5090565b6060826141c3576141be82614201565b612610565b81511580156141da57506001600160a01b0384163b155b156141fa5783604051639996b31560e01b81526004016114e991906143b0565b5080612610565b8051156142115780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000806040838503121561423d57600080fd5b50508035926020909101359150565b6001600160a01b038116811461343f57600080fd5b803561426c8161424c565b919050565b60006020828403121561428357600080fd5b81356126108161424c565b6000602082840312156142a057600080fd5b81356001600160e01b03198116811461261057600080fd5b6000602082840312156142ca57600080fd5b5035919050565b600080604083850312156142e457600080fd5b82356142ef8161424c565b946020939093013593505050565b80356004811061426c57600080fd5b6000806040838503121561431f57600080fd5b8235915061432f602084016142fd565b90509250929050565b60005b8381101561435357818101518382015260200161433b565b50506000910152565b60008151808452614374816020860160208601614338565b601f01601f19169290920160200192915050565b821515815260406020820152600061260d604083018461435c565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156143fd576143fd6143c4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561442b5761442b6143c4565b604052919050565b60006001600160401b0382111561444c5761444c6143c4565b50601f01601f191660200190565b600061446d61446884614433565b614403565b905082815283838301111561448157600080fd5b828260208301376000602084830101529392505050565b600080604083850312156144ab57600080fd5b82356144b68161424c565b915060208301356001600160401b038111156144d157600080fd5b8301601f810185136144e257600080fd5b6144f18582356020840161445a565b9150509250929050565b6000806040838503121561450e57600080fd5b8235915060208301356145208161424c565b809150509250929050565b803565ffffffffffff8116811461426c57600080fd5b60006020828403121561455357600080fd5b6114028261452b565b60006020828403121561456e57600080fd5b611402826142fd565b602081526000611402602083018461435c565b600082601f83011261459b57600080fd5b6114028383356020850161445a565b600080604083850312156145bd57600080fd5b82356145c88161424c565b915060208301356001600160401b038111156145e357600080fd5b6144f18582860161458a565b6000610140828403121561460257600080fd5b61460a6143da565b905061461582614261565b815261462360208301614261565b602082015261463460408301614261565b604082015261464560608301614261565b606082015261465660808301614261565b608082015261466760a08301614261565b60a082015261467860c08301614261565b60c082015261468960e08301614261565b60e082015261010061469c818401614261565b908201526101206146ae838201614261565b9082015292915050565b6000808284036102808112156146cd57600080fd5b610140808212156146dd57600080fd5b6146e56143da565b91506146f085614261565b82526146fe60208601614261565b602083015261470f60408601614261565b6040830152606085013560608301526080850135608083015260a085013560a083015260c085013560c083015260e085013560e083015261010080860135818401525061012080860135818401525081935061476d868287016145ef565b925050509250929050565b60008060006060848603121561478d57600080fd5b83356147988161424c565b95602085013595506040909401359392505050565b60ff60f81b881681526000602060e0818401526147cd60e084018a61435c565b83810360408501526147df818a61435c565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561483157835183529284019291840191600101614815565b50909c9b505050505050505050505050565b6000806040838503121561485657600080fd5b6142ef836142fd565b60006020828403121561487157600080fd5b81356001600160d01b038116811461261057600080fd5b6020808252825182820181905260009190848201906040850190845b818110156148c0578351835292840192918401916001016148a4565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600481106148f2576148f26148cc565b9052565b6020810161140582846148e2565b60008060006060848603121561491957600080fd5b83356149248161424c565b92506020840135915060408401356001600160401b0381111561494657600080fd5b6149528682870161458a565b9150509250925092565b600081518084526020808501945080840160005b838110156149955781516001600160a01b031687529582019590820190600101614970565b509495945050505050565b6040815260006149b3604083018561495c565b905060018060a01b03831660208301529392505050565b6000602082840312156149dc57600080fd5b81356006811061261057600080fd5b600080604083850312156149fe57600080fd5b8235614a098161424c565b915061432f6020840161452b565b602081526000611402602083018461495c565b6001600160a01b03929092168252602082015260400190565b8051801515811461426c57600080fd5b600060208284031215614a6557600080fd5b61140282614a43565b8281526040810161261060208301846148e2565b60008060408385031215614a9557600080fd5b614a9e83614a43565b60208401519092506001600160401b03811115614aba57600080fd5b8301601f81018513614acb57600080fd5b8051614ad961446882614433565b818152866020838501011115614aee57600080fd5b614aff826020830160208601614338565b8093505050509250929050565b6001600160401b0391909116815260200190565b6001600160a01b038316815260406020820181905260009061260d9083018461435c565b9182526001600160a01b0316602082015260400190565b600060208284031215614b6d57600080fd5b81516126108161424c565b600060208284031215614b8a57600080fd5b5051919050565b600061014082019050614ba58284516143a3565b6020830151614bb760208401826143a3565b506040830151614bca60408401826143a3565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525092915050565b60408101614c2982856148e2565b8260208301529392505050565b60018060a01b0384168152826020820152606060408201526000614135606083018461435c565b6020810160068310614c7157614c716148cc565b91905290565b8181038181111561140557634e487b7160e01b600052601160045260246000fd5b60008251614caa818460208701614338565b919091019291505056fea2328fc90c90feb8f254e41caa67a90952094a7c9c879c5eb4f2088aaecb4ae8ac58be8a321c2206f40fa040e0bfbe81fe4f1915b764a1a014733153b88bdbc4c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca4ce4aad7fca001529f4aae69bf669c4020e0aaa65ff85dc9f7b13c20e01624adfc0438b5754beb343462ff330f73266ff7457fdf879dfb68c958ccbe15765f38619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a8593847a64af02e2c08b9075e3efde9fd32eb3ff59614cee8a349147abaf4870871b548319d0d53ee45b68fe2655a151a3b31b6371a6e2c04597200a2ca54474a2646970667358221220ec28ade9d840cbe36ab04691c5cd4c2b3dbe8932470f312262ed17c8e7ba22cb64736f6c63430008140033",
"linkReferences": {
"contracts/ve-better-passport/libraries/PassportChecksLogic.sol": {
"PassportChecksLogic": [
{
"length": 20,
"start": 7358
},
{
"length": 20,
"start": 11878
},
{
"length": 20,
"start": 12539
}
]
},
"contracts/ve-better-passport/libraries/PassportConfigurator.sol": {
"PassportConfigurator": [
{
"length": 20,
"start": 7988
},
{
"length": 20,
"start": 8065
},
{
"length": 20,
"start": 8980
},
{
"length": 20,
"start": 11124
}
]
},
"contracts/ve-better-passport/libraries/PassportDelegationLogic.sol": {
"PassportDelegationLogic": [
{
"length": 20,
"start": 5755
},
{
"length": 20,
"start": 7272
},
{
"length": 20,
"start": 7558
},
{
"length": 20,
"start": 8524
},
{
"length": 20,
"start": 10580
},
{
"length": 20,
"start": 10899
},
{
"length": 20,
"start": 10983
},
{
"length": 20,
"start": 11190
},
{
"length": 20,
"start": 11336
},
{
"length": 20,
"start": 11532
},
{
"length": 20,
"start": 13209
},
{
"length": 20,
"start": 13269
}
]
},
"contracts/ve-better-passport/libraries/PassportEntityLogic.sol": {
"PassportEntityLogic": [
{
"length": 20,
"start": 5405
},
{
"length": 20,
"start": 6533
},
{
"length": 20,
"start": 6601
},
{
"length": 20,
"start": 7642
},
{
"length": 20,
"start": 8404
},
{
"length": 20,
"start": 9714
},
{
"length": 20,
"start": 11666
},
{
"length": 20,
"start": 12238
},
{
"length": 20,
"start": 12378
},
{
"length": 20,
"start": 12821
},
{
"length": 20,
"start": 13004
}
]
},
"contracts/ve-better-passport/libraries/PassportPersonhoodLogic.sol": {
"PassportPersonhoodLogic": [
{
"length": 20,
"start": 6056
},
{
"length": 20,
"start": 12114
}
]
},
"contracts/ve-better-passport/libraries/PassportPoPScoreLogic.sol": {
"PassportPoPScoreLogic": [
{
"length": 20,
"start": 5644
},
{
"length": 20,
"start": 5955
},
{
"length": 20,
"start": 7815
},
{
"length": 20,
"start": 9582
},
{
"length": 20,
"start": 10713
},
{
"length": 20,
"start": 10863
},
{
"length": 20,
"start": 11279
},
{
"length": 20,
"start": 11480
},
{
"length": 20,
"start": 12879
}
]
},
"contracts/ve-better-passport/libraries/PassportSignalingLogic.sol": {
"PassportSignalingLogic": [
{
"length": 20,
"start": 6976
},
{
"length": 20,
"start": 7143
},
{
"length": 20,
"start": 8210
},
{
"length": 20,
"start": 10102
},
{
"length": 20,
"start": 11611
},
{
"length": 20,
"start": 11748
},
{
"length": 20,
"start": 12011
},
{
"length": 20,
"start": 12684
},
{
"length": 20,
"start": 13157
}
]
},
"contracts/ve-better-passport/libraries/PassportWhitelistAndBlacklistLogic.sol": {
"PassportWhitelistAndBlacklistLogic": [
{
"length": 20,
"start": 8352
},
{
"length": 20,
"start": 8641
},
{
"length": 20,
"start": 9474
},
{
"length": 20,
"start": 9948
},
{
"length": 20,
"start": 10337
},
{
"length": 20,
"start": 10389
},
{
"length": 20,
"start": 10522
},
{
"length": 20,
"start": 13417
}
]
}
},
"deployedLinkReferences": {
"contracts/ve-better-passport/libraries/PassportChecksLogic.sol": {
"PassportChecksLogic": [
{
"length": 20,
"start": 7098
},
{
"length": 20,
"start": 11618
},
{
"length": 20,
"start": 12279
}
]
},
"contracts/ve-better-passport/libraries/PassportConfigurator.sol": {
"PassportConfigurator": [
{
"length": 20,
"start": 7728
},
{
"length": 20,
"start": 7805
},
{
"length": 20,
"start": 8720
},
{
"length": 20,
"start": 10864
}
]
},
"contracts/ve-better-passport/libraries/PassportDelegationLogic.sol": {
"PassportDelegationLogic": [
{
"length": 20,
"start": 5495
},
{
"length": 20,
"start": 7012
},
{
"length": 20,
"start": 7298
},
{
"length": 20,
"start": 8264
},
{
"length": 20,
"start": 10320
},
{
"length": 20,
"start": 10639
},
{
"length": 20,
"start": 10723
},
{
"length": 20,
"start": 10930
},
{
"length": 20,
"start": 11076
},
{
"length": 20,
"start": 11272
},
{
"length": 20,
"start": 12949
},
{
"length": 20,
"start": 13009
}
]
},
"contracts/ve-better-passport/libraries/PassportEntityLogic.sol": {
"PassportEntityLogic": [
{
"length": 20,
"start": 5145
},
{
"length": 20,
"start": 6273
},
{
"length": 20,
"start": 6341
},
{
"length": 20,
"start": 7382
},
{
"length": 20,
"start": 8144
},
{
"length": 20,
"start": 9454
},
{
"length": 20,
"start": 11406
},
{
"length": 20,
"start": 11978
},
{
"length": 20,
"start": 12118
},
{
"length": 20,
"start": 12561
},
{
"length": 20,
"start": 12744
}
]
},
"contracts/ve-better-passport/libraries/PassportPersonhoodLogic.sol": {
"PassportPersonhoodLogic": [
{
"length": 20,
"start": 5796
},
{
"length": 20,
"start": 11854
}
]
},
"contracts/ve-better-passport/libraries/PassportPoPScoreLogic.sol": {
"PassportPoPScoreLogic": [
{
"length": 20,
"start": 5384
},
{
"length": 20,
"start": 5695
},
{
"length": 20,
"start": 7555
},
{
"length": 20,
"start": 9322
},
{
"length": 20,
"start": 10453
},
{
"length": 20,
"start": 10603
},
{
"length": 20,
"start": 11019
},
{
"length": 20,
"start": 11220
},
{
"length": 20,
"start": 12619
}
]
},
"contracts/ve-better-passport/libraries/PassportSignalingLogic.sol": {
"PassportSignalingLogic": [
{
"length": 20,
"start": 6716
},
{
"length": 20,
"start": 6883
},
{
"length": 20,
"start": 7950
},
{
"length": 20,
"start": 9842
},
{
"length": 20,
"start": 11351
},
{
"length": 20,
"start": 11488
},
{
"length": 20,
"start": 11751
},
{
"length": 20,
"start": 12424
},
{
"length": 20,
"start": 12897
}
]
},
"contracts/ve-better-passport/libraries/PassportWhitelistAndBlacklistLogic.sol": {
"PassportWhitelistAndBlacklistLogic": [
{
"length": 20,
"start": 8092
},
{
"length": 20,
"start": 8381
},
{
"length": 20,
"start": 9214
},
{
"length": 20,
"start": 9688
},
{
"length": 20,
"start": 10077
},
{
"length": 20,
"start": 10129
},
{
"length": 20,
"start": 10262
},
{
"length": 20,
"start": 13157
}
]
}
}
}