[ { "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": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludedFromMaxTransactionLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludedFromMaxWalletLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "feeReceiver", "type": "address" } ], "name": "FeeReceiverChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxTransactionAmountBuy", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "maxTransactionAmountSell", "type": "uint256" } ], "name": "MaxTransactionLimitAmountChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "maxTransactionLimit", "type": "bool" } ], "name": "MaxTransactionLimitStateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxWalletAmount", "type": "uint256" } ], "name": "MaxWalletLimitAmountChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "maxWalletLimit", "type": "bool" } ], "name": "MaxWalletLimitStateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "bnbSend", "type": "uint256" } ], "name": "SwapAndSendFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "swapTokensAtAmount", "type": "uint256" } ], "name": "SwapTokensAtAmountUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "tradingEnabled", "type": "bool" } ], "name": "TradingEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "feeOnBuy", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "feeOnSell", "type": "uint256" } ], "name": "UpdateFees", "type": "event" }, { "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_feeReceiver", "type": "address" } ], "name": "changeFeeReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "claimStuckTokens", "outputs": [], "stateMutability": "nonpayable", "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": "enableTrading", "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": "account", "type": "address" }, { "internalType": "bool", "name": "exclude", "type": "bool" } ], "name": "excludeFromMaxTransactionLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "exclude", "type": "bool" } ], "name": "excludeFromMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeOnBuy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeOnSell", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "forceSwap", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromMaxTransaction", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromMaxWalletLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmountBuy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmountSell", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionLimitEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWalletAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWalletLimitEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [ { "internalType": "bool", "name": "enable", "type": "bool" } ], "name": "setEnableMaxTransactionLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enable", "type": "bool" } ], "name": "setEnableMaxWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxTransactionAmountBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_maxTransactionAmountSell", "type": "uint256" } ], "name": "setMaxTransactionAmounts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxWalletAmount", "type": "uint256" } ], "name": "setMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" }, { "internalType": "bool", "name": "_swapEnabled", "type": "bool" } ], "name": "setSwapTokensAtAmount", "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": "tradingEnabled", "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": "_feeOnSell", "type": "uint256" }, { "internalType": "uint256", "name": "_feeOnBuy", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b506040518060400160405280600881526020017f4c6179657254414f0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4c414f000000000000000000000000000000000000000000000000000000000081525081600390816200008f91906200115c565b508060049081620000a191906200115c565b5050506000620000b662000b7c60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000806038460362000195577310ed43c718714eb63d5aa57b78b54704e256024e915073407993575c91ce7643a4d4ccacc9a98c36ee1bbe905062000223565b60614603620001d25773d99d1c33f9fc3444f8101754abc46c52416550d19150735e5b9be5fd939c578abe5800a90c566eeeba44a5905062000222565b6001461480620001e25750600546145b156200021c57737a250d5630b4cf539739df2c5dacb4c659f2488d91507371b5759d73262fbb223956913ecf4ecc51057641905062000221565b600080fd5b5b5b600082905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000276573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029c9190620012ad565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032a9190620012ad565b6040518363ffffffff1660e01b815260040162000349929190620012f0565b6020604051808303816000875af115801562000369573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038f9190620012ad565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200046830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000b8460201b60201c565b60196009819055506028600a8190555073e9612ad9cd0e0ec15dd1dbe9056cbe21b1c2553b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260006101000a81548160ff021916908315150217905550600160116000620004fe62000d5560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016011600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055506001600e60006200070462000d5560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000620008ef62000d5560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000a9962000a5e62000d5560201b60201c565b62000a6e62000d7f60201b60201c565b600a62000a7c9190620014ad565b6305f5e10062000a8d9190620014fe565b62000d8860201b60201c565b6107d062000aac62000ed860201b60201c565b62000ab8919062001578565b600c819055506103e8600a62000ad362000ed860201b60201c565b62000adf9190620014fe565b62000aeb919062001578565b6013819055506103e8600a62000b0662000ed860201b60201c565b62000b129190620014fe565b62000b1e919062001578565b6014819055506103e8601462000b3962000ed860201b60201c565b62000b459190620014fe565b62000b51919062001578565b6010819055506000600d60016101000a81548160ff02191690831515021790555050505050620017cc565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bed9062001637565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c5f90620016cf565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d48919062001702565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006009905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000dfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000df1906200176f565b60405180910390fd5b806002600082825462000e0e919062001791565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000e65919062001791565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000ecc919062001702565b60405180910390a35050565b6000600254905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f6457607f821691505b60208210810362000f7a5762000f7962000f1c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000fe47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000fa5565b62000ff0868362000fa5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200103d62001037620010318462001008565b62001012565b62001008565b9050919050565b6000819050919050565b62001059836200101c565b62001071620010688262001044565b84845462000fb2565b825550505050565b600090565b6200108862001079565b620010958184846200104e565b505050565b5b81811015620010bd57620010b16000826200107e565b6001810190506200109b565b5050565b601f8211156200110c57620010d68162000f80565b620010e18462000f95565b81016020851015620010f1578190505b62001109620011008562000f95565b8301826200109a565b50505b505050565b600082821c905092915050565b6000620011316000198460080262001111565b1980831691505092915050565b60006200114c83836200111e565b9150826002028217905092915050565b620011678262000ee2565b67ffffffffffffffff81111562001183576200118262000eed565b5b6200118f825462000f4b565b6200119c828285620010c1565b600060209050601f831160018114620011d45760008415620011bf578287015190505b620011cb85826200113e565b8655506200123b565b601f198416620011e48662000f80565b60005b828110156200120e57848901518255600182019150602085019450602081019050620011e7565b868310156200122e57848901516200122a601f8916826200111e565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012758262001248565b9050919050565b620012878162001268565b81146200129357600080fd5b50565b600081519050620012a7816200127c565b92915050565b600060208284031215620012c657620012c562001243565b5b6000620012d68482850162001296565b91505092915050565b620012ea8162001268565b82525050565b6000604082019050620013076000830185620012df565b620013166020830184620012df565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620013ab578086048111156200138357620013826200131d565b5b6001851615620013935780820291505b8081029050620013a3856200134c565b945062001363565b94509492505050565b600082620013c6576001905062001499565b81620013d6576000905062001499565b8160018114620013ef5760028114620013fa5762001430565b600191505062001499565b60ff8411156200140f576200140e6200131d565b5b8360020a9150848211156200142957620014286200131d565b5b5062001499565b5060208310610133831016604e8410600b84101617156200146a5782820a9050838111156200146457620014636200131d565b5b62001499565b62001479848484600162001359565b925090508184048111156200149357620014926200131d565b5b81810290505b9392505050565b600060ff82169050919050565b6000620014ba8262001008565b9150620014c783620014a0565b9250620014f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013b4565b905092915050565b60006200150b8262001008565b9150620015188362001008565b9250828202620015288162001008565b915082820484148315176200154257620015416200131d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015858262001008565b9150620015928362001008565b925082620015a557620015a462001549565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200161f602483620015b0565b91506200162c82620015c1565b604082019050919050565b60006020820190508181036000830152620016528162001610565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620016b7602283620015b0565b9150620016c48262001659565b604082019050919050565b60006020820190508181036000830152620016ea81620016a8565b9050919050565b620016fc8162001008565b82525050565b6000602082019050620017196000830184620016f1565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001757601f83620015b0565b915062001764826200171f565b602082019050919050565b600060208201905081810360008301526200178a8162001748565b9050919050565b60006200179e8262001008565b9150620017ab8362001008565b9250828201905080821115620017c657620017c56200131d565b5b92915050565b61533c80620017dc6000396000f3fe6080604052600436106102605760003560e01c806370a0823111610144578063b1fde9f8116100b6578063d2fcc0011161007a578063d2fcc0011461090b578063dd62ed3e14610934578063df778d2614610971578063e2f4560514610988578063f2fde38b146109b3578063f9d0831a146109dc57610267565b8063b1fde9f81461083a578063b3f0067414610863578063b6f7f6811461088e578063bb8c3ee0146108b7578063c0246668146108e257610267565b80638da5cb5b116101085780638da5cb5b1461070257806395d89b411461072d578063a457c2d714610758578063a8a69b9d14610795578063a9059cbb146107d2578063aa4bde281461080f57610267565b806370a0823114610645578063715018a6146106825780637c08b96414610699578063880bcbc1146106c25780638a8c523c146106eb57610267565b80632ba86bf2116101dd5780634fbee193116101a15780634fbee1931461053557806356a6cabf1461057257806359136fa51461059b57806365048d08146105c65780636db79437146105f15780636ddd17131461061a57610267565b80632ba86bf21461044c578063313ce5671461047757806339509351146104a257806349bd5a5e146104df5780634ada218b1461050a57610267565b806318d9ceae1161022457806318d9ceae1461035557806321a9d82a1461039257806323b872dd146103bd57806327a14fc2146103fa5780632a6c7dba1461042357610267565b80630105d0fd1461026c57806306fdde0314610297578063095ea7b3146102c25780631694505e146102ff57806318160ddd1461032a57610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610a05565b60405161028e9190613985565b60405180910390f35b3480156102a357600080fd5b506102ac610a0b565b6040516102b99190613a30565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190613ae1565b610a9d565b6040516102f69190613b3c565b60405180910390f35b34801561030b57600080fd5b50610314610abb565b6040516103219190613bb6565b60405180910390f35b34801561033657600080fd5b5061033f610ae1565b60405161034c9190613985565b60405180910390f35b34801561036157600080fd5b5061037c60048036038101906103779190613bd1565b610aeb565b6040516103899190613b3c565b60405180910390f35b34801561039e57600080fd5b506103a7610b41565b6040516103b49190613b3c565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190613bfe565b610b54565b6040516103f19190613b3c565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190613c51565b610c73565b005b34801561042f57600080fd5b5061044a60048036038101906104459190613caa565b610ddf565b005b34801561045857600080fd5b50610461610f2e565b60405161046e9190613b3c565b60405180910390f35b34801561048357600080fd5b5061048c610f41565b6040516104999190613cf3565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c49190613ae1565b610f4a565b6040516104d69190613b3c565b60405180910390f35b3480156104eb57600080fd5b506104f4610ff6565b6040516105019190613d1d565b60405180910390f35b34801561051657600080fd5b5061051f61101c565b60405161052c9190613b3c565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190613bd1565b61102f565b6040516105699190613b3c565b60405180910390f35b34801561057e57600080fd5b5061059960048036038101906105949190613caa565b611085565b005b3480156105a757600080fd5b506105b06111d4565b6040516105bd9190613985565b60405180910390f35b3480156105d257600080fd5b506105db6111da565b6040516105e89190613985565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190613d38565b6111e0565b005b34801561062657600080fd5b5061062f611352565b60405161063c9190613b3c565b60405180910390f35b34801561065157600080fd5b5061066c60048036038101906106679190613bd1565b611365565b6040516106799190613985565b60405180910390f35b34801561068e57600080fd5b506106976113ad565b005b3480156106a557600080fd5b506106c060048036038101906106bb9190613bd1565b611505565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190613d78565b6116a8565b005b3480156106f757600080fd5b506107006118e8565b005b34801561070e57600080fd5b50610717611a4d565b6040516107249190613d1d565b60405180910390f35b34801561073957600080fd5b50610742611a77565b60405161074f9190613a30565b60405180910390f35b34801561076457600080fd5b5061077f600480360381019061077a9190613ae1565b611b09565b60405161078c9190613b3c565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b79190613bd1565b611bf4565b6040516107c99190613b3c565b60405180910390f35b3480156107de57600080fd5b506107f960048036038101906107f49190613ae1565b611c4a565b6040516108069190613b3c565b60405180910390f35b34801561081b57600080fd5b50610824611c68565b6040516108319190613985565b60405180910390f35b34801561084657600080fd5b50610861600480360381019061085c9190613db8565b611c6e565b005b34801561086f57600080fd5b50610878611dba565b6040516108859190613d1d565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b09190613d38565b611de0565b005b3480156108c357600080fd5b506108cc611fb5565b6040516108d99190613985565b60405180910390f35b3480156108ee57600080fd5b5061090960048036038101906109049190613d78565b611fbb565b005b34801561091757600080fd5b50610932600480360381019061092d9190613d78565b6120fb565b005b34801561094057600080fd5b5061095b60048036038101906109569190613df8565b61233b565b6040516109689190613985565b60405180910390f35b34801561097d57600080fd5b506109866123c2565b005b34801561099457600080fd5b5061099d61249b565b6040516109aa9190613985565b60405180910390f35b3480156109bf57600080fd5b506109da60048036038101906109d59190613bd1565b6124a1565b005b3480156109e857600080fd5b50610a0360048036038101906109fe9190613bd1565b612667565b005b60135481565b606060038054610a1a90613e67565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4690613e67565b8015610a935780601f10610a6857610100808354040283529160200191610a93565b820191906000526020600020905b815481529060010190602001808311610a7657829003601f168201915b5050505050905090565b6000610ab1610aaa6128cb565b84846128d3565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600f60009054906101000a900460ff1681565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ba06128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c5c5782811015610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90613f0a565b60405180910390fd5b610c5b85610c536128cb565b8584036128d3565b5b610c67858585612a9c565b60019150509392505050565b610c7b6128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190613f76565b60405180910390fd5b6064610d14610f41565b600a610d2091906140f8565b610d28610ae1565b610d329190614172565b610d3c9190614172565b811015610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590614215565b60405180910390fd5b610d86610f41565b600a610d9291906140f8565b81610d9d9190614235565b6010819055507f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb5942601054604051610dd49190613985565b60405180910390a150565b610de76128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6d90613f76565b60405180910390fd5b600f60009054906101000a900460ff16151581151503610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec2906142e9565b60405180910390fd5b80600f60006101000a81548160ff0219169083151502179055507f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1600f60009054906101000a900460ff16604051610f239190613b3c565b60405180910390a150565b601260009054906101000a900460ff1681565b60006009905090565b6000610fec610f576128cb565b848460016000610f656128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fe79190614309565b6128d3565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61108d6128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390613f76565b60405180910390fd5b601260009054906101000a900460ff16151581151503611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906143af565b60405180910390fd5b80601260006101000a81548160ff0219169083151502179055507fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf601260009054906101000a900460ff166040516111c99190613b3c565b60405180910390a150565b60145481565b600a5481565b6111e86128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90613f76565b60405180910390fd5b8060098190555081600a81905550601e60095411156112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290614441565b60405180910390fd5b6028600a541115611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890614441565b60405180910390fd5b7f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051611346929190614461565b60405180910390a15050565b600d60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113b56128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90613f76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61150d6128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390613f76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361160b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611602906144fc565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161169d9190613d1d565b60405180910390a150565b6116b06128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690613f76565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c89061458e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906145fa565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c10826040516118dc9190613b3c565b60405180910390a25050565b6118f06128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197690613f76565b60405180910390fd5b600d60029054906101000a900460ff16156119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c690614666565b60405180910390fd5b6001600d60026101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff0219169083151502179055507fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a600d60029054906101000a900460ff16604051611a439190613b3c565b60405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611a8690613e67565b80601f0160208091040260200160405190810160405280929190818152602001828054611ab290613e67565b8015611aff5780601f10611ad457610100808354040283529160200191611aff565b820191906000526020600020905b815481529060010190602001808311611ae257829003601f168201915b5050505050905090565b60008060016000611b186128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc906146f8565b60405180910390fd5b611be9611be06128cb565b858584036128d3565b600191505092915050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611c5e611c576128cb565b8484612a9c565b6001905092915050565b60105481565b611c766128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfc90613f76565b60405180910390fd5b620f4240611d11610ae1565b611d1b9190614172565b8211611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d53906147b0565b60405180910390fd5b81600c8190555080600d60016101000a81548160ff0219169083151502179055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600c54604051611dae9190613985565b60405180910390a15050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611de86128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6e90613f76565b60405180910390fd5b6103e8611e82610f41565b600a611e8e91906140f8565b611e96610ae1565b611ea09190614172565b611eaa9190614172565b8210158015611eeb57506103e8611ebf610f41565b600a611ecb91906140f8565b611ed3610ae1565b611edd9190614172565b611ee79190614172565b8110155b611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190614842565b60405180910390fd5b611f32610f41565b600a611f3e91906140f8565b82611f499190614235565b601381905550611f57610f41565b600a611f6391906140f8565b81611f6e9190614235565b6014819055507f8c8cbc911b80df94332ececb8eb0945274d76fa965600a0f01f42af3f8afb131601354601454604051611fa9929190614461565b60405180910390a15050565b60095481565b611fc36128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204990613f76565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516120ef9190613b3c565b60405180910390a25050565b6121036128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218990613f76565b60405180910390fd5b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503612224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221b9061458e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612289906145fa565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c8260405161232f9190613b3c565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612452576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612449906148ae565b60405180910390fd5b6001600d60006101000a81548160ff02191690831515021790555061247e61247930611365565b613391565b6000600d60006101000a81548160ff021916908315150217905550565b600c5481565b6124a96128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252f90613f76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259e90614940565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61266f6128cb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f590613f76565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361276c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612763906149d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127cf576127c9473373ffffffffffffffffffffffffffffffffffffffff1661364890919063ffffffff16565b506128c8565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016128259190613d1d565b602060405180830381865afa158015612842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128669190614a07565b6040518363ffffffff1660e01b8152600401612883929190614a34565b6020604051808303816000875af11580156128a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c69190614a72565b505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293990614b11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a890614ba3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a8f9190613985565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0290614c35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7190614cc7565b60405180910390fd5b600d60029054906101000a900460ff1680612bde5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612c325750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6890614d33565b60405180910390fd5b60008103612c8a57612c8583836000613703565b61338c565b601260009054906101000a900460ff1615612ee057600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612d485750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015612d9e5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612df45750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612edf57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e9857601354811115612e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8a90614dc5565b60405180910390fd5b612ede565b601454811115612edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed490614dc5565b60405180910390fd5b5b5b5b6000612eeb30611365565b90506000600c548210159050808015612f115750600d60009054906101000a900460ff16155b8015612f6a5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612f8557506000600a54600954612f839190614309565b115b8015612fdb5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ff35750600d60019054906101000a900460ff165b15613038576001600d60006101000a81548160ff02191690831515021790555061301c82613391565b6000600d60006101000a81548160ff0219169083151502179055505b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130db5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806130f25750600d60009054906101000a900460ff165b1561310057600090506131c5565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361315f5760095490506131c4565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036131be57600a5490506131c3565b600090505b5b5b6000811115613205576000606482866131de9190614235565b6131e89190614172565b905080856131f69190614de5565b9450613203873083613703565b505b600f60009054906101000a900460ff161561337d57600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132be5750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156133185750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561337c57600061332886611365565b905060105485826133399190614309565b111561337a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337190614e8b565b60405180910390fd5b505b5b613388868686613703565b5050505b505050565b60004790506000600267ffffffffffffffff8111156133b3576133b2614eab565b5b6040519080825280602002602001820160405280156133e15781602001602082028036833780820191505090505b50905030816000815181106133f9576133f8614eda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c49190614f1e565b816001815181106134d8576134d7614eda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401613576959493929190615044565b600060405180830381600087803b15801561359057600080fd5b505af19250505080156135a1575060015b6135ac575050613645565b600082476135ba9190614de5565b905061360781600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661364890919063ffffffff16565b507f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b8482604051613639929190614461565b60405180910390a15050505b50565b60008147101561368d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613684906150ea565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff16836040516136b39061513b565b60006040518083038185875af1925050503d80600081146136f0576040519150601f19603f3d011682016040523d82523d6000602084013e6136f5565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613772576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613769906151c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036137e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137d890615254565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385e906152e6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546138fa9190614309565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161395e9190613985565b60405180910390a350505050565b6000819050919050565b61397f8161396c565b82525050565b600060208201905061399a6000830184613976565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139da5780820151818401526020810190506139bf565b60008484015250505050565b6000601f19601f8301169050919050565b6000613a02826139a0565b613a0c81856139ab565b9350613a1c8185602086016139bc565b613a25816139e6565b840191505092915050565b60006020820190508181036000830152613a4a81846139f7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a8282613a57565b9050919050565b613a9281613a77565b8114613a9d57600080fd5b50565b600081359050613aaf81613a89565b92915050565b613abe8161396c565b8114613ac957600080fd5b50565b600081359050613adb81613ab5565b92915050565b60008060408385031215613af857613af7613a52565b5b6000613b0685828601613aa0565b9250506020613b1785828601613acc565b9150509250929050565b60008115159050919050565b613b3681613b21565b82525050565b6000602082019050613b516000830184613b2d565b92915050565b6000819050919050565b6000613b7c613b77613b7284613a57565b613b57565b613a57565b9050919050565b6000613b8e82613b61565b9050919050565b6000613ba082613b83565b9050919050565b613bb081613b95565b82525050565b6000602082019050613bcb6000830184613ba7565b92915050565b600060208284031215613be757613be6613a52565b5b6000613bf584828501613aa0565b91505092915050565b600080600060608486031215613c1757613c16613a52565b5b6000613c2586828701613aa0565b9350506020613c3686828701613aa0565b9250506040613c4786828701613acc565b9150509250925092565b600060208284031215613c6757613c66613a52565b5b6000613c7584828501613acc565b91505092915050565b613c8781613b21565b8114613c9257600080fd5b50565b600081359050613ca481613c7e565b92915050565b600060208284031215613cc057613cbf613a52565b5b6000613cce84828501613c95565b91505092915050565b600060ff82169050919050565b613ced81613cd7565b82525050565b6000602082019050613d086000830184613ce4565b92915050565b613d1781613a77565b82525050565b6000602082019050613d326000830184613d0e565b92915050565b60008060408385031215613d4f57613d4e613a52565b5b6000613d5d85828601613acc565b9250506020613d6e85828601613acc565b9150509250929050565b60008060408385031215613d8f57613d8e613a52565b5b6000613d9d85828601613aa0565b9250506020613dae85828601613c95565b9150509250929050565b60008060408385031215613dcf57613dce613a52565b5b6000613ddd85828601613acc565b9250506020613dee85828601613c95565b9150509250929050565b60008060408385031215613e0f57613e0e613a52565b5b6000613e1d85828601613aa0565b9250506020613e2e85828601613aa0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e7f57607f821691505b602082108103613e9257613e91613e38565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ef46028836139ab565b9150613eff82613e98565b604082019050919050565b60006020820190508181036000830152613f2381613ee7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f606020836139ab565b9150613f6b82613f2a565b602082019050919050565b60006020820190508181036000830152613f8f81613f53565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561401c57808604811115613ff857613ff7613f96565b5b60018516156140075780820291505b808102905061401585613fc5565b9450613fdc565b94509492505050565b60008261403557600190506140f1565b8161404357600090506140f1565b8160018114614059576002811461406357614092565b60019150506140f1565b60ff84111561407557614074613f96565b5b8360020a91508482111561408c5761408b613f96565b5b506140f1565b5060208310610133831016604e8410600b84101617156140c75782820a9050838111156140c2576140c1613f96565b5b6140f1565b6140d48484846001613fd2565b925090508184048111156140eb576140ea613f96565b5b81810290505b9392505050565b60006141038261396c565b915061410e83613cd7565b925061413b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614025565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061417d8261396c565b91506141888361396c565b92508261419857614197614143565b5b828204905092915050565b7f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b60006141ff602d836139ab565b915061420a826141a3565b604082019050919050565b6000602082019050818103600083015261422e816141f2565b9050919050565b60006142408261396c565b915061424b8361396c565b92508282026142598161396c565b915082820484148315176142705761426f613f96565b5b5092915050565b7f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060008201527f746f207468617420737461746500000000000000000000000000000000000000602082015250565b60006142d3602d836139ab565b91506142de82614277565b604082019050919050565b60006020820190508181036000830152614302816142c6565b9050919050565b60006143148261396c565b915061431f8361396c565b925082820190508082111561433757614336613f96565b5b92915050565b7f4d6178207472616e73616374696f6e206c696d697420697320616c726561647960008201527f2073657420746f20746861742073746174650000000000000000000000000000602082015250565b60006143996032836139ab565b91506143a48261433d565b604082019050919050565b600060208201905081810360008301526143c88161438c565b9050919050565b7f43534c543a20546f74616c20466565732063616e6e6f7420657863656564207460008201527f6865206d6178696d756d00000000000000000000000000000000000000000000602082015250565b600061442b602a836139ab565b9150614436826143cf565b604082019050919050565b6000602082019050818103600083015261445a8161441e565b9050919050565b60006040820190506144766000830185613976565b6144836020830184613976565b9392505050565b7f43534c543a204665652072656365697665722063616e6e6f742062652074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b60006144e6602d836139ab565b91506144f18261448a565b604082019050919050565b60006020820190508181036000830152614515816144d9565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f2074686174207360008201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b60006145786024836139ab565b91506145838261451c565b604082019050919050565b600060208201905081810360008301526145a78161456b565b9050919050565b7f43616e277420736574207468697320616464726573732e000000000000000000600082015250565b60006145e46017836139ab565b91506145ef826145ae565b602082019050919050565b60006020820190508181036000830152614613816145d7565b9050919050565b7f43534c543a2054726164696e6720616c726561647920656e61626c65642e0000600082015250565b6000614650601e836139ab565b915061465b8261461a565b602082019050919050565b6000602082019050818103600083015261467f81614643565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006146e26025836139ab565b91506146ed82614686565b604082019050919050565b60006020820190508181036000830152614711816146d5565b9050919050565b7f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560008201527f2067726561746572207468616e20302e3030303125206f6620746f74616c207360208201527f7570706c79000000000000000000000000000000000000000000000000000000604082015250565b600061479a6045836139ab565b91506147a582614718565b606082019050919050565b600060208201905081810360008301526147c98161478d565b9050919050565b7f4d6178205472616e73616374696f6e206c696d69742063616e6e6f742062652060008201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c7900602082015250565b600061482c603f836139ab565b9150614837826147d0565b604082019050919050565b6000602082019050818103600083015261485b8161481f565b9050919050565b7f4e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000614898600e836139ab565b91506148a382614862565b602082019050919050565b600060208201905081810360008301526148c78161488b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061492a6026836139ab565b9150614935826148ce565b604082019050919050565b600060208201905081810360008301526149598161491d565b9050919050565b7f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360008201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e73000000602082015250565b60006149bc603d836139ab565b91506149c782614960565b604082019050919050565b600060208201905081810360008301526149eb816149af565b9050919050565b600081519050614a0181613ab5565b92915050565b600060208284031215614a1d57614a1c613a52565b5b6000614a2b848285016149f2565b91505092915050565b6000604082019050614a496000830185613d0e565b614a566020830184613976565b9392505050565b600081519050614a6c81613c7e565b92915050565b600060208284031215614a8857614a87613a52565b5b6000614a9684828501614a5d565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614afb6024836139ab565b9150614b0682614a9f565b604082019050919050565b60006020820190508181036000830152614b2a81614aee565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614b8d6022836139ab565b9150614b9882614b31565b604082019050919050565b60006020820190508181036000830152614bbc81614b80565b9050919050565b7f43534c543a207472616e736665722066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614c1f6024836139ab565b9150614c2a82614bc3565b604082019050919050565b60006020820190508181036000830152614c4e81614c12565b9050919050565b7f43534c543a207472616e7366657220746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614cb16022836139ab565b9150614cbc82614c55565b604082019050919050565b60006020820190508181036000830152614ce081614ca4565b9050919050565b7f43534c543a2054726164696e67206e6f742079657420656e61626c6564210000600082015250565b6000614d1d601e836139ab565b9150614d2882614ce7565b602082019050919050565b60006020820190508181036000830152614d4c81614d10565b9050919050565b7f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560008201527f647320746865206d61785472616e73616374696f6e416d6f756e740000000000602082015250565b6000614daf603b836139ab565b9150614dba82614d53565b604082019050919050565b60006020820190508181036000830152614dde81614da2565b9050919050565b6000614df08261396c565b9150614dfb8361396c565b9250828203905081811115614e1357614e12613f96565b5b92915050565b7f4d617857616c6c65743a20526563697069656e7420657863656564732074686560008201527f206d617857616c6c6574416d6f756e7400000000000000000000000000000000602082015250565b6000614e756030836139ab565b9150614e8082614e19565b604082019050919050565b60006020820190508181036000830152614ea481614e68565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614f1881613a89565b92915050565b600060208284031215614f3457614f33613a52565b5b6000614f4284828501614f09565b91505092915050565b6000819050919050565b6000614f70614f6b614f6684614f4b565b613b57565b61396c565b9050919050565b614f8081614f55565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614fbb81613a77565b82525050565b6000614fcd8383614fb2565b60208301905092915050565b6000602082019050919050565b6000614ff182614f86565b614ffb8185614f91565b935061500683614fa2565b8060005b8381101561503757815161501e8882614fc1565b975061502983614fd9565b92505060018101905061500a565b5085935050505092915050565b600060a0820190506150596000830188613976565b6150666020830187614f77565b81810360408301526150788186614fe6565b90506150876060830185613d0e565b6150946080830184613976565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006150d4601d836139ab565b91506150df8261509e565b602082019050919050565b60006020820190508181036000830152615103816150c7565b9050919050565b600081905092915050565b50565b600061512560008361510a565b915061513082615115565b600082019050919050565b600061514682615118565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006151ac6025836139ab565b91506151b782615150565b604082019050919050565b600060208201905081810360008301526151db8161519f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061523e6023836139ab565b9150615249826151e2565b604082019050919050565b6000602082019050818103600083015261526d81615231565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006152d06026836139ab565b91506152db82615274565b604082019050919050565b600060208201905081810360008301526152ff816152c3565b905091905056fea2646970667358221220431c7330872910ca9e5415d24c0c94c6e3a83f74f4a220b433749299c417374a64736f6c63430008130033