[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "buyTaxTotal", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyMarketingTax", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyProjectTax", "type": "uint256" } ], "name": "BuyFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "DisabledTransferDelay", "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": "ExcludeFromLimits", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "LimitsRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "MarketingWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxTx", "type": "uint256" } ], "name": "MaxTxUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxWallet", "type": "uint256" } ], "name": "MaxWalletUpdated", "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": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "ProjectWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "sellTaxTotal", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellMarketingTax", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellProjectTax", "type": "uint256" } ], "name": "SellFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetDexPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "swapBackValueMin", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "swapBackValueMax", "type": "uint256" } ], "name": "SwapbackSettingsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "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": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" } ], "name": "addressPermissions", "outputs": [ { "internalType": "bool", "name": "_transferTaxExempt", "type": "bool" }, { "internalType": "bool", "name": "_transferLimitExempt", "type": "bool" }, { "internalType": "bool", "name": "_automatedMarketMakerPairs", "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newDevWal", "type": "address" } ], "name": "developerWalletChange", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dexPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "feesOnBuysSet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "feesOnSellsChange", "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": "newMktWal", "type": "address" } ], "name": "marketingWalletChange", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxTxLimit", "type": "uint256" } ], "name": "maxTransactionLimitChange", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxWalletLimit", "type": "uint256" } ], "name": "maxWalletLimitChange", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openTrading", "outputs": [], "stateMutability": "nonpayable", "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": "_anti", "type": "bool" } ], "name": "setAnti", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setDexPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enable", "type": "bool" }, { "internalType": "uint256", "name": "_min", "type": "uint256" }, { "internalType": "uint256", "name": "_max", "type": "uint256" } ], "name": "swapBackMinMaxEnabledSet", "outputs": [], "stateMutability": "nonpayable", "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": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "transactionLimitsExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transactionLimitsRemove", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "transactionTaxesExempt", "outputs": [], "stateMutability": "nonpayable", "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": "valuesForLimits", "outputs": [ { "internalType": "bool", "name": "_limitsEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_maxWallet", "type": "uint256" }, { "internalType": "uint256", "name": "_maxTx", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "valuesForReceivers", "outputs": [ { "internalType": "address", "name": "_marketingWallet", "type": "address" }, { "internalType": "address", "name": "_projectWallet", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "valuesForSwapback", "outputs": [ { "internalType": "bool", "name": "_swapbackEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_swapBackValueMin", "type": "uint256" }, { "internalType": "uint256", "name": "_swapBackValueMax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "valuesForTaxes", "outputs": [ { "internalType": "uint256", "name": "_buyTaxTotal", "type": "uint256" }, { "internalType": "uint256", "name": "_buyMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "_buyProjectTax", "type": "uint256" }, { "internalType": "uint256", "name": "_sellTaxTotal", "type": "uint256" }, { "internalType": "uint256", "name": "_sellMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "_sellProjectTax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526000600560156101000a81548160ff0219169083151502179055506001600860006101000a81548160ff0219169083151502179055506000600c60006101000a81548160ff0219169083151502179055506001601960006101000a81548160ff0219169083151502179055503480156200007d57600080fd5b506040518060400160405280600e81526020017f5361746f736869205265626f726e0000000000000000000000000000000000008152506040518060400160405280600381526020017f53414900000000000000000000000000000000000000000000000000000000008152508160039081620000fb919062000f27565b5080600490816200010d919062000f27565b50505062000130620001246200060060201b60201c565b6200060860201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200015c816001620006ce60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000202919062001078565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000290919062001078565b6040518363ffffffff1660e01b8152600401620002af929190620010bb565b6020604051808303816000875af1158015620002cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f5919062001078565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033d60a0516001620006ce60201b60201c565b6200035260a05160016200080860201b60201c565b6000601e90506000806046905060008062000372620008a960201b60201c565b600a62000380919062001278565b6461f313f880620003929190620012c9565b90506103e8600f82620003a69190620012c9565b620003b2919062001343565b600a819055506103e8600f82620003ca9190620012c9565b620003d6919062001343565b6009819055506103e8600182620003ee9190620012c9565b620003fa919062001343565b6006819055506064600282620004119190620012c9565b6200041d919062001343565b60078190555084600f8190555083601081905550601054600f546200044391906200137b565b600e8190555082601281905550816013819055506013546012546200046991906200137b565b60118190555033600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000504336001620008b260201b60201c565b62000517306001620008b260201b60201c565b6200052c61dead6001620008b260201b60201c565b62000561600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008b260201b60201c565b62000574336001620006ce60201b60201c565b62000587306001620006ce60201b60201c565b6200059c61dead6001620006ce60201b60201c565b620005d1600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006ce60201b60201c565b620005e233620009ec60201b60201c565b620005f4338262000b0160201b60201c565b505050505050620015ab565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006de6200060060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200070462000c7960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007549062001417565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282604051620007fc919062001456565b60405180910390a25050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f02d59e6bf2c101e2d8367c2a27c51357eccfebcca0d09aa27c00e24e946c0d6a60405160405180910390a35050565b60006012905090565b620008c26200060060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008e862000c7960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000941576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009389062001417565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620009e0919062001456565b60405180910390a25050565b620009fc6200060060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000a2262000c7960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a729062001417565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000aed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ae490620014e9565b60405180910390fd5b62000afe816200060860201b60201c565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b6a906200155b565b60405180910390fd5b62000b876000838362000ca360201b60201c565b806002600082825462000b9b91906200137b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000bf291906200137b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c5991906200158e565b60405180910390a362000c756000838362000ca860201b60201c565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d2f57607f821691505b60208210810362000d455762000d4462000ce7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000daf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d70565b62000dbb868362000d70565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e0862000e0262000dfc8462000dd3565b62000ddd565b62000dd3565b9050919050565b6000819050919050565b62000e248362000de7565b62000e3c62000e338262000e0f565b84845462000d7d565b825550505050565b600090565b62000e5362000e44565b62000e6081848462000e19565b505050565b5b8181101562000e885762000e7c60008262000e49565b60018101905062000e66565b5050565b601f82111562000ed75762000ea18162000d4b565b62000eac8462000d60565b8101602085101562000ebc578190505b62000ed462000ecb8562000d60565b83018262000e65565b50505b505050565b600082821c905092915050565b600062000efc6000198460080262000edc565b1980831691505092915050565b600062000f17838362000ee9565b9150826002028217905092915050565b62000f328262000cad565b67ffffffffffffffff81111562000f4e5762000f4d62000cb8565b5b62000f5a825462000d16565b62000f6782828562000e8c565b600060209050601f83116001811462000f9f576000841562000f8a578287015190505b62000f96858262000f09565b86555062001006565b601f19841662000faf8662000d4b565b60005b8281101562000fd95784890151825560018201915060208501945060208101905062000fb2565b8683101562000ff9578489015162000ff5601f89168262000ee9565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010408262001013565b9050919050565b620010528162001033565b81146200105e57600080fd5b50565b600081519050620010728162001047565b92915050565b6000602082840312156200109157620010906200100e565b5b6000620010a18482850162001061565b91505092915050565b620010b58162001033565b82525050565b6000604082019050620010d26000830185620010aa565b620010e16020830184620010aa565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001176578086048111156200114e576200114d620010e8565b5b60018516156200115e5780820291505b80810290506200116e8562001117565b94506200112e565b94509492505050565b60008262001191576001905062001264565b81620011a1576000905062001264565b8160018114620011ba5760028114620011c557620011fb565b600191505062001264565b60ff841115620011da57620011d9620010e8565b5b8360020a915084821115620011f457620011f3620010e8565b5b5062001264565b5060208310610133831016604e8410600b8410161715620012355782820a9050838111156200122f576200122e620010e8565b5b62001264565b62001244848484600162001124565b925090508184048111156200125e576200125d620010e8565b5b81810290505b9392505050565b600060ff82169050919050565b6000620012858262000dd3565b915062001292836200126b565b9250620012c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200117f565b905092915050565b6000620012d68262000dd3565b9150620012e38362000dd3565b9250828202620012f38162000dd3565b915082820484148315176200130d576200130c620010e8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620013508262000dd3565b91506200135d8362000dd3565b92508262001370576200136f62001314565b5b828204905092915050565b6000620013888262000dd3565b9150620013958362000dd3565b9250828201905080821115620013b057620013af620010e8565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620013ff602083620013b6565b91506200140c82620013c7565b602082019050919050565b600060208201905081810360008301526200143281620013f0565b9050919050565b60008115159050919050565b620014508162001439565b82525050565b60006020820190506200146d600083018462001445565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620014d1602683620013b6565b9150620014de8262001473565b604082019050919050565b600060208201905081810360008301526200150481620014c2565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001543601f83620013b6565b915062001550826200150b565b602082019050919050565b60006020820190508181036000830152620015768162001534565b9050919050565b620015888162000dd3565b82525050565b6000602082019050620015a560008301846200157d565b92915050565b60805160a05161481b620015e660003960008181611b3d0152611bd90152600081816131cb015281816132ac01526132d3015261481b6000f3fe6080604052600436106101fd5760003560e01c80637ff6f7b91161010d578063c9b6c1ce116100a0578063e55648f41161006f578063e55648f41461074a578063f242ab4114610773578063f2fde38b1461079e578063f3cfad94146107c7578063fb42948a146107f057610204565b8063c9b6c1ce1461068b578063ca3608c3146106b4578063d7ff53e5146106dd578063dd62ed3e1461070d57610204565b8063a9059cbb116100dc578063a9059cbb146105cf578063bb931db21461060c578063c40b793b14610635578063c9567bf91461067457610204565b80637ff6f7b9146105135780638da5cb5b1461053c57806395d89b4114610567578063a457c2d71461059257610204565b8063336ddc29116101905780634ada218b1161015f5780634ada218b1461043e57806351b8dc7b14610469578063622fa7721461049257806370a08231146104bf578063715018a6146104fc57610204565b8063336ddc2914610386578063391822af146103af57806339509351146103d85780634482eea81461041557610204565b806321108a52116101cc57806321108a52146102c857806323b872dd146102f1578063313ce5671461032e5780633308740b1461035957610204565b806306fdde0314610209578063088c9eb414610234578063095ea7b31461026057806318160ddd1461029d57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e610807565b60405161022b919061340f565b60405180910390f35b34801561024057600080fd5b50610249610899565b604051610257929190613472565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190613502565b6108ea565b604051610294919061355d565b60405180910390f35b3480156102a957600080fd5b506102b2610908565b6040516102bf9190613587565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906135a2565b610912565b005b3480156102fd57600080fd5b50610318600480360381019061031391906135e2565b610a3d565b604051610325919061355d565b60405180910390f35b34801561033a57600080fd5b50610343610b35565b6040516103509190613651565b60405180910390f35b34801561036557600080fd5b5061036e610b3e565b60405161037d9392919061366c565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a891906136a3565b610b64565b005b3480156103bb57600080fd5b506103d660048036038101906103d191906135a2565b610ca0565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190613502565b610dcb565b60405161040c919061355d565b60405180910390f35b34801561042157600080fd5b5061043c600480360381019061043791906136fc565b610e77565b005b34801561044a57600080fd5b50610453610f9c565b604051610460919061355d565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b91906136a3565b610faf565b005b34801561049e57600080fd5b506104a76110eb565b6040516104b69392919061366c565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e191906136a3565b611111565b6040516104f39190613587565b60405180910390f35b34801561050857600080fd5b50610511611159565b005b34801561051f57600080fd5b5061053a6004803603810190610535919061373c565b6111e1565b005b34801561054857600080fd5b5061055161127a565b60405161055e9190613769565b60405180910390f35b34801561057357600080fd5b5061057c6112a4565b604051610589919061340f565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190613502565b611336565b6040516105c6919061355d565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f19190613502565b611421565b604051610603919061355d565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e9190613784565b61143f565b005b34801561064157600080fd5b5061065c600480360381019061065791906136a3565b611561565b60405161066b939291906137b1565b60405180910390f35b34801561068057600080fd5b5061068961165a565b005b34801561069757600080fd5b506106b260048036038101906106ad91906136fc565b61173b565b005b3480156106c057600080fd5b506106db60048036038101906106d691906137e8565b611860565b005b3480156106e957600080fd5b506106f2611a09565b6040516107049695949392919061383b565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f919061389c565b611a38565b6040516107419190613587565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c91906136fc565b611abf565b005b34801561077f57600080fd5b50610788611bd7565b6040516107959190613769565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c091906136a3565b611bfb565b005b3480156107d357600080fd5b506107ee60048036038101906107e99190613784565b611cf2565b005b3480156107fc57600080fd5b50610805611e14565b005b6060600380546108169061390b565b80601f01602080910402602001604051908101604052809291908181526020018280546108429061390b565b801561088f5780601f106108645761010080835404028352916020019161088f565b820191906000526020600020905b81548152906001019060200180831161087257829003601f168201915b5050505050905090565b600080600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60006108fe6108f7611eda565b8484611ee2565b6001905092915050565b6000600254905090565b61091a611eda565b73ffffffffffffffffffffffffffffffffffffffff1661093861127a565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590613988565b60405180910390fd5b81600f8190555080601081905550601054600f546109ac91906139d7565b600e819055506064600e5411156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90613a7d565b60405180910390fd5b7f38513c502b0ab4834ac1df9502b76f75dcf7092469782cfd0db7fe664388e25e600e54600f54601054604051610a3193929190613a9d565b60405180910390a15050565b6000610a4a8484846120ab565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a95611eda565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c90613b46565b60405180910390fd5b610b2985610b21611eda565b858403611ee2565b60019150509392505050565b60006012905090565b6000806000600860009054906101000a900460ff1692506009549150600a549050909192565b610b6c611eda565b73ffffffffffffffffffffffffffffffffffffffff16610b8a61127a565b73ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd790613988565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fb91dbdeaf34f885ccae2d8abc3967cb03c079b6af2c7944e3893fd29427d75e760405160405180910390a380600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ca8611eda565b73ffffffffffffffffffffffffffffffffffffffff16610cc661127a565b73ffffffffffffffffffffffffffffffffffffffff1614610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1390613988565b60405180910390fd5b8160128190555080601381905550601354601254610d3a91906139d7565b60118190555060646011541115610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d90613bd8565b60405180910390fd5b7fcb5f36df892836a2eaedc349de29a7581176990398ee185d16eaa8f6c1abd8f1601154601254601354604051610dbf93929190613a9d565b60405180910390a15050565b6000610e6d610dd8611eda565b848460016000610de6611eda565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6891906139d7565b611ee2565b6001905092915050565b610e7f611eda565b73ffffffffffffffffffffffffffffffffffffffff16610e9d61127a565b73ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90613988565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282604051610f90919061355d565b60405180910390a25050565b600c60009054906101000a900460ff1681565b610fb7611eda565b73ffffffffffffffffffffffffffffffffffffffff16610fd561127a565b73ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290613988565b60405180910390fd5b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6760405160405180910390a380600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000600560159054906101000a900460ff16925060065491506007549050909192565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611161611eda565b73ffffffffffffffffffffffffffffffffffffffff1661117f61127a565b73ffffffffffffffffffffffffffffffffffffffff16146111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc90613988565b60405180910390fd5b6111df6000612b15565b565b6111e9611eda565b73ffffffffffffffffffffffffffffffffffffffff1661120761127a565b73ffffffffffffffffffffffffffffffffffffffff161461125d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125490613988565b60405180910390fd5b80601960006101000a81548160ff02191690831515021790555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112b39061390b565b80601f01602080910402602001604051908101604052809291908181526020018280546112df9061390b565b801561132c5780601f106113015761010080835404028352916020019161132c565b820191906000526020600020905b81548152906001019060200180831161130f57829003601f168201915b5050505050905090565b60008060016000611345611eda565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613c6a565b60405180910390fd5b61141661140d611eda565b85858403611ee2565b600191505092915050565b600061143561142e611eda565b84846120ab565b6001905092915050565b611447611eda565b73ffffffffffffffffffffffffffffffffffffffff1661146561127a565b73ffffffffffffffffffffffffffffffffffffffff16146114bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b290613988565b60405180910390fd5b60058110156114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690613cfc565b60405180910390fd5b6103e861150a610908565b826115159190613d1c565b61151f9190613d8d565b6009819055507f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace6009546040516115569190613587565b60405180910390a150565b6000806000601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169250601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169150601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509193909250565b611662611eda565b73ffffffffffffffffffffffffffffffffffffffff1661168061127a565b73ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90613988565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600560156101000a81548160ff021916908315150217905550427fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e92360405160405180910390a2565b611743611eda565b73ffffffffffffffffffffffffffffffffffffffff1661176161127a565b73ffffffffffffffffffffffffffffffffffffffff16146117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90613988565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611854919061355d565b60405180910390a25050565b611868611eda565b73ffffffffffffffffffffffffffffffffffffffff1661188661127a565b73ffffffffffffffffffffffffffffffffffffffff16146118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d390613988565b60405180910390fd5b6001821015611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613e30565b60405180910390fd5b81811015611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a90613ec2565b60405180910390fd5b82600560156101000a81548160ff02191690831515021790555061271082611989610908565b6119939190613d1c565b61199d9190613d8d565b600681905550612710816119af610908565b6119b99190613d1c565b6119c39190613d8d565b6007819055507f52cd2cdb42ff0eeec9362d7ed5b04f64c8d022697128b5378fc51cea7e63c7798383836040516119fc9392919061366c565b60405180910390a1505050565b600080600080600080600e549550600f5494506010549350601154925060125491506013549050909192939495565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ac7611eda565b73ffffffffffffffffffffffffffffffffffffffff16611ae561127a565b73ffffffffffffffffffffffffffffffffffffffff1614611b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3290613988565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613f54565b60405180910390fd5b611bd38282612bdb565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611c03611eda565b73ffffffffffffffffffffffffffffffffffffffff16611c2161127a565b73ffffffffffffffffffffffffffffffffffffffff1614611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e90613988565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdd90613fe6565b60405180910390fd5b611cef81612b15565b50565b611cfa611eda565b73ffffffffffffffffffffffffffffffffffffffff16611d1861127a565b73ffffffffffffffffffffffffffffffffffffffff1614611d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6590613988565b60405180910390fd5b6002811015611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990614052565b60405180910390fd5b6103e8611dbd610908565b82611dc89190613d1c565b611dd29190613d8d565b600a819055507fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a600a54604051611e099190613587565b60405180910390a150565b611e1c611eda565b73ffffffffffffffffffffffffffffffffffffffff16611e3a61127a565b73ffffffffffffffffffffffffffffffffffffffff1614611e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8790613988565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550427ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261660405160405180910390a2565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f48906140e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb790614176565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161209e9190613587565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211190614208565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612189576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121809061429a565b60405180910390fd5b600081036121a25761219d83836000612c7c565b612b10565b600860009054906101000a900460ff161561269d576121bf61127a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561222d57506121fd61127a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122665750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122b95750600560149054906101000a900460ff16155b1561269c57600c60009054906101000a900460ff166123b357601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123735750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6123b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a99061432c565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124565750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124fd57600a548111156124a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612497906143be565b60405180910390fd5b6009546124ac83611111565b826124b791906139d7565b11156124f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ef9061442a565b60405180910390fd5b61269b565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125a05750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ef57600a548111156125ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e1906144bc565b60405180910390fd5b61269a565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166126995760095461264c83611111565b8261265791906139d7565b1115612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f9061442a565b60405180910390fd5b5b5b5b5b5b60006126a830611111565b9050600060065482101590508080156126cd5750600560159054906101000a900460ff165b80156126e65750600560149054906101000a900460ff16155b801561273c5750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127925750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127e85750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561282d576001600560146101000a81548160ff02191690831515021790555061281183612efb565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128e35750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128ed57600090505b60008115612b0057601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561295057506000601154115b156129ea5761297d606461296f601154886130f690919063ffffffff16565b61310c90919063ffffffff16565b9050601154601354826129909190613d1c565b61299a9190613d8d565b601560008282546129ab91906139d7565b92505081905550601154601254826129c39190613d1c565b6129cd9190613d8d565b601460008282546129de91906139d7565b92505081905550612adc565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a4557506000600e54115b15612adb57612a726064612a64600e54886130f690919063ffffffff16565b61310c90919063ffffffff16565b9050600e5460105482612a859190613d1c565b612a8f9190613d8d565b60156000828254612aa091906139d7565b92505081905550600e54600f5482612ab89190613d1c565b612ac29190613d8d565b60146000828254612ad391906139d7565b925050819055505b5b6000811115612af157612af0873083612c7c565b5b8085612afd91906144dc565b94505b612b0b878787612c7c565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f02d59e6bf2c101e2d8367c2a27c51357eccfebcca0d09aa27c00e24e946c0d6a60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce290614208565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d519061429a565b60405180910390fd5b612d65838383613122565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de290614582565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e7e91906139d7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ee29190613587565b60405180910390a3612ef5848484613127565b50505050565b6000612f0630611111565b905060008190506000808303612f1e575050506130f3565b600754831115612f2e5760075492505b601960009054906101000a900460ff168015612f555750600584612f529190613d1c565b83115b15612f6a57600584612f679190613d1c565b92505b60008390506000479050612f7d8261312c565b6000612f92824761336990919063ffffffff16565b90506000612fbd86612faf601554856130f690919063ffffffff16565b61310c90919063ffffffff16565b905060006014819055506000601581905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613015906145d3565b60006040518083038185875af1925050503d8060008114613052576040519150601f19603f3d011682016040523d82523d6000602084013e613057565b606091505b505080955050600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516130a3906145d3565b60006040518083038185875af1925050503d80600081146130e0576040519150601f19603f3d011682016040523d82523d6000602084013e6130e5565b606091505b505080955050505050505050505b50565b600081836131049190613d1c565b905092915050565b6000818361311a9190613d8d565b905092915050565b505050565b505050565b6000600267ffffffffffffffff811115613149576131486145e8565b5b6040519080825280602002602001820160405280156131775781602001602082028036833780820191505090505b509050308160008151811061318f5761318e614617565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613234573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613258919061465b565b8160018151811061326c5761326b614617565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506132d1307f000000000000000000000000000000000000000000000000000000000000000084611ee2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161333395949392919061478b565b600060405180830381600087803b15801561334d57600080fd5b505af1158015613361573d6000803e3d6000fd5b505050505050565b6000818361337791906144dc565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133b957808201518184015260208101905061339e565b60008484015250505050565b6000601f19601f8301169050919050565b60006133e18261337f565b6133eb818561338a565b93506133fb81856020860161339b565b613404816133c5565b840191505092915050565b6000602082019050818103600083015261342981846133d6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061345c82613431565b9050919050565b61346c81613451565b82525050565b60006040820190506134876000830185613463565b6134946020830184613463565b9392505050565b600080fd5b6134a981613451565b81146134b457600080fd5b50565b6000813590506134c6816134a0565b92915050565b6000819050919050565b6134df816134cc565b81146134ea57600080fd5b50565b6000813590506134fc816134d6565b92915050565b600080604083850312156135195761351861349b565b5b6000613527858286016134b7565b9250506020613538858286016134ed565b9150509250929050565b60008115159050919050565b61355781613542565b82525050565b6000602082019050613572600083018461354e565b92915050565b613581816134cc565b82525050565b600060208201905061359c6000830184613578565b92915050565b600080604083850312156135b9576135b861349b565b5b60006135c7858286016134ed565b92505060206135d8858286016134ed565b9150509250929050565b6000806000606084860312156135fb576135fa61349b565b5b6000613609868287016134b7565b935050602061361a868287016134b7565b925050604061362b868287016134ed565b9150509250925092565b600060ff82169050919050565b61364b81613635565b82525050565b60006020820190506136666000830184613642565b92915050565b6000606082019050613681600083018661354e565b61368e6020830185613578565b61369b6040830184613578565b949350505050565b6000602082840312156136b9576136b861349b565b5b60006136c7848285016134b7565b91505092915050565b6136d981613542565b81146136e457600080fd5b50565b6000813590506136f6816136d0565b92915050565b600080604083850312156137135761371261349b565b5b6000613721858286016134b7565b9250506020613732858286016136e7565b9150509250929050565b6000602082840312156137525761375161349b565b5b6000613760848285016136e7565b91505092915050565b600060208201905061377e6000830184613463565b92915050565b60006020828403121561379a5761379961349b565b5b60006137a8848285016134ed565b91505092915050565b60006060820190506137c6600083018661354e565b6137d3602083018561354e565b6137e0604083018461354e565b949350505050565b6000806000606084860312156138015761380061349b565b5b600061380f868287016136e7565b9350506020613820868287016134ed565b9250506040613831868287016134ed565b9150509250925092565b600060c0820190506138506000830189613578565b61385d6020830188613578565b61386a6040830187613578565b6138776060830186613578565b6138846080830185613578565b61389160a0830184613578565b979650505050505050565b600080604083850312156138b3576138b261349b565b5b60006138c1858286016134b7565b92505060206138d2858286016134b7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061392357607f821691505b602082108103613936576139356138dc565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061397260208361338a565b915061397d8261393c565b602082019050919050565b600060208201905081810360008301526139a181613965565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139e2826134cc565b91506139ed836134cc565b9250828201905080821115613a0557613a046139a8565b5b92915050565b7f546f74616c20627579206665652063616e6e6f7420626520686967686572207460008201527f68616e2031303025000000000000000000000000000000000000000000000000602082015250565b6000613a6760288361338a565b9150613a7282613a0b565b604082019050919050565b60006020820190508181036000830152613a9681613a5a565b9050919050565b6000606082019050613ab26000830186613578565b613abf6020830185613578565b613acc6040830184613578565b949350505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613b3060288361338a565b9150613b3b82613ad4565b604082019050919050565b60006020820190508181036000830152613b5f81613b23565b9050919050565b7f546f74616c2073656c6c206665652063616e6e6f74206265206869676865722060008201527f7468616e20313030250000000000000000000000000000000000000000000000602082015250565b6000613bc260298361338a565b9150613bcd82613b66565b604082019050919050565b60006020820190508181036000830152613bf181613bb5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c5460258361338a565b9150613c5f82613bf8565b604082019050919050565b60006020820190508181036000830152613c8381613c47565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613ce660248361338a565b9150613cf182613c8a565b604082019050919050565b60006020820190508181036000830152613d1581613cd9565b9050919050565b6000613d27826134cc565b9150613d32836134cc565b9250828202613d40816134cc565b91508282048414831517613d5757613d566139a8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d98826134cc565b9150613da3836134cc565b925082613db357613db2613d5e565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e30312520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613e1a60348361338a565b9150613e2582613dbe565b604082019050919050565b60006020820190508181036000830152613e4981613e0d565b9050919050565b7f6d6178696d756d20616d6f756e742063616e742062652068696768657220746860008201527f616e206d696e696d756d00000000000000000000000000000000000000000000602082015250565b6000613eac602a8361338a565b9150613eb782613e50565b604082019050919050565b60006020820190508181036000830152613edb81613e9f565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613f3e60398361338a565b9150613f4982613ee2565b604082019050919050565b60006020820190508181036000830152613f6d81613f31565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613fd060268361338a565b9150613fdb82613f74565b604082019050919050565b60006020820190508181036000830152613fff81613fc3565b9050919050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e3225600082015250565b600061403c60208361338a565b915061404782614006565b602082019050919050565b6000602082019050818103600083015261406b8161402f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140ce60248361338a565b91506140d982614072565b604082019050919050565b600060208201905081810360008301526140fd816140c1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061416060228361338a565b915061416b82614104565b604082019050919050565b6000602082019050818103600083015261418f81614153565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141f260258361338a565b91506141fd82614196565b604082019050919050565b60006020820190508181036000830152614221816141e5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061428460238361338a565b915061428f82614228565b604082019050919050565b600060208201905081810360008301526142b381614277565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f7420616374697660008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061431660228361338a565b9150614321826142ba565b604082019050919050565b6000602082019050818103600083015261434581614309565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b60006143a860268361338a565b91506143b38261434c565b604082019050919050565b600060208201905081810360008301526143d78161439b565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061441460138361338a565b915061441f826143de565b602082019050919050565b6000602082019050818103600083015261444381614407565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b60006144a660278361338a565b91506144b18261444a565b604082019050919050565b600060208201905081810360008301526144d581614499565b9050919050565b60006144e7826134cc565b91506144f2836134cc565b925082820390508181111561450a576145096139a8565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061456c60268361338a565b915061457782614510565b604082019050919050565b6000602082019050818103600083015261459b8161455f565b9050919050565b600081905092915050565b50565b60006145bd6000836145a2565b91506145c8826145ad565b600082019050919050565b60006145de826145b0565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614655816134a0565b92915050565b6000602082840312156146715761467061349b565b5b600061467f84828501614646565b91505092915050565b6000819050919050565b6000819050919050565b60006146b76146b26146ad84614688565b614692565b6134cc565b9050919050565b6146c78161469c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61470281613451565b82525050565b600061471483836146f9565b60208301905092915050565b6000602082019050919050565b6000614738826146cd565b61474281856146d8565b935061474d836146e9565b8060005b8381101561477e5781516147658882614708565b975061477083614720565b925050600181019050614751565b5085935050505092915050565b600060a0820190506147a06000830188613578565b6147ad60208301876146be565b81810360408301526147bf818661472d565b90506147ce6060830185613463565b6147db6080830184613578565b969550505050505056fea2646970667358221220ccf322763c5820bf27eb384165cfb9be51503d6d29bd57a5a6ea3af968a66e7564736f6c63430008130033