@cryptoalgebra/integral-periphery
Version:
Peripheral smart contracts of Algebra Integral protocol
1,574 lines • 124 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "NonfungiblePositionManager",
"sourceName": "contracts/NonfungiblePositionManager.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_factory",
"type": "address"
},
{
"internalType": "address",
"name": "_WNativeToken",
"type": "address"
},
{
"internalType": "address",
"name": "_tokenDescriptor_",
"type": "address"
},
{
"internalType": "address",
"name": "_poolDeployer",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "tickOutOfRange",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"name": "Collect",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"name": "DecreaseLiquidity",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "FarmingFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint128",
"name": "liquidityDesired",
"type": "uint128"
},
{
"indexed": false,
"internalType": "uint128",
"name": "actualLiquidity",
"type": "uint128"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"name": "IncreaseLiquidity",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "NONFUNGIBLE_POSITION_MANAGER_ADMINISTRATOR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PERMIT_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WNativeToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount0Owed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Owed",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "algebraMintCallback",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approve",
"type": "bool"
},
{
"internalType": "address",
"name": "farmingAddress",
"type": "address"
}
],
"name": "approveForFarming",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint128",
"name": "amount0Max",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "amount1Max",
"type": "uint128"
}
],
"internalType": "struct INonfungiblePositionManager.CollectParams",
"name": "params",
"type": "tuple"
}
],
"name": "collect",
"outputs": [
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "address",
"name": "deployer",
"type": "address"
},
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "createAndInitializePoolIfNecessary",
"outputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "amount0Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"internalType": "struct INonfungiblePositionManager.DecreaseLiquidityParams",
"name": "params",
"type": "tuple"
}
],
"name": "decreaseLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "farmingApprovals",
"outputs": [
{
"internalType": "address",
"name": "farmingCenterAddress",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "farmingCenter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount0Desired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Desired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount0Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"internalType": "struct INonfungiblePositionManager.IncreaseLiquidityParams",
"name": "params",
"type": "tuple"
}
],
"name": "increaseLiquidity",
"outputs": [
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "isApprovedOrOwner",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "address",
"name": "deployer",
"type": "address"
},
{
"internalType": "int24",
"name": "tickLower",
"type": "int24"
},
{
"internalType": "int24",
"name": "tickUpper",
"type": "int24"
},
{
"internalType": "uint256",
"name": "amount0Desired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Desired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount0Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Min",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"internalType": "struct INonfungiblePositionManager.MintParams",
"name": "params",
"type": "tuple"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes[]",
"name": "data",
"type": "bytes[]"
}
],
"name": "multicall",
"outputs": [
{
"internalType": "bytes[]",
"name": "results",
"type": "bytes[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "permit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "poolDeployer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "positions",
"outputs": [
{
"internalType": "uint88",
"name": "nonce",
"type": "uint88"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "address",
"name": "deployer",
"type": "address"
},
{
"internalType": "int24",
"name": "tickLower",
"type": "int24"
},
{
"internalType": "int24",
"name": "tickUpper",
"type": "int24"
},
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "feeGrowthInside0LastX128",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "feeGrowthInside1LastX128",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "tokensOwed0",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "tokensOwed1",
"type": "uint128"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "refundNativeToken",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "selfPermit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expiry",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "selfPermitAllowed",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expiry",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "selfPermitAllowedIfNecessary",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "selfPermitIfNecessary",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newFarmingCenter",
"type": "address"
}
],
"name": "setFarmingCenter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountMinimum",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "sweepToken",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "toActive",
"type": "bool"
}
],
"name": "switchFarmingStatus",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenFarmedIn",
"outputs": [
{
"internalType": "address",
"name": "farmingCenterAddress",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountMinimum",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "unwrapWNativeToken",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
},
{
"inputs": [],
"name": "alreadyInitialized",
"type": "error"
},
{
"inputs": [],
"name": "arithmeticError",
"type": "error"
},
{
"inputs": [],
"name": "bottomTickLowerThanMIN",
"type": "error"
},
{
"inputs": [],
"name": "dynamicFeeActive",
"type": "error"
},
{
"inputs": [],
"name": "dynamicFeeDisabled",
"type": "error"
},
{
"inputs": [],
"name": "flashInsufficientPaid0",
"type": "error"
},
{
"inputs": [],
"name": "flashInsufficientPaid1",
"type": "error"
},
{
"inputs": [],
"name": "incorrectPluginFee",
"type": "error"
},
{
"inputs": [],
"name": "insufficientInputAmount",
"type": "error"
},
{
"inputs": [],
"name": "invalidAmountRequired",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "expectedSelector",
"type": "bytes4"
}
],
"name": "invalidHookResponse",
"type": "error"
},
{
"inputs": [],
"name": "invalidLimitSqrtPrice",
"type": "error"
},
{
"inputs": [],
"name": "invalidNewCommunityFee",
"type": "error"
},
{
"inputs": [],
"name": "invalidNewTickSpacing",
"type": "error"
},
{
"inputs": [],
"name": "liquidityAdd",
"type": "error"
},
{
"inputs": [],
"name": "liquidityOverflow",
"type": "error"
},
{
"inputs": [],
"name": "liquiditySub",
"type": "error"
},
{
"inputs": [],
"name": "locked",
"type": "error"
},
{
"inputs": [],
"name": "notAllowed",
"type": "error"
},
{
"inputs": [],
"name": "notInitialized",
"type": "error"
},
{
"inputs": [],
"name": "pluginIsNotConnected",
"type": "error"
},
{
"inputs": [],
"name": "priceOutOfRange",
"type": "error"
},
{
"inputs": [],
"name": "tickInvalidLinks",
"type": "error"
},
{
"inputs": [],
"name": "tickIsNotInitialized",
"type": "error"
},
{
"inputs": [],
"name": "tickIsNotSpaced",
"type": "error"
},
{
"inputs": [],
"name": "tickOutOfRange",
"type": "error"
},
{
"inputs": [],
"name": "topTickAboveMAX",
"type": "error"
},
{
"inputs": [],
"name": "topTickLowerOrEqBottomTick",
"type": "error"
},
{
"inputs": [],
"name": "transferFailed",
"type": "error"
},
{
"inputs": [],
"name": "zeroAmountRequired",
"type": "error"
},
{
"inputs": [],
"name": "zeroLiquidityActual",
"type": "error"
},
{
"inputs": [],
"name": "zeroLiquidityDesired",
"type": "error"
}
],
"bytecode": "0x6101a06040527601000000000000000000000000000000000000000000016010553480156200002d57600080fd5b5060405162005a1f38038062005a1f8339810160408190526200005091620001bb565b8383826040518060400160405280601881526020017f416c676562726120506f736974696f6e73204e46542d5632000000000000000081525060405180604001604052806008815260200167414c47422d504f5360c01b815250604051806040016040528060018152602001601960f91b81525082828160009081620000d79190620002bd565b506001620000e68282620002bd565b50508351602080860191909120608081815284518584012060a08181524660e0819052604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901528082019690965260608601939093529284019290925230838301528051808403909201825260c09092019091528051910120905060c05250503061010052506001600160a01b039283166101205282166101405281166101605291909116610180525062000389915050565b80516001600160a01b0381168114620001b657600080fd5b919050565b60008060008060808587031215620001d257600080fd5b620001dd856200019e565b9350620001ed602086016200019e565b9250620001fd604086016200019e565b91506200020d606086016200019e565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200024357607f821691505b6020821081036200026457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b857600081815260208120601f850160051c81016020861015620002935750805b601f850160051c820191505b81811015620002b4578281556001016200029f565b5050505b505050565b81516001600160401b03811115620002d957620002d962000218565b620002f181620002ea84546200022e565b846200026a565b602080601f831160018114620003295760008415620003105750858301515b600019600386901b1c1916600185901b178555620002b4565b600085815260208120601f198616915b828110156200035a5788860151825594840194600190910190840162000339565b5085821015620003795787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e05161010051610120516101405161016051610180516155d8620004476000396000612017015260008181610221015281816106070152818161143d015281816114cb0152818161314f01528181613195015261321b015260008181610444015281816110b901528181612aa70152612d72015260008181610730015281816112d1015261170f01526000610f7e01526000610fa801526000610fd20152600061104b0152600061102301526155d86000f3fe6080604052600436106102115760003560e01c806301ffc9a71461028d57806306fdde03146102c2578063081812fc146102e4578063095ea7b3146103115780630c49ccbe1461033157806318160ddd14610359578063219f5d171461037857806323b872dd1461039a5780632d0b22de146103ba5780632f745c59146103f057806330adf81f146104105780633119049a146104325780633644e515146104665780633dd657c51461047b578063418652701461049b57806342842e0e146104a357806342966c68146104c3578063430c2081146104d65780634659a494146104f65780634d10862d146105095780634f6ccce7146105295780636352211e1461054957806369bc35b214610569578063702275151461057c57806370a082311461059c57806372426eb1146105bc5780637ac2ff7b146105cf578063832f630a146105e25780638af3ac85146105f557806395d89b411461062957806399fbab881461063e578063a22cb46514610676578063a4a78f0c14610696578063ac9650d8146106a9578063b227aa79146106c9578063b88d4fde146106eb578063c2e3140a1461070b578063c45a01551461071e578063c87b56dd14610752578063dd56e5d814610772578063df2ab5bb14610792578063e7ce18a3146107a5578063e985e9c5146107db578063f3995c67146107fb578063fc6f78651461080e578063fe3f3be71461082157600080fd5b3661028857336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102865760405162461bcd60e51b815260206004820152601060248201526f2737ba102ba730ba34bb32aa37b5b2b760811b60448201526064015b60405180910390fd5b005b600080fd5b34801561029957600080fd5b506102ad6102a83660046145b0565b61085c565b60405190151581526020015b60405180910390f35b3480156102ce57600080fd5b506102d7610887565b6040516102b9919061461d565b3480156102f057600080fd5b506103046102ff366004614630565b610919565b6040516102b99190614649565b34801561031d57600080fd5b5061028661032c366004614672565b610947565b61034461033f36600461469e565b610a5c565b604080519283526020830191909152016102b9565b34801561036557600080fd5b506008545b6040519081526020016102b9565b61038b6103863660046146b6565b610cdf565b6040516102b9939291906146d5565b3480156103a657600080fd5b506102866103b53660046146f6565b610eaa565b3480156103c657600080fd5b506103046103d5366004614630565b600b602052600090815260409020546001600160a01b031681565b3480156103fc57600080fd5b5061036a61040b366004614672565b610edb565b34801561041c57600080fd5b5061036a60008051602061558c83398151915281565b34801561043e57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b34801561047257600080fd5b5061036a610f71565b34801561048757600080fd5b5061028661049636600461477f565b6110a4565b610286611126565b3480156104af57600080fd5b506102866104be3660046146f6565b611138565b6102866104d1366004614630565b611153565b3480156104e257600080fd5b506102ad6104f1366004614672565b6111f7565b6102866105043660046147e0565b611213565b34801561051557600080fd5b5061028661052436600461483c565b6112a8565b34801561053557600080fd5b5061036a610544366004614630565b61136f565b34801561055557600080fd5b50610304610564366004614630565b611402565b610286610577366004614859565b611436565b34801561058857600080fd5b50610286610597366004614897565b611539565b3480156105a857600080fd5b5061036a6105b736600461483c565b611654565b6103046105ca3660046148bc565b6116da565b6102866105dd3660046147e0565b611906565b6102866105f0366004614949565b611c38565b34801561060157600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b34801561063557600080fd5b506102d7611c99565b34801561064a57600080fd5b5061065e610659366004614630565b611ca8565b6040516102b99c9b9a9998979695949392919061498b565b34801561068257600080fd5b50610286610691366004614a1d565b611e48565b6102866106a43660046147e0565b611e57565b6106bc6106b7366004614a4b565b611e7f565b6040516102b99190614abf565b3480156106d557600080fd5b5061036a60008051602061554c83398151915281565b3480156106f757600080fd5b50610286610706366004614b8a565b611f9f565b6102866107193660046147e0565b611fd7565b34801561072a57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b34801561075e57600080fd5b506102d761076d366004614630565b611ff5565b34801561077e57600080fd5b50600a54610304906001600160a01b031681565b6102866107a0366004614c3e565b612093565b3480156107b157600080fd5b506103046107c0366004614630565b600c602052600090815260409020546001600160a01b031681565b3480156107e757600080fd5b506102ad6107f6366004614c75565b6120f6565b6102866108093660046147e0565b612124565b61034461081c366004614ca3565b61217b565b61083461082f366004614cb5565b61247b565b604080519485526001600160801b0390931660208501529183015260608201526080016102b9565b60006001600160e01b0319821663780e9d6360e01b14806108815750610881826128d7565b92915050565b60606000805461089690614cc8565b80601f01602080910402602001604051908101604052809291908181526020018280546108c290614cc8565b801561090f5780601f106108e45761010080835404028352916020019161090f565b820191906000526020600020905b8154815290600101906020018083116108f257829003601f168201915b5050505050905090565b600061092482612927565b506000908152600f6020526040902054600160581b90046001600160a01b031690565b600061095282611402565b9050806001600160a01b0316836001600160a01b0316036109bf5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161027d565b336001600160a01b03821614806109db57506109db81336120f6565b610a4d5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161027d565b610a57838361294f565b505050565b6000808235610a6a816129c9565b8360800135610a7881612a0e565b6000610a8a6040870160208801614d11565b6001600160801b031611610a9d57600080fd5b84356000908152600f6020908152604091829020600181015490926001600160501b03821692600160501b8304600290810b93600160681b810490910b92600160801b9091046001600160801b031691610afb918c01908c01614d11565b6001600160801b0316816001600160801b03161015610b1957600080fd5b6000610b2485612a54565b9050610b5084848d6020016020810190610b3e9190614d11565b6001600160a01b038516929190612acc565b909a50985060408b01358a10801590610b6d57508a606001358910155b610b895760405162461bcd60e51b815260040161027d90614d2e565b600080610b9a888430898989612b7c565b91509150818c018860040160008282829054906101000a90046001600160801b03160192506101000a8154816001600160801b0302191690836001600160801b03160217905550808b018860040160108282829054906101000a90046001600160801b03160192506101000a8154816001600160801b0302191690836001600160801b031602179055508c6020016020810190610c379190614d11565b6001890180546001600160801b039287038316600160801b02921691909117905550508a357f26f6a048ee9138f2c0ce266f322cb99228e8d619ae2bff30c67f8dcf9d2377b4610c8d60408e0160208f01614d11565b8c8c604051610c9e939291906146d5565b60405180910390a2610cd28b35610cbb60408e0160208f01614d11565b6001600160801b0316610ccd90614d72565b612bf6565b5050505050505050915091565b60008060008360a00135610cf281612a0e565b84356000908152600f602090815260408083206001808201546001600160501b0381168652600e8552838620845161014081018652928101546001600160a01b03908116845260028083015482168589015282549091168487015230606080860191909152600160501b8404820b6080808701829052600160681b860490930b60a08701819052988f013560c0870152968e013560e08601528d01356101008501528c01356101208401529295929492600160801b9091046001600160801b0316918190610dbf90612d20565b929e50909c509a5092509050600080610ddc8985308a8a8a612b7c565b915091508082176001600160801b0316600014610e2857600489018054600160801b6001600160801b03808316860181166001600160801b031990931683178290048116850116021790555b8c85018960010160106101000a8154816001600160801b0302191690836001600160801b031602179055508d6000013560008051602061556c833981519152848f8f8f89604051610e7d959493929190614d8e565b60405180910390a2610e998e356001600160801b038f16612bf6565b505050505050505050509193909250565b610eb43382612f2c565b610ed05760405162461bcd60e51b815260040161027d90614dc7565b610a57838383612f8b565b6000610ee683611654565b8210610f485760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161027d565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610fca57507f000000000000000000000000000000000000000000000000000000000000000046145b15610ff457507f000000000000000000000000000000000000000000000000000000000000000090565b61109c604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b90565b60006110b282840184614e14565b90506110e27f000000000000000000000000000000000000000000000000000000000000000082600001516130ea565b508415611101576111018160000151602001518260200151338861314d565b831561111f5761111f8160000151604001518260200151338761314d565b5050505050565b47156111365761113633476132ca565b565b610a5783838360405180602001604052806000815250611f9f565b8061115d816129c9565b6000828152600f6020526040902060048101546001820154600160801b8083046001600160801b03908116938116919092049190911617171561119f57600080fd5b6000838152600f6020908152604080832080546001600160f81b0319168155600181018490556002810184905560038101849055600401839055600c909152902080546001600160a01b0319169055610a578361336d565b600061120282612927565b61120c8383612f2c565b9392505050565b6040516323f2ebc360e21b815233600482015230602482015260448101869052606481018590526001608482015260ff841660a482015260c4810183905260e481018290526001600160a01b03871690638fcbaf0c90610104015b600060405180830381600087803b15801561128857600080fd5b505af115801561129c573d6000803e3d6000fd5b50505050505050505050565b60405163e8ae2b6960e01b815260008051602061554c83398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e8ae2b6990604401602060405180830381865afa158015611320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113449190614ed9565b61134d57600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600061137a60085490565b82106113dd5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161027d565b600882815481106113f0576113f0614ef6565b90600052602060002001549050919050565b60008061140e836133fe565b90506001600160a01b0381166108815760405162461bcd60e51b815260040161027d90614f0c565b60006114617f0000000000000000000000000000000000000000000000000000000000000000613419565b9050828110156114af5760405162461bcd60e51b815260206004820152601960248201527824b739bab33334b1b4b2b73a102ba730ba34bb32aa37b5b2b760391b604482015260640161027d565b8015610a5757604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561151757600080fd5b505af115801561152b573d6000803e3d6000fd5b50505050610a5782826132ca565b600a546001600160a01b0316338114600083156115bb576000858152600b60205260409020546001600160a01b038481169116146115b45760405162461bcd60e51b81526020600482015260186024820152774e6f7420617070726f76656420666f72206661726d696e6760401b604482015260640161027d565b50816115e0565b81806115dd57506000858152600c60205260409020546001600160a01b031633145b91505b816116225760405162461bcd60e51b815260206004820152601260248201527127b7363c902330b936b4b733a1b2b73a32b960711b604482015260640161027d565b6000948552600c602052604090942080546001600160a01b0319166001600160a01b0390951694909417909355505050565b60006001600160a01b0382166116be5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161027d565b506001600160a01b031660009081526003602052604090205490565b6000856001600160a01b0316876001600160a01b03161061170d5760405162461bcd60e51b815260040161027d90614f3e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0386166117b25760405163d9a641e160e01b81526001600160a01b0382169063d9a641e19061176a908b908b90600401614f6f565b602060405180830381865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190614f89565b9150611826565b6040516308f68db360e21b81526001600160a01b038216906323da36cc906117e29089908c908c90600401614fa6565b602060405180830381865afa1580156117ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118239190614f89565b91505b6001600160a01b0382166118c8576001600160a01b0386166118c35760405163190c9ae360e11b81526001600160a01b0382169063321935c690611874908b908b9089908990600401614fc9565b6020604051808303816000875af1158015611893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b79190614f89565b91506118c38286613489565b6118fb565b60006118dc836001600160a01b03166134e3565b9050806001600160a01b03166000036118f9576118f98387613489565b505b509695505050505050565b834211156119475760405162461bcd60e51b815260206004820152600e60248201526d14195c9b5a5d08195e1c1a5c995960921b604482015260640161027d565b6000611951610f71565b6000878152600f6020526040902080546001600160581b0319811660016001600160581b039283169081019092161790915560008051602061558c83398151915290899089906040805160208101959095526001600160a01b03909316928401929092526060830152608082015260a0810187905260c00160405160208183030381529060405280519060200120604051602001611a0692919061190160f01b81526002810192909252602282015260420190565b6040516020818303038152906040528051906020012090506000611a2987611402565b9050806001600160a01b0316886001600160a01b031603611a885760405162461bcd60e51b815260206004820152601960248201527820b8383937bb30b6103a379031bab93932b73a1037bbb732b960391b604482015260640161027d565b611a9181613553565b15611b5a57604080516020810186905280820185905260f887901b6001600160f81b0319166060820152815160418183030181526061820192839052630b135d3f60e11b909252611b55916001600160a01b03841691631626ba7e91611afc91879190606501615015565b602060405180830381865afa158015611b19573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081