0 txs
8 calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getConfig
viewfunction getConfig() view returns (tuple)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isFCFSWhitelisted
viewfunction isFCFSWhitelisted(address account) view returns (bool)
isGTDWhitelisted
viewfunction isGTDWhitelisted(address account) view returns (bool)
name
viewfunction name() view returns (string)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
purchasable
viewfunction purchasable(address account) view returns (uint8 p, uint256 qty, uint256 price)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
treasuryClaimed
viewfunction treasuryClaimed() view returns (uint256)
addFCFSWhitelist
nonpayablefunction addFCFSWhitelist(address[] accounts)
addGTDWhitelist
nonpayablefunction addGTDWhitelist(address[] accounts)
approve
nonpayablefunction approve(address to, uint256 tokenId)
claimToTreasury
nonpayablefunction claimToTreasury(uint256 qty)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(string name_, string symbol_, tuple config)
pause
nonpayablefunction pause()
purchase
payablefunction purchase(uint256 qty) payable
removeFCFSWhitelist
nonpayablefunction removeFCFSWhitelist(address[] accounts)
removeGTDWhitelist
nonpayablefunction removeGTDWhitelist(address[] accounts)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string uri)
setConfig
nonpayablefunction setConfig(tuple config)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId)
Initialized
event Initialized(uint64 version)
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
Paused
event Paused(address account)
Purchased
event Purchased(uint8 p, address account, uint256 qty, uint256 price)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unpaused
event Unpaused(address account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
ExpectedPause
error ExpectedPause()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OneGravityPurchaseInsufficientValue
error OneGravityPurchaseInsufficientValue(uint256 qty, uint256 price, uint256 received)
OneGravityPurchaseQtyExceeded
error OneGravityPurchaseQtyExceeded(uint256 qty, uint256 maxQty)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61317780620000e66000396000f3fe6080604052600436106102465760003560e01c80636c0360eb11610139578063b88d4fde116100b6578063d547741f1161007a578063d547741f146107bc578063d655b264146107dc578063e63ab1e91461080b578063e985e9c51461082d578063efef39a11461084d578063ff78d53b1461086057600080fd5b8063b88d4fde14610691578063c142552b146106b1578063c3f909d4146106d1578063c87b56dd1461077c578063ca15c8731461079c57600080fd5b80639010d07c116100fd5780639010d07c1461060757806391d148541461062757806395d89b4114610647578063a217fddf1461065c578063a22cb4651461067157600080fd5b80636c0360eb1461054557806370a082311461055a57806373c4f5a31461057a5780638456cb591461059a5780638651f113146105af57600080fd5b80633ce3d3a6116101c75780634e4cfaaa1161018b5780634e4cfaaa14610468578063558f15f7146104c057806355f804b3146104e05780635c975abb146105005780636352211e1461052557600080fd5b80633ce3d3a6146103bf5780633d6a5398146103df5780633f4ba83a146103ff578063416aab491461041457806342842e0e1461044857600080fd5b8063193d77511161020e578063193d77511461031f57806323b872dd1461033f578063248a9ca31461035f5780632f2ff15d1461037f57806336568abe1461039f57600080fd5b806301ffc9a71461024b57806306fdde0314610280578063081812fc146102a2578063095ea7b3146102da57806318160ddd146102fc575b600080fd5b34801561025757600080fd5b5061026b61026636600461277f565b610880565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b50610295610891565b60405161027791906127ec565b3480156102ae57600080fd5b506102c26102bd3660046127ff565b610935565b6040516001600160a01b039091168152602001610277565b3480156102e657600080fd5b506102fa6102f5366004612834565b61094a565b005b34801561030857600080fd5b50610311610959565b604051908152602001610277565b34801561032b57600080fd5b506102fa61033a3660046128cf565b61099f565b34801561034b57600080fd5b506102fa61035a36600461297c565b610a27565b34801561036b57600080fd5b5061031161037a3660046127ff565b610ab1565b34801561038b57600080fd5b506102fa61039a3660046129b8565b610ad3565b3480156103ab57600080fd5b506102fa6103ba3660046129b8565b610aef565b3480156103cb57600080fd5b506102fa6103da366004612ac8565b610b27565b3480156103eb57600080fd5b506102fa6103fa3660046128cf565b610d0f565b34801561040b57600080fd5b506102fa610d91565b34801561042057600080fd5b507f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d91154610311565b34801561045457600080fd5b506102fa61046336600461297c565b610db4565b34801561047457600080fd5b5061026b610483366004612ae5565b6001600160a01b031660009081527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90c602052604090205460ff1690565b3480156104cc57600080fd5b506102fa6104db3660046128cf565b610dcf565b3480156104ec57600080fd5b506102fa6104fb366004612b78565b610e51565b34801561050c57600080fd5b506000805160206131228339815191525460ff1661026b565b34801561053157600080fd5b506102c26105403660046127ff565b610e96565b34801561055157600080fd5b50610295610ea1565b34801561056657600080fd5b50610311610575366004612ae5565b610ee0565b34801561058657600080fd5b506102fa6105953660046127ff565b610f3c565b3480156105a657600080fd5b506102fa610fa8565b3480156105bb57600080fd5b5061026b6105ca366004612ae5565b6001600160a01b031660009081527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90e602052604090205460ff1690565b34801561061357600080fd5b506102c2610622366004612bad565b610fc8565b34801561063357600080fd5b5061026b6106423660046129b8565b610ff7565b34801561065357600080fd5b5061029561102f565b34801561066857600080fd5b50610311600081565b34801561067d57600080fd5b506102fa61068c366004612bcf565b61106e565b34801561069d57600080fd5b506102fa6106ac366004612c0b565b611079565b3480156106bd57600080fd5b506102fa6106cc366004612c87565b611090565b3480156106dd57600080fd5b506106e66111ac565b60405161027791908151805182526020808201519083015260409081015190820152610180810160208381015180516060850152908101516080840152604081015160a084015250604083015160c0830152606083015160e0830152608083015161010083015260a083015161012083015260c083015161014083015260018060a01b0360e08401511661016083015292915050565b34801561078857600080fd5b506102956107973660046127ff565b6113a8565b3480156107a857600080fd5b506103116107b73660046127ff565b61140b565b3480156107c857600080fd5b506102fa6107d73660046129b8565b611438565b3480156107e857600080fd5b506107fc6107f7366004612ae5565b611454565b60405161027793929190612d35565b34801561081757600080fd5b506103116000805160206130c283398151915281565b34801561083957600080fd5b5061026b610848366004612d54565b611646565b6102fa61085b3660046127ff565b611693565b34801561086c57600080fd5b506102fa61087b3660046128cf565b61186a565b600061088b826118ec565b92915050565b6000805160206130a283398151915280546060919081906108b190612d7e565b80601f01602080910402602001604051908101604052809291908181526020018280546108dd90612d7e565b801561092a5780601f106108ff5761010080835404028352916020019161092a565b820191906000526020600020905b81548152906001019060200180831161090d57829003601f168201915b505050505091505090565b600061094082611911565b5061088b82611949565b610955828233611983565b5050565b60008051602061310283398151915280547f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d910546000929161099991612dce565b91505090565b60006109aa81611990565b60008051602061310283398151915260005b8351811015610a2157600082600c0160008684815181106109df576109df612de1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610a1a81612df7565b90506109bc565b50505050565b6001600160a01b038216610a5657604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a6383833361199a565b9050836001600160a01b0316816001600160a01b031614610a21576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610a4d565b60009081526000805160206130e2833981519152602052604090206001015490565b610adc82610ab1565b610ae581611990565b610a2183836119a7565b6001600160a01b0381163314610b185760405163334bd91960e11b815260040160405180910390fd5b610b2282826119ec565b505050565b6000610b3281611990565b5080518051600080516020613102833981519152556020808201517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d901556040918201517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d902558083015180517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90355908101517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d904558101517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d905558101517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9065560608101517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9075560808101517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9085560a08101517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9095560c08101517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90a5560e001517f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90b80546001600160a01b0319166001600160a01b03909216919091179055565b6000610d1a81611990565b60008051602061310283398151915260005b8351811015610a2157600082600e016000868481518110610d4f57610d4f612de1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610d8a81612df7565b9050610d2c565b6000805160206130c2833981519152610da981611990565b610db1611a28565b50565b610b2283838360405180602001604052806000815250611079565b6000610dda81611990565b60008051602061310283398151915260005b8351811015610a2157600182600e016000868481518110610e0f57610e0f612de1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610e4a81612df7565b9050610dec565b6000610e5c81611990565b6000805160206131028339815191527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d912610a218482612e5e565b600061088b82611911565b7f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9128054606091600080516020613102833981519152916108b190612d7e565b60006000805160206130a28339815191526001600160a01b038316610f1b576040516322718ad960e21b815260006004820152602401610a4d565b6001600160a01b039092166000908152600390920160205250604090205490565b60008051602061310283398151915260005b82811015610b2257601182015482548110610f695750505050565b600b830154610f81906001600160a01b031682611a88565b8260110160008154610f9290612df7565b90915550610fa1905081612df7565b9050610f4e565b6000805160206130c2833981519152610fc081611990565b610db1611aa2565b6000828152600080516020613082833981519152602081905260408220610fef9084611aeb565b949350505050565b60009182526000805160206130e2833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206130a2833981519152916108b190612d7e565b610955338383611af7565b611084848484610a27565b610a2184848484611ba8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156110d65750825b905060008267ffffffffffffffff1660011480156110f35750303b155b905081158015611101575080155b1561111f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561114957845460ff60401b1916600160401b1785555b6111538888611cd1565b61115c86611ce3565b83156111a257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6111b46126d7565b5060408051610160810182526000805160206131028339815191525461010082019081527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d901546101208301527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9025461014083015281528151606080820184527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9035482527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d904546020808401919091527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90554838601528301919091527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90654928201929092527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90754918101919091527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9085460808201527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9095460a08201527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90a5460c08201527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d90b546001600160a01b031660e082015290565b60606000805160206131028339815191527f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d9126113e384611d07565b6040516020016113f4929190612f1e565b604051602081830303815290604052915050919050565b600081815260008051602061308283398151915260208190526040822061143190611d9a565b9392505050565b61144182610ab1565b61144a81611990565b610a2183836119ec565b7f3245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d903546000908190819060008051602061310283398151915290429081101561149d57505061163f565b600482015481101561155b5760078201546001600160a01b0387166000908152600c840160205260409020546001965090935060ff166114de57505061163f565b60068201546001600160a01b0387166000908152600d840160205260409020541015611531576001600160a01b0386166000908152600d83016020526040902054600683015461152e9190612fb5565b93505b6010820154600183015460009161154791612fb5565b905084811015611555578094505b5061163c565b6010820154600283015460018401546000929161157791612dce565b6115819190612fb5565b600584015490915082101561162a5760098301546001600160a01b0388166000908152600e850160205260409020546002975090945060ff166115c65750505061163f565b60088301546001600160a01b0388166000908152600f850160205260409020541015611619576001600160a01b0387166000908152600f8401602052604090205460088401546116169190612fb5565b94505b84811015611625578094505b61163a565b600a830154600396509094509250835b505b50505b9193909250565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b61169b611da4565b60008060006116a933611454565b925092509250838210156116da576040516382fbe3a760e01b81526004810185905260248101839052604401610a4d565b6116e48185612fc8565b3410156117145760405163b789374760e01b81526004810185905260248101829052346044820152606401610a4d565b600080516020613102833981519152600184600381111561173757611737612cfd565b0361176857336000908152600d820160205260408120805487929061175d908490612dce565b909155506117a89050565b600284600381111561177c5761177c612cfd565b036117a857336000908152600f82016020526040812080548792906117a2908490612dce565b90915550505b60006117b2610959565b905060005b868110156117e4576117c93383611a88565b6117d282612df7565b91506117dd81612df7565b90506117b7565b50858260100160008282546117f99190612dce565b90915550506040517fd4bb22af85cda9f9439d12e3d071976ceb576c4242edc901209b2ebb5ef3f4409061183490879033908a908890612fdf565b60405180910390a15050505050610db160017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b600061187581611990565b60008051602061310283398151915260005b8351811015610a2157600182600c0160008684815181106118aa576118aa612de1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556118e581612df7565b9050611887565b60006001600160e01b03198216632483248360e11b148061088b575061088b82611dee565b60008061191d83611e2e565b90506001600160a01b03811661088b57604051637e27328960e01b815260048101849052602401610a4d565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b610b228383836001611e68565b610db18133611f7e565b6000610fef848484611fb7565b6000600080516020613082833981519152816119c38585611fcc565b90508015610fef5760008581526020839052604090206119e39085612071565b50949350505050565b600060008051602061308283398151915281611a088585612086565b90508015610fef5760008581526020839052604090206119e39085612102565b611a30612117565b600080516020613122833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b610955828260405180602001604052806000815250612149565b611aaa612160565b600080516020613122833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611a6a565b60006114318383612191565b6000805160206130a28339815191526001600160a01b038316611b3857604051630b61174360e31b81526001600160a01b0384166004820152602401610a4d565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b15610a2157604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611bea903390889087908790600401613011565b6020604051808303816000875af1925050508015611c25575060408051601f3d908101601f19168201909252611c229181019061304e565b60015b611c8e573d808015611c53576040519150601f19603f3d011682016040523d82523d6000602084013e611c58565b606091505b508051600003611c8657604051633250574960e11b81526001600160a01b0385166004820152602401610a4d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14611cca57604051633250574960e11b81526001600160a01b0385166004820152602401610a4d565b5050505050565b611cd96121bb565b6109558282612204565b611cee6000336119a7565b50610b326000805160206130c2833981519152336119a7565b60606000611d1483612235565b600101905060008167ffffffffffffffff811115611d3457611d3461285e565b6040519080825280601f01601f191660200182016040528015611d5e576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d6857509392505050565b600061088b825490565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901611de857604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60006001600160e01b031982166380ac58cd60e01b1480611e1f57506001600160e01b03198216635b5e139f60e01b145b8061088b575061088b8261230d565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206130a28339815191528180611e8b57506001600160a01b03831615155b15611f4d576000611e9b85611911565b90506001600160a01b03841615801590611ec75750836001600160a01b0316816001600160a01b031614155b8015611eda5750611ed88185611646565b155b15611f035760405163a9fbf51f60e01b81526001600160a01b0385166004820152602401610a4d565b8215611f4b5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b611f888282610ff7565b6109555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610a4d565b6000611fc1612160565b610fef848484612332565b60006000805160206130e2833981519152611fe78484610ff7565b612067576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561201d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061088b565b600091505061088b565b6000611431836001600160a01b03841661243c565b60006000805160206130e28339815191526120a18484610ff7565b15612067576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061088b565b6000611431836001600160a01b03841661248b565b6000805160206131228339815191525460ff1661214757604051638dfc202b60e01b815260040160405180910390fd5b565b6121538383612574565b610b226000848484611ba8565b6000805160206131228339815191525460ff16156121475760405163d93c066560e01b815260040160405180910390fd5b60008260000182815481106121a8576121a8612de1565b9060005260206000200154905092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661214757604051631afcd79f60e31b815260040160405180910390fd5b61220c6121bb565b6000805160206130a2833981519152806122268482612e5e565b5060018101610a218382612e5e565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106122745772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106122a0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106122be57662386f26fc10000830492506010015b6305f5e10083106122d6576305f5e100830492506008015b61271083106122ea57612710830492506004015b606483106122fc576064830492506002015b600a831061088b5760010192915050565b60006001600160e01b03198216635a05180f60e01b148061088b575061088b826125d9565b60006000805160206130a28339815191528161234d85611e2e565b90506001600160a01b038416156123695761236981858761260e565b6001600160a01b038116156123a957612386600086600080611e68565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156123da576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b60008181526001830160205260408120546124835750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561088b565b50600061088b565b600081815260018301602052604081205480156120675760006124af600183612fb5565b85549091506000906124c390600190612fb5565b90508082146125285760008660000182815481106124e3576124e3612de1565b906000526020600020015490508087600001848154811061250657612506612de1565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806125395761253961306b565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061088b565b6001600160a01b03821661259e57604051633250574960e11b815260006004820152602401610a4d565b60006125ac8383600061199a565b90506001600160a01b03811615610b22576040516339e3563760e11b815260006004820152602401610a4d565b60006001600160e01b03198216637965db0b60e01b148061088b57506301ffc9a760e01b6001600160e01b031983161461088b565b612619838383612672565b610b22576001600160a01b03831661264757604051637e27328960e01b815260048101829052602401610a4d565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610a4d565b60006001600160a01b03831615801590610fef5750826001600160a01b0316846001600160a01b031614806126ac57506126ac8484611646565b80610fef5750826001600160a01b03166126c583611949565b6001600160a01b031614949350505050565b60405180610100016040528061270760405180606001604052806000815260200160008152602001600081525090565b815260200161273060405180606001604052806000815260200160008152602001600081525090565b8152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681525090565b6001600160e01b031981168114610db157600080fd5b60006020828403121561279157600080fd5b813561143181612769565b60005b838110156127b757818101518382015260200161279f565b50506000910152565b600081518084526127d881602086016020860161279c565b601f01601f19169290920160200192915050565b60208152600061143160208301846127c0565b60006020828403121561281157600080fd5b5035919050565b80356001600160a01b038116811461282f57600080fd5b919050565b6000806040838503121561284757600080fd5b61285083612818565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff811182821017156128985761289861285e565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156128c7576128c761285e565b604052919050565b600060208083850312156128e257600080fd5b823567ffffffffffffffff808211156128fa57600080fd5b818501915085601f83011261290e57600080fd5b8135818111156129205761292061285e565b8060051b915061293184830161289e565b818152918301840191848101908884111561294b57600080fd5b938501935b838510156129705761296185612818565b82529385019390850190612950565b98975050505050505050565b60008060006060848603121561299157600080fd5b61299a84612818565b92506129a860208501612818565b9150604084013590509250925092565b600080604083850312156129cb57600080fd5b823591506129db60208401612818565b90509250929050565b6000606082840312156129f657600080fd5b6040516060810181811067ffffffffffffffff82111715612a1957612a1961285e565b80604052508091508235815260208301356020820152604083013560408201525092915050565b60006101808284031215612a5357600080fd5b612a5b612874565b9050612a6783836129e4565b8152612a7683606084016129e4565b602082015260c0820135604082015260e08201356060820152610100820135608082015261012082013560a082015261014082013560c0820152612abd6101608301612818565b60e082015292915050565b60006101808284031215612adb57600080fd5b6114318383612a40565b600060208284031215612af757600080fd5b61143182612818565b600067ffffffffffffffff831115612b1a57612b1a61285e565b612b2d601f8401601f191660200161289e565b9050828152838383011115612b4157600080fd5b828260208301376000602084830101529392505050565b600082601f830112612b6957600080fd5b61143183833560208501612b00565b600060208284031215612b8a57600080fd5b813567ffffffffffffffff811115612ba157600080fd5b610fef84828501612b58565b60008060408385031215612bc057600080fd5b50508035926020909101359150565b60008060408385031215612be257600080fd5b612beb83612818565b915060208301358015158114612c0057600080fd5b809150509250929050565b60008060008060808587031215612c2157600080fd5b612c2a85612818565b9350612c3860208601612818565b925060408501359150606085013567ffffffffffffffff811115612c5b57600080fd5b8501601f81018713612c6c57600080fd5b612c7b87823560208401612b00565b91505092959194509250565b60008060006101c08486031215612c9d57600080fd5b833567ffffffffffffffff80821115612cb557600080fd5b612cc187838801612b58565b94506020860135915080821115612cd757600080fd5b50612ce486828701612b58565b925050612cf48560408601612a40565b90509250925092565b634e487b7160e01b600052602160045260246000fd5b60048110612d3157634e487b7160e01b600052602160045260246000fd5b9052565b60608101612d438286612d13565b602082019390935260400152919050565b60008060408385031215612d6757600080fd5b612d7083612818565b91506129db60208401612818565b600181811c90821680612d9257607f821691505b602082108103612db257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561088b5761088b612db8565b634e487b7160e01b600052603260045260246000fd5b600060018201612e0957612e09612db8565b5060010190565b601f821115610b2257600081815260208120601f850160051c81016020861015612e375750805b601f850160051c820191505b81811015612e5657828155600101612e43565b505050505050565b815167ffffffffffffffff811115612e7857612e7861285e565b612e8c81612e868454612d7e565b84612e10565b602080601f831160018114612ec15760008415612ea95750858301515b600019600386901b1c1916600185901b178555612e56565b600085815260208120601f198616915b82811015612ef057888601518255948401946001909101908401612ed1565b5085821015612f0e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808454612f2c81612d7e565b60018281168015612f445760018114612f5957612f88565b60ff1984168752821515830287019450612f88565b8860005260208060002060005b85811015612f7f5781548a820152908401908201612f66565b50505082870194505b505050508351612f9c81836020880161279c565b64173539b7b760d91b9101908152600501949350505050565b8181038181111561088b5761088b612db8565b808202811582820484141761088b5761088b612db8565b60808101612fed8287612d13565b6001600160a01b039490941660208201526040810192909252606090910152919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613044908301846127c0565b9695505050505050565b60006020828403121561306057600080fd5b815161143181612769565b634e487b7160e01b600052603160045260246000fdfec1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268003245113bed6f118117baf4bc349c329b283dd34031e127d8a137e79ea092d900cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a26469706673582212201958f0094b93a0f10b9ecc0d4b5f2538c464701c337ceffd7b68d392f48e9a3e64736f6c63430008140033