[ { "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": "sniper", "type": "address" } ], "name": "BoughtEarly", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "olDevsWalletallet", "type": "address" } ], "name": "DevsWalletUpdated", "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": 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": "olDevsWalletallet", "type": "address" } ], "name": "marketerWalletUpdated", "type": "event" }, { "inputs": [], "name": "DevsWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedmaxTx", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "buyDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyMarketingFee", "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": [], "name": "disableTransferDelay", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "enableTradingWithPermit", "outputs": [], "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": "excludeFrommaxTx", "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": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "manualSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketerWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallets", "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": "removeLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "tokensForDev", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForMarkets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "transferDelayEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "updateBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateDevsWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "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": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newmarketerWallet", "type": "address" } ], "name": "updatemarketerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updatemaxWalletsAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a06040526001600c5f6101000a81548160ff0219169083151502179055505f600c60016101000a81548160ff0219169083151502179055505f600c60026101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff02191690831515021790555034801562000078575f80fd5b506040518060400160405280600a81526020017f436f6e6e656374475055000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f43475055000000000000000000000000000000000000000000000000000000008152508160039081620000f6919062000d24565b50806004908162000108919062000d24565b5050506200012b6200011f6200059860201b60201c565b6200059f60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001568160016200066260201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fa919062000e6d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000260573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000286919062000e6d565b6040518363ffffffff1660e01b8152600401620002a592919062000eae565b6020604051808303815f875af1158015620002c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000e6d565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200035b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200066260201b60201c565b6200038f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200074960201b60201c565b5f600f90505f80601990505f806a52b7d2dcc80cd2e400000090506a01a784379d99db420000006009819055506a01a784379d99db42000000600b81905550612710600582620003e0919062000f06565b620003ec919062000f7d565b600a81905550846010819055508360118190555060115460105462000412919062000fb4565b600f81905550826013819055508160148190555060145460135462000438919062000fb4565b601281905550730f425a6dd1b3e27656e08b2b3ae899eb55a5c3af60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507374b6ca50fcbddbb3bd902279ff784edcb6590b9460085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000508620004fa620007e760201b60201c565b60016200080f60201b60201c565b6200051b3060016200080f60201b60201c565b6200053061dead60016200080f60201b60201c565b6200055262000544620007e760201b60201c565b60016200066260201b60201c565b620005653060016200066260201b60201c565b6200057a61dead60016200066260201b60201c565b6200058c33826200094660201b60201c565b5050505050506200113d565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006726200059860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000698620007e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006e8906200104c565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200081f6200059860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000845620007e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200089e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000895906200104c565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200093a919062001088565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009ae90620010f1565b60405180910390fd5b620009ca5f838362000ab660201b60201c565b8060025f828254620009dd919062000fb4565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000a31919062000fb4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a97919062001122565b60405180910390a362000ab25f838362000abb60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000b3c57607f821691505b60208210810362000b525762000b5162000af7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000bb67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b79565b62000bc2868362000b79565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000c0c62000c0662000c008462000bda565b62000be3565b62000bda565b9050919050565b5f819050919050565b62000c278362000bec565b62000c3f62000c368262000c13565b84845462000b85565b825550505050565b5f90565b62000c5562000c47565b62000c6281848462000c1c565b505050565b5b8181101562000c895762000c7d5f8262000c4b565b60018101905062000c68565b5050565b601f82111562000cd85762000ca28162000b58565b62000cad8462000b6a565b8101602085101562000cbd578190505b62000cd562000ccc8562000b6a565b83018262000c67565b50505b505050565b5f82821c905092915050565b5f62000cfa5f198460080262000cdd565b1980831691505092915050565b5f62000d14838362000ce9565b9150826002028217905092915050565b62000d2f8262000ac0565b67ffffffffffffffff81111562000d4b5762000d4a62000aca565b5b62000d57825462000b24565b62000d6482828562000c8d565b5f60209050601f83116001811462000d9a575f841562000d85578287015190505b62000d91858262000d07565b86555062000e00565b601f19841662000daa8662000b58565b5f5b8281101562000dd35784890151825560018201915060208501945060208101905062000dac565b8683101562000df3578489015162000def601f89168262000ce9565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e378262000e0c565b9050919050565b62000e498162000e2b565b811462000e54575f80fd5b50565b5f8151905062000e678162000e3e565b92915050565b5f6020828403121562000e855762000e8462000e08565b5b5f62000e948482850162000e57565b91505092915050565b62000ea88162000e2b565b82525050565b5f60408201905062000ec35f83018562000e9d565b62000ed2602083018462000e9d565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f128262000bda565b915062000f1f8362000bda565b925082820262000f2f8162000bda565b9150828204841483151762000f495762000f4862000ed9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f898262000bda565b915062000f968362000bda565b92508262000fa95762000fa862000f50565b5b828204905092915050565b5f62000fc08262000bda565b915062000fcd8362000bda565b925082820190508082111562000fe85762000fe762000ed9565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200103460208362000fee565b9150620010418262000ffe565b602082019050919050565b5f6020820190508181035f830152620010658162001026565b9050919050565b5f8115159050919050565b62001082816200106c565b82525050565b5f6020820190506200109d5f83018462001077565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620010d9601f8362000fee565b9150620010e682620010a3565b602082019050919050565b5f6020820190508181035f8301526200110a81620010cb565b9050919050565b6200111c8162000bda565b82525050565b5f602082019050620011375f83018462001111565b92915050565b6080516152de620011725f395f8181610df701528181612b27015281816135c5015281816136a401526136cb01526152de5ff3fe60806040526004361061031d575f3560e01c80638a8c523c116101aa578063b62496f5116100f6578063d85ba06311610094578063e6819ba71161006e578063e6819ba714610ba8578063e884f26014610be4578063f1b9ad6b14610c0e578063f2fde38b14610c3657610324565b8063d85ba06314610b18578063dd62ed3e14610b42578063e2f4560514610b7e57610324565b8063bbc0c742116100d0578063bbc0c74214610a60578063c024666814610a8a578063c876d0b914610ab2578063d257b34f14610adc57610324565b8063b62496f5146109d4578063b70143c914610a10578063b819a1a914610a3857610324565b80639c3b4fdc11610163578063a457c2d71161013d578063a457c2d71461090a578063a72f458614610946578063a9059cbb14610970578063a90eab8c146109ac57610324565b80639c3b4fdc1461088c5780639fccce32146108b6578063a0d82dc5146108e057610324565b80638a8c523c146107a85780638da5cb5b146107be57806392136913146107e8578063924de9b71461081257806395d89b411461083a5780639a7a23d61461086457610324565b806349bd5a5e116102695780636a486a8e11610222578063715018a6116101fc578063715018a6146107145780637437681e1461072a578063751039fc146107545780637bce5a041461077e57610324565b80636a486a8e146106845780636ddd1713146106ae57806370a08231146106d857610324565b806349bd5a5e1461057a5780634a62bb65146105a45780634fbee193146105ce57806361528e271461060a578063644130d81461063457806366ca9b831461065c57610324565b8063217580a2116102d657806330a136ad116102b057806330a136ad146104c05780633103b39e146104ea578063313ce56714610514578063395093511461053e57610324565b8063217580a21461043257806323b872dd1461045a57806327c8f8351461049657610324565b806302dbd8f81461032857806306fdde0314610350578063095ea7b31461037a5780631694505e146103b657806318160ddd146103e0578063203e727e1461040a57610324565b3661032457005b5f80fd5b348015610333575f80fd5b5061034e60048036038101906103499190613c1f565b610c5e565b005b34801561035b575f80fd5b50610364610d48565b6040516103719190613ce7565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190613d61565b610dd8565b6040516103ad9190613db9565b60405180910390f35b3480156103c1575f80fd5b506103ca610df5565b6040516103d79190613e2d565b60405180910390f35b3480156103eb575f80fd5b506103f4610e19565b6040516104019190613e55565b60405180910390f35b348015610415575f80fd5b50610430600480360381019061042b9190613e6e565b610e22565b005b34801561043d575f80fd5b5061045860048036038101906104539190613e6e565b610f31565b005b348015610465575f80fd5b50610480600480360381019061047b9190613e99565b611040565b60405161048d9190613db9565b60405180910390f35b3480156104a1575f80fd5b506104aa611132565b6040516104b79190613ef8565b60405180910390f35b3480156104cb575f80fd5b506104d4611138565b6040516104e19190613e55565b60405180910390f35b3480156104f5575f80fd5b506104fe61113e565b60405161050b9190613ef8565b60405180910390f35b34801561051f575f80fd5b50610528611163565b6040516105359190613f2c565b60405180910390f35b348015610549575f80fd5b50610564600480360381019061055f9190613d61565b61116b565b6040516105719190613db9565b60405180910390f35b348015610585575f80fd5b5061058e611212565b60405161059b9190613ef8565b60405180910390f35b3480156105af575f80fd5b506105b8611237565b6040516105c59190613db9565b60405180910390f35b3480156105d9575f80fd5b506105f460048036038101906105ef9190613f45565b611249565b6040516106019190613db9565b60405180910390f35b348015610615575f80fd5b5061061e61129b565b60405161062b9190613e55565b60405180910390f35b34801561063f575f80fd5b5061065a60048036038101906106559190613f9a565b6112a1565b005b348015610667575f80fd5b50610682600480360381019061067d9190613c1f565b611375565b005b34801561068f575f80fd5b5061069861145f565b6040516106a59190613e55565b60405180910390f35b3480156106b9575f80fd5b506106c2611465565b6040516106cf9190613db9565b60405180910390f35b3480156106e3575f80fd5b506106fe60048036038101906106f99190613f45565b611478565b60405161070b9190613e55565b60405180910390f35b34801561071f575f80fd5b506107286114bd565b005b348015610735575f80fd5b5061073e611544565b60405161074b9190613e55565b60405180910390f35b34801561075f575f80fd5b5061076861154a565b6040516107759190613db9565b60405180910390f35b348015610789575f80fd5b506107926115e7565b60405161079f9190613e55565b60405180910390f35b3480156107b3575f80fd5b506107bc6115ed565b005b3480156107c9575f80fd5b506107d26116a1565b6040516107df9190613ef8565b60405180910390f35b3480156107f3575f80fd5b506107fc6116c9565b6040516108099190613e55565b60405180910390f35b34801561081d575f80fd5b5061083860048036038101906108339190613fd8565b6116cf565b005b348015610845575f80fd5b5061084e611768565b60405161085b9190613ce7565b60405180910390f35b34801561086f575f80fd5b5061088a60048036038101906108859190613f9a565b6117f8565b005b348015610897575f80fd5b506108a0611911565b6040516108ad9190613e55565b60405180910390f35b3480156108c1575f80fd5b506108ca611917565b6040516108d79190613e55565b60405180910390f35b3480156108eb575f80fd5b506108f461191d565b6040516109019190613e55565b60405180910390f35b348015610915575f80fd5b50610930600480360381019061092b9190613d61565b611923565b60405161093d9190613db9565b60405180910390f35b348015610951575f80fd5b5061095a611a09565b6040516109679190613ef8565b60405180910390f35b34801561097b575f80fd5b5061099660048036038101906109919190613d61565b611a2e565b6040516109a39190613db9565b60405180910390f35b3480156109b7575f80fd5b506109d260048036038101906109cd9190614060565b611a4b565b005b3480156109df575f80fd5b506109fa60048036038101906109f59190613f45565b611cce565b604051610a079190613db9565b60405180910390f35b348015610a1b575f80fd5b50610a366004803603810190610a319190613e6e565b611ceb565b005b348015610a43575f80fd5b50610a5e6004803603810190610a599190613f45565b611dac565b005b348015610a6b575f80fd5b50610a74611ee6565b604051610a819190613db9565b60405180910390f35b348015610a95575f80fd5b50610ab06004803603810190610aab9190613f9a565b611ef9565b005b348015610abd575f80fd5b50610ac661201b565b604051610ad39190613db9565b60405180910390f35b348015610ae7575f80fd5b50610b026004803603810190610afd9190613e6e565b61202d565b604051610b0f9190613db9565b60405180910390f35b348015610b23575f80fd5b50610b2c612181565b604051610b399190613e55565b60405180910390f35b348015610b4d575f80fd5b50610b686004803603810190610b6391906140b0565b612187565b604051610b759190613e55565b60405180910390f35b348015610b89575f80fd5b50610b92612209565b604051610b9f9190613e55565b60405180910390f35b348015610bb3575f80fd5b50610bce6004803603810190610bc99190613f45565b61220f565b604051610bdb9190613db9565b60405180910390f35b348015610bef575f80fd5b50610bf861222c565b604051610c059190613db9565b60405180910390f35b348015610c19575f80fd5b50610c346004803603810190610c2f9190613f45565b6122c9565b005b348015610c41575f80fd5b50610c5c6004803603810190610c579190613f45565b612403565b005b610c666124f9565b73ffffffffffffffffffffffffffffffffffffffff16610c846116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190614138565b60405180910390fd5b8160138190555080601481905550601454601354610cf89190614183565b601281905550601a6012541115610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90614200565b60405180910390fd5b5050565b606060038054610d579061424b565b80601f0160208091040260200160405190810160405280929190818152602001828054610d839061424b565b8015610dce5780601f10610da557610100808354040283529160200191610dce565b820191905f5260205f20905b815481529060010190602001808311610db157829003601f168201915b5050505050905090565b5f610deb610de46124f9565b8484612500565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610e2a6124f9565b73ffffffffffffffffffffffffffffffffffffffff16610e486116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9590614138565b60405180910390fd5b670de0b6b3a76400006103e86001610eb4610e19565b610ebe919061427b565b610ec891906142e9565b610ed291906142e9565b811015610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90614363565b60405180910390fd5b670de0b6b3a764000081610f28919061427b565b60098190555050565b610f396124f9565b73ffffffffffffffffffffffffffffffffffffffff16610f576116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490614138565b60405180910390fd5b670de0b6b3a76400006103e86005610fc3610e19565b610fcd919061427b565b610fd791906142e9565b610fe191906142e9565b811015611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a906143f1565b60405180910390fd5b670de0b6b3a764000081611037919061427b565b600b8190555050565b5f61104c8484846126c3565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6110936124f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611112576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111099061447f565b60405180910390fd5b6111268561111e6124f9565b858403612500565b60019150509392505050565b61dead81565b600b5481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b5f6112086111776124f9565b848460015f6111846124f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112039190614183565b612500565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900460ff1681565b5f60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60155481565b6112a96124f9565b73ffffffffffffffffffffffffffffffffffffffff166112c76116a1565b73ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490614138565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61137d6124f9565b73ffffffffffffffffffffffffffffffffffffffff1661139b6116a1565b73ffffffffffffffffffffffffffffffffffffffff16146113f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e890614138565b60405180910390fd5b816010819055508060118190555060115460105461140f9190614183565b600f819055506010600f54111561145b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611452906144e7565b60405180910390fd5b5050565b60125481565b600c60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114c56124f9565b73ffffffffffffffffffffffffffffffffffffffff166114e36116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090614138565b60405180910390fd5b6115425f6133c7565b565b60095481565b5f6115536124f9565b73ffffffffffffffffffffffffffffffffffffffff166115716116a1565b73ffffffffffffffffffffffffffffffffffffffff16146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90614138565b60405180910390fd5b5f600c5f6101000a81548160ff0219169083151502179055506001905090565b60105481565b6115f56124f9565b73ffffffffffffffffffffffffffffffffffffffff166116136116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166090614138565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b6116d76124f9565b73ffffffffffffffffffffffffffffffffffffffff166116f56116a1565b73ffffffffffffffffffffffffffffffffffffffff161461174b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174290614138565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b6060600480546117779061424b565b80601f01602080910402602001604051908101604052809291908181526020018280546117a39061424b565b80156117ee5780601f106117c5576101008083540402835291602001916117ee565b820191905f5260205f20905b8154815290600101906020018083116117d157829003601f168201915b5050505050905090565b6118006124f9565b73ffffffffffffffffffffffffffffffffffffffff1661181e6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90614138565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90614575565b60405180910390fd5b61190d828261348a565b5050565b60115481565b60165481565b60145481565b5f8060015f6119306124f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e190614603565b60405180910390fd5b6119fe6119f56124f9565b85858403612500565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611a41611a3a6124f9565b84846126c3565b6001905092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001611afd959493929190614630565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f604051602001611b8793929190614681565b6040516020818303038152906040528051906020012090505f8282604051602001611bb392919061472a565b6040516020818303038152906040528051906020012090505f6001828888886040515f8152602001604052604051611bee9493929190614760565b6020604051602081039080840390855afa158015611c0e573d5f803e3d5ffd5b505050602060405103519050611c226116a1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c86906147ed565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff02191690831515021790555050505050505050565b601a602052805f5260405f205f915054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d2b6124f9565b73ffffffffffffffffffffffffffffffffffffffff1614611d4a575f80fd5b611d5330611478565b8111158015611d6157505f81115b611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790614855565b60405180910390fd5b611da981613528565b50565b611db46124f9565b73ffffffffffffffffffffffffffffffffffffffff16611dd26116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1f90614138565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9e3da7e72199adc414f24e73d3985f288cce5edbc5c370e29af583afdd78c2c260405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60019054906101000a900460ff1681565b611f016124f9565b73ffffffffffffffffffffffffffffffffffffffff16611f1f6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6c90614138565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161200f9190613db9565b60405180910390a25050565b600e5f9054906101000a900460ff1681565b5f6120366124f9565b73ffffffffffffffffffffffffffffffffffffffff166120546116a1565b73ffffffffffffffffffffffffffffffffffffffff16146120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a190614138565b60405180910390fd5b620186a060016120b8610e19565b6120c2919061427b565b6120cc91906142e9565b82101561210e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612105906148e3565b60405180910390fd5b6103e8600561211b610e19565b612125919061427b565b61212f91906142e9565b821115612171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216890614971565b60405180910390fd5b81600a8190555060019050919050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b6019602052805f5260405f205f915054906101000a900460ff1681565b5f6122356124f9565b73ffffffffffffffffffffffffffffffffffffffff166122536116a1565b73ffffffffffffffffffffffffffffffffffffffff16146122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a090614138565b60405180910390fd5b5f600e5f6101000a81548160ff0219169083151502179055506001905090565b6122d16124f9565b73ffffffffffffffffffffffffffffffffffffffff166122ef6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c90614138565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f455cf943964d06e77e44126ecca5a66b2c9721f4576a31f8693127282c55700f60405160405180910390a38060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61240b6124f9565b73ffffffffffffffffffffffffffffffffffffffff166124296116a1565b73ffffffffffffffffffffffffffffffffffffffff161461247f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247690614138565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e4906149ff565b60405180910390fd5b6124f6816133c7565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361256e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256590614a8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d390614b1b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126b69190613e55565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272890614ba9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361279f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279690614c37565b60405180910390fd5b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282090614c9f565b60405180910390fd5b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156128b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128aa90614d07565b60405180910390fd5b5f81036128ca576128c583835f61375b565b6133c2565b600c5f9054906101000a900460ff1615612f72576128e66116a1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561295457506129246116a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561298c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129c6575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129df5750600660149054906101000a900460ff16155b15612f7157600c60019054906101000a900460ff16612ad35760185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612a93575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac990614d6f565b60405180910390fd5b5b600e5f9054906101000a900460ff1615612c9757612aef6116a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612b7657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612bcf575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612c965743600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4a90614e23565b60405180910390fd5b43600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d34575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ddb57600954811115612d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7590614eb1565b60405180910390fd5b600b54612d8a83611478565b82612d959190614183565b1115612dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dcd90614f19565b60405180910390fd5b612f70565b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612e78575060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ec757600954811115612ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb990614fa7565b60405180910390fd5b612f6f565b60195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612f6e57600b54612f2183611478565b82612f2c9190614183565b1115612f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6490614f19565b60405180910390fd5b5b5b5b5b5b5f612f7c30611478565b90505f600a548210159050808015612fa05750600c60029054906101000a900460ff165b8015612fb95750600660149054906101000a900460ff16155b801561300c5750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561305f575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156130b2575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156130f5576001600660146101000a81548160ff0219169083151502179055506130da6139d0565b5f600660146101000a81548160ff0219169083151502179055505b5f600660149054906101000a900460ff1615905060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806131a4575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156131ad575f90505b5f81156133b257601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561320b57505f601254115b156132a357613238606461322a60125488613b9f90919063ffffffff16565b613bb490919063ffffffff16565b90506012546014548261324b919061427b565b61325591906142e9565b60165f8282546132659190614183565b925050819055506012546013548261327d919061427b565b61328791906142e9565b60155f8282546132979190614183565b9250508190555061338f565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156132fa57505f600f54115b1561338e576133276064613319600f5488613b9f90919063ffffffff16565b613bb490919063ffffffff16565b9050600f546011548261333a919061427b565b61334491906142e9565b60165f8282546133549190614183565b92505081905550600f546010548261336c919061427b565b61337691906142e9565b60155f8282546133869190614183565b925050819055505b5b5f8111156133a3576133a287308361375b565b5b80856133af9190614fc5565b94505b6133bd87878761375b565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561354457613543614ff8565b5b6040519080825280602002602001820160405280156135725781602001602082028036833780820191505090505b50905030815f8151811061358957613588615025565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561362c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136509190615066565b8160018151811061366457613663615025565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c9307f000000000000000000000000000000000000000000000000000000000000000084612500565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161372a959493929190615181565b5f604051808303815f87803b158015613741575f80fd5b505af1158015613753573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137c090614ba9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161382e90614c37565b60405180910390fd5b613842838383613bc9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156138c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138bc90615249565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546139539190614183565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139b79190613e55565b60405180910390a36139ca848484613bce565b50505050565b5f6139da30611478565b90505f6016546015546139ed9190614183565b90505f8083036139ff57505050613b9d565b6014600a54613a0e919061427b565b831115613a27576014600a54613a24919061427b565b92505b5f479050613a3484613528565b5f613a488247613bd390919063ffffffff16565b90505f613a7285613a6460165485613b9f90919063ffffffff16565b613bb490919063ffffffff16565b90505f6015819055505f60168190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613ac790615294565b5f6040518083038185875af1925050503d805f8114613b01576040519150601f19603f3d011682016040523d82523d5f602084013e613b06565b606091505b50508094505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613b5190615294565b5f6040518083038185875af1925050503d805f8114613b8b576040519150601f19603f3d011682016040523d82523d5f602084013e613b90565b606091505b5050809450505050505050505b565b5f8183613bac919061427b565b905092915050565b5f8183613bc191906142e9565b905092915050565b505050565b505050565b5f8183613be09190614fc5565b905092915050565b5f80fd5b5f819050919050565b613bfe81613bec565b8114613c08575f80fd5b50565b5f81359050613c1981613bf5565b92915050565b5f8060408385031215613c3557613c34613be8565b5b5f613c4285828601613c0b565b9250506020613c5385828601613c0b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613c94578082015181840152602081019050613c79565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613cb982613c5d565b613cc38185613c67565b9350613cd3818560208601613c77565b613cdc81613c9f565b840191505092915050565b5f6020820190508181035f830152613cff8184613caf565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613d3082613d07565b9050919050565b613d4081613d26565b8114613d4a575f80fd5b50565b5f81359050613d5b81613d37565b92915050565b5f8060408385031215613d7757613d76613be8565b5b5f613d8485828601613d4d565b9250506020613d9585828601613c0b565b9150509250929050565b5f8115159050919050565b613db381613d9f565b82525050565b5f602082019050613dcc5f830184613daa565b92915050565b5f819050919050565b5f613df5613df0613deb84613d07565b613dd2565b613d07565b9050919050565b5f613e0682613ddb565b9050919050565b5f613e1782613dfc565b9050919050565b613e2781613e0d565b82525050565b5f602082019050613e405f830184613e1e565b92915050565b613e4f81613bec565b82525050565b5f602082019050613e685f830184613e46565b92915050565b5f60208284031215613e8357613e82613be8565b5b5f613e9084828501613c0b565b91505092915050565b5f805f60608486031215613eb057613eaf613be8565b5b5f613ebd86828701613d4d565b9350506020613ece86828701613d4d565b9250506040613edf86828701613c0b565b9150509250925092565b613ef281613d26565b82525050565b5f602082019050613f0b5f830184613ee9565b92915050565b5f60ff82169050919050565b613f2681613f11565b82525050565b5f602082019050613f3f5f830184613f1d565b92915050565b5f60208284031215613f5a57613f59613be8565b5b5f613f6784828501613d4d565b91505092915050565b613f7981613d9f565b8114613f83575f80fd5b50565b5f81359050613f9481613f70565b92915050565b5f8060408385031215613fb057613faf613be8565b5b5f613fbd85828601613d4d565b9250506020613fce85828601613f86565b9150509250929050565b5f60208284031215613fed57613fec613be8565b5b5f613ffa84828501613f86565b91505092915050565b61400c81613f11565b8114614016575f80fd5b50565b5f8135905061402781614003565b92915050565b5f819050919050565b61403f8161402d565b8114614049575f80fd5b50565b5f8135905061405a81614036565b92915050565b5f805f6060848603121561407757614076613be8565b5b5f61408486828701614019565b93505060206140958682870161404c565b92505060406140a68682870161404c565b9150509250925092565b5f80604083850312156140c6576140c5613be8565b5b5f6140d385828601613d4d565b92505060206140e485828601613d4d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614122602083613c67565b915061412d826140ee565b602082019050919050565b5f6020820190508181035f83015261414f81614116565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61418d82613bec565b915061419883613bec565b92508282019050808211156141b0576141af614156565b5b92915050565b7f4d757374206b656570206665657320617420323625206f72206c6573730000005f82015250565b5f6141ea601d83613c67565b91506141f5826141b6565b602082019050919050565b5f6020820190508181035f830152614217816141de565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061426257607f821691505b6020821081036142755761427461421e565b5b50919050565b5f61428582613bec565b915061429083613bec565b925082820261429e81613bec565b915082820484148315176142b5576142b4614156565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6142f382613bec565b91506142fe83613bec565b92508261430e5761430d6142bc565b5b828204905092915050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e31255f82015250565b5f61434d602083613c67565b915061435882614319565b602082019050919050565b5f6020820190508181035f83015261437a81614341565b9050919050565b7f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e5f8201527f20302e3525000000000000000000000000000000000000000000000000000000602082015250565b5f6143db602583613c67565b91506143e682614381565b604082019050919050565b5f6020820190508181035f830152614408816143cf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f614469602883613c67565b91506144748261440f565b604082019050919050565b5f6020820190508181035f8301526144968161445d565b9050919050565b7f4d757374206b656570206665657320617420313625206f72206c6573730000005f82015250565b5f6144d1601d83613c67565b91506144dc8261449d565b602082019050919050565b5f6020820190508181035f8301526144fe816144c5565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61455f603983613c67565b915061456a82614505565b604082019050919050565b5f6020820190508181035f83015261458c81614553565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6145ed602583613c67565b91506145f882614593565b604082019050919050565b5f6020820190508181035f83015261461a816145e1565b9050919050565b61462a8161402d565b82525050565b5f60a0820190506146435f830188614621565b6146506020830187614621565b61465d6040830186614621565b61466a6060830185613e46565b6146776080830184613ee9565b9695505050505050565b5f6060820190506146945f830186614621565b6146a16020830185614621565b6146ae6040830184613e46565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6146f46002836146b6565b91506146ff826146c0565b600282019050919050565b5f819050919050565b61472461471f8261402d565b61470a565b82525050565b5f614734826146e8565b91506147408285614713565b6020820191506147508284614713565b6020820191508190509392505050565b5f6080820190506147735f830187614621565b6147806020830186613f1d565b61478d6040830185614621565b61479a6060830184614621565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f6147d7601183613c67565b91506147e2826147a3565b602082019050919050565b5f6020820190508181035f830152614804816147cb565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f61483f600c83613c67565b915061484a8261480b565b602082019050919050565b5f6020820190508181035f83015261486c81614833565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f6148cd603583613c67565b91506148d882614873565b604082019050919050565b5f6020820190508181035f8301526148fa816148c1565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61495b603483613c67565b915061496682614901565b604082019050919050565b5f6020820190508181035f8301526149888161494f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6149e9602683613c67565b91506149f48261498f565b604082019050919050565b5f6020820190508181035f830152614a16816149dd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614a77602483613c67565b9150614a8282614a1d565b604082019050919050565b5f6020820190508181035f830152614aa481614a6b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b05602283613c67565b9150614b1082614aab565b604082019050919050565b5f6020820190508181035f830152614b3281614af9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614b93602583613c67565b9150614b9e82614b39565b604082019050919050565b5f6020820190508181035f830152614bc081614b87565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614c21602383613c67565b9150614c2c82614bc7565b604082019050919050565b5f6020820190508181035f830152614c4e81614c15565b9050919050565b7f5b66726f6d5d20626c61636b206c6973740000000000000000000000000000005f82015250565b5f614c89601183613c67565b9150614c9482614c55565b602082019050919050565b5f6020820190508181035f830152614cb681614c7d565b9050919050565b7f5b746f5d20626c61636b206c69737400000000000000000000000000000000005f82015250565b5f614cf1600f83613c67565b9150614cfc82614cbd565b602082019050919050565b5f6020820190508181035f830152614d1e81614ce5565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614d59601683613c67565b9150614d6482614d25565b602082019050919050565b5f6020820190508181035f830152614d8681614d4d565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f614e0d604983613c67565b9150614e1882614d8d565b606082019050919050565b5f6020820190508181035f830152614e3a81614e01565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f614e9b602683613c67565b9150614ea682614e41565b604082019050919050565b5f6020820190508181035f830152614ec881614e8f565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614f03601383613c67565b9150614f0e82614ecf565b602082019050919050565b5f6020820190508181035f830152614f3081614ef7565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f614f91602783613c67565b9150614f9c82614f37565b604082019050919050565b5f6020820190508181035f830152614fbe81614f85565b9050919050565b5f614fcf82613bec565b9150614fda83613bec565b9250828203905081811115614ff257614ff1614156565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061506081613d37565b92915050565b5f6020828403121561507b5761507a613be8565b5b5f61508884828501615052565b91505092915050565b5f819050919050565b5f6150b46150af6150aa84615091565b613dd2565b613bec565b9050919050565b6150c48161509a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6150fc81613d26565b82525050565b5f61510d83836150f3565b60208301905092915050565b5f602082019050919050565b5f61512f826150ca565b61513981856150d4565b9350615144836150e4565b805f5b8381101561517457815161515b8882615102565b975061516683615119565b925050600181019050615147565b5085935050505092915050565b5f60a0820190506151945f830188613e46565b6151a160208301876150bb565b81810360408301526151b38186615125565b90506151c26060830185613ee9565b6151cf6080830184613e46565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f615233602683613c67565b915061523e826151d9565b604082019050919050565b5f6020820190508181035f83015261526081615227565b9050919050565b5f81905092915050565b50565b5f61527f5f83615267565b915061528a82615271565b5f82019050919050565b5f61529e82615274565b915081905091905056fea26469706673582212201961c30fe1fb322ab4575641966b089309d5e8ac944806450cf84a07bd6366ab64736f6c63430008170033