[ { "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": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isActive", "type": "bool" } ], "name": "AutomatedMarketMakerPairUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludedFromFees", "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": 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": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" }, { "indexed": false, "internalType": "string", "name": "walletType", "type": "string" } ], "name": "WalletAddressUpdated", "type": "event" }, { "inputs": [], "name": "ROUTER_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activateTrading", "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": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "areTransactionLimitsActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableTransactionLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableTransferDelay", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "excludeFromMaxTransactionLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isAccountExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromMaxTransactionLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSwapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isTradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isTransferDelayEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchBlockNumber", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWalletBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "sellFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "isActive", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newFee", "type": "uint256" } ], "name": "setBuyFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newFee", "type": "uint256" } ], "name": "setSellFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabledBlockNumber", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBuyCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateDevelopmentWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateMaxTransactionAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateMaxWalletBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "waiveOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526014600a555f600b55600160135f6101000a81548160ff0219169083151502179055505f601360016101000a81548160ff0219169083151502179055505f601360026101000a81548160ff021916908315150217905550600160155f6101000a81548160ff021916908315150217905550348015610080575f80fd5b506040518060400160405280600981526020017f466f7274696679414900000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f464f525441490000000000000000000000000000000000000000000000000000815250601282600390816100fe9190610c58565b50816004908161010e9190610c58565b508060055f6101000a81548160ff021916908360ff1602179055505050505f61013b61058e60201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d905061020281600161059560201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a39190610d85565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032c9190610d85565b6040518363ffffffff1660e01b8152600401610349929190610dbf565b6020604051808303815f875af1158015610365573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103899190610d85565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506103cf60a051600161059560201b60201c565b6103e260a051600161068a60201b60201c565b5f6103f161073060201b60201c565b600a6103fd9190610f4e565b6298968061040b9190610f98565b905061271060c88261041d9190610f98565b6104279190611006565b60108190555061271060c88261043d9190610f98565b6104479190611006565b60128190555061271060328261045d9190610f98565b6104679190611006565b60118190555061271060c88261047d9190610f98565b6104879190611006565b600981905550610bb8600781905550610bb86008819055507328a0aeba3a084ee39d2cd58644e53486ba216b9a600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061051161050461074560201b60201c565b600161076e60201b60201c565b61052230600161076e60201b60201c565b61053561dead600161076e60201b60201c565b61055361054661074560201b60201c565b600161059560201b60201c565b61056430600161059560201b60201c565b61057761dead600161059560201b60201c565b61058733826108b160201b60201c565b50506111a4565b5f33905090565b6105a361058e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062990611090565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fef0b71f3a695ce5a89064cc2745d0c503cf766ed985e781607660be6010b8e908260405161072491906110c8565b60405180910390a25050565b5f60055f9054906101000a900460ff16905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61077c61058e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290611090565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb826040516108a591906110c8565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361091f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109169061112b565b60405180910390fd5b6109305f8383610a1460201b60201c565b8060025f8282546109419190611149565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109939190611149565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109f7919061118b565b60405180910390a3610a105f8383610a1960201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a9957607f821691505b602082108103610aac57610aab610a55565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b0e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610ad3565b610b188683610ad3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b5c610b57610b5284610b30565b610b39565b610b30565b9050919050565b5f819050919050565b610b7583610b42565b610b89610b8182610b63565b848454610adf565b825550505050565b5f90565b610b9d610b91565b610ba8818484610b6c565b505050565b5b81811015610bcb57610bc05f82610b95565b600181019050610bae565b5050565b601f821115610c1057610be181610ab2565b610bea84610ac4565b81016020851015610bf9578190505b610c0d610c0585610ac4565b830182610bad565b50505b505050565b5f82821c905092915050565b5f610c305f1984600802610c15565b1980831691505092915050565b5f610c488383610c21565b9150826002028217905092915050565b610c6182610a1e565b67ffffffffffffffff811115610c7a57610c79610a28565b5b610c848254610a82565b610c8f828285610bcf565b5f60209050601f831160018114610cc0575f8415610cae578287015190505b610cb88582610c3d565b865550610d1f565b601f198416610cce86610ab2565b5f5b82811015610cf557848901518255600182019150602085019450602081019050610cd0565b86831015610d125784890151610d0e601f891682610c21565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d5482610d2b565b9050919050565b610d6481610d4a565b8114610d6e575f80fd5b50565b5f81519050610d7f81610d5b565b92915050565b5f60208284031215610d9a57610d99610d27565b5b5f610da784828501610d71565b91505092915050565b610db981610d4a565b82525050565b5f604082019050610dd25f830185610db0565b610ddf6020830184610db0565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610e6857808604811115610e4457610e43610de6565b5b6001851615610e535780820291505b8081029050610e6185610e13565b9450610e28565b94509492505050565b5f82610e805760019050610f3b565b81610e8d575f9050610f3b565b8160018114610ea35760028114610ead57610edc565b6001915050610f3b565b60ff841115610ebf57610ebe610de6565b5b8360020a915084821115610ed657610ed5610de6565b5b50610f3b565b5060208310610133831016604e8410600b8410161715610f115782820a905083811115610f0c57610f0b610de6565b5b610f3b565b610f1e8484846001610e1f565b92509050818404811115610f3557610f34610de6565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610f5882610b30565b9150610f6383610f42565b9250610f907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610e71565b905092915050565b5f610fa282610b30565b9150610fad83610b30565b9250828202610fbb81610b30565b91508282048414831517610fd257610fd1610de6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61101082610b30565b915061101b83610b30565b92508261102b5761102a610fd9565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61107a602083611036565b915061108582611046565b602082019050919050565b5f6020820190508181035f8301526110a78161106e565b9050919050565b5f8115159050919050565b6110c2816110ae565b82525050565b5f6020820190506110db5f8301846110b9565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f611115601f83611036565b9150611120826110e1565b602082019050919050565b5f6020820190508181035f83015261114281611109565b9050919050565b5f61115382610b30565b915061115e83610b30565b925082820190508082111561117657611175610de6565b5b92915050565b61118581610b30565b82525050565b5f60208201905061119e5f83018461117c565b92915050565b60805160a051614c316111ef5f395f81816110550152818161154b01526126cc01525f8181610d2701528181612674015281816133c9015281816134a801526134cf0152614c315ff3fe608060405260043610610275575f3560e01c8063914eb66a1161014e578063c0246668116100c0578063e01af92c11610079578063e01af92c14610976578063e2dae0741461099e578063e2f45605146109c8578063e884f260146109f2578063f023f57314610a1c578063f2fde38b14610a445761027c565b8063c024666814610846578063c53d4d531461086e578063c8c8ebe414610898578063d257b34f146108c2578063da3e78ea146108fe578063dd62ed3e1461093a5761027c565b8063aa49802311610112578063aa49802314610728578063b62496f514610750578063b6d5f1441461078c578063b94a6dfe146107c8578063bbde77c1146107f2578063bd3e88411461081c5761027c565b8063914eb66a1461064857806395d89b411461065e5780639a7a23d614610688578063a457c2d7146106b0578063a9059cbb146106ec5761027c565b806339509351116101e7578063696913bf116101ab578063696913bf1461053e57806370a082311461056857806384e92c00146105a4578063880bcbc1146105ce5780638b4cee08146105f65780638da5cb5b1461061e5761027c565b8063395093511461045a5780633db7ff631461049657806347062402146104c057806349bd5a5e146104ea57806364142e99146105145761027c565b806318160ddd1161023957806318160ddd1461034e578063188b1bf11461037857806323b872dd146103a05780632b14ca56146103dc578063313ce56714610406578063351a964d146104305761027c565b806306fdde0314610280578063095ea7b3146102aa5780630bd05b69146102e65780630cc835a3146102fc5780631694505e146103245761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b50610294610a6c565b6040516102a19190613630565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb91906136e1565b610afc565b6040516102dd9190613739565b60405180910390f35b3480156102f1575f80fd5b506102fa610b19565b005b348015610307575f80fd5b50610322600480360381019061031d9190613752565b610c3f565b005b34801561032f575f80fd5b50610338610d25565b60405161034591906137d8565b60405180910390f35b348015610359575f80fd5b50610362610d49565b60405161036f9190613800565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613752565b610d52565b005b3480156103ab575f80fd5b506103c660048036038101906103c19190613819565b610e74565b6040516103d39190613739565b60405180910390f35b3480156103e7575f80fd5b506103f0610f66565b6040516103fd9190613800565b60405180910390f35b348015610411575f80fd5b5061041a610f6c565b6040516104279190613884565b60405180910390f35b34801561043b575f80fd5b50610444610f81565b6040516104519190613739565b60405180910390f35b348015610465575f80fd5b50610480600480360381019061047b91906136e1565b610f94565b60405161048d9190613739565b60405180910390f35b3480156104a1575f80fd5b506104aa61103b565b6040516104b79190613739565b60405180910390f35b3480156104cb575f80fd5b506104d461104d565b6040516104e19190613800565b60405180910390f35b3480156104f5575f80fd5b506104fe611053565b60405161050b91906138ac565b60405180910390f35b34801561051f575f80fd5b50610528611077565b6040516105359190613800565b60405180910390f35b348015610549575f80fd5b5061055261107d565b60405161055f9190613800565b60405180910390f35b348015610573575f80fd5b5061058e600480360381019061058991906138c5565b611083565b60405161059b9190613800565b60405180910390f35b3480156105af575f80fd5b506105b86110c8565b6040516105c59190613800565b60405180910390f35b3480156105d9575f80fd5b506105f460048036038101906105ef919061391a565b6110ce565b005b348015610601575f80fd5b5061061c60048036038101906106179190613752565b6111bd565b005b348015610629575f80fd5b506106326112a3565b60405161063f91906138ac565b60405180910390f35b348015610653575f80fd5b5061065c6112cc565b005b348015610669575f80fd5b50610672611422565b60405161067f9190613630565b60405180910390f35b348015610693575f80fd5b506106ae60048036038101906106a9919061391a565b6114b2565b005b3480156106bb575f80fd5b506106d660048036038101906106d191906136e1565b6115e5565b6040516106e39190613739565b60405180910390f35b3480156106f7575f80fd5b50610712600480360381019061070d91906136e1565b6116cb565b60405161071f9190613739565b60405180910390f35b348015610733575f80fd5b5061074e60048036038101906107499190613752565b6116e8565b005b34801561075b575f80fd5b50610776600480360381019061077191906138c5565b61180a565b6040516107839190613739565b60405180910390f35b348015610797575f80fd5b506107b260048036038101906107ad91906138c5565b611827565b6040516107bf9190613739565b60405180910390f35b3480156107d3575f80fd5b506107dc611844565b6040516107e991906138ac565b60405180910390f35b3480156107fd575f80fd5b5061080661185c565b6040516108139190613800565b60405180910390f35b348015610827575f80fd5b50610830611862565b60405161083d9190613739565b60405180910390f35b348015610851575f80fd5b5061086c6004803603810190610867919061391a565b611874565b005b348015610879575f80fd5b506108826119b1565b60405161088f9190613739565b60405180910390f35b3480156108a3575f80fd5b506108ac6119c4565b6040516108b99190613800565b60405180910390f35b3480156108cd575f80fd5b506108e860048036038101906108e39190613752565b6119ca565b6040516108f59190613739565b60405180910390f35b348015610909575f80fd5b50610924600480360381019061091f91906138c5565b611b39565b6040516109319190613739565b60405180910390f35b348015610945575f80fd5b50610960600480360381019061095b9190613958565b611b8b565b60405161096d9190613800565b60405180910390f35b348015610981575f80fd5b5061099c60048036038101906109979190613996565b611c0d565b005b3480156109a9575f80fd5b506109b2611cc1565b6040516109bf9190613739565b60405180910390f35b3480156109d3575f80fd5b506109dc611d79565b6040516109e99190613800565b60405180910390f35b3480156109fd575f80fd5b50610a06611d7f565b604051610a139190613739565b60405180910390f35b348015610a27575f80fd5b50610a426004803603810190610a3d91906138c5565b611e37565b005b348015610a4f575f80fd5b50610a6a6004803603810190610a6591906138c5565b611f95565b005b606060038054610a7b906139ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa7906139ee565b8015610af25780601f10610ac957610100808354040283529160200191610af2565b820191905f5260205f20905b815481529060010190602001808311610ad557829003601f168201915b5050505050905090565b5f610b0f610b0861215a565b8484612161565b6001905092915050565b610b2161215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790613a68565b60405180910390fd5b601360019054906101000a900460ff1615610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790613ad0565b60405180910390fd5b6001601360016101000a81548160ff021916908315150217905550436016819055506001601360026101000a81548160ff021916908315150217905550565b610c4761215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90613a68565b60405180910390fd5b611388811115610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290613b38565b60405180910390fd5b8060078190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610d5a61215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090613a68565b60405180910390fd5b6127106032610df6610d49565b610e009190613b83565b610e0a9190613bf1565b811015610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390613c6b565b60405180910390fd5b610e54610f6c565b600a610e609190613db8565b81610e6b9190613b83565b60128190555050565b5f610e80848484612324565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ec761215a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90613e72565b60405180910390fd5b610f5a85610f5261215a565b858403612161565b60019150509392505050565b60085481565b5f60055f9054906101000a900460ff16905090565b601360029054906101000a900460ff1681565b5f611031610fa061215a565b848460015f610fad61215a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461102c9190613e90565b612161565b6001905092915050565b60135f9054906101000a900460ff1681565b60075481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5481565b600a5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60165481565b6110d661215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c90613a68565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6111c561215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b90613a68565b60405180910390fd5b611388811115611299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129090613f0d565b60405180910390fd5b8060088190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112d461215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90613a68565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060048054611431906139ee565b80601f016020809104026020016040519081016040528092919081815260200182805461145d906139ee565b80156114a85780601f1061147f576101008083540402835291602001916114a8565b820191905f5260205f20905b81548152906001019060200180831161148b57829003601f168201915b5050505050905090565b6114ba61215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090613a68565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613f9b565b60405180910390fd5b6115e18282612e7f565b5050565b5f8060015f6115f261215a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390614029565b60405180910390fd5b6116c06116b761215a565b85858403612161565b600191505092915050565b5f6116de6116d761215a565b8484612324565b6001905092915050565b6116f061215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177690613a68565b60405180910390fd5b612710600a61178c610d49565b6117969190613b83565b6117a09190613bf1565b8110156117e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d990614091565b60405180910390fd5b6117ea610f6c565b600a6117f69190613db8565b816118019190613b83565b60108190555050565b600e602052805f5260405f205f915054906101000a900460ff1681565b600d602052805f5260405f205f915054906101000a900460ff1681565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60125481565b60155f9054906101000a900460ff1681565b61187c61215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290613a68565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb826040516119a59190613739565b60405180910390a25050565b601360019054906101000a900460ff1681565b60105481565b5f6119d361215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5990613a68565b60405180910390fd5b620186a06001611a70610d49565b611a7a9190613b83565b611a849190613bf1565b821015611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd906140f9565b60405180910390fd5b6127106064611ad3610d49565b611add9190613b83565b611ae79190613bf1565b821115611b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2090614161565b60405180910390fd5b8160118190555060019050919050565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c1561215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90613a68565b60405180910390fd5b80601360026101000a81548160ff02191690831515021790555050565b5f611cca61215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5090613a68565b60405180910390fd5b5f60135f6101000a81548160ff0219169083151502179055506001905090565b60115481565b5f611d8861215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0e90613a68565b60405180910390fd5b5f60155f6101000a81548160ff0219169083151502179055506001905090565b611e3f61215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec590613a68565b60405180910390fd5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9757b301a6cd7906b1114b306b774ab2af913354ea7ede8e56e7198dd31bac82604051611f4a906141c9565b60405180910390a380600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f9d61215a565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461202c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202390613a68565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361209a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209190614257565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c6906142e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361223d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223490614373565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123179190613800565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238990614401565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f790614469565b60405180910390fd5b5f81036124175761241283835f612f25565b612e7a565b60135f9054906101000a900460ff1615612abe576124336112a3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124a157506124716112a3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124d957505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612513575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561252c5750600660149054906101000a900460ff16155b15612abd57601360019054906101000a900460ff1661262057600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125e05750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61261f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612616906144d1565b60405180910390fd5b5b60155f9054906101000a900460ff16156127e35761263c6112a3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156126c357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561271b57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127e2574360145f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061279f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127969061455f565b60405180910390fd5b4360145f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156128805750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612927576010548111156128ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c1906145ed565b60405180910390fd5b6012546128d683611083565b826128e19190613e90565b1115612922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129199061467b565b60405180910390fd5b612abc565b600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129c45750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a1357601054811115612a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0590614709565b60405180910390fd5b612abb565b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612aba57601254612a6d83611083565b82612a789190613e90565b1115612ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab09061467b565b60405180910390fd5b5b5b5b5b5b5f612ac830611083565b90505f6011548210159050808015612aec5750601360029054906101000a900460ff165b8015612b055750600660149054906101000a900460ff16155b8015612b585750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612bab5750600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612bfe5750600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612c0d5750600a54600b54115b15612c5c576001600660146101000a81548160ff021916908315150217905550612c41612c3c8360095461319a565b6131b2565b5f600660146101000a81548160ff0219169083151502179055505b5f600660149054906101000a900460ff16159050600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d0b5750600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d14575f90505b5f8115612e6a57600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d7257505f600854115b15612da757612da0612710612d926008548861326290919063ffffffff16565b6132d990919063ffffffff16565b9050612e47565b600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612dfe57505f600754115b15612e4657612e2c612710612e1e6007548861326290919063ffffffff16565b6132d990919063ffffffff16565b9050600b5f815480929190612e4090614727565b91905055505b5b5f811115612e5b57612e5a873083612f25565b5b8085612e67919061476e565b94505b612e75878787612f25565b505050505b505050565b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fef0b71f3a695ce5a89064cc2745d0c503cf766ed985e781607660be6010b8e9082604051612f199190613739565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8a90614811565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff89061489f565b60405180910390fd5b61300c838383613322565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561308f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130869061492d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461311d9190613e90565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131819190613800565b60405180910390a3613194848484613327565b50505050565b5f8183116131a857826131aa565b815b905092915050565b5f8082036131c0575061325f565b5f8290506131cd8161332c565b5f479050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161321690614978565b5f6040518083038185875af1925050503d805f8114613250576040519150601f19603f3d011682016040523d82523d5f602084013e613255565b606091505b5050809350505050505b50565b5f808303613272575f90506132d3565b5f828461327f9190613b83565b905082848261328e9190613bf1565b146132ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132c5906149fc565b60405180910390fd5b809150505b92915050565b5f61331a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061355f565b905092915050565b505050565b505050565b5f600267ffffffffffffffff81111561334857613347614a1a565b5b6040519080825280602002602001820160405280156133765781602001602082028036833780820191505090505b50905030815f8151811061338d5761338c614a47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613430573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134549190614a88565b8160018151811061346857613467614a47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134cd307f000000000000000000000000000000000000000000000000000000000000000084612161565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161352e959493929190614ba3565b5f604051808303815f87803b158015613545575f80fd5b505af1158015613557573d5f803e3d5ffd5b505050505050565b5f80831182906135a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161359c9190613630565b60405180910390fd5b505f83856135b39190613bf1565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613602826135c0565b61360c81856135ca565b935061361c8185602086016135da565b613625816135e8565b840191505092915050565b5f6020820190508181035f83015261364881846135f8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61367d82613654565b9050919050565b61368d81613673565b8114613697575f80fd5b50565b5f813590506136a881613684565b92915050565b5f819050919050565b6136c0816136ae565b81146136ca575f80fd5b50565b5f813590506136db816136b7565b92915050565b5f80604083850312156136f7576136f6613650565b5b5f6137048582860161369a565b9250506020613715858286016136cd565b9150509250929050565b5f8115159050919050565b6137338161371f565b82525050565b5f60208201905061374c5f83018461372a565b92915050565b5f6020828403121561376757613766613650565b5b5f613774848285016136cd565b91505092915050565b5f819050919050565b5f6137a061379b61379684613654565b61377d565b613654565b9050919050565b5f6137b182613786565b9050919050565b5f6137c2826137a7565b9050919050565b6137d2816137b8565b82525050565b5f6020820190506137eb5f8301846137c9565b92915050565b6137fa816136ae565b82525050565b5f6020820190506138135f8301846137f1565b92915050565b5f805f606084860312156138305761382f613650565b5b5f61383d8682870161369a565b935050602061384e8682870161369a565b925050604061385f868287016136cd565b9150509250925092565b5f60ff82169050919050565b61387e81613869565b82525050565b5f6020820190506138975f830184613875565b92915050565b6138a681613673565b82525050565b5f6020820190506138bf5f83018461389d565b92915050565b5f602082840312156138da576138d9613650565b5b5f6138e78482850161369a565b91505092915050565b6138f98161371f565b8114613903575f80fd5b50565b5f81359050613914816138f0565b92915050565b5f80604083850312156139305761392f613650565b5b5f61393d8582860161369a565b925050602061394e85828601613906565b9150509250929050565b5f806040838503121561396e5761396d613650565b5b5f61397b8582860161369a565b925050602061398c8582860161369a565b9150509250929050565b5f602082840312156139ab576139aa613650565b5b5f6139b884828501613906565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a0557607f821691505b602082108103613a1857613a176139c1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a526020836135ca565b9150613a5d82613a1e565b602082019050919050565b5f6020820190508181035f830152613a7f81613a46565b9050919050565b7f54726164696e6720697320616c726561647920616374697665000000000000005f82015250565b5f613aba6019836135ca565b9150613ac582613a86565b602082019050919050565b5f6020820190508181035f830152613ae781613aae565b9050919050565b7f427579206665652065786365656473206c696d69742e000000000000000000005f82015250565b5f613b226016836135ca565b9150613b2d82613aee565b602082019050919050565b5f6020820190508181035f830152613b4f81613b16565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613b8d826136ae565b9150613b98836136ae565b9250828202613ba6816136ae565b91508282048414831517613bbd57613bbc613b56565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613bfb826136ae565b9150613c06836136ae565b925082613c1657613c15613bc4565b5b828204905092915050565b7f4d61782077616c6c65742062616c616e636520746f6f206c6f772e00000000005f82015250565b5f613c55601b836135ca565b9150613c6082613c21565b602082019050919050565b5f6020820190508181035f830152613c8281613c49565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613cde57808604811115613cba57613cb9613b56565b5b6001851615613cc95780820291505b8081029050613cd785613c89565b9450613c9e565b94509492505050565b5f82613cf65760019050613db1565b81613d03575f9050613db1565b8160018114613d195760028114613d2357613d52565b6001915050613db1565b60ff841115613d3557613d34613b56565b5b8360020a915084821115613d4c57613d4b613b56565b5b50613db1565b5060208310610133831016604e8410600b8410161715613d875782820a905083811115613d8257613d81613b56565b5b613db1565b613d948484846001613c95565b92509050818404811115613dab57613daa613b56565b5b81810290505b9392505050565b5f613dc2826136ae565b9150613dcd83613869565b9250613dfa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613ce7565b905092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e5c6028836135ca565b9150613e6782613e02565b604082019050919050565b5f6020820190508181035f830152613e8981613e50565b9050919050565b5f613e9a826136ae565b9150613ea5836136ae565b9250828201905080821115613ebd57613ebc613b56565b5b92915050565b7f53656c6c206665652065786365656473206c696d69742e0000000000000000005f82015250565b5f613ef76017836135ca565b9150613f0282613ec3565b602082019050919050565b5f6020820190508181035f830152613f2481613eeb565b9050919050565b7f43616e6e6f742072656d6f766520746865206d61696e206c69717569646974795f8201527f2070616972000000000000000000000000000000000000000000000000000000602082015250565b5f613f856025836135ca565b9150613f9082613f2b565b604082019050919050565b5f6020820190508181035f830152613fb281613f79565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6140136025836135ca565b915061401e82613fb9565b604082019050919050565b5f6020820190508181035f83015261404081614007565b9050919050565b7f4d6178207472616e73616374696f6e20616d6f756e7420746f6f206c6f772e005f82015250565b5f61407b601f836135ca565b915061408682614047565b602082019050919050565b5f6020820190508181035f8301526140a88161406f565b9050919050565b7f5377617020616d6f756e7420746f6f206c6f772e0000000000000000000000005f82015250565b5f6140e36014836135ca565b91506140ee826140af565b602082019050919050565b5f6020820190508181035f830152614110816140d7565b9050919050565b7f5377617020616d6f756e7420746f6f20686967682e00000000000000000000005f82015250565b5f61414b6015836135ca565b915061415682614117565b602082019050919050565b5f6020820190508181035f8301526141788161413f565b9050919050565b7f446576656c6f706d656e740000000000000000000000000000000000000000005f82015250565b5f6141b3600b836135ca565b91506141be8261417f565b602082019050919050565b5f6020820190508181035f8301526141e0816141a7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6142416026836135ca565b915061424c826141e7565b604082019050919050565b5f6020820190508181035f83015261426e81614235565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6142cf6024836135ca565b91506142da82614275565b604082019050919050565b5f6020820190508181035f8301526142fc816142c3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61435d6022836135ca565b915061436882614303565b604082019050919050565b5f6020820190508181035f83015261438a81614351565b9050919050565b7f45524332303a207472616e736665722066726f6d207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6143eb6021836135ca565b91506143f682614391565b604082019050919050565b5f6020820190508181035f830152614418816143df565b9050919050565b7f45524332303a207472616e7366657220746f207a65726f2061646472657373005f82015250565b5f614453601f836135ca565b915061445e8261441f565b602082019050919050565b5f6020820190508181035f83015261448081614447565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6144bb6016836135ca565b91506144c682614487565b602082019050919050565b5f6020820190508181035f8301526144e8816144af565b9050919050565b7f5472616e736665722064656c6179206163746976653a204f6e6c79206f6e65205f8201527f7472616e73616374696f6e2070657220626c6f636b20616c6c6f7765642e0000602082015250565b5f614549603e836135ca565b9150614554826144ef565b604082019050919050565b5f6020820190508181035f8301526145768161453d565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178207472616e735f8201527f616374696f6e20616d6f756e742e000000000000000000000000000000000000602082015250565b5f6145d7602e836135ca565b91506145e28261457d565b604082019050919050565b5f6020820190508181035f830152614604816145cb565b9050919050565b7f526563697069656e742062616c616e6365206578636565647320746865206d615f8201527f782077616c6c65742062616c616e63652e000000000000000000000000000000602082015250565b5f6146656031836135ca565b91506146708261460b565b604082019050919050565b5f6020820190508181035f83015261469281614659565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d6178207472616e5f8201527f73616374696f6e20616d6f756e742e0000000000000000000000000000000000602082015250565b5f6146f3602f836135ca565b91506146fe82614699565b604082019050919050565b5f6020820190508181035f830152614720816146e7565b9050919050565b5f614731826136ae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361476357614762613b56565b5b600182019050919050565b5f614778826136ae565b9150614783836136ae565b925082820390508181111561479b5761479a613b56565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6147fb6025836135ca565b9150614806826147a1565b604082019050919050565b5f6020820190508181035f830152614828816147ef565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6148896023836135ca565b91506148948261482f565b604082019050919050565b5f6020820190508181035f8301526148b68161487d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6149176026836135ca565b9150614922826148bd565b604082019050919050565b5f6020820190508181035f8301526149448161490b565b9050919050565b5f81905092915050565b50565b5f6149635f8361494b565b915061496e82614955565b5f82019050919050565b5f61498282614958565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6149e66021836135ca565b91506149f18261498c565b604082019050919050565b5f6020820190508181035f830152614a13816149da565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614a8281613684565b92915050565b5f60208284031215614a9d57614a9c613650565b5b5f614aaa84828501614a74565b91505092915050565b5f819050919050565b5f614ad6614ad1614acc84614ab3565b61377d565b6136ae565b9050919050565b614ae681614abc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614b1e81613673565b82525050565b5f614b2f8383614b15565b60208301905092915050565b5f602082019050919050565b5f614b5182614aec565b614b5b8185614af6565b9350614b6683614b06565b805f5b83811015614b96578151614b7d8882614b24565b9750614b8883614b3b565b925050600181019050614b69565b5085935050505092915050565b5f60a082019050614bb65f8301886137f1565b614bc36020830187614add565b8181036040830152614bd58186614b47565b9050614be4606083018561389d565b614bf160808301846137f1565b969550505050505056fea26469706673582212202cba5274bd875fc0d875a74670cbe32ab48d92e7b543f851f73a2c701b37f5d264736f6c634300081a0033