[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "address", "name": "_depositToken", "type": "address" }, { "internalType": "address", "name": "_stakingContract", "type": "address" }, { "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "reward", "type": "address" }, { "internalType": "address", "name": "swapPair", "type": "address" } ], "internalType": "struct VariableRewardsStrategy.RewardSwapPairs[]", "name": "_rewardSwapPairs", "type": "tuple[]" }, { "internalType": "address", "name": "_swapPairWavaxOther", "type": "address" }, { "internalType": "address", "name": "_withdrawalPool", "type": "address" }, { "internalType": "address", "name": "_timelock", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "minTokensToReinvest", "type": "uint256" }, { "internalType": "uint256", "name": "devFeeBips", "type": "uint256" }, { "internalType": "uint256", "name": "reinvestRewardBips", "type": "uint256" } ], "internalType": "struct YakStrategyV2.StrategySettings", "name": "_strategySettings", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "rewardToken", "type": "address" }, { "indexed": false, "internalType": "address", "name": "swapPair", "type": "address" } ], "name": "AddReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "AllowDepositor", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "DepositsEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Recovered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newTotalDeposits", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTotalSupply", "type": "uint256" } ], "name": "Reinvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "RemoveDepositor", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "rewardToken", "type": "address" } ], "name": "RemoveReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateAdminFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldValue", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newValue", "type": "address" } ], "name": "UpdateDevAddr", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateDevFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateMaxTokensToDepositWithoutReinvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateMinTokensToReinvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateReinvestReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "ADMIN_FEE_BIPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEPOSITS_ENABLED", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEV_FEE_BIPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "JOE", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_TOKENS_TO_DEPOSIT_WITHOUT_REINVEST", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_TOKENS_TO_REINVEST", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PID", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REINVEST_REWARD_BIPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION_HASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "address", "name": "_swapPair", "type": "address" } ], "name": "addReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "depositor", "type": "address" } ], "name": "allowDepositor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "allowedDepositors", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "calculateDepositFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "calculateWithdrawFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "depositFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "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": "depositWithPermit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "devAddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "estimateDeployedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "estimateReinvestReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gAvax", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "getDepositTokensForShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDomainSeparator", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "getSharesForDepositTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "joeChef", "outputs": [ { "internalType": "contract IJoeChef", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "numberOfAllowedDepositors", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "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": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "recoverAVAX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "tokenAmount", "type": "uint256" } ], "name": "recoverERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reinvest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "depositor", "type": "address" } ], "name": "removeDepositor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardToken", "type": "address" } ], "name": "removeReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minReturnAmountAccepted", "type": "uint256" }, { "internalType": "bool", "name": "", "type": "bool" } ], "name": "rescueDeployedFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revokeAllowance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "revokeAllowance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewardSwapPairs", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "setAllowances", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "supportedRewards", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapPairWavaxOther", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalDeposits", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "src", "type": "address" }, { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateAdminFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "updateDepositsEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newValue", "type": "address" } ], "name": "updateDevAddr", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateDevFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateMaxTokensToDepositWithoutReinvest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateMinTokensToReinvest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateReinvestReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawalPool", "outputs": [ { "internalType": "contract ISwap", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "yyAVAX", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6101406040526009610100819052685969656c642059616b60b81b6101209081526200002f916000919062000a42565b506040805180820190915260038082526216549560ea1b60209092019182526200005c9160019162000a42565b503480156200006a57600080fd5b50604051620063d2380380620063d28339810160408190526200008d9162000c99565b888886848480600033600680546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620063b2833981519152908290a3508051620000e090620002da565b6020810151620000f0906200036a565b6040810151620001009062000421565b5084516200011690600090602088019062000a42565b50600980546001600160a01b0386166001600160a01b031991821617909155600a8054821673b31f66aa3c1e785363f0875a1b74e27b85fd66c7179055600b8054909116732d580f9cf2fb2d09bc411532988f2afda4e7beff17905560005b8351811015620001e657620001d184828151811062000198576200019862000df9565b602002602001015160000151858381518110620001b957620001b962000df9565b602002602001015160200151620004d860201b60201c565b80620001dd8162000e25565b91505062000175565b50620001f3600162000661565b620001fe826200070b565b60408051600080825260208201527fc7606d21ac05cd309191543e409f0845c016120563783d70e4f41419dc0ef234910160405180910390a1505050506001600160a01b0388811660a052608088905285811660e052841660c081905260405163a22cb46560e01b8152600481019190915260016024820152736026a85e11bd895c934af02647e8c7b4ea2d9808915063a22cb46590604401600060405180830381600087803b158015620002b257600080fd5b505af1158015620002c7573d6000803e3d6000fd5b5050505050505050505050505062000eb6565b6006546001600160a01b03163314620003295760405162461bcd60e51b815260206004820181905260248201526000805160206200639283398151915260448201526064015b60405180910390fd5b600c5460408051918252602082018390527f481f79ac3a523b6d6db3c5a720e190e986d1cc1b41adcdf50f9caef849901100910160405180910390a1600c55565b6006546001600160a01b03163314620003b55760405162461bcd60e51b8152602060048201819052602482015260008051602062006392833981519152604482015260640162000320565b612710620003d4601054836200080860201b62002a4f1790919060201c565b1115620003e057600080fd5b60115460408051918252602082018390527f2a42303d002f0ba6cfe8259c91d4684443fb0b3de286ba74991175d651726131910160405180910390a1601155565b6006546001600160a01b031633146200046c5760405162461bcd60e51b8152602060048201819052602482015260008051602062006392833981519152604482015260640162000320565b6127106200048b601154836200080860201b62002a4f1790919060201c565b11156200049757600080fd5b60105460408051918252602082018390527fe7f97d51d307dc44045597c9978bec0f842e6bb40d19b9444084cfa30d9ed4f2910160405180910390a1601055565b600a546001600160a01b0383811691161462000591576200051b8183600a60009054906101000a90046001600160a01b03166200081d60201b62002a5b1760201c565b62000591576040805162461bcd60e51b81526020600482015260248101919091527f5661726961626c655265776172647353747261746567793a3a5377617020706160448201527f697220646f6573206e6f7420636f6e7461696e2072657761726420746f6b656e606482015260840162000320565b6001600160a01b038083166000818152601260209081526040822080549486166001600160a01b03199586161790556013805460018181018355919093527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09090920180549094169092179092556014546200061792909162002a4f62000808821b17901c565b601455604080516001600160a01b038085168252831660208201527f916e172c080569186aa7ea048268267257cf7cc49505908863f747bca8620f80910160405180910390a15050565b6006546001600160a01b03163314620006ac5760405162461bcd60e51b8152602060048201819052602482015260008051602062006392833981519152604482015260640162000320565b600e5481151560ff909116151503620006c457600080fd5b600e805460ff19168215159081179091556040519081527f7b014ed3854e7f5cb0218d58b3c6ae7d53a68bb0af2f67bfb029ea42c38a7e859060200160405180910390a150565b6006546001600160a01b03163314620007565760405162461bcd60e51b8152602060048201819052602482015260008051602062006392833981519152604482015260640162000320565b6001600160a01b038116620007bd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000320565b6006546040516001600160a01b03808416921690600080516020620063b283398151915290600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b600062000816828462000e41565b9392505050565b6000836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200085e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000884919062000e5c565b6001600160a01b0316836001600160a01b03161480620009195750836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000904919062000e5c565b6001600160a01b0316836001600160a01b0316145b801562000a1b5750836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000960573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000986919062000e5c565b6001600160a01b0316826001600160a01b0316148062000a1b5750836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015620009e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a06919062000e5c565b6001600160a01b0316826001600160a01b0316145b801562000a3a5750816001600160a01b0316836001600160a01b031614155b949350505050565b82805462000a509062000e7a565b90600052602060002090601f01602090048101928262000a74576000855562000abf565b82601f1062000a8f57805160ff191683800117855562000abf565b8280016001018555821562000abf579182015b8281111562000abf57825182559160200191906001019062000aa2565b5062000acd92915062000ad1565b5090565b5b8082111562000acd576000815560010162000ad2565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171562000b235762000b2362000ae8565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000b545762000b5462000ae8565b604052919050565b80516001600160a01b038116811462000b7457600080fd5b919050565b600082601f83011262000b8b57600080fd5b815160206001600160401b0382111562000ba95762000ba962000ae8565b62000bb9818360051b0162000b29565b82815260069290921b8401810191818101908684111562000bd957600080fd5b8286015b8481101562000c2f576040818903121562000bf85760008081fd5b62000c0262000afe565b62000c0d8262000b5c565b815262000c1c85830162000b5c565b8186015283529183019160400162000bdd565b509695505050505050565b60006060828403121562000c4d57600080fd5b604051606081016001600160401b038111828210171562000c725762000c7262000ae8565b80604052508091508251815260208301516020820152604083015160408201525092915050565b60008060008060008060008060006101608a8c03121562000cb957600080fd5b89516001600160401b038082111562000cd157600080fd5b818c0191508c601f83011262000ce657600080fd5b81518181111562000cfb5762000cfb62000ae8565b602062000d11601f8301601f1916820162000b29565b8281528f8284870101111562000d2657600080fd5b60005b8381101562000d4657858101830151828201840152820162000d29565b8381111562000d585760008385840101525b509c5062000d688e820162000b5c565b9b50505062000d7a60408d0162000b5c565b985060608c0151975060808c015191508082111562000d9857600080fd5b5062000da78c828d0162000b79565b95505062000db860a08b0162000b5c565b935062000dc860c08b0162000b5c565b925062000dd860e08b0162000b5c565b915062000dea8b6101008c0162000c3a565b90509295985092959850929598565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820162000e3a5762000e3a62000e0f565b5060010190565b6000821982111562000e575762000e5762000e0f565b500190565b60006020828403121562000e6f57600080fd5b620008168262000b5c565b600181811c9082168062000e8f57607f821691505b60208210810362000eb057634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161540f62000f8360003960008181610752015261473d015260008181610479015281816105d6015281816111d8015281816126c3015281816137c201528181613fb80152614813015260008181610a170152818161179001528181612f5d015281816134a00152818161356c0152818161361f01528181613ea101528181614478015261453201526000818161086c0152818161176101528181612f2d01528181613546015281816135e301528181613e740152614505015261540f6000f3fe6080604052600436106104695760003560e01c80638aff733d11610243578063bd079f5511610143578063e21ac825116100bb578063f23a6e611161008a578063f7c618c11161006f578063f7c618c114610e3e578063fdb5a03e14610e5e578063ffebad3014610e7357600080fd5b8063f23a6e6114610da8578063f2fde38b14610e1e57600080fd5b8063e21ac82514610d33578063e75ab04514610d53578063eab89a5a14610d73578063ed24911d14610d9357600080fd5b8063d505accf11610112578063dbd9a4d4116100f7578063dbd9a4d414610cb8578063dd62ed3e14610ccd578063dd8ce4d614610d1357600080fd5b8063d505accf14610c78578063da09c72c14610c9857600080fd5b8063bd079f5514610c0d578063c4b24a4614610c23578063c89039c514610c38578063cff1b6ef14610c5857600080fd5b80639e4e7318116101d6578063a9059cbb116101a5578063b52a321f1161018a578063b52a321f14610bbe578063b6b55f2514610bd8578063b9e57b8014610bf857600080fd5b8063a9059cbb14610b7e578063ac0d31ff14610b9e57600080fd5b80639e4e731814610ad4578063a4d5e67c14610b08578063a5534e7114610b28578063a8ae2b7c14610b5e57600080fd5b80638ea42f30116102125780638ea42f3014610a575780639291d56314610a7f57806395d89b4114610a9f57806399729ec114610ab457600080fd5b80638aff733d146109cf5780638b73e606146109e55780638ba8d34514610a055780638da5cb5b14610a3957600080fd5b806340b47e1a11610369578063715018a6116102e15780637d882097116102b0578063818372301161029557806381837230146109675780638570ff90146109875780638980f11f146109af57600080fd5b80637d882097146109255780637ecebe001461093a57600080fd5b8063715018a6146108c4578063789139bc146108d957806379085425146108ef5780637ae267731461090557600080fd5b80634e77ace5116103385780635ea682ea1161031d5780635ea682ea146108445780635eaec0e41461085a57806370a082311461088e57600080fd5b80634e77ace5146108045780634ebb79161461082457600080fd5b806340b47e1a14610774578063483c2ef0146107945780634a970be7146107c45780634bebd1e7146107e457600080fd5b806323b872dd116103fc57806330adf81f116103cb578063313ce567116103b0578063313ce567146107035780633bdc6e721461072a5780633c2a29a91461074057600080fd5b806330adf81f146106ba578063311c65e0146106ee57600080fd5b806323b872dd1461065a578063247d284b146105a45780632e1a7d4d1461067a5780632f4f21e21461069a57600080fd5b8063110560351161043857806311056035146105a457806313703b23146105c457806318160ddd1461061057806320606b701461062657600080fd5b806306fdde0314610510578063076771111461053b578063095ea7b31461055f5780630f23475d1461058f57600080fd5b3661050b57336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806104b857503373b31f66aa3c1e785363f0875a1b74e27b85fd66c7145b6105095760405162461bcd60e51b815260206004820152600b60248201527f6e6f7420616c6c6f77656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561051c57600080fd5b50610525610e9b565b6040516105329190614c5f565b60405180910390f35b34801561054757600080fd5b50610551600f5481565b604051908152602001610532565b34801561056b57600080fd5b5061057f61057a366004614c87565b610f29565b6040519015158152602001610532565b34801561059b57600080fd5b50610551610f3f565b3480156105b057600080fd5b506105516105bf366004614cb3565b610f6a565b3480156105d057600080fd5b506105f87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610532565b34801561061c57600080fd5b5061055160025481565b34801561063257600080fd5b506105517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b34801561066657600080fd5b5061057f610675366004614ccc565b610f7b565b34801561068657600080fd5b50610509610695366004614cb3565b61105f565b3480156106a657600080fd5b506105096106b5366004614c87565b611162565b3480156106c657600080fd5b506105517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b3480156106fa57600080fd5b50610509611170565b34801561070f57600080fd5b50610718601281565b60405160ff9091168152602001610532565b34801561073657600080fd5b5061055160075481565b34801561074c57600080fd5b506105f87f000000000000000000000000000000000000000000000000000000000000000081565b34801561078057600080fd5b5061050961078f366004614d0d565b611258565b3480156107a057600080fd5b5061057f6107af366004614d46565b60086020526000908152604090205460ff1681565b3480156107d057600080fd5b506105096107df366004614d79565b6112b3565b3480156107f057600080fd5b506105096107ff366004614d46565b611365565b34801561081057600080fd5b5061050961081f366004614dce565b611482565b34801561083057600080fd5b5061050961083f366004614cb3565b611529565b34801561085057600080fd5b5061055160115481565b34801561086657600080fd5b506105517f000000000000000000000000000000000000000000000000000000000000000081565b34801561089a57600080fd5b506105516108a9366004614d46565b6001600160a01b031660009081526004602052604090205490565b3480156108d057600080fd5b506105096115e3565b3480156108e557600080fd5b50610551600d5481565b3480156108fb57600080fd5b5061055160145481565b34801561091157600080fd5b50610509610920366004614d0d565b611675565b34801561093157600080fd5b50610551611739565b34801561094657600080fd5b50610551610955366004614d46565b60056020526000908152604090205481565b34801561097357600080fd5b50610509610982366004614cb3565b611808565b34801561099357600080fd5b506105f8736026a85e11bd895c934af02647e8c7b4ea2d980881565b3480156109bb57600080fd5b506105096109ca366004614c87565b611891565b3480156109db57600080fd5b5061055160105481565b3480156109f157600080fd5b50610509610a00366004614d46565b6119a7565b348015610a1157600080fd5b506105f87f000000000000000000000000000000000000000000000000000000000000000081565b348015610a4557600080fd5b506006546001600160a01b03166105f8565b348015610a6357600080fd5b506105f873f7d9281e8e363584973f946201b82ba72c965d2781565b348015610a8b57600080fd5b50610509610a9a366004614d46565b611b62565b348015610aab57600080fd5b50610525611c1c565b348015610ac057600080fd5b50610509610acf366004614cb3565b611c29565b348015610ae057600080fd5b506105517fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b348015610b1457600080fd5b50610509610b23366004614d46565b611cd5565b348015610b3457600080fd5b506105f8610b43366004614d46565b6012602052600090815260409020546001600160a01b031681565b348015610b6a57600080fd5b50610509610b79366004614cb3565b611f0b565b348015610b8a57600080fd5b5061057f610b99366004614c87565b611fb7565b348015610baa57600080fd5b50610509610bb9366004614deb565b611fc4565b348015610bca57600080fd5b50600e5461057f9060ff1681565b348015610be457600080fd5b50610509610bf3366004614cb3565b6121f4565b348015610c0457600080fd5b50610551612201565b348015610c1957600080fd5b50610551600c5481565b348015610c2f57600080fd5b50610551612246565b348015610c4457600080fd5b506009546105f8906001600160a01b031681565b348015610c6457600080fd5b50610509610c73366004614cb3565b6124b4565b348015610c8457600080fd5b50610509610c93366004614e10565b612548565b348015610ca457600080fd5b50600b546105f8906001600160a01b031681565b348015610cc457600080fd5b5061050961265b565b348015610cd957600080fd5b50610551610ce8366004614d0d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610d1f57600080fd5b50610551610d2e366004614cb3565b612713565b348015610d3f57600080fd5b50610509610d4e366004614cb3565b61274d565b348015610d5f57600080fd5b506105f8610d6e366004614cb3565b6127d6565b348015610d7f57600080fd5b50610551610d8e366004614cb3565b612800565b348015610d9f57600080fd5b50610551612834565b348015610db457600080fd5b50610ded610dc3366004614eed565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610532565b348015610e2a57600080fd5b50610509610e39366004614d46565b6128d4565b348015610e4a57600080fd5b50600a546105f8906001600160a01b031681565b348015610e6a57600080fd5b506105096129f4565b348015610e7f57600080fd5b506105f8736e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd81565b60008054610ea890614fa6565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed490614fa6565b8015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b505050505081565b6000610f36338484612c70565b50600192915050565b600080610f4a611739565b90506000610f5782612d7e565b9050610f638282612d91565b9250505090565b6000610f7582612d7e565b92915050565b6001600160a01b038316600081815260036020908152604080832033808552925282205491929091908214801590610fb557506000198114155b15611046576000610fe1856040518060600160405280602f8152602001615356602f9139849190612d9d565b6001600160a01b038881166000818152600360209081526040808320948916808452948252918290208590559051848152939450919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b611051868686612dc9565b6001925050505b9392505050565b600061106a82612800565b9050600081116110e25760405162461bcd60e51b815260206004820152603060248201527f5661726961626c655265776172647353747261746567793a3a5769746864726160448201527f7720616d6f756e7420746f6f206c6f77000000000000000000000000000000006064820152608401610500565b60006110ed82612f05565b905060006110fa83612d7e565b905061111d3361110a8484612d91565b6009546001600160a01b03169190612fc7565b6111273385613033565b60405183815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a250505050565b61116c8282613109565b5050565b600b546001600160a01b031633146111c15760405162461bcd60e51b81526020600482015260146024820152732cb0b5a9ba3930ba32b3bc9d1d37b7363ca232bb60611b6044820152606401610500565b60405163a22cb46560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260006024820152736026a85e11bd895c934af02647e8c7b4ea2d98089063a22cb465906044015b600060405180830381600087803b15801561123e57600080fd5b505af1158015611252573d6000803e3d6000fd5b50505050565b600b546001600160a01b031633146112a95760405162461bcd60e51b81526020600482015260146024820152732cb0b5a9ba3930ba32b3bc9d1d37b7363ca232bb60611b6044820152606401610500565b61116c828261332a565b6009546040517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c481018390526001600160a01b039091169063d505accf9060e401600060405180830381600087803b15801561133c57600080fd5b505af1158015611350573d6000803e3d6000fd5b5050505061135e3386613109565b5050505050565b6006546001600160a01b031633146113ad5760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b6001600160a01b03811660009081526008602052604090205460ff16156114165760405162461bcd60e51b815260206004820152601c60248201527f5065726d697373696f6e65643a3a616c6c6f774465706f7369746f72000000006044820152606401610500565b6001600160a01b0381166000908152600860205260409020805460ff1916600190811790915560075461144891612a4f565b6007556040516001600160a01b038216907fc0a1035c16faf8d1304056d92c00edf028f87e62b8235a938f00af9e3c0312c590600090a250565b6006546001600160a01b031633146114ca5760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b600e5481151560ff9091161515036114e157600080fd5b600e805460ff19168215159081179091556040519081527f7b014ed3854e7f5cb0218d58b3c6ae7d53a68bb0af2f67bfb029ea42c38a7e85906020015b60405180910390a150565b6006546001600160a01b031633146115715760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b6000811161157e57600080fd5b604051339082156108fc029083906000818181858888f193505050501580156115ab573d6000803e3d6000fd5b506040805160008152602081018390527f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28910161151e565b6006546001600160a01b0316331461162b5760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031633146116bd5760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b60405163095ea7b360e01b81526001600160a01b0382811660048301526000602483015283169063095ea7b3906044016020604051808303816000875af115801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190614fda565b61116c57600080fd5b6040517f93f1a40b0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523060248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906393f1a40b906044016040805180830381865afa1580156117de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118029190614ff7565b50919050565b6006546001600160a01b031633146118505760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b600c5460408051918252602082018390527f481f79ac3a523b6d6db3c5a720e190e986d1cc1b41adcdf50f9caef849901100910160405180910390a1600c55565b6006546001600160a01b031633146118d95760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b600081116118e657600080fd5b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611933573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119579190614fda565b61196057600080fd5b604080516001600160a01b0384168152602081018390527f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa2891015b60405180910390a15050565b6006546001600160a01b031633146119ef5760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b600060075411611a675760405162461bcd60e51b815260206004820152603460248201527f5065726d697373696f6e65643a3a72656d6f76654465706f7369746f722c206e60448201527f6f20616c6c6f776564206465706f7369746f72730000000000000000000000006064820152608401610500565b6001600160a01b03811660009081526008602052604090205460ff161515600114611afa5760405162461bcd60e51b815260206004820152602a60248201527f5065726d697373696f6e65643a3a72656d6f76654465706f7369746f722c206e60448201527f6f7420616c6c6f776564000000000000000000000000000000000000000000006064820152608401610500565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754611b28906001612d91565b6007556040516001600160a01b038216907f0e86f6608b536e5339a25b65ff531f5ea91e1313d056ecd4752b35cbd16137d490600090a250565b600b546001600160a01b03163314611bb35760405162461bcd60e51b81526020600482015260146024820152732cb0b5a9ba3930ba32b3bc9d1d37b7363ca232bb60611b6044820152606401610500565b600b54604080516001600160a01b03928316815291831660208301527fa8e91499ed37682f43cffb045fcc7d379a91e8c9a14e6321877ee34dee564c00910160405180910390a1600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60018054610ea890614fa6565b6006546001600160a01b03163314611c715760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b612710611c8960105483612a4f90919063ffffffff16565b1115611c9457600080fd5b60115460408051918252602082018390527f2a42303d002f0ba6cfe8259c91d4684443fb0b3de286ba74991175d651726131910160405180910390a1601155565b600b546001600160a01b03163314611d265760405162461bcd60e51b81526020600482015260146024820152732cb0b5a9ba3930ba32b3bc9d1d37b7363ca232bb60611b6044820152606401610500565b6001600160a01b038116600090815260126020526040812080546001600160a01b0319169055805b601354811015611e1a5760138181548110611d6b57611d6b61501b565b6000918252602090912001546001600160a01b0390811690841603611e08576013805460019350611d9d908490615047565b81548110611dad57611dad61501b565b600091825260209091200154601380546001600160a01b039092169183908110611dd957611dd961501b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b80611e128161505e565b915050611d4e565b5080611e8e5760405162461bcd60e51b815260206004820152603460248201527f5661726961626c655265776172647353747261746567793a3a5265776172642060448201527f746f2064656c657465206e6f7420666f756e64210000000000000000000000006064820152608401610500565b6013805480611e9f57611e9f615077565b600082815260209020810160001990810180546001600160a01b0319169055019055601454611ecf906001612d91565b6014556040516001600160a01b03831681527f963b7c735475147a62c589c2d7cb8ec4b0a6b7af4f97373d79ebfa42ab8aa7dc9060200161199b565b6006546001600160a01b03163314611f535760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b612710611f6b60115483612a4f90919063ffffffff16565b1115611f7657600080fd5b60105460408051918252602082018390527fe7f97d51d307dc44045597c9978bec0f842e6bb40d19b9444084cfa30d9ed4f2910160405180910390a1601055565b6000610f36338484612dc9565b6006546001600160a01b0316331461200c5760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612055573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612079919061508d565b9050612083613486565b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156120cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f0919061508d565b9050836120fd8284612d91565b10156121975760405162461bcd60e51b815260206004820152604d60248201527f5661726961626c655265776172647353747261746567793a3a456d657267656e60448201527f6379207769746864726177206d696e696d756d2072657475726e20616d6f756e60648201527f74206e6f74207265616368656400000000000000000000000000000000000000608482015260a401610500565b7fc7606d21ac05cd309191543e409f0845c016120563783d70e4f41419dc0ef2346121c0611739565b6002546040805192835260208301919091520160405180910390a1600e5460ff161515600103611252576112526000611482565b6121fe3382613109565b50565b60008061220c612246565b9050600c54811061223e57612238612710612232601054846135a390919063ffffffff16565b906135af565b91505090565b600091505090565b6000806122516135bb565b6040516370a0823160e01b815230600482015290915060009073b31f66aa3c1e785363f0875a1b74e27b85fd66c7906370a0823190602401602060405180830381865afa1580156122a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ca919061508d565b90506122d68147612a4f565b5060005b82518110156124ad5760008382815181106122f7576122f761501b565b602002602001015160000151905073b31f66aa3c1e785363f0875a1b74e27b85fd66c76001600160a01b0316816001600160a01b031603612369576123628483815181106123475761234761501b565b60200260200101516020015184612a4f90919063ffffffff16565b925061249a565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156123b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d4919061508d565b905060006124088685815181106123ed576123ed61501b565b60200260200101516020015183612a4f90919063ffffffff16565b90506000601260008887815181106124225761242261501b565b602090810291909101810151516001600160a01b0390811683529082019290925260400160002054169050811580159061246457506001600160a01b03811615155b156124965761249361248c838673b31f66aa3c1e785363f0875a1b74e27b85fd66c78561385d565b8790612a4f565b95505b5050505b50806124a58161505e565b9150506122da565b5092915050565b6006546001600160a01b031633146124fc5760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b801561250757600080fd5b600f5460408051918252602082018390527f3cc372f330f95ac9540626dc8a25f5bf21ba607215a5d58304cb804d446f104a910160405180910390a1600f55565b428410156125985760405162461bcd60e51b815260206004820152600f60248201527f7065726d69743a3a6578706972656400000000000000000000000000000000006044820152606401610500565b6001600160a01b038716600090815260056020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866125e58361505e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050612646888286868661391b565b612651888888612c70565b5050505050505050565b600b546001600160a01b031633146126ac5760405162461bcd60e51b81526020600482015260146024820152732cb0b5a9ba3930ba32b3bc9d1d37b7363ca232bb60611b6044820152606401610500565b60405163a22cb46560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260016024820152736026a85e11bd895c934af02647e8c7b4ea2d98089063a22cb46590604401611224565b6000612729612720611739565b600254906135a3565b600003612734575090565b610f7561273f611739565b6002546122329085906135a3565b6006546001600160a01b031633146127955760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b600d5460408051918252602082018390527fa5dae50539d56dfe1fb5273d883b0c39bc76750a25d036fc5fbd09ad8fd5f57f910160405180910390a1600d55565b601381815481106127e657600080fd5b6000918252602090912001546001600160a01b0316905081565b600061280d612720611739565b60000361281c57506000919050565b610f7560025461223261282d611739565b85906135a3565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60001b600060405161286991906150a6565b6040519081900390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6006546001600160a01b0316331461291c5760405162461bcd60e51b815260206004820181905260248201526000805160206153368339815191526044820152606401610500565b6001600160a01b0381166129985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610500565b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b323314612a435760405162461bcd60e51b815260206004820152601460248201527f59616b53747261746567793a3a6f6e6c79454f410000000000000000000000006044820152606401610500565b612a4d6000613a7b565b565b60006110588284615141565b6000836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abf9190615159565b6001600160a01b0316836001600160a01b03161480612b505750836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3b9190615159565b6001600160a01b0316836001600160a01b0316145b8015612c4a5750836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb99190615159565b6001600160a01b0316826001600160a01b03161480612c4a5750836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c359190615159565b6001600160a01b0316826001600160a01b0316145b8015612c685750816001600160a01b0316836001600160a01b031614155b949350505050565b6001600160a01b038316612cc65760405162461bcd60e51b815260206004820152601c60248201527f5f617070726f76653a3a6f776e6572207a65726f2061646472657373000000006044820152606401610500565b6001600160a01b038216612d1c5760405162461bcd60e51b815260206004820152601e60248201527f5f617070726f76653a3a7370656e646572207a65726f206164647265737300006044820152606401610500565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008061105861271061223285846135a3565b60006110588284615047565b60008184841115612dc15760405162461bcd60e51b81526004016105009190614c5f565b505050900390565b6001600160a01b038216612e455760405162461bcd60e51b815260206004820152603460248201527f5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657260448201527f20746f20746865207a65726f20616464726573730000000000000000000000006064820152608401610500565b612e82816040518060600160405280602e81526020016153ac602e91396001600160a01b0386166000908152600460205260409020549190612d9d565b6001600160a01b038085166000908152600460205260408082209390935590841681522054612eb19082612a4f565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612d719085815260200190565b6040517f441a3e700000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006004820152602481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063441a3e7090604401600060405180830381600087803b158015612fa957600080fd5b505af1158015612fbd573d6000803e3d6000fd5b5093949350505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b17905261302e908490613bfe565b505050565b61307081604051806060016040528060278152602001615385602791396001600160a01b0385166000908152600460205260409020549190612d9d565b60046000846001600160a01b03166001600160a01b03168152602001908152602001600020819055506130c08160405180606001604052806027815260200161530f602791396002549190612d9d565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b600e5460ff1615156001146131865760405162461bcd60e51b815260206004820152602a60248201527f5661726961626c655265776172647353747261746567793a3a4465706f73697460448201527f732064697361626c6564000000000000000000000000000000000000000000006064820152608401610500565b600d54156131b0576000613198612246565b9050600d548111156131ae576131ae6001613a7b565b505b6009546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015613220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132449190614fda565b6132b65760405162461bcd60e51b815260206004820152603660248201527f5661726961626c655265776172647353747261746567793a3a4465706f73697460448201527f20746f6b656e207472616e73666572206661696c6564000000000000000000006064820152608401610500565b60006132c182612d7e565b90506132d9836132d4610d2e8585612d91565b613ce3565b6132e282613d67565b826001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c8360405161331d91815260200190565b60405180910390a2505050565b600a546001600160a01b038381169116146133cc57600a5461335890829084906001600160a01b0316612a5b565b6133cc576040805162461bcd60e51b81526020600482015260248101919091527f5661726961626c655265776172647353747261746567793a3a5377617020706160448201527f697220646f6573206e6f7420636f6e7461696e2072657761726420746f6b656e6064820152608401610500565b6001600160a01b03808316600081815260126020526040812080549385166001600160a01b03199485161790556013805460018181018355919092527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090909101805490931690911790915560145461344391612a4f565b601455604080516001600160a01b038085168252831660208201527f916e172c080569186aa7ea048268267257cf7cc49505908863f747bca8620f80910161199b565b60095460405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600060248301529091169063095ea7b3906044016020604051808303816000875af11580156134f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351d9190614fda565b506040517f5312ea8e0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635312ea8e90602401611224565b60006110588284615176565b60006110588284615195565b6040517fffcd42630000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015230602482015260609060009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ffcd426390604401600060405180830381865afa158015613666573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261368e91908101906151b7565b9350505091506000600267ffffffffffffffff8111156136b0576136b0614e7e565b6040519080825280602002602001820160405280156136f557816020015b60408051808201909152600080825260208201528152602001906001900390816136ce5790505b5090506040518060400160405280736e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd6001600160a01b03168152602001848152508160008151811061373d5761373d61501b565b6020026020010181905250604051806040016040528073b31f66aa3c1e785363f0875a1b74e27b85fd66c76001600160a01b0316815260200160008411613785576000613835565b6040517fa95b089f0000000000000000000000000000000000000000000000000000000081526001600482015260006024820152604481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a95b089f90606401602060405180830381865afa158015613811573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613835919061508d565b8152508160018151811061384b5761384b61501b565b60209081029190910101529392505050565b60008061386a8585613de6565b509050600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156138ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d2919061526a565b5091509150866001600160a01b0316836001600160a01b0316146138f257905b61390f88836001600160701b0316836001600160701b0316613e17565b98975050505050505050565b6000613925612834565b6040517f1901000000000000000000000000000000000000000000000000000000000000602082015260228101919091526042810186905260620160408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156139cb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590613a015750866001600160a01b0316816001600160a01b0316145b613a725760405162461bcd60e51b8152602060048201526024808201527f417263683a3a76616c69646174655369673a20696e76616c6964207369676e6160448201527f74757265000000000000000000000000000000000000000000000000000000006064820152608401610500565b50505050505050565b613a83613e65565b6000613a8d61402e565b905081613b0c57600c54811015613b0c5760405162461bcd60e51b815260206004820152603060248201527f5661726961626c655265776172647353747261746567793a3a5265696e76657360448201527f7420616d6f756e7420746f6f206c6f77000000000000000000000000000000006064820152608401610500565b6000613b29612710612232601154856135a390919063ffffffff16565b90508015613b4e57600b54600a54613b4e916001600160a01b03918216911683612fc7565b6000613b6b612710612232601054866135a390919063ffffffff16565b90508015613b8a57600a54613b8a906001600160a01b03163383612fc7565b6000613ba8613ba383613b9d8787612d91565b90612d91565b61426a565b9050613bb381613d67565b7fc7606d21ac05cd309191543e409f0845c016120563783d70e4f41419dc0ef234613bdc611739565b6002546040805192835260208301919091520160405180910390a15050505050565b6000613c53826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661444f9092919063ffffffff16565b80519091501561302e5780806020019051810190613c719190614fda565b61302e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610500565b600254613cf09082612a4f565b6002556001600160a01b038216600090815260046020526040902054613d169082612a4f565b6001600160a01b0383166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906130fd9085815260200190565b60008111613ddd5760405162461bcd60e51b815260206004820152602d60248201527f5661726961626c655265776172647353747261746567793a3a5374616b65206160448201527f6d6f756e7420746f6f206c6f77000000000000000000000000000000000000006064820152608401610500565b6121fe8161445e565b600080826001600160a01b0316846001600160a01b031610613e09578284613e0c565b83835b915091509250929050565b600080613e26856103e56135a3565b90506000613e3482856135a3565b90506000613e4e83613e48886103e86135a3565b90612a4f565b9050613e5a82826135af565b979650505050505050565b604051631c57762b60e31b81527f00000000000000000000000000000000000000000000000000000000000000006004820152600060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e2bbb15890604401600060405180830381600087803b158015613eed57600080fd5b505af1158015613f01573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201526000925073f7d9281e8e363584973f946201b82ba72c965d2791506370a0823190602401602060405180830381865afa158015613f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f7b919061508d565b905080156121fe576040516348b4aac360e11b815260016004820152600060248201819052604482018390526064820181905260001960848301527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916391695586919060a40160206040518083038185885af1158015614009573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061116c919061508d565b6040516370a0823160e01b8152306004820152600090819073b31f66aa3c1e785363f0875a1b74e27b85fd66c7906370a0823190602401602060405180830381865afa158015614082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a6919061508d565b60135490915060005b81811015614262576000601382815481106140cc576140cc61501b565b6000918252602090912001546001600160a01b031690507fffffffffffffffffffffffff4ce09955c3e187ac9c0f78a5e48b1d847a02993981016141965747801561418f5773b31f66aa3c1e785363f0875a1b74e27b85fd66c76001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561416057600080fd5b505af1158015614174573d6000803e3d6000fd5b505050505061418c8186612a4f90919063ffffffff16565b94505b5050614250565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156141dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614201919061508d565b9050801561424d576001600160a01b0380831660009081526012602052604090205416801561424b57600a546142489061248c90849086906001600160a01b031685614592565b95505b505b50505b8061425a8161505e565b9150506140af565b509092915050565b600080614278600284615195565b90506000600960009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142f39190615159565b90506000600960009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561434a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061436e9190615159565b90508273b31f66aa3c1e785363f0875a1b74e27b85fd66c76001600160a01b038416146143d4576001600160a01b03831673f7d9281e8e363584973f946201b82ba72c965d27146143c8576143c3848461471f565b6143d1565b6143d184614761565b90505b8373b31f66aa3c1e785363f0875a1b74e27b85fd66c76001600160a01b03841614614438576001600160a01b03831673f7d9281e8e363584973f946201b82ba72c965d271461442c57614427858461471f565b614435565b61443585614761565b90505b600954613e5a906001600160a01b0316838361488c565b6060612c688484600085614a81565b60095460405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490529091169063095ea7b3906044016020604051808303816000875af11580156144d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144f59190614fda565b50604051631c57762b60e31b81527f00000000000000000000000000000000000000000000000000000000000000006004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e2bbb15890604401600060405180830381600087803b15801561457e57600080fd5b505af115801561135e573d6000803e3d6000fd5b60008061459f8585613de6565b509050600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156145e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614607919061526a565b5091509150866001600160a01b0316836001600160a01b03161461462757905b6000806146478a856001600160701b0316856001600160701b0316613e17565b9050886001600160a01b0316856001600160a01b03161461466457905b6146786001600160a01b038a16888c612fc7565b604080516000815260208101918290527f022c0d9f000000000000000000000000000000000000000000000000000000009091526001600160a01b0388169063022c0d9f906146d090859085903090602481016152ba565b600060405180830381600087803b1580156146ea57600080fd5b505af11580156146fe573d6000803e3d6000fd5b5050505081811161470f5781614711565b805b9a9950505050505050505050565b60006110588373b31f66aa3c1e785363f0875a1b74e27b85fd66c7847f0000000000000000000000000000000000000000000000000000000000000000614592565b6040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810182905260009073b31f66aa3c1e785363f0875a1b74e27b85fd66c790632e1a7d4d90602401600060405180830381600087803b1580156147ca57600080fd5b505af11580156147de573d6000803e3d6000fd5b50506040516348b4aac360e11b81526000600482018190526001602483015260448201869052606482015260001960848201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063916955869150849060a40160206040518083038185885af1158015614867573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f75919061508d565b6000806000856001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156148cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148f3919061526a565b5091509150600061491786846001600160701b0316846001600160701b0316614bbe565b9050848111156149445784905061494185836001600160701b0316856001600160701b0316614bbe565b95505b6149bb8787896001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015614987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149ab9190615159565b6001600160a01b03169190612fc7565b6149fe8782896001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015614987573d6000803e3d6000fd5b6040517f6a6278420000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03881690636a627842906024016020604051808303816000875af1158015614a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e5a919061508d565b606082471015614af95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610500565b6001600160a01b0385163b614b505760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610500565b600080866001600160a01b03168587604051614b6c91906152f2565b60006040518083038185875af1925050503d8060008114614ba9576040519150601f19603f3d011682016040523d82523d6000602084013e614bae565b606091505b5091509150613e5a828286614bce565b6000612c688361223286856135a3565b60608315614bdd575081611058565b825115614bed5782518084602001fd5b8160405162461bcd60e51b81526004016105009190614c5f565b60005b83811015614c22578181015183820152602001614c0a565b838111156112525750506000910152565b60008151808452614c4b816020860160208601614c07565b601f01601f19169290920160200192915050565b6020815260006110586020830184614c33565b6001600160a01b03811681146121fe57600080fd5b60008060408385031215614c9a57600080fd5b8235614ca581614c72565b946020939093013593505050565b600060208284031215614cc557600080fd5b5035919050565b600080600060608486031215614ce157600080fd5b8335614cec81614c72565b92506020840135614cfc81614c72565b929592945050506040919091013590565b60008060408385031215614d2057600080fd5b8235614d2b81614c72565b91506020830135614d3b81614c72565b809150509250929050565b600060208284031215614d5857600080fd5b813561105881614c72565b803560ff81168114614d7457600080fd5b919050565b600080600080600060a08688031215614d9157600080fd5b8535945060208601359350614da860408701614d63565b94979396509394606081013594506080013592915050565b80151581146121fe57600080fd5b600060208284031215614de057600080fd5b813561105881614dc0565b60008060408385031215614dfe57600080fd5b823591506020830135614d3b81614dc0565b600080600080600080600060e0888a031215614e2b57600080fd5b8735614e3681614c72565b96506020880135614e4681614c72565b95506040880135945060608801359350614e6260808901614d63565b925060a0880135915060c0880135905092959891949750929550565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614ebd57614ebd614e7e565b604052919050565b600067ffffffffffffffff821115614edf57614edf614e7e565b50601f01601f191660200190565b600080600080600060a08688031215614f0557600080fd5b8535614f1081614c72565b94506020860135614f2081614c72565b93506040860135925060608601359150608086013567ffffffffffffffff811115614f4a57600080fd5b8601601f81018813614f5b57600080fd5b8035614f6e614f6982614ec5565b614e94565b818152896020838501011115614f8357600080fd5b816020840160208301376000602083830101528093505050509295509295909350565b600181811c90821680614fba57607f821691505b60208210810361180257634e487b7160e01b600052602260045260246000fd5b600060208284031215614fec57600080fd5b815161105881614dc0565b6000806040838503121561500a57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561505957615059615031565b500390565b60006001820161507057615070615031565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561509f57600080fd5b5051919050565b600080835481600182811c9150808316806150c257607f831692505b602080841082036150e157634e487b7160e01b86526022600452602486fd5b8180156150f5576001811461510657615133565b60ff19861689528489019650615133565b60008a81526020902060005b8681101561512b5781548b820152908501908301615112565b505084890196505b509498975050505050505050565b6000821982111561515457615154615031565b500190565b60006020828403121561516b57600080fd5b815161105881614c72565b600081600019048311821515161561519057615190615031565b500290565b6000826151b257634e487b7160e01b600052601260045260246000fd5b500490565b600080600080608085870312156151cd57600080fd5b8451935060208501516151df81614c72565b604086015190935067ffffffffffffffff8111156151fc57600080fd5b8501601f8101871361520d57600080fd5b805161521b614f6982614ec5565b81815288602083850101111561523057600080fd5b615241826020830160208601614c07565b60609790970151959894975050505050565b80516001600160701b0381168114614d7457600080fd5b60008060006060848603121561527f57600080fd5b61528884615253565b925061529660208501615253565b9150604084015163ffffffff811681146152af57600080fd5b809150509250925092565b8481528360208201526001600160a01b03831660408201526080606082015260006152e86080830184614c33565b9695505050505050565b60008251615304818460208701614c07565b919091019291505056fe5f6275726e3a206275726e20616d6f756e74206578636565647320746f74616c20737570706c794f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727472616e7366657246726f6d3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655f6275726e3a206275726e20616d6f756e7420657863656564732066726f6d2062616c616e63655f7472616e73666572546f6b656e733a207472616e7366657220657863656564732066726f6d2062616c616e6365a2646970667358221220d509a61d4ae4fbd9038e77f93f407d94ba73d9e2e1493affb3b6856c0e7fd4a064736f6c634300080d00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000512ab7ccf96af5512dbc2d4c93048f3f6a16608000000000000000000000000188bed1968b795d5c9022f6a0bb5931ac4c18f00000000000000000000000000000000000000000000000000000000000000004c00000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000f4003f4efbe8691b60249e6afbd307abe7758adb000000000000000000000000a974de60871907aafe3a4634766adb40df461c16000000000000000000000000dcedf06fd33e1d7b6eb4b309f779a0e9d3172e4400000000000000000000000000000000000000000000000000005af3107a400000000000000000000000000000000000000000000000000000000000000002bc000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000001a5969656c642059616b3a204a4c5020555344432d7979415641580000000000000000000000000000000000000000000000000000000000000000000000000000
0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000512ab7ccf96af5512dbc2d4c93048f3f6a16608000000000000000000000000188bed1968b795d5c9022f6a0bb5931ac4c18f00000000000000000000000000000000000000000000000000000000000000004c00000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000f4003f4efbe8691b60249e6afbd307abe7758adb000000000000000000000000a974de60871907aafe3a4634766adb40df461c16000000000000000000000000dcedf06fd33e1d7b6eb4b309f779a0e9d3172e4400000000000000000000000000000000000000000000000000005af3107a400000000000000000000000000000000000000000000000000000000000000002bc000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000001a5969656c642059616b3a204a4c5020555344432d7979415641580000000000000000000000000000000000000000000000000000000000000000000000000000