[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "amountBNB", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "BuybackMultiplierActive", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnershipTransferred", "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" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWalletToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "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": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoBuybackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoBuybackMultiplier", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "blacklistAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buyCooldownEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimDividend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "clearBuybackMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" }, { "internalType": "uint8", "name": "_interval", "type": "uint8" } ], "name": "cooldownEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cooldownTimerInterval", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "disableGREED", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_seconds", "type": "uint256" } ], "name": "enableGREED", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMultipliedFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "selling", "type": "bool" } ], "name": "getTotalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "shareholder", "type": "address" } ], "name": "getUnpaidEarnings", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inGREEDTime", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualSend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" }, { "internalType": "bool", "name": "_autoBuybackMultiplier", "type": "bool" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_devFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "setBuybackMultiplierSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsDividendExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTimelockExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxTxAmount", "type": "uint256" } ], "name": "setMaxTxAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxWallPercent", "type": "uint256" } ], "name": "setMaxWalletPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_devFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_target", "type": "uint256" }, { "internalType": "uint256", "name": "_denominator", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "account", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "triggerBuybackMultiplier", "type": "bool" } ], "name": "triggerManualBuyback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405273ea32a96608495e54156ae48931a7c20f0dcc1a21600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073deaddeaddeaddeaddeaddeaddeaddeaddead0000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073eefcdbe51668ebaa1f979cb6b79b13018b4b4084600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000198919062000d52565b6305f5e100620001a9919062000e8f565b6009556127106064600954620001c0919062000e8f565b620001cc919062000cbf565b600a556127106096600954620001e3919062000e8f565b620001ef919062000cbf565b600b5560646013556000601455600060155560006016556102bc60175561032060185560646019556000601a556000601b556000601c5561044c601d556104b0601e55612710602555610e106027556002602855612710600f60095462000257919062000e8f565b62000263919062000cbf565b6029556014602a556064602b5560c8602c556064602d55610708602f556000603060006101000a81548160ff0219169083151502179055506001603060016101000a81548160ff0219169083151502179055506207a1206037556000603860006101000a81548160ff021916908315150217905550600a603860016101000a81548160ff021916908360ff1602179055506001603d60006101000a81548160ff0219169083151502179055503480156200031c57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550507381b9fa50d5f5155ee17817c21702c3ae4780ad09603a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550603a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200047457600080fd5b505afa15801562000489573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004af919062000c04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200050d92919062000c75565b602060405180830381600087803b1580156200052857600080fd5b505af11580156200053d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000563919062000c04565b603b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000603a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550603a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006979062000bdf565b620006a3919062000c58565b604051809103906000f080158015620006c0573d6000803e3d6000fd5b50603660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060003390506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000603b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000bd0919062000ca2565b60405180910390a35062000fc5565b6120a2806200698583390190565b60008151905062000bfe8162000fab565b92915050565b60006020828403121562000c1d5762000c1c62000f99565b5b600062000c2d8482850162000bed565b91505092915050565b62000c418162000ef0565b82525050565b62000c528162000f24565b82525050565b600060208201905062000c6f600083018462000c36565b92915050565b600060408201905062000c8c600083018562000c36565b62000c9b602083018462000c36565b9392505050565b600060208201905062000cb9600083018462000c47565b92915050565b600062000ccc8262000f24565b915062000cd98362000f24565b92508262000cec5762000ceb62000f6a565b5b828204905092915050565b6000808291508390505b600185111562000d495780860481111562000d215762000d2062000f3b565b5b600185161562000d315780820291505b808102905062000d418562000f9e565b945062000d01565b94509492505050565b600062000d5f8262000f24565b915062000d6c8362000f2e565b925062000d9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000da3565b905092915050565b60008262000db5576001905062000e88565b8162000dc5576000905062000e88565b816001811462000dde576002811462000de95762000e1f565b600191505062000e88565b60ff84111562000dfe5762000dfd62000f3b565b5b8360020a91508482111562000e185762000e1762000f3b565b5b5062000e88565b5060208310610133831016604e8410600b841016171562000e595782820a90508381111562000e535762000e5262000f3b565b5b62000e88565b62000e68848484600162000cf7565b9250905081840481111562000e825762000e8162000f3b565b5b81810290505b9392505050565b600062000e9c8262000f24565b915062000ea98362000f24565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ee55762000ee462000f3b565b5b828202905092915050565b600062000efd8262000f04565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000fb68162000ef0565b811462000fc257600080fd5b50565b6159b08062000fd56000396000f3fe60806040526004361061039b5760003560e01c8063893d20e8116101dc578063e1dcc71f11610102578063f2fde38b116100a0578063f84ba65d1161006f578063f84ba65d14610d5b578063f887ea4014610d84578063fe575a8714610daf578063fe9fbb8014610dec576103a2565b8063f2fde38b14610cc9578063f429389014610cf2578063f708a64f14610d09578063f74c9f4714610d32576103a2565b8063ec28438a116100dc578063ec28438a14610c23578063f0b37c0414610c4c578063f0fc6bca14610c75578063f1f3bca314610c8c576103a2565b8063e1dcc71f14610ba4578063e3aa51bc14610bcf578063e96fada214610bf8576103a2565b8063b6a5d7de1161017a578063d51ed1c811610149578063d51ed1c814610ad6578063d806d12f14610b13578063dd62ed3e14610b3e578063df20fd4914610b7b576103a2565b8063b6a5d7de14610a2e578063ba876bb914610a57578063bf56b37114610a80578063ca33e64c14610aab576103a2565b8063a4b45c00116101b6578063a4b45c0014610986578063a8aa1b31146109af578063a9059cbb146109da578063b210b06d14610a17576103a2565b8063893d20e81461090757806395d89b41146109325780639d1944f51461095d576103a2565b80633bb8a8d4116102c1578063658d4b7f1161025f57806378109e541161022e57806378109e541461085f5780637d1db4a51461088a57806382334b94146108b557806382bf293c146108de576103a2565b8063658d4b7f146107a35780636ddd1713146107cc57806370a08231146107f7578063722b62ad14610834576103a2565b80634f7b4d491161029b5780634f7b4d49146106fb57806350db71fb14610712578063571ac8b01461073b578063617fe0ed14610778576103a2565b80633bb8a8d41461067c578063455a4396146106a75780634dfc855a146106d0576103a2565b806323b872dd116103395780632d594567116103085780632d594567146105c25780632f54bf6e146105eb5780632f5620d114610628578063313ce56714610651576103a2565b806323b872dd146104f457806328fd3198146105315780632b112e491461056e5780632d48e89614610599576103a2565b80631161ae39116103755780631161ae391461043a57806318160ddd14610477578063201e7991146104a25780632375ce40146104cb576103a2565b80630445b667146103a757806306fdde03146103d2578063095ea7b3146103fd576103a2565b366103a257005b600080fd5b3480156103b357600080fd5b506103bc610e29565b6040516103c9919061528f565b60405180910390f35b3480156103de57600080fd5b506103e7610e2f565b6040516103f4919061510d565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f919061494d565b610e6c565b604051610431919061508b565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190614b4f565b610f5e565b60405161046e919061508b565b60405180910390f35b34801561048357600080fd5b5061048c610f73565b604051610499919061528f565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c49190614b4f565b610f7d565b005b3480156104d757600080fd5b506104f260048036038101906104ed9190614b8f565b610fd7565b005b34801561050057600080fd5b5061051b600480360381019061051691906148ba565b61105d565b604051610528919061508b565b60405180910390f35b34801561053d57600080fd5b5061055860048036038101906105539190614820565b61125d565b604051610565919061528f565b60405180910390f35b34801561057a57600080fd5b50610583611311565b604051610590919061528f565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190614b4f565b611393565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190614a75565b61146e565b005b3480156105f757600080fd5b50610612600480360381019061060d9190614820565b6114ef565b60405161061f919061508b565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a91906149fa565b611548565b005b34801561065d57600080fd5b506106666115ef565b604051610673919061532d565b60405180910390f35b34801561068857600080fd5b506106916115f8565b60405161069e919061508b565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c9919061490d565b61160b565b005b3480156106dc57600080fd5b506106e56116ae565b6040516106f2919061508b565b60405180910390f35b34801561070757600080fd5b506107106116df565b005b34801561071e57600080fd5b506107396004803603810190610734919061490d565b611731565b005b34801561074757600080fd5b50610762600480360381019061075d9190614820565b6117d4565b60405161076f919061508b565b60405180910390f35b34801561078457600080fd5b5061078d611807565b60405161079a919061508b565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c5919061490d565b61181a565b005b3480156107d857600080fd5b506107e16118bd565b6040516107ee919061508b565b60405180910390f35b34801561080357600080fd5b5061081e60048036038101906108199190614820565b6118d0565b60405161082b919061528f565b60405180910390f35b34801561084057600080fd5b50610849611919565b604051610856919061532d565b60405180910390f35b34801561086b57600080fd5b5061087461192c565b604051610881919061528f565b60405180910390f35b34801561089657600080fd5b5061089f611932565b6040516108ac919061528f565b60405180910390f35b3480156108c157600080fd5b506108dc60048036038101906108d79190614b0f565b611938565b005b3480156108ea57600080fd5b5061090560048036038101906109009190614ab5565b611a29565b005b34801561091357600080fd5b5061091c611aa3565b6040516109299190614fa2565b60405180910390f35b34801561093e57600080fd5b50610947611acc565b604051610954919061510d565b60405180910390f35b34801561096957600080fd5b50610984600480360381019061097f9190614ab5565b611b09565b005b34801561099257600080fd5b506109ad60048036038101906109a8919061487a565b611b6a565b005b3480156109bb57600080fd5b506109c4611c38565b6040516109d19190614fa2565b60405180910390f35b3480156109e657600080fd5b50610a0160048036038101906109fc919061494d565b611c5e565b604051610a0e919061508b565b60405180910390f35b348015610a2357600080fd5b50610a2c611c73565b005b348015610a3a57600080fd5b50610a556004803603810190610a509190614820565b611cc5565b005b348015610a6357600080fd5b50610a7e6004803603810190610a799190614c35565b611d67565b005b348015610a8c57600080fd5b50610a95611e30565b604051610aa2919061528f565b60405180910390f35b348015610ab757600080fd5b50610ac0611e36565b604051610acd9190614fa2565b60405180910390f35b348015610ae257600080fd5b50610afd6004803603810190610af89190614ab5565b611e5c565b604051610b0a919061528f565b60405180910390f35b348015610b1f57600080fd5b50610b28611ece565b604051610b35919061528f565b60405180910390f35b348015610b4a57600080fd5b50610b656004803603810190610b60919061487a565b611f81565b604051610b72919061528f565b60405180910390f35b348015610b8757600080fd5b50610ba26004803603810190610b9d91906149ba565b612008565b005b348015610bb057600080fd5b50610bb961208f565b604051610bc6919061508b565b60405180910390f35b348015610bdb57600080fd5b50610bf66004803603810190610bf19190614ab5565b6120a2565b005b348015610c0457600080fd5b50610c0d6120fb565b604051610c1a9190614fa2565b60405180910390f35b348015610c2f57600080fd5b50610c4a6004803603810190610c459190614ab5565b612121565b005b348015610c5857600080fd5b50610c736004803603810190610c6e9190614820565b6121de565b005b348015610c8157600080fd5b50610c8a612281565b005b348015610c9857600080fd5b50610cb36004803603810190610cae919061498d565b612310565b604051610cc0919061528f565b60405180910390f35b348015610cd557600080fd5b50610cf06004803603810190610ceb919061484d565b612386565b005b348015610cfe57600080fd5b50610d0761249f565b005b348015610d1557600080fd5b50610d306004803603810190610d2b919061490d565b612558565b005b348015610d3e57600080fd5b50610d596004803603810190610d549190614c35565b6127f8565b005b348015610d6757600080fd5b50610d826004803603810190610d7d919061490d565b6128c1565b005b348015610d9057600080fd5b50610d99612964565b604051610da691906150a6565b60405180910390f35b348015610dbb57600080fd5b50610dd66004803603810190610dd19190614820565b61298a565b604051610de3919061508b565b60405180910390f35b348015610df857600080fd5b50610e136004803603810190610e0e9190614820565b6129aa565b604051610e20919061508b565b60405180910390f35b60295481565b60606040518060400160405280600f81526020017f4d756c7469546f6f6c734d657469730000000000000000000000000000000000815250905090565b600081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f4c919061528f565b60405180910390a36001905092915050565b600082610f6a83611e5c565b11905092915050565b6000600954905090565b610f86336129aa565b610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc9061526f565b60405180910390fd5b81602a8190555080602b819055505050565b610fe0336129aa565b61101f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110169061526f565b60405180910390fd5b6002828461102d91906153fe565b1115801561103a57508183115b61104357600080fd5b82602c8190555081602d8190555080602f81905550505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611249576111c8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a009092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611254848484612a64565b90509392505050565b6000603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b81526004016112ba9190614fa2565b60206040518083038186803b1580156112d257600080fd5b505afa1580156112e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a9190614ae2565b9050919050565b600061138e611341600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d0565b61138061136f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d0565b6009546130e290919063ffffffff16565b6130e290919063ffffffff16565b905090565b61139c336129aa565b6113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d29061526f565b60405180910390fd5b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611438929190615304565b600060405180830381600087803b15801561145257600080fd5b505af1158015611466573d6000803e3d6000fd5b505050505050565b611477336129aa565b6114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad9061526f565b60405180910390fd5b81603860006101000a81548160ff02191690831515021790555080603860016101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b611551336129aa565b611590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115879061526f565b60405180910390fd5b84603060006101000a81548160ff02191690831515021790555083603181905550600060328190555082603381905550816034819055504360358190555080603060016101000a81548160ff0219169083151502179055505050505050565b60006012905090565b603060009054906101000a900460ff1681565b611614336129aa565b611653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164a9061526f565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000426116c860275460265461312c90919063ffffffff16565b11156116d757600190506116dc565b600090505b90565b6116e8336129aa565b611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e9061526f565b60405180910390fd5b6000602681905550565b61173a336129aa565b611779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117709061526f565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611800827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e6c565b9050919050565b603860009054906101000a900460ff1681565b611823336129aa565b611862576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118599061526f565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b603d60009054906101000a900460ff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b603860019054906101000a900460ff1681565b600b5481565b600a5481565b611941336129aa565b611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779061526f565b60405180910390fd5b6000670de0b6b3a764000083611996919061542f565b905060006119ae60648361318a90919063ffffffff16565b90506119dc81600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166131d4565b8215611a235742602e819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a602f54604051611a1a919061528f565b60405180910390a15b50505050565b611a32336114ef565b611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a689061522f565b60405180910390fd5b611a9a612710611a8c836009546133b290919063ffffffff16565b61318a90919063ffffffff16565b600b8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4d544d0000000000000000000000000000000000000000000000000000000000815250905090565b611b12336129aa565b611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b489061526f565b60405180910390fd5b620b71b08110611b6057600080fd5b8060378190555050565b611b73336129aa565b611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061526f565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b603b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c6b338484612a64565b905092915050565b611c7c336129aa565b611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb29061526f565b60405180910390fd5b6000602e81905550565b611cce336114ef565b611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d049061522f565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d70336129aa565b611daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da69061526f565b60405180910390fd5b8560198190555084601a8190555083601b8190555082601c8190555081601d81905550611e1b82611e0d85611dff88611df18b8d61312c90919063ffffffff16565b61312c90919063ffffffff16565b61312c90919063ffffffff16565b61312c90919063ffffffff16565b601e8190555080602581905550505050505050565b603c5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ec7611e69611311565b611eb9611eaa6002611e9c603b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d0565b6133b290919063ffffffff16565b856133b290919063ffffffff16565b61318a90919063ffffffff16565b9050919050565b600080611efa42611eec602f54602e5461312c90919063ffffffff16565b6130e290919063ffffffff16565b90506000611f3d602454611f2f602d54611f21602c546024546133b290919063ffffffff16565b61318a90919063ffffffff16565b6130e290919063ffffffff16565b9050611f7a611f69602f54611f5b85856133b290919063ffffffff16565b61318a90919063ffffffff16565b60245461312c90919063ffffffff16565b9250505090565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612011336129aa565b612050576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120479061526f565b60405180910390fd5b81603d60006101000a81548160ff0219169083151502179055506127108160095461207b919061542f565b61208591906153fe565b6029819055505050565b603060019054906101000a900460ff1681565b6120ab336129aa565b6120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e19061526f565b60405180910390fd5b426026819055508060278190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61212a336129aa565b612169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121609061526f565b60405180910390fd5b600081116121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a39061514f565b60405180910390fd5b6121d56127106121c7836009546133b290919063ffffffff16565b61318a90919063ffffffff16565b600a8190555050565b6121e7336114ef565b612226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221d9061522f565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b81526004016122dc9190614fa2565b600060405180830381600087803b1580156122f657600080fd5b505af115801561230a573d6000803e3d6000fd5b50505050565b600043602854603c5461232391906153a8565b106123455761233e60016025546130e290919063ffffffff16565b9050612381565b818015612367575042612365602f54602e5461312c90919063ffffffff16565b115b1561237b57612374611ece565b9050612381565b60245490505b919050565b61238f336114ef565b6123ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c59061522f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516124949190614fbd565b60405180910390a150565b6124a8336129aa565b6124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de9061526f565b60405180910390fd5b6000479050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612554573d6000803e3d6000fd5b5050565b612561336129aa565b6125a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125979061526f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561262a5750603b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61263357600080fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561272557603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016126ee929190614fd8565b600060405180830381600087803b15801561270857600080fd5b505af115801561271c573d6000803e3d6000fd5b505050506127f4565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016127c1929190615001565b600060405180830381600087803b1580156127db57600080fd5b505af11580156127ef573d6000803e3d6000fd5b505050505b5050565b612801336129aa565b612840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128379061526f565b60405180910390fd5b85601381905550846014819055508360158190555082601681905550816017819055506128ac8261289e85612890886128828b8d61312c90919063ffffffff16565b61312c90919063ffffffff16565b61312c90919063ffffffff16565b61312c90919063ffffffff16565b60188190555080602581905550505050505050565b6128ca336129aa565b612909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129009061526f565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b603a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60126020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290612a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3f919061510d565b60405180910390fd5b5060008385612a579190615489565b9050809150509392505050565b6000603d60019054906101000a900460ff1615612a8d57612a8684848461342d565b90506130db565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b315750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b679061524f565b60405180910390fd5b6000603b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16149050612bce81613600565b612bd985858561367b565b612be38585613984565b612bef85848684613b2f565b6000612bf96116ae565b9050612c03613d6f565b15612c1157612c10613e46565b5b612c9a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a009092919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612ce8876144fb565b612cf25784612cff565b612cfe87868585614552565b5b9050612d5381600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312c90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612eb957603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612e83929190615001565b600060405180830381600087803b158015612e9d57600080fd5b505af1925050508015612eae575060015b612eb757612eb8565b5b5b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612fdc57603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fa6929190615001565b600060405180830381600087803b158015612fc057600080fd5b505af1925050508015612fd1575060015b612fda57612fdb565b5b5b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796037546040518263ffffffff1660e01b8152600401613039919061528f565b600060405180830381600087803b15801561305357600080fd5b505af1925050508015613064575060015b61306d5761306e565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130cb919061528f565b60405180910390a3600193505050505b9392505050565b600061312483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a00565b905092915050565b600080828461313b91906153a8565b905083811015613180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131779061516f565b60405180910390fd5b8091505092915050565b60006131cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061473f565b905092915050565b6001603d60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561320c5761320b61563e565b5b60405190808252806020026020018201604052801561323a5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106132745761327361560f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106132c3576132c261560f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050603a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b815260040161336094939291906150c1565b6000604051808303818588803b15801561337957600080fd5b505af115801561338d573d6000803e3d6000fd5b5050505050506000603d60016101000a81548160ff0219169083151502179055505050565b6000808314156133c55760009050613427565b600082846133d3919061542f565b90508284826133e291906153fe565b14613422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613419906151cf565b60405180910390fd5b809150505b92915050565b60006134b8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a009092919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061354d82600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312c90919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135ed919061528f565b60405180910390a3600190509392505050565b801561364157601954601f81905550601a54602081905550601b54602181905550601c54602281905550601d54602381905550601e54602481905550613678565b601354601f819055506014546020819055506015546021819055506016546022819055506017546023819055506018546024819055505b50565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613721575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561375957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156137b35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561380d5750603b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156138675750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156138c15750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561391b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561397f57600061392b836118d0565b9050600b54828261393c91906153a8565b111561397d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139749061520f565b60405180910390fd5b505b505050565b603b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156139ed5750603860009054906101000a900460ff165b8015613a435750601060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b2b5742603960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410613ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ac0906151af565b60405180910390fd5b603860019054906101000a900460ff1660ff1642613ae791906153a8565b603960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614613d69578015613c7a57600a5483111580613be25750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613c365750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c6c9061512f565b60405180910390fd5b613d68565b600a5483111580613cd45750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613d285750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d5e9061512f565b60405180910390fd5b5b5b50505050565b6000603b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015613ddc5750603d60019054906101000a900460ff16155b8015613df45750603d60009054906101000a900460ff165b8015613e415750602954600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001603d60016101000a81548160ff0219169083151502179055506000613e71602a54602b54610f5e565b613e7d57601f54613e80565b60005b90506000613ec06002613eb2602454613ea4866029546133b290919063ffffffff16565b61318a90919063ffffffff16565b61318a90919063ffffffff16565b90506000613ed9826029546130e290919063ffffffff16565b90506000600267ffffffffffffffff811115613ef857613ef761563e565b5b604051908082528060200260200182016040528015613f265781602001602082028036833780820191505090505b5090503081600081518110613f3e57613f3d61560f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613faf57613fae61560f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050603a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016140529594939291906152aa565b600060405180830381600087803b15801561406c57600080fd5b505af1158015614080573d6000803e3d6000fd5b50505050600061409982476130e290919063ffffffff16565b905060006140c56140b460028961318a90919063ffffffff16565b6024546130e290919063ffffffff16565b9050600061410160026140f3846140e58c886133b290919063ffffffff16565b61318a90919063ffffffff16565b61318a90919063ffffffff16565b9050600061412c8361411e602154876133b290919063ffffffff16565b61318a90919063ffffffff16565b9050600061415784614149602254886133b290919063ffffffff16565b61318a90919063ffffffff16565b9050600061418285614174602354896133b290919063ffffffff16565b61318a90919063ffffffff16565b9050603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b1580156141ee57600080fd5b505af193505050508015614200575060015b6142095761420a565b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161425690614f8d565b600060405180830381858888f193505050503d8060008114614294576040519150601f19603f3d011682016040523d82523d6000602084013e614299565b606091505b505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516142e990614f8d565b600060405180830381858888f193505050503d8060008114614327576040519150601f19603f3d011682016040523d82523d6000602084013e61432c565b606091505b5050905081614370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143679061518f565b60405180910390fd5b806143b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143a7906151ef565b60405180910390fd5b60008c11156144d157603a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71987308f600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016144429695949392919061502a565b6060604051808303818588803b15801561445b57600080fd5b505af115801561446f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906144949190614be2565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506868d6040516144c8929190615304565b60405180910390a15b505050505050505050505050506000603d60016101000a81548160ff021916908315150217905550565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082156145fb5783156145b7576145b06025546145a2600261459460036145866024548c6133b290919063ffffffff16565b6133b290919063ffffffff16565b61318a90919063ffffffff16565b61318a90919063ffffffff16565b90506145f6565b6145f36025546145e560026145d76024548a6133b290919063ffffffff16565b61318a90919063ffffffff16565b61318a90919063ffffffff16565b90505b614627565b614624602554614616602454886133b290919063ffffffff16565b61318a90919063ffffffff16565b90505b61467981600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312c90919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614719919061528f565b60405180910390a361473481866130e290919063ffffffff16565b915050949350505050565b60008083118290614786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161477d919061510d565b60405180910390fd5b506000838561479591906153fe565b9050809150509392505050565b6000813590506147b181615907565b92915050565b6000813590506147c68161591e565b92915050565b6000813590506147db81615935565b92915050565b6000813590506147f08161594c565b92915050565b6000815190506148058161594c565b92915050565b60008135905061481a81615963565b92915050565b6000602082840312156148365761483561566d565b5b6000614844848285016147a2565b91505092915050565b6000602082840312156148635761486261566d565b5b6000614871848285016147b7565b91505092915050565b600080604083850312156148915761489061566d565b5b600061489f858286016147a2565b92505060206148b0858286016147a2565b9150509250929050565b6000806000606084860312156148d3576148d261566d565b5b60006148e1868287016147a2565b93505060206148f2868287016147a2565b9250506040614903868287016147e1565b9150509250925092565b600080604083850312156149245761492361566d565b5b6000614932858286016147a2565b9250506020614943858286016147cc565b9150509250929050565b600080604083850312156149645761496361566d565b5b6000614972858286016147a2565b9250506020614983858286016147e1565b9150509250929050565b6000602082840312156149a3576149a261566d565b5b60006149b1848285016147cc565b91505092915050565b600080604083850312156149d1576149d061566d565b5b60006149df858286016147cc565b92505060206149f0858286016147e1565b9150509250929050565b600080600080600060a08688031215614a1657614a1561566d565b5b6000614a24888289016147cc565b9550506020614a35888289016147e1565b9450506040614a46888289016147e1565b9350506060614a57888289016147e1565b9250506080614a68888289016147cc565b9150509295509295909350565b60008060408385031215614a8c57614a8b61566d565b5b6000614a9a858286016147cc565b9250506020614aab8582860161480b565b9150509250929050565b600060208284031215614acb57614aca61566d565b5b6000614ad9848285016147e1565b91505092915050565b600060208284031215614af857614af761566d565b5b6000614b06848285016147f6565b91505092915050565b60008060408385031215614b2657614b2561566d565b5b6000614b34858286016147e1565b9250506020614b45858286016147cc565b9150509250929050565b60008060408385031215614b6657614b6561566d565b5b6000614b74858286016147e1565b9250506020614b85858286016147e1565b9150509250929050565b600080600060608486031215614ba857614ba761566d565b5b6000614bb6868287016147e1565b9350506020614bc7868287016147e1565b9250506040614bd8868287016147e1565b9150509250925092565b600080600060608486031215614bfb57614bfa61566d565b5b6000614c09868287016147f6565b9350506020614c1a868287016147f6565b9250506040614c2b868287016147f6565b9150509250925092565b60008060008060008060c08789031215614c5257614c5161566d565b5b6000614c6089828a016147e1565b9650506020614c7189828a016147e1565b9550506040614c8289828a016147e1565b9450506060614c9389828a016147e1565b9350506080614ca489828a016147e1565b92505060a0614cb589828a016147e1565b9150509295509295509295565b6000614cce8383614ce9565b60208301905092915050565b614ce381615524565b82525050565b614cf2816154bd565b82525050565b614d01816154bd565b82525050565b6000614d1282615358565b614d1c818561537b565b9350614d2783615348565b8060005b83811015614d58578151614d3f8882614cc2565b9750614d4a8361536e565b925050600181019050614d2b565b5085935050505092915050565b614d6e816154e1565b82525050565b614d7d81615536565b82525050565b614d8c81615548565b82525050565b6000614d9d82615363565b614da78185615397565b9350614db781856020860161557e565b614dc081615672565b840191505092915050565b6000614dd8601183615397565b9150614de382615683565b602082019050919050565b6000614dfb603083615397565b9150614e06826156ac565b604082019050919050565b6000614e1e601b83615397565b9150614e29826156fb565b602082019050919050565b6000614e41602883615397565b9150614e4c82615724565b604082019050919050565b6000614e64601c83615397565b9150614e6f82615773565b602082019050919050565b6000614e87602183615397565b9150614e928261579c565b604082019050919050565b6000614eaa602283615397565b9150614eb5826157eb565b604082019050919050565b6000614ecd603e83615397565b9150614ed88261583a565b604082019050919050565b6000614ef0600683615397565b9150614efb82615889565b602082019050919050565b6000614f1360008361538c565b9150614f1e826158b2565b600082019050919050565b6000614f36601683615397565b9150614f41826158b5565b602082019050919050565b6000614f59600b83615397565b9150614f64826158de565b602082019050919050565b614f788161550d565b82525050565b614f8781615517565b82525050565b6000614f9882614f06565b9150819050919050565b6000602082019050614fb76000830184614cf8565b92915050565b6000602082019050614fd26000830184614cda565b92915050565b6000604082019050614fed6000830185614cf8565b614ffa6020830184614d83565b9392505050565b60006040820190506150166000830185614cf8565b6150236020830184614f6f565b9392505050565b600060c08201905061503f6000830189614cf8565b61504c6020830188614f6f565b6150596040830187614d83565b6150666060830186614d83565b6150736080830185614cf8565b61508060a0830184614f6f565b979650505050505050565b60006020820190506150a06000830184614d65565b92915050565b60006020820190506150bb6000830184614d74565b92915050565b60006080820190506150d66000830187614d83565b81810360208301526150e88186614d07565b90506150f76040830185614cf8565b6151046060830184614f6f565b95945050505050565b600060208201905081810360008301526151278184614d92565b905092915050565b6000602082019050818103600083015261514881614dcb565b9050919050565b6000602082019050818103600083015261516881614dee565b9050919050565b6000602082019050818103600083015261518881614e11565b9050919050565b600060208201905081810360008301526151a881614e34565b9050919050565b600060208201905081810360008301526151c881614e57565b9050919050565b600060208201905081810360008301526151e881614e7a565b9050919050565b6000602082019050818103600083015261520881614e9d565b9050919050565b6000602082019050818103600083015261522881614ec0565b9050919050565b6000602082019050818103600083015261524881614ee3565b9050919050565b6000602082019050818103600083015261526881614f29565b9050919050565b6000602082019050818103600083015261528881614f4c565b9050919050565b60006020820190506152a46000830184614f6f565b92915050565b600060a0820190506152bf6000830188614f6f565b6152cc6020830187614d83565b81810360408301526152de8186614d07565b90506152ed6060830185614cf8565b6152fa6080830184614f6f565b9695505050505050565b60006040820190506153196000830185614f6f565b6153266020830184614f6f565b9392505050565b60006020820190506153426000830184614f7e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006153b38261550d565b91506153be8361550d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156153f3576153f26155b1565b5b828201905092915050565b60006154098261550d565b91506154148361550d565b925082615424576154236155e0565b5b828204905092915050565b600061543a8261550d565b91506154458361550d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561547e5761547d6155b1565b5b828202905092915050565b60006154948261550d565b915061549f8361550d565b9250828210156154b2576154b16155b1565b5b828203905092915050565b60006154c8826154ed565b9050919050565b60006154da826154ed565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061552f8261555a565b9050919050565b60006155418261555a565b9050919050565b60006155538261550d565b9050919050565b60006155658261556c565b9050919050565b6000615577826154ed565b9050919050565b60005b8381101561559c578082015181840152602081019050615581565b838111156155ab576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f6d6178207472616e73616374696f6e20616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f6d61726b6574696e672072656365697665722072656a6563746564204554482060008201527f7472616e73666572000000000000000000000000000000000000000000000000602082015250565b7f506c656173652077616974206265747765656e2074776f206275797300000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f6465762072656365697665722072656a656374656420455448207472616e736660008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f4164647265737320697320626c61636b6c697374656400000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b615910816154bd565b811461591b57600080fd5b50565b615927816154cf565b811461593257600080fd5b50565b61593e816154e1565b811461594957600080fd5b50565b6159558161550d565b811461596057600080fd5b50565b61596c81615517565b811461597757600080fd5b5056fea26469706673582212204935c0f57689148d4fedd071f8adf04122e251463fba66c4ff43606a08b22c4564736f6c63430008070033608060405273ea32a96608495e54156ae48931a7c20f0dcc1a21600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073deaddeaddeaddeaddeaddeaddeaddeaddead0000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610708600d5564e8d4a51000600e55348015620000dd57600080fd5b50604051620020a2380380620020a28339818101604052810190620001039190620001f4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000154577381b9fa50d5f5155ee17817c21702c3ae4780ad0962000156565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000279565b600081519050620001ee816200025f565b92915050565b6000602082840312156200020d576200020c6200025a565b5b60006200021d84828501620001dd565b91505092915050565b600062000233826200023a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200026a8162000226565b81146200027657600080fd5b50565b611e1980620002896000396000f3fe6080604052600436106100dd5760003560e01c8063997664d71161007f578063e2d2e21911610059578063e2d2e2191461028f578063efca2eed146102ba578063ffb2c479146102e5578063ffd49c841461030e576100dd565b8063997664d71461021b578063ce7c2ac214610246578063d0e30db014610285576100dd565b806328fd3198116100bb57806328fd31981461015f5780632d48e8961461019c5780633a98ef39146101c55780634fab0ae8146101f0576100dd565b806311ce023d146100e257806314b6ca961461010d57806315f7e05e14610136575b600080fd5b3480156100ee57600080fd5b506100f7610339565b6040516101049190611993565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190611669565b61033f565b005b34801561014257600080fd5b5061015d6004803603810190610158919061163c565b6105fe565b005b34801561016b57600080fd5b506101866004803603810190610181919061163c565b610662565b6040516101939190611993565b60405180910390f35b3480156101a857600080fd5b506101c360048036038101906101be9190611730565b61077c565b005b3480156101d157600080fd5b506101da6107e6565b6040516101e79190611993565b60405180910390f35b3480156101fc57600080fd5b506102056107ec565b6040516102129190611993565b60405180910390f35b34801561022757600080fd5b506102306107f2565b60405161023d9190611993565b60405180910390f35b34801561025257600080fd5b5061026d6004803603810190610268919061163c565b6107f8565b60405161027c939291906119ae565b60405180910390f35b61028d610822565b005b34801561029b57600080fd5b506102a4610c12565b6040516102b19190611993565b60405180910390f35b3480156102c657600080fd5b506102cf610c18565b6040516102dc9190611993565b60405180910390f35b3480156102f157600080fd5b5061030c600480360381019061030791906116d6565b610c1e565b005b34801561031a57600080fd5b50610323610db2565b6040516103309190611993565b60405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039757600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103ec576103eb82610db8565b5b60008111801561043e57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104515761044c8261105f565b6104b3565b6000811480156104a357506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104b2576104b18261110e565b5b5b61051c8161050e600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461131590919063ffffffff16565b61135f90919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105b4600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461065657600080fd5b61065f81610db8565b50565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106b75760009050610777565b6000610704600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161075f57600092505050610777565b610772818361131590919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d457600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461087a57600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108d791906118a1565b60206040518083038186803b1580156108ef57600080fd5b505afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190611703565b90506000600267ffffffffffffffff81111561094657610945611ce1565b5b6040519080825280602002602001820160405280156109745781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106109ae576109ad611cb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610a1f57610a1e611cb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610abc94939291906118e5565b6000604051808303818588803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b50505050506000610bad83600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b4f91906118a1565b60206040518083038186803b158015610b6757600080fd5b505afa158015610b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9f9190611703565b61131590919063ffffffff16565b9050610bc48160095461135f90919063ffffffff16565b600981905550610c07610bf6600854610be884600c546113ef90919063ffffffff16565b61146a90919063ffffffff16565b600b5461135f90919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7657600080fd5b600060048054905090506000811415610c8f5750610daf565b6000805a905060005b8483108015610ca657508381105b15610daa5783600f5410610cbd576000600f819055505b610d066004600f5481548110610cd657610cd5611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114b4565b15610d5557610d546004600f5481548110610d2457610d23611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610db8565b5b610d7a610d6b5a8461131590919063ffffffff16565b8461135f90919063ffffffff16565b92505a9150600f6000815480929190610d9290611bdc565b91905055508080610da290611bdc565b915050610c98565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610e085761105c565b6000610e1382610662565b9050600081111561105a57610e3381600a5461135f90919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e969291906118bc565b602060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee891906116a9565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f8281600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461135f90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611013600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460016004805490506111229190611b1b565b8154811061113357611132611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106111b1576111b0611cb2565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506112519190611b1b565b8154811061126257611261611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806112dd576112dc611c83565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061135783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611521565b905092915050565b600080828461136e9190611a3a565b9050838110156113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90611953565b60405180910390fd5b8091505092915050565b60006113e8600c546113da600b54856113ef90919063ffffffff16565b61146a90919063ffffffff16565b9050919050565b6000808314156114025760009050611464565b600082846114109190611ac1565b905082848261141f9190611a90565b1461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690611973565b60405180910390fd5b809150505b92915050565b60006114ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611585565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115049190611a3a565b10801561151a5750600e5461151883610662565b115b9050919050565b6000838311158290611569576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115609190611931565b60405180910390fd5b50600083856115789190611b1b565b9050809150509392505050565b600080831182906115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c39190611931565b60405180910390fd5b50600083856115db9190611a90565b9050809150509392505050565b6000813590506115f781611d9e565b92915050565b60008151905061160c81611db5565b92915050565b60008135905061162181611dcc565b92915050565b60008151905061163681611dcc565b92915050565b60006020828403121561165257611651611d10565b5b6000611660848285016115e8565b91505092915050565b600080604083850312156116805761167f611d10565b5b600061168e858286016115e8565b925050602061169f85828601611612565b9150509250929050565b6000602082840312156116bf576116be611d10565b5b60006116cd848285016115fd565b91505092915050565b6000602082840312156116ec576116eb611d10565b5b60006116fa84828501611612565b91505092915050565b60006020828403121561171957611718611d10565b5b600061172784828501611627565b91505092915050565b6000806040838503121561174757611746611d10565b5b600061175585828601611612565b925050602061176685828601611612565b9150509250929050565b600061177c8383611788565b60208301905092915050565b61179181611b4f565b82525050565b6117a081611b4f565b82525050565b60006117b1826119f5565b6117bb8185611a18565b93506117c6836119e5565b8060005b838110156117f75781516117de8882611770565b97506117e983611a0b565b9250506001810190506117ca565b5085935050505092915050565b61180d81611b97565b82525050565b600061181e82611a00565b6118288185611a29565b9350611838818560208601611ba9565b61184181611d15565b840191505092915050565b6000611859601b83611a29565b915061186482611d26565b602082019050919050565b600061187c602183611a29565b915061188782611d4f565b604082019050919050565b61189b81611b8d565b82525050565b60006020820190506118b66000830184611797565b92915050565b60006040820190506118d16000830185611797565b6118de6020830184611892565b9392505050565b60006080820190506118fa6000830187611804565b818103602083015261190c81866117a6565b905061191b6040830185611797565b6119286060830184611892565b95945050505050565b6000602082019050818103600083015261194b8184611813565b905092915050565b6000602082019050818103600083015261196c8161184c565b9050919050565b6000602082019050818103600083015261198c8161186f565b9050919050565b60006020820190506119a86000830184611892565b92915050565b60006060820190506119c36000830186611892565b6119d06020830185611892565b6119dd6040830184611892565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611a4582611b8d565b9150611a5083611b8d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a8557611a84611c25565b5b828201905092915050565b6000611a9b82611b8d565b9150611aa683611b8d565b925082611ab657611ab5611c54565b5b828204905092915050565b6000611acc82611b8d565b9150611ad783611b8d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1057611b0f611c25565b5b828202905092915050565b6000611b2682611b8d565b9150611b3183611b8d565b925082821015611b4457611b43611c25565b5b828203905092915050565b6000611b5a82611b6d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611ba282611b8d565b9050919050565b60005b83811015611bc7578082015181840152602081019050611bac565b83811115611bd6576000848401525b50505050565b6000611be782611b8d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611c1a57611c19611c25565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b611da781611b4f565b8114611db257600080fd5b50565b611dbe81611b61565b8114611dc957600080fd5b50565b611dd581611b8d565b8114611de057600080fd5b5056fea264697066735822122052550fd206c972ccfe1d4b95cc24792ed1924bc6eb0a7e18fc94bbc13ee7428864736f6c63430008070033