Loading
[ { "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": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "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": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "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": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "marketingWalletUpdated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "airdrop", "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": [ { "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": "blocks", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "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": "uint256", "name": "_blocks", "type": "uint256" } ], "name": "joeMama", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualsend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "manualswap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxSwapAmount", "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": "maxWallet", "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rmvlmtss", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "uint256", "name": "_marketingFee", "type": "uint256" } ], "name": "updateBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buy", "type": "uint256" }, { "internalType": "uint256", "name": "_sell", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMarketingWallet", "type": "address" } ], "name": "updateMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" } ], "name": "updateSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updtMaxTxnAmunt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updteMxSwp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updteMxWlletmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updteSwpTkensAtAmnt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_whitelist", "type": "address" }, { "internalType": "bool", "name": "isWL", "type": "bool" } ], "name": "whitelistContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b506040518060400160405280600481526020017f4a6f6d61000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4a4f4d41000000000000000000000000000000000000000000000000000000008152508160039081620000dc919062000bfc565b508060049081620000ee919062000bfc565b50505062000111620001056200047060201b60201c565b6200047760201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200013c8160016200053a60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000d45565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026c919062000d45565b6040518363ffffffff1660e01b81526004016200028b92919062000d86565b6020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000d45565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200031660a05160016200053a60201b60201c565b6200032b60a05160016200062160201b60201c565b5f6b033b2e3c9fd0803ce800000090506a084595161401484a0000006007819055506a084595161401484a00000060098190555069152d02c7e14af68000006008819055506a0422ca8b0a00a425000000600a819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003e4620003d6620006bf60201b60201c565b6001620006e760201b60201c565b620003f7306001620006e760201b60201c565b6200040c61dead6001620006e760201b60201c565b6200042e62000420620006bf60201b60201c565b60016200053a60201b60201c565b620004413060016200053a60201b60201c565b6200045661dead60016200053a60201b60201c565b6200046833826200081e60201b60201c565b505062000f67565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200054a6200047060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000570620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005c09062000e0f565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620006f76200047060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200071d620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200076d9062000e0f565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000812919062000e4b565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200088f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008869062000eb4565b60405180910390fd5b620008a25f83836200098e60201b60201c565b8060025f828254620008b5919062000f01565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000909919062000f01565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096f919062000f4c565b60405180910390a36200098a5f83836200099360201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a1457607f821691505b60208210810362000a2a5762000a29620009cf565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000a8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a51565b62000a9a868362000a51565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ae462000ade62000ad88462000ab2565b62000abb565b62000ab2565b9050919050565b5f819050919050565b62000aff8362000ac4565b62000b1762000b0e8262000aeb565b84845462000a5d565b825550505050565b5f90565b62000b2d62000b1f565b62000b3a81848462000af4565b505050565b5b8181101562000b615762000b555f8262000b23565b60018101905062000b40565b5050565b601f82111562000bb05762000b7a8162000a30565b62000b858462000a42565b8101602085101562000b95578190505b62000bad62000ba48562000a42565b83018262000b3f565b50505b505050565b5f82821c905092915050565b5f62000bd25f198460080262000bb5565b1980831691505092915050565b5f62000bec838362000bc1565b9150826002028217905092915050565b62000c078262000998565b67ffffffffffffffff81111562000c235762000c22620009a2565b5b62000c2f8254620009fc565b62000c3c82828562000b65565b5f60209050601f83116001811462000c72575f841562000c5d578287015190505b62000c69858262000bdf565b86555062000cd8565b601f19841662000c828662000a30565b5f5b8281101562000cab5784890151825560018201915060208501945060208101905062000c84565b8683101562000ccb578489015162000cc7601f89168262000bc1565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d0f8262000ce4565b9050919050565b62000d218162000d03565b811462000d2c575f80fd5b50565b5f8151905062000d3f8162000d16565b92915050565b5f6020828403121562000d5d5762000d5c62000ce0565b5b5f62000d6c8482850162000d2f565b91505092915050565b62000d808162000d03565b82525050565b5f60408201905062000d9b5f83018562000d75565b62000daa602083018462000d75565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000df760208362000db1565b915062000e048262000dc1565b602082019050919050565b5f6020820190508181035f83015262000e288162000de9565b9050919050565b5f8115159050919050565b62000e458162000e2f565b82525050565b5f60208201905062000e605f83018462000e3a565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e9c601f8362000db1565b915062000ea98262000e66565b602082019050919050565b5f6020820190508181035f83015262000ecd8162000e8e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f0d8262000ab2565b915062000f1a8362000ab2565b925082820190508082111562000f355762000f3462000ed4565b5b92915050565b62000f468162000ab2565b82525050565b5f60208201905062000f615f83018462000f3b565b92915050565b60805160a0516147f262000fc15f395f8181610dbd015281816115940152611c5e01525f8181610be901528181611b7901528181611ba701528181611c9a01528181612ed201528181612fb10152612fd801526147f25ff3fe60806040526004361061028b575f3560e01c8063924de9b711610159578063c8c8ebe4116100c0578063e2f4560511610079578063e2f4560514610990578063eba4c333146109ba578063f2fde38b146109e2578063f867e23114610a0a578063f8b45b0514610a32578063fd2744e114610a5c57610292565b8063c8c8ebe4146108a4578063cce987d4146108ce578063d85ba063146108f8578063d902e5b814610922578063dd62ed3e1461093e578063e05cd2061461097a57610292565b8063a672990c11610112578063a672990c1461078a578063a9059cbb146107b2578063aacebbe3146107ee578063b62496f514610816578063bbc0c74214610852578063c02466681461087c57610292565b8063924de9b71461068257806395d89b41146106aa578063967ff23e146106d4578063984b5e37146106fe5780639a7a23d614610726578063a457c2d71461074e57610292565b80634a62bb65116101fd57806370a08231116101b657806370a082311461058e578063715018a6146105ca57806371fc4688146105e05780637571336a14610608578063881dce60146106305780638da5cb5b1461065857610292565b80634a62bb65146104aa57806367243482146104d45780636a486a8e146104fc5780636db79437146105265780636ddd17131461054e5780636fc3eaec1461057857610292565b806318160ddd1161024f57806318160ddd1461038a57806323b872dd146103b457806327c8f835146103f0578063313ce5671461041a578063395093511461044457806349bd5a5e1461048057610292565b806306fdde0314610296578063095ea7b3146102c057806310d5de53146102fc578063150812ff146103385780631694505e1461036057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a84565b6040516102b79190613506565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e191906135bb565b610b14565b6040516102f39190613613565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d919061362c565b610b31565b60405161032f9190613613565b60405180910390f35b348015610343575f80fd5b5061035e60048036038101906103599190613657565b610b4e565b005b34801561036b575f80fd5b50610374610be7565b60405161038191906136dd565b60405180910390f35b348015610395575f80fd5b5061039e610c0b565b6040516103ab9190613705565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061371e565b610c14565b6040516103e79190613613565b60405180910390f35b3480156103fb575f80fd5b50610404610d06565b604051610411919061377d565b60405180910390f35b348015610425575f80fd5b5061042e610d0c565b60405161043b91906137b1565b60405180910390f35b34801561044f575f80fd5b5061046a600480360381019061046591906135bb565b610d14565b6040516104779190613613565b60405180910390f35b34801561048b575f80fd5b50610494610dbb565b6040516104a1919061377d565b60405180910390f35b3480156104b5575f80fd5b506104be610ddf565b6040516104cb9190613613565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190613880565b610df1565b005b348015610507575f80fd5b50610510610e94565b60405161051d9190613705565b60405180910390f35b348015610531575f80fd5b5061054c600480360381019061054791906138fe565b610e9a565b005b348015610559575f80fd5b50610562610f28565b60405161056f9190613613565b60405180910390f35b348015610583575f80fd5b5061058c610f3b565b005b348015610599575f80fd5b506105b460048036038101906105af919061362c565b610fc9565b6040516105c19190613705565b60405180910390f35b3480156105d5575f80fd5b506105de61100e565b005b3480156105eb575f80fd5b5061060660048036038101906106019190613657565b611095565b005b348015610613575f80fd5b5061062e60048036038101906106299190613966565b61111b565b005b34801561063b575f80fd5b5061065660048036038101906106519190613657565b6111ef565b005b348015610663575f80fd5b5061066c6112b0565b604051610679919061377d565b60405180910390f35b34801561068d575f80fd5b506106a860048036038101906106a391906139a4565b6112d8565b005b3480156106b5575f80fd5b506106be611371565b6040516106cb9190613506565b60405180910390f35b3480156106df575f80fd5b506106e8611401565b6040516106f59190613705565b60405180910390f35b348015610709575f80fd5b50610724600480360381019061071f9190613657565b611407565b005b348015610731575f80fd5b5061074c60048036038101906107479190613966565b611516565b005b348015610759575f80fd5b50610774600480360381019061076f91906135bb565b61162e565b6040516107819190613613565b60405180910390f35b348015610795575f80fd5b506107b060048036038101906107ab9190613966565b611714565b005b3480156107bd575f80fd5b506107d860048036038101906107d391906135bb565b61183c565b6040516107e59190613613565b60405180910390f35b3480156107f9575f80fd5b50610814600480360381019061080f919061362c565b611859565b005b348015610821575f80fd5b5061083c6004803603810190610837919061362c565b611993565b6040516108499190613613565b60405180910390f35b34801561085d575f80fd5b506108666119b0565b6040516108739190613613565b60405180910390f35b348015610887575f80fd5b506108a2600480360381019061089d9190613966565b6119c3565b005b3480156108af575f80fd5b506108b8611ae5565b6040516108c59190613705565b60405180910390f35b3480156108d9575f80fd5b506108e2611aeb565b6040516108ef9190613705565b60405180910390f35b348015610903575f80fd5b5061090c611af1565b6040516109199190613705565b60405180910390f35b61093c60048036038101906109379190613657565b611af7565b005b348015610949575f80fd5b50610964600480360381019061095f91906139cf565b611d86565b6040516109719190613705565b60405180910390f35b348015610985575f80fd5b5061098e611e08565b005b34801561099b575f80fd5b506109a4611e9f565b6040516109b19190613705565b60405180910390f35b3480156109c5575f80fd5b506109e060048036038101906109db9190613657565b611ea5565b005b3480156109ed575f80fd5b50610a086004803603810190610a03919061362c565b611f2b565b005b348015610a15575f80fd5b50610a306004803603810190610a2b9190613657565b612021565b005b348015610a3d575f80fd5b50610a466120ba565b604051610a539190613705565b60405180910390f35b348015610a67575f80fd5b50610a826004803603810190610a7d9190613657565b6120c0565b005b606060038054610a9390613a3a565b80601f0160208091040260200160405190810160405280929190818152602001828054610abf90613a3a565b8015610b0a5780601f10610ae157610100808354040283529160200191610b0a565b820191905f5260205f20905b815481529060010190602001808311610aed57829003601f168201915b5050505050905090565b5f610b27610b206121cf565b84846121d6565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b566121cf565b73ffffffffffffffffffffffffffffffffffffffff16610b746112b0565b73ffffffffffffffffffffffffffffffffffffffff1614610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc190613ab4565b60405180910390fd5b670de0b6b3a764000081610bde9190613aff565b60088190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b5f610c20848484612399565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c676121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90613bb0565b60405180910390fd5b610cfa85610cf26121cf565b8584036121d6565b60019150509392505050565b61dead81565b5f6012905090565b5f610db1610d206121cf565b848460015f610d2d6121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610dac9190613bce565b6121d6565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b5f84849050118015610e0857508383905082829050145b610e10575f80fd5b5f3390505f5b85859050811015610e8c57610e7f82878784818110610e3857610e37613c01565b5b9050602002016020810190610e4d919061362c565b670de0b6b3a7640000878786818110610e6957610e68613c01565b5b90506020020135610e7a9190613aff565b612399565b8080600101915050610e16565b505050505050565b60105481565b610ea26121cf565b73ffffffffffffffffffffffffffffffffffffffff16610ec06112b0565b73ffffffffffffffffffffffffffffffffffffffff1614610f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0d90613ab4565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610f8190613c5b565b5f6040518083038185875af1925050503d805f8114610fbb576040519150601f19603f3d011682016040523d82523d5f602084013e610fc0565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110166121cf565b73ffffffffffffffffffffffffffffffffffffffff166110346112b0565b73ffffffffffffffffffffffffffffffffffffffff161461108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190613ab4565b60405180910390fd5b6110935f612d72565b565b61109d6121cf565b73ffffffffffffffffffffffffffffffffffffffff166110bb6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890613ab4565b60405180910390fd5b80600f8190555050565b6111236121cf565b73ffffffffffffffffffffffffffffffffffffffff166111416112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e90613ab4565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661122f6121cf565b73ffffffffffffffffffffffffffffffffffffffff161461124e575f80fd5b61125730610fc9565b811115801561126557505f81115b6112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b90613cb9565b60405180910390fd5b6112ad81612e35565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112e06121cf565b73ffffffffffffffffffffffffffffffffffffffff166112fe6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90613ab4565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b60606004805461138090613a3a565b80601f01602080910402602001604051908101604052809291908181526020018280546113ac90613a3a565b80156113f75780601f106113ce576101008083540402835291602001916113f7565b820191905f5260205f20905b8154815290600101906020018083116113da57829003601f168201915b5050505050905090565b600e5481565b61140f6121cf565b73ffffffffffffffffffffffffffffffffffffffff1661142d6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613ab4565b60405180910390fd5b670de0b6b3a76400006103e86001611499610c0b565b6114a39190613aff565b6114ad9190613d04565b6114b79190613d04565b8110156114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090613da4565b60405180910390fd5b670de0b6b3a76400008161150d9190613aff565b60078190555050565b61151e6121cf565b73ffffffffffffffffffffffffffffffffffffffff1661153c6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990613ab4565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161790613e32565b60405180910390fd5b61162a8282613068565b5050565b5f8060015f61163b6121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec90613ec0565b60405180910390fd5b6117096117006121cf565b858584036121d6565b600191505092915050565b61171c6121cf565b73ffffffffffffffffffffffffffffffffffffffff1661173a6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178790613ab4565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f61184f6118486121cf565b8484612399565b6001905092915050565b6118616121cf565b73ffffffffffffffffffffffffffffffffffffffff1661187f6112b0565b73ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613ab4565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b6119cb6121cf565b73ffffffffffffffffffffffffffffffffffffffff166119e96112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3690613ab4565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611ad99190613613565b60405180910390a25050565b60075481565b600a5481565b600f5481565b611aff6121cf565b73ffffffffffffffffffffffffffffffffffffffff16611b1d6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a90613ab4565b60405180910390fd5b611ba5307f0000000000000000000000000000000000000000000000000000000000000000611ba0610c0b565b6121d6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611bec30610fc9565b5f80611bf66112b0565b426040518863ffffffff1660e01b8152600401611c1896959493929190613f17565b60606040518083038185885af1158015611c34573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c599190613f8a565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611cf7929190613fda565b6020604051808303815f875af1158015611d13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d379190614015565b5080600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d8190555050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611e106121cf565b73ffffffffffffffffffffffffffffffffffffffff16611e2e6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7b90613ab4565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b60085481565b611ead6121cf565b73ffffffffffffffffffffffffffffffffffffffff16611ecb6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1890613ab4565b60405180910390fd5b8060108190555050565b611f336121cf565b73ffffffffffffffffffffffffffffffffffffffff16611f516112b0565b73ffffffffffffffffffffffffffffffffffffffff1614611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e90613ab4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c906140b0565b60405180910390fd5b61201e81612d72565b50565b6120296121cf565b73ffffffffffffffffffffffffffffffffffffffff166120476112b0565b73ffffffffffffffffffffffffffffffffffffffff161461209d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209490613ab4565b60405180910390fd5b670de0b6b3a7640000816120b19190613aff565b600a8190555050565b60095481565b6120c86121cf565b73ffffffffffffffffffffffffffffffffffffffff166120e66112b0565b73ffffffffffffffffffffffffffffffffffffffff161461213c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213390613ab4565b60405180910390fd5b670de0b6b3a76400006103e86005612152610c0b565b61215c9190613aff565b6121669190613d04565b6121709190613d04565b8110156121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a99061413e565b60405180910390fd5b670de0b6b3a7640000816121c69190613aff565b60098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b906141cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061425a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238c9190613705565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fe906142e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90614376565b60405180910390fd5b5f810361248c5761248783835f613106565b612d6d565b600b5f9054906101000a900460ff1615612997576124a86112b0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251657506124e66112b0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612588575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125a15750600560149054906101000a900460ff16155b156129965743600e54600c546125b79190613bce565b106125cd5760036010819055506003600f819055505b600b60019054906101000a900460ff166126bc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061267c575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b2906143de565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612759575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612800576007548111156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a9061446c565b60405180910390fd5b6009546127af83610fc9565b826127ba9190613bce565b11156127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f2906144d4565b60405180910390fd5b612995565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561289d575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128ec576007548111156128e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128de90614562565b60405180910390fd5b612994565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166129935760095461294683610fc9565b826129519190613bce565b1115612992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612989906144d4565b60405180910390fd5b5b5b5b5b5b5f6129a130610fc9565b90505f60085482101590508080156129c55750600b60029054906101000a900460ff165b80156129de5750600560149054906101000a900460ff16155b8015612a31575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a84575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ad7575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b6857600360145f4381526020019081526020015f20541015612b67576001600560146101000a81548160ff021916908315150217905550612b1961337b565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b519190613bce565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c17575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c20575f90505b5f8115612d5d5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7e57505f601054115b15612cb257612cab6064612c9d6010548861344890919063ffffffff16565b61345d90919063ffffffff16565b9050612d3a565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d0957505f600f54115b15612d3957612d366064612d28600f548861344890919063ffffffff16565b61345d90919063ffffffff16565b90505b5b5f811115612d4e57612d4d873083613106565b5b8085612d5a9190614580565b94505b612d68878787613106565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e5157612e506145b3565b5b604051908082528060200260200182016040528015612e7f5781602001602082028036833780820191505090505b50905030815f81518110612e9657612e95613c01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5d91906145f4565b81600181518110612f7157612f70613c01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd6307f0000000000000000000000000000000000000000000000000000000000000000846121d6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130379594939291906146d6565b5f604051808303815f87803b15801561304e575f80fd5b505af1158015613060573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316b906142e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d990614376565b60405180910390fd5b6131ed838383613472565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132679061479e565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132fe9190613bce565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133629190613705565b60405180910390a3613375848484613477565b50505050565b5f61338530610fc9565b90505f808203613396575050613446565b600a548211156133a657600a5491505b5f8290506133b381612e35565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133fc90613c5b565b5f6040518083038185875af1925050503d805f8114613436576040519150601f19603f3d011682016040523d82523d5f602084013e61343b565b606091505b505080935050505050505b565b5f81836134559190613aff565b905092915050565b5f818361346a9190613d04565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134b3578082015181840152602081019050613498565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134d88261347c565b6134e28185613486565b93506134f2818560208601613496565b6134fb816134be565b840191505092915050565b5f6020820190508181035f83015261351e81846134ce565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135578261352e565b9050919050565b6135678161354d565b8114613571575f80fd5b50565b5f813590506135828161355e565b92915050565b5f819050919050565b61359a81613588565b81146135a4575f80fd5b50565b5f813590506135b581613591565b92915050565b5f80604083850312156135d1576135d0613526565b5b5f6135de85828601613574565b92505060206135ef858286016135a7565b9150509250929050565b5f8115159050919050565b61360d816135f9565b82525050565b5f6020820190506136265f830184613604565b92915050565b5f6020828403121561364157613640613526565b5b5f61364e84828501613574565b91505092915050565b5f6020828403121561366c5761366b613526565b5b5f613679848285016135a7565b91505092915050565b5f819050919050565b5f6136a56136a061369b8461352e565b613682565b61352e565b9050919050565b5f6136b68261368b565b9050919050565b5f6136c7826136ac565b9050919050565b6136d7816136bd565b82525050565b5f6020820190506136f05f8301846136ce565b92915050565b6136ff81613588565b82525050565b5f6020820190506137185f8301846136f6565b92915050565b5f805f6060848603121561373557613734613526565b5b5f61374286828701613574565b935050602061375386828701613574565b9250506040613764868287016135a7565b9150509250925092565b6137778161354d565b82525050565b5f6020820190506137905f83018461376e565b92915050565b5f60ff82169050919050565b6137ab81613796565b82525050565b5f6020820190506137c45f8301846137a2565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137eb576137ea6137ca565b5b8235905067ffffffffffffffff811115613808576138076137ce565b5b602083019150836020820283011115613824576138236137d2565b5b9250929050565b5f8083601f8401126138405761383f6137ca565b5b8235905067ffffffffffffffff81111561385d5761385c6137ce565b5b602083019150836020820283011115613879576138786137d2565b5b9250929050565b5f805f806040858703121561389857613897613526565b5b5f85013567ffffffffffffffff8111156138b5576138b461352a565b5b6138c1878288016137d6565b9450945050602085013567ffffffffffffffff8111156138e4576138e361352a565b5b6138f08782880161382b565b925092505092959194509250565b5f806040838503121561391457613913613526565b5b5f613921858286016135a7565b9250506020613932858286016135a7565b9150509250929050565b613945816135f9565b811461394f575f80fd5b50565b5f813590506139608161393c565b92915050565b5f806040838503121561397c5761397b613526565b5b5f61398985828601613574565b925050602061399a85828601613952565b9150509250929050565b5f602082840312156139b9576139b8613526565b5b5f6139c684828501613952565b91505092915050565b5f80604083850312156139e5576139e4613526565b5b5f6139f285828601613574565b9250506020613a0385828601613574565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a5157607f821691505b602082108103613a6457613a63613a0d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a9e602083613486565b9150613aa982613a6a565b602082019050919050565b5f6020820190508181035f830152613acb81613a92565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613b0982613588565b9150613b1483613588565b9250828202613b2281613588565b91508282048414831517613b3957613b38613ad2565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613b9a602883613486565b9150613ba582613b40565b604082019050919050565b5f6020820190508181035f830152613bc781613b8e565b9050919050565b5f613bd882613588565b9150613be383613588565b9250828201905080821115613bfb57613bfa613ad2565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f613c465f83613c2e565b9150613c5182613c38565b5f82019050919050565b5f613c6582613c3b565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613ca3600c83613486565b9150613cae82613c6f565b602082019050919050565b5f6020820190508181035f830152613cd081613c97565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d0e82613588565b9150613d1983613588565b925082613d2957613d28613cd7565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613d8e602f83613486565b9150613d9982613d34565b604082019050919050565b5f6020820190508181035f830152613dbb81613d82565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613e1c603983613486565b9150613e2782613dc2565b604082019050919050565b5f6020820190508181035f830152613e4981613e10565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613eaa602583613486565b9150613eb582613e50565b604082019050919050565b5f6020820190508181035f830152613ed781613e9e565b9050919050565b5f819050919050565b5f613f01613efc613ef784613ede565b613682565b613588565b9050919050565b613f1181613ee7565b82525050565b5f60c082019050613f2a5f83018961376e565b613f3760208301886136f6565b613f446040830187613f08565b613f516060830186613f08565b613f5e608083018561376e565b613f6b60a08301846136f6565b979650505050505050565b5f81519050613f8481613591565b92915050565b5f805f60608486031215613fa157613fa0613526565b5b5f613fae86828701613f76565b9350506020613fbf86828701613f76565b9250506040613fd086828701613f76565b9150509250925092565b5f604082019050613fed5f83018561376e565b613ffa60208301846136f6565b9392505050565b5f8151905061400f8161393c565b92915050565b5f6020828403121561402a57614029613526565b5b5f61403784828501614001565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61409a602683613486565b91506140a582614040565b604082019050919050565b5f6020820190508181035f8301526140c78161408e565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f614128602483613486565b9150614133826140ce565b604082019050919050565b5f6020820190508181035f8301526141558161411c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6141b6602483613486565b91506141c18261415c565b604082019050919050565b5f6020820190508181035f8301526141e3816141aa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614244602283613486565b915061424f826141ea565b604082019050919050565b5f6020820190508181035f83015261427181614238565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142d2602583613486565b91506142dd82614278565b604082019050919050565b5f6020820190508181035f8301526142ff816142c6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614360602383613486565b915061436b82614306565b604082019050919050565b5f6020820190508181035f83015261438d81614354565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143c8601683613486565b91506143d382614394565b602082019050919050565b5f6020820190508181035f8301526143f5816143bc565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f614456603583613486565b9150614461826143fc565b604082019050919050565b5f6020820190508181035f8301526144838161444a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144be601383613486565b91506144c98261448a565b602082019050919050565b5f6020820190508181035f8301526144eb816144b2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61454c603683613486565b9150614557826144f2565b604082019050919050565b5f6020820190508181035f83015261457981614540565b9050919050565b5f61458a82613588565b915061459583613588565b92508282039050818111156145ad576145ac613ad2565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145ee8161355e565b92915050565b5f6020828403121561460957614608613526565b5b5f614616848285016145e0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6146518161354d565b82525050565b5f6146628383614648565b60208301905092915050565b5f602082019050919050565b5f6146848261461f565b61468e8185614629565b935061469983614639565b805f5b838110156146c95781516146b08882614657565b97506146bb8361466e565b92505060018101905061469c565b5085935050505092915050565b5f60a0820190506146e95f8301886136f6565b6146f66020830187613f08565b8181036040830152614708818661467a565b9050614717606083018561376e565b61472460808301846136f6565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614788602683613486565b91506147938261472e565b604082019050919050565b5f6020820190508181035f8301526147b58161477c565b905091905056fea2646970667358221220924168476f3d8b89971cd7ae4b8962df54d0d1d02580548a703fee86fecce37e64736f6c63430008170033