0 txs
0 calls
constructor
constructor(string _NAME, string _SYMBOL, uint256 _DECIMALS, uint256 _supply, uint256 _txFee, uint256 _lpFee, uint256 _DexFee, address routerAddress, address feeaddress, address tokenOwner, address service) payable
functions
_devFee
viewfunction _devFee() view returns (uint256)
_devWalletAddress
viewfunction _devWalletAddress() view returns (address)
_liquidityFee
viewfunction _liquidityFee() view returns (uint256)
_lockTime
viewfunction _lockTime() view returns (uint256)
_maxTxAmount
viewfunction _maxTxAmount() view returns (uint256)
_owner
viewfunction _owner() view returns (address)
_taxFee
viewfunction _taxFee() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint256)
isExcludedFromFee
viewfunction isExcludedFromFee(address account) view returns (bool)
isExcludedFromReward
viewfunction isExcludedFromReward(address account) view returns (bool)
name
viewfunction name() view returns (string)
numTokensSellToAddToLiquidity
viewfunction numTokensSellToAddToLiquidity() view returns (uint256)
owner
viewfunction owner() view returns (address)
reflectionFromToken
viewfunction reflectionFromToken(uint256 tAmount, bool deductTransferFee) view returns (uint256)
swapAndLiquifyEnabled
viewfunction swapAndLiquifyEnabled() view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenFromReflection
viewfunction tokenFromReflection(uint256 rAmount) view returns (uint256)
totalFees
viewfunction totalFees() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
uniswapV2Pair
viewfunction uniswapV2Pair() view returns (address)
uniswapV2Router
viewfunction uniswapV2Router() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deliver
nonpayablefunction deliver(uint256 tAmount)
excludeFromFee
nonpayablefunction excludeFromFee(address account)
excludeFromReward
nonpayablefunction excludeFromReward(address account)
includeInFee
nonpayablefunction includeInFee(address account)
includeInReward
nonpayablefunction includeInReward(address account)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
lock
nonpayablefunction lock(uint256 time)
renounceOwnership
nonpayablefunction renounceOwnership()
setDevFeePercent
nonpayablefunction setDevFeePercent(uint256 devFee)
setDevWalletAddress
nonpayablefunction setDevWalletAddress(address _addr)
setLiquidityFeePercent
nonpayablefunction setLiquidityFeePercent(uint256 liquidityFee)
setMaxTxPercent
nonpayablefunction setMaxTxPercent(uint256 maxTxPercent)
setNumTokensSellToAddToLiquidity
nonpayablefunction setNumTokensSellToAddToLiquidity(uint256 amountToUpdate)
setRouterAddress
nonpayablefunction setRouterAddress(address newRouter)
setSwapAndLiquifyEnabled
nonpayablefunction setSwapAndLiquifyEnabled(bool _enabled)
setTaxFeePercent
nonpayablefunction setTaxFeePercent(uint256 taxFee)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unlock
nonpayablefunction unlock()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
MinTokensBeforeSwapUpdated
event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SwapAndLiquify
event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity)
SwapAndLiquifyEnabledUpdated
event SwapAndLiquifyEnabledUpdated(bool enabled)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
No errors.
creation bytecode
0x60806040526001601760156101000a81548160ff02191690831515021790555060405162006bba38038062006bba83398181016040528101906200004491906200081e565b620000546200069a60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38a600d908051906020019062000126929190620006a2565b5089600e90805190602001906200013f929190620006a2565b5088600f81905550600f54600a62000158919062000ab5565b8862000165919062000bf2565b600a81905550600a546000196200017d919062000d6e565b6000196200018c919062000c53565b600b819055508660108190555085601481905550866011819055508460128190555060125460138190555085601581905550600f54600a620001cf919062000ab5565b6103e86005600a54620001e3919062000bf2565b620001ef919062000a22565b620001fb919062000bf2565b601881905550600f54600a62000212919062000ab5565b6127106005600a5462000226919062000bf2565b62000232919062000a22565b6200023e919062000bf2565b60198190555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008490508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031757600080fd5b505afa1580156200032c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003529190620007f2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b557600080fd5b505afa158015620003ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f09190620007f2565b6040518363ffffffff1660e01b81526004016200040f92919062000979565b602060405180830381600087803b1580156200042a57600080fd5b505af11580156200043f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004659190620007f2565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156200061d573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620006809190620009a6565b60405180910390a350505050505050505050505062000eb4565b600033905090565b828054620006b09062000d02565b90600052602060002090601f016020900481019282620006d4576000855562000720565b82601f10620006ef57805160ff191683800117855562000720565b8280016001018555821562000720579182015b828111156200071f57825182559160200191906001019062000702565b5b5090506200072f919062000733565b5090565b5b808211156200074e57600081600090555060010162000734565b5090565b6000620007696200076384620009ec565b620009c3565b9050828152602081018484840111156200078257600080fd5b6200078f84828562000ccc565b509392505050565b600081519050620007a88162000e80565b92915050565b600082601f830112620007c057600080fd5b8151620007d284826020860162000752565b91505092915050565b600081519050620007ec8162000e9a565b92915050565b6000602082840312156200080557600080fd5b6000620008158482850162000797565b91505092915050565b60008060008060008060008060008060006101608c8e0312156200084157600080fd5b60008c015167ffffffffffffffff8111156200085c57600080fd5b6200086a8e828f01620007ae565b9b505060208c015167ffffffffffffffff8111156200088857600080fd5b620008968e828f01620007ae565b9a50506040620008a98e828f01620007db565b9950506060620008bc8e828f01620007db565b9850506080620008cf8e828f01620007db565b97505060a0620008e28e828f01620007db565b96505060c0620008f58e828f01620007db565b95505060e0620009088e828f0162000797565b9450506101006200091c8e828f0162000797565b935050610120620009308e828f0162000797565b925050610140620009448e828f0162000797565b9150509295989b509295989b9093969950565b620009628162000c8e565b82525050565b620009738162000cc2565b82525050565b600060408201905062000990600083018562000957565b6200099f602083018462000957565b9392505050565b6000602082019050620009bd600083018462000968565b92915050565b6000620009cf620009e2565b9050620009dd828262000d38565b919050565b6000604051905090565b600067ffffffffffffffff82111562000a0a5762000a0962000e33565b5b62000a158262000e62565b9050602081019050919050565b600062000a2f8262000cc2565b915062000a3c8362000cc2565b92508262000a4f5762000a4e62000dd5565b5b828204905092915050565b6000808291508390505b600185111562000aac5780860481111562000a845762000a8362000da6565b5b600185161562000a945780820291505b808102905062000aa48562000e73565b945062000a64565b94509492505050565b600062000ac28262000cc2565b915062000acf8362000cc2565b925062000afe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b06565b905092915050565b60008262000b18576001905062000beb565b8162000b28576000905062000beb565b816001811462000b41576002811462000b4c5762000b82565b600191505062000beb565b60ff84111562000b615762000b6062000da6565b5b8360020a91508482111562000b7b5762000b7a62000da6565b5b5062000beb565b5060208310610133831016604e8410600b841016171562000bbc5782820a90508381111562000bb65762000bb562000da6565b5b62000beb565b62000bcb848484600162000a5a565b9250905081840481111562000be55762000be462000da6565b5b81810290505b9392505050565b600062000bff8262000cc2565b915062000c0c8362000cc2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c485762000c4762000da6565b5b828202905092915050565b600062000c608262000cc2565b915062000c6d8362000cc2565b92508282101562000c835762000c8262000da6565b5b828203905092915050565b600062000c9b8262000ca2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000cec57808201518184015260208101905062000ccf565b8381111562000cfc576000848401525b50505050565b6000600282049050600182168062000d1b57607f821691505b6020821081141562000d325762000d3162000e04565b5b50919050565b62000d438262000e62565b810181811067ffffffffffffffff8211171562000d655762000d6462000e33565b5b80604052505050565b600062000d7b8262000cc2565b915062000d888362000cc2565b92508262000d9b5762000d9a62000dd5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000e8b8162000c8e565b811462000e9757600080fd5b50565b62000ea58162000cc2565b811462000eb157600080fd5b50565b615cf68062000ec46000396000f3fe6080604052600436106102765760003560e01c80636bc87c3a1161014f578063a9059cbb116100c1578063d543dbeb1161007a578063d543dbeb14610987578063dd467064146109b0578063dd62ed3e146109d9578063ea2f0b3714610a16578063f0f165af14610a3f578063f2fde38b14610a685761027d565b8063a9059cbb14610875578063aa45026b146108b2578063b2bdfa7b146108dd578063b425bac314610908578063c49b9a8014610933578063d12a76881461095c5761027d565b806388f820201161011357806388f82020146107655780638da5cb5b146107a25780638ee88c53146107cd57806395d89b41146107f6578063a457c2d714610821578063a69df4b51461085e5761027d565b80636bc87c3a1461069057806370a08231146106bb578063715018a6146106f857806379af25a61461070f5780637d1db4a51461073a5761027d565b8063379e2919116101e8578063437823ec116101ac578063437823ec1461056e5780634549b0391461059757806349bd5a5e146105d45780634a74bb02146105ff57806352390c021461062a5780635342acb4146106535761027d565b8063379e29191461048b57806339509351146104b45780633b124fe7146104f15780633bd5d1731461051c57806341cb87fc146105455761027d565b80631694505e1161023a5780631694505e1461036757806318160ddd1461039257806323b872dd146103bd5780632d838119146103fa578063313ce567146104375780633685d419146104625761027d565b8063061c82d01461028257806306fdde03146102ab578063095ea7b3146102d6578063120a06121461031357806313114a9d1461033c5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a49190614c46565b610a91565b005b3480156102b757600080fd5b506102c0610b17565b6040516102cd91906150eb565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f89190614be1565b610ba9565b60405161030a91906150b5565b60405180910390f35b34801561031f57600080fd5b5061033a60048036038101906103359190614b04565b610bc7565b005b34801561034857600080fd5b50610351610c87565b60405161035e91906152ed565b60405180910390f35b34801561037357600080fd5b5061037c610c91565b60405161038991906150d0565b60405180910390f35b34801561039e57600080fd5b506103a7610cb7565b6040516103b491906152ed565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190614b92565b610cc1565b6040516103f191906150b5565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190614c46565b610d9a565b60405161042e91906152ed565b60405180910390f35b34801561044357600080fd5b5061044c610e08565b60405161045991906152ed565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190614b04565b610e12565b005b34801561049757600080fd5b506104b260048036038101906104ad9190614c46565b6111e0565b005b3480156104c057600080fd5b506104db60048036038101906104d69190614be1565b611266565b6040516104e891906150b5565b60405180910390f35b3480156104fd57600080fd5b50610506611319565b60405161051391906152ed565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190614c46565b61131f565b005b34801561055157600080fd5b5061056c60048036038101906105679190614b04565b61149b565b005b34801561057a57600080fd5b5061059560048036038101906105909190614b04565b611728565b005b3480156105a357600080fd5b506105be60048036038101906105b99190614c6f565b6117ff565b6040516105cb91906152ed565b60405180910390f35b3480156105e057600080fd5b506105e9611885565b6040516105f69190615010565b60405180910390f35b34801561060b57600080fd5b506106146118ab565b60405161062191906150b5565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190614b04565b6118be565b005b34801561065f57600080fd5b5061067a60048036038101906106759190614b04565b611b59565b60405161068791906150b5565b60405180910390f35b34801561069c57600080fd5b506106a5611baf565b6040516106b291906152ed565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd9190614b04565b611bb5565b6040516106ef91906152ed565b60405180910390f35b34801561070457600080fd5b5061070d611ca0565b005b34801561071b57600080fd5b50610724611dda565b60405161073191906152ed565b60405180910390f35b34801561074657600080fd5b5061074f611de0565b60405161075c91906152ed565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190614b04565b611de6565b60405161079991906150b5565b60405180910390f35b3480156107ae57600080fd5b506107b7611e3c565b6040516107c49190615010565b60405180910390f35b3480156107d957600080fd5b506107f460048036038101906107ef9190614c46565b611e65565b005b34801561080257600080fd5b5061080b611eeb565b60405161081891906150eb565b60405180910390f35b34801561082d57600080fd5b5061084860048036038101906108439190614be1565b611f7d565b60405161085591906150b5565b60405180910390f35b34801561086a57600080fd5b5061087361204a565b005b34801561088157600080fd5b5061089c60048036038101906108979190614be1565b61221e565b6040516108a991906150b5565b60405180910390f35b3480156108be57600080fd5b506108c761223c565b6040516108d491906152ed565b60405180910390f35b3480156108e957600080fd5b506108f2612242565b6040516108ff9190615010565b60405180910390f35b34801561091457600080fd5b5061091d612266565b60405161092a9190615010565b60405180910390f35b34801561093f57600080fd5b5061095a60048036038101906109559190614c1d565b61228c565b005b34801561096857600080fd5b5061097161235c565b60405161097e91906152ed565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a99190614c46565b612362565b005b3480156109bc57600080fd5b506109d760048036038101906109d29190614c46565b612401565b005b3480156109e557600080fd5b50610a0060048036038101906109fb9190614b56565b6125a4565b604051610a0d91906152ed565b60405180910390f35b348015610a2257600080fd5b50610a3d6004803603810190610a389190614b04565b61262b565b005b348015610a4b57600080fd5b50610a666004803603810190610a619190614c46565b612702565b005b348015610a7457600080fd5b50610a8f6004803603810190610a8a9190614b04565b612788565b005b610a99612931565b73ffffffffffffffffffffffffffffffffffffffff16610ab7611e3c565b73ffffffffffffffffffffffffffffffffffffffff1614610b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b049061520d565b60405180910390fd5b8060108190555050565b6060600d8054610b2690615725565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5290615725565b8015610b9f5780601f10610b7457610100808354040283529160200191610b9f565b820191906000526020600020905b815481529060010190602001808311610b8257829003601f168201915b5050505050905090565b6000610bbd610bb6612931565b8484612939565b6001905092915050565b610bcf612931565b73ffffffffffffffffffffffffffffffffffffffff16610bed611e3c565b73ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a9061520d565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600c54905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b6000610cce848484612b04565b610d8f84610cda612931565b610d8a85604051806060016040528060288152602001615c7460289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d40612931565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e739092919063ffffffff16565b612939565b600190509392505050565b6000600b54821115610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd89061512d565b60405180910390fd5b6000610deb612ec8565b9050610e008184612ef390919063ffffffff16565b915050919050565b6000600f54905090565b610e1a612931565b73ffffffffffffffffffffffffffffffffffffffff16610e38611e3c565b73ffffffffffffffffffffffffffffffffffffffff1614610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e859061520d565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f11906151ad565b60405180910390fd5b60005b6008805490508110156111dc578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610f7b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156111c95760086001600880549050610fd69190615640565b8154811061100d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110611072577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600880548061118f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556111dc565b80806111d490615757565b915050610f1d565b5050565b6111e8612931565b73ffffffffffffffffffffffffffffffffffffffff16611206611e3c565b73ffffffffffffffffffffffffffffffffffffffff161461125c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112539061520d565b60405180910390fd5b8060128190555050565b600061130f611273612931565b8461130a8560056000611284612931565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b612939565b6001905092915050565b60105481565b6000611329612931565b9050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af906152cd565b60405180910390fd5b60006113c383612f1f565b505050505050905061141d81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061147581600b54612f8790919063ffffffff16565b600b8190555061149083600c54612f0990919063ffffffff16565b600c81905550505050565b6114a3612931565b73ffffffffffffffffffffffffffffffffffffffff166114c1611e3c565b73ffffffffffffffffffffffffffffffffffffffff1614611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e9061520d565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561156257600080fd5b505afa158015611576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159a9190614b2d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190614b2d565b6040518363ffffffff1660e01b815260040161165192919061502b565b602060405180830381600087803b15801561166b57600080fd5b505af115801561167f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a39190614b2d565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611730612931565b73ffffffffffffffffffffffffffffffffffffffff1661174e611e3c565b73ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b9061520d565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a54831115611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906151cd565b60405180910390fd5b8161186757600061185684612f1f565b50505050505090508091505061187f565b600061187284612f1f565b5050505050915050809150505b92915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760159054906101000a900460ff1681565b6118c6612931565b73ffffffffffffffffffffffffffffffffffffffff166118e4611e3c565b73ffffffffffffffffffffffffffffffffffffffff161461193a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119319061520d565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119be9061518d565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611a9b57611a57600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d9a565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60145481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c5057600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611c9b565b611c98600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d9a565b90505b919050565b611ca8612931565b73ffffffffffffffffffffffffffffffffffffffff16611cc6611e3c565b73ffffffffffffffffffffffffffffffffffffffff1614611d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d139061520d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025481565b60185481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611e6d612931565b73ffffffffffffffffffffffffffffffffffffffff16611e8b611e3c565b73ffffffffffffffffffffffffffffffffffffffff1614611ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed89061520d565b60405180910390fd5b8060148190555050565b6060600e8054611efa90615725565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2690615725565b8015611f735780601f10611f4857610100808354040283529160200191611f73565b820191906000526020600020905b815481529060010190602001808311611f5657829003601f168201915b5050505050905090565b6000612040611f8a612931565b8461203b85604051806060016040528060258152602001615c9c6025913960056000611fb4612931565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e739092919063ffffffff16565b612939565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d19061524d565b60405180910390fd5b600254421161211e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612115906152ad565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061223261222b612931565b8484612b04565b6001905092915050565b60125481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612294612931565b73ffffffffffffffffffffffffffffffffffffffff166122b2611e3c565b73ffffffffffffffffffffffffffffffffffffffff1614612308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ff9061520d565b60405180910390fd5b80601760156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161235191906150b5565b60405180910390a150565b60195481565b61236a612931565b73ffffffffffffffffffffffffffffffffffffffff16612388611e3c565b73ffffffffffffffffffffffffffffffffffffffff16146123de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d59061520d565b60405180910390fd5b600f54600a6123ed91906154c8565b816123f891906155e6565b60188190555050565b612409612931565b73ffffffffffffffffffffffffffffffffffffffff16612427611e3c565b73ffffffffffffffffffffffffffffffffffffffff161461247d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124749061520d565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612633612931565b73ffffffffffffffffffffffffffffffffffffffff16612651611e3c565b73ffffffffffffffffffffffffffffffffffffffff16146126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e9061520d565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61270a612931565b73ffffffffffffffffffffffffffffffffffffffff16612728611e3c565b73ffffffffffffffffffffffffffffffffffffffff161461277e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127759061520d565b60405180910390fd5b8060198190555050565b612790612931565b73ffffffffffffffffffffffffffffffffffffffff166127ae611e3c565b73ffffffffffffffffffffffffffffffffffffffff1614612804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127fb9061520d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b9061514d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a09061528d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a109061516d565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612af791906152ed565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6b9061526d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb9061510d565b60405180910390fd5b60008111612c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1e9061522d565b60405180910390fd5b612c2f611e3c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612c9d5750612c6d611e3c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ce857601854811115612ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cde906151ed565b60405180910390fd5b5b6000612cf330611bb5565b90506018548110612d045760185490505b60006019548210159050808015612d285750601760149054906101000a900460ff16155b8015612d825750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612d9a5750601760159054906101000a900460ff165b15612dae576019549150612dad82612f9d565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e555750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e5f57600090505b612e6b86868684613073565b505050505050565b6000838311158290612ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb291906150eb565b60405180910390fd5b5082840390509392505050565b6000806000612ed5613384565b91509150612eec8183612ef390919063ffffffff16565b9250505090565b60008183612f019190615444565b905092915050565b60008183612f1791906153ee565b905092915050565b6000806000806000806000806000806000612f398c6136cf565b93509350935093506000806000612f5a8f878787612f55612ec8565b61374e565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b60008183612f959190615640565b905092915050565b6001601760146101000a81548160ff0219169083151502179055506000612fce600283612ef390919063ffffffff16565b90506000612fe58284612f8790919063ffffffff16565b90506000479050612ff583613802565b600061300a8247612f8790919063ffffffff16565b90506130168382613ac6565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161304993929190615362565b60405180910390a1505050506000601760146101000a81548160ff02191690831515021790555050565b8061308157613080613bba565b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156131245750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561313957613134848484613bef565b613370565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156131dc5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156131f1576131ec848484613e5d565b61336f565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132955750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156132aa576132a58484846140cb565b61336e565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561334c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156133615761335c8484846142a4565b61336d565b61336c8484846140cb565b5b5b5b5b8061337e5761337d6145a7565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015613692578260036000600884815481106133e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806134f85750816004600060088481548110613490577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561350f57600b54600a54945094505050506136cb565b6135c56003600060088481548110613550577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612f8790919063ffffffff16565b925061367d6004600060088481548110613608577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612f8790919063ffffffff16565b9150808061368a90615757565b915050613398565b506136aa600a54600b54612ef390919063ffffffff16565b8210156136c257600b54600a549350935050506136cb565b81819350935050505b9091565b60008060008060006136e0866145c4565b905060006136ed876145f5565b905060006136fa88614626565b905060006137358261372785613719888e612f8790919063ffffffff16565b612f8790919063ffffffff16565b612f8790919063ffffffff16565b9050808484849750975097509750505050509193509193565b600080600080613767858a61465790919063ffffffff16565b9050600061377e868a61465790919063ffffffff16565b90506000613795878a61465790919063ffffffff16565b905060006137ac888a61465790919063ffffffff16565b905060006137e7826137d9856137cb888a612f8790919063ffffffff16565b612f8790919063ffffffff16565b612f8790919063ffffffff16565b90508481859750975097505050505050955095509592505050565b6000600267ffffffffffffffff811115613845577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138735781602001602082028036833780820191505090505b50905030816000815181106138b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561395357600080fd5b505afa158015613967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061398b9190614b2d565b816001815181106139c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a2c30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612939565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a90959493929190615308565b600060405180830381600087803b158015613aaa57600080fd5b505af1158015613abe573d6000803e3d6000fd5b505050505050565b613af330601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612939565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b3f611e3c565b426040518863ffffffff1660e01b8152600401613b6196959493929190615054565b6060604051808303818588803b158015613b7a57600080fd5b505af1158015613b8e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bb39190614cab565b5050505050565b601054601181905550601254601381905550601454601581905550600060108190555060006012819055506000601481905550565b6000806000806000806000613c0388612f1f565b9650965096509650965096509650613c6388600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613cf887600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d8d86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613dd98261466d565b613de281614812565b613dec8584614a61565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051613e4991906152ed565b60405180910390a350505050505050505050565b6000806000806000806000613e7188612f1f565b9650965096509650965096509650613ed187600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f6684600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ffb86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140478261466d565b61405081614812565b61405a8584614a61565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516140b791906152ed565b60405180910390a350505050505050505050565b60008060008060008060006140df88612f1f565b965096509650965096509650965061413f87600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506141d486600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506142208261466d565b61422981614812565b6142338584614a61565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161429091906152ed565b60405180910390a350505050505050505050565b60008060008060008060006142b888612f1f565b965096509650965096509650965061431888600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143ad87600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061444284600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506144d786600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145238261466d565b61452c81614812565b6145368584614a61565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161459391906152ed565b60405180910390a350505050505050505050565b601154601081905550601354601281905550601554601481905550565b60006145ee60646145e06010548561465790919063ffffffff16565b612ef390919063ffffffff16565b9050919050565b600061461f60646146116014548561465790919063ffffffff16565b612ef390919063ffffffff16565b9050919050565b600061465060646146426012548561465790919063ffffffff16565b612ef390919063ffffffff16565b9050919050565b6000818361466591906155e6565b905092915050565b6000614677612ec8565b9050600061468e828461465790919063ffffffff16565b90506146e281600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561480d576147c983600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b600061481c612ec8565b90506000614833828461465790919063ffffffff16565b90506148a98160036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b60036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614a5c576149f68360046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0990919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b614a7682600b54612f8790919063ffffffff16565b600b81905550614a9181600c54612f0990919063ffffffff16565b600c819055505050565b600081359050614aaa81615c2e565b92915050565b600081519050614abf81615c2e565b92915050565b600081359050614ad481615c45565b92915050565b600081359050614ae981615c5c565b92915050565b600081519050614afe81615c5c565b92915050565b600060208284031215614b1657600080fd5b6000614b2484828501614a9b565b91505092915050565b600060208284031215614b3f57600080fd5b6000614b4d84828501614ab0565b91505092915050565b60008060408385031215614b6957600080fd5b6000614b7785828601614a9b565b9250506020614b8885828601614a9b565b9150509250929050565b600080600060608486031215614ba757600080fd5b6000614bb586828701614a9b565b9350506020614bc686828701614a9b565b9250506040614bd786828701614ada565b9150509250925092565b60008060408385031215614bf457600080fd5b6000614c0285828601614a9b565b9250506020614c1385828601614ada565b9150509250929050565b600060208284031215614c2f57600080fd5b6000614c3d84828501614ac5565b91505092915050565b600060208284031215614c5857600080fd5b6000614c6684828501614ada565b91505092915050565b60008060408385031215614c8257600080fd5b6000614c9085828601614ada565b9250506020614ca185828601614ac5565b9150509250929050565b600080600060608486031215614cc057600080fd5b6000614cce86828701614aef565b9350506020614cdf86828701614aef565b9250506040614cf086828701614aef565b9150509250925092565b6000614d068383614d12565b60208301905092915050565b614d1b81615674565b82525050565b614d2a81615674565b82525050565b6000614d3b826153a9565b614d4581856153cc565b9350614d5083615399565b8060005b83811015614d81578151614d688882614cfa565b9750614d73836153bf565b925050600181019050614d54565b5085935050505092915050565b614d9781615686565b82525050565b614da6816156bc565b82525050565b614db5816156e0565b82525050565b6000614dc6826153b4565b614dd081856153dd565b9350614de08185602086016156f2565b614de98161582d565b840191505092915050565b6000614e016023836153dd565b9150614e0c8261584b565b604082019050919050565b6000614e24602a836153dd565b9150614e2f8261589a565b604082019050919050565b6000614e476026836153dd565b9150614e52826158e9565b604082019050919050565b6000614e6a6022836153dd565b9150614e7582615938565b604082019050919050565b6000614e8d601b836153dd565b9150614e9882615987565b602082019050919050565b6000614eb0601b836153dd565b9150614ebb826159b0565b602082019050919050565b6000614ed3601f836153dd565b9150614ede826159d9565b602082019050919050565b6000614ef66028836153dd565b9150614f0182615a02565b604082019050919050565b6000614f196020836153dd565b9150614f2482615a51565b602082019050919050565b6000614f3c6029836153dd565b9150614f4782615a7a565b604082019050919050565b6000614f5f6024836153dd565b9150614f6a82615ac9565b604082019050919050565b6000614f826025836153dd565b9150614f8d82615b18565b604082019050919050565b6000614fa56024836153dd565b9150614fb082615b67565b604082019050919050565b6000614fc86013836153dd565b9150614fd382615bb6565b602082019050919050565b6000614feb602c836153dd565b9150614ff682615bdf565b604082019050919050565b61500a816156b2565b82525050565b60006020820190506150256000830184614d21565b92915050565b60006040820190506150406000830185614d21565b61504d6020830184614d21565b9392505050565b600060c0820190506150696000830189614d21565b6150766020830188615001565b6150836040830187614dac565b6150906060830186614dac565b61509d6080830185614d21565b6150aa60a0830184615001565b979650505050505050565b60006020820190506150ca6000830184614d8e565b92915050565b60006020820190506150e56000830184614d9d565b92915050565b600060208201905081810360008301526151058184614dbb565b905092915050565b6000602082019050818103600083015261512681614df4565b9050919050565b6000602082019050818103600083015261514681614e17565b9050919050565b6000602082019050818103600083015261516681614e3a565b9050919050565b6000602082019050818103600083015261518681614e5d565b9050919050565b600060208201905081810360008301526151a681614e80565b9050919050565b600060208201905081810360008301526151c681614ea3565b9050919050565b600060208201905081810360008301526151e681614ec6565b9050919050565b6000602082019050818103600083015261520681614ee9565b9050919050565b6000602082019050818103600083015261522681614f0c565b9050919050565b6000602082019050818103600083015261524681614f2f565b9050919050565b6000602082019050818103600083015261526681614f52565b9050919050565b6000602082019050818103600083015261528681614f75565b9050919050565b600060208201905081810360008301526152a681614f98565b9050919050565b600060208201905081810360008301526152c681614fbb565b9050919050565b600060208201905081810360008301526152e681614fde565b9050919050565b60006020820190506153026000830184615001565b92915050565b600060a08201905061531d6000830188615001565b61532a6020830187614dac565b818103604083015261533c8186614d30565b905061534b6060830185614d21565b6153586080830184615001565b9695505050505050565b60006060820190506153776000830186615001565b6153846020830185615001565b6153916040830184615001565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006153f9826156b2565b9150615404836156b2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615439576154386157a0565b5b828201905092915050565b600061544f826156b2565b915061545a836156b2565b92508261546a576154696157cf565b5b828204905092915050565b6000808291508390505b60018511156154bf5780860481111561549b5761549a6157a0565b5b60018516156154aa5780820291505b80810290506154b88561583e565b945061547f565b94509492505050565b60006154d3826156b2565b91506154de836156b2565b925061550b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484615513565b905092915050565b60008261552357600190506155df565b8161553157600090506155df565b8160018114615547576002811461555157615580565b60019150506155df565b60ff841115615563576155626157a0565b5b8360020a91508482111561557a576155796157a0565b5b506155df565b5060208310610133831016604e8410600b84101617156155b55782820a9050838111156155b0576155af6157a0565b5b6155df565b6155c28484846001615475565b925090508184048111156155d9576155d86157a0565b5b81810290505b9392505050565b60006155f1826156b2565b91506155fc836156b2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615635576156346157a0565b5b828202905092915050565b600061564b826156b2565b9150615656836156b2565b925082821015615669576156686157a0565b5b828203905092915050565b600061567f82615692565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006156c7826156ce565b9050919050565b60006156d982615692565b9050919050565b60006156eb826156b2565b9050919050565b60005b838110156157105780820151818401526020810190506156f5565b8381111561571f576000848401525b50505050565b6000600282049050600182168061573d57607f821691505b60208210811415615751576157506157fe565b5b50919050565b6000615762826156b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615795576157946157a0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b2e00000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b65642e00000000000000000000000000600082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b615c3781615674565b8114615c4257600080fd5b50565b615c4e81615686565b8114615c5957600080fd5b50565b615c65816156b2565b8114615c7057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122056f7484a9fb14154684c8ce47d0b6723898647ad85805ac691f69f8856322fe864736f6c63430008040033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000004b5ca4e4e51576d081b637a7057bdc0f9079161e0000000000000000000000004b5ca4e4e51576d081b637a7057bdc0f9079161e0000000000000000000000004b5ca4e4e51576d081b637a7057bdc0f9079161e000000000000000000000000000000000000000000000000000000000000001042616e616e61205065656c20436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005504e414e41000000000000000000000000000000000000000000000000000000