Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "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": "ethReceived", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "_fees", "outputs": [ { "internalType": "uint256", "name": "buyTotalFees", "type": "uint256" }, { "internalType": "uint256", "name": "buyMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "buyDevelopmentFee", "type": "uint256" }, { "internalType": "uint256", "name": "buyLiquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "sellTotalFees", "type": "uint256" }, { "internalType": "uint256", "name": "sellMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "sellDevelopmentFee", "type": "uint256" }, { "internalType": "uint256", "name": "sellLiquidityFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxWalletAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "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": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSwapping", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "marketPair", "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": "openTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setMarketPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_marketingWallet", "type": "address" }, { "internalType": "address", "name": "_developmentWallet", "type": "address" } ], "name": "setWallets", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "toggleSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tokensForDevelopment", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForLiquidity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForMarketing", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_liquidityFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_developmentFeeBuy", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_liquidityFeeSell", "type": "uint256" }, { "internalType": "uint256", "name": "_developmentFeeSell", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxBuy", "type": "uint256" }, { "internalType": "uint256", "name": "newMaxSell", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newPercentage", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateThresholdSwapAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526000600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff021916908315150217905550604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250600d600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701555050348015620000dd57600080fd5b506040518060400160405280600681526020017f434f5254455800000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434f58000000000000000000000000000000000000000000000000000000000081525081600390816200015b919062001060565b5080600490816200016d919062001060565b50505060006200018262000a9c60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd9190620011b1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000347573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036d9190620011b1565b6040518363ffffffff1660e01b81526004016200038c929190620011f4565b6020604051808303816000875af1158015620003ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d29190620011b1565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506001601a600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a6000620004cf62000aa460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160196000620005e862000aa460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000620006a762000aa460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008926080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000ace60201b60201c565b5060006b04d8c55aefb8c05b5c00000090506064600182620008b5919062001250565b620008c19190620012ca565b6008819055506064600182620008d8919062001250565b620008e49190620012ca565b6009819055506064600182620008fb919062001250565b620009079190620012ca565b600a819055506103e86001826200091f919062001250565b6200092b9190620012ca565b600b81905550600a600d60010181905550600a600d60030181905550600a600d60020181905550600d60020154600d60030154600d6001015462000970919062001302565b6200097c919062001302565b600d60000181905550600a600d60050181905550600a600d60070181905550600a600d60060181905550600d60060154600d60070154600d60050154620009c4919062001302565b620009d0919062001302565b600d600401819055507335210d6b7b3e66cf8990ec7e8a179a15c2f891cc600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507335210d6b7b3e66cf8990ec7e8a179a15c2f891cc600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000a95338262000afc60201b60201c565b5062001460565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600062000af262000ae462000a9c60201b60201c565b848462000c9660201b60201c565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b65906200139e565b60405180910390fd5b62000b8a8160025462000d8360201b62001e491790919060201c565b60028190555062000be8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000d8360201b62001e491790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c8a9190620013d1565b60405180910390a35050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d769190620013d1565b60405180910390a3505050565b600080828462000d94919062001302565b90508381101562000ddc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000dd3906200143e565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e6857607f821691505b60208210810362000e7e5762000e7d62000e20565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ee87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ea9565b62000ef4868362000ea9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f4162000f3b62000f358462000f0c565b62000f16565b62000f0c565b9050919050565b6000819050919050565b62000f5d8362000f20565b62000f7562000f6c8262000f48565b84845462000eb6565b825550505050565b600090565b62000f8c62000f7d565b62000f9981848462000f52565b505050565b5b8181101562000fc15762000fb560008262000f82565b60018101905062000f9f565b5050565b601f821115620010105762000fda8162000e84565b62000fe58462000e99565b8101602085101562000ff5578190505b6200100d620010048562000e99565b83018262000f9e565b50505b505050565b600082821c905092915050565b6000620010356000198460080262001015565b1980831691505092915050565b600062001050838362001022565b9150826002028217905092915050565b6200106b8262000de6565b67ffffffffffffffff81111562001087576200108662000df1565b5b62001093825462000e4f565b620010a082828562000fc5565b600060209050601f831160018114620010d85760008415620010c3578287015190505b620010cf858262001042565b8655506200113f565b601f198416620010e88662000e84565b60005b828110156200111257848901518255600182019150602085019450602081019050620010eb565b868310156200113257848901516200112e601f89168262001022565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001179826200114c565b9050919050565b6200118b816200116c565b81146200119757600080fd5b50565b600081519050620011ab8162001180565b92915050565b600060208284031215620011ca57620011c962001147565b5b6000620011da848285016200119a565b91505092915050565b620011ee816200116c565b82525050565b60006040820190506200120b6000830185620011e3565b6200121a6020830184620011e3565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200125d8262000f0c565b91506200126a8362000f0c565b92508282026200127a8162000f0c565b9150828204841483151762001294576200129362001221565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012d78262000f0c565b9150620012e48362000f0c565b925082620012f757620012f66200129b565b5b828204905092915050565b60006200130f8262000f0c565b91506200131c8362000f0c565b925082820190508082111562001337576200133662001221565b5b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001386601f836200133d565b915062001393826200134e565b602082019050919050565b60006020820190508181036000830152620013b98162001377565b9050919050565b620013cb8162000f0c565b82525050565b6000602082019050620013e86000830184620013c0565b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001426601b836200133d565b91506200143382620013ee565b602082019050919050565b60006020820190508181036000830152620014598162001417565b9050919050565b60805160a0516142ed620014b060003960008181610d3e01526116e4015260008181611e2701528181613018015281816130f901528181613120015281816131bc01526131e301526142ed6000f3fe6080604052600436106102295760003560e01c80638da5cb5b11610123578063c18bc195116100ab578063e16830a81161006f578063e16830a814610841578063ef8700e51461086a578063f2fde38b14610895578063f5b3c3bf146108be578063f887ea40146108fb57610230565b8063c18bc19514610769578063c9567bf914610792578063d212a69a146107a9578063d3f6a157146107db578063dd62ed3e1461080457610230565b8063a457c2d7116100f2578063a457c2d714610672578063a9059cbb146106af578063b8863115146106ec578063c024666814610717578063c16dd4a41461074057610230565b80638da5cb5b146105b657806395d89b41146105e157806396880b171461060c578063992c58e41461064957610230565b8063313ce567116101b15780636ddd1713116101755780636ddd1713146104f757806370a0823114610522578063715018a61461055f578063751039fc146105765780637571336a1461058d57610230565b8063313ce567146103ea578063395093511461041557806349bd5a5e146104525780634fbee1931461047d578063555467a1146104ba57610230565b806318160ddd116101f857806318160ddd146103035780631a8145bb1461032e5780631c6e8a75146103595780631f3fed8f1461038257806323b872dd146103ad57610230565b806306fdde0314610235578063095ea7b31461026057806310d5de531461029d57806311a582c3146102da57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610926565b6040516102579190613383565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061343e565b6109b8565b6040516102949190613499565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf91906134b4565b6109d6565b6040516102d19190613499565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc91906134e1565b6109f6565b005b34801561030f57600080fd5b50610318610add565b6040516103259190613530565b60405180910390f35b34801561033a57600080fd5b50610343610ae7565b6040516103509190613530565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190613577565b610aed565b005b34801561038e57600080fd5b50610397610ba1565b6040516103a49190613530565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906135a4565b610ba7565b6040516103e19190613499565b60405180910390f35b3480156103f657600080fd5b506103ff610c80565b60405161040c9190613613565b60405180910390f35b34801561042157600080fd5b5061043c6004803603810190610437919061343e565b610c89565b6040516104499190613499565b60405180910390f35b34801561045e57600080fd5b50610467610d3c565b604051610474919061363d565b60405180910390f35b34801561048957600080fd5b506104a4600480360381019061049f91906134b4565b610d60565b6040516104b19190613499565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc9190613658565b610db6565b6040516104ee9190613499565b60405180910390f35b34801561050357600080fd5b5061050c610e5f565b6040516105199190613499565b60405180910390f35b34801561052e57600080fd5b50610549600480360381019061054491906134b4565b610e72565b6040516105569190613530565b60405180910390f35b34801561056b57600080fd5b50610574610eba565b005b34801561058257600080fd5b5061058b611012565b005b34801561059957600080fd5b506105b460048036038101906105af9190613685565b6110c2565b005b3480156105c257600080fd5b506105cb6111b4565b6040516105d8919061363d565b60405180910390f35b3480156105ed57600080fd5b506105f66111de565b6040516106039190613383565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e91906134b4565b611270565b6040516106409190613499565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906136c5565b611290565b005b34801561067e57600080fd5b506106996004803603810190610694919061343e565b61145b565b6040516106a69190613499565b60405180910390f35b3480156106bb57600080fd5b506106d660048036038101906106d1919061343e565b611528565b6040516106e39190613499565b60405180910390f35b3480156106f857600080fd5b50610701611546565b60405161070e9190613499565b60405180910390f35b34801561072357600080fd5b5061073e60048036038101906107399190613685565b611559565b005b34801561074c57600080fd5b5061076760048036038101906107629190613685565b61164b565b005b34801561077557600080fd5b50610790600480360381019061078b9190613658565b6117cb565b005b34801561079e57600080fd5b506107a761188b565b005b3480156107b557600080fd5b506107be61196d565b6040516107d2989796959493929190613752565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd91906137d0565b6119a3565b005b34801561081057600080fd5b5061082b600480360381019061082691906137d0565b611ac0565b6040516108389190613530565b60405180910390f35b34801561084d57600080fd5b5061086860048036038101906108639190613685565b611b47565b005b34801561087657600080fd5b5061087f611c39565b60405161088c9190613530565b60405180910390f35b3480156108a157600080fd5b506108bc60048036038101906108b791906134b4565b611c3f565b005b3480156108ca57600080fd5b506108e560048036038101906108e091906134b4565b611e05565b6040516108f29190613499565b60405180910390f35b34801561090757600080fd5b50610910611e25565b60405161091d919061386f565b60405180910390f35b606060038054610935906138b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610961906138b9565b80156109ae5780601f10610983576101008083540402835291602001916109ae565b820191906000526020600020905b81548152906001019060200180831161099157829003601f168201915b5050505050905090565b60006109cc6109c5611ea7565b8484611eaf565b6001905092915050565b601a6020528060005260406000206000915054906101000a900460ff1681565b6109fe611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490613936565b60405180910390fd5b6103e882610a99610add565b610aa39190613985565b610aad91906139f6565b6008819055506103e881610abf610add565b610ac99190613985565b610ad391906139f6565b6009819055505050565b6000600254905090565b60165481565b610af5611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90613936565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b60155481565b6000610bb4848484611f9a565b610c7584610bc0611ea7565b610c708560405180606001604052806028815260200161429060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c26611ea7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296f9092919063ffffffff16565b611eaf565b600190509392505050565b60006012905090565b6000610d32610c96611ea7565b84610d2d8560016000610ca7611ea7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b611eaf565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610dc0611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4690613936565b60405180910390fd5b81600b8190555060019050919050565b600c60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ec2611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4890613936565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61101a611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a090613936565b60405180910390fd5b6110b56103e8806109f6565b6110c06103e86117cb565b565b6110ca611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115090613936565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111ed906138b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611219906138b9565b80156112665780601f1061123b57610100808354040283529160200191611266565b820191906000526020600020905b81548152906001019060200180831161124957829003601f168201915b5050505050905090565b601b6020528060005260406000206000915054906101000a900460ff1681565b611298611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90613936565b60405180910390fd5b85600d6001018190555084600d6003018190555083600d60020181905550600d60020154600d60030154600d600101546113619190613a27565b61136b9190613a27565b600d6000018190555082600d6005018190555081600d6007018190555080600d60060181905550600d60060154600d60070154600d600501546113ae9190613a27565b6113b89190613a27565b600d600401819055506000600d60000154111561140a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140190613aa7565b60405180910390fd5b6046600d600401541115611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90613aa7565b60405180910390fd5b505050505050565b600061151e611468611ea7565b84611519856040518060600160405280602581526020016142456025913960016000611492611ea7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296f9092919063ffffffff16565b611eaf565b6001905092915050565b600061153c611535611ea7565b8484611f9a565b6001905092915050565b600c60029054906101000a900460ff1681565b611561611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790613936565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611653611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990613936565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176790613b39565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117d3611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185990613936565b60405180910390fd5b6103e88161186e610add565b6118789190613985565b61188291906139f6565b600a8190555050565b611893611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191990613936565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506000436119659190613a27565b601881905550565b600d8060000154908060010154908060020154908060030154908060040154908060050154908060060154908060070154905088565b6119ab611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3190613936565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b4f611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590613936565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60175481565b611c47611ea7565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccd90613936565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c90613bcb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601c6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000808284611e589190613a27565b905083811015611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9490613c37565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f8d9190613530565b60405180910390a3505050565b60008103611fb357611fae838360006129d3565b61296a565b611fbb6111b4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120295750611ff96111b4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120425750600c60029054906101000a900460ff16155b156123c857600c60009054906101000a900460ff1661213c57601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120fc5750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61213b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213290613ca3565b60405180910390fd5b5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121df5750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561222e57600854811115612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222090613d35565b60405180910390fd5b61231d565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122d15750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561231c5760095481111561231b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231290613dc7565b60405180910390fd5b5b5b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123c757600a5461237a83610e72565b826123859190613a27565b11156123c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bd90613e33565b60405180910390fd5b5b5b60006123d330610e72565b90506000600b5482101590508080156123f85750600c60019054906101000a900460ff165b80156124115750600c60029054906101000a900460ff16155b80156124665750601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156124bc5750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125125750601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612556576001600c60026101000a81548160ff02191690831515021790555061253a612b7d565b6000600c60026101000a81548160ff0219169083151502179055505b6000600c60029054906101000a900460ff16159050601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061260c5750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561261657600090505b801561295b5760006018544310156126b85761264f6064612641606388612e6b90919063ffffffff16565b612ee590919063ffffffff16565b90506063605e826126609190613985565b61266a91906139f6565b6015600082825461267b9190613a27565b9250508190555060636005826126919190613985565b61269b91906139f6565b601760008282546126ac9190613a27565b92505081905550612936565b601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561271657506000600d60040154115b156127f8576127466064612738600d6004015488612e6b90919063ffffffff16565b612ee590919063ffffffff16565b9050600d60040154600d600701548261275f9190613985565b61276991906139f6565b6016600082825461277a9190613a27565b92505081905550600d60040154600d60050154826127989190613985565b6127a291906139f6565b601560008282546127b39190613a27565b92505081905550600d60040154600d60060154826127d19190613985565b6127db91906139f6565b601760008282546127ec9190613a27565b92505081905550612935565b601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561285657506000600d60000154115b15612934576128866064612878600d6000015488612e6b90919063ffffffff16565b612ee590919063ffffffff16565b9050600d60000154600d600301548261289f9190613985565b6128a991906139f6565b601660008282546128ba9190613a27565b92505081905550600d60000154600d60010154826128d89190613985565b6128e291906139f6565b601560008282546128f39190613a27565b92505081905550600d60000154600d60020154826129119190613985565b61291b91906139f6565b6017600082825461292c9190613a27565b925050819055505b5b5b600081111561294b5761294a8730836129d3565b5b80856129579190613e53565b9450505b6129668686866129d3565b5050505b505050565b60008383111582906129b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ae9190613383565b60405180910390fd5b50600083856129c69190613e53565b9050809150509392505050565b612a3e8160405180606001604052806026815260200161426a602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296f9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ad1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b709190613530565b60405180910390a3505050565b6000612b8830610e72565b90506000601754601554601654612b9f9190613a27565b612ba99190613a27565b9050600080831480612bbb5750600082145b15612bc857505050612e69565b6014600b54612bd79190613985565b831115612bf0576014600b54612bed9190613985565b92505b600060028360165486612c039190613985565b612c0d91906139f6565b612c1791906139f6565b90506000612c2e8286612f2f90919063ffffffff16565b90506000479050612c3e82612f79565b6000612c538247612f2f90919063ffffffff16565b90506000612c7e87612c7060155485612e6b90919063ffffffff16565b612ee590919063ffffffff16565b90506000612ca988612c9b60175486612e6b90919063ffffffff16565b612ee590919063ffffffff16565b905060008183612cb99190613a27565b84612cc49190613e53565b9050600060168190555060006015819055506000601781905550600087118015612cee5750600081115b15612d3757612cfd87826131b6565b7f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f83814868682604051612d2e929190613e87565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168347612d7c9190613e53565b604051612d8890613ee1565b60006040518083038185875af1925050503d8060008114612dc5576040519150601f19603f3d011682016040523d82523d6000602084013e612dca565b606091505b505080985050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612e1690613ee1565b60006040518083038185875af1925050503d8060008114612e53576040519150601f19603f3d011682016040523d82523d6000602084013e612e58565b606091505b505080985050505050505050505050505b565b6000808303612e7d5760009050612edf565b60008284612e8b9190613985565b9050828482612e9a91906139f6565b14612eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed190613f68565b60405180910390fd5b809150505b92915050565b6000612f2783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613290565b905092915050565b6000612f7183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061296f565b905092915050565b6000600267ffffffffffffffff811115612f9657612f95613f88565b5b604051908082528060200260200182016040528015612fc45781602001602082028036833780820191505090505b5090503081600081518110612fdc57612fdb613fb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a59190613ffb565b816001815181106130b9576130b8613fb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061311e307f000000000000000000000000000000000000000000000000000000000000000084611eaf565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613180959493929190614121565b600060405180830381600087803b15801561319a57600080fd5b505af11580156131ae573d6000803e3d6000fd5b505050505050565b6131e1307f000000000000000000000000000000000000000000000000000000000000000084611eaf565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b81526004016132469695949392919061417b565b60606040518083038185885af1158015613264573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061328991906141f1565b5050505050565b600080831182906132d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ce9190613383565b60405180910390fd5b50600083856132e691906139f6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561332d578082015181840152602081019050613312565b60008484015250505050565b6000601f19601f8301169050919050565b6000613355826132f3565b61335f81856132fe565b935061336f81856020860161330f565b61337881613339565b840191505092915050565b6000602082019050818103600083015261339d818461334a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133d5826133aa565b9050919050565b6133e5816133ca565b81146133f057600080fd5b50565b600081359050613402816133dc565b92915050565b6000819050919050565b61341b81613408565b811461342657600080fd5b50565b60008135905061343881613412565b92915050565b60008060408385031215613455576134546133a5565b5b6000613463858286016133f3565b925050602061347485828601613429565b9150509250929050565b60008115159050919050565b6134938161347e565b82525050565b60006020820190506134ae600083018461348a565b92915050565b6000602082840312156134ca576134c96133a5565b5b60006134d8848285016133f3565b91505092915050565b600080604083850312156134f8576134f76133a5565b5b600061350685828601613429565b925050602061351785828601613429565b9150509250929050565b61352a81613408565b82525050565b60006020820190506135456000830184613521565b92915050565b6135548161347e565b811461355f57600080fd5b50565b6000813590506135718161354b565b92915050565b60006020828403121561358d5761358c6133a5565b5b600061359b84828501613562565b91505092915050565b6000806000606084860312156135bd576135bc6133a5565b5b60006135cb868287016133f3565b93505060206135dc868287016133f3565b92505060406135ed86828701613429565b9150509250925092565b600060ff82169050919050565b61360d816135f7565b82525050565b60006020820190506136286000830184613604565b92915050565b613637816133ca565b82525050565b6000602082019050613652600083018461362e565b92915050565b60006020828403121561366e5761366d6133a5565b5b600061367c84828501613429565b91505092915050565b6000806040838503121561369c5761369b6133a5565b5b60006136aa858286016133f3565b92505060206136bb85828601613562565b9150509250929050565b60008060008060008060c087890312156136e2576136e16133a5565b5b60006136f089828a01613429565b965050602061370189828a01613429565b955050604061371289828a01613429565b945050606061372389828a01613429565b935050608061373489828a01613429565b92505060a061374589828a01613429565b9150509295509295509295565b600061010082019050613768600083018b613521565b613775602083018a613521565b6137826040830189613521565b61378f6060830188613521565b61379c6080830187613521565b6137a960a0830186613521565b6137b660c0830185613521565b6137c360e0830184613521565b9998505050505050505050565b600080604083850312156137e7576137e66133a5565b5b60006137f5858286016133f3565b9250506020613806858286016133f3565b9150509250929050565b6000819050919050565b600061383561383061382b846133aa565b613810565b6133aa565b9050919050565b60006138478261381a565b9050919050565b60006138598261383c565b9050919050565b6138698161384e565b82525050565b60006020820190506138846000830184613860565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138d157607f821691505b6020821081036138e4576138e361388a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139206020836132fe565b915061392b826138ea565b602082019050919050565b6000602082019050818103600083015261394f81613913565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061399082613408565b915061399b83613408565b92508282026139a981613408565b915082820484148315176139c0576139bf613956565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a0182613408565b9150613a0c83613408565b925082613a1c57613a1b6139c7565b5b828204905092915050565b6000613a3282613408565b9150613a3d83613408565b9250828201905080821115613a5557613a54613956565b5b92915050565b7f4d757374206b656570206665657320617420373025206f72206c657373000000600082015250565b6000613a91601d836132fe565b9150613a9c82613a5b565b602082019050919050565b60006020820190508181036000830152613ac081613a84565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6d61726b65745061697200000000000000000000000000000000000000000000602082015250565b6000613b23602a836132fe565b9150613b2e82613ac7565b604082019050919050565b60006020820190508181036000830152613b5281613b16565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613bb56026836132fe565b9150613bc082613b59565b604082019050919050565b60006020820190508181036000830152613be481613ba8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c21601b836132fe565b9150613c2c82613beb565b602082019050919050565b60006020820190508181036000830152613c5081613c14565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613c8d6016836132fe565b9150613c9882613c57565b602082019050919050565b60006020820190508181036000830152613cbc81613c80565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613d1f6035836132fe565b9150613d2a82613cc3565b604082019050919050565b60006020820190508181036000830152613d4e81613d12565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613db16036836132fe565b9150613dbc82613d55565b604082019050919050565b60006020820190508181036000830152613de081613da4565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613e1d6013836132fe565b9150613e2882613de7565b602082019050919050565b60006020820190508181036000830152613e4c81613e10565b9050919050565b6000613e5e82613408565b9150613e6983613408565b9250828203905081811115613e8157613e80613956565b5b92915050565b6000604082019050613e9c6000830185613521565b613ea96020830184613521565b9392505050565b600081905092915050565b50565b6000613ecb600083613eb0565b9150613ed682613ebb565b600082019050919050565b6000613eec82613ebe565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f526021836132fe565b9150613f5d82613ef6565b604082019050919050565b60006020820190508181036000830152613f8181613f45565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613ff5816133dc565b92915050565b600060208284031215614011576140106133a5565b5b600061401f84828501613fe6565b91505092915050565b6000819050919050565b600061404d61404861404384614028565b613810565b613408565b9050919050565b61405d81614032565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614098816133ca565b82525050565b60006140aa838361408f565b60208301905092915050565b6000602082019050919050565b60006140ce82614063565b6140d8818561406e565b93506140e38361407f565b8060005b838110156141145781516140fb888261409e565b9750614106836140b6565b9250506001810190506140e7565b5085935050505092915050565b600060a0820190506141366000830188613521565b6141436020830187614054565b818103604083015261415581866140c3565b9050614164606083018561362e565b6141716080830184613521565b9695505050505050565b600060c082019050614190600083018961362e565b61419d6020830188613521565b6141aa6040830187614054565b6141b76060830186614054565b6141c4608083018561362e565b6141d160a0830184613521565b979650505050505050565b6000815190506141eb81613412565b92915050565b60008060006060848603121561420a576142096133a5565b5b6000614218868287016141dc565b9350506020614229868287016141dc565b925050604061423a868287016141dc565b915050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209e9316e29b798f3e9db6e7c1515a4bccf2748e40a1d7fa95ee9e688a3318b1dd64736f6c63430008110033