[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "generateImage", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "metadatas", "outputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageText", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "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": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_imageText", "type": "string" } ], "name": "setMetaData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_imageText", "type": "string" } ], "name": "setMetadataAndMint", "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": "togglePause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506040805160208101909152600081526200002c8162000085565b506006805460ff191690556200004460008062000097565b62000051600033620000e2565b506200007e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000e2565b5062000308565b60026200009382826200023c565b5050565b600082815260056020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60008281526005602090815260408083206001600160a01b038516845290915281205460ff166200018b5760008381526005602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620001423390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200018f565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001c057607f821691505b602082108103620001e157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000237576000816000526020600020601f850160051c81016020861015620002125750805b601f850160051c820191505b8181101562000233578281556001016200021e565b5050505b505050565b81516001600160401b0381111562000258576200025862000195565b6200027081620002698454620001ab565b84620001e7565b602080601f831160018114620002a857600084156200028f5750858301515b600019600386901b1c1916600185901b17855562000233565b600085815260208120601f198616915b82811015620002d957888601518255948401946001909101908401620002b8565b5085821015620002f85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6127fd80620003186000396000f3fe608060405234801561001057600080fd5b50600436106101a25760003560e01c806384be48df116100ee578063c4ae316811610097578063d547741f11610071578063d547741f146103b2578063e73496cd146103c5578063e985e9c5146103e6578063f242432a1461042257600080fd5b8063c4ae316814610370578063d159f01214610378578063d53913931461038b57600080fd5b8063a217fddf116100c8578063a217fddf14610335578063a22cb4651461033d578063bd85b0391461035057600080fd5b806384be48df146102d657806391d14854146102e9578063a0712d681461032257600080fd5b80632f2ff15d116101505780634e1273f41161012a5780634e1273f4146102895780634f558e79146102a95780635c975abb146102cb57600080fd5b80632f2ff15d1461025057806336568abe146102635780634b44d8121461027657600080fd5b806318160ddd1161018157806318160ddd14610210578063248a9ca3146102185780632eb2c2d61461023b57600080fd5b8062fdd58e146101a757806301ffc9a7146101cd5780630e89341c146101f0575b600080fd5b6101ba6101b5366004611be9565b610435565b6040519081526020015b60405180910390f35b6101e06101db366004611c41565b61045d565b60405190151581526020016101c4565b6102036101fe366004611c5e565b6104ff565b6040516101c49190611cc7565b6004546101ba565b6101ba610226366004611c5e565b60009081526005602052604090206001015490565b61024e610249366004611e46565b61064a565b005b61024e61025e366004611ef0565b6106ee565b61024e610271366004611ef0565b610719565b610203610284366004611c5e565b61076a565b61029c610297366004611f1c565b6107a9565b6040516101c49190612018565b6101e06102b7366004611c5e565b600090815260036020526040902054151590565b60065460ff166101e0565b61024e6102e436600461202b565b61088f565b6101e06102f7366004611ef0565b60009182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61024e610330366004611c5e565b6108fc565b6101ba600081565b61024e61034b366004612098565b61094e565b6101ba61035e366004611c5e565b60009081526003602052604090205490565b61024e610959565b61024e61038636600461202b565b610982565b6101ba7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61024e6103c0366004611ef0565b610a02565b6103d86103d3366004611c5e565b610a27565b6040516101c49291906120d4565b6101e06103f4366004612102565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61024e61043036600461212c565b610b53565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd6c0879d0000000000000000000000000000000000000000000000000000000014806104f057507fffffffff0000000000000000000000000000000000000000000000000000000082167fda8def7300000000000000000000000000000000000000000000000000000000145b80610457575061045782610bea565b6060600060405180606001604052806040518060400160405280600c81526020017f4d7567656e43726166742023000000000000000000000000000000000000000081525061054d86610c40565b600087815260076020908152604091829020915161056e9493929101612257565b60405160208183030381529060405281526020016040518060800160405280605181526020016127a06051913981526020016105a98561076a565b90526040517f5b4e748700000000000000000000000000000000000000000000000000000000815290915073bf48fbb9fd7162054c281ad0283ca196e21938eb90635b4e7487906105fe9084906004016122ba565b600060405180830381865af415801561061b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106439190810190612312565b9392505050565b336001600160a01b038616811480159061068a57506001600160a01b0380871660009081526001602090815260408083209385168352929052205460ff16155b156106d9576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038083166004830152871660248201526044015b60405180910390fd5b6106e68686868686610cfe565b505050505050565b60008281526005602052604090206001015461070981610d98565b6107138383610da2565b50505050565b6001600160a01b038116331461075b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107658282610e50565b505050565b6060610457600760008481526020019081526020016000206001016040516020016107959190612380565b604051602081830303815290604052610ed7565b606081518351146107f357815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016106d0565b6000835167ffffffffffffffff81111561080f5761080f611cda565b604051908082528060200260200182016040528015610838578160200160208202803683370190505b50905060005b84518110156108875760208082028601015161086290602080840287010151610435565b8282815181106108745761087461250f565b602090810291909101015260010161083e565b509392505050565b610897610ee5565b60408051808201825283815260208082018490526000868152600790915291909120815181906108c79082612586565b50602082015160018201906108dc9082612586565b509050506107653384600160405180602001604052806000815250610f24565b610904610ee5565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661092e81610d98565b61094a3383600160405180602001604052806000815250610f24565b5050565b61094a338383610f9a565b600061096481610d98565b60065460ff161561097a5761097761104a565b50565b61097761109c565b61098a610ee5565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66109b481610d98565b60408051808201825284815260208082018590526000878152600790915291909120815181906109e49082612586565b50602082015160018201906109f99082612586565b50505050505050565b600082815260056020526040902060010154610a1d81610d98565b6107138383610e50565b600760205260009081526040902080548190610a4290612191565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6e90612191565b8015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b505050505090806001018054610ad090612191565b80601f0160208091040260200160405190810160405280929190818152602001828054610afc90612191565b8015610b495780601f10610b1e57610100808354040283529160200191610b49565b820191906000526020600020905b815481529060010190602001808311610b2c57829003601f168201915b5050505050905082565b336001600160a01b0386168114801590610b9357506001600160a01b0380871660009081526001602090815260408083209385168352929052205460ff16155b15610bdd576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038083166004830152871660248201526044016106d0565b6106e686868686866110d9565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610457575061045782611191565b60606000610c4d83611274565b600101905060008167ffffffffffffffff811115610c6d57610c6d611cda565b6040519080825280601f01601f191660200182016040528015610c97576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610ca157509392505050565b6001600160a01b038416610d41576040517f57f447ce000000000000000000000000000000000000000000000000000000008152600060048201526024016106d0565b6001600160a01b038516610d84576040517f01a83514000000000000000000000000000000000000000000000000000000008152600060048201526024016106d0565b610d918585858585611356565b5050505050565b61097781336113a9565b60008281526005602090815260408083206001600160a01b038516845290915281205460ff16610e485760008381526005602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610e003390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610457565b506000610457565b60008281526005602090815260408083206001600160a01b038516845290915281205460ff1615610e485760008381526005602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610457565b606061045782600080611417565b60065460ff1615610f22576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6001600160a01b038416610f67576040517f57f447ce000000000000000000000000000000000000000000000000000000008152600060048201526024016106d0565b604080516001808252602082018690528183019081526060820185905260808201909252906106e6600087848487611356565b6001600160a01b038216610fdd576040517fced3e100000000000000000000000000000000000000000000000000000000008152600060048201526024016106d0565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611052611519565b6006805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6110a4610ee5565b6006805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861107f3390565b6001600160a01b03841661111c576040517f57f447ce000000000000000000000000000000000000000000000000000000008152600060048201526024016106d0565b6001600160a01b03851661115f576040517f01a83514000000000000000000000000000000000000000000000000000000008152600060048201526024016106d0565b604080516001808252602082018690528183019081526060820185905260808201909252906109f98787848487611356565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061122457507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061045757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610457565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106112bd577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106112e9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061130757662386f26fc10000830492506010015b6305f5e100831061131f576305f5e100830492506008015b612710831061133357612710830492506004015b60648310611345576064830492506002015b600a83106104575760010192915050565b61136285858585611555565b6001600160a01b03841615610d91578251339060010361139b576020848101519084015161139483898985858961169b565b50506106e6565b6106e681878787878761183b565b60008281526005602090815260408083206001600160a01b038516845290915290205460ff1661094a576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602481018390526044016106d0565b606083518015610887576003600282010460021b60405192507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526106708515027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f52602083018181015b6003880197508751603f8160121c1651600053603f81600c1c1651600153603f8160061c1651600253603f811651600353506000518252600482019150808210611487576020016040527f3d3d00000000000000000000000000000000000000000000000000000000000060038406600204808303919091526000861515909102918290035290038252509392505050565b60065460ff16610f22576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61156184848484611987565b6001600160a01b03841661160b576000805b83518110156115f15760008382815181106115905761159061250f565b6020026020010151905080600360008785815181106115b1576115b161250f565b6020026020010151815260200190815260200160002060008282546115d69190612682565b909155506115e690508184612682565b925050600101611573565b5080600460008282546116049190612682565b9091555050505b6001600160a01b038316610713576000805b835181101561168a57600083828151811061163a5761163a61250f565b60200260200101519050806003600087858151811061165b5761165b61250f565b60209081029190910181015182528101919091526040016000208054919091039055919091019060010161161d565b506004805491909103905550505050565b6001600160a01b0384163b156106e6576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e61906116f890899089908890889088906004016126bc565b6020604051808303816000875af1925050508015611733575060408051601f3d908101601f19168201909252611730918101906126ff565b60015b6117b5573d808015611761576040519150601f19603f3d011682016040523d82523d6000602084013e611766565b606091505b5080516000036117ad576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016106d0565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146109f9576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016106d0565b6001600160a01b0384163b156106e6576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611898908990899088908890889060040161271c565b6020604051808303816000875af19250505080156118d3575060408051601f3d908101601f191682019092526118d0918101906126ff565b60015b611901573d808015611761576040519150601f19603f3d011682016040523d82523d6000602084013e611766565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146109f9576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016106d0565b80518251146119cf57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016106d0565b3360005b8351811015611aee576020818102858101820151908501909101516001600160a01b03881615611a9f576000828152602081815260408083206001600160a01b038c16845290915290205481811015611a78576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016106d0565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615611ae4576000828152602081815260408083206001600160a01b038b16845290915281208054839290611ade908490612682565b90915550505b50506001016119d3565b508251600103611b6f5760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611b60929190918252602082015260400190565b60405180910390a45050610d91565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611bbe92919061277a565b60405180910390a45050505050565b80356001600160a01b0381168114611be457600080fd5b919050565b60008060408385031215611bfc57600080fd5b611c0583611bcd565b946020939093013593505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461097757600080fd5b600060208284031215611c5357600080fd5b813561064381611c13565b600060208284031215611c7057600080fd5b5035919050565b60005b83811015611c92578181015183820152602001611c7a565b50506000910152565b60008151808452611cb3816020860160208601611c77565b601f01601f19169290920160200192915050565b6020815260006106436020830184611c9b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611d3257611d32611cda565b604052919050565b600067ffffffffffffffff821115611d5457611d54611cda565b5060051b60200190565b600082601f830112611d6f57600080fd5b81356020611d84611d7f83611d3a565b611d09565b8083825260208201915060208460051b870101935086841115611da657600080fd5b602086015b84811015611dc25780358352918301918301611dab565b509695505050505050565b600067ffffffffffffffff821115611de757611de7611cda565b50601f01601f191660200190565b600082601f830112611e0657600080fd5b8135611e14611d7f82611dcd565b818152846020838601011115611e2957600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611e5e57600080fd5b611e6786611bcd565b9450611e7560208701611bcd565b9350604086013567ffffffffffffffff80821115611e9257600080fd5b611e9e89838a01611d5e565b94506060880135915080821115611eb457600080fd5b611ec089838a01611d5e565b93506080880135915080821115611ed657600080fd5b50611ee388828901611df5565b9150509295509295909350565b60008060408385031215611f0357600080fd5b82359150611f1360208401611bcd565b90509250929050565b60008060408385031215611f2f57600080fd5b823567ffffffffffffffff80821115611f4757600080fd5b818501915085601f830112611f5b57600080fd5b81356020611f6b611d7f83611d3a565b82815260059290921b84018101918181019089841115611f8a57600080fd5b948201945b83861015611faf57611fa086611bcd565b82529482019490820190611f8f565b96505086013592505080821115611fc557600080fd5b50611fd285828601611d5e565b9150509250929050565b60008151808452602080850194506020840160005b8381101561200d57815187529582019590820190600101611ff1565b509495945050505050565b6020815260006106436020830184611fdc565b60008060006060848603121561204057600080fd5b83359250602084013567ffffffffffffffff8082111561205f57600080fd5b61206b87838801611df5565b9350604086013591508082111561208157600080fd5b5061208e86828701611df5565b9150509250925092565b600080604083850312156120ab57600080fd5b6120b483611bcd565b9150602083013580151581146120c957600080fd5b809150509250929050565b6040815260006120e76040830185611c9b565b82810360208401526120f98185611c9b565b95945050505050565b6000806040838503121561211557600080fd5b61211e83611bcd565b9150611f1360208401611bcd565b600080600080600060a0868803121561214457600080fd5b61214d86611bcd565b945061215b60208701611bcd565b93506040860135925060608601359150608086013567ffffffffffffffff81111561218557600080fd5b611ee388828901611df5565b600181811c908216806121a557607f821691505b6020821081036121de577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600081546121f181612191565b60018281168015612209576001811461221e5761224d565b60ff198416875282151583028701945061224d565b8560005260208060002060005b858110156122445781548a82015290840190820161222b565b50505082870194505b5050505092915050565b60008451612269818460208901611c77565b84519083019061227d818360208901611c77565b7f200000000000000000000000000000000000000000000000000000000000000091019081526122b060018201856121e4565b9695505050505050565b6020815260008251606060208401526122d66080840182611c9b565b90506020840151601f19808584030160408601526122f48383611c9b565b92506040860151915080858403016060860152506120f98282611c9b565b60006020828403121561232457600080fd5b815167ffffffffffffffff81111561233b57600080fd5b8201601f8101841361234c57600080fd5b805161235a611d7f82611dcd565b81815285602083850101111561236f57600080fd5b6120f9826020830160208601611c77565b7f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323081527f30302f73766722207072657365727665417370656374526174696f3d22784d6960208201527f6e594d696e206d656574222076696577426f783d22302030203332302033323060408201527f22207374796c653d226261636b67726f756e642d636f6c6f723a77686974652260608201527f3e0000000000000000000000000000000000000000000000000000000000000060808201527f3c7465787420783d223135302220793d223135352220666f6e742d73697a653d60818201527f223136222066696c6c3d22233030302220746578742d616e63686f723d226d6960a18201527f64646c65223e000000000000000000000000000000000000000000000000000060c182015260006124bc60c78301846121e4565b7f3c2f746578743e0000000000000000000000000000000000000000000000000081527f3c2f7376673e00000000000000000000000000000000000000000000000000006007820152600d019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b601f821115610765576000816000526020600020601f850160051c810160208610156125675750805b601f850160051c820191505b818110156106e657828155600101612573565b815167ffffffffffffffff8111156125a0576125a0611cda565b6125b4816125ae8454612191565b8461253e565b602080601f83116001811461260757600084156125d15750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106e6565b600085815260208120601f198616915b8281101561263657888601518255948401946001909101908401612617565b508582101561267257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115610457577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526126f460a0830184611c9b565b979650505050505050565b60006020828403121561271157600080fd5b815161064381611c13565b60006001600160a01b03808816835280871660208401525060a0604083015261274860a0830186611fdc565b828103606084015261275a8186611fdc565b9050828103608084015261276e8185611c9b565b98975050505050505050565b60408152600061278d6040830185611fdc565b82810360208401526120f98185611fdc56fe4d7567656e4372616674206973206f6e636861696e2c20696e66696e746520637261667461626c65204e4654732c20776865726520796f752063616e20637261667420796f7572206f776e204e4654732ea164736f6c6343000817000a