0 txs
0 calls
constructor
constructor(address christTokenAddress, address svgGeneratorAddress)
functions
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
christToken
viewfunction christToken() view returns (address)
hasClaimed
viewfunction hasClaimed(address, uint256) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
seasonalGreetings
viewfunction seasonalGreetings(uint256) view returns (string)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
svgGenerator
viewfunction svgGenerator() view returns (address)
TOTAL_DAYS
viewfunction TOTAL_DAYS() view returns (uint256)
uri
viewfunction uri(uint256 tokenId) view returns (string)
claim
nonpayablefunction claim(uint256 day)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] values, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes data)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setSVGGenerator
nonpayablefunction setSVGGenerator(address newGenerator)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateSeasonalGreeting
nonpayablefunction updateSeasonalGreeting(uint256 day, string greeting)
events
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
Claimed
event Claimed(address indexed claimer, uint256 indexed day, uint256 tokenId)
ContractPaused
event ContractPaused(address indexed account)
ContractUnpaused
event ContractUnpaused(address indexed account)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SeasonalGreetingsUpdated
event SeasonalGreetingsUpdated(uint256 indexed day, string greeting)
SVGGeneratorUpdated
event SVGGeneratorUpdated(address indexed newGenerator)
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
TransferSingle
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)
URI
event URI(string value, uint256 indexed id)
errors
ERC1155InsufficientBalance
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId)
ERC1155InvalidApprover
error ERC1155InvalidApprover(address approver)
ERC1155InvalidArrayLength
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength)
ERC1155InvalidOperator
error ERC1155InvalidOperator(address operator)
ERC1155InvalidReceiver
error ERC1155InvalidReceiver(address receiver)
ERC1155InvalidSender
error ERC1155InvalidSender(address sender)
ERC1155MissingApprovalForAll
error ERC1155MissingApprovalForAll(address operator, address owner)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60806040525f60215f6101000a81548160ff021916908315150217905550348015610028575f80fd5b50604051614eef380380614eef833981810160405281019061004a91906106e8565b3360405180602001604052805f8152506100698161026360201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100da575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100d19190610735565b60405180910390fd5b6100e98161027660201b60201c565b5060016004819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610160576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610157906107a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c590610810565b60405180910390fd5b8160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061025c61033960201b60201c565b5050610b64565b80600290816102729190610a68565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051806103200160405280604051806080016040528060468152602001614d856046913981526020016040518060800160405280604c8152602001614bef604c913981526020016040518060600160405280602d8152602001614d58602d91398152602001604051806080016040528060458152602001614a8c6045913981526020016040518060600160405280603a815260200161494c603a913981526020016040518060600160405280603c8152602001614ad1603c91398152602001604051806080016040528060418152602001614dcb604191398152602001604051806060016040528060358152602001614bba6035913981526020016040518060600160405280603a8152602001614b0d603a91398152602001604051806060016040528060408152602001614cda6040913981526020016040518060600160405280603e8152602001614b47603e913981526020016040518060600160405280603e8152602001614d1a603e91398152602001604051806060016040528060358152602001614b856035913981526020016040518060600160405280603e8152602001614c9c603e91398152602001604051806060016040528060408152602001614e0c6040913981526020016040518060600160405280603a8152602001614a16603a913981526020016040518060600160405280603581526020016149e16035913981526020016040518060600160405280602d8152602001614c3b602d913981526020016040518060600160405280603581526020016149ac603591398152602001604051806060016040528060398152602001614eb6603991398152602001604051806060016040528060348152602001614c68603491398152602001604051806060016040528060368152602001614e4c603691398152602001604051806060016040528060268152602001614986602691398152602001604051806060016040528060348152602001614e826034913981526020016040518060600160405280603c8152602001614a50603c913981525090505f5b60198110156106865781816019811061065257610651610b37565b5b60200201516008826019811061066b5761066a610b37565b5b0190816106789190610a68565b508080600101915050610636565b5050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106b78261068e565b9050919050565b6106c7816106ad565b81146106d1575f80fd5b50565b5f815190506106e2816106be565b92915050565b5f80604083850312156106fe576106fd61068a565b5b5f61070b858286016106d4565b925050602061071c858286016106d4565b9150509250929050565b61072f816106ad565b82525050565b5f6020820190506107485f830184610726565b92915050565b5f82825260208201905092915050565b7f496e76616c69642043687269737420746f6b656e2061646472657373000000005f82015250565b5f610792601c8361074e565b915061079d8261075e565b602082019050919050565b5f6020820190508181035f8301526107bf81610786565b9050919050565b7f496e76616c6964205356472067656e657261746f7220616464726573730000005f82015250565b5f6107fa601d8361074e565b9150610805826107c6565b602082019050919050565b5f6020820190508181035f830152610827816107ee565b9050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806108a957607f821691505b6020821081036108bc576108bb610865565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826108e3565b61092886836108e3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61096c61096761096284610940565b610949565b610940565b9050919050565b5f819050919050565b61098583610952565b61099961099182610973565b8484546108ef565b825550505050565b5f90565b6109ad6109a1565b6109b881848461097c565b505050565b5b818110156109db576109d05f826109a5565b6001810190506109be565b5050565b601f821115610a20576109f1816108c2565b6109fa846108d4565b81016020851015610a09578190505b610a1d610a15856108d4565b8301826109bd565b50505b505050565b5f82821c905092915050565b5f610a405f1984600802610a25565b1980831691505092915050565b5f610a588383610a31565b9150826002028217905092915050565b610a718261082e565b67ffffffffffffffff811115610a8a57610a89610838565b5b610a948254610892565b610a9f8282856109df565b5f60209050601f831160018114610ad0575f8415610abe578287015190505b610ac88582610a4d565b865550610b2f565b601f198416610ade866108c2565b5f5b82811015610b0557848901518255600182019150602085019450602081019050610ae0565b86831015610b225784890151610b1e601f891682610a31565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b613ddb80610b715f395ff3fe608060405234801561000f575f80fd5b506004361061013f575f3560e01c8063715018a6116100b6578063b222c9e41161007a578063b222c9e41461033b578063b293109614610357578063b3a0f37d14610387578063e985e9c5146103a3578063f242432a146103d3578063f2fde38b146103ef5761013f565b8063715018a6146102cf5780638456cb59146102d95780638baea60a146102e35780638da5cb5b14610301578063a22cb4651461031f5761013f565b806339c03d741161010857806339c03d741461020b5780633f4ba83a1461023b5780634e1273f41461024557806357980a43146102755780635c975abb146102935780636d6060f5146102b15761013f565b8062fdd58e1461014357806301ffc9a7146101735780630e89341c146101a35780632eb2c2d6146101d3578063379607f5146101ef575b5f80fd5b61015d60048036038101906101589190612403565b61040b565b60405161016a9190612450565b60405180910390f35b61018d600480360381019061018891906124be565b610460565b60405161019a9190612503565b60405180910390f35b6101bd60048036038101906101b8919061251c565b610541565b6040516101ca91906125b7565b60405180910390f35b6101ed60048036038101906101e891906127c7565b6107e3565b005b6102096004803603810190610204919061251c565b61088a565b005b6102256004803603810190610220919061251c565b610b7e565b60405161023291906125b7565b60405180910390f35b610243610c1d565b005b61025f600480360381019061025a9190612952565b610c83565b60405161026c9190612a7f565b60405180910390f35b61027d610d8a565b60405161028a9190612450565b60405180910390f35b61029b610d8f565b6040516102a89190612503565b60405180910390f35b6102b9610da1565b6040516102c69190612afa565b60405180910390f35b6102d7610dc6565b005b6102e1610dd9565b005b6102eb610e40565b6040516102f89190612b33565b60405180910390f35b610309610e65565b6040516103169190612b5b565b60405180910390f35b61033960048036038101906103349190612b9e565b610e8d565b005b61035560048036038101906103509190612c7a565b610ea3565b005b610371600480360381019061036c9190612403565b610faa565b60405161037e9190612503565b60405180910390f35b6103a1600480360381019061039c9190612cd4565b610fd4565b005b6103bd60048036038101906103b89190612cff565b6110d0565b6040516103ca9190612503565b60405180910390f35b6103ed60048036038101906103e89190612d3d565b61115e565b005b61040960048036038101906104049190612cd4565b611205565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061053a575061053982611289565b5b9050919050565b606060018210158015610555575060198211155b610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90612e1a565b60405180910390fd5b5f60086001846105a49190612e65565b601981106105b5576105b4612e98565b5b0180546105c190612ef2565b80601f01602080910402602001604051908101604052809291908181526020018280546105ed90612ef2565b80156106385780601f1061060f57610100808354040283529160200191610638565b820191905f5260205f20905b81548152906001019060200180831161061b57829003601f168201915b505050505090505f610649846112f2565b6040516020016106599190612fa6565b60405160208183030381529060405290505f8442336040516020016106809392919061302c565b604051602081830303815290604052805190602001205f1c90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fb1e7608585856040518463ffffffff1660e01b81526004016106f993929190613068565b5f60405180830381865afa158015610713573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061073b9190613119565b90505f6107478261144b565b60405160200161075791906131aa565b60405160208183030381529060405290505f610772886112f2565b61077b896112f2565b836107858b6112f2565b60405160200161079894939291906133af565b60405160208183030381529060405290505f6107b38261144b565b6040516020016107c3919061346d565b604051602081830303815290604052905080975050505050505050919050565b5f6107ec6115d3565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610831575061082f86826110d0565b155b156108755780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161086c92919061348e565b60405180910390fd5b61088286868686866115da565b505050505050565b6108926116ce565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016108ed9190612b5b565b602060405180830381865afa158015610908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092c91906134c9565b1161096c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109639061353e565b60405180910390fd5b60215f9054906101000a900460ff16156109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b2906135a6565b60405180910390fd5b600181101580156109cd575060198111155b610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a039061360e565b60405180910390fd5b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f205f9054906101000a900460ff1615610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c90613676565b60405180910390fd5b600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550610b243382600160405180602001604052805f81525061171d565b803373ffffffffffffffffffffffffffffffffffffffff167f987d620f307ff6b94d58743cb7a7509f24071586a77759b77c2d4e29f75a2f9a83604051610b6b9190612450565b60405180910390a3610b7b6117b2565b50565b60088160198110610b8d575f80fd5b015f915090508054610b9e90612ef2565b80601f0160208091040260200160405190810160405280929190818152602001828054610bca90612ef2565b8015610c155780601f10610bec57610100808354040283529160200191610c15565b820191905f5260205f20905b815481529060010190602001808311610bf857829003601f168201915b505050505081565b610c256117bc565b5f60215f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f5b65b0c1363b3003db9bcc5e1fd8805a6d6bf5bf6dc9d3431ee4494cd7d1176660405160405180910390a2565b60608151835114610ccf57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610cc6929190613694565b60405180910390fd5b5f835167ffffffffffffffff811115610ceb57610cea6125db565b5b604051908082528060200260200182016040528015610d195781602001602082028036833780820191505090505b5090505f5b8451811015610d7f57610d55610d3d828761184390919063ffffffff16565b610d50838761185690919063ffffffff16565b61040b565b828281518110610d6857610d67612e98565b5b602002602001018181525050806001019050610d1e565b508091505092915050565b601981565b60215f9054906101000a900460ff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dce6117bc565b610dd75f611869565b565b610de16117bc565b600160215f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f81990fd9a5c552b8e3677917d8a03c07678f0d2cb68f88b634aca2022e9bd19f60405160405180910390a2565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e9f610e986115d3565b838361192c565b5050565b610eab6117bc565b60018210158015610ebd575060198211155b610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef39061360e565b60405180910390fd5b5f815111610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3690613705565b60405180910390fd5b806008600184610f4f9190612e65565b60198110610f6057610f5f612e98565b5b019081610f6d91906138b7565b50817f2c881f99fde5a1598df2de54aef259d7f03d65b8d57497d81bf9c7e5488f054382604051610f9e91906125b7565b60405180910390a25050565b6007602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b610fdc6117bc565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361104a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611041906139d0565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f31f0181b0d2d712e1ebecab98b9c8368abe70c4be2609c828f4d67ab5d09f17a60405160405180910390a250565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f6111676115d3565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156111ac57506111aa86826110d0565b155b156111f05780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016111e792919061348e565b60405180910390fd5b6111fd8686868686611a95565b505050505050565b61120d6117bc565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361127d575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016112749190612b5b565b60405180910390fd5b61128681611869565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60605f8203611338576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611446565b5f8290505f5b5f8214611367578080611350906139ee565b915050600a826113609190613a62565b915061133e565b5f8167ffffffffffffffff811115611382576113816125db565b5b6040519080825280601f01601f1916602001820160405280156113b45781602001600182028036833780820191505090505b5090505b5f851461143f576001826113cc9190612e65565b9150600a856113db9190613a92565b60306113e79190613ac2565b60f81b8183815181106113fd576113fc612e98565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856114389190613a62565b94506113b8565b8093505050505b919050565b60605f604051806060016040528060408152602001613d666040913990505f835190505f810361148d5760405180602001604052805f815250925050506115ce565b5f600360028361149d9190613ac2565b6114a79190613a62565b60046114b39190613af5565b90505f6020826114c39190613ac2565b67ffffffffffffffff8111156114dc576114db6125db565b5b6040519080825280601f01601f19166020018201604052801561150e5781602001600182028036833780820191505090505b50905060018401602082015f5b8581101561158b5760038101905062ffffff818a015116603f8160121c168401518060081b9050603f82600c1c16850151810190508060081b9050603f8260061c16850151810190508060081b9050603f8216850151810190508060e01b9050808452600484019350505061151b565b5060038506600181146115a557600281146115b5576115c0565b613d3d60f01b60028303526115c0565b603d60f81b60018303525b508383525050809450505050505b919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361164a575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016116419190612b5b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036116ba575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016116b19190612b5b565b60405180910390fd5b6116c78585858585611b9b565b5050505050565b600260045403611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a90613b80565b60405180910390fd5b6002600481905550565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361178d575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117849190612b5b565b60405180910390fd5b5f806117998585611c47565b915091506117aa5f87848487611b9b565b505050505050565b6001600481905550565b6117c46115d3565b73ffffffffffffffffffffffffffffffffffffffff166117e2610e65565b73ffffffffffffffffffffffffffffffffffffffff1614611841576118056115d3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016118389190612b5b565b60405180910390fd5b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361199c575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016119939190612b5b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611a889190612503565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b05575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611afc9190612b5b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b75575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611b6c9190612b5b565b60405180910390fd5b5f80611b818585611c47565b91509150611b928787848487611b9b565b50505050505050565b611ba785858585611c77565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611c40575f611be36115d3565b90506001845103611c2f575f611c025f8661185690919063ffffffff16565b90505f611c185f8661185690919063ffffffff16565b9050611c28838989858589612007565b5050611c3e565b611c3d8187878787876121b6565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b8051825114611cc157815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611cb8929190613694565b60405180910390fd5b5f611cca6115d3565b90505f5b8351811015611ec6575f611ceb828661185690919063ffffffff16565b90505f611d01838661185690919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611e24575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611dd057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611dc79493929190613b9e565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611eb957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611eb19190613ac2565b925050819055505b5050806001019050611cce565b506001835103611f81575f611ee45f8561185690919063ffffffff16565b90505f611efa5f8561185690919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611f72929190613694565b60405180910390a45050612000565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611ff7929190613be1565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156121ae578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612067959493929190613c68565b6020604051808303815f875af19250505080156120a257506040513d601f19601f8201168201806040525081019061209f9190613cd4565b60015b612123573d805f81146120d0576040519150601f19603f3d011682016040523d82523d5f602084013e6120d5565b606091505b505f81510361211b57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016121129190612b5b565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146121ac57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016121a39190612b5b565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561235d578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612216959493929190613cff565b6020604051808303815f875af192505050801561225157506040513d601f19601f8201168201806040525081019061224e9190613cd4565b60015b6122d2573d805f811461227f576040519150601f19603f3d011682016040523d82523d5f602084013e612284565b606091505b505f8151036122ca57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016122c19190612b5b565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461235b57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016123529190612b5b565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61239f82612376565b9050919050565b6123af81612395565b81146123b9575f80fd5b50565b5f813590506123ca816123a6565b92915050565b5f819050919050565b6123e2816123d0565b81146123ec575f80fd5b50565b5f813590506123fd816123d9565b92915050565b5f80604083850312156124195761241861236e565b5b5f612426858286016123bc565b9250506020612437858286016123ef565b9150509250929050565b61244a816123d0565b82525050565b5f6020820190506124635f830184612441565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61249d81612469565b81146124a7575f80fd5b50565b5f813590506124b881612494565b92915050565b5f602082840312156124d3576124d261236e565b5b5f6124e0848285016124aa565b91505092915050565b5f8115159050919050565b6124fd816124e9565b82525050565b5f6020820190506125165f8301846124f4565b92915050565b5f602082840312156125315761253061236e565b5b5f61253e848285016123ef565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61258982612547565b6125938185612551565b93506125a3818560208601612561565b6125ac8161256f565b840191505092915050565b5f6020820190508181035f8301526125cf818461257f565b905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126118261256f565b810181811067ffffffffffffffff821117156126305761262f6125db565b5b80604052505050565b5f612642612365565b905061264e8282612608565b919050565b5f67ffffffffffffffff82111561266d5761266c6125db565b5b602082029050602081019050919050565b5f80fd5b5f61269461268f84612653565b612639565b905080838252602082019050602084028301858111156126b7576126b661267e565b5b835b818110156126e057806126cc88826123ef565b8452602084019350506020810190506126b9565b5050509392505050565b5f82601f8301126126fe576126fd6125d7565b5b813561270e848260208601612682565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115612735576127346125db565b5b61273e8261256f565b9050602081019050919050565b828183375f83830152505050565b5f61276b6127668461271b565b612639565b90508281526020810184848401111561278757612786612717565b5b61279284828561274b565b509392505050565b5f82601f8301126127ae576127ad6125d7565b5b81356127be848260208601612759565b91505092915050565b5f805f805f60a086880312156127e0576127df61236e565b5b5f6127ed888289016123bc565b95505060206127fe888289016123bc565b945050604086013567ffffffffffffffff81111561281f5761281e612372565b5b61282b888289016126ea565b935050606086013567ffffffffffffffff81111561284c5761284b612372565b5b612858888289016126ea565b925050608086013567ffffffffffffffff81111561287957612878612372565b5b6128858882890161279a565b9150509295509295909350565b5f67ffffffffffffffff8211156128ac576128ab6125db565b5b602082029050602081019050919050565b5f6128cf6128ca84612892565b612639565b905080838252602082019050602084028301858111156128f2576128f161267e565b5b835b8181101561291b578061290788826123bc565b8452602084019350506020810190506128f4565b5050509392505050565b5f82601f830112612939576129386125d7565b5b81356129498482602086016128bd565b91505092915050565b5f80604083850312156129685761296761236e565b5b5f83013567ffffffffffffffff81111561298557612984612372565b5b61299185828601612925565b925050602083013567ffffffffffffffff8111156129b2576129b1612372565b5b6129be858286016126ea565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6129fa816123d0565b82525050565b5f612a0b83836129f1565b60208301905092915050565b5f602082019050919050565b5f612a2d826129c8565b612a3781856129d2565b9350612a42836129e2565b805f5b83811015612a72578151612a598882612a00565b9750612a6483612a17565b925050600181019050612a45565b5085935050505092915050565b5f6020820190508181035f830152612a978184612a23565b905092915050565b5f819050919050565b5f612ac2612abd612ab884612376565b612a9f565b612376565b9050919050565b5f612ad382612aa8565b9050919050565b5f612ae482612ac9565b9050919050565b612af481612ada565b82525050565b5f602082019050612b0d5f830184612aeb565b92915050565b5f612b1d82612ac9565b9050919050565b612b2d81612b13565b82525050565b5f602082019050612b465f830184612b24565b92915050565b612b5581612395565b82525050565b5f602082019050612b6e5f830184612b4c565b92915050565b612b7d816124e9565b8114612b87575f80fd5b50565b5f81359050612b9881612b74565b92915050565b5f8060408385031215612bb457612bb361236e565b5b5f612bc1858286016123bc565b9250506020612bd285828601612b8a565b9150509250929050565b5f67ffffffffffffffff821115612bf657612bf56125db565b5b612bff8261256f565b9050602081019050919050565b5f612c1e612c1984612bdc565b612639565b905082815260208101848484011115612c3a57612c39612717565b5b612c4584828561274b565b509392505050565b5f82601f830112612c6157612c606125d7565b5b8135612c71848260208601612c0c565b91505092915050565b5f8060408385031215612c9057612c8f61236e565b5b5f612c9d858286016123ef565b925050602083013567ffffffffffffffff811115612cbe57612cbd612372565b5b612cca85828601612c4d565b9150509250929050565b5f60208284031215612ce957612ce861236e565b5b5f612cf6848285016123bc565b91505092915050565b5f8060408385031215612d1557612d1461236e565b5b5f612d22858286016123bc565b9250506020612d33858286016123bc565b9150509250929050565b5f805f805f60a08688031215612d5657612d5561236e565b5b5f612d63888289016123bc565b9550506020612d74888289016123bc565b9450506040612d85888289016123ef565b9350506060612d96888289016123ef565b925050608086013567ffffffffffffffff811115612db757612db6612372565b5b612dc38882890161279a565b9150509295509295909350565b7f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e005f82015250565b5f612e04601f83612551565b9150612e0f82612dd0565b602082019050919050565b5f6020820190508181035f830152612e3181612df8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e6f826123d0565b9150612e7a836123d0565b9250828203905081811115612e9257612e91612e38565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f0957607f821691505b602082108103612f1c57612f1b612ec5565b5b50919050565b5f81905092915050565b7f4368726973746d617320446179200000000000000000000000000000000000005f82015250565b5f612f60600e83612f22565b9150612f6b82612f2c565b600e82019050919050565b5f612f8082612547565b612f8a8185612f22565b9350612f9a818560208601612561565b80840191505092915050565b5f612fb082612f54565b9150612fbc8284612f76565b915081905092915050565b5f819050919050565b612fe1612fdc826123d0565b612fc7565b82525050565b5f8160601b9050919050565b5f612ffd82612fe7565b9050919050565b5f61300e82612ff3565b9050919050565b61302661302182612395565b613004565b82525050565b5f6130378286612fd0565b6020820191506130478285612fd0565b6020820191506130578284613015565b601482019150819050949350505050565b5f6060820190508181035f830152613080818661257f565b90508181036020830152613094818561257f565b90506130a36040830184612441565b949350505050565b5f6130bd6130b884612bdc565b612639565b9050828152602081018484840111156130d9576130d8612717565b5b6130e4848285612561565b509392505050565b5f82601f830112613100576130ff6125d7565b5b81516131108482602086016130ab565b91505092915050565b5f6020828403121561312e5761312d61236e565b5b5f82015167ffffffffffffffff81111561314b5761314a612372565b5b613157848285016130ec565b91505092915050565b7f646174613a696d6167652f7376672b786d6c3b6261736536342c0000000000005f82015250565b5f613194601a83612f22565b915061319f82613160565b601a82019050919050565b5f6131b482613188565b91506131c08284612f76565b915081905092915050565b7f7b226e616d65223a20224368726973746d617320416476656e742044617920005f82015250565b5f6131ff601f83612f22565b915061320a826131cb565b601f82019050919050565b7f222c20226465736372697074696f6e223a202241207370656369616c204368725f8201527f6973746d617320416476656e742043616c656e64617220746f6b656e20666f7260208201527f2064617920000000000000000000000000000000000000000000000000000000604082015250565b5f613295604583612f22565b91506132a082613215565b604582019050919050565b7f2e222c2022696d616765223a20220000000000000000000000000000000000005f82015250565b5f6132df600e83612f22565b91506132ea826132ab565b600e82019050919050565b7f222c202261747472696275746573223a205b7b2274726169745f74797065223a5f8201527f2022446179222c202276616c7565223a20000000000000000000000000000000602082015250565b5f61334f603183612f22565b915061335a826132f5565b603182019050919050565b7f7d5d7d00000000000000000000000000000000000000000000000000000000005f82015250565b5f613399600383612f22565b91506133a482613365565b600382019050919050565b5f6133b9826131f3565b91506133c58287612f76565b91506133d082613289565b91506133dc8286612f76565b91506133e7826132d3565b91506133f38285612f76565b91506133fe82613343565b915061340a8284612f76565b91506134158261338d565b915081905095945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000005f82015250565b5f613457601d83612f22565b915061346282613423565b601d82019050919050565b5f6134778261344b565b91506134838284612f76565b915081905092915050565b5f6040820190506134a15f830185612b4c565b6134ae6020830184612b4c565b9392505050565b5f815190506134c3816123d9565b92915050565b5f602082840312156134de576134dd61236e565b5b5f6134eb848285016134b5565b91505092915050565b7f4d75737420686f6c642043687269737420746f6b656e7320746f20636c61696d5f82015250565b5f613528602083612551565b9150613533826134f4565b602082019050919050565b5f6020820190508181035f8301526135558161351c565b9050919050565b7f436f6e74726163742069732070617573656400000000000000000000000000005f82015250565b5f613590601283612551565b915061359b8261355c565b602082019050919050565b5f6020820190508181035f8301526135bd81613584565b9050919050565b7f496e76616c6964206461790000000000000000000000000000000000000000005f82015250565b5f6135f8600b83612551565b9150613603826135c4565b602082019050919050565b5f6020820190508181035f830152613625816135ec565b9050919050565b7f416c726561647920636c61696d656420666f72207468697320646179000000005f82015250565b5f613660601c83612551565b915061366b8261362c565b602082019050919050565b5f6020820190508181035f83015261368d81613654565b9050919050565b5f6040820190506136a75f830185612441565b6136b46020830184612441565b9392505050565b7f4772656574696e672063616e6e6f7420626520656d70747900000000000000005f82015250565b5f6136ef601883612551565b91506136fa826136bb565b602082019050919050565b5f6020820190508181035f83015261371c816136e3565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261377f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613744565b6137898683613744565b95508019841693508086168417925050509392505050565b5f6137bb6137b66137b1846123d0565b612a9f565b6123d0565b9050919050565b5f819050919050565b6137d4836137a1565b6137e86137e0826137c2565b848454613750565b825550505050565b5f90565b6137fc6137f0565b6138078184846137cb565b505050565b5b8181101561382a5761381f5f826137f4565b60018101905061380d565b5050565b601f82111561386f5761384081613723565b61384984613735565b81016020851015613858578190505b61386c61386485613735565b83018261380c565b50505b505050565b5f82821c905092915050565b5f61388f5f1984600802613874565b1980831691505092915050565b5f6138a78383613880565b9150826002028217905092915050565b6138c082612547565b67ffffffffffffffff8111156138d9576138d86125db565b5b6138e38254612ef2565b6138ee82828561382e565b5f60209050601f83116001811461391f575f841561390d578287015190505b613917858261389c565b86555061397e565b601f19841661392d86613723565b5f5b828110156139545784890151825560018201915060208501945060208101905061392f565b86831015613971578489015161396d601f891682613880565b8355505b6001600288020188555050505b505050505050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f6139ba600f83612551565b91506139c582613986565b602082019050919050565b5f6020820190508181035f8301526139e7816139ae565b9050919050565b5f6139f8826123d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a2a57613a29612e38565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a6c826123d0565b9150613a77836123d0565b925082613a8757613a86613a35565b5b828204905092915050565b5f613a9c826123d0565b9150613aa7836123d0565b925082613ab757613ab6613a35565b5b828206905092915050565b5f613acc826123d0565b9150613ad7836123d0565b9250828201905080821115613aef57613aee612e38565b5b92915050565b5f613aff826123d0565b9150613b0a836123d0565b9250828202613b18816123d0565b91508282048414831517613b2f57613b2e612e38565b5b5092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f613b6a601f83612551565b9150613b7582613b36565b602082019050919050565b5f6020820190508181035f830152613b9781613b5e565b9050919050565b5f608082019050613bb15f830187612b4c565b613bbe6020830186612441565b613bcb6040830185612441565b613bd86060830184612441565b95945050505050565b5f6040820190508181035f830152613bf98185612a23565b90508181036020830152613c0d8184612a23565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f613c3a82613c16565b613c448185613c20565b9350613c54818560208601612561565b613c5d8161256f565b840191505092915050565b5f60a082019050613c7b5f830188612b4c565b613c886020830187612b4c565b613c956040830186612441565b613ca26060830185612441565b8181036080830152613cb48184613c30565b90509695505050505050565b5f81519050613cce81612494565b92915050565b5f60208284031215613ce957613ce861236e565b5b5f613cf684828501613cc0565b91505092915050565b5f60a082019050613d125f830188612b4c565b613d1f6020830187612b4c565b8181036040830152613d318186612a23565b90508181036060830152613d458185612a23565b90508181036080830152613d598184613c30565b9050969550505050505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220b9e23ccd9e9216df683cdb25d712eea70088cc5fd3899c4049554d89479fcfb864736f6c634300081a003344617920353a204d617920796f75722064617973206265206d657272792c206272696768742c20616e6420244348524953542d6675656c6564214461792032333a205477696e6b6c65207477696e6b6c652c20244348524953542073746172214461792031393a204d617920796f75722024434852495354206272696e6720796f75206a6f792064617920616e64206e69676874214461792031373a204465636b207468652068616c6c732077697468202443485249535420616e64206a6f796f75732063616c6c73214461792031363a20427269616e27732073756363657373206973206e6f20736563726574202443485249535420697320796f75727320746f6f214461792032353a204d65727279204368726973746d617321204c6574202443485249535420746f6b656e73206272696e6720796f752063686565722144617920343a2057697368696e6720796f75206120424153452d746173746963204368726973746d61732066696c6c6564207769746820244348524953542063686565722144617920363a20446f6e27742062652061204772696e636820636c61696d20796f7572202443485249535420616476656e742073757270726973652144617920393a2053656e64696e67202443485249535420766962657320796f7572207761792074686973206665737469766520736561736f6e214461792031313a204576656e20427269616e206b6e6f7773202443485249535420697320746865207265616c2067696674207468697320736561736f6e214461792031333a204b656570206974206a6f6c6c792077697468202443485249535420616e64206665737469766520666f6c6c792144617920383a20556e7772617020796f7572202443485249535420746f6b656e20616e6420756e7772617020736f6d65206a6f792144617920323a2052656d656d6265722c206576656e20427269616e2041726d7374726f6e672063616e2774206869646520686973207375636365737320756e646572207468617420686174214461792031383a20486f20486f20486f6c6420796f7572202443485249535420746f6b656e73207469676874214461792032313a204d6179202443485249535420746f6b656e73206d616b6520796f7572207370697269747320627269676874214461792031343a204d617920796f757220244348524953542062616c616e63652062652061732066756c6c2061732053616e7461277320736c65696768214461792031303a204d617920796f7572202443485249535420686f6c64696e67732067726f7720617320796f757220686f6c69646179206a6f7920646f6573214461792031323a204c6574202443485249535420746f6b656e732061646420737061726b6c6520746f20796f7572204368726973746d617320747265652144617920333a204b6565702063616c6d20616e6420686f6c6420796f757220244348524953542074696768742144617920313a204d617920796f7572202443485249535420746f6b656e73207368696e652061732062726967687420617320796f757220686f6c69646179207370697269742144617920373a20427269616e27732062616c642068656164207265666c656374732074686520627269676874206c6967687473206f66204368726973746d6173214461792031353a2043686565727320746f206120244348524953542d66696c6c656420686f6c69646179207769746820667269656e647320616e642066756e214461792032323a20536c6569676820796f7572206461792077697468202443485249535420616e6420686f6c6964617920706c6179214461792032343a20416c6d6f737420746865726521204b65657020796f7572202443485249535420746f6b656e73206e656172214461792032303a20526f636b2061726f756e6420746865204368726973746d617320747265652077697468202443485249535420676c656521000000000000000000000000121837a9a7fd24644da6b297105bd3119dc03b56000000000000000000000000beb6b6d43835b0fbf7b80f9ca4051cedcdc0d49c