{"abi":[{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"buildSalesConfigForPremint","inputs":[{"name":"config","type":"tuple","internalType":"struct IERC20Minter.PremintSalesConfig","components":[{"name":"duration","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC20Minter.SalesConfig","components":[{"name":"saleStart","type":"uint64","internalType":"uint64"},{"name":"saleEnd","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"cancelOwnershipTransfer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computePaidMintRewards","inputs":[{"name":"totalReward","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC20Minter.RewardsSettings","components":[{"name":"createReferralReward","type":"uint256","internalType":"uint256"},{"name":"mintReferralReward","type":"uint256","internalType":"uint256"},{"name":"zoraReward","type":"uint256","internalType":"uint256"},{"name":"firstMinterReward","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"computeReward","inputs":[{"name":"totalReward","type":"uint256","internalType":"uint256"},{"name":"rewardPct","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"computeTotalReward","inputs":[{"name":"totalValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"contractName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"contractURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"contractVersion","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"ethRewardAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCreateReferral","inputs":[{"name":"tokenContract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"createReferral","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getERC20MinterConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC20Minter.ERC20MinterConfig","components":[{"name":"zoraRewardRecipientAddress","type":"address","internalType":"address"},{"name":"rewardRecipientPercentage","type":"uint256","internalType":"uint256"},{"name":"ethReward","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getFirstMinter","inputs":[{"name":"tokenContract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"firstMinter","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMintedPerWallet","inputs":[{"name":"tokenContract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"wallet","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_zoraRewardRecipientAddress","type":"address","internalType":"address"},{"name":"_owner","type":"address","internalType":"address"},{"name":"_rewardPct","type":"uint256","internalType":"uint256"},{"name":"_ethReward","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"mintTo","type":"address","internalType":"address"},{"name":"quantity","type":"uint256","internalType":"uint256"},{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"totalValue","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"mintReferral","type":"address","internalType":"address"},{"name":"comment","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"minterConfig","inputs":[],"outputs":[{"name":"zoraRewardRecipientAddress","type":"address","internalType":"address"},{"name":"rewardRecipientPercentage","type":"uint256","internalType":"uint256"},{"name":"ethReward","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"requestMint","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ICreatorCommands.CommandSet","components":[{"name":"commands","type":"tuple[]","internalType":"struct ICreatorCommands.Command[]","components":[{"name":"method","type":"uint8","internalType":"enum ICreatorCommands.CreatorActions"},{"name":"args","type":"bytes","internalType":"bytes"}]},{"name":"at","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"resetSale","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resignOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferOwnership","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sale","inputs":[{"name":"tokenContract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC20Minter.SalesConfig","components":[{"name":"saleStart","type":"uint64","internalType":"uint64"},{"name":"saleEnd","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"setERC20MinterConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct IERC20Minter.ERC20MinterConfig","components":[{"name":"zoraRewardRecipientAddress","type":"address","internalType":"address"},{"name":"rewardRecipientPercentage","type":"uint256","internalType":"uint256"},{"name":"ethReward","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPremintSale","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"encodedPremintSalesConfig","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSale","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"salesConfig","type":"tuple","internalType":"struct IERC20Minter.SalesConfig","components":[{"name":"saleStart","type":"uint64","internalType":"uint64"},{"name":"saleEnd","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"totalRewardPct","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ERC20MinterConfigSet","inputs":[{"name":"config","type":"tuple","indexed":false,"internalType":"struct IERC20Minter.ERC20MinterConfig","components":[{"name":"zoraRewardRecipientAddress","type":"address","internalType":"address"},{"name":"rewardRecipientPercentage","type":"uint256","internalType":"uint256"},{"name":"ethReward","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"ERC20RewardsDeposit","inputs":[{"name":"createReferral","type":"address","indexed":true,"internalType":"address"},{"name":"mintReferral","type":"address","indexed":true,"internalType":"address"},{"name":"firstMinter","type":"address","indexed":true,"internalType":"address"},{"name":"zora","type":"address","indexed":false,"internalType":"address"},{"name":"collection","type":"address","indexed":false,"internalType":"address"},{"name":"currency","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"createReferralReward","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintReferralReward","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"firstMinterReward","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"zoraReward","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"MintComment","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"tokenContract","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quantity","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"comment","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OwnerCanceled","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"canceledOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnerPending","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnerUpdated","inputs":[{"name":"prevOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SaleSet","inputs":[{"name":"mediaContract","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"salesConfig","type":"tuple","indexed":false,"internalType":"struct IERC20Minter.SalesConfig","components":[{"name":"saleStart","type":"uint64","internalType":"uint64"},{"name":"saleEnd","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"error","name":"AddressZero","inputs":[]},{"type":"error","name":"ERC20TransferSlippage","inputs":[]},{"type":"error","name":"FailedToSendEthReward","inputs":[]},{"type":"error","name":"INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING","inputs":[]},{"type":"error","name":"InvalidCurrency","inputs":[]},{"type":"error","name":"InvalidETHValue","inputs":[{"name":"expectedValue","type":"uint256","internalType":"uint256"},{"name":"actualValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidValue","inputs":[]},{"type":"error","name":"ONLY_OWNER","inputs":[]},{"type":"error","name":"ONLY_PENDING_OWNER","inputs":[]},{"type":"error","name":"OWNER_CANNOT_BE_ZERO_ADDRESS","inputs":[]},{"type":"error","name":"PricePerTokenTooLow","inputs":[]},{"type":"error","name":"RequestMintInvalidUseMint","inputs":[]},{"type":"error","name":"SaleEnded","inputs":[]},{"type":"error","name":"SaleHasNotStarted","inputs":[]},{"type":"error","name":"UserExceedsMintLimit","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"limit","type":"uint256","internalType":"uint256"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"WrongValueSent","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506001600081905550614759806100286000396000f3fe60806040526004361061015d5760003560e01c806301ffc9a71461016257806319b45c4f1461019f5780632206a675146101c857806323452b9c146102055780632492f8871461021c5780632f8dccbc14610245578063395db2cd146102725780634132239b1461029b5780635c046084146102d85780635d759bd814610315578063611efc091461035257806362b602451461038f5780636890e5b3146103ba57806375d0c0dc146103f757806379ba5097146104225780637b49ff2c146104395780638da5cb5b1461047657806396325a5a146104a1578063a0a8e460146104cc578063a8094d05146104f7578063ac973d5b14610520578063ce35b8af1461055d578063e1bf91e914610586578063e2ebba29146105b1578063e30c3978146105ee578063e8a3d48514610619578063eb990c5914610644578063ed0c70911461066d578063f2fde38b14610684578063f54f216a146106ad575b600080fd5b34801561016e57600080fd5b5061018960048036038101906101849190613114565b6106c9565b604051610196919061315c565b60405180910390f35b3480156101ab57600080fd5b506101c660048036038101906101c191906131ad565b610763565b005b3480156101d457600080fd5b506101ef60048036038101906101ea9190613395565b6108fe565b6040516101fc919061346a565b60405180910390f35b34801561021157600080fd5b5061021a6109d3565b005b34801561022857600080fd5b50610243600480360381019061023e91906134e9565b610b1f565b005b34801561025157600080fd5b5061025a610bb2565b60405161026993929190613534565b60405180910390f35b34801561027e57600080fd5b506102996004803603810190610294919061356b565b610bea565b005b3480156102a757600080fd5b506102c260048036038101906102bd91906131ad565b610d99565b6040516102cf9190613598565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906131ad565b610dbf565b60405161030c9190613608565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613623565b610e4e565b6040516103499190613663565b60405180910390f35b34801561035e57600080fd5b5061037960048036038101906103749190613623565b610f30565b604051610386919061346a565b60405180910390f35b34801561039b57600080fd5b506103a46110e7565b6040516103b19190613598565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc91906136e3565b6110f4565b6040516103ee91906139af565b60405180910390f35b34801561040357600080fd5b5061040c61112e565b6040516104199190613a26565b60405180910390f35b34801561042e57600080fd5b5061043761116b565b005b34801561044557600080fd5b50610460600480360381019061045b9190613a48565b611279565b60405161046d9190613598565b60405180910390f35b34801561048257600080fd5b5061048b611312565b6040516104989190613663565b60405180910390f35b3480156104ad57600080fd5b506104b661133c565b6040516104c39190613598565b60405180910390f35b3480156104d857600080fd5b506104e1611349565b6040516104ee9190613a26565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190613a9b565b611386565b005b34801561052c57600080fd5b5061054760048036038101906105429190613623565b6113b7565b6040516105549190613663565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190613b9b565b611519565b005b34801561059257600080fd5b5061059b61173f565b6040516105a89190613c1d565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190613c38565b6117c3565b6040516105e59190613598565b60405180910390f35b3480156105fa57600080fd5b506106036117e8565b6040516106109190613663565b60405180910390f35b34801561062557600080fd5b5061062e611812565b60405161063b9190613a26565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190613c78565b611832565b005b34801561067957600080fd5b506106826119ae565b005b34801561069057600080fd5b506106ab60048036038101906106a6919061356b565b611a41565b005b6106c760048036038101906106c29190613d35565b611b3c565b005b60006106d482611fe5565b806106e457506106e382611fe5565b5b806106f457506106f38261204f565b5b8061075c57507fa8094d05000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b603a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828152602001908152602001600020600080820160006101000a81549067ffffffffffffffff02191690556000820160086101000a81549067ffffffffffffffff02191690556000820160106101000a81549067ffffffffffffffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050803373ffffffffffffffffffffffffffffffffffffffff167f5a10ca3dd9f8e42a050c7f379d07bacd686570baf0b1c8574362fc474a9aa1a0603a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206040516108f39190613fa3565b60405180910390a350565b610906612faf565b6000429050600080846000015167ffffffffffffffff1614610937578360000151826109329190613fed565b610941565b67ffffffffffffffff5b90506040518060c001604052808367ffffffffffffffff1681526020018267ffffffffffffffff168152602001856020015167ffffffffffffffff16815260200185604001518152602001856060015173ffffffffffffffffffffffffffffffffffffffff168152602001856080015173ffffffffffffffffffffffffffffffffffffffff1681525092505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a5a576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f682679deecef4dcd49674845cc1e3a075fea9073680aa445a8207d5a4bdea3da60405160405180910390a3600360006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba6576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610baf81612121565b50565b60378060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c51576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd8576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4f2638f5949b9614ef8d5e268cb51348ad7f434a34812bf64b6e95014fbd357e60405160405180910390a35050565b6000606460376001015483610dae9190614029565b610db8919061409a565b9050919050565b610dc761302f565b6000610dd7836301b3f7086117c3565b90506000610de9846301b3f7086117c3565b90506000610dfa8562d91c146117c3565b90506000818385610e0b91906140cb565b610e1591906140cb565b86610e2091906140ff565b9050604051806080016040528085815260200184815260200182815260200183815250945050505050919050565b60008273ffffffffffffffffffffffffffffffffffffffff16637dafae4d836040518263ffffffff1660e01b8152600401610e899190613598565b602060405180830381865afa925050508015610ec357506040513d601f19601f82011682018060405250810190610ec09190614148565b60015b15610ecd57809150505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f2a57603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b92915050565b610f38612faf565b603a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206040518060c00160405290816000820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b6000603760010154905090565b6110fc613057565b6040517f9274ec1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60606040518060400160405280600c81526020017f4552433230204d696e7465720000000000000000000000000000000000000000815250905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111f2576040517f065cd53100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a361127733612208565b565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509392505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603760020154905090565b60606040518060400160405280600581526020017f322e302e30000000000000000000000000000000000000000000000000000000815250905090565b600082828101906113979190613395565b905060006113a4826108fe565b90506113b08582611519565b5050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16639ebb8324836040518263ffffffff1660e01b81526004016113f29190613598565b602060405180830381865afa92505050801561142c57506040513d601f19601f820116820180604052508101906114299190614148565b60015b61145d57603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611513565b809150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611511578373ffffffffffffffffffffffffffffffffffffffff16635e4e0404846040518263ffffffff1660e01b81526004016114cd9190613598565b602060405180830381865afa1580156114ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150e9190614148565b91505b505b92915050565b6115268160a00151612344565b6115338160800151612344565b61271081606001511015611573576040517f835de65800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80603a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506060820151816001015560808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050813373ffffffffffffffffffffffffffffffffffffffff167f5a10ca3dd9f8e42a050c7f379d07bacd686570baf0b1c8574362fc474a9aa1a083604051611733919061346a565b60405180910390a35050565b611747613071565b60376040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481525050905090565b60006305f5e10082846117d69190614029565b6117e0919061409a565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060600160405280602981526020016146fb60299139905090565b6000603660019054906101000a900460ff1615905080158061186757506000603660009054906101000a900460ff1660ff1614155b80156118965750611877306123ad565b8061189557506001603660009054906101000a900460ff1660ff1614155b5b156118cd576040517f7ab8448200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001603660006101000a81548160ff021916908360ff160217905550801561190b576001603660016101000a81548160ff0219169083151502179055505b611914846123d0565b61194d60405180606001604052808773ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815250612121565b80156119a7576000603660016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161199e91906141c7565b60405180910390a15b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a35576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a3f6000612208565b565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aa8576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2f576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b3882612208565b5050565b611b4461251d565b87603760020154611b559190614029565b3414611baa5787603760020154611b6c9190614029565b346040517f3d2eb44d000000000000000000000000000000000000000000000000000000008152600401611ba19291906141e2565b60405180910390fd5b6000603a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008881526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611cad57508473ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611ce4576040517ff599342800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b888160010154611cf49190614029565b8614611d2c576040517f2f4613eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16421015611d88576040517fe8c4db8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060000160089054906101000a900467ffffffffffffffff1667ffffffffffffffff16421115611de4576040517f0bd8a3eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161115611e3f57611e3e8160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff168a8a8a8e61256c565b5b611e49858761277a565b8773ffffffffffffffffffffffffffffffffffffffff1663c238d1ee8b898c6040518463ffffffff1660e01b8152600401611e8693929190614242565b600060405180830381600087803b158015611ea057600080fd5b505af1158015611eb4573d6000803e3d6000fd5b505050506000611ec387610d99565b9050611ed281878a8c896128ed565b611edb34612b1d565b611f598260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168289611f0f91906140ff565b8460030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b6000848490501115611fd057878973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fb9490aee663998179ad13f9e1c1eb6189c71ad1a9ec87f33ad2766f98d9a268a8d8888604051611fc7939291906142c8565b60405180910390a45b5050611fda612c0f565b505050505050505050565b60007f7b49ff2c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60007f6890e5b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061211a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b61212e8160000151612344565b60648160200151111561216d576040517faa7feadc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80603760008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201559050507f50f3599c2143c70cf6332b9db855f5f08c572597a947ff20d91fc7d6e5df6b20816040516121fd9190613c1d565b60405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461234157600360006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123aa576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612437576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603660019054906101000a900460ff1661247d576040517f96bfb10000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a35050565b600260005403612562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255990614346565b60405180910390fd5b6002600081905550565b83600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461260991906140cb565b9250508190555084600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612773578085600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040517fe2d9156400000000000000000000000000000000000000000000000000000000815260040161276a93929190613534565b60405180910390fd5b5050505050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016127b59190613663565b602060405180830381865afa1580156127d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f6919061437b565b90506128253330848673ffffffffffffffffffffffffffffffffffffffff16612c19909392919063ffffffff16565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016128609190613663565b602060405180830381865afa15801561287d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a1919061437b565b90508083836128b091906140cb565b146128e7576040517fdc5b522d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60006128f886610dbf565b905060006129068486610e4e565b9050600061291485876113b7565b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361297357603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693505b6129a28284600001518973ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b6129d18184606001518973ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b612a008484602001518973ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b612a54603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684604001518973ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f6d43fd9d85f88450d1b777b5e7d58dec9b8dd36d77bf01bc5e5423d4a92d2246603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898c8c8a600001518b602001518c606001518d60400151604051612b0b9897969594939291906143a8565b60405180910390a45050505050505050565b612b50603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826204baf0612ca2565b612b86576040517f77ca954d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b612c0a8363a9059cbb60e01b8484604051602401612ba8929190614426565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d1a565b505050565b6001600081905550565b612c9c846323b872dd60e01b858585604051602401612c3a9392919061444f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d1a565b50505050565b60008373ffffffffffffffffffffffffffffffffffffffff16838390604051612cca906144b4565b600060405180830381858888f193505050503d8060008114612d08576040519150601f19603f3d011682016040523d82523d6000602084013e612d0d565b606091505b5050809150509392505050565b6000612d7c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612de29092919063ffffffff16565b9050600081511480612d9e575080806020019051810190612d9d91906144f5565b5b612ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd490614594565b60405180910390fd5b505050565b6060612df18484600085612dfa565b90509392505050565b606082471015612e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3690614626565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612e689190614677565b60006040518083038185875af1925050503d8060008114612ea5576040519150601f19603f3d011682016040523d82523d6000602084013e612eaa565b606091505b5091509150612ebb87838387612ec7565b92505050949350505050565b60608315612f29576000835103612f2157612ee185612f3c565b612f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f17906146da565b60405180910390fd5b5b829050612f34565b612f338383612f5f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115612f725781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa69190613a26565b60405180910390fd5b6040518060c00160405280600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b604051806040016040528060608152602001600081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6130f1816130bc565b81146130fc57600080fd5b50565b60008135905061310e816130e8565b92915050565b60006020828403121561312a576131296130b2565b5b6000613138848285016130ff565b91505092915050565b60008115159050919050565b61315681613141565b82525050565b6000602082019050613171600083018461314d565b92915050565b6000819050919050565b61318a81613177565b811461319557600080fd5b50565b6000813590506131a781613181565b92915050565b6000602082840312156131c3576131c26130b2565b5b60006131d184828501613198565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613228826131df565b810181811067ffffffffffffffff82111715613247576132466131f0565b5b80604052505050565b600061325a6130a8565b9050613266828261321f565b919050565b600067ffffffffffffffff82169050919050565b6132888161326b565b811461329357600080fd5b50565b6000813590506132a58161327f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132d6826132ab565b9050919050565b6132e6816132cb565b81146132f157600080fd5b50565b600081359050613303816132dd565b92915050565b600060a0828403121561331f5761331e6131da565b5b61332960a0613250565b9050600061333984828501613296565b600083015250602061334d84828501613296565b602083015250604061336184828501613198565b6040830152506060613375848285016132f4565b6060830152506080613389848285016132f4565b60808301525092915050565b600060a082840312156133ab576133aa6130b2565b5b60006133b984828501613309565b91505092915050565b6133cb8161326b565b82525050565b6133da81613177565b82525050565b6133e9816132cb565b82525050565b60c08201600082015161340560008501826133c2565b50602082015161341860208501826133c2565b50604082015161342b60408501826133c2565b50606082015161343e60608501826133d1565b50608082015161345160808501826133e0565b5060a082015161346460a08501826133e0565b50505050565b600060c08201905061347f60008301846133ef565b92915050565b60006060828403121561349b5761349a6131da565b5b6134a56060613250565b905060006134b5848285016132f4565b60008301525060206134c984828501613198565b60208301525060406134dd84828501613198565b60408301525092915050565b6000606082840312156134ff576134fe6130b2565b5b600061350d84828501613485565b91505092915050565b61351f816132cb565b82525050565b61352e81613177565b82525050565b60006060820190506135496000830186613516565b6135566020830185613525565b6135636040830184613525565b949350505050565b600060208284031215613581576135806130b2565b5b600061358f848285016132f4565b91505092915050565b60006020820190506135ad6000830184613525565b92915050565b6080820160008201516135c960008501826133d1565b5060208201516135dc60208501826133d1565b5060408201516135ef60408501826133d1565b50606082015161360260608501826133d1565b50505050565b600060808201905061361d60008301846135b3565b92915050565b6000806040838503121561363a576136396130b2565b5b6000613648858286016132f4565b925050602061365985828601613198565b9150509250929050565b60006020820190506136786000830184613516565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136a3576136a261367e565b5b8235905067ffffffffffffffff8111156136c0576136bf613683565b5b6020830191508360018202830111156136dc576136db613688565b5b9250929050565b60008060008060008060a08789031215613700576136ff6130b2565b5b600061370e89828a016132f4565b965050602061371f89828a01613198565b955050604061373089828a01613198565b945050606061374189828a01613198565b935050608087013567ffffffffffffffff811115613762576137616130b7565b5b61376e89828a0161368d565b92509250509295509295509295565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106137e9576137e86137a9565b5b50565b60008190506137fa826137d8565b919050565b600061380a826137ec565b9050919050565b61381a816137ff565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561385a57808201518184015260208101905061383f565b60008484015250505050565b600061387182613820565b61387b818561382b565b935061388b81856020860161383c565b613894816131df565b840191505092915050565b60006040830160008301516138b76000860182613811565b50602083015184820360208601526138cf8282613866565b9150508091505092915050565b60006138e8838361389f565b905092915050565b6000602082019050919050565b60006139088261377d565b6139128185613788565b93508360208202850161392485613799565b8060005b85811015613960578484038952815161394185826138dc565b945061394c836138f0565b925060208a01995050600181019050613928565b50829750879550505050505092915050565b6000604083016000830151848203600086015261398f82826138fd565b91505060208301516139a460208601826133d1565b508091505092915050565b600060208201905081810360008301526139c98184613972565b905092915050565b600081519050919050565b600082825260208201905092915050565b60006139f8826139d1565b613a0281856139dc565b9350613a1281856020860161383c565b613a1b816131df565b840191505092915050565b60006020820190508181036000830152613a4081846139ed565b905092915050565b600080600060608486031215613a6157613a606130b2565b5b6000613a6f868287016132f4565b9350506020613a8086828701613198565b9250506040613a91868287016132f4565b9150509250925092565b600080600060408486031215613ab457613ab36130b2565b5b6000613ac286828701613198565b935050602084013567ffffffffffffffff811115613ae357613ae26130b7565b5b613aef8682870161368d565b92509250509250925092565b600060c08284031215613b1157613b106131da565b5b613b1b60c0613250565b90506000613b2b84828501613296565b6000830152506020613b3f84828501613296565b6020830152506040613b5384828501613296565b6040830152506060613b6784828501613198565b6060830152506080613b7b848285016132f4565b60808301525060a0613b8f848285016132f4565b60a08301525092915050565b60008060e08385031215613bb257613bb16130b2565b5b6000613bc085828601613198565b9250506020613bd185828601613afb565b9150509250929050565b606082016000820151613bf160008501826133e0565b506020820151613c0460208501826133d1565b506040820151613c1760408501826133d1565b50505050565b6000606082019050613c326000830184613bdb565b92915050565b60008060408385031215613c4f57613c4e6130b2565b5b6000613c5d85828601613198565b9250506020613c6e85828601613198565b9150509250929050565b60008060008060808587031215613c9257613c916130b2565b5b6000613ca0878288016132f4565b9450506020613cb1878288016132f4565b9350506040613cc287828801613198565b9250506060613cd387828801613198565b91505092959194509250565b60008083601f840112613cf557613cf461367e565b5b8235905067ffffffffffffffff811115613d1257613d11613683565b5b602083019150836001820283011115613d2e57613d2d613688565b5b9250929050565b60008060008060008060008060006101008a8c031215613d5857613d576130b2565b5b6000613d668c828d016132f4565b9950506020613d778c828d01613198565b9850506040613d888c828d016132f4565b9750506060613d998c828d01613198565b9650506080613daa8c828d01613198565b95505060a0613dbb8c828d016132f4565b94505060c0613dcc8c828d016132f4565b93505060e08a013567ffffffffffffffff811115613ded57613dec6130b7565b5b613df98c828d01613cdf565b92509250509295985092959850929598565b60008160001c9050919050565b600067ffffffffffffffff82169050919050565b6000613e3f613e3a83613e0b565b613e18565b9050919050565b60008160401c9050919050565b6000613e66613e6183613e46565b613e18565b9050919050565b60008160801c9050919050565b6000613e8d613e8883613e6d565b613e18565b9050919050565b6000819050919050565b6000613eb1613eac83613e0b565b613e94565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613eeb613ee683613e0b565b613eb8565b9050919050565b60c082016000808301549050613f0781613e2c565b613f1460008601826133c2565b50613f1e81613e53565b613f2b60208601826133c2565b50613f3581613e7a565b613f4260408601826133c2565b5060018301549050613f5381613e9e565b613f6060608601826133d1565b5060028301549050613f7181613ed8565b613f7e60808601826133e0565b5060038301549050613f8f81613ed8565b613f9c60a08601826133e0565b5050505050565b600060c082019050613fb86000830184613ef2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ff88261326b565b91506140038361326b565b9250828201905067ffffffffffffffff81111561402357614022613fbe565b5b92915050565b600061403482613177565b915061403f83613177565b925082820261404d81613177565b9150828204841483151761406457614063613fbe565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140a582613177565b91506140b083613177565b9250826140c0576140bf61406b565b5b828204905092915050565b60006140d682613177565b91506140e183613177565b92508282019050808211156140f9576140f8613fbe565b5b92915050565b600061410a82613177565b915061411583613177565b925082820390508181111561412d5761412c613fbe565b5b92915050565b600081519050614142816132dd565b92915050565b60006020828403121561415e5761415d6130b2565b5b600061416c84828501614133565b91505092915050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b60006141b16141ac6141a784614175565b61418c565b61417f565b9050919050565b6141c181614196565b82525050565b60006020820190506141dc60008301846141b8565b92915050565b60006040820190506141f76000830185613525565b6142046020830184613525565b9392505050565b600082825260208201905092915050565b50565b600061422c60008361420b565b91506142378261421c565b600082019050919050565b60006080820190506142576000830186613516565b6142646020830185613525565b6142716040830184613525565b81810360608301526142828161421f565b9050949350505050565b82818337600083830152505050565b60006142a783856139dc565b93506142b483858461428c565b6142bd836131df565b840190509392505050565b60006040820190506142dd6000830186613525565b81810360208301526142f081848661429b565b9050949350505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000614330601f836139dc565b915061433b826142fa565b602082019050919050565b6000602082019050818103600083015261435f81614323565b9050919050565b60008151905061437581613181565b92915050565b600060208284031215614391576143906130b2565b5b600061439f84828501614366565b91505092915050565b6000610100820190506143be600083018b613516565b6143cb602083018a613516565b6143d86040830189613516565b6143e56060830188613525565b6143f26080830187613525565b6143ff60a0830186613525565b61440c60c0830185613525565b61441960e0830184613525565b9998505050505050505050565b600060408201905061443b6000830185613516565b6144486020830184613525565b9392505050565b60006060820190506144646000830186613516565b6144716020830185613516565b61447e6040830184613525565b949350505050565b600081905092915050565b600061449e600083614486565b91506144a98261421c565b600082019050919050565b60006144bf82614491565b9150819050919050565b6144d281613141565b81146144dd57600080fd5b50565b6000815190506144ef816144c9565b92915050565b60006020828403121561450b5761450a6130b2565b5b6000614519848285016144e0565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061457e602a836139dc565b915061458982614522565b604082019050919050565b600060208201905081810360008301526145ad81614571565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006146106026836139dc565b915061461b826145b4565b604082019050919050565b6000602082019050818103600083015261463f81614603565b9050919050565b600061465182613820565b61465b8185614486565b935061466b81856020860161383c565b80840191505092915050565b60006146838284614646565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006146c4601d836139dc565b91506146cf8261468e565b602082019050919050565b600060208201905081810360008301526146f3816146b7565b905091905056fe68747470733a2f2f6769746875622e636f6d2f6f75727a6f72612f7a6f72612d70726f746f636f6c2fa264697066735822122002ad35dd666087f351b8c47a521ebcb876d017f2719fc5aaa485e8520d62dfe964736f6c63430008110033","sourceMap":"3009:14594:158:-:0;;;;;;;;;;;;;1716:1:16;1821:7;:22;;;;3009:14594:158;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061015d5760003560e01c806301ffc9a71461016257806319b45c4f1461019f5780632206a675146101c857806323452b9c146102055780632492f8871461021c5780632f8dccbc14610245578063395db2cd146102725780634132239b1461029b5780635c046084146102d85780635d759bd814610315578063611efc091461035257806362b602451461038f5780636890e5b3146103ba57806375d0c0dc146103f757806379ba5097146104225780637b49ff2c146104395780638da5cb5b1461047657806396325a5a146104a1578063a0a8e460146104cc578063a8094d05146104f7578063ac973d5b14610520578063ce35b8af1461055d578063e1bf91e914610586578063e2ebba29146105b1578063e30c3978146105ee578063e8a3d48514610619578063eb990c5914610644578063ed0c70911461066d578063f2fde38b14610684578063f54f216a146106ad575b600080fd5b34801561016e57600080fd5b5061018960048036038101906101849190613114565b6106c9565b604051610196919061315c565b60405180910390f35b3480156101ab57600080fd5b506101c660048036038101906101c191906131ad565b610763565b005b3480156101d457600080fd5b506101ef60048036038101906101ea9190613395565b6108fe565b6040516101fc919061346a565b60405180910390f35b34801561021157600080fd5b5061021a6109d3565b005b34801561022857600080fd5b50610243600480360381019061023e91906134e9565b610b1f565b005b34801561025157600080fd5b5061025a610bb2565b60405161026993929190613534565b60405180910390f35b34801561027e57600080fd5b506102996004803603810190610294919061356b565b610bea565b005b3480156102a757600080fd5b506102c260048036038101906102bd91906131ad565b610d99565b6040516102cf9190613598565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906131ad565b610dbf565b60405161030c9190613608565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613623565b610e4e565b6040516103499190613663565b60405180910390f35b34801561035e57600080fd5b5061037960048036038101906103749190613623565b610f30565b604051610386919061346a565b60405180910390f35b34801561039b57600080fd5b506103a46110e7565b6040516103b19190613598565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc91906136e3565b6110f4565b6040516103ee91906139af565b60405180910390f35b34801561040357600080fd5b5061040c61112e565b6040516104199190613a26565b60405180910390f35b34801561042e57600080fd5b5061043761116b565b005b34801561044557600080fd5b50610460600480360381019061045b9190613a48565b611279565b60405161046d9190613598565b60405180910390f35b34801561048257600080fd5b5061048b611312565b6040516104989190613663565b60405180910390f35b3480156104ad57600080fd5b506104b661133c565b6040516104c39190613598565b60405180910390f35b3480156104d857600080fd5b506104e1611349565b6040516104ee9190613a26565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190613a9b565b611386565b005b34801561052c57600080fd5b5061054760048036038101906105429190613623565b6113b7565b6040516105549190613663565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190613b9b565b611519565b005b34801561059257600080fd5b5061059b61173f565b6040516105a89190613c1d565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190613c38565b6117c3565b6040516105e59190613598565b60405180910390f35b3480156105fa57600080fd5b506106036117e8565b6040516106109190613663565b60405180910390f35b34801561062557600080fd5b5061062e611812565b60405161063b9190613a26565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190613c78565b611832565b005b34801561067957600080fd5b506106826119ae565b005b34801561069057600080fd5b506106ab60048036038101906106a6919061356b565b611a41565b005b6106c760048036038101906106c29190613d35565b611b3c565b005b60006106d482611fe5565b806106e457506106e382611fe5565b5b806106f457506106f38261204f565b5b8061075c57507fa8094d05000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b603a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828152602001908152602001600020600080820160006101000a81549067ffffffffffffffff02191690556000820160086101000a81549067ffffffffffffffff02191690556000820160106101000a81549067ffffffffffffffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050803373ffffffffffffffffffffffffffffffffffffffff167f5a10ca3dd9f8e42a050c7f379d07bacd686570baf0b1c8574362fc474a9aa1a0603a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206040516108f39190613fa3565b60405180910390a350565b610906612faf565b6000429050600080846000015167ffffffffffffffff1614610937578360000151826109329190613fed565b610941565b67ffffffffffffffff5b90506040518060c001604052808367ffffffffffffffff1681526020018267ffffffffffffffff168152602001856020015167ffffffffffffffff16815260200185604001518152602001856060015173ffffffffffffffffffffffffffffffffffffffff168152602001856080015173ffffffffffffffffffffffffffffffffffffffff1681525092505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a5a576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f682679deecef4dcd49674845cc1e3a075fea9073680aa445a8207d5a4bdea3da60405160405180910390a3600360006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba6576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610baf81612121565b50565b60378060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c51576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd8576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4f2638f5949b9614ef8d5e268cb51348ad7f434a34812bf64b6e95014fbd357e60405160405180910390a35050565b6000606460376001015483610dae9190614029565b610db8919061409a565b9050919050565b610dc761302f565b6000610dd7836301b3f7086117c3565b90506000610de9846301b3f7086117c3565b90506000610dfa8562d91c146117c3565b90506000818385610e0b91906140cb565b610e1591906140cb565b86610e2091906140ff565b9050604051806080016040528085815260200184815260200182815260200183815250945050505050919050565b60008273ffffffffffffffffffffffffffffffffffffffff16637dafae4d836040518263ffffffff1660e01b8152600401610e899190613598565b602060405180830381865afa925050508015610ec357506040513d601f19601f82011682018060405250810190610ec09190614148565b60015b15610ecd57809150505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f2a57603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b92915050565b610f38612faf565b603a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206040518060c00160405290816000820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b6000603760010154905090565b6110fc613057565b6040517f9274ec1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60606040518060400160405280600c81526020017f4552433230204d696e7465720000000000000000000000000000000000000000815250905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111f2576040517f065cd53100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a361127733612208565b565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509392505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603760020154905090565b60606040518060400160405280600581526020017f322e302e30000000000000000000000000000000000000000000000000000000815250905090565b600082828101906113979190613395565b905060006113a4826108fe565b90506113b08582611519565b5050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16639ebb8324836040518263ffffffff1660e01b81526004016113f29190613598565b602060405180830381865afa92505050801561142c57506040513d601f19601f820116820180604052508101906114299190614148565b60015b61145d57603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611513565b809150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611511578373ffffffffffffffffffffffffffffffffffffffff16635e4e0404846040518263ffffffff1660e01b81526004016114cd9190613598565b602060405180830381865afa1580156114ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150e9190614148565b91505b505b92915050565b6115268160a00151612344565b6115338160800151612344565b61271081606001511015611573576040517f835de65800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80603a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506060820151816001015560808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050813373ffffffffffffffffffffffffffffffffffffffff167f5a10ca3dd9f8e42a050c7f379d07bacd686570baf0b1c8574362fc474a9aa1a083604051611733919061346a565b60405180910390a35050565b611747613071565b60376040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481525050905090565b60006305f5e10082846117d69190614029565b6117e0919061409a565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060600160405280602981526020016146fb60299139905090565b6000603660019054906101000a900460ff1615905080158061186757506000603660009054906101000a900460ff1660ff1614155b80156118965750611877306123ad565b8061189557506001603660009054906101000a900460ff1660ff1614155b5b156118cd576040517f7ab8448200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001603660006101000a81548160ff021916908360ff160217905550801561190b576001603660016101000a81548160ff0219169083151502179055505b611914846123d0565b61194d60405180606001604052808773ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815250612121565b80156119a7576000603660016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161199e91906141c7565b60405180910390a15b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a35576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a3f6000612208565b565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aa8576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2f576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b3882612208565b5050565b611b4461251d565b87603760020154611b559190614029565b3414611baa5787603760020154611b6c9190614029565b346040517f3d2eb44d000000000000000000000000000000000000000000000000000000008152600401611ba19291906141e2565b60405180910390fd5b6000603a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008881526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611cad57508473ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611ce4576040517ff599342800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b888160010154611cf49190614029565b8614611d2c576040517f2f4613eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16421015611d88576040517fe8c4db8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060000160089054906101000a900467ffffffffffffffff1667ffffffffffffffff16421115611de4576040517f0bd8a3eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161115611e3f57611e3e8160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff168a8a8a8e61256c565b5b611e49858761277a565b8773ffffffffffffffffffffffffffffffffffffffff1663c238d1ee8b898c6040518463ffffffff1660e01b8152600401611e8693929190614242565b600060405180830381600087803b158015611ea057600080fd5b505af1158015611eb4573d6000803e3d6000fd5b505050506000611ec387610d99565b9050611ed281878a8c896128ed565b611edb34612b1d565b611f598260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168289611f0f91906140ff565b8460030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b6000848490501115611fd057878973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fb9490aee663998179ad13f9e1c1eb6189c71ad1a9ec87f33ad2766f98d9a268a8d8888604051611fc7939291906142c8565b60405180910390a45b5050611fda612c0f565b505050505050505050565b60007f7b49ff2c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60007f6890e5b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061211a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b61212e8160000151612344565b60648160200151111561216d576040517faa7feadc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80603760008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201559050507f50f3599c2143c70cf6332b9db855f5f08c572597a947ff20d91fc7d6e5df6b20816040516121fd9190613c1d565b60405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461234157600360006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123aa576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612437576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603660019054906101000a900460ff1661247d576040517f96bfb10000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a35050565b600260005403612562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255990614346565b60405180910390fd5b6002600081905550565b83600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461260991906140cb565b9250508190555084600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612773578085600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040517fe2d9156400000000000000000000000000000000000000000000000000000000815260040161276a93929190613534565b60405180910390fd5b5050505050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016127b59190613663565b602060405180830381865afa1580156127d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f6919061437b565b90506128253330848673ffffffffffffffffffffffffffffffffffffffff16612c19909392919063ffffffff16565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016128609190613663565b602060405180830381865afa15801561287d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a1919061437b565b90508083836128b091906140cb565b146128e7576040517fdc5b522d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60006128f886610dbf565b905060006129068486610e4e565b9050600061291485876113b7565b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361297357603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693505b6129a28284600001518973ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b6129d18184606001518973ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b612a008484602001518973ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b612a54603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684604001518973ffffffffffffffffffffffffffffffffffffffff16612b899092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f6d43fd9d85f88450d1b777b5e7d58dec9b8dd36d77bf01bc5e5423d4a92d2246603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898c8c8a600001518b602001518c606001518d60400151604051612b0b9897969594939291906143a8565b60405180910390a45050505050505050565b612b50603760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826204baf0612ca2565b612b86576040517f77ca954d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b612c0a8363a9059cbb60e01b8484604051602401612ba8929190614426565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d1a565b505050565b6001600081905550565b612c9c846323b872dd60e01b858585604051602401612c3a9392919061444f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d1a565b50505050565b60008373ffffffffffffffffffffffffffffffffffffffff16838390604051612cca906144b4565b600060405180830381858888f193505050503d8060008114612d08576040519150601f19603f3d011682016040523d82523d6000602084013e612d0d565b606091505b5050809150509392505050565b6000612d7c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612de29092919063ffffffff16565b9050600081511480612d9e575080806020019051810190612d9d91906144f5565b5b612ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd490614594565b60405180910390fd5b505050565b6060612df18484600085612dfa565b90509392505050565b606082471015612e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3690614626565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612e689190614677565b60006040518083038185875af1925050503d8060008114612ea5576040519150601f19603f3d011682016040523d82523d6000602084013e612eaa565b606091505b5091509150612ebb87838387612ec7565b92505050949350505050565b60608315612f29576000835103612f2157612ee185612f3c565b612f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f17906146da565b60405180910390fd5b5b829050612f34565b612f338383612f5f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115612f725781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa69190613a26565b60405180910390fd5b6040518060c00160405280600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b604051806040016040528060608152602001600081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6130f1816130bc565b81146130fc57600080fd5b50565b60008135905061310e816130e8565b92915050565b60006020828403121561312a576131296130b2565b5b6000613138848285016130ff565b91505092915050565b60008115159050919050565b61315681613141565b82525050565b6000602082019050613171600083018461314d565b92915050565b6000819050919050565b61318a81613177565b811461319557600080fd5b50565b6000813590506131a781613181565b92915050565b6000602082840312156131c3576131c26130b2565b5b60006131d184828501613198565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613228826131df565b810181811067ffffffffffffffff82111715613247576132466131f0565b5b80604052505050565b600061325a6130a8565b9050613266828261321f565b919050565b600067ffffffffffffffff82169050919050565b6132888161326b565b811461329357600080fd5b50565b6000813590506132a58161327f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132d6826132ab565b9050919050565b6132e6816132cb565b81146132f157600080fd5b50565b600081359050613303816132dd565b92915050565b600060a0828403121561331f5761331e6131da565b5b61332960a0613250565b9050600061333984828501613296565b600083015250602061334d84828501613296565b602083015250604061336184828501613198565b6040830152506060613375848285016132f4565b6060830152506080613389848285016132f4565b60808301525092915050565b600060a082840312156133ab576133aa6130b2565b5b60006133b984828501613309565b91505092915050565b6133cb8161326b565b82525050565b6133da81613177565b82525050565b6133e9816132cb565b82525050565b60c08201600082015161340560008501826133c2565b50602082015161341860208501826133c2565b50604082015161342b60408501826133c2565b50606082015161343e60608501826133d1565b50608082015161345160808501826133e0565b5060a082015161346460a08501826133e0565b50505050565b600060c08201905061347f60008301846133ef565b92915050565b60006060828403121561349b5761349a6131da565b5b6134a56060613250565b905060006134b5848285016132f4565b60008301525060206134c984828501613198565b60208301525060406134dd84828501613198565b60408301525092915050565b6000606082840312156134ff576134fe6130b2565b5b600061350d84828501613485565b91505092915050565b61351f816132cb565b82525050565b61352e81613177565b82525050565b60006060820190506135496000830186613516565b6135566020830185613525565b6135636040830184613525565b949350505050565b600060208284031215613581576135806130b2565b5b600061358f848285016132f4565b91505092915050565b60006020820190506135ad6000830184613525565b92915050565b6080820160008201516135c960008501826133d1565b5060208201516135dc60208501826133d1565b5060408201516135ef60408501826133d1565b50606082015161360260608501826133d1565b50505050565b600060808201905061361d60008301846135b3565b92915050565b6000806040838503121561363a576136396130b2565b5b6000613648858286016132f4565b925050602061365985828601613198565b9150509250929050565b60006020820190506136786000830184613516565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136a3576136a261367e565b5b8235905067ffffffffffffffff8111156136c0576136bf613683565b5b6020830191508360018202830111156136dc576136db613688565b5b9250929050565b60008060008060008060a08789031215613700576136ff6130b2565b5b600061370e89828a016132f4565b965050602061371f89828a01613198565b955050604061373089828a01613198565b945050606061374189828a01613198565b935050608087013567ffffffffffffffff811115613762576137616130b7565b5b61376e89828a0161368d565b92509250509295509295509295565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106137e9576137e86137a9565b5b50565b60008190506137fa826137d8565b919050565b600061380a826137ec565b9050919050565b61381a816137ff565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561385a57808201518184015260208101905061383f565b60008484015250505050565b600061387182613820565b61387b818561382b565b935061388b81856020860161383c565b613894816131df565b840191505092915050565b60006040830160008301516138b76000860182613811565b50602083015184820360208601526138cf8282613866565b9150508091505092915050565b60006138e8838361389f565b905092915050565b6000602082019050919050565b60006139088261377d565b6139128185613788565b93508360208202850161392485613799565b8060005b85811015613960578484038952815161394185826138dc565b945061394c836138f0565b925060208a01995050600181019050613928565b50829750879550505050505092915050565b6000604083016000830151848203600086015261398f82826138fd565b91505060208301516139a460208601826133d1565b508091505092915050565b600060208201905081810360008301526139c98184613972565b905092915050565b600081519050919050565b600082825260208201905092915050565b60006139f8826139d1565b613a0281856139dc565b9350613a1281856020860161383c565b613a1b816131df565b840191505092915050565b60006020820190508181036000830152613a4081846139ed565b905092915050565b600080600060608486031215613a6157613a606130b2565b5b6000613a6f868287016132f4565b9350506020613a8086828701613198565b9250506040613a91868287016132f4565b9150509250925092565b600080600060408486031215613ab457613ab36130b2565b5b6000613ac286828701613198565b935050602084013567ffffffffffffffff811115613ae357613ae26130b7565b5b613aef8682870161368d565b92509250509250925092565b600060c08284031215613b1157613b106131da565b5b613b1b60c0613250565b90506000613b2b84828501613296565b6000830152506020613b3f84828501613296565b6020830152506040613b5384828501613296565b6040830152506060613b6784828501613198565b6060830152506080613b7b848285016132f4565b60808301525060a0613b8f848285016132f4565b60a08301525092915050565b60008060e08385031215613bb257613bb16130b2565b5b6000613bc085828601613198565b9250506020613bd185828601613afb565b9150509250929050565b606082016000820151613bf160008501826133e0565b506020820151613c0460208501826133d1565b506040820151613c1760408501826133d1565b50505050565b6000606082019050613c326000830184613bdb565b92915050565b60008060408385031215613c4f57613c4e6130b2565b5b6000613c5d85828601613198565b9250506020613c6e85828601613198565b9150509250929050565b60008060008060808587031215613c9257613c916130b2565b5b6000613ca0878288016132f4565b9450506020613cb1878288016132f4565b9350506040613cc287828801613198565b9250506060613cd387828801613198565b91505092959194509250565b60008083601f840112613cf557613cf461367e565b5b8235905067ffffffffffffffff811115613d1257613d11613683565b5b602083019150836001820283011115613d2e57613d2d613688565b5b9250929050565b60008060008060008060008060006101008a8c031215613d5857613d576130b2565b5b6000613d668c828d016132f4565b9950506020613d778c828d01613198565b9850506040613d888c828d016132f4565b9750506060613d998c828d01613198565b9650506080613daa8c828d01613198565b95505060a0613dbb8c828d016132f4565b94505060c0613dcc8c828d016132f4565b93505060e08a013567ffffffffffffffff811115613ded57613dec6130b7565b5b613df98c828d01613cdf565b92509250509295985092959850929598565b60008160001c9050919050565b600067ffffffffffffffff82169050919050565b6000613e3f613e3a83613e0b565b613e18565b9050919050565b60008160401c9050919050565b6000613e66613e6183613e46565b613e18565b9050919050565b60008160801c9050919050565b6000613e8d613e8883613e6d565b613e18565b9050919050565b6000819050919050565b6000613eb1613eac83613e0b565b613e94565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613eeb613ee683613e0b565b613eb8565b9050919050565b60c082016000808301549050613f0781613e2c565b613f1460008601826133c2565b50613f1e81613e53565b613f2b60208601826133c2565b50613f3581613e7a565b613f4260408601826133c2565b5060018301549050613f5381613e9e565b613f6060608601826133d1565b5060028301549050613f7181613ed8565b613f7e60808601826133e0565b5060038301549050613f8f81613ed8565b613f9c60a08601826133e0565b5050505050565b600060c082019050613fb86000830184613ef2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ff88261326b565b91506140038361326b565b9250828201905067ffffffffffffffff81111561402357614022613fbe565b5b92915050565b600061403482613177565b915061403f83613177565b925082820261404d81613177565b9150828204841483151761406457614063613fbe565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140a582613177565b91506140b083613177565b9250826140c0576140bf61406b565b5b828204905092915050565b60006140d682613177565b91506140e183613177565b92508282019050808211156140f9576140f8613fbe565b5b92915050565b600061410a82613177565b915061411583613177565b925082820390508181111561412d5761412c613fbe565b5b92915050565b600081519050614142816132dd565b92915050565b60006020828403121561415e5761415d6130b2565b5b600061416c84828501614133565b91505092915050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b60006141b16141ac6141a784614175565b61418c565b61417f565b9050919050565b6141c181614196565b82525050565b60006020820190506141dc60008301846141b8565b92915050565b60006040820190506141f76000830185613525565b6142046020830184613525565b9392505050565b600082825260208201905092915050565b50565b600061422c60008361420b565b91506142378261421c565b600082019050919050565b60006080820190506142576000830186613516565b6142646020830185613525565b6142716040830184613525565b81810360608301526142828161421f565b9050949350505050565b82818337600083830152505050565b60006142a783856139dc565b93506142b483858461428c565b6142bd836131df565b840190509392505050565b60006040820190506142dd6000830186613525565b81810360208301526142f081848661429b565b9050949350505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000614330601f836139dc565b915061433b826142fa565b602082019050919050565b6000602082019050818103600083015261435f81614323565b9050919050565b60008151905061437581613181565b92915050565b600060208284031215614391576143906130b2565b5b600061439f84828501614366565b91505092915050565b6000610100820190506143be600083018b613516565b6143cb602083018a613516565b6143d86040830189613516565b6143e56060830188613525565b6143f26080830187613525565b6143ff60a0830186613525565b61440c60c0830185613525565b61441960e0830184613525565b9998505050505050505050565b600060408201905061443b6000830185613516565b6144486020830184613525565b9392505050565b60006060820190506144646000830186613516565b6144716020830185613516565b61447e6040830184613525565b949350505050565b600081905092915050565b600061449e600083614486565b91506144a98261421c565b600082019050919050565b60006144bf82614491565b9150819050919050565b6144d281613141565b81146144dd57600080fd5b50565b6000815190506144ef816144c9565b92915050565b60006020828403121561450b5761450a6130b2565b5b6000614519848285016144e0565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061457e602a836139dc565b915061458982614522565b604082019050919050565b600060208201905081810360008301526145ad81614571565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006146106026836139dc565b915061461b826145b4565b604082019050919050565b6000602082019050818103600083015261463f81614603565b9050919050565b600061465182613820565b61465b8185614486565b935061466b81856020860161383c565b80840191505092915050565b60006146838284614646565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006146c4601d836139dc565b91506146cf8261468e565b602082019050919050565b600060208201905081810360008301526146f3816146b7565b905091905056fe68747470733a2f2f6769746875622e636f6d2f6f75727a6f72612f7a6f72612d70726f746f636f6c2fa264697066735822122002ad35dd666087f351b8c47a521ebcb876d017f2719fc5aaa485e8520d62dfe964736f6c63430008110033","sourceMap":"3009:14594:158:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16009:395;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15337:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13724:635;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3963:141:188;;;;;;;;;;;;;:::i;:::-;;17216:128:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3246:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3325:182:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4164:192:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4881:779;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5839:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15751:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12084:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16505:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12593:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3758:146:188;;;;;;;;;;;;;:::i;:::-;;525:188:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2291:85:188;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12267:105:158;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12743:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14848:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6436:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13020:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6990:117;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4579:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2431:91:188;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12418:128:158;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3650:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3615:91:188;;;;;;;;;;;;;:::i;:::-;;2640:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10334:1663:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16009:395;16131:4;16166:36;16190:11;16166:23;:36::i;:::-;:104;;;;16218:52;16258:11;16218:39;:52::i;:::-;16166:104;:163;;;;16286:43;16317:11;16286:30;:43::i;:::-;16166:163;:231;;;;16360:37;16345:52;;;:11;:52;;;;16166:231;16147:250;;16009:395;;;:::o;15337:225::-;15408:12;:24;15421:10;15408:24;;;;;;;;;;;;;;;:33;15433:7;15408:33;;;;;;;;;;;;15401:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15512:7;15500:10;15492:63;;;15521:12;:24;15534:10;15521:24;;;;;;;;;;;;;;;:33;15546:7;15521:33;;;;;;;;;;;15492:63;;;;;;:::i;:::-;;;;;;;;15337:225;:::o;13724:635::-;13815:30;;:::i;:::-;13857:16;13883:15;13857:42;;13909:14;13945:1;13926:6;:15;;;:20;;;:69;;13980:6;:15;;;13968:9;:27;;;;:::i;:::-;13926:69;;;13949:16;13926:69;13909:86;;14024:328;;;;;;;;14078:9;14024:328;;;;;;14114:7;14024:328;;;;;;14160:6;:26;;;14024:328;;;;;;14219:6;:20;;;14024:328;;;;14273:6;:21;;;14024:328;;;;;;14322:6;:15;;;14024:328;;;;;14005:347;;;;13724:635;;;:::o;3963:141:188:-;1466:6;;;;;;;;;;;1452:20;;:10;:20;;;1448:70;;1495:12;;;;;;;;;;;;;;1448:70;4052:13:::1;;;;;;;;;;;4030:36;;4044:6;;;;;;;;;;;4030:36;;;;;;;;;;;;4084:13;;4077:20;;;;;;;;;;;3963:141::o:0;17216:128:158:-;1466:6:188;;;;;;;;;;;1452:20;;:10;:20;;;1448:70;;1495:12;;;;;;;;;;;;;;1448:70;17308:29:158::1;17330:6;17308:21;:29::i;:::-;17216:128:::0;:::o;3246:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3325:182:188:-;3397:9;1075:1;1058:19;;:5;:19;;;1054:87;;1100:30;;;;;;;;;;;;;;1054:87;1466:6:::1;;;;;;;;;;;1452:20;;:10;:20;;;1448:70;;1495:12;;;;;;;;;;;;;;1448:70;3444:9:::2;3428:13;;:25;;;;;;;;;;;;;;;;;;3490:9;3469:31;;3482:6;;;;;;;;;;;3469:31;;;;;;;;;;;;3325:182:::0;;:::o;4164:192:158:-;4233:7;273:3:159;4273:12:158;:38;;;4260:10;:51;;;;:::i;:::-;4259:90;;;;:::i;:::-;4252:97;;4164:192;;;:::o;4881:779::-;4955:22;;:::i;:::-;4989:28;5020:64;5034:11;427:9:159;5020:13:158;:64::i;:::-;4989:95;;5094:26;5123:62;5137:11;559:9:159;5123:13:158;:62::i;:::-;5094:91;;5195:25;5223:51;5237:11;803:9:159;5223:13:158;:51::i;:::-;5195:79;;5284:18;5364:17;5343:18;5320:20;:41;;;;:::i;:::-;:61;;;;:::i;:::-;5305:11;:77;;;;:::i;:::-;5284:98;;5412:241;;;;;;;;5468:20;5412:241;;;;5526:18;5412:241;;;;5574:10;5412:241;;;;5621:17;5412:241;;;5393:260;;;;;;4881:779;;;:::o;5839:421::-;5927:22;5975:13;5965:40;;;6006:7;5965:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;5961:168;;;6087:22;6070:39;;6015:105;5961:168;6169:1;6143:28;;:14;:28;;;6139:115;;6204:12;:39;;;;;;;;;;;;6187:56;;6139:115;5839:421;;;;:::o;15751:157::-;15828:18;;:::i;:::-;15865:12;:27;15878:13;15865:27;;;;;;;;;;;;;;;:36;15893:7;15865:36;;;;;;;;;;;15858:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15751:157;;;;:::o;12084:120::-;12133:7;12159:12;:38;;;12152:45;;12084:120;:::o;16505:183::-;16601:34;;:::i;:::-;16654:27;;;;;;;;;;;;;;12593:100;12640:13;12665:21;;;;;;;;;;;;;;;;;;;12593:100;:::o;3758:146:188:-;1650:13;;;;;;;;;;;1636:27;;:10;:27;;;1632:85;;1686:20;;;;;;;;;;;;;;1632:85;3845:10:::1;3824:32;;3837:6;;;;;;;;;;;3824:32;;;;;;;;;;;;3867:30;3886:10;3867:18;:30::i;:::-;3758:146::o:0;525:188:166:-;632:7;658:16;:31;675:13;658:31;;;;;;;;;;;;;;;:40;690:7;658:40;;;;;;;;;;;:48;699:6;658:48;;;;;;;;;;;;;;;;651:55;;525:188;;;;;:::o;2291:85:188:-;2337:7;2363:6;;;;;;;;;;;2356:13;;2291:85;:::o;12267:105:158:-;12317:7;12343:12;:22;;;12336:29;;12267:105;:::o;12743:96::-;12793:13;12818:14;;;;;;;;;;;;;;;;;;;12743:96;:::o;14848:353::-;14959:44;15017:25;;15006:59;;;;;;;:::i;:::-;14959:106;;15075:30;15108:46;15135:18;15108:26;:46::i;:::-;15075:79;;15165:29;15173:7;15182:11;15165:7;:29::i;:::-;14949:252;;14848:353;;;:::o;6436:505::-;6521:19;6566:13;6556:37;;;6594:7;6556:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6552:383;;6885:12;:39;;;;;;;;;;;;6871:53;;6552:383;;;6669:19;6655:33;;6730:1;6707:25;;:11;:25;;;6703:137;;6776:13;6766:50;;;6817:7;6766:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6752:73;;6703:137;6603:247;6552:383;6436:505;;;;:::o;13020:447::-;13103:44;13126:11;:20;;;13103:22;:44::i;:::-;13157:50;13180:11;:26;;;13157:22;:50::i;:::-;198:6:159;13222:11:158;:25;;;:47;13218:106;;;13292:21;;;;;;;;;;;;;;13218:106;13370:11;13334:12;:24;13347:10;13334:24;;;;;;;;;;;;;;;:33;13359:7;13334:33;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13439:7;13427:10;13419:41;;;13448:11;13419:41;;;;;;:::i;:::-;;;;;;;;13020:447;;:::o;6990:117::-;7045:24;;:::i;:::-;7088:12;7081:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6990:117;:::o;4579:179::-;4663:7;345:11:159;4704:9:158;4690:11;:23;;;;:::i;:::-;4689:62;;;;:::i;:::-;4682:69;;4579:179;;;;:::o;2431:91:188:-;2476:7;2502:13;;;;;;;;;;;2495:20;;2431:91;:::o;12418:128:158:-;12464:13;12489:50;;;;;;;;;;;;;;;;;;;12418:128;:::o;3650:366::-;3432:19:57;3455:13;;;;;;;;;;;3454:14;3432:36;;3484:14;3483:15;:36;;;;3518:1;3502:12;;;;;;;;;;;:17;;;;3483:36;3482:109;;;;;3525:44;3563:4;3525:29;:44::i;:::-;:65;;;;3589:1;3573:12;;;;;;;;;;;:17;;;;3525:65;3482:109;3478:191;;;3614:44;;;;;;;;;;;;;;3478:191;3693:1;3678:12;;:16;;;;;;;;;;;;;;;;;;3708:14;3704:65;;;3754:4;3738:13;;:20;;;;;;;;;;;;;;;;;;3704:65;3794:22:158::1;3809:6;3794:14;:22::i;:::-;3826:183;3861:138;;;;;;;;3908:27;3861:138;;;;;;3964:10;3861:138;;;;3987:10;3861:138;;::::0;3826:21:::1;:183::i;:::-;3793:14:57::0;3789:99;;;3839:5;3823:13;;:21;;;;;;;;;;;;;;;;;;3863:14;3875:1;3863:14;;;;;;:::i;:::-;;;;;;;;3789:99;3422:472;3650:366:158;;;;:::o;3615:91:188:-;1466:6;;;;;;;;;;;1452:20;;:10;:20;;;1448:70;;1495:12;;;;;;;;;;;;;;1448:70;3669:30:::1;3696:1;3669:18;:30::i;:::-;3615:91::o:0;2640:135::-;2708:9;1075:1;1058:19;;:5;:19;;;1054:87;;1100:30;;;;;;;;;;;;;;1054:87;1466:6:::1;;;;;;;;;;;1452:20;;:10;:20;;;1448:70;;1495:12;;;;;;;;;;;;;;1448:70;2739:29:::2;2758:9;2739:18;:29::i;:::-;2640:135:::0;;:::o;10334:1663:158:-;2261:21:16;:19;:21::i;:::-;10658:8:158::1;10633:12;:22;;;:33;;;;:::i;:::-;10620:9;:46;10616:145;;10730:8;10705:12;:22;;;:33;;;;:::i;:::-;10740:9;10689:61;;;;;;;;;;;;:::i;:::-;;;;;;;;10616:145;10771:26;10800:12;:26;10813:12;10800:26;;;;;;;;;;;;;;;:35;10827:7;10800:35;;;;;;;;;;;10771:64;;10877:1;10850:29;;:6;:15;;;;;;;;;;;;:29;;;:60;;;;10902:8;10883:27;;:6;:15;;;;;;;;;;;;:27;;;;10850:60;10846:115;;;10933:17;;;;;;;;;;;;;;10846:115;11013:8;10990:6;:20;;;:31;;;;:::i;:::-;10975:10;:47;10971:101;;11045:16;;;;;;;;;;;;;;10971:101;11104:6;:16;;;;;;;;;;;;11086:34;;:15;:34;11082:91;;;11143:19;;;;;;;;;;;;;;11082:91;11205:6;:14;;;;;;;;;;;;11187:32;;:15;:32;11183:81;;;11242:11;;;;;;;;;;;;;;11183:81;11307:1;11278:6;:26;;;;;;;;;;;;:30;;;11274:163;;;11324:102;11358:6;:26;;;;;;;;;;;;11324:102;;11386:8;11396:12;11410:7;11419:6;11324:33;:102::i;:::-;11274:163;11447:45;11471:8;11481:10;11447:23;:45::i;:::-;11513:12;11503:33;;;11537:6;11545:7;11554:8;11503:64;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11578:19;11600:30;11619:10;11600:18;:30::i;:::-;11578:52;;11641:78;11660:11;11673:8;11683:7;11692:12;11706;11641:18;:78::i;:::-;11730:32;11752:9;11730:21;:32::i;:::-;11773:85;11810:6;:21;;;;;;;;;;;;11846:11;11833:10;:24;;;;:::i;:::-;11780:6;:15;;;;;;;;;;;;11773:36;;;;:85;;;;;:::i;:::-;11897:1;11879:7;;11873:21;;:25;11869:122;;;11953:7;11939:12;11919:61;;11931:6;11919:61;;;11962:8;11972:7;;11919:61;;;;;;;;:::i;:::-;;;;;;;;11869:122;10606:1391;;2303:20:16::0;:18;:20::i;:::-;10334:1663:158;;;;;;;;;:::o;1147:170:166:-;1232:4;1270:40;1255:55;;;:11;:55;;;;1248:62;;1147:170;;;:::o;858:205:157:-;934:4;972:29;957:44;;;:11;:44;;;;:99;;;;1020:36;1005:51;;;:11;:51;;;;957:99;950:106;;858:205;;;:::o;16789:327:158:-;16873:58;16896:7;:34;;;16873:22;:58::i;:::-;16982:3;16946:7;:33;;;:39;16942:91;;;17008:14;;;;;;;;;;;;;;16942:91;17058:7;17043:12;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17080:29;17101:7;17080:29;;;;;;:::i;:::-;;;;;;;;16789:327;:::o;2990:226:188:-;3082:9;3061:31;;3074:6;;;;;;;;;;;3061:31;;;;;;;;;;;;3112:9;3103:6;;:18;;;;;;;;;;;;;;;;;;3161:1;3136:27;;:13;;;;;;;;;;;:27;;;3132:78;;3186:13;;3179:20;;;;;;;;;;;3132:78;2990:226;:::o;17448:153:158:-;17546:1;17526:22;;:8;:22;;;17522:73;;17571:13;;;;;;;;;;;;;;17522:73;17448:153;:::o;1721:320:64:-;1781:4;2033:1;2011:7;:19;;;:23;2004:30;;1721:320;;;:::o;2047:197:188:-;2118:13;1075:1;1058:19;;:5;:19;;;1054:87;;1100:30;;;;;;;;;;;;;;1054:87;5535:13:57::1;;;;;;;;;;;5530:96;;5571:44;;;;;;;;;;;;;;5530:96;2169:13:188::2;2160:6;;:22;;;;;;;;;;;;;;;;;;2223:13;2198:39;;2219:1;2198:39;;;;;;;;;;;;2047:197:::0;;:::o;2336:287:16:-;1759:1;2468:7;;:19;2460:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1759:1;2598:7;:18;;;;2336:287::o;719:422:166:-;930:16;878;:31;895:13;878:31;;;;;;;;;;;;;;;:40;910:7;878:40;;;;;;;;;;;:48;919:6;878:48;;;;;;;;;;;;;;;;:68;;;;;;;:::i;:::-;;;;;;;;1011:5;960:16;:31;977:13;960:31;;;;;;;;;;;;;;;:40;992:7;960:40;;;;;;;;;;;:48;1001:6;960:48;;;;;;;;;;;;;;;;:56;956:179;;;1060:6;1068:5;1075:16;:31;1092:13;1075:31;;;;;;;;;;;;;;;:40;1107:7;1075:40;;;;;;;;;;;:48;1116:6;1075:48;;;;;;;;;;;;;;;;1039:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;956:179;719:422;;;;;:::o;7301:433:158:-;7391:21;7422:8;7415:26;;;7450:4;7415:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7391:65;;7466:72;7500:10;7520:4;7527:10;7473:8;7466:33;;;;:72;;;;;;:::i;:::-;7548:20;7578:8;7571:26;;;7606:4;7571:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7548:64;;7659:12;7644:10;7628:13;:26;;;;:::i;:::-;7627:44;7623:105;;7694:23;;;;;;;;;;;;;;7623:105;7381:353;;7301:433;;:::o;8099:1241::-;8245:31;8279:35;8302:11;8279:22;:35::i;:::-;8245:69;;8325:22;8350:40;8368:12;8382:7;8350:17;:40::i;:::-;8325:65;;8400:19;8422:37;8437:12;8451:7;8422:14;:37::i;:::-;8400:59;;8498:1;8474:26;;:12;:26;;;8470:111;;8531:12;:39;;;;;;;;;;;;8516:54;;8470:111;8591:76;8621:14;8637:8;:29;;;8598:8;8591:29;;;;:76;;;;;:::i;:::-;8677:70;8707:11;8720:8;:26;;;8684:8;8677:29;;;;:70;;;;;:::i;:::-;8757:72;8787:12;8801:8;:27;;;8764:8;8757:29;;;;:72;;;;;:::i;:::-;8839:91;8869:12;:39;;;;;;;;;;;;8910:8;:19;;;8846:8;8839:29;;;;:91;;;;;:::i;:::-;9033:11;8946:387;;9007:12;8946:387;;8979:14;8946:387;;;9058:12;:39;;;;;;;;;;;;9111:12;9137:8;9159:7;9180:8;:29;;;9223:8;:27;;;9264:8;:26;;;9304:8;:19;;;8946:387;;;;;;;;;;;;;:::i;:::-;;;;;;;;8235:1105;;;8099:1241;;;;;:::o;9475:264::-;9546:130;9578:12;:39;;;;;;;;;;;;9619:7;409::185;9546:31:158;:130::i;:::-;9541:192;;9699:23;;;;;;;;;;;;;;9541:192;9475:264;:::o;941:175:31:-;1023:86;1043:5;1073:23;;;1098:2;1102:5;1050:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:19;:86::i;:::-;941:175;;;:::o;2629:209:16:-;1716:1;2809:7;:22;;;;2629:209::o;1355:203:31:-;1455:96;1475:5;1505:27;;;1534:4;1540:2;1544:5;1482:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:19;:96::i;:::-;1355:203;;;;:::o;616:183:185:-;707:12;745:9;:14;;767:5;779:8;745:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;731:61;;;;;616:183;;;;;:::o;5173:642:31:-;5592:23;5618:69;5646:4;5618:69;;;;;;;;;;;;;;;;;5626:5;5618:27;;;;:69;;;;;:::i;:::-;5592:95;;5726:1;5705:10;:17;:22;:56;;;;5742:10;5731:30;;;;;;;;;;;;:::i;:::-;5705:56;5697:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;5243:572;5173:642;;:::o;4108:223:41:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;:::-;4265:59;;4108:223;;;;;:::o;5165:446::-;5330:12;5387:5;5362:21;:30;;5354:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5446:12;5460:23;5487:6;:11;;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;;;;5165:446;;;;;;:::o;7671:628::-;7851:12;7879:7;7875:418;;;7927:1;7906:10;:17;:22;7902:286;;8121:18;8132:6;8121:10;:18::i;:::-;8113:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7902:286;8208:10;8201:17;;;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;;:::o;1412:320::-;1472:4;1724:1;1702:7;:19;;;:23;1695:30;;1412:320;;;:::o;8821:540::-;9000:1;8980:10;:17;:21;8976:379;;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:214:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:117::-;2318:1;2315;2308:12;2332:102;2373:6;2424:2;2420:7;2415:2;2408:5;2404:14;2400:28;2390:38;;2332:102;;;:::o;2440:180::-;2488:77;2485:1;2478:88;2585:4;2582:1;2575:15;2609:4;2606:1;2599:15;2626:281;2709:27;2731:4;2709:27;:::i;:::-;2701:6;2697:40;2839:6;2827:10;2824:22;2803:18;2791:10;2788:34;2785:62;2782:88;;;2850:18;;:::i;:::-;2782:88;2890:10;2886:2;2879:22;2669:238;2626:281;;:::o;2913:129::-;2947:6;2974:20;;:::i;:::-;2964:30;;3003:33;3031:4;3023:6;3003:33;:::i;:::-;2913:129;;;:::o;3171:101::-;3207:7;3247:18;3240:5;3236:30;3225:41;;3171:101;;;:::o;3278:120::-;3350:23;3367:5;3350:23;:::i;:::-;3343:5;3340:34;3330:62;;3388:1;3385;3378:12;3330:62;3278:120;:::o;3404:137::-;3449:5;3487:6;3474:20;3465:29;;3503:32;3529:5;3503:32;:::i;:::-;3404:137;;;;:::o;3547:126::-;3584:7;3624:42;3617:5;3613:54;3602:65;;3547:126;;;:::o;3679:96::-;3716:7;3745:24;3763:5;3745:24;:::i;:::-;3734:35;;3679:96;;;:::o;3781:122::-;3854:24;3872:5;3854:24;:::i;:::-;3847:5;3844:35;3834:63;;3893:1;3890;3883:12;3834:63;3781:122;:::o;3909:139::-;3955:5;3993:6;3980:20;3971:29;;4009:33;4036:5;4009:33;:::i;:::-;3909:139;;;;:::o;4100:1110::-;4186:5;4230:4;4218:9;4213:3;4209:19;4205:30;4202:117;;;4238:79;;:::i;:::-;4202:117;4337:21;4353:4;4337:21;:::i;:::-;4328:30;;4421:1;4461:48;4505:3;4496:6;4485:9;4481:22;4461:48;:::i;:::-;4454:4;4447:5;4443:16;4436:74;4368:153;4595:2;4636:48;4680:3;4671:6;4660:9;4656:22;4636:48;:::i;:::-;4629:4;4622:5;4618:16;4611:74;4531:165;4764:2;4805:49;4850:3;4841:6;4830:9;4826:22;4805:49;:::i;:::-;4798:4;4791:5;4787:16;4780:75;4706:160;4935:2;4976:49;5021:3;5012:6;5001:9;4997:22;4976:49;:::i;:::-;4969:4;4962:5;4958:16;4951:75;4876:161;5100:3;5142:49;5187:3;5178:6;5167:9;5163:22;5142:49;:::i;:::-;5135:4;5128:5;5124:16;5117:75;5047:156;4100:1110;;;;:::o;5216:404::-;5312:6;5361:3;5349:9;5340:7;5336:23;5332:33;5329:120;;;5368:79;;:::i;:::-;5329:120;5488:1;5513:90;5595:7;5586:6;5575:9;5571:22;5513:90;:::i;:::-;5503:100;;5459:154;5216:404;;;;:::o;5626:105::-;5701:23;5718:5;5701:23;:::i;:::-;5696:3;5689:36;5626:105;;:::o;5737:108::-;5814:24;5832:5;5814:24;:::i;:::-;5809:3;5802:37;5737:108;;:::o;5851:::-;5928:24;5946:5;5928:24;:::i;:::-;5923:3;5916:37;5851:108;;:::o;6039:1253::-;6196:4;6191:3;6187:14;6288:4;6281:5;6277:16;6271:23;6307:61;6362:4;6357:3;6353:14;6339:12;6307:61;:::i;:::-;6211:167;6463:4;6456:5;6452:16;6446:23;6482:61;6537:4;6532:3;6528:14;6514:12;6482:61;:::i;:::-;6388:165;6650:4;6643:5;6639:16;6633:23;6669:61;6724:4;6719:3;6715:14;6701:12;6669:61;:::i;:::-;6563:177;6831:4;6824:5;6820:16;6814:23;6850:63;6907:4;6902:3;6898:14;6884:12;6850:63;:::i;:::-;6750:173;7015:4;7008:5;7004:16;6998:23;7034:63;7091:4;7086:3;7082:14;7068:12;7034:63;:::i;:::-;6933:174;7193:4;7186:5;7182:16;7176:23;7212:63;7269:4;7264:3;7260:14;7246:12;7212:63;:::i;:::-;7117:168;6165:1127;6039:1253;;:::o;7298:343::-;7451:4;7489:3;7478:9;7474:19;7466:27;;7503:131;7631:1;7620:9;7616:17;7607:6;7503:131;:::i;:::-;7298:343;;;;:::o;7692:794::-;7777:5;7821:4;7809:9;7804:3;7800:19;7796:30;7793:117;;;7829:79;;:::i;:::-;7793:117;7928:21;7944:4;7928:21;:::i;:::-;7919:30;;8030:1;8070:49;8115:3;8106:6;8095:9;8091:22;8070:49;:::i;:::-;8063:4;8056:5;8052:16;8045:75;7959:172;8211:2;8252:49;8297:3;8288:6;8277:9;8273:22;8252:49;:::i;:::-;8245:4;8238:5;8234:16;8227:75;8141:172;8377:2;8418:49;8463:3;8454:6;8443:9;8439:22;8418:49;:::i;:::-;8411:4;8404:5;8400:16;8393:75;8323:156;7692:794;;;;:::o;8492:401::-;8587:6;8636:2;8624:9;8615:7;8611:23;8607:32;8604:119;;;8642:79;;:::i;:::-;8604:119;8762:1;8787:89;8868:7;8859:6;8848:9;8844:22;8787:89;:::i;:::-;8777:99;;8733:153;8492:401;;;;:::o;8899:118::-;8986:24;9004:5;8986:24;:::i;:::-;8981:3;8974:37;8899:118;;:::o;9023:::-;9110:24;9128:5;9110:24;:::i;:::-;9105:3;9098:37;9023:118;;:::o;9147:442::-;9296:4;9334:2;9323:9;9319:18;9311:26;;9347:71;9415:1;9404:9;9400:17;9391:6;9347:71;:::i;:::-;9428:72;9496:2;9485:9;9481:18;9472:6;9428:72;:::i;:::-;9510;9578:2;9567:9;9563:18;9554:6;9510:72;:::i;:::-;9147:442;;;;;;:::o;9595:329::-;9654:6;9703:2;9691:9;9682:7;9678:23;9674:32;9671:119;;;9709:79;;:::i;:::-;9671:119;9829:1;9854:53;9899:7;9890:6;9879:9;9875:22;9854:53;:::i;:::-;9844:63;;9800:117;9595:329;;;;:::o;9930:222::-;10023:4;10061:2;10050:9;10046:18;10038:26;;10074:71;10142:1;10131:9;10127:17;10118:6;10074:71;:::i;:::-;9930:222;;;;:::o;10240:922::-;10405:4;10400:3;10396:14;10508:4;10501:5;10497:16;10491:23;10527:63;10584:4;10579:3;10575:14;10561:12;10527:63;:::i;:::-;10420:180;10696:4;10689:5;10685:16;10679:23;10715:63;10772:4;10767:3;10763:14;10749:12;10715:63;:::i;:::-;10610:178;10876:4;10869:5;10865:16;10859:23;10895:63;10952:4;10947:3;10943:14;10929:12;10895:63;:::i;:::-;10798:170;11063:4;11056:5;11052:16;11046:23;11082:63;11139:4;11134:3;11130:14;11116:12;11082:63;:::i;:::-;10978:177;10374:788;10240:922;;:::o;11168:359::-;11329:4;11367:3;11356:9;11352:19;11344:27;;11381:139;11517:1;11506:9;11502:17;11493:6;11381:139;:::i;:::-;11168:359;;;;:::o;11533:474::-;11601:6;11609;11658:2;11646:9;11637:7;11633:23;11629:32;11626:119;;;11664:79;;:::i;:::-;11626:119;11784:1;11809:53;11854:7;11845:6;11834:9;11830:22;11809:53;:::i;:::-;11799:63;;11755:117;11911:2;11937:53;11982:7;11973:6;11962:9;11958:22;11937:53;:::i;:::-;11927:63;;11882:118;11533:474;;;;;:::o;12013:222::-;12106:4;12144:2;12133:9;12129:18;12121:26;;12157:71;12225:1;12214:9;12210:17;12201:6;12157:71;:::i;:::-;12013:222;;;;:::o;12241:117::-;12350:1;12347;12340:12;12364:117;12473:1;12470;12463:12;12487:117;12596:1;12593;12586:12;12623:552;12680:8;12690:6;12740:3;12733:4;12725:6;12721:17;12717:27;12707:122;;12748:79;;:::i;:::-;12707:122;12861:6;12848:20;12838:30;;12891:18;12883:6;12880:30;12877:117;;;12913:79;;:::i;:::-;12877:117;13027:4;13019:6;13015:17;13003:29;;13081:3;13073:4;13065:6;13061:17;13051:8;13047:32;13044:41;13041:128;;;13088:79;;:::i;:::-;13041:128;12623:552;;;;;:::o;13181:1109::-;13287:6;13295;13303;13311;13319;13327;13376:3;13364:9;13355:7;13351:23;13347:33;13344:120;;;13383:79;;:::i;:::-;13344:120;13503:1;13528:53;13573:7;13564:6;13553:9;13549:22;13528:53;:::i;:::-;13518:63;;13474:117;13630:2;13656:53;13701:7;13692:6;13681:9;13677:22;13656:53;:::i;:::-;13646:63;;13601:118;13758:2;13784:53;13829:7;13820:6;13809:9;13805:22;13784:53;:::i;:::-;13774:63;;13729:118;13886:2;13912:53;13957:7;13948:6;13937:9;13933:22;13912:53;:::i;:::-;13902:63;;13857:118;14042:3;14031:9;14027:19;14014:33;14074:18;14066:6;14063:30;14060:117;;;14096:79;;:::i;:::-;14060:117;14209:64;14265:7;14256:6;14245:9;14241:22;14209:64;:::i;:::-;14191:82;;;;13985:298;13181:1109;;;;;;;;:::o;14296:140::-;14389:6;14423:5;14417:12;14407:22;;14296:140;;;:::o;14442:200::-;14557:11;14591:6;14586:3;14579:19;14631:4;14626:3;14622:14;14607:29;;14442:200;;;;:::o;14648:158::-;14741:4;14764:3;14756:11;;14794:4;14789:3;14785:14;14777:22;;14648:158;;;:::o;14812:180::-;14860:77;14857:1;14850:88;14957:4;14954:1;14947:15;14981:4;14978:1;14971:15;14998:125;15091:1;15084:5;15081:12;15071:46;;15097:18;;:::i;:::-;15071:46;14998:125;:::o;15129:151::-;15186:7;15215:5;15204:16;;15221:53;15268:5;15221:53;:::i;:::-;15129:151;;;:::o;15286:::-;15354:9;15387:44;15425:5;15387:44;:::i;:::-;15374:57;;15286:151;;;:::o;15443:157::-;15538:55;15587:5;15538:55;:::i;:::-;15533:3;15526:68;15443:157;;:::o;15606:98::-;15657:6;15691:5;15685:12;15675:22;;15606:98;;;:::o;15710:158::-;15783:11;15817:6;15812:3;15805:19;15857:4;15852:3;15848:14;15833:29;;15710:158;;;;:::o;15874:246::-;15955:1;15965:113;15979:6;15976:1;15973:13;15965:113;;;16064:1;16059:3;16055:11;16049:18;16045:1;16040:3;16036:11;16029:39;16001:2;15998:1;15994:10;15989:15;;15965:113;;;16112:1;16103:6;16098:3;16094:16;16087:27;15936:184;15874:246;;;:::o;16126:353::-;16202:3;16230:38;16262:5;16230:38;:::i;:::-;16284:60;16337:6;16332:3;16284:60;:::i;:::-;16277:67;;16353:65;16411:6;16406:3;16399:4;16392:5;16388:16;16353:65;:::i;:::-;16443:29;16465:6;16443:29;:::i;:::-;16438:3;16434:39;16427:46;;16206:273;16126:353;;;;:::o;16559:616::-;16670:3;16706:4;16701:3;16697:14;16795:4;16788:5;16784:16;16778:23;16814:81;16889:4;16884:3;16880:14;16866:12;16814:81;:::i;:::-;16721:184;16987:4;16980:5;16976:16;16970:23;17040:3;17034:4;17030:14;17023:4;17018:3;17014:14;17007:38;17066:71;17132:4;17118:12;17066:71;:::i;:::-;17058:79;;16915:233;17165:4;17158:11;;16675:500;16559:616;;;;:::o;17181:260::-;17302:10;17337:98;17431:3;17423:6;17337:98;:::i;:::-;17323:112;;17181:260;;;;:::o;17447:139::-;17543:4;17575;17570:3;17566:14;17558:22;;17447:139;;;:::o;17670:1099::-;17831:3;17860:80;17934:5;17860:80;:::i;:::-;17956:102;18051:6;18046:3;17956:102;:::i;:::-;17949:109;;18084:3;18129:4;18121:6;18117:17;18112:3;18108:27;18159:82;18235:5;18159:82;:::i;:::-;18264:7;18295:1;18280:444;18305:6;18302:1;18299:13;18280:444;;;18376:9;18370:4;18366:20;18361:3;18354:33;18427:6;18421:13;18455:116;18566:4;18551:13;18455:116;:::i;:::-;18447:124;;18594:86;18673:6;18594:86;:::i;:::-;18584:96;;18709:4;18704:3;18700:14;18693:21;;18340:384;18327:1;18324;18320:9;18315:14;;18280:444;;;18284:14;18740:4;18733:11;;18760:3;18753:10;;17836:933;;;;;17670:1099;;;;:::o;18855:698::-;18982:3;19018:4;19013:3;19009:14;19109:4;19102:5;19098:16;19092:23;19162:3;19156:4;19152:14;19145:4;19140:3;19136:14;19129:38;19188:155;19338:4;19324:12;19188:155;:::i;:::-;19180:163;;19033:321;19434:4;19427:5;19423:16;19417:23;19453:63;19510:4;19505:3;19501:14;19487:12;19453:63;:::i;:::-;19364:162;19543:4;19536:11;;18987:566;18855:698;;;;:::o;19559:389::-;19710:4;19748:2;19737:9;19733:18;19725:26;;19797:9;19791:4;19787:20;19783:1;19772:9;19768:17;19761:47;19825:116;19936:4;19927:6;19825:116;:::i;:::-;19817:124;;19559:389;;;;:::o;19954:99::-;20006:6;20040:5;20034:12;20024:22;;19954:99;;;:::o;20059:169::-;20143:11;20177:6;20172:3;20165:19;20217:4;20212:3;20208:14;20193:29;;20059:169;;;;:::o;20234:377::-;20322:3;20350:39;20383:5;20350:39;:::i;:::-;20405:71;20469:6;20464:3;20405:71;:::i;:::-;20398:78;;20485:65;20543:6;20538:3;20531:4;20524:5;20520:16;20485:65;:::i;:::-;20575:29;20597:6;20575:29;:::i;:::-;20570:3;20566:39;20559:46;;20326:285;20234:377;;;;:::o;20617:313::-;20730:4;20768:2;20757:9;20753:18;20745:26;;20817:9;20811:4;20807:20;20803:1;20792:9;20788:17;20781:47;20845:78;20918:4;20909:6;20845:78;:::i;:::-;20837:86;;20617:313;;;;:::o;20936:619::-;21013:6;21021;21029;21078:2;21066:9;21057:7;21053:23;21049:32;21046:119;;;21084:79;;:::i;:::-;21046:119;21204:1;21229:53;21274:7;21265:6;21254:9;21250:22;21229:53;:::i;:::-;21219:63;;21175:117;21331:2;21357:53;21402:7;21393:6;21382:9;21378:22;21357:53;:::i;:::-;21347:63;;21302:118;21459:2;21485:53;21530:7;21521:6;21510:9;21506:22;21485:53;:::i;:::-;21475:63;;21430:118;20936:619;;;;;:::o;21561:672::-;21640:6;21648;21656;21705:2;21693:9;21684:7;21680:23;21676:32;21673:119;;;21711:79;;:::i;:::-;21673:119;21831:1;21856:53;21901:7;21892:6;21881:9;21877:22;21856:53;:::i;:::-;21846:63;;21802:117;21986:2;21975:9;21971:18;21958:32;22017:18;22009:6;22006:30;22003:117;;;22039:79;;:::i;:::-;22003:117;22152:64;22208:7;22199:6;22188:9;22184:22;22152:64;:::i;:::-;22134:82;;;;21929:297;21561:672;;;;;:::o;22278:1268::-;22357:5;22401:4;22389:9;22384:3;22380:19;22376:30;22373:117;;;22409:79;;:::i;:::-;22373:117;22508:21;22524:4;22508:21;:::i;:::-;22499:30;;22593:1;22633:48;22677:3;22668:6;22657:9;22653:22;22633:48;:::i;:::-;22626:4;22619:5;22615:16;22608:74;22539:154;22755:2;22796:48;22840:3;22831:6;22820:9;22816:22;22796:48;:::i;:::-;22789:4;22782:5;22778:16;22771:74;22703:153;22930:2;22971:48;23015:3;23006:6;22995:9;22991:22;22971:48;:::i;:::-;22964:4;22957:5;22953:16;22946:74;22866:165;23099:2;23140:49;23185:3;23176:6;23165:9;23161:22;23140:49;:::i;:::-;23133:4;23126:5;23122:16;23115:75;23041:160;23270:3;23312:49;23357:3;23348:6;23337:9;23333:22;23312:49;:::i;:::-;23305:4;23298:5;23294:16;23287:75;23211:162;23436:3;23478:49;23523:3;23514:6;23503:9;23499:22;23478:49;:::i;:::-;23471:4;23464:5;23460:16;23453:75;23383:156;22278:1268;;;;:::o;23552:535::-;23650:6;23658;23707:3;23695:9;23686:7;23682:23;23678:33;23675:120;;;23714:79;;:::i;:::-;23675:120;23834:1;23859:53;23904:7;23895:6;23884:9;23880:22;23859:53;:::i;:::-;23849:63;;23805:117;23961:2;23987:83;24062:7;24053:6;24042:9;24038:22;23987:83;:::i;:::-;23977:93;;23932:148;23552:535;;;;;:::o;24179:751::-;24348:4;24343:3;24339:14;24457:4;24450:5;24446:16;24440:23;24476:63;24533:4;24528:3;24524:14;24510:12;24476:63;:::i;:::-;24363:186;24652:4;24645:5;24641:16;24635:23;24671:63;24728:4;24723:3;24719:14;24705:12;24671:63;:::i;:::-;24559:185;24831:4;24824:5;24820:16;24814:23;24850:63;24907:4;24902:3;24898:14;24884:12;24850:63;:::i;:::-;24754:169;24317:613;24179:751;;:::o;24936:366::-;25101:4;25139:2;25128:9;25124:18;25116:26;;25152:143;25292:1;25281:9;25277:17;25268:6;25152:143;:::i;:::-;24936:366;;;;:::o;25308:474::-;25376:6;25384;25433:2;25421:9;25412:7;25408:23;25404:32;25401:119;;;25439:79;;:::i;:::-;25401:119;25559:1;25584:53;25629:7;25620:6;25609:9;25605:22;25584:53;:::i;:::-;25574:63;;25530:117;25686:2;25712:53;25757:7;25748:6;25737:9;25733:22;25712:53;:::i;:::-;25702:63;;25657:118;25308:474;;;;;:::o;25788:765::-;25874:6;25882;25890;25898;25947:3;25935:9;25926:7;25922:23;25918:33;25915:120;;;25954:79;;:::i;:::-;25915:120;26074:1;26099:53;26144:7;26135:6;26124:9;26120:22;26099:53;:::i;:::-;26089:63;;26045:117;26201:2;26227:53;26272:7;26263:6;26252:9;26248:22;26227:53;:::i;:::-;26217:63;;26172:118;26329:2;26355:53;26400:7;26391:6;26380:9;26376:22;26355:53;:::i;:::-;26345:63;;26300:118;26457:2;26483:53;26528:7;26519:6;26508:9;26504:22;26483:53;:::i;:::-;26473:63;;26428:118;25788:765;;;;;;;:::o;26573:553::-;26631:8;26641:6;26691:3;26684:4;26676:6;26672:17;26668:27;26658:122;;26699:79;;:::i;:::-;26658:122;26812:6;26799:20;26789:30;;26842:18;26834:6;26831:30;26828:117;;;26864:79;;:::i;:::-;26828:117;26978:4;26970:6;26966:17;26954:29;;27032:3;27024:4;27016:6;27012:17;27002:8;26998:32;26995:41;26992:128;;;27039:79;;:::i;:::-;26992:128;26573:553;;;;;:::o;27132:1549::-;27266:6;27274;27282;27290;27298;27306;27314;27322;27330;27379:3;27367:9;27358:7;27354:23;27350:33;27347:120;;;27386:79;;:::i;:::-;27347:120;27506:1;27531:53;27576:7;27567:6;27556:9;27552:22;27531:53;:::i;:::-;27521:63;;27477:117;27633:2;27659:53;27704:7;27695:6;27684:9;27680:22;27659:53;:::i;:::-;27649:63;;27604:118;27761:2;27787:53;27832:7;27823:6;27812:9;27808:22;27787:53;:::i;:::-;27777:63;;27732:118;27889:2;27915:53;27960:7;27951:6;27940:9;27936:22;27915:53;:::i;:::-;27905:63;;27860:118;28017:3;28044:53;28089:7;28080:6;28069:9;28065:22;28044:53;:::i;:::-;28034:63;;27988:119;28146:3;28173:53;28218:7;28209:6;28198:9;28194:22;28173:53;:::i;:::-;28163:63;;28117:119;28275:3;28302:53;28347:7;28338:6;28327:9;28323:22;28302:53;:::i;:::-;28292:63;;28246:119;28432:3;28421:9;28417:19;28404:33;28464:18;28456:6;28453:30;28450:117;;;28486:79;;:::i;:::-;28450:117;28599:65;28656:7;28647:6;28636:9;28632:22;28599:65;:::i;:::-;28581:83;;;;28375:299;27132:1549;;;;;;;;;;;:::o;28687:102::-;28729:8;28776:5;28773:1;28769:13;28748:34;;28687:102;;;:::o;28795:114::-;28844:7;28884:18;28877:5;28873:30;28862:41;;28795:114;;;:::o;28915:164::-;28983:5;29008:65;29038:34;29061:10;29038:34;:::i;:::-;29008:65;:::i;:::-;28999:74;;28915:164;;;:::o;29085:104::-;29128:8;29176:5;29172:2;29168:14;29147:35;;29085:104;;;:::o;29195:165::-;29263:5;29288:66;29318:35;29342:10;29318:35;:::i;:::-;29288:66;:::i;:::-;29279:75;;29195:165;;;:::o;29366:106::-;29410:8;29459:5;29454:3;29450:15;29429:36;;29366:106;;;:::o;29478:167::-;29547:5;29572:67;29602:36;29627:10;29602:36;:::i;:::-;29572:67;:::i;:::-;29563:76;;29478:167;;;:::o;29651:90::-;29701:7;29730:5;29719:16;;29651:90;;;:::o;29747:166::-;29816:5;29841:66;29872:34;29895:10;29872:34;:::i;:::-;29841:66;:::i;:::-;29832:75;;29747:166;;;:::o;29919:139::-;29969:7;30009:42;30002:5;29998:54;29987:65;;29919:139;;;:::o;30064:166::-;30133:5;30158:66;30189:34;30212:10;30189:34;:::i;:::-;30158:66;:::i;:::-;30149:75;;30064:166;;;:::o;30310:1659::-;30464:4;30459:3;30455:14;30495:1;30575:4;30568:5;30564:16;30558:23;30545:36;;30614:54;30658:9;30614:54;:::i;:::-;30681:61;30736:4;30731:3;30727:14;30713:12;30681:61;:::i;:::-;30506:246;30820:54;30864:9;30820:54;:::i;:::-;30887:61;30942:4;30937:3;30933:14;30919:12;30887:61;:::i;:::-;30762:196;31038:55;31083:9;31038:55;:::i;:::-;31106:61;31161:4;31156:3;31152:14;31138:12;31106:61;:::i;:::-;30968:209;31260:4;31253:5;31249:16;31243:23;31230:36;;31299:55;31344:9;31299:55;:::i;:::-;31367:63;31424:4;31419:3;31415:14;31401:12;31367:63;:::i;:::-;31187:253;31524:4;31517:5;31513:16;31507:23;31494:36;;31563:55;31608:9;31563:55;:::i;:::-;31631:63;31688:4;31683:3;31679:14;31665:12;31631:63;:::i;:::-;31450:254;31782:4;31775:5;31771:16;31765:23;31752:36;;31821:55;31866:9;31821:55;:::i;:::-;31889:63;31946:4;31941:3;31937:14;31923:12;31889:63;:::i;:::-;31714:248;30433:1536;;30310:1659;;:::o;31975:337::-;32125:4;32163:3;32152:9;32148:19;32140:27;;32177:128;32302:1;32291:9;32287:17;32278:6;32177:128;:::i;:::-;31975:337;;;;:::o;32318:180::-;32366:77;32363:1;32356:88;32463:4;32460:1;32453:15;32487:4;32484:1;32477:15;32504:205;32543:3;32562:19;32579:1;32562:19;:::i;:::-;32557:24;;32595:19;32612:1;32595:19;:::i;:::-;32590:24;;32637:1;32634;32630:9;32623:16;;32660:18;32655:3;32652:27;32649:53;;;32682:18;;:::i;:::-;32649:53;32504:205;;;;:::o;32715:410::-;32755:7;32778:20;32796:1;32778:20;:::i;:::-;32773:25;;32812:20;32830:1;32812:20;:::i;:::-;32807:25;;32867:1;32864;32860:9;32889:30;32907:11;32889:30;:::i;:::-;32878:41;;33068:1;33059:7;33055:15;33052:1;33049:22;33029:1;33022:9;33002:83;32979:139;;33098:18;;:::i;:::-;32979:139;32763:362;32715:410;;;;:::o;33131:180::-;33179:77;33176:1;33169:88;33276:4;33273:1;33266:15;33300:4;33297:1;33290:15;33317:185;33357:1;33374:20;33392:1;33374:20;:::i;:::-;33369:25;;33408:20;33426:1;33408:20;:::i;:::-;33403:25;;33447:1;33437:35;;33452:18;;:::i;:::-;33437:35;33494:1;33491;33487:9;33482:14;;33317:185;;;;:::o;33508:191::-;33548:3;33567:20;33585:1;33567:20;:::i;:::-;33562:25;;33601:20;33619:1;33601:20;:::i;:::-;33596:25;;33644:1;33641;33637:9;33630:16;;33665:3;33662:1;33659:10;33656:36;;;33672:18;;:::i;:::-;33656:36;33508:191;;;;:::o;33705:194::-;33745:4;33765:20;33783:1;33765:20;:::i;:::-;33760:25;;33799:20;33817:1;33799:20;:::i;:::-;33794:25;;33843:1;33840;33836:9;33828:17;;33867:1;33861:4;33858:11;33855:37;;;33872:18;;:::i;:::-;33855:37;33705:194;;;;:::o;33905:143::-;33962:5;33993:6;33987:13;33978:22;;34009:33;34036:5;34009:33;:::i;:::-;33905:143;;;;:::o;34054:351::-;34124:6;34173:2;34161:9;34152:7;34148:23;34144:32;34141:119;;;34179:79;;:::i;:::-;34141:119;34299:1;34324:64;34380:7;34371:6;34360:9;34356:22;34324:64;:::i;:::-;34314:74;;34270:128;34054:351;;;;:::o;34411:85::-;34456:7;34485:5;34474:16;;34411:85;;;:::o;34502:86::-;34537:7;34577:4;34570:5;34566:16;34555:27;;34502:86;;;:::o;34594:60::-;34622:3;34643:5;34636:12;;34594:60;;;:::o;34660:154::-;34716:9;34749:59;34765:42;34774:32;34800:5;34774:32;:::i;:::-;34765:42;:::i;:::-;34749:59;:::i;:::-;34736:72;;34660:154;;;:::o;34820:143::-;34913:43;34950:5;34913:43;:::i;:::-;34908:3;34901:56;34820:143;;:::o;34969:234::-;35068:4;35106:2;35095:9;35091:18;35083:26;;35119:77;35193:1;35182:9;35178:17;35169:6;35119:77;:::i;:::-;34969:234;;;;:::o;35209:332::-;35330:4;35368:2;35357:9;35353:18;35345:26;;35381:71;35449:1;35438:9;35434:17;35425:6;35381:71;:::i;:::-;35462:72;35530:2;35519:9;35515:18;35506:6;35462:72;:::i;:::-;35209:332;;;;;:::o;35547:168::-;35630:11;35664:6;35659:3;35652:19;35704:4;35699:3;35695:14;35680:29;;35547:168;;;;:::o;35721:114::-;;:::o;35841:362::-;35982:3;36003:65;36066:1;36061:3;36003:65;:::i;:::-;35996:72;;36077:93;36166:3;36077:93;:::i;:::-;36195:1;36190:3;36186:11;36179:18;;35841:362;;;:::o;36209:748::-;36458:4;36496:3;36485:9;36481:19;36473:27;;36510:71;36578:1;36567:9;36563:17;36554:6;36510:71;:::i;:::-;36591:72;36659:2;36648:9;36644:18;36635:6;36591:72;:::i;:::-;36673;36741:2;36730:9;36726:18;36717:6;36673:72;:::i;:::-;36792:9;36786:4;36782:20;36777:2;36766:9;36762:18;36755:48;36820:130;36945:4;36820:130;:::i;:::-;36812:138;;36209:748;;;;;;:::o;36963:146::-;37060:6;37055:3;37050;37037:30;37101:1;37092:6;37087:3;37083:16;37076:27;36963:146;;;:::o;37139:317::-;37237:3;37258:71;37322:6;37317:3;37258:71;:::i;:::-;37251:78;;37339:56;37388:6;37383:3;37376:5;37339:56;:::i;:::-;37420:29;37442:6;37420:29;:::i;:::-;37415:3;37411:39;37404:46;;37139:317;;;;;:::o;37462:443::-;37613:4;37651:2;37640:9;37636:18;37628:26;;37664:71;37732:1;37721:9;37717:17;37708:6;37664:71;:::i;:::-;37782:9;37776:4;37772:20;37767:2;37756:9;37752:18;37745:48;37810:88;37893:4;37884:6;37876;37810:88;:::i;:::-;37802:96;;37462:443;;;;;;:::o;37911:181::-;38051:33;38047:1;38039:6;38035:14;38028:57;37911:181;:::o;38098:366::-;38240:3;38261:67;38325:2;38320:3;38261:67;:::i;:::-;38254:74;;38337:93;38426:3;38337:93;:::i;:::-;38455:2;38450:3;38446:12;38439:19;;38098:366;;;:::o;38470:419::-;38636:4;38674:2;38663:9;38659:18;38651:26;;38723:9;38717:4;38713:20;38709:1;38698:9;38694:17;38687:47;38751:131;38877:4;38751:131;:::i;:::-;38743:139;;38470:419;;;:::o;38895:143::-;38952:5;38983:6;38977:13;38968:22;;38999:33;39026:5;38999:33;:::i;:::-;38895:143;;;;:::o;39044:351::-;39114:6;39163:2;39151:9;39142:7;39138:23;39134:32;39131:119;;;39169:79;;:::i;:::-;39131:119;39289:1;39314:64;39370:7;39361:6;39350:9;39346:22;39314:64;:::i;:::-;39304:74;;39260:128;39044:351;;;;:::o;39401:997::-;39690:4;39728:3;39717:9;39713:19;39705:27;;39742:71;39810:1;39799:9;39795:17;39786:6;39742:71;:::i;:::-;39823:72;39891:2;39880:9;39876:18;39867:6;39823:72;:::i;:::-;39905;39973:2;39962:9;39958:18;39949:6;39905:72;:::i;:::-;39987;40055:2;40044:9;40040:18;40031:6;39987:72;:::i;:::-;40069:73;40137:3;40126:9;40122:19;40113:6;40069:73;:::i;:::-;40152;40220:3;40209:9;40205:19;40196:6;40152:73;:::i;:::-;40235;40303:3;40292:9;40288:19;40279:6;40235:73;:::i;:::-;40318;40386:3;40375:9;40371:19;40362:6;40318:73;:::i;:::-;39401:997;;;;;;;;;;;:::o;40404:332::-;40525:4;40563:2;40552:9;40548:18;40540:26;;40576:71;40644:1;40633:9;40629:17;40620:6;40576:71;:::i;:::-;40657:72;40725:2;40714:9;40710:18;40701:6;40657:72;:::i;:::-;40404:332;;;;;:::o;40742:442::-;40891:4;40929:2;40918:9;40914:18;40906:26;;40942:71;41010:1;40999:9;40995:17;40986:6;40942:71;:::i;:::-;41023:72;41091:2;41080:9;41076:18;41067:6;41023:72;:::i;:::-;41105;41173:2;41162:9;41158:18;41149:6;41105:72;:::i;:::-;40742:442;;;;;;:::o;41190:147::-;41291:11;41328:3;41313:18;;41190:147;;;;:::o;41343:398::-;41502:3;41523:83;41604:1;41599:3;41523:83;:::i;:::-;41516:90;;41615:93;41704:3;41615:93;:::i;:::-;41733:1;41728:3;41724:11;41717:18;;41343:398;;;:::o;41747:379::-;41931:3;41953:147;42096:3;41953:147;:::i;:::-;41946:154;;42117:3;42110:10;;41747:379;;;:::o;42132:116::-;42202:21;42217:5;42202:21;:::i;:::-;42195:5;42192:32;42182:60;;42238:1;42235;42228:12;42182:60;42132:116;:::o;42254:137::-;42308:5;42339:6;42333:13;42324:22;;42355:30;42379:5;42355:30;:::i;:::-;42254:137;;;;:::o;42397:345::-;42464:6;42513:2;42501:9;42492:7;42488:23;42484:32;42481:119;;;42519:79;;:::i;:::-;42481:119;42639:1;42664:61;42717:7;42708:6;42697:9;42693:22;42664:61;:::i;:::-;42654:71;;42610:125;42397:345;;;;:::o;42748:229::-;42888:34;42884:1;42876:6;42872:14;42865:58;42957:12;42952:2;42944:6;42940:15;42933:37;42748:229;:::o;42983:366::-;43125:3;43146:67;43210:2;43205:3;43146:67;:::i;:::-;43139:74;;43222:93;43311:3;43222:93;:::i;:::-;43340:2;43335:3;43331:12;43324:19;;42983:366;;;:::o;43355:419::-;43521:4;43559:2;43548:9;43544:18;43536:26;;43608:9;43602:4;43598:20;43594:1;43583:9;43579:17;43572:47;43636:131;43762:4;43636:131;:::i;:::-;43628:139;;43355:419;;;:::o;43780:225::-;43920:34;43916:1;43908:6;43904:14;43897:58;43989:8;43984:2;43976:6;43972:15;43965:33;43780:225;:::o;44011:366::-;44153:3;44174:67;44238:2;44233:3;44174:67;:::i;:::-;44167:74;;44250:93;44339:3;44250:93;:::i;:::-;44368:2;44363:3;44359:12;44352:19;;44011:366;;;:::o;44383:419::-;44549:4;44587:2;44576:9;44572:18;44564:26;;44636:9;44630:4;44626:20;44622:1;44611:9;44607:17;44600:47;44664:131;44790:4;44664:131;:::i;:::-;44656:139;;44383:419;;;:::o;44808:386::-;44912:3;44940:38;44972:5;44940:38;:::i;:::-;44994:88;45075:6;45070:3;44994:88;:::i;:::-;44987:95;;45091:65;45149:6;45144:3;45137:4;45130:5;45126:16;45091:65;:::i;:::-;45181:6;45176:3;45172:16;45165:23;;44916:278;44808:386;;;;:::o;45200:271::-;45330:3;45352:93;45441:3;45432:6;45352:93;:::i;:::-;45345:100;;45462:3;45455:10;;45200:271;;;;:::o;45477:179::-;45617:31;45613:1;45605:6;45601:14;45594:55;45477:179;:::o;45662:366::-;45804:3;45825:67;45889:2;45884:3;45825:67;:::i;:::-;45818:74;;45901:93;45990:3;45901:93;:::i;:::-;46019:2;46014:3;46010:12;46003:19;;45662:366;;;:::o;46034:419::-;46200:4;46238:2;46227:9;46223:18;46215:26;;46287:9;46281:4;46277:20;46273:1;46262:9;46258:17;46251:47;46315:131;46441:4;46315:131;:::i;:::-;46307:139;;46034:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","buildSalesConfigForPremint((uint64,uint64,uint256,address,address))":"2206a675","cancelOwnershipTransfer()":"23452b9c","computePaidMintRewards(uint256)":"5c046084","computeReward(uint256,uint256)":"e2ebba29","computeTotalReward(uint256)":"4132239b","contractName()":"75d0c0dc","contractURI()":"e8a3d485","contractVersion()":"a0a8e460","ethRewardAmount()":"96325a5a","getCreateReferral(address,uint256)":"5d759bd8","getERC20MinterConfig()":"e1bf91e9","getFirstMinter(address,uint256)":"ac973d5b","getMintedPerWallet(address,uint256,address)":"7b49ff2c","initialize(address,address,uint256,uint256)":"eb990c59","mint(address,uint256,address,uint256,uint256,address,address,string)":"f54f216a","minterConfig()":"2f8dccbc","owner()":"8da5cb5b","pendingOwner()":"e30c3978","requestMint(address,uint256,uint256,uint256,bytes)":"6890e5b3","resetSale(uint256)":"19b45c4f","resignOwnership()":"ed0c7091","safeTransferOwnership(address)":"395db2cd","sale(address,uint256)":"611efc09","setERC20MinterConfig((address,uint256,uint256))":"2492f887","setPremintSale(uint256,bytes)":"a8094d05","setSale(uint256,(uint64,uint64,uint64,uint256,address,address))":"ce35b8af","supportsInterface(bytes4)":"01ffc9a7","totalRewardPct()":"62b60245","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC20TransferSlippage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedToSendEthReward\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCurrency\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expectedValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualValue\",\"type\":\"uint256\"}],\"name\":\"InvalidETHValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ONLY_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ONLY_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OWNER_CANNOT_BE_ZERO_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PricePerTokenTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RequestMintInvalidUseMint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaleEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaleHasNotStarted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"}],\"name\":\"UserExceedsMintLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongValueSent\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"zoraRewardRecipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardRecipientPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IERC20Minter.ERC20MinterConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"ERC20MinterConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"createReferral\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mintReferral\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"firstMinter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zora\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"createReferralReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintReferralReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstMinterReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zoraReward\",\"type\":\"uint256\"}],\"name\":\"ERC20RewardsDeposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"comment\",\"type\":\"string\"}],\"name\":\"MintComment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"canceledOwner\",\"type\":\"address\"}],\"name\":\"OwnerCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnerPending\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mediaContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"saleStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"saleEnd\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct IERC20Minter.SalesConfig\",\"name\":\"salesConfig\",\"type\":\"tuple\"}],\"name\":\"SaleSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"internalType\":\"struct IERC20Minter.PremintSalesConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"buildSalesConfigForPremint\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"saleStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"saleEnd\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"internalType\":\"struct IERC20Minter.SalesConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalReward\",\"type\":\"uint256\"}],\"name\":\"computePaidMintRewards\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createReferralReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintReferralReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zoraReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"firstMinterReward\",\"type\":\"uint256\"}],\"internalType\":\"struct IERC20Minter.RewardsSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPct\",\"type\":\"uint256\"}],\"name\":\"computeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"name\":\"computeTotalReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethRewardAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getCreateReferral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"createReferral\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getERC20MinterConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"zoraRewardRecipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardRecipientPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"}],\"internalType\":\"struct IERC20Minter.ERC20MinterConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFirstMinter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"firstMinter\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"}],\"name\":\"getMintedPerWallet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_zoraRewardRecipientAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_rewardPct\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_ethReward\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"mintTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mintReferral\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"comment\",\"type\":\"string\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minterConfig\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"zoraRewardRecipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardRecipientPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"requestMint\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum ICreatorCommands.CreatorActions\",\"name\":\"method\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"args\",\"type\":\"bytes\"}],\"internalType\":\"struct ICreatorCommands.Command[]\",\"name\":\"commands\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"at\",\"type\":\"uint256\"}],\"internalType\":\"struct ICreatorCommands.CommandSet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"resetSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resignOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"safeTransferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sale\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"saleStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"saleEnd\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"internalType\":\"struct IERC20Minter.SalesConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"zoraRewardRecipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardRecipientPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"}],\"internalType\":\"struct IERC20Minter.ERC20MinterConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setERC20MinterConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedPremintSalesConfig\",\"type\":\"bytes\"}],\"name\":\"setPremintSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"saleStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"saleEnd\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"internalType\":\"struct IERC20Minter.SalesConfig\",\"name\":\"salesConfig\",\"type\":\"tuple\"}],\"name\":\"setSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRewardPct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@isabellasmallcombe\",\"details\":\"While this contract _looks_ like a minter, we need to be able to directly manage ERC20 tokens. Therefore, we need to establish minter permissions but instead of using the `requestMint` flow we directly request tokens to be minted in order to safely handle the incoming ERC20 tokens.\",\"errors\":{\"InvalidETHValue(uint256,uint256)\":[{\"params\":{\"actualValue\":\"The actual value\",\"expectedValue\":\"The expected value\"}}],\"ONLY_OWNER()\":[{\"details\":\"Reverts if an unauthorized user calls an owner function\"}],\"ONLY_PENDING_OWNER()\":[{\"details\":\"Reverts if an unauthorized user calls a pending owner function\"}],\"OWNER_CANNOT_BE_ZERO_ADDRESS()\":[{\"details\":\"Owner cannot be the zero/burn address\"}]},\"kind\":\"dev\",\"methods\":{\"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))\":{\"params\":{\"config\":\"The PremintSalesConfig to build the SalesConfig from\"}},\"computePaidMintRewards(uint256)\":{\"params\":{\"totalReward\":\"The total reward to be distributed\"}},\"computeReward(uint256,uint256)\":{\"params\":{\"rewardPct\":\"The percentage of the reward to be distributed\",\"totalReward\":\"The total reward to be distributed\"}},\"computeTotalReward(uint256)\":{\"params\":{\"totalValue\":\"The total number of ERC20 tokens\"}},\"getCreateReferral(address,uint256)\":{\"params\":{\"tokenContract\":\"The address of the token contract\",\"tokenId\":\"The ID of the token\"}},\"getFirstMinter(address,uint256)\":{\"params\":{\"tokenContract\":\"The address of the token contract\",\"tokenId\":\"The ID of the token\"}},\"initialize(address,address,uint256,uint256)\":{\"details\":\"Allows deterministic contract address, called on deploy\"},\"mint(address,uint256,address,uint256,uint256,address,address,string)\":{\"params\":{\"comment\":\"The optional mint comment\",\"currency\":\"The address of the currency to use for the mint\",\"mintReferral\":\"The address of the mint referral\",\"mintTo\":\"The address to mint the token to\",\"quantity\":\"The quantity of tokens to mint\",\"tokenAddress\":\"The address of the token to mint\",\"tokenId\":\"The ID of the token to mint\",\"totalValue\":\"The total value of the mint\"}},\"resetSale(uint256)\":{\"params\":{\"tokenId\":\"The ID of the token to reset the sale config for\"}},\"resignOwnership()\":{\"details\":\"only callably by the owner, dangerous call.\"},\"safeTransferOwnership(address)\":{\"params\":{\"_newOwner\":\"The new owner address\"}},\"sale(address,uint256)\":{\"params\":{\"tokenContract\":\"The TokenContract address\",\"tokenId\":\"The ID of the token to get the sale config for\"}},\"setERC20MinterConfig((address,uint256,uint256))\":{\"params\":{\"config\":\"The ERC20MinterConfig to set\"}},\"setPremintSale(uint256,bytes)\":{\"params\":{\"encodedPremintSalesConfig\":\"The abi encoded PremintSalesConfig\",\"tokenId\":\"The ID of the token to set the sale config for\"}},\"setSale(uint256,(uint64,uint64,uint64,uint256,address,address))\":{\"params\":{\"salesConfig\":\"The sale config to set\",\"tokenId\":\"The ID of the token to set the sale config for\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The interface ID to check\"}},\"transferOwnership(address)\":{\"params\":{\"_newOwner\":\"The new owner address\"}}},\"stateVariables\":{\"salesConfigs\":{\"details\":\"1155 token address => 1155 token id => SalesConfig\"}},\"title\":\"ERC20Minter\",\"version\":1},\"userdoc\":{\"errors\":{\"AddressZero()\":[{\"notice\":\"Cannot set address to zero\"}],\"ERC20TransferSlippage()\":[{\"notice\":\"ERC20 transfer slippage\"}],\"FailedToSendEthReward()\":[{\"notice\":\"Failed to send ETH reward\"}],\"InvalidCurrency()\":[{\"notice\":\"Cannot set currency address to zero\"}],\"InvalidETHValue(uint256,uint256)\":[{\"notice\":\"Invalid value for ETH reward\"}],\"InvalidValue()\":[{\"notice\":\"Invalid value\"}],\"PricePerTokenTooLow()\":[{\"notice\":\"Price per ERC20 token is too low\"}],\"RequestMintInvalidUseMint()\":[{\"notice\":\"requestMint() is not used in ERC20 minter, use mint() instead\"}],\"SaleEnded()\":[{\"notice\":\"Sale has already ended\"}],\"SaleHasNotStarted()\":[{\"notice\":\"Sale has not started yet\"}],\"WrongValueSent()\":[{\"notice\":\"Value sent is incorrect\"}]},\"events\":{\"ERC20MinterConfigSet((address,uint256,uint256))\":{\"notice\":\"ERC20MinterConfigSet Event\"},\"ERC20RewardsDeposit(address,address,address,address,address,address,uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"Rewards Deposit Event\"},\"MintComment(address,address,uint256,uint256,string)\":{\"notice\":\"MintComment Event\"},\"OwnerCanceled(address,address)\":{\"notice\":\"Emitted when a pending ownership transfer has been canceled\"},\"OwnerPending(address,address)\":{\"notice\":\"Emitted when an ownership transfer is pending\"},\"OwnerUpdated(address,address)\":{\"notice\":\"Emitted when ownership has been updated\"},\"SaleSet(address,uint256,(uint64,uint64,uint64,uint256,address,address))\":{\"notice\":\"SaleSet Event\"}},\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Accepts an ownership transfer\"},\"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))\":{\"notice\":\"Dynamically builds a SalesConfig from a PremintSalesConfig taking into consideration the current block timestamp and the PremintSalesConfig's duration.\"},\"cancelOwnershipTransfer()\":{\"notice\":\"Cancels a pending ownership transfer\"},\"computePaidMintRewards(uint256)\":{\"notice\":\"Computes the rewards for an ERC20 mint\"},\"computeReward(uint256,uint256)\":{\"notice\":\"Computes the rewards value given an amount and a reward percentage\"},\"computeTotalReward(uint256)\":{\"notice\":\"Computes the total reward value for a given amount of ERC20 tokens\"},\"contractName()\":{\"notice\":\"The name of the contract\"},\"contractURI()\":{\"notice\":\"The URI of the contract\"},\"contractVersion()\":{\"notice\":\"The version of the contract\"},\"ethRewardAmount()\":{\"notice\":\"The amount of ETH distributed as rewards\"},\"getCreateReferral(address,uint256)\":{\"notice\":\"Gets the create referral address for a given token\"},\"getERC20MinterConfig()\":{\"notice\":\"Gets the ERC20MinterConfig\"},\"getFirstMinter(address,uint256)\":{\"notice\":\"Gets the first minter address for a given token\"},\"initialize(address,address,uint256,uint256)\":{\"notice\":\"Initializes the contract with a Zora rewards recipient address\"},\"mint(address,uint256,address,uint256,uint256,address,address,string)\":{\"notice\":\"Mints a token using an ERC20 currency, note the total value must have been approved prior to calling this function\"},\"minterConfig()\":{\"notice\":\"The ERC20 minter configuration\"},\"owner()\":{\"notice\":\"The address of the owner\"},\"pendingOwner()\":{\"notice\":\"The address of the pending owner\"},\"requestMint(address,uint256,uint256,uint256,bytes)\":{\"notice\":\"Reverts as `requestMint` is not used in the ERC20 minter. Call `mint` instead.\"},\"resetSale(uint256)\":{\"notice\":\"Deletes the sale config for a given token\"},\"resignOwnership()\":{\"notice\":\"Resign ownership of contract\"},\"safeTransferOwnership(address)\":{\"notice\":\"Initiates a two-step ownership transfer\"},\"sale(address,uint256)\":{\"notice\":\"Returns the sale config for a given token\"},\"setERC20MinterConfig((address,uint256,uint256))\":{\"notice\":\"Sets the ERC20MinterConfig\"},\"setPremintSale(uint256,bytes)\":{\"notice\":\"Sets the sales config based for the msg.sender on the tokenId from the abi encoded premint sales config by abi decoding it and dynamically building the SalesConfig. The saleStart will be the current block timestamp and saleEnd will be the current block timestamp + the duration in the PremintSalesConfig.\"},\"setSale(uint256,(uint64,uint64,uint64,uint256,address,address))\":{\"notice\":\"Sets the sale config for a given token\"},\"supportsInterface(bytes4)\":{\"notice\":\"IERC165 interface support\"},\"totalRewardPct()\":{\"notice\":\"The percentage of the total value that is distributed as rewards\"},\"transferOwnership(address)\":{\"notice\":\"Forces an ownership transfer from the last owner\"}},\"notice\":\"Allows for ZoraCreator Mints to be purchased using ERC20 tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/minters/erc20/ERC20Minter.sol\":\"ERC20Minter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":0},\"remappings\":[\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@zoralabs/mints-contracts/src/=node_modules/@zoralabs/mints-contracts/src/\",\":@zoralabs/openzeppelin-contracts-upgradeable/=node_modules/@zoralabs/openzeppelin-contracts-upgradeable/\",\":@zoralabs/protocol-rewards/src/=node_modules/@zoralabs/protocol-rewards/src/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":_imagine/=_imagine/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":mint/=_imagine/mint/\",\":solady/=node_modules/solady/src/\",\":solemate/=/node_modules/solemate/src/\",\":solmate/=node_modules/solmate/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"node_modules/@zoralabs/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC165Upgradeable.sol\":{\"keccak256\":\"0x121966b3220d263a6669dcf59c1254bd48ed237adf4d8a595add70a7927eada1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://440dc242517ca29e9802f32dd237a185b4f7aaab67ceb2c1d6307c57636e0904\",\"dweb:/ipfs/QmeQZeMCMmxca8hA4oUFXEwLAzspiwMTQ9CaqFQutYk9ag\"]},\"node_modules/@zoralabs/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x5e725d04c2ab3be6f5f3d88f9765bdc4f348bd1dcc8721988e4b2dc23c9aaafa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30307e26bb2029e987452d3e51e9242694604f53c5ec85e63e60d334e6c03648\",\"dweb:/ipfs/QmPKGiZpSC8LtRWfGhvTbCgefg9TaS9bHfPauJgxmNDiE7\"]},\"node_modules/@zoralabs/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0xaa54cafcfb6d757feeb8825e1132a07d2ef781ee592bbf25e23315dff370c711\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://849b2ed1e19ae2bc575a45c48d8ea7278b56aee35117eeee88c7c89e37abbab4\",\"dweb:/ipfs/QmQRv7zTZ2Draau2RXRdCv9oSvHSgsifrZYJL6Z7EyuaRv\"]},\"node_modules/@zoralabs/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"node_modules/@zoralabs/protocol-rewards/src/interfaces/IProtocolRewards.sol\":{\"keccak256\":\"0xcc97da532f0e27be2d8009874c461e30170104e0de25b8126a4bd894cc68d607\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://54ecc8068238a6df5aca3fa1ca491d868a01fb8649ade7794cea87ec2cd96eb8\",\"dweb:/ipfs/QmUpvpv2ALi3MYgYXSdaBKarTN6EZCqkpXHumhzbbFvDdr\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/ICreatorCommands.sol\":{\"keccak256\":\"0xf2ce7fdd6b290a752cd622620c98def471628d978271367f20e74f63fcbf2e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d0a17c035020b9abd81775386a2cec0dd2ae68dffa7043c5c0cc2d7c7604568\",\"dweb:/ipfs/QmcD21H1L6yGZA1MRurnR4fLq7aNeuF11bLfUigHSfGEcR\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/IERC165Upgradeable.sol\":{\"keccak256\":\"0xadf002baf3de0acba917728e2f01b5a56537ace9f8edd5199418ca0d6635d975\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f68587ec32eebdc564b98efc87b0d23b8253cbb4089cec218b8f4c7629a1897\",\"dweb:/ipfs/QmeUkGJk5JZjZMq9QDDRkKFFG6fayzfLy6Cheey7iHj4aZ\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/IMinter1155.sol\":{\"keccak256\":\"0x031f32031edf825716c83e852293fd5531c62b6e7cc6f83d9db87dacf8f91535\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb5be43166eba5f043f4318c6702f4207a051e54f4d27b503aae8ce89dc71b4c\",\"dweb:/ipfs/QmZPs5e6xJHkrh7QAvzZnbecPW19gwi2GeoenVJDr47mCB\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/IVersionedContract.sol\":{\"keccak256\":\"0x58bb295876cb7c510a6b011862f90e435cdbfd477d81c4c5796e6d0887857b29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d0faffb3f2242001e2281c1a4febe07e58abd798d4de2b211895385ab04cf9e\",\"dweb:/ipfs/QmVhAWuEBEjtLP2nCCrfVN4BFp3ZRX6q1VipyLcHtbpkHg\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/errors/IMinterErrors.sol\":{\"keccak256\":\"0xdd9ac7e3e88dbe4391e0d9c6d9d81840d2354814b908825ec07def33c396c696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a4df9c514e730067782b3f98741fbab96096fffc9417ee3793e708c59035312\",\"dweb:/ipfs/QmSs5s5QMbuyJZTS9oUgg2R2j1jAk7ZyEUbdEzQgorJrnn\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/errors/IZoraCreator1155Errors.sol\":{\"keccak256\":\"0x5b7beee57ec914616a845946d8d05f33ea2d774c84941a32c9152926bead57f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://306554c9d703cae87d4494a3aedfdc4b374f71c6d675fd79379ec82002419fa4\",\"dweb:/ipfs/QmSkp7ivT5PzPwxbi28fHBzJ6JMZaNPusCC8ZdRhL82bH8\"]},\"src/interfaces/IContractMetadata.sol\":{\"keccak256\":\"0x0ab1d3cb1ecee9c69f4715ed52ee74bab0fbe41b044137b57bb879f9aaf42fa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2a8c7354794b7d07defa20a3ab6d81fca5fdc22435792da18e4f595d8aafe44\",\"dweb:/ipfs/QmWaSKiGbsGFAFvmXV6tmSR8MPkuaZ3oxZgyHTjLCHTNdu\"]},\"src/interfaces/ICreatorCommands.sol\":{\"keccak256\":\"0xede8519e3d8c70cb388ade32f442d74015617efab46a30de22241a6b112703ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://880628f3d3325c4225d2d58906aa68e5134c850c3e885b37e95e546031bb5cd6\",\"dweb:/ipfs/QmNUNKw973XTcgPrK3h3AX6fs6hN6kNjSDaKFZ7d3e48nH\"]},\"src/interfaces/IERC20Minter.sol\":{\"keccak256\":\"0xe925dabbe144f8deeb264408d4adad5461912b4323b8ea9046b6377f128f4325\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d11dcd2f4391ebf23c4fa512c7a84aa4d61373f516680d0ddde9e9858dab7a4\",\"dweb:/ipfs/QmT2Y4p73yvBBn9nVnyzZqtLoyqovA9PzNuN5CciUr6Ljd\"]},\"src/interfaces/ILimitedMintPerAddress.sol\":{\"keccak256\":\"0x1027107e54caa173075758a517b6b871fd679dba5b5a5612c878d5518597e0fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50fc4c7057fae6061e0b163dfbfca048e7d549cf8db71018393408370ade5185\",\"dweb:/ipfs/QmePCc2Uxoj8cdeWbuSuebmyDkAbavsCukPKDdPB1kNPMu\"]},\"src/interfaces/IMinter1155.sol\":{\"keccak256\":\"0x85de0b87f83997718b90778f5a9db837ad091dfb50a5c917dcbb9a4d11067fe0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e70078a581826adbeeb192b932b0ba6929727849a554c57a8ad75d6a8de7002\",\"dweb:/ipfs/QmW9FWrwqL5E2v9LMvXj49uq5TQn8JZFJ975Kvfw3S4HCN\"]},\"src/interfaces/IMinterPremintSetup.sol\":{\"keccak256\":\"0xcd54737d7a06c30d58040f444884e1c8d57447bd2aa82bf8334ec08cc7faeb19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07b02e088714f533c9053f5d4493050e3213d3c6f1092a42cd055055c6286209\",\"dweb:/ipfs/QmTAUtnaj2tHcpTamVY8hY8U2JAXv2XJEkK3RfvhHzVuC4\"]},\"src/minters/SaleStrategy.sol\":{\"keccak256\":\"0x209771151bd0df28db76e23a808a2feefe372dfe07f87470a7924c150aee3158\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ad63bf9d2a3ef0f932f8bfdf91dada2255ec399b1c724956c554fd43d2fa4fe\",\"dweb:/ipfs/QmbVY2n5Kf37MAcSSuBzQsZ2Wy1UHPH1KduWvnAgyfEjqK\"]},\"src/minters/erc20/ERC20Minter.sol\":{\"keccak256\":\"0xd1c6c01593922ec6d17f2dd4aa18bb21e21c0d3fec7fdb60719ceedc620241bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4c23e6790ae78a99095359d7a51501b071eb17d7794db49c6048ffe5b2fb3ef\",\"dweb:/ipfs/QmXNYELzxQydgfMmRQTdzR4QLV5nrcux7DdyqS28yRfe75\"]},\"src/minters/erc20/ERC20MinterRewards.sol\":{\"keccak256\":\"0xb32bee6335eee16c8e21d601fb26f74cccb508d542fabe9e82c5259a8e49479e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://906e3d6e546702d9c19f9a3ecb6f80189d72310a82a72318594fba15a05c057b\",\"dweb:/ipfs/QmWbrJ8WEQ4EJYzNXCFNqwuWJ6jY5M86bTNbpwUWkjnmDE\"]},\"src/minters/erc20/IZora1155.sol\":{\"keccak256\":\"0x7c359bec9340980b18a8cf006a2008e01dc99dcc177640c1bb5f1249b74bc815\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06eb4078deee9163253c4f81ae8013184b02b0bfa1c9011197888e5240b516cc\",\"dweb:/ipfs/QmNRQuzdpRDR9qpRC9GSaQ7secpy29LF1jgi9n8rpJzFRw\"]},\"src/minters/utils/LimitedMintPerAddress.sol\":{\"keccak256\":\"0x9f1c1023d702cadf0318f12021183d548160206420b7fcae6720d9689ab6f485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d2659afcd45c545772399ebedde1995b37b5554f62abae904c59826272aeb15\",\"dweb:/ipfs/QmTDCqgPxGpYHeD4AXRzN6TDRi6XyviYA9yxUEJaB4Gdfu\"]},\"src/utils/TransferHelperUtils.sol\":{\"keccak256\":\"0xe1010b010e0f4a97c103b94fb605b8d1c98d18135ede5364f85fd4ff98c19c1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a525f6f9ad4960e078e43a1f73021737fd35ce12796f982f9455231501cf2d45\",\"dweb:/ipfs/QmaNivFYh4TZUhKxDeVRDaG23uxNxhLd5n1JHMLUkVHAuj\"]},\"src/utils/ownable/IOwnable2StepStorageV1.sol\":{\"keccak256\":\"0xd13335656b5b28af47cd1ec1f984bedaa4c714792aee0580c711d81a595c980a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6168b868012553a291d4db1027a54399d81e10fc28b1f69a6a2daf36af445fd6\",\"dweb:/ipfs/QmRxVJNZBgYfJuSiRycYmEtkmzRD9qzatsasRZgVJypeTC\"]},\"src/utils/ownable/IOwnable2StepUpgradeable.sol\":{\"keccak256\":\"0x4123947d9cf06504f5d38a194fe2b16a1c2e860fb0f7bcd74ec921c9db618305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdde2f8da4de772f2760a56ce17a6d7503f8e7c9b161492cc59feebf17b0ed14\",\"dweb:/ipfs/QmZ5fNzsFRVgWXHH8vQktykvsL5AhrqoWYthkTeuUaRpcw\"]},\"src/utils/ownable/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0x21e47e1bae8183cbe715de3ec976b6ecb724161a5c5fd7d3721876a09951e80b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca411891e5e5f2d8eb17252112fa69d6ca47f358110993e61f62d2e13188e01c\",\"dweb:/ipfs/QmUBnsB49nZo5Y3rXWaVxTp8vA3fFmW3tTB5SeVkdLhYAx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.17+commit.8df45f5f"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressZero"},{"inputs":[],"type":"error","name":"ERC20TransferSlippage"},{"inputs":[],"type":"error","name":"FailedToSendEthReward"},{"inputs":[],"type":"error","name":"INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING"},{"inputs":[],"type":"error","name":"InvalidCurrency"},{"inputs":[{"internalType":"uint256","name":"expectedValue","type":"uint256"},{"internalType":"uint256","name":"actualValue","type":"uint256"}],"type":"error","name":"InvalidETHValue"},{"inputs":[],"type":"error","name":"InvalidValue"},{"inputs":[],"type":"error","name":"ONLY_OWNER"},{"inputs":[],"type":"error","name":"ONLY_PENDING_OWNER"},{"inputs":[],"type":"error","name":"OWNER_CANNOT_BE_ZERO_ADDRESS"},{"inputs":[],"type":"error","name":"PricePerTokenTooLow"},{"inputs":[],"type":"error","name":"RequestMintInvalidUseMint"},{"inputs":[],"type":"error","name":"SaleEnded"},{"inputs":[],"type":"error","name":"SaleHasNotStarted"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"}],"type":"error","name":"UserExceedsMintLimit"},{"inputs":[],"type":"error","name":"WrongValueSent"},{"inputs":[{"internalType":"struct IERC20Minter.ERC20MinterConfig","name":"config","type":"tuple","components":[{"internalType":"address","name":"zoraRewardRecipientAddress","type":"address"},{"internalType":"uint256","name":"rewardRecipientPercentage","type":"uint256"},{"internalType":"uint256","name":"ethReward","type":"uint256"}],"indexed":false}],"type":"event","name":"ERC20MinterConfigSet","anonymous":false},{"inputs":[{"internalType":"address","name":"createReferral","type":"address","indexed":true},{"internalType":"address","name":"mintReferral","type":"address","indexed":true},{"internalType":"address","name":"firstMinter","type":"address","indexed":true},{"internalType":"address","name":"zora","type":"address","indexed":false},{"internalType":"address","name":"collection","type":"address","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"createReferralReward","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintReferralReward","type":"uint256","indexed":false},{"internalType":"uint256","name":"firstMinterReward","type":"uint256","indexed":false},{"internalType":"uint256","name":"zoraReward","type":"uint256","indexed":false}],"type":"event","name":"ERC20RewardsDeposit","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"tokenContract","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"quantity","type":"uint256","indexed":false},{"internalType":"string","name":"comment","type":"string","indexed":false}],"type":"event","name":"MintComment","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"canceledOwner","type":"address","indexed":true}],"type":"event","name":"OwnerCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnerPending","anonymous":false},{"inputs":[{"internalType":"address","name":"prevOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnerUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"mediaContract","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"struct IERC20Minter.SalesConfig","name":"salesConfig","type":"tuple","components":[{"internalType":"uint64","name":"saleStart","type":"uint64"},{"internalType":"uint64","name":"saleEnd","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"indexed":false}],"type":"event","name":"SaleSet","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"struct IERC20Minter.PremintSalesConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"duration","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}]}],"stateMutability":"view","type":"function","name":"buildSalesConfigForPremint","outputs":[{"internalType":"struct IERC20Minter.SalesConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"saleStart","type":"uint64"},{"internalType":"uint64","name":"saleEnd","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelOwnershipTransfer"},{"inputs":[{"internalType":"uint256","name":"totalReward","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computePaidMintRewards","outputs":[{"internalType":"struct IERC20Minter.RewardsSettings","name":"","type":"tuple","components":[{"internalType":"uint256","name":"createReferralReward","type":"uint256"},{"internalType":"uint256","name":"mintReferralReward","type":"uint256"},{"internalType":"uint256","name":"zoraReward","type":"uint256"},{"internalType":"uint256","name":"firstMinterReward","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"totalReward","type":"uint256"},{"internalType":"uint256","name":"rewardPct","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"totalValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"computeTotalReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"contractName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"contractVersion","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ethRewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCreateReferral","outputs":[{"internalType":"address","name":"createReferral","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getERC20MinterConfig","outputs":[{"internalType":"struct IERC20Minter.ERC20MinterConfig","name":"","type":"tuple","components":[{"internalType":"address","name":"zoraRewardRecipientAddress","type":"address"},{"internalType":"uint256","name":"rewardRecipientPercentage","type":"uint256"},{"internalType":"uint256","name":"ethReward","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getFirstMinter","outputs":[{"internalType":"address","name":"firstMinter","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"view","type":"function","name":"getMintedPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_zoraRewardRecipientAddress","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_rewardPct","type":"uint256"},{"internalType":"uint256","name":"_ethReward","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"mintTo","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"totalValue","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"mintReferral","type":"address"},{"internalType":"string","name":"comment","type":"string"}],"stateMutability":"payable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"minterConfig","outputs":[{"internalType":"address","name":"zoraRewardRecipientAddress","type":"address"},{"internalType":"uint256","name":"rewardRecipientPercentage","type":"uint256"},{"internalType":"uint256","name":"ethReward","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"requestMint","outputs":[{"internalType":"struct ICreatorCommands.CommandSet","name":"","type":"tuple","components":[{"internalType":"struct ICreatorCommands.Command[]","name":"commands","type":"tuple[]","components":[{"internalType":"enum ICreatorCommands.CreatorActions","name":"method","type":"uint8"},{"internalType":"bytes","name":"args","type":"bytes"}]},{"internalType":"uint256","name":"at","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"resetSale"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resignOwnership"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferOwnership"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"sale","outputs":[{"internalType":"struct IERC20Minter.SalesConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"saleStart","type":"uint64"},{"internalType":"uint64","name":"saleEnd","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}]}]},{"inputs":[{"internalType":"struct IERC20Minter.ERC20MinterConfig","name":"config","type":"tuple","components":[{"internalType":"address","name":"zoraRewardRecipientAddress","type":"address"},{"internalType":"uint256","name":"rewardRecipientPercentage","type":"uint256"},{"internalType":"uint256","name":"ethReward","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"setERC20MinterConfig"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"encodedPremintSalesConfig","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setPremintSale"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"struct IERC20Minter.SalesConfig","name":"salesConfig","type":"tuple","components":[{"internalType":"uint64","name":"saleStart","type":"uint64"},{"internalType":"uint64","name":"saleEnd","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"setSale"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalRewardPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))":{"params":{"config":"The PremintSalesConfig to build the SalesConfig from"}},"computePaidMintRewards(uint256)":{"params":{"totalReward":"The total reward to be distributed"}},"computeReward(uint256,uint256)":{"params":{"rewardPct":"The percentage of the reward to be distributed","totalReward":"The total reward to be distributed"}},"computeTotalReward(uint256)":{"params":{"totalValue":"The total number of ERC20 tokens"}},"getCreateReferral(address,uint256)":{"params":{"tokenContract":"The address of the token contract","tokenId":"The ID of the token"}},"getFirstMinter(address,uint256)":{"params":{"tokenContract":"The address of the token contract","tokenId":"The ID of the token"}},"initialize(address,address,uint256,uint256)":{"details":"Allows deterministic contract address, called on deploy"},"mint(address,uint256,address,uint256,uint256,address,address,string)":{"params":{"comment":"The optional mint comment","currency":"The address of the currency to use for the mint","mintReferral":"The address of the mint referral","mintTo":"The address to mint the token to","quantity":"The quantity of tokens to mint","tokenAddress":"The address of the token to mint","tokenId":"The ID of the token to mint","totalValue":"The total value of the mint"}},"resetSale(uint256)":{"params":{"tokenId":"The ID of the token to reset the sale config for"}},"resignOwnership()":{"details":"only callably by the owner, dangerous call."},"safeTransferOwnership(address)":{"params":{"_newOwner":"The new owner address"}},"sale(address,uint256)":{"params":{"tokenContract":"The TokenContract address","tokenId":"The ID of the token to get the sale config for"}},"setERC20MinterConfig((address,uint256,uint256))":{"params":{"config":"The ERC20MinterConfig to set"}},"setPremintSale(uint256,bytes)":{"params":{"encodedPremintSalesConfig":"The abi encoded PremintSalesConfig","tokenId":"The ID of the token to set the sale config for"}},"setSale(uint256,(uint64,uint64,uint64,uint256,address,address))":{"params":{"salesConfig":"The sale config to set","tokenId":"The ID of the token to set the sale config for"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The interface ID to check"}},"transferOwnership(address)":{"params":{"_newOwner":"The new owner address"}}},"version":1},"userdoc":{"kind":"user","methods":{"acceptOwnership()":{"notice":"Accepts an ownership transfer"},"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))":{"notice":"Dynamically builds a SalesConfig from a PremintSalesConfig taking into consideration the current block timestamp and the PremintSalesConfig's duration."},"cancelOwnershipTransfer()":{"notice":"Cancels a pending ownership transfer"},"computePaidMintRewards(uint256)":{"notice":"Computes the rewards for an ERC20 mint"},"computeReward(uint256,uint256)":{"notice":"Computes the rewards value given an amount and a reward percentage"},"computeTotalReward(uint256)":{"notice":"Computes the total reward value for a given amount of ERC20 tokens"},"contractName()":{"notice":"The name of the contract"},"contractURI()":{"notice":"The URI of the contract"},"contractVersion()":{"notice":"The version of the contract"},"ethRewardAmount()":{"notice":"The amount of ETH distributed as rewards"},"getCreateReferral(address,uint256)":{"notice":"Gets the create referral address for a given token"},"getERC20MinterConfig()":{"notice":"Gets the ERC20MinterConfig"},"getFirstMinter(address,uint256)":{"notice":"Gets the first minter address for a given token"},"initialize(address,address,uint256,uint256)":{"notice":"Initializes the contract with a Zora rewards recipient address"},"mint(address,uint256,address,uint256,uint256,address,address,string)":{"notice":"Mints a token using an ERC20 currency, note the total value must have been approved prior to calling this function"},"minterConfig()":{"notice":"The ERC20 minter configuration"},"owner()":{"notice":"The address of the owner"},"pendingOwner()":{"notice":"The address of the pending owner"},"requestMint(address,uint256,uint256,uint256,bytes)":{"notice":"Reverts as `requestMint` is not used in the ERC20 minter. Call `mint` instead."},"resetSale(uint256)":{"notice":"Deletes the sale config for a given token"},"resignOwnership()":{"notice":"Resign ownership of contract"},"safeTransferOwnership(address)":{"notice":"Initiates a two-step ownership transfer"},"sale(address,uint256)":{"notice":"Returns the sale config for a given token"},"setERC20MinterConfig((address,uint256,uint256))":{"notice":"Sets the ERC20MinterConfig"},"setPremintSale(uint256,bytes)":{"notice":"Sets the sales config based for the msg.sender on the tokenId from the abi encoded premint sales config by abi decoding it and dynamically building the SalesConfig. The saleStart will be the current block timestamp and saleEnd will be the current block timestamp + the duration in the PremintSalesConfig."},"setSale(uint256,(uint64,uint64,uint64,uint256,address,address))":{"notice":"Sets the sale config for a given token"},"supportsInterface(bytes4)":{"notice":"IERC165 interface support"},"totalRewardPct()":{"notice":"The percentage of the total value that is distributed as rewards"},"transferOwnership(address)":{"notice":"Forces an ownership transfer from the last owner"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@zoralabs/mints-contracts/src/=node_modules/@zoralabs/mints-contracts/src/","@zoralabs/openzeppelin-contracts-upgradeable/=node_modules/@zoralabs/openzeppelin-contracts-upgradeable/","@zoralabs/protocol-rewards/src/=node_modules/@zoralabs/protocol-rewards/src/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","_imagine/=_imagine/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","mint/=_imagine/mint/","solady/=node_modules/solady/src/","solemate/=/node_modules/solemate/src/","solmate/=node_modules/solmate/"],"optimizer":{"enabled":false,"runs":0},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/minters/erc20/ERC20Minter.sol":"ERC20Minter"},"evmVersion":"london","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"node_modules/@zoralabs/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC165Upgradeable.sol":{"keccak256":"0x121966b3220d263a6669dcf59c1254bd48ed237adf4d8a595add70a7927eada1","urls":["bzz-raw://440dc242517ca29e9802f32dd237a185b4f7aaab67ceb2c1d6307c57636e0904","dweb:/ipfs/QmeQZeMCMmxca8hA4oUFXEwLAzspiwMTQ9CaqFQutYk9ag"],"license":"MIT"},"node_modules/@zoralabs/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x5e725d04c2ab3be6f5f3d88f9765bdc4f348bd1dcc8721988e4b2dc23c9aaafa","urls":["bzz-raw://30307e26bb2029e987452d3e51e9242694604f53c5ec85e63e60d334e6c03648","dweb:/ipfs/QmPKGiZpSC8LtRWfGhvTbCgefg9TaS9bHfPauJgxmNDiE7"],"license":"MIT"},"node_modules/@zoralabs/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0xaa54cafcfb6d757feeb8825e1132a07d2ef781ee592bbf25e23315dff370c711","urls":["bzz-raw://849b2ed1e19ae2bc575a45c48d8ea7278b56aee35117eeee88c7c89e37abbab4","dweb:/ipfs/QmQRv7zTZ2Draau2RXRdCv9oSvHSgsifrZYJL6Z7EyuaRv"],"license":"MIT"},"node_modules/@zoralabs/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"node_modules/@zoralabs/protocol-rewards/src/interfaces/IProtocolRewards.sol":{"keccak256":"0xcc97da532f0e27be2d8009874c461e30170104e0de25b8126a4bd894cc68d607","urls":["bzz-raw://54ecc8068238a6df5aca3fa1ca491d868a01fb8649ade7794cea87ec2cd96eb8","dweb:/ipfs/QmUpvpv2ALi3MYgYXSdaBKarTN6EZCqkpXHumhzbbFvDdr"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/ICreatorCommands.sol":{"keccak256":"0xf2ce7fdd6b290a752cd622620c98def471628d978271367f20e74f63fcbf2e61","urls":["bzz-raw://3d0a17c035020b9abd81775386a2cec0dd2ae68dffa7043c5c0cc2d7c7604568","dweb:/ipfs/QmcD21H1L6yGZA1MRurnR4fLq7aNeuF11bLfUigHSfGEcR"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/IERC165Upgradeable.sol":{"keccak256":"0xadf002baf3de0acba917728e2f01b5a56537ace9f8edd5199418ca0d6635d975","urls":["bzz-raw://0f68587ec32eebdc564b98efc87b0d23b8253cbb4089cec218b8f4c7629a1897","dweb:/ipfs/QmeUkGJk5JZjZMq9QDDRkKFFG6fayzfLy6Cheey7iHj4aZ"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/IMinter1155.sol":{"keccak256":"0x031f32031edf825716c83e852293fd5531c62b6e7cc6f83d9db87dacf8f91535","urls":["bzz-raw://cb5be43166eba5f043f4318c6702f4207a051e54f4d27b503aae8ce89dc71b4c","dweb:/ipfs/QmZPs5e6xJHkrh7QAvzZnbecPW19gwi2GeoenVJDr47mCB"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/IVersionedContract.sol":{"keccak256":"0x58bb295876cb7c510a6b011862f90e435cdbfd477d81c4c5796e6d0887857b29","urls":["bzz-raw://8d0faffb3f2242001e2281c1a4febe07e58abd798d4de2b211895385ab04cf9e","dweb:/ipfs/QmVhAWuEBEjtLP2nCCrfVN4BFp3ZRX6q1VipyLcHtbpkHg"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/errors/IMinterErrors.sol":{"keccak256":"0xdd9ac7e3e88dbe4391e0d9c6d9d81840d2354814b908825ec07def33c396c696","urls":["bzz-raw://2a4df9c514e730067782b3f98741fbab96096fffc9417ee3793e708c59035312","dweb:/ipfs/QmSs5s5QMbuyJZTS9oUgg2R2j1jAk7ZyEUbdEzQgorJrnn"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/errors/IZoraCreator1155Errors.sol":{"keccak256":"0x5b7beee57ec914616a845946d8d05f33ea2d774c84941a32c9152926bead57f7","urls":["bzz-raw://306554c9d703cae87d4494a3aedfdc4b374f71c6d675fd79379ec82002419fa4","dweb:/ipfs/QmSkp7ivT5PzPwxbi28fHBzJ6JMZaNPusCC8ZdRhL82bH8"],"license":"MIT"},"src/interfaces/IContractMetadata.sol":{"keccak256":"0x0ab1d3cb1ecee9c69f4715ed52ee74bab0fbe41b044137b57bb879f9aaf42fa8","urls":["bzz-raw://a2a8c7354794b7d07defa20a3ab6d81fca5fdc22435792da18e4f595d8aafe44","dweb:/ipfs/QmWaSKiGbsGFAFvmXV6tmSR8MPkuaZ3oxZgyHTjLCHTNdu"],"license":"MIT"},"src/interfaces/ICreatorCommands.sol":{"keccak256":"0xede8519e3d8c70cb388ade32f442d74015617efab46a30de22241a6b112703ce","urls":["bzz-raw://880628f3d3325c4225d2d58906aa68e5134c850c3e885b37e95e546031bb5cd6","dweb:/ipfs/QmNUNKw973XTcgPrK3h3AX6fs6hN6kNjSDaKFZ7d3e48nH"],"license":"MIT"},"src/interfaces/IERC20Minter.sol":{"keccak256":"0xe925dabbe144f8deeb264408d4adad5461912b4323b8ea9046b6377f128f4325","urls":["bzz-raw://9d11dcd2f4391ebf23c4fa512c7a84aa4d61373f516680d0ddde9e9858dab7a4","dweb:/ipfs/QmT2Y4p73yvBBn9nVnyzZqtLoyqovA9PzNuN5CciUr6Ljd"],"license":"MIT"},"src/interfaces/ILimitedMintPerAddress.sol":{"keccak256":"0x1027107e54caa173075758a517b6b871fd679dba5b5a5612c878d5518597e0fe","urls":["bzz-raw://50fc4c7057fae6061e0b163dfbfca048e7d549cf8db71018393408370ade5185","dweb:/ipfs/QmePCc2Uxoj8cdeWbuSuebmyDkAbavsCukPKDdPB1kNPMu"],"license":"MIT"},"src/interfaces/IMinter1155.sol":{"keccak256":"0x85de0b87f83997718b90778f5a9db837ad091dfb50a5c917dcbb9a4d11067fe0","urls":["bzz-raw://9e70078a581826adbeeb192b932b0ba6929727849a554c57a8ad75d6a8de7002","dweb:/ipfs/QmW9FWrwqL5E2v9LMvXj49uq5TQn8JZFJ975Kvfw3S4HCN"],"license":"MIT"},"src/interfaces/IMinterPremintSetup.sol":{"keccak256":"0xcd54737d7a06c30d58040f444884e1c8d57447bd2aa82bf8334ec08cc7faeb19","urls":["bzz-raw://07b02e088714f533c9053f5d4493050e3213d3c6f1092a42cd055055c6286209","dweb:/ipfs/QmTAUtnaj2tHcpTamVY8hY8U2JAXv2XJEkK3RfvhHzVuC4"],"license":"MIT"},"src/minters/SaleStrategy.sol":{"keccak256":"0x209771151bd0df28db76e23a808a2feefe372dfe07f87470a7924c150aee3158","urls":["bzz-raw://5ad63bf9d2a3ef0f932f8bfdf91dada2255ec399b1c724956c554fd43d2fa4fe","dweb:/ipfs/QmbVY2n5Kf37MAcSSuBzQsZ2Wy1UHPH1KduWvnAgyfEjqK"],"license":"MIT"},"src/minters/erc20/ERC20Minter.sol":{"keccak256":"0xd1c6c01593922ec6d17f2dd4aa18bb21e21c0d3fec7fdb60719ceedc620241bd","urls":["bzz-raw://b4c23e6790ae78a99095359d7a51501b071eb17d7794db49c6048ffe5b2fb3ef","dweb:/ipfs/QmXNYELzxQydgfMmRQTdzR4QLV5nrcux7DdyqS28yRfe75"],"license":"MIT"},"src/minters/erc20/ERC20MinterRewards.sol":{"keccak256":"0xb32bee6335eee16c8e21d601fb26f74cccb508d542fabe9e82c5259a8e49479e","urls":["bzz-raw://906e3d6e546702d9c19f9a3ecb6f80189d72310a82a72318594fba15a05c057b","dweb:/ipfs/QmWbrJ8WEQ4EJYzNXCFNqwuWJ6jY5M86bTNbpwUWkjnmDE"],"license":"MIT"},"src/minters/erc20/IZora1155.sol":{"keccak256":"0x7c359bec9340980b18a8cf006a2008e01dc99dcc177640c1bb5f1249b74bc815","urls":["bzz-raw://06eb4078deee9163253c4f81ae8013184b02b0bfa1c9011197888e5240b516cc","dweb:/ipfs/QmNRQuzdpRDR9qpRC9GSaQ7secpy29LF1jgi9n8rpJzFRw"],"license":"MIT"},"src/minters/utils/LimitedMintPerAddress.sol":{"keccak256":"0x9f1c1023d702cadf0318f12021183d548160206420b7fcae6720d9689ab6f485","urls":["bzz-raw://6d2659afcd45c545772399ebedde1995b37b5554f62abae904c59826272aeb15","dweb:/ipfs/QmTDCqgPxGpYHeD4AXRzN6TDRi6XyviYA9yxUEJaB4Gdfu"],"license":"MIT"},"src/utils/TransferHelperUtils.sol":{"keccak256":"0xe1010b010e0f4a97c103b94fb605b8d1c98d18135ede5364f85fd4ff98c19c1d","urls":["bzz-raw://a525f6f9ad4960e078e43a1f73021737fd35ce12796f982f9455231501cf2d45","dweb:/ipfs/QmaNivFYh4TZUhKxDeVRDaG23uxNxhLd5n1JHMLUkVHAuj"],"license":"MIT"},"src/utils/ownable/IOwnable2StepStorageV1.sol":{"keccak256":"0xd13335656b5b28af47cd1ec1f984bedaa4c714792aee0580c711d81a595c980a","urls":["bzz-raw://6168b868012553a291d4db1027a54399d81e10fc28b1f69a6a2daf36af445fd6","dweb:/ipfs/QmRxVJNZBgYfJuSiRycYmEtkmzRD9qzatsasRZgVJypeTC"],"license":"MIT"},"src/utils/ownable/IOwnable2StepUpgradeable.sol":{"keccak256":"0x4123947d9cf06504f5d38a194fe2b16a1c2e860fb0f7bcd74ec921c9db618305","urls":["bzz-raw://cdde2f8da4de772f2760a56ce17a6d7503f8e7c9b161492cc59feebf17b0ed14","dweb:/ipfs/QmZ5fNzsFRVgWXHH8vQktykvsL5AhrqoWYthkTeuUaRpcw"],"license":"MIT"},"src/utils/ownable/Ownable2StepUpgradeable.sol":{"keccak256":"0x21e47e1bae8183cbe715de3ec976b6ecb724161a5c5fd7d3721876a09951e80b","urls":["bzz-raw://ca411891e5e5f2d8eb17252112fa69d6ca47f358110993e61f62d2e13188e01c","dweb:/ipfs/QmUBnsB49nZo5Y3rXWaVxTp8vA3fFmW3tTB5SeVkdLhYAx"],"license":"MIT"}},"version":1},"id":158}