0 txs
0 calls
constructor
constructor(string name_, string symbol_, address originPassAddress_, string unrevealedURIInit_, address royaltyReceiver_, string baseURIInit_)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
CLAIMS_PER_PASS
viewfunction CLAIMS_PER_PASS() view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
MAX_SUPPLY
viewfunction MAX_SUPPLY() view returns (uint256)
maxPerWallet
viewfunction maxPerWallet() view returns (uint256)
mintedBy
viewfunction mintedBy(address) view returns (uint256)
mintPrice
viewfunction mintPrice() view returns (uint256)
name
viewfunction name() view returns (string)
offset
viewfunction offset() view returns (uint256)
originPass
viewfunction originPass() view returns (address)
originPassClaimed
viewfunction originPassClaimed(uint256) view returns (bool)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
provenanceHash
viewfunction provenanceHash() view returns (bytes32)
provenanceLocked
viewfunction provenanceLocked() view returns (bool)
publicMintOpen
viewfunction publicMintOpen() view returns (bool)
revealBlockNumber
viewfunction revealBlockNumber() view returns (uint256)
revealed
viewfunction revealed() view returns (bool)
revealRequested
viewfunction revealRequested() view returns (bool)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address receiver, uint256 amount)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
TEAM_RESERVE
viewfunction TEAM_RESERVE() view returns (uint256)
tokensOfOwner
viewfunction tokensOfOwner(address owner) view returns (uint256[])
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256 result)
unclaimedTokensOfOwner
viewfunction unclaimedTokensOfOwner(address owner) view returns (uint256[])
approve
payablefunction approve(address to, uint256 tokenId) payable
claim
nonpayablefunction claim(uint256[] tokenIds)
finalizeRevealAndSetBase
nonpayablefunction finalizeRevealAndSetBase(string finalBaseURI)
lockProvenance
nonpayablefunction lockProvenance(bytes32 _provenanceHash)
publicMint
payablefunction publicMint(uint256 quantity) payable
renounceOwnership
nonpayablefunction renounceOwnership()
requestReveal
nonpayablefunction requestReveal()
reserveMint
nonpayablefunction reserveMint(address to, uint256 quantity)
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) payable
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId) payable
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string newBase)
setMaxPerWallet
nonpayablefunction setMaxPerWallet(uint256 newMax)
setMintPrice
nonpayablefunction setMintPrice(uint256 newPrice)
setOriginPass
nonpayablefunction setOriginPass(address originPassAddress)
setPublicMintOpen
nonpayablefunction setPublicMintOpen(bool open)
setRoyaltyInfo
nonpayablefunction setRoyaltyInfo(address receiver, uint96 feeBasisPoints)
setUnrevealedURI
nonpayablefunction setUnrevealedURI(string newURI)
transferFrom
payablefunction transferFrom(address from, address to, uint256 tokenId) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(address to)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
ClaimedWithOriginPass
event ClaimedWithOriginPass(address indexed claimer, uint256 quantity)
ConsecutiveTransfer
event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProvenanceLocked
event ProvenanceLocked(bytes32 indexed provenanceHash)
PublicMint
event PublicMint(address indexed minter, uint256 quantity, uint256 paid)
Revealed
event Revealed(uint256 indexed offset, string baseURI)
RevealRequested
event RevealRequested(uint256 indexed blockNumber)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Withdraw
event Withdraw(address indexed to, uint256 amount)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
ERC2981InvalidDefaultRoyalty
error ERC2981InvalidDefaultRoyalty(uint256 numerator, uint256 denominator)
ERC2981InvalidDefaultRoyaltyReceiver
error ERC2981InvalidDefaultRoyaltyReceiver(address receiver)
ERC2981InvalidTokenRoyalty
error ERC2981InvalidTokenRoyalty(uint256 tokenId, uint256 numerator, uint256 denominator)
ERC2981InvalidTokenRoyaltyReceiver
error ERC2981InvalidTokenRoyaltyReceiver(uint256 tokenId, address receiver)
MintERC2309QuantityExceedsLimit
error MintERC2309QuantityExceedsLimit()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
NotCompatibleWithSpotMints
error NotCompatibleWithSpotMints()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
OwnershipNotInitializedForExtraData
error OwnershipNotInitializedForExtraData()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SequentialMintExceedsLimit
error SequentialMintExceedsLimit()
SequentialUpToTooSmall
error SequentialUpToTooSmall()
SpotMintTokenIdTooSmall
error SpotMintTokenIdTooSmall()
TokenAlreadyExists
error TokenAlreadyExists()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x60806040526014600d556611c37937e08000600f556000601060006101000a81548160ff0219169083151502179055506000601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff021916908315150217905550600060145560006015556000601960006101000a81548160ff0219169083151502179055503480156200009757600080fd5b5060405162005dd738038062005dd78339818101604052810190620000bd9190620007b5565b3386868160029081620000d1919062000b18565b508060039081620000e3919062000b18565b50620000f46200030660201b60201c565b6000819055506200010a6200030660201b60201c565b6200011a6200030b60201b60201c565b10156200013a576200013963fed8210f60e01b6200033360201b60201c565b5b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001b15760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001a8919062000c10565b60405180910390fd5b620001c2816200033d60201b60201c565b506001600c81905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036200023d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002349062000c8e565b60405180910390fd5b83600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601790816200028f919062000b18565b508060169081620002a1919062000b18565b507f46c04396c155171be99dacc78756e55f749a936d7404f0c8a3f286c627ce0ecb60001b6018819055506000601960006101000a81548160ff021916908315150217905550620002fa8260c86200040360201b60201c565b50505050505062000d3f565b600090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b8060005260046000fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600062000415620005b360201b60201c565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff1611156200047d5781816040517f6f483d090000000000000000000000000000000000000000000000000000000081526004016200047492919062000d12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620004f25760006040517fb6d9900a000000000000000000000000000000000000000000000000000000008152600401620004e9919062000c10565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff16815250600960008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000612710905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200062682620005db565b810181811067ffffffffffffffff82111715620006485762000647620005ec565b5b80604052505050565b60006200065d620005bd565b90506200066b82826200061b565b919050565b600067ffffffffffffffff8211156200068e576200068d620005ec565b5b6200069982620005db565b9050602081019050919050565b60005b83811015620006c6578082015181840152602081019050620006a9565b60008484015250505050565b6000620006e9620006e38462000670565b62000651565b905082815260208101848484011115620007085762000707620005d6565b5b62000715848285620006a6565b509392505050565b600082601f830112620007355762000734620005d1565b5b815162000747848260208601620006d2565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200077d8262000750565b9050919050565b6200078f8162000770565b81146200079b57600080fd5b50565b600081519050620007af8162000784565b92915050565b60008060008060008060c08789031215620007d557620007d4620005c7565b5b600087015167ffffffffffffffff811115620007f657620007f5620005cc565b5b6200080489828a016200071d565b965050602087015167ffffffffffffffff811115620008285762000827620005cc565b5b6200083689828a016200071d565b95505060406200084989828a016200079e565b945050606087015167ffffffffffffffff8111156200086d576200086c620005cc565b5b6200087b89828a016200071d565b93505060806200088e89828a016200079e565b92505060a087015167ffffffffffffffff811115620008b257620008b1620005cc565b5b620008c089828a016200071d565b9150509295509295509295565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200092057607f821691505b602082108103620009365762000935620008d8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000961565b620009ac868362000961565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009f9620009f3620009ed84620009c4565b620009ce565b620009c4565b9050919050565b6000819050919050565b62000a1583620009d8565b62000a2d62000a248262000a00565b8484546200096e565b825550505050565b600090565b62000a4462000a35565b62000a5181848462000a0a565b505050565b5b8181101562000a795762000a6d60008262000a3a565b60018101905062000a57565b5050565b601f82111562000ac85762000a92816200093c565b62000a9d8462000951565b8101602085101562000aad578190505b62000ac562000abc8562000951565b83018262000a56565b50505b505050565b600082821c905092915050565b600062000aed6000198460080262000acd565b1980831691505092915050565b600062000b08838362000ada565b9150826002028217905092915050565b62000b2382620008cd565b67ffffffffffffffff81111562000b3f5762000b3e620005ec565b5b62000b4b825462000907565b62000b5882828562000a7d565b600060209050601f83116001811462000b90576000841562000b7b578287015190505b62000b87858262000afa565b86555062000bf7565b601f19841662000ba0866200093c565b60005b8281101562000bca5784890151825560018201915060208501945060208101905062000ba3565b8683101562000bea578489015162000be6601f89168262000ada565b8355505b6001600288020188555050505b505050505050565b62000c0a8162000770565b82525050565b600060208201905062000c27600083018462000bff565b92915050565b600082825260208201905092915050565b7f426164206f726967696e20706173730000000000000000000000000000000000600082015250565b600062000c76600f8362000c2d565b915062000c838262000c3e565b602082019050919050565b6000602082019050818103600083015262000ca98162000c67565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b600062000ce962000ce362000cdd8462000cb0565b620009ce565b620009c4565b9050919050565b62000cfb8162000cc8565b82525050565b62000d0c81620009c4565b82525050565b600060408201905062000d29600083018562000cf0565b62000d38602083018462000d01565b9392505050565b6150888062000d4f6000396000f3fe6080604052600436106102ae5760003560e01c80636817c76c11610175578063bcc9ca5b116100dc578063e268e4d311610095578063e985e9c51161006f578063e985e9c514610a6e578063f2fde38b14610aab578063f4a0a52814610ad4578063fe2c7fee14610afd576102ae565b8063e268e4d3146109ef578063e5136f5214610a18578063e5408eae14610a43576102ae565b8063bcc9ca5b146108cb578063c6ab67a3146108f6578063c87b56dd14610921578063d06a3d431461095e578063d0f51aab14610987578063d5556544146109c4576102ae565b80638da5cb5b1161012e5780638da5cb5b146107f057806395d89b411461081b578063a22cb46514610846578063b07870b51461086f578063b0ea180214610886578063b88d4fde146108af576102ae565b80636817c76c146106e05780636ba4c1381461070b57806370a0823114610734578063715018a6146107715780637303c06c146107885780638462151c146107b3576102ae565b806332cb6b0c11610219578063454320e7116101d2578063454320e7146105d457806351830227146105fd57806351cff8d91461062857806355f804b3146106515780636352211e1461067a5780636387f804146106b7576102ae565b806332cb6b0c146104bd5780633a8879bb146104e85780633cef28d21461051357806342842e0e1461055057806345125f0c1461056c578063453c2310146105a9576102ae565b8063152999fd1161026b578063152999fd146103c657806318160ddd146103f15780631eaeda031461041c57806323b872dd146104475780632a55205a146104635780632db11544146104a1576102ae565b806301ffc9a7146102b357806302fa7c47146102f057806306fdde0314610319578063081812fc14610344578063095ea7b3146103815780631516866b1461039d575b600080fd5b3480156102bf57600080fd5b506102da60048036038101906102d591906134c3565b610b26565b6040516102e7919061350b565b60405180910390f35b3480156102fc57600080fd5b50610317600480360381019061031291906135c8565b610b38565b005b34801561032557600080fd5b5061032e610b4e565b60405161033b9190613698565b60405180910390f35b34801561035057600080fd5b5061036b600480360381019061036691906136f0565b610be0565b604051610378919061372c565b60405180910390f35b61039b60048036038101906103969190613747565b610c3e565b005b3480156103a957600080fd5b506103c460048036038101906103bf91906137bd565b610c4e565b005b3480156103d257600080fd5b506103db610cf8565b6040516103e89190613849565b60405180910390f35b3480156103fd57600080fd5b50610406610d1e565b6040516104139190613873565b60405180910390f35b34801561042857600080fd5b50610431610d6b565b60405161043e9190613873565b60405180910390f35b610461600480360381019061045c919061388e565b610d71565b005b34801561046f57600080fd5b5061048a600480360381019061048591906138e1565b611032565b604051610498929190613921565b60405180910390f35b6104bb60048036038101906104b691906136f0565b611162565b005b3480156104c957600080fd5b506104d26114a2565b6040516104df9190613873565b60405180910390f35b3480156104f457600080fd5b506104fd6114a8565b60405161050a919061350b565b60405180910390f35b34801561051f57600080fd5b5061053a6004803603810190610535919061394a565b6114bb565b6040516105479190613873565b60405180910390f35b61056a6004803603810190610565919061388e565b6114d3565b005b34801561057857600080fd5b50610593600480360381019061058e91906136f0565b6114f3565b6040516105a0919061350b565b60405180910390f35b3480156105b557600080fd5b506105be611513565b6040516105cb9190613873565b60405180910390f35b3480156105e057600080fd5b506105fb60048036038101906105f691906139dc565b611519565b005b34801561060957600080fd5b506106126116b1565b60405161061f919061350b565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190613a67565b6116c4565b005b34801561065d57600080fd5b50610678600480360381019061067391906139dc565b611892565b005b34801561068657600080fd5b506106a1600480360381019061069c91906136f0565b611900565b6040516106ae919061372c565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190613ac0565b611912565b005b3480156106ec57600080fd5b506106f5611937565b6040516107029190613873565b60405180910390f35b34801561071757600080fd5b50610732600480360381019061072d9190613b43565b61193d565b005b34801561074057600080fd5b5061075b6004803603810190610756919061394a565b611c32565b6040516107689190613873565b60405180910390f35b34801561077d57600080fd5b50610786611cc9565b005b34801561079457600080fd5b5061079d611cdd565b6040516107aa919061350b565b60405180910390f35b3480156107bf57600080fd5b506107da60048036038101906107d5919061394a565b611cf0565b6040516107e79190613c4e565b60405180910390f35b3480156107fc57600080fd5b50610805611df0565b604051610812919061372c565b60405180910390f35b34801561082757600080fd5b50610830611e1a565b60405161083d9190613698565b60405180910390f35b34801561085257600080fd5b5061086d60048036038101906108689190613c70565b611eac565b005b34801561087b57600080fd5b50610884611fb7565b005b34801561089257600080fd5b506108ad60048036038101906108a89190613747565b6120b2565b005b6108c960048036038101906108c49190613de0565b61211f565b005b3480156108d757600080fd5b506108e0612171565b6040516108ed919061350b565b60405180910390f35b34801561090257600080fd5b5061090b612184565b6040516109189190613e72565b60405180910390f35b34801561092d57600080fd5b50610948600480360381019061094391906136f0565b61218a565b6040516109559190613698565b60405180910390f35b34801561096a57600080fd5b506109856004803603810190610980919061394a565b6122c4565b005b34801561099357600080fd5b506109ae60048036038101906109a9919061394a565b612310565b6040516109bb9190613c4e565b60405180910390f35b3480156109d057600080fd5b506109d9612530565b6040516109e69190613873565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a1191906136f0565b612536565b005b348015610a2457600080fd5b50610a2d612548565b604051610a3a9190613873565b60405180910390f35b348015610a4f57600080fd5b50610a5861254d565b604051610a659190613873565b60405180910390f35b348015610a7a57600080fd5b50610a956004803603810190610a909190613e8d565b612552565b604051610aa2919061350b565b60405180910390f35b348015610ab757600080fd5b50610ad26004803603810190610acd919061394a565b6125e6565b005b348015610ae057600080fd5b50610afb6004803603810190610af691906136f0565b61266c565b005b348015610b0957600080fd5b50610b246004803603810190610b1f91906139dc565b61267e565b005b6000610b31826126ec565b9050919050565b610b40612766565b610b4a82826127ed565b5050565b606060028054610b5d90613efc565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8990613efc565b8015610bd65780601f10610bab57610100808354040283529160200191610bd6565b820191906000526020600020905b815481529060010190602001808311610bb957829003601f168201915b5050505050905090565b6000610beb8261298f565b610c0057610bff63cf4700e460e01b612a3b565b5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610c4a82826001612a45565b5050565b610c56612766565b601960009054906101000a900460ff1615610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90613f79565b60405180910390fd5b806018819055506001601960006101000a81548160ff021916908315150217905550807f2e0cfe67f2af7d928274ef53996ef8687cf932cee3e637e906424ae82b80fa8960405160405180910390a250565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d28612b74565b600154600054030390507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d5b612b79565b14610d6857600854810190505b90565b60145481565b6000610d7c82612ba1565b905073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161693508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610df157610df063a114810060e01b612a3b565b5b600080610dfd84612cba565b91509150610e138187610e0e612ce1565b612ce9565b610e3e57610e2886610e23612ce1565b612552565b610e3d57610e3c6359c896be60e01b612a3b565b5b5b610e4b8686866001612d2d565b8015610e5657600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610f2485610f00888887612d33565b7c020000000000000000000000000000000000000000000000000000000017612d5b565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610faa5760006001850190506000600460008381526020019081526020016000205403610fa8576000548114610fa7578360046000838152602001908152602001600020819055505b5b505b600073ffffffffffffffffffffffffffffffffffffffff8673ffffffffffffffffffffffffffffffffffffffff161690508481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46000810361101c5761101b63ea553b3460e01b612a3b565b5b6110298787876001612d86565b50505050505050565b6000806000600a6000868152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260000160149054906101000a90046bffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361111357600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960000160149054906101000a90046bffffffffffffffffffffffff1690505b600061111d612d8c565b6bffffffffffffffffffffffff16826bffffffffffffffffffffffff16886111459190613fc8565b61114f9190614039565b9050828195509550505050509250929050565b61116a612d96565b601060009054906101000a900460ff166111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b0906140b6565b60405180910390fd5b600081116111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f390614122565b60405180910390fd5b61271081611208610d1e565b6112129190614142565b1115611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a906141c2565b60405180910390fd5b600d5481601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111156112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d09061422e565b60405180910390fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600081600f546113369190613fc8565b90508034101561137b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113729061429a565b60405180910390fd5b6113853383612ddc565b803411156114465760003373ffffffffffffffffffffffffffffffffffffffff1682346113b291906142ba565b6040516113be9061431f565b60006040518083038185875af1925050503d80600081146113fb576040519150601f19603f3d011682016040523d82523d6000602084013e611400565b606091505b5050905080611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90614380565b60405180910390fd5b505b3373ffffffffffffffffffffffffffffffffffffffff167f819f7e30541f2ed7e36c92ce039f5eb2d66b7dc094b33f416910e8fde56b80dc838360405161148e9291906143a0565b60405180910390a25061149f612f62565b50565b61271081565b601960009054906101000a900460ff1681565b60116020528060005260406000206000915090505481565b6114ee8383836040518060200160405280600081525061211f565b505050565b60126020528060005260406000206000915054906101000a900460ff1681565b600d5481565b611521612766565b601360019054906101000a900460ff16611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790614415565b60405180910390fd5b601360009054906101000a900460ff16156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790614481565b60405180910390fd5b600060016014546115d19190614142565b4090506000801b8103611619576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611610906144ed565b60405180910390fd5b60006127108260001c61162c919061450d565b90506000810361163b57600190505b806015819055508383601691826116539291906146eb565b506001601360006101000a81548160ff0219169083151502179055506015547fc811fa426354a91dd1520fee1f353bc0a55e337ab4095a1b1ac0a99167b9413e85856040516116a39291906147e8565b60405180910390a250505050565b601360009054906101000a900460ff1681565b6116cc612766565b6116d4612d96565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90614858565b60405180910390fd5b60004790506000811161178b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611782906148c4565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516117b19061431f565b60006040518083038185875af1925050503d80600081146117ee576040519150601f19603f3d011682016040523d82523d6000602084013e6117f3565b606091505b5050905080611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90614930565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161187d9190613873565b60405180910390a2505061188f612f62565b50565b61189a612766565b601360009054906101000a900460ff16156118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e19061499c565b60405180910390fd5b8181601691826118fb9291906146eb565b505050565b600061190b82612ba1565b9050919050565b61191a612766565b80601060006101000a81548160ff02191690831515021790555050565b600f5481565b611945612d96565b600082829050905060008111611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790614a08565b60405180910390fd5b600060058261199f9190613fc8565b9050612710816119ad610d1e565b6119b79190614142565b11156119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef90614a74565b60405180910390fd5b60005b82811015611bcb576000858583818110611a1857611a17614a94565b5b9050602002013590503373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a939190613873565b602060405180830381865afa158015611ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad49190614ad8565b73ffffffffffffffffffffffffffffffffffffffff1614611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2190614b51565b60405180910390fd5b6012600082815260200190815260200160002060009054906101000a900460ff1615611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8290614bbd565b60405180910390fd5b60016012600083815260200190815260200160002060006101000a81548160ff021916908315150217905550508080611bc390614bdd565b9150506119fb565b50611bd63382612ddc565b3373ffffffffffffffffffffffffffffffffffffffff167fd5874b6c868663b245a34e857c405a3a511fd31953422498153476043bc74fae82604051611c1c9190613873565b60405180910390a25050611c2e612f62565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7857611c77638f4eb60460e01b612a3b565b5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611cd1612766565b611cdb6000612f6c565b565b601360019054906101000a900460ff1681565b60606000611cfd83611c32565b905060008167ffffffffffffffff811115611d1b57611d1a613cb5565b5b604051908082528060200260200182016040528015611d495781602001602082028036833780820191505090505b509050600080611d57612b74565b90505b611d62613032565b811015611de4578573ffffffffffffffffffffffffffffffffffffffff16611d8982611900565b73ffffffffffffffffffffffffffffffffffffffff1603611dd15780838380611db190614bdd565b945081518110611dc457611dc3614a94565b5b6020026020010181815250505b8080611ddc90614bdd565b915050611d5a565b50819350505050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054611e2990613efc565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5590613efc565b8015611ea25780601f10611e7757610100808354040283529160200191611ea2565b820191906000526020600020905b815481529060010190602001808311611e8557829003601f168201915b5050505050905090565b8060076000611eb9612ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611f66612ce1565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611fab919061350b565b60405180910390a35050565b611fbf612766565b601360019054906101000a900460ff161561200f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200690614c71565b60405180910390fd5b601360009054906101000a900460ff161561205f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205690614481565b60405180910390fd5b6001601360016101000a81548160ff021916908315150217905550436014819055506014547f63e414cbfeae599c8bf0173052f72173257ad08c1c0b49eed829a02a9368395660405160405180910390a2565b6120ba612766565b612710816120c6610d1e565b6120d09190614142565b1115612111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210890614a74565b60405180910390fd5b61211b8282612ddc565b5050565b61212a848484610d71565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461216b576121558484848461303b565b61216a5761216963d1a57ed660e01b612a3b565b5b5b50505050565b601060009054906101000a900460ff1681565b60185481565b60606121958261298f565b6121cb576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601360009054906101000a900460ff1661227157601780546121ec90613efc565b80601f016020809104026020016040519081016040528092919081815260200182805461221890613efc565b80156122655780601f1061223a57610100808354040283529160200191612265565b820191906000526020600020905b81548152906001019060200180831161224857829003601f168201915b505050505090506122bf565b6000612710601554846122849190614142565b61228e919061450d565b9050601661229b8261316a565b6040516020016122ac929190614d9c565b6040516020818303038152906040529150505b919050565b6122cc612766565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638462151c846040518263ffffffff1660e01b815260040161236f919061372c565b600060405180830381865afa15801561238c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906123b59190614ea3565b9050600080600090505b825181101561242957601260008483815181106123df576123de614a94565b5b6020026020010151815260200190815260200160002060009054906101000a900460ff1661241657818061241290614bdd565b9250505b808061242190614bdd565b9150506123bf565b5060008167ffffffffffffffff81111561244657612445613cb5565b5b6040519080825280602002602001820160405280156124745781602001602082028036833780820191505090505b509050600080600090505b8451811015612523576012600086838151811061249f5761249e614a94565b5b6020026020010151815260200190815260200160002060009054906101000a900460ff16612510578481815181106124da576124d9614a94565b5b60200260200101518383815181106124f5576124f4614a94565b5b602002602001018181525050818061250c90614bdd565b9250505b808061251b90614bdd565b91505061247f565b5081945050505050919050565b60155481565b61253e612766565b80600d8190555050565b600581565b606481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6125ee612766565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126605760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612657919061372c565b60405180910390fd5b61266981612f6c565b50565b612674612766565b80600f8190555050565b612686612766565b601360009054906101000a900460ff16156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd90614481565b60405180910390fd5b8181601791826126e79291906146eb565b505050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061275f575061275e82613238565b5b9050919050565b61276e6132a2565b73ffffffffffffffffffffffffffffffffffffffff1661278c611df0565b73ffffffffffffffffffffffffffffffffffffffff16146127eb576127af6132a2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016127e2919061372c565b60405180910390fd5b565b60006127f7612d8c565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff16111561285c5781816040517f6f483d09000000000000000000000000000000000000000000000000000000008152600401612853929190614f1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128ce5760006040517fb6d9900a0000000000000000000000000000000000000000000000000000000081526004016128c5919061372c565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff16815250600960008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b60008161299a612b74565b11612a35576129a7612b79565b8211156129d1576129ca60046000848152602001908152602001600020546132aa565b9050612a36565b600054821015612a345760005b6000600460008581526020019081526020016000205491508103612a0d5782612a0690614f46565b92506129de565b60007c01000000000000000000000000000000000000000000000000000000008216149150505b5b5b919050565b8060005260046000fd5b6000612a5083611900565b9050818015612a9257508073ffffffffffffffffffffffffffffffffffffffff16612a79612ce1565b73ffffffffffffffffffffffffffffffffffffffff1614155b15612abe57612aa881612aa3612ce1565b612552565b612abd57612abc63cfb3b94260e01b612a3b565b5b5b836006600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b600090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b600081612bac612b74565b11612ca45760046000838152602001908152602001600020549050612bcf612b79565b821115612bf457612bdf816132aa565b612cb557612bf363df2d9b4260e01b612a3b565b5b60008103612c7b576000548210612c1657612c1563df2d9b4260e01b612a3b565b5b5b60046000836001900393508381526020019081526020016000205490506000810315612c765760007c010000000000000000000000000000000000000000000000000000000082160315612cb557612c7563df2d9b4260e01b612a3b565b5b612c17565b60007c010000000000000000000000000000000000000000000000000000000082160315612cb5575b612cb463df2d9b4260e01b612a3b565b5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612d4a8686846132eb565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000612710905090565b6002600c5403612dd2576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600c81905550565b60008054905060008203612dfb57612dfa63b562e8dd60e01b612a3b565b5b612e086000848385612d2d565b612e2883612e196000866000612d33565b612e22856132f4565b17612d5b565b6004600083815260200190815260200160002081905550600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff1616905060008103612ee057612edf632e07630060e01b612a3b565b5b600083830190506000839050612ef4612b79565b600183031115612f0f57612f0e6381647e3a60e01b612a3b565b5b5b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4818160010191508103612f105781600081905550505050612f5d6000848385612d86565b505050565b6001600c81905550565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905090565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613061612ce1565b8786866040518563ffffffff1660e01b81526004016130839493929190614fc4565b6020604051808303816000875af19250505080156130bf57506040513d601f19601f820116820180604052508101906130bc9190615025565b60015b613117573d80600081146130ef576040519150601f19603f3d011682016040523d82523d6000602084013e6130f4565b606091505b50600081510361310f5761310e63d1a57ed660e01b612a3b565b5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606000600161317984613304565b01905060008167ffffffffffffffff81111561319857613197613cb5565b5b6040519080825280601f01601f1916602001820160405280156131ca5781602001600182028036833780820191505090505b509050600082602083010190505b60011561322d578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816132215761322061400a565b5b049450600085036131d8575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b60007c0100000000000000000000000000000000000000000000000000000000821673ffffffffffffffffffffffffffffffffffffffff8316119050919050565b60009392505050565b60006001821460e11b9050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613362577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816133585761335761400a565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061339f576d04ee2d6d415b85acef810000000083816133955761339461400a565b5b0492506020810190505b662386f26fc1000083106133ce57662386f26fc1000083816133c4576133c361400a565b5b0492506010810190505b6305f5e10083106133f7576305f5e10083816133ed576133ec61400a565b5b0492506008810190505b612710831061341c5761271083816134125761341161400a565b5b0492506004810190505b6064831061343f57606483816134355761343461400a565b5b0492506002810190505b600a831061344e576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6134a08161346b565b81146134ab57600080fd5b50565b6000813590506134bd81613497565b92915050565b6000602082840312156134d9576134d8613461565b5b60006134e7848285016134ae565b91505092915050565b60008115159050919050565b613505816134f0565b82525050565b600060208201905061352060008301846134fc565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061355182613526565b9050919050565b61356181613546565b811461356c57600080fd5b50565b60008135905061357e81613558565b92915050565b60006bffffffffffffffffffffffff82169050919050565b6135a581613584565b81146135b057600080fd5b50565b6000813590506135c28161359c565b92915050565b600080604083850312156135df576135de613461565b5b60006135ed8582860161356f565b92505060206135fe858286016135b3565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613642578082015181840152602081019050613627565b60008484015250505050565b6000601f19601f8301169050919050565b600061366a82613608565b6136748185613613565b9350613684818560208601613624565b61368d8161364e565b840191505092915050565b600060208201905081810360008301526136b2818461365f565b905092915050565b6000819050919050565b6136cd816136ba565b81146136d857600080fd5b50565b6000813590506136ea816136c4565b92915050565b60006020828403121561370657613705613461565b5b6000613714848285016136db565b91505092915050565b61372681613546565b82525050565b6000602082019050613741600083018461371d565b92915050565b6000806040838503121561375e5761375d613461565b5b600061376c8582860161356f565b925050602061377d858286016136db565b9150509250929050565b6000819050919050565b61379a81613787565b81146137a557600080fd5b50565b6000813590506137b781613791565b92915050565b6000602082840312156137d3576137d2613461565b5b60006137e1848285016137a8565b91505092915050565b6000819050919050565b600061380f61380a61380584613526565b6137ea565b613526565b9050919050565b6000613821826137f4565b9050919050565b600061383382613816565b9050919050565b61384381613828565b82525050565b600060208201905061385e600083018461383a565b92915050565b61386d816136ba565b82525050565b60006020820190506138886000830184613864565b92915050565b6000806000606084860312156138a7576138a6613461565b5b60006138b58682870161356f565b93505060206138c68682870161356f565b92505060406138d7868287016136db565b9150509250925092565b600080604083850312156138f8576138f7613461565b5b6000613906858286016136db565b9250506020613917858286016136db565b9150509250929050565b6000604082019050613936600083018561371d565b6139436020830184613864565b9392505050565b6000602082840312156139605761395f613461565b5b600061396e8482850161356f565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261399c5761399b613977565b5b8235905067ffffffffffffffff8111156139b9576139b861397c565b5b6020830191508360018202830111156139d5576139d4613981565b5b9250929050565b600080602083850312156139f3576139f2613461565b5b600083013567ffffffffffffffff811115613a1157613a10613466565b5b613a1d85828601613986565b92509250509250929050565b6000613a3482613526565b9050919050565b613a4481613a29565b8114613a4f57600080fd5b50565b600081359050613a6181613a3b565b92915050565b600060208284031215613a7d57613a7c613461565b5b6000613a8b84828501613a52565b91505092915050565b613a9d816134f0565b8114613aa857600080fd5b50565b600081359050613aba81613a94565b92915050565b600060208284031215613ad657613ad5613461565b5b6000613ae484828501613aab565b91505092915050565b60008083601f840112613b0357613b02613977565b5b8235905067ffffffffffffffff811115613b2057613b1f61397c565b5b602083019150836020820283011115613b3c57613b3b613981565b5b9250929050565b60008060208385031215613b5a57613b59613461565b5b600083013567ffffffffffffffff811115613b7857613b77613466565b5b613b8485828601613aed565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bc5816136ba565b82525050565b6000613bd78383613bbc565b60208301905092915050565b6000602082019050919050565b6000613bfb82613b90565b613c058185613b9b565b9350613c1083613bac565b8060005b83811015613c41578151613c288882613bcb565b9750613c3383613be3565b925050600181019050613c14565b5085935050505092915050565b60006020820190508181036000830152613c688184613bf0565b905092915050565b60008060408385031215613c8757613c86613461565b5b6000613c958582860161356f565b9250506020613ca685828601613aab565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613ced8261364e565b810181811067ffffffffffffffff82111715613d0c57613d0b613cb5565b5b80604052505050565b6000613d1f613457565b9050613d2b8282613ce4565b919050565b600067ffffffffffffffff821115613d4b57613d4a613cb5565b5b613d548261364e565b9050602081019050919050565b82818337600083830152505050565b6000613d83613d7e84613d30565b613d15565b905082815260208101848484011115613d9f57613d9e613cb0565b5b613daa848285613d61565b509392505050565b600082601f830112613dc757613dc6613977565b5b8135613dd7848260208601613d70565b91505092915050565b60008060008060808587031215613dfa57613df9613461565b5b6000613e088782880161356f565b9450506020613e198782880161356f565b9350506040613e2a878288016136db565b925050606085013567ffffffffffffffff811115613e4b57613e4a613466565b5b613e5787828801613db2565b91505092959194509250565b613e6c81613787565b82525050565b6000602082019050613e876000830184613e63565b92915050565b60008060408385031215613ea457613ea3613461565b5b6000613eb28582860161356f565b9250506020613ec38582860161356f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f1457607f821691505b602082108103613f2757613f26613ecd565b5b50919050565b7f50726f76656e616e6365206c6f636b6564000000000000000000000000000000600082015250565b6000613f63601183613613565b9150613f6e82613f2d565b602082019050919050565b60006020820190508181036000830152613f9281613f56565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fd3826136ba565b9150613fde836136ba565b9250828202613fec816136ba565b9150828204841483151761400357614002613f99565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614044826136ba565b915061404f836136ba565b92508261405f5761405e61400a565b5b828204905092915050565b7f5075626c6963206d696e7420636c6f7365640000000000000000000000000000600082015250565b60006140a0601283613613565b91506140ab8261406a565b602082019050919050565b600060208201905081810360008301526140cf81614093565b9050919050565b7f5175616e7469747920726571756573746564206d757374206265203e20300000600082015250565b600061410c601e83613613565b9150614117826140d6565b602082019050919050565b6000602082019050818103600083015261413b816140ff565b9050919050565b600061414d826136ba565b9150614158836136ba565b92508282019050808211156141705761416f613f99565b5b92915050565b7f536f6c64206f7574000000000000000000000000000000000000000000000000600082015250565b60006141ac600883613613565b91506141b782614176565b602082019050919050565b600060208201905081810360008301526141db8161419f565b9050919050565b7f57616c6c65742063617000000000000000000000000000000000000000000000600082015250565b6000614218600a83613613565b9150614223826141e2565b602082019050919050565b600060208201905081810360008301526142478161420b565b9050919050565b7f496e73756666696369656e742045544800000000000000000000000000000000600082015250565b6000614284601083613613565b915061428f8261424e565b602082019050919050565b600060208201905081810360008301526142b381614277565b9050919050565b60006142c5826136ba565b91506142d0836136ba565b92508282039050818111156142e8576142e7613f99565b5b92915050565b600081905092915050565b50565b60006143096000836142ee565b9150614314826142f9565b600082019050919050565b600061432a826142fc565b9150819050919050565b7f526566756e64206661696c656400000000000000000000000000000000000000600082015250565b600061436a600d83613613565b915061437582614334565b602082019050919050565b600060208201905081810360008301526143998161435d565b9050919050565b60006040820190506143b56000830185613864565b6143c26020830184613864565b9392505050565b7f4e6f207265717565737400000000000000000000000000000000000000000000600082015250565b60006143ff600a83613613565b915061440a826143c9565b602082019050919050565b6000602082019050818103600083015261442e816143f2565b9050919050565b7f416c72656164792072657665616c656400000000000000000000000000000000600082015250565b600061446b601083613613565b915061447682614435565b602082019050919050565b6000602082019050818103600083015261449a8161445e565b9050919050565b7f426c6f636b686173682065787069726564000000000000000000000000000000600082015250565b60006144d7601183613613565b91506144e2826144a1565b602082019050919050565b60006020820190508181036000830152614506816144ca565b9050919050565b6000614518826136ba565b9150614523836136ba565b9250826145335761453261400a565b5b828206905092915050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026145ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261456e565b6145b5868361456e565b95508019841693508086168417925050509392505050565b60006145e86145e36145de846136ba565b6137ea565b6136ba565b9050919050565b6000819050919050565b614602836145cd565b61461661460e826145ef565b84845461457b565b825550505050565b600090565b61462b61461e565b6146368184846145f9565b505050565b5b8181101561465a5761464f600082614623565b60018101905061463c565b5050565b601f82111561469f5761467081614549565b6146798461455e565b81016020851015614688578190505b61469c6146948561455e565b83018261463b565b50505b505050565b600082821c905092915050565b60006146c2600019846008026146a4565b1980831691505092915050565b60006146db83836146b1565b9150826002028217905092915050565b6146f5838361453e565b67ffffffffffffffff81111561470e5761470d613cb5565b5b6147188254613efc565b61472382828561465e565b6000601f8311600181146147525760008415614740578287013590505b61474a85826146cf565b8655506147b2565b601f19841661476086614549565b60005b8281101561478857848901358255600182019150602085019450602081019050614763565b868310156147a557848901356147a1601f8916826146b1565b8355505b6001600288020188555050505b50505050505050565b60006147c78385613613565b93506147d4838584613d61565b6147dd8361364e565b840190509392505050565b600060208201905081810360008301526148038184866147bb565b90509392505050565b7f42616420746f0000000000000000000000000000000000000000000000000000600082015250565b6000614842600683613613565b915061484d8261480c565b602082019050919050565b6000602082019050818103600083015261487181614835565b9050919050565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b60006148ae600a83613613565b91506148b982614878565b602082019050919050565b600060208201905081810360008301526148dd816148a1565b9050919050565b7f5769746864726177206661696c65640000000000000000000000000000000000600082015250565b600061491a600f83613613565b9150614925826148e4565b602082019050919050565b600060208201905081810360008301526149498161490d565b9050919050565b7f4c6f636b65642061667465722072657665616c00000000000000000000000000600082015250565b6000614986601383613613565b915061499182614950565b602082019050919050565b600060208201905081810360008301526149b581614979565b9050919050565b7f4e6f20746f6b656e496473000000000000000000000000000000000000000000600082015250565b60006149f2600b83613613565b91506149fd826149bc565b602082019050919050565b60006020820190508181036000830152614a21816149e5565b9050919050565b7f4578636565647320737570706c79000000000000000000000000000000000000600082015250565b6000614a5e600e83613613565b9150614a6982614a28565b602082019050919050565b60006020820190508181036000830152614a8d81614a51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614ad281613558565b92915050565b600060208284031215614aee57614aed613461565b5b6000614afc84828501614ac3565b91505092915050565b7f4e6f74206f776e6572206f662070617373000000000000000000000000000000600082015250565b6000614b3b601183613613565b9150614b4682614b05565b602082019050919050565b60006020820190508181036000830152614b6a81614b2e565b9050919050565b7f5061737320616c726561647920636c61696d6564000000000000000000000000600082015250565b6000614ba7601483613613565b9150614bb282614b71565b602082019050919050565b60006020820190508181036000830152614bd681614b9a565b9050919050565b6000614be8826136ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c1a57614c19613f99565b5b600182019050919050565b7f416c726561647920726571756573746564000000000000000000000000000000600082015250565b6000614c5b601183613613565b9150614c6682614c25565b602082019050919050565b60006020820190508181036000830152614c8a81614c4e565b9050919050565b600081905092915050565b60008154614ca981613efc565b614cb38186614c91565b94506001821660008114614cce5760018114614ce357614d16565b60ff1983168652811515820286019350614d16565b614cec85614549565b60005b83811015614d0e57815481890152600182019150602081019050614cef565b838801955050505b50505092915050565b6000614d2a82613608565b614d348185614c91565b9350614d44818560208601613624565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000614d86600583614c91565b9150614d9182614d50565b600582019050919050565b6000614da88285614c9c565b9150614db48284614d1f565b9150614dbf82614d79565b91508190509392505050565b600067ffffffffffffffff821115614de657614de5613cb5565b5b602082029050602081019050919050565b600081519050614e06816136c4565b92915050565b6000614e1f614e1a84614dcb565b613d15565b90508083825260208201905060208402830185811115614e4257614e41613981565b5b835b81811015614e6b5780614e578882614df7565b845260208401935050602081019050614e44565b5050509392505050565b600082601f830112614e8a57614e89613977565b5b8151614e9a848260208601614e0c565b91505092915050565b600060208284031215614eb957614eb8613461565b5b600082015167ffffffffffffffff811115614ed757614ed6613466565b5b614ee384828501614e75565b91505092915050565b6000614f07614f02614efd84613584565b6137ea565b6136ba565b9050919050565b614f1781614eec565b82525050565b6000604082019050614f326000830185614f0e565b614f3f6020830184613864565b9392505050565b6000614f51826136ba565b915060008203614f6457614f63613f99565b5b600182039050919050565b600081519050919050565b600082825260208201905092915050565b6000614f9682614f6f565b614fa08185614f7a565b9350614fb0818560208601613624565b614fb98161364e565b840191505092915050565b6000608082019050614fd9600083018761371d565b614fe6602083018661371d565b614ff36040830185613864565b81810360608301526150058184614f8b565b905095945050505050565b60008151905061501f81613497565b92915050565b60006020828403121561503b5761503a613461565b5b600061504984828501615010565b9150509291505056fea2646970667358221220fdb86a030fe46dd3edc118895fe98c87ba74af2d01e7266530e2c5879a05aa8664736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000052d9bc3e126bdf965934872a11547a721a0e86710000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c1ca6960f0ae69a15f2ff6a91f0a5d03dd37c92200000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000055a6574617300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055a455441530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043697066733a2f2f6261666b726569683267786362636b3267673469766c726b6f716370756877766f626b626b6f667069706a723774666568676d646566347a6563612f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000