[ { "inputs": [ { "internalType": "address", "name": "_initialOwner", "type": "address" }, { "internalType": "address", "name": "_pancakeRouter", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "whitelistAddress", "type": "address" } ], "name": "AddUserToWhitelist", "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": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "LeftOverSellable", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "LockLP", "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": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "pancakePairAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "developerFundAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "vestingAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "lpNotesAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "referralAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "teamProsperityAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "lpAchievementAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "milestoneAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "creatorAddress", "type": "address" } ], "name": "SetandTransferToOtherWalletAddresses", "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": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "CREATOR_ALLOCATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEVELOPMENT_FUND", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LIQUIDITY_FUNDS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LP_ACHIEVEMENT_ALLOCATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LP_NOTES_ALLOCATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_BUY_PER_DAY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MILESTONE_ALLOCATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REFERRAL_ALLOCATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TEAM_PROSPERITY_SHARE_ALLOCATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOTAL_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VESTING_ALLOCATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_userAddress", "type": "address" } ], "name": "addUserToWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "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": [], "name": "creatorWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "dailyBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "dailySellAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "developmentFundWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "lastBuyTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "lastSellTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "leftOverSellable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "lockedLPAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpAchievementContract", "outputs": [ { "internalType": "contract LPAchievement", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpGurdian", "outputs": [ { "internalType": "contract AITECHLPGuardian", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpNotesContract", "outputs": [ { "internalType": "contract LPNotes", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "milestoneContract", "outputs": [ { "internalType": "contract Milestone", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pancakeSwapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "referralContract", "outputs": [ { "internalType": "contract Referral", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pancakeSwapV2Pair", "type": "address" }, { "internalType": "address", "name": "_developmentFundWallet", "type": "address" }, { "internalType": "address", "name": "_vestingAddress", "type": "address" }, { "internalType": "address", "name": "_lpNotesAddress", "type": "address" }, { "internalType": "address", "name": "_referralAddress", "type": "address" }, { "internalType": "address", "name": "_teamProsperityAddress", "type": "address" }, { "internalType": "address", "name": "_lpAchievementAddress", "type": "address" }, { "internalType": "address", "name": "_milestoneAddress", "type": "address" }, { "internalType": "address", "name": "_creatorWallet", "type": "address" }, { "internalType": "address", "name": "_lpGurdianAddress", "type": "address" } ], "name": "setAndTransferOtherWalletAddresses", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "teamProsperityContract", "outputs": [ { "internalType": "contract TeamProsperity", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "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": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vesting", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vestingContract", "outputs": [ { "internalType": "contract VestingAllocation", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whiteListAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506040516200621a3803806200621a833981810160405281019062000037919062001cb5565b816040518060400160405280600681526020017f41495445434b00000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f41494f00000000000000000000000000000000000000000000000000000000008152508160039081620000b5919062001f76565b508060049081620000c7919062001f76565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013f5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200013691906200206e565b60405180910390fd5b62000150816200021160201b60201c565b5060016006819055506000600760006101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550620001ab30698d2c09496426a6680000620002d760201b60201c565b620001c8308369152d02c7e14af68000006200036460201b60201c565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062002461565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200034c5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200034391906200206e565b60405180910390fd5b62000360600083836200046660201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620003d95760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401620003d091906200206e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200044e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200044591906200206e565b60405180910390fd5b620004618383836200046660201b60201c565b505050565b62015180601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442620004b79190620020ba565b11620004fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004f1906200217c565b60405180910390fd5b6000339050601260149054906101000a900460ff166200103f57620005246200105860201b60201c565b6200103e57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ebe1ff6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000597573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005bd9190620021db565b80620006595750600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663afbf4ceb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000632573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006589190620021db565b5b1562000793576000620006743284876200106f60201b60201c565b9050600062000689326200110d60201b60201c565b9050600081836200069b9190620020ba565b905080851115620007125760008186620006b69190620020ba565b905080601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007099190620020ba565b92505081905550505b7f5e80fadb1e452dbd1e3289b18966093943668866072e0600d116d1612a70eed7601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200078291906200221e565b60405180910390a15050506200103d565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160362000af457601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000aee57678ac7230489e8000082601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200089191906200223b565b1115620008d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008cc90620022c6565b60405180910390fd5b678ac7230489e8000082111562000923576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200091a90620022c6565b60405180910390fd5b600082601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200097291906200223b565b905062015180601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442620009c59190620020ba565b1062000a595782601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a9e565b80601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b678ac7230489e8000081111562000aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ae390620022c6565b60405180910390fd5b505b6200103c565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000bdb5762000b5d328386620017f360201b60201c565b7f5e80fadb1e452dbd1e3289b18966093943668866072e0600d116d1612a70eed7601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000bcd91906200221e565b60405180910390a16200103b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000c885750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801562000ce35750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801562000d3e5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801562000d995750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801562000df45750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801562000e4f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801562000eaa5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801562000f055750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156200103a57600062000f203284876200106f60201b60201c565b9050600062000f35326200110d60201b60201c565b90506000818362000f479190620020ba565b90508085111562000fbe576000818662000f629190620020ba565b905080601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000fb59190620020ba565b92505081905550505b7f5e80fadb1e452dbd1e3289b18966093943668866072e0600d116d1612a70eed7601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200102e91906200221e565b60405180910390a15050505b5b5b5b5b5b62001052848484620019d360201b60201c565b50505050565b6000600760009054906101000a900460ff16905090565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620010ee5783620010da8662001c0360201b60201c565b620010e691906200223b565b905062001102565b620010ff8562001c0360201b60201c565b90505b809150509392505050565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26846040518263ffffffff1660e01b81526004016200116d91906200206e565b602060405180830381865afa1580156200118b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011b1919062002319565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26856040518263ffffffff1660e01b81526004016200121291906200206e565b602060405180830381865afa15801562001230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001256919062002319565b90506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26866040518263ffffffff1660e01b8152600401620012b791906200206e565b602060405180830381865afa158015620012d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012fb919062002319565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26876040518263ffffffff1660e01b81526004016200135c91906200206e565b602060405180830381865afa1580156200137a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013a0919062002319565b90506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26886040518263ffffffff1660e01b81526004016200140191906200206e565b602060405180830381865afa1580156200141f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001445919062002319565b90506000601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828486888a6200149a91906200223b565b620014a691906200223b565b620014b291906200223b565b620014be91906200223b565b620014ca91906200223b565b905080601960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b81526004016200156d91906200206e565b600060405180830381600087803b1580156200158857600080fd5b505af11580156200159d573d6000803e3d6000fd5b50505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b8152600401620015fe91906200206e565b600060405180830381600087803b1580156200161957600080fd5b505af11580156200162e573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b81526004016200168f91906200206e565b600060405180830381600087803b158015620016aa57600080fd5b505af1158015620016bf573d6000803e3d6000fd5b50505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b81526004016200172091906200206e565b600060405180830381600087803b1580156200173b57600080fd5b505af115801562001750573d6000803e3d6000fd5b50505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b8152600401620017b191906200206e565b600060405180830381600087803b158015620017cc57600080fd5b505af1158015620017e1573d6000803e3d6000fd5b50505050809650505050505050919050565b62001804836200110d60201b60201c565b5060006200181a8484846200106f60201b60201c565b905060006064601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836200186d9190620020ba565b6200187991906200237a565b9050600081601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620018ca91906200223b565b90508085111562001912576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620019099062002402565b60405180910390fd5b818511156200198757600082866200192b9190620020ba565b905080601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200197e9190620020ba565b92505081905550505b42601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362001a2957806002600082825462001a1c91906200223b565b9250508190555062001aff565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562001ab8578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162001aaf9392919062002424565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362001b4a578060026000828254039250508190555062001b97565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162001bf691906200221e565b60405180910390a3505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001c7d8262001c50565b9050919050565b62001c8f8162001c70565b811462001c9b57600080fd5b50565b60008151905062001caf8162001c84565b92915050565b6000806040838503121562001ccf5762001cce62001c4b565b5b600062001cdf8582860162001c9e565b925050602062001cf28582860162001c9e565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062001d7e57607f821691505b60208210810362001d945762001d9362001d36565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262001dfe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001dbf565b62001e0a868362001dbf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062001e5762001e5162001e4b8462001e22565b62001e2c565b62001e22565b9050919050565b6000819050919050565b62001e738362001e36565b62001e8b62001e828262001e5e565b84845462001dcc565b825550505050565b600090565b62001ea262001e93565b62001eaf81848462001e68565b505050565b5b8181101562001ed75762001ecb60008262001e98565b60018101905062001eb5565b5050565b601f82111562001f265762001ef08162001d9a565b62001efb8462001daf565b8101602085101562001f0b578190505b62001f2362001f1a8562001daf565b83018262001eb4565b50505b505050565b600082821c905092915050565b600062001f4b6000198460080262001f2b565b1980831691505092915050565b600062001f66838362001f38565b9150826002028217905092915050565b62001f818262001cfc565b67ffffffffffffffff81111562001f9d5762001f9c62001d07565b5b62001fa9825462001d65565b62001fb682828562001edb565b600060209050601f83116001811462001fee576000841562001fd9578287015190505b62001fe5858262001f58565b86555062002055565b601f19841662001ffe8662001d9a565b60005b82811015620020285784890151825560018201915060208501945060208101905062002001565b8683101562002048578489015162002044601f89168262001f38565b8355505b6001600288020188555050505b505050505050565b620020688162001c70565b82525050565b60006020820190506200208560008301846200205d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620020c78262001e22565b9150620020d48362001e22565b9250828203905081811115620020ef57620020ee6200208b565b5b92915050565b600082825260208201905092915050565b7f63616e277420706572666f726d207478206265666f7265206f6e65206461792060008201527f6f662073656c6c00000000000000000000000000000000000000000000000000602082015250565b600062002164602783620020f5565b9150620021718262002106565b604082019050919050565b60006020820190508181036000830152620021978162002155565b9050919050565b60008115159050919050565b620021b5816200219e565b8114620021c157600080fd5b50565b600081519050620021d581620021aa565b92915050565b600060208284031215620021f457620021f362001c4b565b5b60006200220484828501620021c4565b91505092915050565b620022188162001e22565b82525050565b60006020820190506200223560008301846200220d565b92915050565b6000620022488262001e22565b9150620022558362001e22565b925082820190508082111562002270576200226f6200208b565b5b92915050565b7f457863656564206d617820627579207065722064617900000000000000000000600082015250565b6000620022ae601683620020f5565b9150620022bb8262002276565b602082019050919050565b60006020820190508181036000830152620022e1816200229f565b9050919050565b620022f38162001e22565b8114620022ff57600080fd5b50565b6000815190506200231381620022e8565b92915050565b60006020828403121562002332576200233162001c4b565b5b6000620023428482850162002302565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620023878262001e22565b9150620023948362001e22565b925082620023a757620023a66200234b565b5b828204905092915050565b7f20416d6f756e742053656c6c206c696d69742052656163686564200000000000600082015250565b6000620023ea601b83620020f5565b9150620023f782620023b2565b602082019050919050565b600060208201905081810360008301526200241d81620023db565b9050919050565b60006060820190506200243b60008301866200205d565b6200244a60208301856200220d565b6200245960408301846200220d565b949350505050565b613da980620024716000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c80638456cb5911610167578063cf52a7b2116100ce578063ef7898d011610087578063ef7898d0146107ee578063f0e8065f1461081e578063f2fde38b1461083c578063f72952af14610858578063f887ea4014610876578063fb0c65d01461089457610295565b8063cf52a7b214610704578063d882be1b14610734578063da4ed32614610752578063dd62ed3e14610770578063dfa728b3146107a0578063ea631353146107d057610295565b8063960eaa9311610120578063960eaa931461061a578063a9059cbb14610638578063b61a953914610668578063ba1f25b514610686578063ca042c61146106a4578063cd66a5bd146106d457610295565b80638456cb591461057a578063883a58a3146105845780638da5cb5b146105a25780638f268356146105c0578063902d55a5146105de57806395d89b41146105fc57610295565b8063357af0071161020b5780635e6f6045116101c45780635e6f6045146104ca57806370a08231146104e8578063715018a614610518578063747b8050146105225780637cdc65f21461053e5780637dad19db1461055c57610295565b8063357af0071461042a5780633ef096c6146104485780633f4ba83a146104665780633fdcdf431461047057806344c63eec1461048e5780635c975abb146104ac57610295565b80630cd1b8e11161025d5780630cd1b8e11461035257806318160ddd1461037057806323b872dd1461038e5780632bc73063146103be578063313ce567146103dc57806333cbeaa0146103fa57610295565b806305f2000b1461029a57806306fdde03146102ca57806307ecab95146102e8578063095ea7b31461030657806309a9281514610336575b600080fd5b6102b460048036038101906102af9190613357565b6108b2565b6040516102c1919061339d565b60405180910390f35b6102d26108ca565b6040516102df9190613448565b60405180910390f35b6102f061095c565b6040516102fd919061339d565b60405180910390f35b610320600480360381019061031b9190613496565b61096a565b60405161032d91906134f1565b60405180910390f35b610350600480360381019061034b919061350c565b61098d565b005b61035a611007565b604051610367919061339d565b60405180910390f35b610378611015565b604051610385919061339d565b60405180910390f35b6103a860048036038101906103a391906135eb565b61101f565b6040516103b591906134f1565b60405180910390f35b6103c661104e565b6040516103d3919061339d565b60405180910390f35b6103e461105c565b6040516103f1919061365a565b60405180910390f35b610414600480360381019061040f9190613357565b611065565b604051610421919061339d565b60405180910390f35b61043261107d565b60405161043f91906136d4565b60405180910390f35b6104506110a3565b60405161045d919061339d565b60405180910390f35b61046e6110b1565b005b6104786110c3565b6040516104859190613710565b60405180910390f35b6104966110e9565b6040516104a3919061373a565b60405180910390f35b6104b461110f565b6040516104c191906134f1565b60405180910390f35b6104d2611126565b6040516104df9190613776565b60405180910390f35b61050260048036038101906104fd9190613357565b61114c565b60405161050f919061339d565b60405180910390f35b610520611194565b005b61053c60048036038101906105379190613357565b6111a8565b005b610546611242565b604051610553919061373a565b60405180910390f35b610564611268565b60405161057191906137b2565b60405180910390f35b61058261128e565b005b61058c6112a0565b604051610599919061339d565b60405180910390f35b6105aa6112ae565b6040516105b7919061373a565b60405180910390f35b6105c86112d8565b6040516105d5919061339d565b60405180910390f35b6105e66112e6565b6040516105f3919061339d565b60405180910390f35b6106046112f4565b6040516106119190613448565b60405180910390f35b610622611386565b60405161062f919061339d565b60405180910390f35b610652600480360381019061064d9190613496565b611392565b60405161065f91906134f1565b60405180910390f35b6106706113b5565b60405161067d919061373a565b60405180910390f35b61068e6113db565b60405161069b91906137ee565b60405180910390f35b6106be60048036038101906106b99190613357565b611401565b6040516106cb919061339d565b60405180910390f35b6106ee60048036038101906106e99190613357565b611419565b6040516106fb919061339d565b60405180910390f35b61071e60048036038101906107199190613357565b611431565b60405161072b91906134f1565b60405180910390f35b61073c611451565b604051610749919061339d565b60405180910390f35b61075a61145f565b604051610767919061339d565b60405180910390f35b61078a60048036038101906107859190613809565b61146d565b604051610797919061339d565b60405180910390f35b6107ba60048036038101906107b59190613357565b6114f4565b6040516107c7919061339d565b60405180910390f35b6107d861150c565b6040516107e5919061386a565b60405180910390f35b61080860048036038101906108039190613357565b611532565b604051610815919061339d565b60405180910390f35b61082661154a565b604051610833919061339d565b60405180910390f35b61085660048036038101906108519190613357565b611558565b005b6108606115de565b60405161086d91906138a6565b60405180910390f35b61087e611604565b60405161088b919061373a565b60405180910390f35b61089c61162a565b6040516108a9919061373a565b60405180910390f35b60196020528060005260406000206000915090505481565b6060600380546108d9906138f0565b80601f0160208091040260200160405190810160405280929190818152602001828054610905906138f0565b80156109525780601f1061092757610100808354040283529160200191610952565b820191906000526020600020905b81548152906001019060200180831161093557829003601f168201915b5050505050905090565b6903635c9adc5dea00000081565b600080610975611650565b9050610982818585611658565b600191505092915050565b61099561166a565b601260149054906101000a900460ff166109e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109db90613993565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555089601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ce630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16690e1df89a1c64df6800006116f1565b610d1d30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16690878678326eac90000006116f1565b610d5430600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166921e19e0c9bab240000006116f1565b610d8b30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16690878678326eac90000006116f1565b610dc230600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166914542ba12a337c0000006116f1565b610df930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16690a2a15d09519be0000006116f1565b610e3030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166903635c9adc5dea0000006116f1565b610e6730600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669152d02c7e14af68000006116f1565b6000601260146101000a81548160ff0219169083151502179055507f7a296149ec2059a98dd9e4891f7012d86cd3595fb8443b040bb9233595f3bb15601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610ff3999897969594939291906139b3565b60405180910390a150505050505050505050565b6914542ba12a337c00000081565b6000600254905090565b60008061102a611650565b90506110378582856117e5565b6110428585856116f1565b60019150509392505050565b69152d02c7e14af680000081565b60006012905090565b60156020528060005260406000206000915090505481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b690a2a15d09519be00000081565b6110b961166a565b6110c1611879565b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900460ff16905090565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61119c61166a565b6111a660006118dc565b565b6111b061166a565b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ffb73a3432456879f21e23eae08293e937e50c0851e8d75d6d81c59bd4525631a81604051611237919061373a565b60405180910390a150565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61129661166a565b61129e6119a2565b565b690e1df89a1c64df68000081565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6921e19e0c9bab2400000081565b698d2c09496426a668000081565b606060048054611303906138f0565b80601f016020809104026020016040519081016040528092919081815260200182805461132f906138f0565b801561137c5780601f106113515761010080835404028352916020019161137c565b820191906000526020600020905b81548152906001019060200180831161135f57829003601f168201915b5050505050905090565b678ac7230489e8000081565b60008061139d611650565b90506113aa8185856116f1565b600191505092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60186020528060005260406000206000915090505481565b60166020528060005260406000206000915090505481565b60136020528060005260406000206000915054906101000a900460ff1681565b690878678326eac900000081565b69152d02c7e14af680000081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60176020528060005260406000206000915090505481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60146020528060005260406000206000915090505481565b690878678326eac900000081565b61156061166a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115d25760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016115c9919061373a565b60405180910390fd5b6115db816118dc565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b6116658383836001611a05565b505050565b611672611650565b73ffffffffffffffffffffffffffffffffffffffff166116906112ae565b73ffffffffffffffffffffffffffffffffffffffff16146116ef576116b3611650565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116e6919061373a565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117635760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161175a919061373a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d55760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016117cc919061373a565b60405180910390fd5b6117e0838383611bdc565b505050565b60006117f1848461146d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118735781811015611863578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161185a93929190613a40565b60405180910390fd5b61187284848484036000611a05565b5b50505050565b611881612753565b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6118c5611650565b6040516118d2919061373a565b60405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6119aa612793565b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119ee611650565b6040516119fb919061373a565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611a775760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611a6e919061373a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ae95760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611ae0919061373a565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015611bd6578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611bcd919061339d565b60405180910390a35b50505050565b62015180601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442611c2b9190613aa6565b11611c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6290613b4c565b60405180910390fd5b6000339050601260149054906101000a900460ff1661274257611c8c61110f565b61274157600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ebe1ff6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d219190613b98565b80611db95750600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663afbf4ceb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db89190613b98565b5b15611ed8576000611dcb3284876127d4565b90506000611dd83261285e565b905060008183611de89190613aa6565b905080851115611e5a5760008186611e009190613aa6565b905080601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e519190613aa6565b92505081905550505b7f5e80fadb1e452dbd1e3289b18966093943668866072e0600d116d1612a70eed7601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611ec8919061339d565b60405180910390a1505050612740565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361222557601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661222057678ac7230489e8000082601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd29190613bc5565b1115612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a90613c45565b60405180910390fd5b678ac7230489e8000082111561205e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205590613c45565b60405180910390fd5b600082601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ab9190613bc5565b905062015180601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054426120fc9190613aa6565b1061218e5782601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121d3565b80601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b678ac7230489e8000081111561221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590613c45565b60405180910390fd5b505b61273f565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361230057612285328386612f0d565b7f5e80fadb1e452dbd1e3289b18966093943668866072e0600d116d1612a70eed7601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516122f3919061339d565b60405180910390a161273e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123ac5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156124065750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156124605750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156124ba5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156125145750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561256e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156125c85750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156126225750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561273d5760006126343284876127d4565b905060006126413261285e565b9050600081836126519190613aa6565b9050808511156126c357600081866126699190613aa6565b905080601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126ba9190613aa6565b92505081905550505b7f5e80fadb1e452dbd1e3289b18966093943668866072e0600d116d1612a70eed7601960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051612731919061339d565b60405180910390a15050505b5b5b5b5b5b61274d8484846130cf565b50505050565b61275b61110f565b612791576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61279b61110f565b156127d2576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361284757836128368661114c565b6128409190613bc5565b9050612853565b6128508561114c565b90505b809150509392505050565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26846040518263ffffffff1660e01b81526004016128bc919061373a565b602060405180830381865afa1580156128d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fd9190613c7a565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26856040518263ffffffff1660e01b815260040161295c919061373a565b602060405180830381865afa158015612979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299d9190613c7a565b90506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26866040518263ffffffff1660e01b81526004016129fc919061373a565b602060405180830381865afa158015612a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3d9190613c7a565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26876040518263ffffffff1660e01b8152600401612a9c919061373a565b602060405180830381865afa158015612ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612add9190613c7a565b90506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d311b26886040518263ffffffff1660e01b8152600401612b3c919061373a565b602060405180830381865afa158015612b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7d9190613c7a565b90506000601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828486888a612bd09190613bc5565b612bda9190613bc5565b612be49190613bc5565b612bee9190613bc5565b612bf89190613bc5565b905080601960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b8152600401612c99919061373a565b600060405180830381600087803b158015612cb357600080fd5b505af1158015612cc7573d6000803e3d6000fd5b50505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b8152600401612d26919061373a565b600060405180830381600087803b158015612d4057600080fd5b505af1158015612d54573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b8152600401612db3919061373a565b600060405180830381600087803b158015612dcd57600080fd5b505af1158015612de1573d6000803e3d6000fd5b50505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b8152600401612e40919061373a565b600060405180830381600087803b158015612e5a57600080fd5b505af1158015612e6e573d6000803e3d6000fd5b50505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b56003c9896040518263ffffffff1660e01b8152600401612ecd919061373a565b600060405180830381600087803b158015612ee757600080fd5b505af1158015612efb573d6000803e3d6000fd5b50505050809650505050505050919050565b612f168361285e565b506000612f248484846127d4565b905060006064601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612f759190613aa6565b612f7f9190613cd6565b9050600081601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fce9190613bc5565b905080851115613013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300a90613d53565b60405180910390fd5b8185111561308357600082866130299190613aa6565b905080601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461307a9190613aa6565b92505081905550505b42601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036131215780600260008282546131159190613bc5565b925050819055506131f4565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156131ad578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016131a493929190613a40565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361323d578060026000828254039250508190555061328a565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132e7919061339d565b60405180910390a3505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613324826132f9565b9050919050565b61333481613319565b811461333f57600080fd5b50565b6000813590506133518161332b565b92915050565b60006020828403121561336d5761336c6132f4565b5b600061337b84828501613342565b91505092915050565b6000819050919050565b61339781613384565b82525050565b60006020820190506133b2600083018461338e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133f25780820151818401526020810190506133d7565b60008484015250505050565b6000601f19601f8301169050919050565b600061341a826133b8565b61342481856133c3565b93506134348185602086016133d4565b61343d816133fe565b840191505092915050565b60006020820190508181036000830152613462818461340f565b905092915050565b61347381613384565b811461347e57600080fd5b50565b6000813590506134908161346a565b92915050565b600080604083850312156134ad576134ac6132f4565b5b60006134bb85828601613342565b92505060206134cc85828601613481565b9150509250929050565b60008115159050919050565b6134eb816134d6565b82525050565b600060208201905061350660008301846134e2565b92915050565b6000806000806000806000806000806101408b8d0312156135305761352f6132f4565b5b600061353e8d828e01613342565b9a5050602061354f8d828e01613342565b99505060406135608d828e01613342565b98505060606135718d828e01613342565b97505060806135828d828e01613342565b96505060a06135938d828e01613342565b95505060c06135a48d828e01613342565b94505060e06135b58d828e01613342565b9350506101006135c78d828e01613342565b9250506101206135d98d828e01613342565b9150509295989b9194979a5092959850565b600080600060608486031215613604576136036132f4565b5b600061361286828701613342565b935050602061362386828701613342565b925050604061363486828701613481565b9150509250925092565b600060ff82169050919050565b6136548161363e565b82525050565b600060208201905061366f600083018461364b565b92915050565b6000819050919050565b600061369a613695613690846132f9565b613675565b6132f9565b9050919050565b60006136ac8261367f565b9050919050565b60006136be826136a1565b9050919050565b6136ce816136b3565b82525050565b60006020820190506136e960008301846136c5565b92915050565b60006136fa826136a1565b9050919050565b61370a816136ef565b82525050565b60006020820190506137256000830184613701565b92915050565b61373481613319565b82525050565b600060208201905061374f600083018461372b565b92915050565b6000613760826136a1565b9050919050565b61377081613755565b82525050565b600060208201905061378b6000830184613767565b92915050565b600061379c826136a1565b9050919050565b6137ac81613791565b82525050565b60006020820190506137c760008301846137a3565b92915050565b60006137d8826136a1565b9050919050565b6137e8816137cd565b82525050565b600060208201905061380360008301846137df565b92915050565b600080604083850312156138205761381f6132f4565b5b600061382e85828601613342565b925050602061383f85828601613342565b9150509250929050565b6000613854826136a1565b9050919050565b61386481613849565b82525050565b600060208201905061387f600083018461385b565b92915050565b6000613890826136a1565b9050919050565b6138a081613885565b82525050565b60006020820190506138bb6000830184613897565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061390857607f821691505b60208210810361391b5761391a6138c1565b5b50919050565b7f496e697469616c206465706c6f796d656e7420616c726561647920636f6d706c60008201527f6574656400000000000000000000000000000000000000000000000000000000602082015250565b600061397d6024836133c3565b915061398882613921565b604082019050919050565b600060208201905081810360008301526139ac81613970565b9050919050565b6000610120820190506139c9600083018c61372b565b6139d6602083018b61372b565b6139e3604083018a61372b565b6139f0606083018961372b565b6139fd608083018861372b565b613a0a60a083018761372b565b613a1760c083018661372b565b613a2460e083018561372b565b613a3261010083018461372b565b9a9950505050505050505050565b6000606082019050613a55600083018661372b565b613a62602083018561338e565b613a6f604083018461338e565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ab182613384565b9150613abc83613384565b9250828203905081811115613ad457613ad3613a77565b5b92915050565b7f63616e277420706572666f726d207478206265666f7265206f6e65206461792060008201527f6f662073656c6c00000000000000000000000000000000000000000000000000602082015250565b6000613b366027836133c3565b9150613b4182613ada565b604082019050919050565b60006020820190508181036000830152613b6581613b29565b9050919050565b613b75816134d6565b8114613b8057600080fd5b50565b600081519050613b9281613b6c565b92915050565b600060208284031215613bae57613bad6132f4565b5b6000613bbc84828501613b83565b91505092915050565b6000613bd082613384565b9150613bdb83613384565b9250828201905080821115613bf357613bf2613a77565b5b92915050565b7f457863656564206d617820627579207065722064617900000000000000000000600082015250565b6000613c2f6016836133c3565b9150613c3a82613bf9565b602082019050919050565b60006020820190508181036000830152613c5e81613c22565b9050919050565b600081519050613c748161346a565b92915050565b600060208284031215613c9057613c8f6132f4565b5b6000613c9e84828501613c65565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ce182613384565b9150613cec83613384565b925082613cfc57613cfb613ca7565b5b828204905092915050565b7f20416d6f756e742053656c6c206c696d69742052656163686564200000000000600082015250565b6000613d3d601b836133c3565b9150613d4882613d07565b602082019050919050565b60006020820190508181036000830152613d6c81613d30565b905091905056fea2646970667358221220c52322dccf424893d1d955dc6735d393ad67d33c1b467aa373ff001cde261d7564736f6c63430008180033000000000000000000000000d14791fdda7f3ba198b6b5895597ec83117363c1000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008