diff --git a/go-binding/feralfile-exhibition-v4/abi.go b/go-binding/feralfile-exhibition-v4/abi.go index 592e3ca..37fc066 100644 --- a/go-binding/feralfile-exhibition-v4/abi.go +++ b/go-binding/feralfile-exhibition-v4/abi.go @@ -42,6 +42,14 @@ type FeralfileExhibitionV4MintData struct { Owner common.Address } +// FeralfileExhibitionV42MintDataWithIndex is an auto generated low-level Go binding around an user-defined struct. +type FeralfileExhibitionV42MintDataWithIndex struct { + SeriesId *big.Int + TokenId *big.Int + Owner common.Address + TokenIndex *big.Int +} + // IFeralfileSaleDataRevenueShare is an auto generated low-level Go binding around an user-defined struct. type IFeralfileSaleDataRevenueShare struct { Recipient common.Address @@ -61,8 +69,8 @@ type IFeralfileSaleDataSaleData struct { // FeralfileExhibitionV4MetaData contains all meta data concerning the FeralfileExhibitionV4 contract. var FeralfileExhibitionV4MetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"burnable_\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"bridgeable_\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"signer_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vault_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"costReceiver_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractURI_\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"seriesIds_\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"seriesMaxSupplies_\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AdvanceAddressAlreadyUsed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ArtworkEditionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAdvanceAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAdvanceAddressesAndAmounts\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAdvanceAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"BurnArtwork\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"BuyArtwork\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NewArtwork\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"OperatorFilterRegistry\",\"outputs\":[{\"internalType\":\"contractIOperatorFilterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustee\",\"type\":\"address\"}],\"name\":\"addTrustee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"advances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"artworkParameters\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridgeable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"burnArtworks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burnable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"r_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s_\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v_\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiryTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bps\",\"type\":\"uint256\"}],\"internalType\":\"structIFeralfileSaleData.RevenueShare[][]\",\"name\":\"revenueShares\",\"type\":\"tuple[][]\"},{\"internalType\":\"bool\",\"name\":\"payByVaultContract\",\"type\":\"bool\"}],\"internalType\":\"structIFeralfileSaleData.SaleData\",\"name\":\"saleData_\",\"type\":\"tuple\"}],\"name\":\"buyArtworks\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"codeVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"costReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getArtwork\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"internalType\":\"structFeralfileExhibitionV4.Artwork\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"internalType\":\"structFeralfileExhibitionV4.MintData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"mintArtworks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustee\",\"type\":\"address\"}],\"name\":\"removeTrustee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"oldAddresses_\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"newAddresses_\",\"type\":\"address[]\"}],\"name\":\"replaceAdvanceAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selling\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"}],\"name\":\"seriesMaxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"}],\"name\":\"seriesTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses_\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts_\",\"type\":\"uint256[]\"}],\"name\":\"setAdvanceSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"costReceiver_\",\"type\":\"address\"}],\"name\":\"setCostReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer_\",\"type\":\"address\"}],\"name\":\"setSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI_\",\"type\":\"string\"}],\"name\":\"setTokenBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault_\",\"type\":\"address\"}],\"name\":\"setVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopSaleAndBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"seriesIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"recipientAddresses\",\"type\":\"address[]\"}],\"name\":\"stopSaleAndTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBaseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"tokensOfOwner\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"trustees\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorFilterRegisterAddress\",\"type\":\"address\"}],\"name\":\"updateOperatorFilterRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"contractIFeralfileVault\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"parameters\",\"type\":\"string\"}],\"name\":\"updateArtworkParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getArtworkParameters\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6080604052600880546001600160a01b0319166daaeb6d7670e522a718067333cd4e179055600d805463ff000000191663010000001790553480156200004457600080fd5b506040516200584a3803806200584a833981016040819052620000679162000985565b8989898989898989898989898989898989898989858a8a60006200008c838262000b54565b5060016200009b828262000b54565b505050620000b8620000b2620007a360201b60201c565b620007a7565b6008546001600160a01b03163b156200014557600854604051633e9f1edf60e11b8152306004820152733cc6cdda760b79bafa08df41ecfa224f810dceb660248201526001600160a01b0390911690637d3e3dbe90604401600060405180830381600087803b1580156200012b57600080fd5b505af115801562000140573d6000803e3d6000fd5b505050505b6001600160a01b038116620001ac5760405162461bcd60e51b815260206004820152602260248201527f45434453415369676e3a207369676e65725f206973207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b600980546001600160a01b0319166001600160a01b039290921691909117905589516200022a5760405162461bcd60e51b815260206004820152602560248201527f466572616c66696c6545786869626974696f6e56343a206e616d655f20697320604482015264656d70747960d81b6064820152608401620001a3565b60008951116200028d5760405162461bcd60e51b815260206004820152602760248201527f466572616c66696c6545786869626974696f6e56343a2073796d626f6c5f20696044820152667320656d70747960c81b6064820152608401620001a3565b6001600160a01b0385166200030b5760405162461bcd60e51b815260206004820152603460248201527f466572616c66696c6545786869626974696f6e56343a207661756c744164647260448201527f6573735f206973207a65726f20616464726573730000000000000000000000006064820152608401620001a3565b6001600160a01b038416620003895760405162461bcd60e51b815260206004820152603460248201527f466572616c66696c6545786869626974696f6e56343a20636f7374526563656960448201527f7665725f206973207a65726f20616464726573730000000000000000000000006064820152608401620001a3565b6000835111620003f15760405162461bcd60e51b815260206004820152602c60248201527f466572616c66696c6545786869626974696f6e56343a20636f6e74726163745560448201526b52495f20697320656d70747960a01b6064820152608401620001a3565b6000825111620004575760405162461bcd60e51b815260206004820152602a60248201527f466572616c66696c6545786869626974696f6e56343a207365726965734964736044820152695f20697320656d70747960b01b6064820152608401620001a3565b6000815111620004c55760405162461bcd60e51b815260206004820152603260248201527f466572616c66696c6545786869626974696f6e56343a205f7365726965734d6160448201527178537570706c69657320697320656d70747960701b6064820152608401620001a3565b8051825114620005585760405162461bcd60e51b815260206004820152605160248201527f466572616c66696c6545786869626974696f6e56343a207365726965734d617860448201527f537570706c6965735f20616e64207365726965734964735f206c656e6774687360648201527020617265206e6f74207468652073616d6560781b608482015260a401620001a3565b600d805461ffff191689151561ff001916176101008915150217600160201b600160c01b0319166401000000006001600160a01b038781169190910291909117909155600e80546001600160a01b031916918716919091179055600b620005c0848262000b54565b5060005b82518110156200077e576000620005dd82600162000c36565b90505b83518110156200069a57838181518110620005ff57620005ff62000c52565b60200260200101518483815181106200061c576200061c62000c52565b602002602001015103620006855760405162461bcd60e51b815260206004820152602960248201527f466572616c66696c6545786869626974696f6e56343a206475706c6963617465604482015268081cd95c9a595cd25960ba1b6064820152608401620001a3565b80620006918162000c68565b915050620005e0565b506000828281518110620006b257620006b262000c52565b602002602001015111620007185760405162461bcd60e51b815260206004820152602660248201527f466572616c66696c6545786869626974696f6e56343a207a65726f206d617820604482015265737570706c7960d01b6064820152608401620001a3565b8181815181106200072d576200072d62000c52565b6020026020010151600f60008584815181106200074e576200074e62000c52565b60200260200101518152602001908152602001600020819055508080620007759062000c68565b915050620005c4565b5050505050505050505050505050505050505050505050505050505050505062000c84565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200083a576200083a620007f9565b604052919050565b600082601f8301126200085457600080fd5b81516001600160401b03811115620008705762000870620007f9565b602062000886601f8301601f191682016200080f565b82815285828487010111156200089b57600080fd5b60005b83811015620008bb5785810183015182820184015282016200089e565b506000928101909101919091529392505050565b80518015158114620008e057600080fd5b919050565b80516001600160a01b0381168114620008e057600080fd5b600082601f8301126200090f57600080fd5b815160206001600160401b038211156200092d576200092d620007f9565b8160051b6200093e8282016200080f565b92835284810182019282810190878511156200095957600080fd5b83870192505b848310156200097a578251825291830191908301906200095f565b979650505050505050565b6000806000806000806000806000806101408b8d031215620009a657600080fd5b8a516001600160401b0380821115620009be57600080fd5b620009cc8e838f0162000842565b9b5060208d0151915080821115620009e357600080fd5b620009f18e838f0162000842565b9a5062000a0160408e01620008cf565b995062000a1160608e01620008cf565b985062000a2160808e01620008e5565b975062000a3160a08e01620008e5565b965062000a4160c08e01620008e5565b955060e08d015191508082111562000a5857600080fd5b62000a668e838f0162000842565b94506101008d015191508082111562000a7e57600080fd5b62000a8c8e838f01620008fd565b93506101208d015191508082111562000aa457600080fd5b5062000ab38d828e01620008fd565b9150509295989b9194979a5092959850565b600181811c9082168062000ada57607f821691505b60208210810362000afb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000b4f57600081815260208120601f850160051c8101602086101562000b2a5750805b601f850160051c820191505b8181101562000b4b5782815560010162000b36565b5050505b505050565b81516001600160401b0381111562000b705762000b70620007f9565b62000b888162000b81845462000ac5565b8462000b01565b602080601f83116001811462000bc0576000841562000ba75750858301515b600019600386901b1c1916600185901b17855562000b4b565b600085815260208120601f198616915b8281101562000bf15788860151825594840194600190910190840162000bd0565b508582101562000c105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000c4c5762000c4c62000c20565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000c7d5762000c7d62000c20565b5060010190565b614bb68062000c946000396000f3fe6080604052600436106103545760003560e01c80636817031b116101c6578063a22cb465116100f7578063e985e9c511610095578063f07e7fd01161006f578063f07e7fd014610ab0578063f2fde38b14610ad0578063f4e638be14610af0578063fbfa77cf14610b1857600080fd5b8063e985e9c514610a0a578063eb5c60f214610a53578063eee608a414610a8057600080fd5b8063b9b8311a116100d1578063b9b8311a146109a0578063c87b56dd146109b5578063dc78ac1c146109d5578063e8a3d485146109f557600080fd5b8063a22cb4651461094b578063b66a0e5d1461096b578063b88d4fde1461098057600080fd5b80638a25f461116101645780638ef79e911161013e5780638ef79e91146108cf578063926ce44e146108ef57806395d89b411461091c578063a07c7ce41461093157600080fd5b80638a25f461146108715780638cba1c67146108915780638da5cb5b146108b157600080fd5b8063715018a6116101a0578063715018a6146107e25780637f06ee06146107f757806381516fc7146108245780638462151c1461084457600080fd5b80636817031b146107825780636c19e783146107a257806370a08231146107c257600080fd5b80632977e4b3116102a05780634bf365df1161023e57806355367ba91161021857806355367ba9146106ec5780636352211e1461070157806363e602301461072157806365a46e081461076257600080fd5b80634bf365df146106975780634e99b800146106b8578063530da8ef146106cd57600080fd5b806333e364cb1161027a57806333e364cb146106225780633c352b0d1461063757806341a5626a1461065757806342842e0e1461067757600080fd5b80632977e4b3146105cf5780632f745c59146105e2578063318047381461060257600080fd5b80631623528f1161030d57806321fe0c64116102e757806321fe0c6414610553578063238ac9331461057357806323aed2281461059157806323b872dd146105af57600080fd5b80631623528f146104d4578063167ddf6e146104f457806318160ddd1461052f57600080fd5b806301ffc9a7146103e5578063031205061461041a57806306fdde031461043a578063081812fc1461045c578063095ea7b314610494578063114ba8ee146104b457600080fd5b366103e057600e546001600160a01b031633146103de5760405162461bcd60e51b815260206004820152603c60248201527f466572616c66696c6545786869626974696f6e56343a206f6e6c79206163636560448201527f70742066756e642066726f6d207661756c7420636f6e74726163742e0000000060648201526084015b60405180910390fd5b005b600080fd5b3480156103f157600080fd5b50610405610400366004613b17565b610b38565b60405190151581526020015b60405180910390f35b34801561042657600080fd5b506103de610435366004613b57565b610b8a565b34801561044657600080fd5b5061044f610bb3565b6040516104119190613bc2565b34801561046857600080fd5b5061047c610477366004613bd5565b610c45565b6040516001600160a01b039091168152602001610411565b3480156104a057600080fd5b506103de6104af366004613bee565b610c6c565b3480156104c057600080fd5b506103de6104cf366004613b57565b610c85565b3480156104e057600080fd5b506103de6104ef366004613b57565b610caf565b34801561050057600080fd5b5061051461050f366004613bd5565b610d58565b60408051825181526020928301519281019290925201610411565b34801561053b57600080fd5b50610545600c5481565b604051908152602001610411565b34801561055f57600080fd5b506103de61056e366004613cec565b610dbb565b34801561057f57600080fd5b506009546001600160a01b031661047c565b34801561059d57600080fd5b50600d5462010000900460ff16610405565b3480156105bb57600080fd5b506103de6105ca366004613d20565b610ea5565b6103de6105dd366004613d5c565b610ef8565b3480156105ee57600080fd5b506105456105fd366004613bee565b611535565b34801561060e57600080fd5b506103de61061d366004613dc9565b6115df565b34801561062e57600080fd5b506103de61164f565b34801561064357600080fd5b506103de610652366004613e8f565b611712565b34801561066357600080fd5b506103de610672366004613e8f565b6118b2565b34801561068357600080fd5b506103de610692366004613d20565b611a96565b3480156106a357600080fd5b50600d54610405906301000000900460ff1681565b3480156106c457600080fd5b5061044f611ae3565b3480156106d957600080fd5b50600d5461040590610100900460ff1681565b3480156106f857600080fd5b506103de611b71565b34801561070d57600080fd5b5061047c61071c366004613bd5565b611c25565b34801561072d57600080fd5b5061044f6040518060400160405280601581526020017411995c985b199a5b19515e1a1a589a5d1a5bdb958d605a1b81525081565b34801561076e57600080fd5b506103de61077d366004613efa565b611c5a565b34801561078e57600080fd5b506103de61079d366004613b57565b611f58565b3480156107ae57600080fd5b506103de6107bd366004613b57565b611fee565b3480156107ce57600080fd5b506105456107dd366004613b57565b612079565b3480156107ee57600080fd5b506103de6120ff565b34801561080357600080fd5b50610545610812366004613bd5565b60009081526010602052604090205490565b34801561083057600080fd5b5061044f61083f366004613bd5565b612113565b34801561085057600080fd5b5061086461085f366004613b57565b61212c565b6040516104119190613fbb565b34801561087d57600080fd5b5061044f61088c366004613bd5565b612198565b34801561089d57600080fd5b506103de6108ac366004613fff565b612254565b3480156108bd57600080fd5b506006546001600160a01b031661047c565b3480156108db57600080fd5b506103de6108ea3660046140ca565b612383565b3480156108fb57600080fd5b5061054561090a366004613b57565b60146020526000908152604090205481565b34801561092857600080fd5b5061044f6123f2565b34801561093d57600080fd5b50600d546104059060ff1681565b34801561095757600080fd5b506103de61096636600461412b565b612401565b34801561097757600080fd5b506103de612415565b34801561098c57600080fd5b506103de61099b366004614162565b612432565b3480156109ac57600080fd5b506103de612480565b3480156109c157600080fd5b5061044f6109d0366004613bd5565b612521565b3480156109e157600080fd5b506103de6109f0366004613b57565b61262f565b348015610a0157600080fd5b5061044f61265b565b348015610a1657600080fd5b50610405610a253660046141dd565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610a5f57600080fd5b50610545610a6e366004613bd5565b6000908152600f602052604090205490565b348015610a8c57600080fd5b50610405610a9b366004613b57565b60076020526000908152604090205460ff1681565b348015610abc57600080fd5b5060085461047c906001600160a01b031681565b348015610adc57600080fd5b506103de610aeb366004613b57565b612668565b348015610afc57600080fd5b50600d5461047c9064010000000090046001600160a01b031681565b348015610b2457600080fd5b50600e5461047c906001600160a01b031681565b60006001600160e01b031982166380ac58cd60e01b1480610b6957506001600160e01b03198216635b5e139f60e01b145b80610b8457506301ffc9a760e01b6001600160e01b03198316145b92915050565b610b926126e1565b6001600160a01b03166000908152600760205260409020805460ff19169055565b606060008054610bc290614210565b80601f0160208091040260200160405190810160405280929190818152602001828054610bee90614210565b8015610c3b5780601f10610c1057610100808354040283529160200191610c3b565b820191906000526020600020905b815481529060010190602001808311610c1e57829003601f168201915b5050505050905090565b6000610c508261273b565b506000908152600460205260409020546001600160a01b031690565b81610c7681612760565b610c808383612832565b505050565b610c8d6126e1565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610cb76126e1565b6001600160a01b038116610d2a5760405162461bcd60e51b815260206004820152603460248201527f466572616c66696c6545786869626974696f6e56343a20636f737452656365696044820152737665725f206973207a65726f206164647265737360601b60648201526084016103d5565b600d80546001600160a01b0390921664010000000002640100000000600160c01b0319909216919091179055565b6040805180820190915260008082526020820152610d7582612942565b610d915760405162461bcd60e51b81526004016103d59061424a565b50600090815260116020908152604091829020825180840190935280548352600101549082015290565b600d5460ff16610e225760405162461bcd60e51b815260206004820152602c60248201527f466572616c66696c6545786869626974696f6e56343a20746f6b656e2069732060448201526b6e6f74206275726e61626c6560a01b60648201526084016103d5565b60005b8151811015610ea157610e5133838381518110610e4457610e44614281565b602002602001015161295f565b610e6d5760405162461bcd60e51b81526004016103d590614297565b610e8f828281518110610e8257610e82614281565b60200260200101516129de565b80610e99816142fa565b915050610e25565b5050565b826001600160a01b0381163314610ebf57610ebf33612760565b306001600160a01b03841603610ee75760405162461bcd60e51b81526004016103d590614313565b610ef2848484612ab4565b50505050565b600d5462010000900460ff16610f635760405162461bcd60e51b815260206004820152602a60248201527f466572616c66696c6545786869626974696f6e56343a2073616c65206973206e6044820152691bdd081cdd185c9d195960b21b60648201526084016103d5565b610f6b612ae5565b610f7481612b60565b610f8460e0820160c08301614370565b610ff35780353414610fee5760405162461bcd60e51b815260206004820152602d60248201527f466572616c66696c6545786869626974696f6e56343a20696e76616c6964207060448201526c185e5b595b9d08185b5bdd5b9d609a1b60648201526084016103d5565b61105c565b600e54604051632eeee16360e01b81526001600160a01b0390911690632eeee16390611029908790879087908790600401614572565b600060405180830381600087803b15801561104357600080fd5b505af1158015611057573d6000803e3d6000fd5b505050505b6000463083604051602001611073939291906145a4565b60405160208183030381529060405280519060200120905061109781868686612cb9565b6110b457604051638baa579f60e01b815260040160405180910390fd5b60006020830135833511156110ee576110d060808401846145d7565b90506110e160208501358535614620565b6110eb9190614633565b90505b60008060005b61110160808701876145d7565b9050811015611455576111573061111e6080890160608a01613b57565b61112b60808a018a6145d7565b8581811061113b5761113b614281565b9050602002013560405180602001604052806000815250612d11565b600061116660a08801886145d7565b8381811061117657611176614281565b90506020028101906111889190614655565b808060200260200160405190810160405280939291908181526020016000905b828210156111d4576111c56040830286013681900381019061469e565b815260200190600101906111a8565b50505050509050600085905060005b8251811080156111f35750600082115b156112d85760006014600085848151811061121057611210614281565b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002054905060008382101561124f5781611251565b835b905061125d81886146f4565b9650806014600087868151811061127657611276614281565b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546112b19190614620565b909155506112c190508185614620565b9350505080806112d0906142fa565b9150506111e3565b5080156113d45760005b82518110156113d25760008382815181106112ff576112ff614281565b6020026020010151600001519050600061271085848151811061132457611324614281565b6020026020010151602001518561133b9190614707565b6113459190614633565b600d549091506001600160a01b036401000000009091048116908316036113795761137081886146f4565b965050506113c0565b61138381896146f4565b6040519098506001600160a01b0383169082156108fc029083906000818181858888f193505050501580156113bc573d6000803e3d6000fd5b5050505b806113ca816142fa565b9150506112e2565b505b6113e160808901896145d7565b848181106113f1576113f1614281565b9050602002013588606001602081019061140b9190613b57565b6001600160a01b03167f0475389cd69b8d3163620b43283bf74e8fc71020c3c6cef2a529b5c405e9687f60405160405180910390a35050808061144d906142fa565b9150506110f4565b5061146081836146f4565b61146f60208701358735614620565b10156114d25760405162461bcd60e51b815260206004820152602c60248201527f466572616c66696c6545786869626974696f6e56343a20746f74616c2062707360448201526b0206f7665722031302c3030360a41b60648201526084016103d5565b60006114df838735614620565b9050801561152a57600d546040516401000000009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015611528573d6000803e3d6000fd5b505b505050505050505050565b600061154083612079565b82106115a25760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016103d5565b6001600160a01b03831660009081526012602052604090208054839081106115cc576115cc614281565b9060005260206000200154905092915050565b3360009081526007602052604090205460ff168061160757506006546001600160a01b031633145b61161057600080fd5b61161983612942565b6116365760405163e36fc81560e01b815260040160405180910390fd5b6000838152601560205260409020610ef282848361476c565b6116576126e1565b600d546301000000900460ff16156116815760405162461bcd60e51b81526004016103d59061482b565b600d5462010000900460ff16156116f75760405162461bcd60e51b815260206004820152603460248201527f466572616c66696c6545786869626974696f6e56343a205f73656c6c696e6720604482015273726571756972656420746f2062652066616c736560601b60648201526084016103d5565b6116ff612ae5565b600d805462ff0000191662010000179055565b61171a6126e1565b82811461173a576040516313086eff60e21b815260040160405180910390fd5b60005b838110156118ab57600085858381811061175957611759614281565b905060200201602081019061176e9190613b57565b6001600160a01b03160361179557604051630107349760e51b815260040160405180910390fd5b8282828181106117a7576117a7614281565b905060200201356000036117ce57604051636745f8fb60e01b815260040160405180910390fd5b6000601460008787858181106117e6576117e6614281565b90506020020160208101906117fb9190613b57565b6001600160a01b03166001600160a01b0316815260200190815260200160002054111561183b576040516328547bdf60e01b815260040160405180910390fd5b82828281811061184d5761184d614281565b905060200201356014600087878581811061186a5761186a614281565b905060200201602081019061187f9190613b57565b6001600160a01b03168152602081019190915260400160002055806118a3816142fa565b91505061173d565b5050505050565b6118ba6126e1565b8281146118da576040516313086eff60e21b815260040160405180910390fd5b60005b838110156118ab5760008383838181106118f9576118f9614281565b905060200201602081019061190e9190613b57565b6001600160a01b03160361193557604051630107349760e51b815260040160405180910390fd5b60006014600085858581811061194d5761194d614281565b90506020020160208101906119629190613b57565b6001600160a01b03166001600160a01b031681526020019081526020016000205411156119a2576040516328547bdf60e01b815260040160405180910390fd5b601460008686848181106119b8576119b8614281565b90506020020160208101906119cd9190613b57565b6001600160a01b03166001600160a01b031681526020019081526020016000205460146000858585818110611a0457611a04614281565b9050602002016020810190611a199190613b57565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060146000868684818110611a5357611a53614281565b9050602002016020810190611a689190613b57565b6001600160a01b03168152602081019190915260400160009081205580611a8e816142fa565b9150506118dd565b826001600160a01b0381163314611ab057611ab033612760565b306001600160a01b03841603611ad85760405162461bcd60e51b81526004016103d590614313565b610ef2848484612d44565b600a8054611af090614210565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1c90614210565b8015611b695780601f10611b3e57610100808354040283529160200191611b69565b820191906000526020600020905b815481529060010190602001808311611b4c57829003601f168201915b505050505081565b611b796126e1565b600d546301000000900460ff1615611ba35760405162461bcd60e51b81526004016103d59061482b565b600d5462010000900460ff16611c175760405162461bcd60e51b815260206004820152603360248201527f466572616c66696c6545786869626974696f6e56343a205f73656c6c696e6720604482015272726571756972656420746f206265207472756560681b60648201526084016103d5565b600d805462ff000019169055565b6000818152600260205260408120546001600160a01b031680610b845760405162461bcd60e51b81526004016103d59061424a565b611c626126e1565b60008251118015611c74575060008151115b611cf45760405162461bcd60e51b815260206004820152604560248201527f466572616c66696c6545786869626974696f6e56343a2073657269657349647360448201527f206f7220726563697069656e74416464726573736573206c656e677468206973606482015264207a65726f60d81b608482015260a4016103d5565b8051825114611d805760405162461bcd60e51b815260206004820152604c60248201527f466572616c66696c6545786869626974696f6e56343a2073657269657349647360448201527f206c656e67746820697320646966666572656e742066726f6d2072656369706960648201526b656e7441646472657373657360a01b608482015260a4016103d5565b611d88611b71565b30600081815260126020908152604080832080548251818502810185019093528083529192909190830182828015611ddf57602002820191906000526020600020905b815481526020019060010190808311611dcb575b5050505050905060005b8151811015611edb576000828281518110611e0657611e06614281565b602090810291909101810151600081815260118352604080822081518083019092528054825260010154938101939093529092505b87518161ffff161015611ec557878161ffff1681518110611e5e57611e5e614281565b6020026020010151826000015103611eb3576000878261ffff1681518110611e8857611e88614281565b60200260200101519050611ead87828660405180602001604052806000815250612d11565b50611ec5565b80611ebd8161487f565b915050611e3b565b5050508080611ed3906142fa565b915050611de9565b50611ee582612079565b15610ef25760405162461bcd60e51b815260206004820152603c60248201527f466572616c66696c6545786869626974696f6e56343a20546f6b656e20666f7260448201527f2073616c652062616c616e63652068617320746f206265207a65726f0000000060648201526084016103d5565b611f606126e1565b6001600160a01b038116611fcc5760405162461bcd60e51b815260206004820152602d60248201527f466572616c66696c6545786869626974696f6e56343a207661756c745f20697360448201526c207a65726f206164647265737360981b60648201526084016103d5565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b611ff66126e1565b6001600160a01b0381166120575760405162461bcd60e51b815260206004820152602260248201527f45434453415369676e3a207369676e65725f206973207a65726f206164647265604482015261737360f01b60648201526084016103d5565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0382166120e35760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103d5565b506001600160a01b031660009081526003602052604090205490565b6121076126e1565b6121116000612d5f565b565b60156020526000908152604090208054611af090614210565b6001600160a01b03811660009081526012602090815260409182902080548351818402810184019094528084526060939283018282801561218c57602002820191906000526020600020905b815481526020019060010190808311612178575b50505050509050919050565b60606121a382612942565b6121c05760405163e36fc81560e01b815260040160405180910390fd5b600082815260156020526040902080546121d990614210565b80601f016020809104026020016040519081016040528092919081815260200182805461220590614210565b801561218c5780601f106122275761010080835404028352916020019161218c565b820191906000526020600020905b8154815290600101906020018083116122355750939695505050505050565b3360009081526007602052604090205460ff168061227c57506006546001600160a01b031633145b61228557600080fd5b600d546301000000900460ff166122fc5760405162461bcd60e51b815260206004820152603560248201527f466572616c66696c6545786869626974696f6e56343a20636f6e747261637420604482015274191bd95cdb89dd08185b1b1bddc81d1bc81b5a5b9d605a1b60648201526084016103d5565b60005b81811015610c805761237183838381811061231c5761231c614281565b9050606002016000013584848481811061233857612338614281565b9050606002016020013585858581811061235457612354614281565b905060600201604001602081019061236c9190613b57565b612db1565b8061237b816142fa565b9150506122ff565b61238b6126e1565b60008151116123e65760405162461bcd60e51b815260206004820152602160248201527f4552433732314d657461646174613a20626173655552495f20697320656d70746044820152607960f81b60648201526084016103d5565b600a610ea182826148a0565b606060018054610bc290614210565b8161240b81612760565b610c808383612f33565b61241d6126e1565b600d805463ff0000001916905561211161164f565b836001600160a01b038116331461244c5761244c33612760565b306001600160a01b038516036124745760405162461bcd60e51b81526004016103d590614313565b6118ab85858585612f3e565b6124886126e1565b612490611b71565b306000908152601260209081526040808320805482518185028101850190935280835291929091908301828280156124e757602002820191906000526020600020905b8154815260200190600101908083116124d3575b5050505050905060005b8151811015610ea15761250f828281518110610e8257610e82614281565b80612519816142fa565b9150506124f1565b60606000600a805461253290614210565b9050116125905760405162461bcd60e51b815260206004820152602660248201527f4552433732314d657461646174613a205f746f6b656e4261736555524920697360448201526520656d70747960d01b60648201526084016103d5565b61259982612942565b6125fd5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016103d5565b600a61260883612f70565b60405160200161261992919061495f565b6040516020818303038152906040529050919050565b6126376126e1565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b600b8054611af090614210565b6126706126e1565b6001600160a01b0381166126d55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103d5565b6126de81612d5f565b50565b6006546001600160a01b031633146121115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d5565b61274481612942565b6126de5760405162461bcd60e51b81526004016103d59061424a565b6008546001600160a01b03163b156126de57600854604051633185c44d60e21b81523060048201526001600160a01b0383811660248301529091169063c617113490604401602060405180830381865afa1580156127c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e691906149f3565b6126de5760405162461bcd60e51b815260206004820152601760248201527f6f70657261746f72206973206e6f7420616c6c6f77656400000000000000000060448201526064016103d5565b600061283d82611c25565b9050806001600160a01b0316836001600160a01b0316036128aa5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016103d5565b336001600160a01b03821614806128c657506128c68133610a25565b6129385760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016103d5565b610c808383613003565b6000908152600260205260409020546001600160a01b0316151590565b60008061296b83611c25565b9050806001600160a01b0316846001600160a01b031614806129b257506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806129d65750836001600160a01b03166129cb84610c45565b6001600160a01b0316145b949350505050565b6129e781612942565b612a035760405162461bcd60e51b81526004016103d59061424a565b60008181526011602090815260408083208151808301835281548082526001928301548286015285526010909352908320805492939192909190612a48908490614620565b925050819055506001600c6000828254612a629190614620565b9091555050600082815260116020526040812081815560010155612a8582613071565b60405182907fbde7938970372996ff103863625e348ef2bf8f38a5b02181be75aafef17c23d590600090a25050565b612abe338261295f565b612ada5760405162461bcd60e51b81526004016103d590614297565b610c80838383613114565b6000612af030612079565b9050600081116126de5760405162461bcd60e51b815260206004820152603560248201527f466572616c66696c6545786869626974696f6e56343a204e6f20746f6b656e206044820152741bdddb995908189e481d1a194818dbdb9d1c9858dd605a1b60648201526084016103d5565b6000612b6f60808301836145d7565b905011612bca5760405162461bcd60e51b8152602060048201526024808201527f466572616c66696c6553616c65446174613a20746f6b656e49647320697320656044820152636d70747960e01b60648201526084016103d5565b612bd760a08201826145d7565b9050612be660808301836145d7565b905014612c5b5760405162461bcd60e51b815260206004820152603d60248201527f466572616c66696c6553616c65446174613a20746f6b656e49647320616e642060448201527f726576656e7565536861726573206c656e677468206d69736d6174636800000060648201526084016103d5565b428160400135116126de5760405162461bcd60e51b815260206004820152602260248201527f466572616c66696c6553616c65446174613a2073616c65206973206578706972604482015261195960f21b60648201526084016103d5565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c859052603c81208190612cf690848787613285565b6009546001600160a01b039081169116149695505050505050565b612d1c848484613114565b612d28848484846132ad565b610ef25760405162461bcd60e51b81526004016103d590614a10565b610c8083838360405180602001604052806000815250612432565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000838152600f60205260409020541515612dcb84612f70565b604051602001612ddb9190614a62565b60405160208183030381529060405290612e085760405162461bcd60e51b81526004016103d59190613bc2565b506000838152600f602090815260408083205460109092529091205410612e835760405162461bcd60e51b815260206004820152602960248201527f466572616c66696c6545786869626974696f6e56343a206e6f20736c6f747320604482015268617661696c61626c6560b81b60648201526084016103d5565b6001600c6000828254612e9691906146f4565b90915550506000838152601060205260408120805460019290612eba9084906146f4565b9091555050604080518082018252848152602080820185815260008681526011909252929020905181559051600190910155612ef681836133ab565b8183826001600160a01b03167f407d7da1d3b2b1871fbfa2b5b1c4657a3cc5711d3023c552798551c7ee301eea60405160405180910390a4505050565b610ea1338383613526565b612f48338361295f565b612f645760405162461bcd60e51b81526004016103d590614297565b610ef284848484612d11565b60606000612f7d836135f4565b60010190506000816001600160401b03811115612f9c57612f9c613c18565b6040519080825280601f01601f191660200182016040528015612fc6576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612fd0575b509392505050565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061303882611c25565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061307c82611c25565b905061308c8160008460016136cc565b61309582611c25565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b826001600160a01b031661312782611c25565b6001600160a01b03161461314d5760405162461bcd60e51b81526004016103d590614abf565b6001600160a01b0382166131af5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103d5565b6131bc83838360016136cc565b826001600160a01b03166131cf82611c25565b6001600160a01b0316146131f55760405162461bcd60e51b81526004016103d590614abf565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000806000613296878787876137e3565b915091506132a3816138a7565b5095945050505050565b60006001600160a01b0384163b156133a357604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906132f1903390899088908890600401614b04565b6020604051808303816000875af192505050801561332c575060408051601f3d908101601f1916820190925261332991810190614b37565b60015b613389573d80801561335a576040519150601f19603f3d011682016040523d82523d6000602084013e61335f565b606091505b5080516000036133815760405162461bcd60e51b81526004016103d590614a10565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506129d6565b5060016129d6565b6001600160a01b0382166134015760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016103d5565b61340a81612942565b156134575760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016103d5565b6134656000838360016136cc565b61346e81612942565b156134bb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016103d5565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316836001600160a01b0316036135875760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103d5565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106136335772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061365f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061367d57662386f26fc10000830492506010015b6305f5e1008310613695576305f5e100830492506008015b61271083106136a957612710830492506004015b606483106136bb576064830492506002015b600a8310610b845760010192915050565b600181111561373b5760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b60648201526084016103d5565b816001600160a01b038516158015906137665750836001600160a01b0316856001600160a01b031614155b156137755761377585826139f1565b6001600160a01b0384161580159061379f5750846001600160a01b0316846001600160a01b031614155b156118ab576001600160a01b0384166000908152601260209081526040808320805460018101825590845282842081018590558484526013909252909120556118ab565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561381a575060009050600361389e565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561386e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166138975760006001925092505061389e565b9150600090505b94509492505050565b60008160048111156138bb576138bb614b54565b036138c35750565b60018160048111156138d7576138d7614b54565b036139245760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103d5565b600281600481111561393857613938614b54565b036139855760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103d5565b600381600481111561399957613999614b54565b036126de5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016103d5565b600060016139fe84612079565b613a089190614620565b600083815260136020526040902054909150808214613aaf576001600160a01b0384166000908152601260205260408120805484908110613a4b57613a4b614281565b906000526020600020015490508060126000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110613a8f57613a8f614281565b600091825260208083209091019290925591825260139052604090208190555b60008381526013602090815260408083208390556001600160a01b038716835260129091529020805480613ae557613ae5614b6a565b6001900381819060005260206000200160009055905550505050565b6001600160e01b0319811681146126de57600080fd5b600060208284031215613b2957600080fd5b8135613b3481613b01565b9392505050565b80356001600160a01b0381168114613b5257600080fd5b919050565b600060208284031215613b6957600080fd5b613b3482613b3b565b60005b83811015613b8d578181015183820152602001613b75565b50506000910152565b60008151808452613bae816020860160208601613b72565b601f01601f19169290920160200192915050565b602081526000613b346020830184613b96565b600060208284031215613be757600080fd5b5035919050565b60008060408385031215613c0157600080fd5b613c0a83613b3b565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613c5657613c56613c18565b604052919050565b60006001600160401b03821115613c7757613c77613c18565b5060051b60200190565b600082601f830112613c9257600080fd5b81356020613ca7613ca283613c5e565b613c2e565b82815260059290921b84018101918181019086841115613cc657600080fd5b8286015b84811015613ce15780358352918301918301613cca565b509695505050505050565b600060208284031215613cfe57600080fd5b81356001600160401b03811115613d1457600080fd5b6129d684828501613c81565b600080600060608486031215613d3557600080fd5b613d3e84613b3b565b9250613d4c60208501613b3b565b9150604084013590509250925092565b60008060008060808587031215613d7257600080fd5b8435935060208501359250604085013560ff81168114613d9157600080fd5b915060608501356001600160401b03811115613dac57600080fd5b850160e08188031215613dbe57600080fd5b939692955090935050565b600080600060408486031215613dde57600080fd5b8335925060208401356001600160401b0380821115613dfc57600080fd5b818601915086601f830112613e1057600080fd5b813581811115613e1f57600080fd5b876020828501011115613e3157600080fd5b6020830194508093505050509250925092565b60008083601f840112613e5657600080fd5b5081356001600160401b03811115613e6d57600080fd5b6020830191508360208260051b8501011115613e8857600080fd5b9250929050565b60008060008060408587031215613ea557600080fd5b84356001600160401b0380821115613ebc57600080fd5b613ec888838901613e44565b90965094506020870135915080821115613ee157600080fd5b50613eee87828801613e44565b95989497509550505050565b60008060408385031215613f0d57600080fd5b82356001600160401b0380821115613f2457600080fd5b613f3086838701613c81565b9350602091508185013581811115613f4757600080fd5b85019050601f81018613613f5a57600080fd5b8035613f68613ca282613c5e565b81815260059190911b82018301908381019088831115613f8757600080fd5b928401925b82841015613fac57613f9d84613b3b565b82529284019290840190613f8c565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613ff357835183529284019291840191600101613fd7565b50909695505050505050565b6000806020838503121561401257600080fd5b82356001600160401b038082111561402957600080fd5b818501915085601f83011261403d57600080fd5b81358181111561404c57600080fd5b86602060608302850101111561406157600080fd5b60209290920196919550909350505050565b60006001600160401b0383111561408c5761408c613c18565b61409f601f8401601f1916602001613c2e565b90508281528383830111156140b357600080fd5b828260208301376000602084830101529392505050565b6000602082840312156140dc57600080fd5b81356001600160401b038111156140f257600080fd5b8201601f8101841361410357600080fd5b6129d684823560208401614073565b80151581146126de57600080fd5b8035613b5281614112565b6000806040838503121561413e57600080fd5b61414783613b3b565b9150602083013561415781614112565b809150509250929050565b6000806000806080858703121561417857600080fd5b61418185613b3b565b935061418f60208601613b3b565b92506040850135915060608501356001600160401b038111156141b157600080fd5b8501601f810187136141c257600080fd5b6141d187823560208401614073565b91505092959194509250565b600080604083850312156141f057600080fd5b6141f983613b3b565b915061420760208401613b3b565b90509250929050565b600181811c9082168061422457607f821691505b60208210810361424457634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526018908201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60006001820161430c5761430c6142e4565b5060010190565b6020808252603e908201527f466572616c66696c6545786869626974696f6e56343a20436f6e74726163742060408201527f69736e277420616c6c6f77656420746f207265636569766520746f6b656e0000606082015260800190565b60006020828403121561438257600080fd5b8135613b3481614112565b6000808335601e198436030181126143a457600080fd5b83016020810192503590506001600160401b038111156143c357600080fd5b8060051b3603821315613e8857600080fd5b8183526000602080850194508260005b8581101561441b576001600160a01b036143fe83613b3b565b1687528183013583880152604096870196909101906001016143e5565b509495945050505050565b818352600060208085019450848460051b86018460005b878110156144aa5783830389528135601e1988360301811261445e57600080fd5b870185810190356001600160401b0381111561447957600080fd5b8060061b360382131561448b57600080fd5b6144968582846143d5565b9a87019a945050509084019060010161443d565b5090979650505050505050565b8035825260208082013590830152604080820135908301526001600160a01b036144e360608301613b3b565b16606083015260006144f8608083018361438d565b60e06080860181905285018190526101006001600160fb1b0382111561451d57600080fd5b8160051b9150818382880137818601925061453b60a086018661438d565b9250818785030160a08801526145548285018483614426565b935050505061456560c08401614120565b80151560c0860152612ffb565b84815283602082015260ff8316604082015260806060820152600061459a60808301846144b7565b9695505050505050565b8381526001600160a01b03831660208201526060604082018190526000906145ce908301846144b7565b95945050505050565b6000808335601e198436030181126145ee57600080fd5b8301803591506001600160401b0382111561460857600080fd5b6020019150600581901b3603821315613e8857600080fd5b81810381811115610b8457610b846142e4565b60008261465057634e487b7160e01b600052601260045260246000fd5b500490565b6000808335601e1984360301811261466c57600080fd5b8301803591506001600160401b0382111561468657600080fd5b6020019150600681901b3603821315613e8857600080fd5b6000604082840312156146b057600080fd5b604051604081018181106001600160401b03821117156146d2576146d2613c18565b6040526146de83613b3b565b8152602083013560208201528091505092915050565b80820180821115610b8457610b846142e4565b8082028115828204841417610b8457610b846142e4565b601f821115610c8057600081815260208120601f850160051c810160208610156147455750805b601f850160051c820191505b8181101561476457828155600101614751565b505050505050565b6001600160401b0383111561478357614783613c18565b614797836147918354614210565b8361471e565b6000601f8411600181146147cb57600085156147b35750838201355b600019600387901b1c1916600186901b1783556118ab565b600083815260209020601f19861690835b828110156147fc57868501358255602094850194600190920191016147dc565b50868210156148195760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208082526034908201527f466572616c66696c6545786869626974696f6e56343a206d696e7461626c6520604082015273726571756972656420746f2062652066616c736560601b606082015260800190565b600061ffff808316818103614896576148966142e4565b6001019392505050565b81516001600160401b038111156148b9576148b9613c18565b6148cd816148c78454614210565b8461471e565b602080601f83116001811461490257600084156148ea5750858301515b600019600386901b1c1916600185901b178555614764565b600085815260208120601f198616915b8281101561493157888601518255948401946001909101908401614912565b508582101561494f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080845461496d81614210565b60018281168015614985576001811461499a576149c9565b60ff19841687528215158302870194506149c9565b8860005260208060002060005b858110156149c05781548a8201529084019082016149a7565b50505082870194505b50602f60f81b8452865192506149e58382860160208a01613b72565b919092010195945050505050565b600060208284031215614a0557600080fd5b8151613b3481614112565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f466572616c66696c6545786869626974696f6e56343a2073657269657349642081526e03237b2b9b713ba1032bc34b9ba1d1608d1b602082015260008251614ab281602f850160208701613b72565b91909101602f0192915050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061459a90830184613b96565b600060208284031215614b4957600080fd5b8151613b3481613b01565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220df0be93afc5cf12fb39a9a2b5147daed04440dd78228fff96b63663b66d32f0264736f6c63430008110033", + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"burnable_\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"bridgeable_\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"signer_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vault_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"costReceiver_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractURI_\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"seriesIds_\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"seriesMaxSupplies_\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AdvanceAddressAlreadyUsed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAdvanceAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAdvanceAddressesAndAmounts\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAdvanceAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenIDNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"BurnArtwork\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"BuyArtwork\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NewArtwork\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"OperatorFilterRegistry\",\"outputs\":[{\"internalType\":\"contractIOperatorFilterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_tokenIndexes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_tokenInfos\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"thumbnail\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"parameters\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustee\",\"type\":\"address\"}],\"name\":\"addTrustee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"advances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridgeable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"burnArtworks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burnable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"r_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s_\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v_\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiryTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bps\",\"type\":\"uint256\"}],\"internalType\":\"structIFeralfileSaleData.RevenueShare[][]\",\"name\":\"revenueShares\",\"type\":\"tuple[][]\"},{\"internalType\":\"bool\",\"name\":\"payByVaultContract\",\"type\":\"bool\"}],\"internalType\":\"structIFeralfileSaleData.SaleData\",\"name\":\"saleData_\",\"type\":\"tuple\"}],\"name\":\"buyArtworks\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"codeVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"costReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getArtwork\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"internalType\":\"structFeralfileExhibitionV4.Artwork\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"internalType\":\"structFeralfileExhibitionV4.MintData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"mintArtworks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_trustee\",\"type\":\"address\"}],\"name\":\"removeTrustee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"oldAddresses_\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"newAddresses_\",\"type\":\"address[]\"}],\"name\":\"replaceAdvanceAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selling\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"}],\"name\":\"seriesMaxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"}],\"name\":\"seriesTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses_\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts_\",\"type\":\"uint256[]\"}],\"name\":\"setAdvanceSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"costReceiver_\",\"type\":\"address\"}],\"name\":\"setCostReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer_\",\"type\":\"address\"}],\"name\":\"setSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI_\",\"type\":\"string\"}],\"name\":\"setTokenBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault_\",\"type\":\"address\"}],\"name\":\"setVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopSaleAndBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"seriesIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"recipientAddresses\",\"type\":\"address[]\"}],\"name\":\"stopSaleAndTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenBaseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenPlaceholderThubmnail\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenPlaceholderURL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"tokensOfOwner\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"trustees\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorFilterRegisterAddress\",\"type\":\"address\"}],\"name\":\"updateOperatorFilterRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"contractIFeralfileVault\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"seriesId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"}],\"internalType\":\"structFeralfileExhibitionV4_2.MintDataWithIndex[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"mintArtworksWithIndex\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"thumbnail\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"parameters\",\"type\":\"bytes\"}],\"name\":\"updateArtworkParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6080604052600880546001600160a01b0319166daaeb6d7670e522a718067333cd4e179055600d805463ff000000191663010000001790553480156200004457600080fd5b506040516200654638038062006546833981016040819052620000679162000985565b8989898989898989898989898989898989898989858a8a60006200008c838262000b54565b5060016200009b828262000b54565b505050620000b8620000b2620007a360201b60201c565b620007a7565b6008546001600160a01b03163b156200014557600854604051633e9f1edf60e11b8152306004820152733cc6cdda760b79bafa08df41ecfa224f810dceb660248201526001600160a01b0390911690637d3e3dbe90604401600060405180830381600087803b1580156200012b57600080fd5b505af115801562000140573d6000803e3d6000fd5b505050505b6001600160a01b038116620001ac5760405162461bcd60e51b815260206004820152602260248201527f45434453415369676e3a207369676e65725f206973207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b600980546001600160a01b0319166001600160a01b039290921691909117905589516200022a5760405162461bcd60e51b815260206004820152602560248201527f466572616c66696c6545786869626974696f6e56343a206e616d655f20697320604482015264656d70747960d81b6064820152608401620001a3565b60008951116200028d5760405162461bcd60e51b815260206004820152602760248201527f466572616c66696c6545786869626974696f6e56343a2073796d626f6c5f20696044820152667320656d70747960c81b6064820152608401620001a3565b6001600160a01b0385166200030b5760405162461bcd60e51b815260206004820152603460248201527f466572616c66696c6545786869626974696f6e56343a207661756c744164647260448201527f6573735f206973207a65726f20616464726573730000000000000000000000006064820152608401620001a3565b6001600160a01b038416620003895760405162461bcd60e51b815260206004820152603460248201527f466572616c66696c6545786869626974696f6e56343a20636f7374526563656960448201527f7665725f206973207a65726f20616464726573730000000000000000000000006064820152608401620001a3565b6000835111620003f15760405162461bcd60e51b815260206004820152602c60248201527f466572616c66696c6545786869626974696f6e56343a20636f6e74726163745560448201526b52495f20697320656d70747960a01b6064820152608401620001a3565b6000825111620004575760405162461bcd60e51b815260206004820152602a60248201527f466572616c66696c6545786869626974696f6e56343a207365726965734964736044820152695f20697320656d70747960b01b6064820152608401620001a3565b6000815111620004c55760405162461bcd60e51b815260206004820152603260248201527f466572616c66696c6545786869626974696f6e56343a205f7365726965734d6160448201527178537570706c69657320697320656d70747960701b6064820152608401620001a3565b8051825114620005585760405162461bcd60e51b815260206004820152605160248201527f466572616c66696c6545786869626974696f6e56343a207365726965734d617860448201527f537570706c6965735f20616e64207365726965734964735f206c656e6774687360648201527020617265206e6f74207468652073616d6560781b608482015260a401620001a3565b600d805461ffff191689151561ff001916176101008915150217600160201b600160c01b0319166401000000006001600160a01b038781169190910291909117909155600e80546001600160a01b031916918716919091179055600b620005c0848262000b54565b5060005b82518110156200077e576000620005dd82600162000c36565b90505b83518110156200069a57838181518110620005ff57620005ff62000c52565b60200260200101518483815181106200061c576200061c62000c52565b602002602001015103620006855760405162461bcd60e51b815260206004820152602960248201527f466572616c66696c6545786869626974696f6e56343a206475706c6963617465604482015268081cd95c9a595cd25960ba1b6064820152608401620001a3565b80620006918162000c68565b915050620005e0565b506000828281518110620006b257620006b262000c52565b602002602001015111620007185760405162461bcd60e51b815260206004820152602660248201527f466572616c66696c6545786869626974696f6e56343a207a65726f206d617820604482015265737570706c7960d01b6064820152608401620001a3565b8181815181106200072d576200072d62000c52565b6020026020010151600f60008584815181106200074e576200074e62000c52565b60200260200101518152602001908152602001600020819055508080620007759062000c68565b915050620005c4565b5050505050505050505050505050505050505050505050505050505050505062000c84565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200083a576200083a620007f9565b604052919050565b600082601f8301126200085457600080fd5b81516001600160401b03811115620008705762000870620007f9565b602062000886601f8301601f191682016200080f565b82815285828487010111156200089b57600080fd5b60005b83811015620008bb5785810183015182820184015282016200089e565b506000928101909101919091529392505050565b80518015158114620008e057600080fd5b919050565b80516001600160a01b0381168114620008e057600080fd5b600082601f8301126200090f57600080fd5b815160206001600160401b038211156200092d576200092d620007f9565b8160051b6200093e8282016200080f565b92835284810182019282810190878511156200095957600080fd5b83870192505b848310156200097a578251825291830191908301906200095f565b979650505050505050565b6000806000806000806000806000806101408b8d031215620009a657600080fd5b8a516001600160401b0380821115620009be57600080fd5b620009cc8e838f0162000842565b9b5060208d0151915080821115620009e357600080fd5b620009f18e838f0162000842565b9a5062000a0160408e01620008cf565b995062000a1160608e01620008cf565b985062000a2160808e01620008e5565b975062000a3160a08e01620008e5565b965062000a4160c08e01620008e5565b955060e08d015191508082111562000a5857600080fd5b62000a668e838f0162000842565b94506101008d015191508082111562000a7e57600080fd5b62000a8c8e838f01620008fd565b93506101208d015191508082111562000aa457600080fd5b5062000ab38d828e01620008fd565b9150509295989b9194979a5092959850565b600181811c9082168062000ada57607f821691505b60208210810362000afb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000b4f57600081815260208120601f850160051c8101602086101562000b2a5750805b601f850160051c820191505b8181101562000b4b5782815560010162000b36565b5050505b505050565b81516001600160401b0381111562000b705762000b70620007f9565b62000b888162000b81845462000ac5565b8462000b01565b602080601f83116001811462000bc0576000841562000ba75750858301515b600019600386901b1c1916600185901b17855562000b4b565b600085815260208120601f198616915b8281101562000bf15788860151825594840194600190910190840162000bd0565b508582101562000c105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000c4c5762000c4c62000c20565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000c7d5762000c7d62000c20565b5060010190565b6158b28062000c946000396000f3fe6080604052600436106103855760003560e01c806370a08231116101d1578063aeffbfcc11610102578063e8a3d485116100a0578063f07e7fd01161006f578063f07e7fd014610b46578063f2fde38b14610b66578063f4e638be14610b86578063fbfa77cf14610bae57600080fd5b8063e8a3d48514610a8b578063e985e9c514610aa0578063eb5c60f214610ae9578063eee608a414610b1657600080fd5b8063b942d0e7116100dc578063b942d0e714610a16578063b9b8311a14610a36578063c87b56dd14610a4b578063dc78ac1c14610a6b57600080fd5b8063aeffbfcc146109cc578063b66a0e5d146109e1578063b88d4fde146109f657600080fd5b80638da5cb5b1161016f578063926ce44e11610149578063926ce44e1461095057806395d89b411461097d578063a07c7ce414610992578063a22cb465146109ac57600080fd5b80638da5cb5b146108e55780638e84b0f1146109035780638ef79e911461093057600080fd5b80638462151c116101ab5780638462151c1461084a57806384f78930146108775780638676192b146108975780638cba1c67146108c557600080fd5b806370a08231146107e8578063715018a6146108085780637f06ee061461081d57600080fd5b80632977e4b3116102b65780634e99b8001161025457806363e602301161022357806363e602301461074757806365a46e08146107885780636817031b146107a85780636c19e783146107c857600080fd5b80634e99b800146106de578063530da8ef146106f357806355367ba9146107125780636352211e1461072757600080fd5b80633c352b0d116102905780633c352b0d1461065d57806341a5626a1461067d57806342842e0e1461069d5780634bf365df146106bd57600080fd5b80632977e4b3146106155780632f745c591461062857806333e364cb1461064857600080fd5b80631623528f1161032357806321fe0c64116102fd57806321fe0c6414610599578063238ac933146105b957806323aed228146105d757806323b872dd146105f557600080fd5b80631623528f1461051a578063167ddf6e1461053a57806318160ddd1461057557600080fd5b8063081812fc1161035f578063081812fc1461048d578063095ea7b3146104c55780630fdfc918146104e5578063114ba8ee146104fa57600080fd5b806301ffc9a714610416578063031205061461044b57806306fdde031461046b57600080fd5b3661041157600e546001600160a01b0316331461040f5760405162461bcd60e51b815260206004820152603c60248201527f466572616c66696c6545786869626974696f6e56343a206f6e6c79206163636560448201527f70742066756e642066726f6d207661756c7420636f6e74726163742e0000000060648201526084015b60405180910390fd5b005b600080fd5b34801561042257600080fd5b506104366104313660046141e3565b610bce565b60405190151581526020015b60405180910390f35b34801561045757600080fd5b5061040f61046636600461421c565b610c20565b34801561047757600080fd5b50610480610c49565b6040516104429190614287565b34801561049957600080fd5b506104ad6104a836600461429a565b610cdb565b6040516001600160a01b039091168152602001610442565b3480156104d157600080fd5b5061040f6104e03660046142b3565b610d02565b3480156104f157600080fd5b50610480610d1b565b34801561050657600080fd5b5061040f61051536600461421c565b610da9565b34801561052657600080fd5b5061040f61053536600461421c565b610dd3565b34801561054657600080fd5b5061055a61055536600461429a565b610e7c565b60408051825181526020928301519281019290925201610442565b34801561058157600080fd5b5061058b600c5481565b604051908152602001610442565b3480156105a557600080fd5b5061040f6105b43660046143b1565b610edf565b3480156105c557600080fd5b506009546001600160a01b03166104ad565b3480156105e357600080fd5b50600d5462010000900460ff16610436565b34801561060157600080fd5b5061040f6106103660046143e5565b610fc9565b61040f610623366004614421565b61101c565b34801561063457600080fd5b5061058b6106433660046142b3565b611659565b34801561065457600080fd5b5061040f611703565b34801561066957600080fd5b5061040f6106783660046144d9565b6117c6565b34801561068957600080fd5b5061040f6106983660046144d9565b611966565b3480156106a957600080fd5b5061040f6106b83660046143e5565b611b4a565b3480156106c957600080fd5b50600d54610436906301000000900460ff1681565b3480156106ea57600080fd5b50610480611b97565b3480156106ff57600080fd5b50600d5461043690610100900460ff1681565b34801561071e57600080fd5b5061040f611ba4565b34801561073357600080fd5b506104ad61074236600461429a565b611c58565b34801561075357600080fd5b506104806040518060400160405280601581526020017411995c985b199a5b19515e1a1a589a5d1a5bdb958d605a1b81525081565b34801561079457600080fd5b5061040f6107a3366004614544565b611c8d565b3480156107b457600080fd5b5061040f6107c336600461421c565b611f8b565b3480156107d457600080fd5b5061040f6107e336600461421c565b612021565b3480156107f457600080fd5b5061058b61080336600461421c565b6120ac565b34801561081457600080fd5b5061040f612132565b34801561082957600080fd5b5061058b61083836600461429a565b60009081526010602052604090205490565b34801561085657600080fd5b5061086a61086536600461421c565b612146565b6040516104429190614605565b34801561088357600080fd5b5061040f610892366004614649565b6121b2565b3480156108a357600080fd5b506108b76108b236600461429a565b6122e2565b6040516104429291906146bd565b3480156108d157600080fd5b5061040f6108e03660046146eb565b61240e565b3480156108f157600080fd5b506006546001600160a01b03166104ad565b34801561090f57600080fd5b5061058b61091e36600461429a565b60166020526000908152604090205481565b34801561093c57600080fd5b5061040f61094b3660046147a4565b612538565b34801561095c57600080fd5b5061058b61096b36600461421c565b60146020526000908152604090205481565b34801561098957600080fd5b506104806125a7565b34801561099e57600080fd5b50600d546104369060ff1681565b3480156109b857600080fd5b5061040f6109c7366004614805565b6125b6565b3480156109d857600080fd5b506104806125ca565b3480156109ed57600080fd5b5061040f6125d7565b348015610a0257600080fd5b5061040f610a1136600461483c565b6125f4565b348015610a2257600080fd5b5061040f610a313660046148f8565b612642565b348015610a4257600080fd5b5061040f61274d565b348015610a5757600080fd5b50610480610a6636600461429a565b6127ee565b348015610a7757600080fd5b5061040f610a8636600461421c565b61281f565b348015610a9757600080fd5b5061048061284b565b348015610aac57600080fd5b50610436610abb366004614971565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610af557600080fd5b5061058b610b0436600461429a565b6000908152600f602052604090205490565b348015610b2257600080fd5b50610436610b3136600461421c565b60076020526000908152604090205460ff1681565b348015610b5257600080fd5b506008546104ad906001600160a01b031681565b348015610b7257600080fd5b5061040f610b8136600461421c565b612858565b348015610b9257600080fd5b50600d546104ad9064010000000090046001600160a01b031681565b348015610bba57600080fd5b50600e546104ad906001600160a01b031681565b60006001600160e01b031982166380ac58cd60e01b1480610bff57506001600160e01b03198216635b5e139f60e01b145b80610c1a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610c286128d1565b6001600160a01b03166000908152600760205260409020805460ff19169055565b606060008054610c58906149a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c84906149a4565b8015610cd15780601f10610ca657610100808354040283529160200191610cd1565b820191906000526020600020905b815481529060010190602001808311610cb457829003601f168201915b5050505050905090565b6000610ce68261292b565b506000908152600460205260409020546001600160a01b031690565b81610d0c81612950565b610d168383612a22565b505050565b60178054610d28906149a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610d54906149a4565b8015610da15780601f10610d7657610100808354040283529160200191610da1565b820191906000526020600020905b815481529060010190602001808311610d8457829003601f168201915b505050505081565b610db16128d1565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ddb6128d1565b6001600160a01b038116610e4e5760405162461bcd60e51b815260206004820152603460248201527f466572616c66696c6545786869626974696f6e56343a20636f737452656365696044820152737665725f206973207a65726f206164647265737360601b6064820152608401610406565b600d80546001600160a01b0390921664010000000002640100000000600160c01b0319909216919091179055565b6040805180820190915260008082526020820152610e9982612b32565b610eb55760405162461bcd60e51b8152600401610406906149de565b50600090815260116020908152604091829020825180840190935280548352600101549082015290565b600d5460ff16610f465760405162461bcd60e51b815260206004820152602c60248201527f466572616c66696c6545786869626974696f6e56343a20746f6b656e2069732060448201526b6e6f74206275726e61626c6560a01b6064820152608401610406565b60005b8151811015610fc557610f7533838381518110610f6857610f68614a15565b6020026020010151612b4f565b610f915760405162461bcd60e51b815260040161040690614a2b565b610fb3828281518110610fa657610fa6614a15565b6020026020010151612bce565b80610fbd81614a8e565b915050610f49565b5050565b826001600160a01b0381163314610fe357610fe333612950565b306001600160a01b0384160361100b5760405162461bcd60e51b815260040161040690614aa7565b611016848484612ca4565b50505050565b600d5462010000900460ff166110875760405162461bcd60e51b815260206004820152602a60248201527f466572616c66696c6545786869626974696f6e56343a2073616c65206973206e6044820152691bdd081cdd185c9d195960b21b6064820152608401610406565b61108f612cd5565b61109881612d50565b6110a860e0820160c08301614b04565b61111757803534146111125760405162461bcd60e51b815260206004820152602d60248201527f466572616c66696c6545786869626974696f6e56343a20696e76616c6964207060448201526c185e5b595b9d08185b5bdd5b9d609a1b6064820152608401610406565b611180565b600e54604051632eeee16360e01b81526001600160a01b0390911690632eeee1639061114d908790879087908790600401614d0d565b600060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050505b600046308360405160200161119793929190614d3f565b6040516020818303038152906040528051906020012090506111bb81868686612ea9565b6111d857604051638baa579f60e01b815260040160405180910390fd5b6000602083013583351115611212576111f46080840184614d69565b905061120560208501358535614db2565b61120f9190614dc5565b90505b60008060005b6112256080870187614d69565b90508110156115795761127b306112426080890160608a0161421c565b61124f60808a018a614d69565b8581811061125f5761125f614a15565b9050602002013560405180602001604052806000815250612f01565b600061128a60a0880188614d69565b8381811061129a5761129a614a15565b90506020028101906112ac9190614de7565b808060200260200160405190810160405280939291908181526020016000905b828210156112f8576112e960408302860136819003810190614e30565b815260200190600101906112cc565b50505050509050600085905060005b8251811080156113175750600082115b156113fc5760006014600085848151811061133457611334614a15565b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000205490506000838210156113735781611375565b835b90506113818188614e86565b9650806014600087868151811061139a5761139a614a15565b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546113d59190614db2565b909155506113e590508185614db2565b9350505080806113f490614a8e565b915050611307565b5080156114f85760005b82518110156114f657600083828151811061142357611423614a15565b6020026020010151600001519050600061271085848151811061144857611448614a15565b6020026020010151602001518561145f9190614e99565b6114699190614dc5565b600d549091506001600160a01b0364010000000090910481169083160361149d576114948188614e86565b965050506114e4565b6114a78189614e86565b6040519098506001600160a01b0383169082156108fc029083906000818181858888f193505050501580156114e0573d6000803e3d6000fd5b5050505b806114ee81614a8e565b915050611406565b505b6115056080890189614d69565b8481811061151557611515614a15565b9050602002013588606001602081019061152f919061421c565b6001600160a01b03167f0475389cd69b8d3163620b43283bf74e8fc71020c3c6cef2a529b5c405e9687f60405160405180910390a35050808061157190614a8e565b915050611218565b506115848183614e86565b61159360208701358735614db2565b10156115f65760405162461bcd60e51b815260206004820152602c60248201527f466572616c66696c6545786869626974696f6e56343a20746f74616c2062707360448201526b0206f7665722031302c3030360a41b6064820152608401610406565b6000611603838735614db2565b9050801561164e57600d546040516401000000009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561164c573d6000803e3d6000fd5b505b505050505050505050565b6000611664836120ac565b82106116c65760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610406565b6001600160a01b03831660009081526012602052604090208054839081106116f0576116f0614a15565b9060005260206000200154905092915050565b61170b6128d1565b600d546301000000900460ff16156117355760405162461bcd60e51b815260040161040690614eb0565b600d5462010000900460ff16156117ab5760405162461bcd60e51b815260206004820152603460248201527f466572616c66696c6545786869626974696f6e56343a205f73656c6c696e6720604482015273726571756972656420746f2062652066616c736560601b6064820152608401610406565b6117b3612cd5565b600d805462ff0000191662010000179055565b6117ce6128d1565b8281146117ee576040516313086eff60e21b815260040160405180910390fd5b60005b8381101561195f57600085858381811061180d5761180d614a15565b9050602002016020810190611822919061421c565b6001600160a01b03160361184957604051630107349760e51b815260040160405180910390fd5b82828281811061185b5761185b614a15565b9050602002013560000361188257604051636745f8fb60e01b815260040160405180910390fd5b60006014600087878581811061189a5761189a614a15565b90506020020160208101906118af919061421c565b6001600160a01b03166001600160a01b031681526020019081526020016000205411156118ef576040516328547bdf60e01b815260040160405180910390fd5b82828281811061190157611901614a15565b905060200201356014600087878581811061191e5761191e614a15565b9050602002016020810190611933919061421c565b6001600160a01b031681526020810191909152604001600020558061195781614a8e565b9150506117f1565b5050505050565b61196e6128d1565b82811461198e576040516313086eff60e21b815260040160405180910390fd5b60005b8381101561195f5760008383838181106119ad576119ad614a15565b90506020020160208101906119c2919061421c565b6001600160a01b0316036119e957604051630107349760e51b815260040160405180910390fd5b600060146000858585818110611a0157611a01614a15565b9050602002016020810190611a16919061421c565b6001600160a01b03166001600160a01b03168152602001908152602001600020541115611a56576040516328547bdf60e01b815260040160405180910390fd5b60146000868684818110611a6c57611a6c614a15565b9050602002016020810190611a81919061421c565b6001600160a01b03166001600160a01b031681526020019081526020016000205460146000858585818110611ab857611ab8614a15565b9050602002016020810190611acd919061421c565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060146000868684818110611b0757611b07614a15565b9050602002016020810190611b1c919061421c565b6001600160a01b03168152602081019190915260400160009081205580611b4281614a8e565b915050611991565b826001600160a01b0381163314611b6457611b6433612950565b306001600160a01b03841603611b8c5760405162461bcd60e51b815260040161040690614aa7565b611016848484612f34565b600a8054610d28906149a4565b611bac6128d1565b600d546301000000900460ff1615611bd65760405162461bcd60e51b815260040161040690614eb0565b600d5462010000900460ff16611c4a5760405162461bcd60e51b815260206004820152603360248201527f466572616c66696c6545786869626974696f6e56343a205f73656c6c696e6720604482015272726571756972656420746f206265207472756560681b6064820152608401610406565b600d805462ff000019169055565b6000818152600260205260408120546001600160a01b031680610c1a5760405162461bcd60e51b8152600401610406906149de565b611c956128d1565b60008251118015611ca7575060008151115b611d275760405162461bcd60e51b815260206004820152604560248201527f466572616c66696c6545786869626974696f6e56343a2073657269657349647360448201527f206f7220726563697069656e74416464726573736573206c656e677468206973606482015264207a65726f60d81b608482015260a401610406565b8051825114611db35760405162461bcd60e51b815260206004820152604c60248201527f466572616c66696c6545786869626974696f6e56343a2073657269657349647360448201527f206c656e67746820697320646966666572656e742066726f6d2072656369706960648201526b656e7441646472657373657360a01b608482015260a401610406565b611dbb611ba4565b30600081815260126020908152604080832080548251818502810185019093528083529192909190830182828015611e1257602002820191906000526020600020905b815481526020019060010190808311611dfe575b5050505050905060005b8151811015611f0e576000828281518110611e3957611e39614a15565b602090810291909101810151600081815260118352604080822081518083019092528054825260010154938101939093529092505b87518161ffff161015611ef857878161ffff1681518110611e9157611e91614a15565b6020026020010151826000015103611ee6576000878261ffff1681518110611ebb57611ebb614a15565b60200260200101519050611ee087828660405180602001604052806000815250612f01565b50611ef8565b80611ef081614f04565b915050611e6e565b5050508080611f0690614a8e565b915050611e1c565b50611f18826120ac565b156110165760405162461bcd60e51b815260206004820152603c60248201527f466572616c66696c6545786869626974696f6e56343a20546f6b656e20666f7260448201527f2073616c652062616c616e63652068617320746f206265207a65726f000000006064820152608401610406565b611f936128d1565b6001600160a01b038116611fff5760405162461bcd60e51b815260206004820152602d60248201527f466572616c66696c6545786869626974696f6e56343a207661756c745f20697360448201526c207a65726f206164647265737360981b6064820152608401610406565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6120296128d1565b6001600160a01b03811661208a5760405162461bcd60e51b815260206004820152602260248201527f45434453415369676e3a207369676e65725f206973207a65726f206164647265604482015261737360f01b6064820152608401610406565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0382166121165760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610406565b506001600160a01b031660009081526003602052604090205490565b61213a6128d1565b6121446000612f4f565b565b6001600160a01b0381166000908152601260209081526040918290208054835181840281018401909452808452606093928301828280156121a657602002820191906000526020600020905b815481526020019060010190808311612192575b50505050509050919050565b3360009081526007602052604090205460ff16806121da57506006546001600160a01b031633145b6121e357600080fd5b600d546301000000900460ff1661220d5760405163447691f760e01b815260040160405180910390fd5b60005b81811015610d165782828281811061222a5761222a614a15565b905060800201606001356016600085858581811061224a5761224a614a15565b905060800201602001358152602001908152602001600020819055506122d083838381811061227b5761227b614a15565b9050608002016000013584848481811061229757612297614a15565b905060800201602001358585858181106122b3576122b3614a15565b90506080020160400160208101906122cb919061421c565b612fa1565b806122da81614a8e565b915050612210565b6015602052600090815260409020805481906122fd906149a4565b80601f0160208091040260200160405190810160405280929190818152602001828054612329906149a4565b80156123765780601f1061234b57610100808354040283529160200191612376565b820191906000526020600020905b81548152906001019060200180831161235957829003601f168201915b50505050509080600101805461238b906149a4565b80601f01602080910402602001604051908101604052809291908181526020018280546123b7906149a4565b80156124045780601f106123d957610100808354040283529160200191612404565b820191906000526020600020905b8154815290600101906020018083116123e757829003601f168201915b5050505050905082565b3360009081526007602052604090205460ff168061243657506006546001600160a01b031633145b61243f57600080fd5b600d546301000000900460ff166124b65760405162461bcd60e51b815260206004820152603560248201527f466572616c66696c6545786869626974696f6e56343a20636f6e747261637420604482015274191bd95cdb89dd08185b1b1bddc81d1bc81b5a5b9d605a1b6064820152608401610406565b60005b81811015610d16576125268383838181106124d6576124d6614a15565b905060600201600001358484848181106124f2576124f2614a15565b9050606002016020013585858581811061250e5761250e614a15565b90506060020160400160208101906122cb919061421c565b8061253081614a8e565b9150506124b9565b6125406128d1565b600081511161259b5760405162461bcd60e51b815260206004820152602160248201527f4552433732314d657461646174613a20626173655552495f20697320656d70746044820152607960f81b6064820152608401610406565b600a610fc58282614f73565b606060018054610c58906149a4565b816125c081612950565b610d168383613123565b60188054610d28906149a4565b6125df6128d1565b600d805463ff00000019169055612144611703565b836001600160a01b038116331461260e5761260e33612950565b306001600160a01b038516036126365760405162461bcd60e51b815260040161040690614aa7565b61195f8585858561312e565b3360009081526007602052604090205460ff168061266a57506006546001600160a01b031633145b61267357600080fd5b61267c85612b32565b612699576040516352a7a53160e11b815260040160405180910390fd5b6040805160606020601f87018190040282018101835291810185815290918291908790879081908501838280828437600092019190915250505090825250604080516020601f86018190048102820181019092528481529181019190859085908190840183828082843760009201829052509390945250508781526015602052604090208251909150819061272e9082614f73565b50602082015160018201906127439082614f73565b5050505050505050565b6127556128d1565b61275d611ba4565b306000908152601260209081526040808320805482518185028101850190935280835291929091908301828280156127b457602002820191906000526020600020905b8154815260200190600101908083116127a0575b5050505050905060005b8151811015610fc5576127dc828281518110610fa657610fa6614a15565b806127e681614a8e565b9150506127be565b60606127f982612b32565b612816576040516352a7a53160e11b815260040160405180910390fd5b610c1a82613160565b6128276128d1565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b600b8054610d28906149a4565b6128606128d1565b6001600160a01b0381166128c55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b6128ce81612f4f565b50565b6006546001600160a01b031633146121445760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b61293481612b32565b6128ce5760405162461bcd60e51b8152600401610406906149de565b6008546001600160a01b03163b156128ce57600854604051633185c44d60e21b81523060048201526001600160a01b0383811660248301529091169063c617113490604401602060405180830381865afa1580156129b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d69190615032565b6128ce5760405162461bcd60e51b815260206004820152601760248201527f6f70657261746f72206973206e6f7420616c6c6f7765640000000000000000006044820152606401610406565b6000612a2d82611c58565b9050806001600160a01b0316836001600160a01b031603612a9a5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610406565b336001600160a01b0382161480612ab65750612ab68133610abb565b612b285760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610406565b610d168383613361565b6000908152600260205260409020546001600160a01b0316151590565b600080612b5b83611c58565b9050806001600160a01b0316846001600160a01b03161480612ba257506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80612bc65750836001600160a01b0316612bbb84610cdb565b6001600160a01b0316145b949350505050565b612bd781612b32565b612bf35760405162461bcd60e51b8152600401610406906149de565b60008181526011602090815260408083208151808301835281548082526001928301548286015285526010909352908320805492939192909190612c38908490614db2565b925050819055506001600c6000828254612c529190614db2565b9091555050600082815260116020526040812081815560010155612c75826133cf565b60405182907fbde7938970372996ff103863625e348ef2bf8f38a5b02181be75aafef17c23d590600090a25050565b612cae3382612b4f565b612cca5760405162461bcd60e51b815260040161040690614a2b565b610d16838383613472565b6000612ce0306120ac565b9050600081116128ce5760405162461bcd60e51b815260206004820152603560248201527f466572616c66696c6545786869626974696f6e56343a204e6f20746f6b656e206044820152741bdddb995908189e481d1a194818dbdb9d1c9858dd605a1b6064820152608401610406565b6000612d5f6080830183614d69565b905011612dba5760405162461bcd60e51b8152602060048201526024808201527f466572616c66696c6553616c65446174613a20746f6b656e49647320697320656044820152636d70747960e01b6064820152608401610406565b612dc760a0820182614d69565b9050612dd66080830183614d69565b905014612e4b5760405162461bcd60e51b815260206004820152603d60248201527f466572616c66696c6553616c65446174613a20746f6b656e49647320616e642060448201527f726576656e7565536861726573206c656e677468206d69736d617463680000006064820152608401610406565b428160400135116128ce5760405162461bcd60e51b815260206004820152602260248201527f466572616c66696c6553616c65446174613a2073616c65206973206578706972604482015261195960f21b6064820152608401610406565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c859052603c81208190612ee6908487876135e3565b6009546001600160a01b039081169116149695505050505050565b612f0c848484613472565b612f188484848461360b565b6110165760405162461bcd60e51b81526004016104069061504f565b610d16838383604051806020016040528060008152506125f4565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000838152600f60205260409020541515612fbb84613709565b604051602001612fcb91906150bd565b60405160208183030381529060405290612ff85760405162461bcd60e51b81526004016104069190614287565b506000838152600f6020908152604080832054601090925290912054106130735760405162461bcd60e51b815260206004820152602960248201527f466572616c66696c6545786869626974696f6e56343a206e6f20736c6f747320604482015268617661696c61626c6560b81b6064820152608401610406565b6001600c60008282546130869190614e86565b909155505060008381526010602052604081208054600192906130aa908490614e86565b90915550506040805180820182528481526020808201858152600086815260119092529290209051815590516001909101556130e6818361379c565b8183826001600160a01b03167f407d7da1d3b2b1871fbfa2b5b1c4657a3cc5711d3023c552798551c7ee301eea60405160405180910390a4505050565b610fc5338383613917565b6131383383612b4f565b6131545760405162461bcd60e51b815260040161040690614a2b565b61101684848484612f01565b6060600060156000848152602001908152602001600020604051806040016040529081600082018054613192906149a4565b80601f01602080910402602001604051908101604052809291908181526020018280546131be906149a4565b801561320b5780601f106131e05761010080835404028352916020019161320b565b820191906000526020600020905b8154815290600101906020018083116131ee57829003601f168201915b50505050508152602001600182018054613224906149a4565b80601f0160208091040260200160405190810160405280929190818152602001828054613250906149a4565b801561329d5780601f106132725761010080835404028352916020019161329d565b820191906000526020600020905b81548152906001019060200180831161328057829003601f168201915b505050919092525050506000848152601660205260408120549192506132c1610c49565b6132cc836001614e86565b6040516020016132dd92919061511a565b60405160208183030381529060405290506000816132fe85600001516139e5565b61330b8660200151613a7c565b60405160200161331d93929190615148565b604051602081830303815290604052905061333781613b30565b6040516020016133479190615234565b604051602081830303815290604052945050505050919050565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061339682611c58565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006133da82611c58565b90506133ea816000846001613c82565b6133f382611c58565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b826001600160a01b031661348582611c58565b6001600160a01b0316146134ab5760405162461bcd60e51b815260040161040690615279565b6001600160a01b03821661350d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610406565b61351a8383836001613c82565b826001600160a01b031661352d82611c58565b6001600160a01b0316146135535760405162461bcd60e51b815260040161040690615279565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008060006135f487878787613d99565b9150915061360181613e5d565b5095945050505050565b60006001600160a01b0384163b1561370157604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061364f9033908990889088906004016152be565b6020604051808303816000875af192505050801561368a575060408051601f3d908101601f19168201909252613687918101906152f1565b60015b6136e7573d8080156136b8576040519150601f19603f3d011682016040523d82523d6000602084013e6136bd565b606091505b5080516000036136df5760405162461bcd60e51b81526004016104069061504f565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612bc6565b506001612bc6565b6060600061371683613fa7565b60010190506000816001600160401b03811115613735576137356142dd565b6040519080825280601f01601f19166020018201604052801561375f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613769575b509392505050565b6001600160a01b0382166137f25760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610406565b6137fb81612b32565b156138485760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610406565b613856600083836001613c82565b61385f81612b32565b156138ac5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610406565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316836001600160a01b0316036139785760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610406565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60608151600003613a7857601880546139fd906149a4565b80601f0160208091040260200160405190810160405280929190818152602001828054613a29906149a4565b80156121a65780601f10613a4b576101008083540402835291602001916121a6565b820191906000526020600020905b815481529060010190602001808311613a595750939695505050505050565b5090565b60608151600003613a9457601780546139fd906149a4565b610c1a613aa08361407f565b600a8054613aad906149a4565b80601f0160208091040260200160405190810160405280929190818152602001828054613ad9906149a4565b8015613b265780601f10613afb57610100808354040283529160200191613b26565b820191906000526020600020905b815481529060010190602001808311613b0957829003601f168201915b505050505061408a565b60608151600003613b4f57505060408051602081019091526000815290565b600060405180606001604052806040815260200161583d6040913990506000600384516002613b7e9190614e86565b613b889190614dc5565b613b93906004614e99565b6001600160401b03811115613baa57613baa6142dd565b6040519080825280601f01601f191660200182016040528015613bd4576020820181803683370190505b509050600182016020820185865187015b80821015613c40576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845350600183019250613be5565b5050600386510660018114613c5c5760028114613c6f57613c77565b603d6001830353603d6002830353613c77565b603d60018303535b509195945050505050565b6001811115613cf15760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610406565b816001600160a01b03851615801590613d1c5750836001600160a01b0316856001600160a01b031614155b15613d2b57613d2b85826140bd565b6001600160a01b03841615801590613d555750846001600160a01b0316846001600160a01b031614155b1561195f576001600160a01b03841660009081526012602090815260408083208054600181018255908452828420810185905584845260139092529091205561195f565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613dd05750600090506003613e54565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613e24573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613e4d57600060019250925050613e54565b9150600090505b94509492505050565b6000816004811115613e7157613e7161530e565b03613e795750565b6001816004811115613e8d57613e8d61530e565b03613eda5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610406565b6002816004811115613eee57613eee61530e565b03613f3b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610406565b6003816004811115613f4f57613f4f61530e565b036128ce5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610406565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613fe65772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614012576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061403057662386f26fc10000830492506010015b6305f5e1008310614048576305f5e100830492506008015b612710831061405c57612710830492506004015b6064831061406e576064830492506002015b600a8310610c1a5760010192915050565b6060610c1a82613b30565b60606140b683836040516020016140a2929190615324565b604051602081830303815290604052613b30565b9392505050565b600060016140ca846120ac565b6140d49190614db2565b60008381526013602052604090205490915080821461417b576001600160a01b038416600090815260126020526040812080548490811061411757614117614a15565b906000526020600020015490508060126000876001600160a01b03166001600160a01b03168152602001908152602001600020838154811061415b5761415b614a15565b600091825260208083209091019290925591825260139052604090208190555b60008381526013602090815260408083208390556001600160a01b0387168352601290915290208054806141b1576141b1615826565b6001900381819060005260206000200160009055905550505050565b6001600160e01b0319811681146128ce57600080fd5b6000602082840312156141f557600080fd5b81356140b6816141cd565b80356001600160a01b038116811461421757600080fd5b919050565b60006020828403121561422e57600080fd5b6140b682614200565b60005b8381101561425257818101518382015260200161423a565b50506000910152565b60008151808452614273816020860160208601614237565b601f01601f19169290920160200192915050565b6020815260006140b6602083018461425b565b6000602082840312156142ac57600080fd5b5035919050565b600080604083850312156142c657600080fd5b6142cf83614200565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561431b5761431b6142dd565b604052919050565b60006001600160401b0382111561433c5761433c6142dd565b5060051b60200190565b600082601f83011261435757600080fd5b8135602061436c61436783614323565b6142f3565b82815260059290921b8401810191818101908684111561438b57600080fd5b8286015b848110156143a6578035835291830191830161438f565b509695505050505050565b6000602082840312156143c357600080fd5b81356001600160401b038111156143d957600080fd5b612bc684828501614346565b6000806000606084860312156143fa57600080fd5b61440384614200565b925061441160208501614200565b9150604084013590509250925092565b6000806000806080858703121561443757600080fd5b8435935060208501359250604085013560ff8116811461445657600080fd5b915060608501356001600160401b0381111561447157600080fd5b850160e0818803121561448357600080fd5b939692955090935050565b60008083601f8401126144a057600080fd5b5081356001600160401b038111156144b757600080fd5b6020830191508360208260051b85010111156144d257600080fd5b9250929050565b600080600080604085870312156144ef57600080fd5b84356001600160401b038082111561450657600080fd5b6145128883890161448e565b9096509450602087013591508082111561452b57600080fd5b506145388782880161448e565b95989497509550505050565b6000806040838503121561455757600080fd5b82356001600160401b038082111561456e57600080fd5b61457a86838701614346565b935060209150818501358181111561459157600080fd5b85019050601f810186136145a457600080fd5b80356145b261436782614323565b81815260059190911b820183019083810190888311156145d157600080fd5b928401925b828410156145f6576145e784614200565b825292840192908401906145d6565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561463d57835183529284019291840191600101614621565b50909695505050505050565b6000806020838503121561465c57600080fd5b82356001600160401b038082111561467357600080fd5b818501915085601f83011261468757600080fd5b81358181111561469657600080fd5b8660208260071b85010111156146ab57600080fd5b60209290920196919550909350505050565b6040815260006146d0604083018561425b565b82810360208401526146e2818561425b565b95945050505050565b600080602083850312156146fe57600080fd5b82356001600160401b038082111561471557600080fd5b818501915085601f83011261472957600080fd5b81358181111561473857600080fd5b8660206060830285010111156146ab57600080fd5b60006001600160401b03831115614766576147666142dd565b614779601f8401601f19166020016142f3565b905082815283838301111561478d57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156147b657600080fd5b81356001600160401b038111156147cc57600080fd5b8201601f810184136147dd57600080fd5b612bc68482356020840161474d565b80151581146128ce57600080fd5b8035614217816147ec565b6000806040838503121561481857600080fd5b61482183614200565b91506020830135614831816147ec565b809150509250929050565b6000806000806080858703121561485257600080fd5b61485b85614200565b935061486960208601614200565b92506040850135915060608501356001600160401b0381111561488b57600080fd5b8501601f8101871361489c57600080fd5b6148ab8782356020840161474d565b91505092959194509250565b60008083601f8401126148c957600080fd5b5081356001600160401b038111156148e057600080fd5b6020830191508360208285010111156144d257600080fd5b60008060008060006060868803121561491057600080fd5b8535945060208601356001600160401b038082111561492e57600080fd5b61493a89838a016148b7565b9096509450604088013591508082111561495357600080fd5b50614960888289016148b7565b969995985093965092949392505050565b6000806040838503121561498457600080fd5b61498d83614200565b915061499b60208401614200565b90509250929050565b600181811c908216806149b857607f821691505b6020821081036149d857634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526018908201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600060018201614aa057614aa0614a78565b5060010190565b6020808252603e908201527f466572616c66696c6545786869626974696f6e56343a20436f6e74726163742060408201527f69736e277420616c6c6f77656420746f207265636569766520746f6b656e0000606082015260800190565b600060208284031215614b1657600080fd5b81356140b6816147ec565b6000808335601e19843603018112614b3857600080fd5b83016020810192503590506001600160401b03811115614b5757600080fd5b8060051b36038213156144d257600080fd5b8183526000602080850194508260005b85811015614baf576001600160a01b03614b9283614200565b168752818301358388015260409687019690910190600101614b79565b509495945050505050565b60008383855260208086019550808560051b8301018460005b87811015614c4557848303601f19018952813536889003601e19018112614bf957600080fd5b870184810190356001600160401b03811115614c1457600080fd5b8060061b3603821315614c2657600080fd5b614c31858284614b69565b9a86019a9450505090830190600101614bd3565b5090979650505050505050565b8035825260208082013590830152604080820135908301526001600160a01b03614c7e60608301614200565b1660608301526000614c936080830183614b21565b60e06080860181905285018190526101006001600160fb1b03821115614cb857600080fd5b8160051b91508183828801378186019250614cd660a0860186614b21565b9250818785030160a0880152614cef8285018483614bba565b9350505050614d0060c084016147fa565b80151560c0860152613794565b84815283602082015260ff83166040820152608060608201526000614d356080830184614c52565b9695505050505050565b8381526001600160a01b03831660208201526060604082018190526000906146e290830184614c52565b6000808335601e19843603018112614d8057600080fd5b8301803591506001600160401b03821115614d9a57600080fd5b6020019150600581901b36038213156144d257600080fd5b81810381811115610c1a57610c1a614a78565b600082614de257634e487b7160e01b600052601260045260246000fd5b500490565b6000808335601e19843603018112614dfe57600080fd5b8301803591506001600160401b03821115614e1857600080fd5b6020019150600681901b36038213156144d257600080fd5b600060408284031215614e4257600080fd5b604051604081018181106001600160401b0382111715614e6457614e646142dd565b604052614e7083614200565b8152602083013560208201528091505092915050565b80820180821115610c1a57610c1a614a78565b8082028115828204841417610c1a57610c1a614a78565b60208082526034908201527f466572616c66696c6545786869626974696f6e56343a206d696e7461626c6520604082015273726571756972656420746f2062652066616c736560601b606082015260800190565b600061ffff808316818103614f1b57614f1b614a78565b6001019392505050565b601f821115610d1657600081815260208120601f850160051c81016020861015614f4c5750805b601f850160051c820191505b81811015614f6b57828155600101614f58565b505050505050565b81516001600160401b03811115614f8c57614f8c6142dd565b614fa081614f9a84546149a4565b84614f25565b602080601f831160018114614fd55760008415614fbd5750858301515b600019600386901b1c1916600185901b178555614f6b565b600085815260208120601f198616915b8281101561500457888601518255948401946001909101908401614fe5565b50858210156150225787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561504457600080fd5b81516140b6816147ec565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600081516150b3818560208601614237565b9290920192915050565b7f466572616c66696c6545786869626974696f6e56343a2073657269657349642081526e03237b2b9b713ba1032bc34b9ba1d1608d1b60208201526000825161510d81602f850160208701614237565b91909101602f0192915050565b6000835161512c818460208801614237565b61202360f01b9201918252506002810191909152602201919050565b683d913730b6b2911d1160b91b8152835160009061516d816009850160208901614237565b7f222c202265787465726e616c5f75726c223a2268747470733a2f2f666572616c600991840191820152733334b6329731b7b69116101134b6b0b3b2911d1160611b602982015284516151c781603d840160208901614237565b7f222c2022616e696d6174696f6e5f75726c223a22646174613a746578742f6874603d9290910191820152691b5b0ed8985cd94d8d0b60b21b605d8201528351615218816067840160208801614237565b61227d60f01b6067929091019182015260690195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161526c81601d850160208701614237565b91909101601d0192915050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614d359083018461425b565b60006020828403121561530357600080fd5b81516140b6816141cd565b634e487b7160e01b600052602160045260246000fd5b7f3c21444f43545950452068746d6c3e3c68746d6c206c616e673d22656e223e3c81527f686561643e3c7363726970743e207661722064656661756c74417274776f726b60208201526502230ba309e960d51b604082015260008351615391816046850160208801614237565b701e17b9b1b934b83a1f1e39b1b934b83a1f60791b6046918401918201527f6c657420616c6c6f774f726967696e733d7b2268747470733a2f2f666572616c60578201527f66696c652e636f6d223a21307d3b66756e6374696f6e20726573697a6549667260778201527f616d652874297b6c657420653d646f63756d656e742e676574456c656d656e7460978201527f4279496428226d61696e6672616d6522293b74262628652e7374796c652e6d6960b78201526f6e4865696768743d742b22707822297d60801b60d78201526146e26157fd6157f761576f6156fa6155d261555060e788017f66756e6374696f6e20696e69744461746128297b70757368417274776f726b4481527f617461546f496672616d652864656661756c74417274776f726b44617461297d60208201527f66756e6374696f6e2070757368417274776f726b44617461546f496672616d6560408201527f2874297b742626646f63756d656e742e676574456c656d656e7442794964282260608201527f6d61696e6672616d6522292e636f6e74656e7457696e646f772e706f73744d6560808201526c737361676528742c222a22297d60981b60a082015260ad0190565b7f66756e6374696f6e20757064617465417274776f726b446174612874297b646f81527f63756d656e742e676574456c656d656e744279496428226d61696e6672616d6560208201527f22292e636f6e74656e7457696e646f772e706f73744d65737361676528742c226040820152632a22297d60e01b606082015260640190565b7f77696e646f772e6164644576656e744c697374656e657228226d65737361676581527f222c66756e6374696f6e2874297b616c6c6f774f726967696e735b742e6f726960208201527f67696e5d3f227570646174652d617274776f726b2d64617461223d3d3d742e6460408201527f6174612e747970652626757064617465417274776f726b4461746128742e646160608201527f74612e617274776f726b44617461293a226f626a656374223d3d747970656f6660808201527f20742e64617461262622726573697a652d696672616d65223d3d3d742e64617460a08201527f612e747970652626726573697a65496672616d6528742e646174612e6e65774860c08201527132b4b3b43a14be949d9e17b9b1b934b83a1f60711b60e082015260f20190565b7f3c2f686561643e3c626f6479207374796c653d226f766572666c6f772d783a6881527f696464656e3b70616464696e673a303b6d617267696e3a303b77696474683a2060208201527f313030253b22206f6e6c6f61643d22696e6974446174612829223e00000000006040820152605b0190565b7f3c696672616d652069643d226d61696e6672616d6522207374796c653d22646981527f73706c61793a626c6f636b3b70616464696e673a303b6d617267696e3a303b6260208201527f6f726465723a6e6f6e653b77696474683a313030253b6865696768743a3130306040820152693b341d911039b9319e9160b11b6060820152606a0190565b866150a1565b7f223e3c2f696672616d653e203c2f626f64793e3c2f68746d6c3e0000000000008152601a0190565b634e487b7160e01b600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212201ade30e4e06125fdd2148167618eb1e8b68c165da31b602bc14f858f40dd533c64736f6c63430008110033", } // FeralfileExhibitionV4ABI is the input ABI used to generate the binding from. @@ -263,12 +271,12 @@ func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) OperatorFilter return _FeralfileExhibitionV4.Contract.OperatorFilterRegistry(&_FeralfileExhibitionV4.CallOpts) } -// Advances is a free data retrieval call binding the contract method 0x926ce44e. +// TokenIndexes is a free data retrieval call binding the contract method 0x8e84b0f1. // -// Solidity: function advances(address ) view returns(uint256) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) Advances(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { +// Solidity: function _tokenIndexes(uint256 ) view returns(uint256) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) TokenIndexes(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { var out []interface{} - err := _FeralfileExhibitionV4.contract.Call(opts, &out, "advances", arg0) + err := _FeralfileExhibitionV4.contract.Call(opts, &out, "_tokenIndexes", arg0) if err != nil { return *new(*big.Int), err @@ -280,49 +288,94 @@ func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) Advances(opts *bind.C } -// Advances is a free data retrieval call binding the contract method 0x926ce44e. +// TokenIndexes is a free data retrieval call binding the contract method 0x8e84b0f1. // -// Solidity: function advances(address ) view returns(uint256) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) Advances(arg0 common.Address) (*big.Int, error) { - return _FeralfileExhibitionV4.Contract.Advances(&_FeralfileExhibitionV4.CallOpts, arg0) +// Solidity: function _tokenIndexes(uint256 ) view returns(uint256) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) TokenIndexes(arg0 *big.Int) (*big.Int, error) { + return _FeralfileExhibitionV4.Contract.TokenIndexes(&_FeralfileExhibitionV4.CallOpts, arg0) } -// Advances is a free data retrieval call binding the contract method 0x926ce44e. +// TokenIndexes is a free data retrieval call binding the contract method 0x8e84b0f1. // -// Solidity: function advances(address ) view returns(uint256) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) Advances(arg0 common.Address) (*big.Int, error) { - return _FeralfileExhibitionV4.Contract.Advances(&_FeralfileExhibitionV4.CallOpts, arg0) +// Solidity: function _tokenIndexes(uint256 ) view returns(uint256) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) TokenIndexes(arg0 *big.Int) (*big.Int, error) { + return _FeralfileExhibitionV4.Contract.TokenIndexes(&_FeralfileExhibitionV4.CallOpts, arg0) } -// ArtworkParameters is a free data retrieval call binding the contract method 0x81516fc7. +// TokenInfos is a free data retrieval call binding the contract method 0x8676192b. // -// Solidity: function artworkParameters(uint256 ) view returns(string) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) ArtworkParameters(opts *bind.CallOpts, arg0 *big.Int) (string, error) { +// Solidity: function _tokenInfos(uint256 ) view returns(string thumbnail, bytes parameters) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) TokenInfos(opts *bind.CallOpts, arg0 *big.Int) (struct { + Thumbnail string + Parameters []byte +}, error) { var out []interface{} - err := _FeralfileExhibitionV4.contract.Call(opts, &out, "artworkParameters", arg0) + err := _FeralfileExhibitionV4.contract.Call(opts, &out, "_tokenInfos", arg0) + outstruct := new(struct { + Thumbnail string + Parameters []byte + }) if err != nil { - return *new(string), err + return *outstruct, err } - out0 := *abi.ConvertType(out[0], new(string)).(*string) + outstruct.Thumbnail = *abi.ConvertType(out[0], new(string)).(*string) + outstruct.Parameters = *abi.ConvertType(out[1], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +// TokenInfos is a free data retrieval call binding the contract method 0x8676192b. +// +// Solidity: function _tokenInfos(uint256 ) view returns(string thumbnail, bytes parameters) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) TokenInfos(arg0 *big.Int) (struct { + Thumbnail string + Parameters []byte +}, error) { + return _FeralfileExhibitionV4.Contract.TokenInfos(&_FeralfileExhibitionV4.CallOpts, arg0) +} + +// TokenInfos is a free data retrieval call binding the contract method 0x8676192b. +// +// Solidity: function _tokenInfos(uint256 ) view returns(string thumbnail, bytes parameters) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) TokenInfos(arg0 *big.Int) (struct { + Thumbnail string + Parameters []byte +}, error) { + return _FeralfileExhibitionV4.Contract.TokenInfos(&_FeralfileExhibitionV4.CallOpts, arg0) +} + +// Advances is a free data retrieval call binding the contract method 0x926ce44e. +// +// Solidity: function advances(address ) view returns(uint256) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) Advances(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _FeralfileExhibitionV4.contract.Call(opts, &out, "advances", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) return out0, err } -// ArtworkParameters is a free data retrieval call binding the contract method 0x81516fc7. +// Advances is a free data retrieval call binding the contract method 0x926ce44e. // -// Solidity: function artworkParameters(uint256 ) view returns(string) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) ArtworkParameters(arg0 *big.Int) (string, error) { - return _FeralfileExhibitionV4.Contract.ArtworkParameters(&_FeralfileExhibitionV4.CallOpts, arg0) +// Solidity: function advances(address ) view returns(uint256) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) Advances(arg0 common.Address) (*big.Int, error) { + return _FeralfileExhibitionV4.Contract.Advances(&_FeralfileExhibitionV4.CallOpts, arg0) } -// ArtworkParameters is a free data retrieval call binding the contract method 0x81516fc7. +// Advances is a free data retrieval call binding the contract method 0x926ce44e. // -// Solidity: function artworkParameters(uint256 ) view returns(string) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) ArtworkParameters(arg0 *big.Int) (string, error) { - return _FeralfileExhibitionV4.Contract.ArtworkParameters(&_FeralfileExhibitionV4.CallOpts, arg0) +// Solidity: function advances(address ) view returns(uint256) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) Advances(arg0 common.Address) (*big.Int, error) { + return _FeralfileExhibitionV4.Contract.Advances(&_FeralfileExhibitionV4.CallOpts, arg0) } // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. @@ -573,37 +626,6 @@ func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) GetArtwork(tok return _FeralfileExhibitionV4.Contract.GetArtwork(&_FeralfileExhibitionV4.CallOpts, tokenId) } -// GetArtworkParameters is a free data retrieval call binding the contract method 0x8a25f461. -// -// Solidity: function getArtworkParameters(uint256 tokenId) view returns(string) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) GetArtworkParameters(opts *bind.CallOpts, tokenId *big.Int) (string, error) { - var out []interface{} - err := _FeralfileExhibitionV4.contract.Call(opts, &out, "getArtworkParameters", tokenId) - - if err != nil { - return *new(string), err - } - - out0 := *abi.ConvertType(out[0], new(string)).(*string) - - return out0, err - -} - -// GetArtworkParameters is a free data retrieval call binding the contract method 0x8a25f461. -// -// Solidity: function getArtworkParameters(uint256 tokenId) view returns(string) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) GetArtworkParameters(tokenId *big.Int) (string, error) { - return _FeralfileExhibitionV4.Contract.GetArtworkParameters(&_FeralfileExhibitionV4.CallOpts, tokenId) -} - -// GetArtworkParameters is a free data retrieval call binding the contract method 0x8a25f461. -// -// Solidity: function getArtworkParameters(uint256 tokenId) view returns(string) -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) GetArtworkParameters(tokenId *big.Int) (string, error) { - return _FeralfileExhibitionV4.Contract.GetArtworkParameters(&_FeralfileExhibitionV4.CallOpts, tokenId) -} - // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. // // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) @@ -1007,6 +1029,68 @@ func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) TokenOfOwnerBy return _FeralfileExhibitionV4.Contract.TokenOfOwnerByIndex(&_FeralfileExhibitionV4.CallOpts, owner, index) } +// TokenPlaceholderThubmnail is a free data retrieval call binding the contract method 0xaeffbfcc. +// +// Solidity: function tokenPlaceholderThubmnail() view returns(string) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) TokenPlaceholderThubmnail(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _FeralfileExhibitionV4.contract.Call(opts, &out, "tokenPlaceholderThubmnail") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// TokenPlaceholderThubmnail is a free data retrieval call binding the contract method 0xaeffbfcc. +// +// Solidity: function tokenPlaceholderThubmnail() view returns(string) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) TokenPlaceholderThubmnail() (string, error) { + return _FeralfileExhibitionV4.Contract.TokenPlaceholderThubmnail(&_FeralfileExhibitionV4.CallOpts) +} + +// TokenPlaceholderThubmnail is a free data retrieval call binding the contract method 0xaeffbfcc. +// +// Solidity: function tokenPlaceholderThubmnail() view returns(string) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) TokenPlaceholderThubmnail() (string, error) { + return _FeralfileExhibitionV4.Contract.TokenPlaceholderThubmnail(&_FeralfileExhibitionV4.CallOpts) +} + +// TokenPlaceholderURL is a free data retrieval call binding the contract method 0x0fdfc918. +// +// Solidity: function tokenPlaceholderURL() view returns(string) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Caller) TokenPlaceholderURL(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _FeralfileExhibitionV4.contract.Call(opts, &out, "tokenPlaceholderURL") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// TokenPlaceholderURL is a free data retrieval call binding the contract method 0x0fdfc918. +// +// Solidity: function tokenPlaceholderURL() view returns(string) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) TokenPlaceholderURL() (string, error) { + return _FeralfileExhibitionV4.Contract.TokenPlaceholderURL(&_FeralfileExhibitionV4.CallOpts) +} + +// TokenPlaceholderURL is a free data retrieval call binding the contract method 0x0fdfc918. +// +// Solidity: function tokenPlaceholderURL() view returns(string) +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4CallerSession) TokenPlaceholderURL() (string, error) { + return _FeralfileExhibitionV4.Contract.TokenPlaceholderURL(&_FeralfileExhibitionV4.CallOpts) +} + // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. // // Solidity: function tokenURI(uint256 tokenId) view returns(string) @@ -1267,6 +1351,27 @@ func (_FeralfileExhibitionV4 *FeralfileExhibitionV4TransactorSession) MintArtwor return _FeralfileExhibitionV4.Contract.MintArtworks(&_FeralfileExhibitionV4.TransactOpts, data) } +// MintArtworksWithIndex is a paid mutator transaction binding the contract method 0x84f78930. +// +// Solidity: function mintArtworksWithIndex((uint256,uint256,address,uint256)[] data) returns() +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Transactor) MintArtworksWithIndex(opts *bind.TransactOpts, data []FeralfileExhibitionV42MintDataWithIndex) (*types.Transaction, error) { + return _FeralfileExhibitionV4.contract.Transact(opts, "mintArtworksWithIndex", data) +} + +// MintArtworksWithIndex is a paid mutator transaction binding the contract method 0x84f78930. +// +// Solidity: function mintArtworksWithIndex((uint256,uint256,address,uint256)[] data) returns() +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) MintArtworksWithIndex(data []FeralfileExhibitionV42MintDataWithIndex) (*types.Transaction, error) { + return _FeralfileExhibitionV4.Contract.MintArtworksWithIndex(&_FeralfileExhibitionV4.TransactOpts, data) +} + +// MintArtworksWithIndex is a paid mutator transaction binding the contract method 0x84f78930. +// +// Solidity: function mintArtworksWithIndex((uint256,uint256,address,uint256)[] data) returns() +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4TransactorSession) MintArtworksWithIndex(data []FeralfileExhibitionV42MintDataWithIndex) (*types.Transaction, error) { + return _FeralfileExhibitionV4.Contract.MintArtworksWithIndex(&_FeralfileExhibitionV4.TransactOpts, data) +} + // PauseSale is a paid mutator transaction binding the contract method 0x55367ba9. // // Solidity: function pauseSale() returns() @@ -1645,25 +1750,25 @@ func (_FeralfileExhibitionV4 *FeralfileExhibitionV4TransactorSession) TransferOw return _FeralfileExhibitionV4.Contract.TransferOwnership(&_FeralfileExhibitionV4.TransactOpts, newOwner) } -// UpdateArtworkParameters is a paid mutator transaction binding the contract method 0x31804738. +// UpdateArtworkParameters is a paid mutator transaction binding the contract method 0xb942d0e7. // -// Solidity: function updateArtworkParameters(uint256 tokenId, string parameters) returns() -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Transactor) UpdateArtworkParameters(opts *bind.TransactOpts, tokenId *big.Int, parameters string) (*types.Transaction, error) { - return _FeralfileExhibitionV4.contract.Transact(opts, "updateArtworkParameters", tokenId, parameters) +// Solidity: function updateArtworkParameters(uint256 tokenId, string thumbnail, bytes parameters) returns() +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Transactor) UpdateArtworkParameters(opts *bind.TransactOpts, tokenId *big.Int, thumbnail string, parameters []byte) (*types.Transaction, error) { + return _FeralfileExhibitionV4.contract.Transact(opts, "updateArtworkParameters", tokenId, thumbnail, parameters) } -// UpdateArtworkParameters is a paid mutator transaction binding the contract method 0x31804738. +// UpdateArtworkParameters is a paid mutator transaction binding the contract method 0xb942d0e7. // -// Solidity: function updateArtworkParameters(uint256 tokenId, string parameters) returns() -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) UpdateArtworkParameters(tokenId *big.Int, parameters string) (*types.Transaction, error) { - return _FeralfileExhibitionV4.Contract.UpdateArtworkParameters(&_FeralfileExhibitionV4.TransactOpts, tokenId, parameters) +// Solidity: function updateArtworkParameters(uint256 tokenId, string thumbnail, bytes parameters) returns() +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4Session) UpdateArtworkParameters(tokenId *big.Int, thumbnail string, parameters []byte) (*types.Transaction, error) { + return _FeralfileExhibitionV4.Contract.UpdateArtworkParameters(&_FeralfileExhibitionV4.TransactOpts, tokenId, thumbnail, parameters) } -// UpdateArtworkParameters is a paid mutator transaction binding the contract method 0x31804738. +// UpdateArtworkParameters is a paid mutator transaction binding the contract method 0xb942d0e7. // -// Solidity: function updateArtworkParameters(uint256 tokenId, string parameters) returns() -func (_FeralfileExhibitionV4 *FeralfileExhibitionV4TransactorSession) UpdateArtworkParameters(tokenId *big.Int, parameters string) (*types.Transaction, error) { - return _FeralfileExhibitionV4.Contract.UpdateArtworkParameters(&_FeralfileExhibitionV4.TransactOpts, tokenId, parameters) +// Solidity: function updateArtworkParameters(uint256 tokenId, string thumbnail, bytes parameters) returns() +func (_FeralfileExhibitionV4 *FeralfileExhibitionV4TransactorSession) UpdateArtworkParameters(tokenId *big.Int, thumbnail string, parameters []byte) (*types.Transaction, error) { + return _FeralfileExhibitionV4.Contract.UpdateArtworkParameters(&_FeralfileExhibitionV4.TransactOpts, tokenId, thumbnail, parameters) } // UpdateOperatorFilterRegistry is a paid mutator transaction binding the contract method 0x114ba8ee.