0 txs
0 calls
constructor
constructor(address christTokenAddress, address svgGeneratorAddress, uint256 _startTimestamp)
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)
contractURI
purefunction contractURI() pure returns (string)
hasClaimed
viewfunction hasClaimed(address, uint256) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
name
purefunction name() pure returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
seasonalGreetings
viewfunction seasonalGreetings(uint256) view returns (string)
startTimestamp
viewfunction startTimestamp() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
svgGenerator
viewfunction svgGenerator() view returns (address)
TOTAL_DAYS
viewfunction TOTAL_DAYS() view returns (uint256)
transferableTimestamp
viewfunction transferableTimestamp() 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)
setAdventTimestamps
nonpayablefunction setAdventTimestamps(uint256 _startTimestamp)
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
AdventTimestampsSet
event AdventTimestampsSet(uint256 newStartTimestamp, uint256 newTransferableTimestamp)
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
0x60806040525f60235f6101000a81548160ff021916908315150217905550348015610028575f80fd5b506040516156fc3803806156fc833981810160405281019061004a9190610886565b3360405180602001604052805f8152506100698161027360201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100da575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100d191906108e5565b60405180910390fd5b6100e98161028660201b60201c565b5060016004819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015790610958565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c5906109c0565b60405180910390fd5b8260055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061025d8161034960201b60201c565b61026b6103bf60201b60201c565b505050610de2565b80600290816102829190610c0f565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61035761072d60201b60201c565b8060088190555062015180601961036e9190610d0b565b816103799190610d4c565b6009819055507fe511b04a1adb3304a6e3dcf82ff4ea491561b8d16a23c97cb234487d3a603e2e6008546009546040516103b4929190610d8e565b60405180910390a150565b5f6040518061032001604052806040518060600160405280603f81526020016155c6603f9139815260200160405180608001604052806045815260200161552160459139815260200160405180606001604052806026815260200161529a6026913981526020016040518060600160405280603e81526020016152c0603e913981526020016040518060600160405280603381526020016154ee6033913981526020016040518060600160405280603581526020016154606035913981526020016040518060600160405280603a81526020016156c2603a913981526020016040518060600160405280602e8152602001615598602e913981526020016040518060600160405280603381526020016156326033913981526020016040518060600160405280603881526020016154286038913981526020016040518060600160405280603681526020016152366036913981526020016040518060600160405280603681526020016153326036913981526020016040518060600160405280602d81526020016154c1602d913981526020016040518060600160405280603681526020016153f26036913981526020016040518060600160405280603881526020016153ba6038913981526020016040518060600160405280603281526020016155666032913981526020016040518060600160405280602d8152602001615605602d913981526020016040518060600160405280602581526020016153956025913981526020016040518060600160405280602d8152602001615368602d913981526020016040518060600160405280603181526020016156656031913981526020016040518060600160405280602c8152602001615696602c913981526020016040518060600160405280602e815260200161526c602e913981526020016040518060400160405280601e81526020017f5477696e6b6c65207477696e6b6c652c2024434852495354207374617221000081525081526020016040518060600160405280602c8152602001615495602c913981526020016040518060600160405280603481526020016152fe6034913981525090505f5b6019811015610729578181601981106106f5576106f4610db5565b5b6020020151600a826019811061070e5761070d610db5565b5b01908161071b9190610c0f565b5080806001019150506106d9565b5050565b61073b6107c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661075f6107cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146107c4576107886107c660201b60201c565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107bb91906108e5565b60405180910390fd5b565b5f33905090565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610822826107f9565b9050919050565b61083281610818565b811461083c575f80fd5b50565b5f8151905061084d81610829565b92915050565b5f819050919050565b61086581610853565b811461086f575f80fd5b50565b5f815190506108808161085c565b92915050565b5f805f6060848603121561089d5761089c6107f5565b5b5f6108aa8682870161083f565b93505060206108bb8682870161083f565b92505060406108cc86828701610872565b9150509250925092565b6108df81610818565b82525050565b5f6020820190506108f85f8301846108d6565b92915050565b5f82825260208201905092915050565b7f496e76616c69642043687269737420746f6b656e2061646472657373000000005f82015250565b5f610942601c836108fe565b915061094d8261090e565b602082019050919050565b5f6020820190508181035f83015261096f81610936565b9050919050565b7f496e76616c6964205356472067656e657261746f7220616464726573730000005f82015250565b5f6109aa601d836108fe565b91506109b582610976565b602082019050919050565b5f6020820190508181035f8301526109d78161099e565b9050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a5957607f821691505b602082108103610a6c57610a6b610a15565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610ace7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a93565b610ad88683610a93565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610b13610b0e610b0984610853565b610af0565b610853565b9050919050565b5f819050919050565b610b2c83610af9565b610b40610b3882610b1a565b848454610a9f565b825550505050565b5f90565b610b54610b48565b610b5f818484610b23565b505050565b5b81811015610b8257610b775f82610b4c565b600181019050610b65565b5050565b601f821115610bc757610b9881610a72565b610ba184610a84565b81016020851015610bb0578190505b610bc4610bbc85610a84565b830182610b64565b50505b505050565b5f82821c905092915050565b5f610be75f1984600802610bcc565b1980831691505092915050565b5f610bff8383610bd8565b9150826002028217905092915050565b610c18826109de565b67ffffffffffffffff811115610c3157610c306109e8565b5b610c3b8254610a42565b610c46828285610b86565b5f60209050601f831160018114610c77575f8415610c65578287015190505b610c6f8582610bf4565b865550610cd6565b601f198416610c8586610a72565b5f5b82811015610cac57848901518255600182019150602085019450602081019050610c87565b86831015610cc95784890151610cc5601f891682610bd8565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d1582610853565b9150610d2083610853565b9250828202610d2e81610853565b91508282048414831517610d4557610d44610cde565b5b5092915050565b5f610d5682610853565b9150610d6183610853565b9250828201905080821115610d7957610d78610cde565b5b92915050565b610d8881610853565b82525050565b5f604082019050610da15f830185610d7f565b610dae6020830184610d7f565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61444780610def5f395ff3fe608060405234801561000f575f80fd5b50600436106101a6575f3560e01c80638456cb59116100f7578063b3a0f37d11610095578063e8a3d4851161006f578063e8a3d48514610480578063e985e9c51461049e578063f242432a146104ce578063f2fde38b146104ea576101a6565b8063b3a0f37d1461042a578063b928548714610446578063e6fd48bc14610462576101a6565b80639007e9e4116100d15780639007e9e4146103a4578063a22cb465146103c2578063b222c9e4146103de578063b2931096146103fa576101a6565b80638456cb591461035e5780638baea60a146103685780638da5cb5b14610386576101a6565b806339c03d741161016457806357980a431161013e57806357980a43146102fa5780635c975abb146103185780636d6060f514610336578063715018a614610354576101a6565b806339c03d74146102905780633f4ba83a146102c05780634e1273f4146102ca576101a6565b8062fdd58e146101aa57806301ffc9a7146101da57806306fdde031461020a5780630e89341c146102285780632eb2c2d614610258578063379607f514610274575b5f80fd5b6101c460048036038101906101bf91906126fd565b610506565b6040516101d1919061274a565b60405180910390f35b6101f460048036038101906101ef91906127b8565b61055b565b60405161020191906127fd565b60405180910390f35b61021261063c565b60405161021f9190612886565b60405180910390f35b610242600480360381019061023d91906128a6565b610679565b60405161024f9190612886565b60405180910390f35b610272600480360381019061026d9190612ac1565b610916565b005b61028e600480360381019061028991906128a6565b6109bd565b005b6102aa60048036038101906102a591906128a6565b610d77565b6040516102b79190612886565b60405180910390f35b6102c8610e16565b005b6102e460048036038101906102df9190612c4c565b610e7c565b6040516102f19190612d79565b60405180910390f35b610302610f83565b60405161030f919061274a565b60405180910390f35b610320610f88565b60405161032d91906127fd565b60405180910390f35b61033e610f9a565b60405161034b9190612df4565b60405180910390f35b61035c610fbf565b005b610366610fd2565b005b610370611039565b60405161037d9190612e2d565b60405180910390f35b61038e61105e565b60405161039b9190612e55565b60405180910390f35b6103ac611086565b6040516103b9919061274a565b60405180910390f35b6103dc60048036038101906103d79190612e98565b61108c565b005b6103f860048036038101906103f39190612f74565b6110a2565b005b610414600480360381019061040f91906126fd565b6111a9565b60405161042191906127fd565b60405180910390f35b610444600480360381019061043f9190612fce565b6111d3565b005b610460600480360381019061045b91906128a6565b6112cf565b005b61046a61133f565b604051610477919061274a565b60405180910390f35b610488611345565b6040516104959190612886565b60405180910390f35b6104b860048036038101906104b39190612ff9565b611396565b6040516104c591906127fd565b60405180910390f35b6104e860048036038101906104e39190613037565b611424565b005b61050460048036038101906104ff9190612fce565b6114cb565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061062557507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061063557506106348261154f565b5b9050919050565b60606040518060400160405280602081526020017f244348524953542d6d617320416476656e742043616c656e6461722032303234815250905090565b60606001821015801561068d575060198211155b6106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c390613114565b60405180910390fd5b5f600a6001846106dc919061315f565b601981106106ed576106ec613192565b5b0180546106f9906131ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610725906131ec565b80156107705780601f1061074757610100808354040283529160200191610770565b820191905f5260205f20905b81548152906001019060200180831161075357829003601f168201915b505050505090505f610781846115b8565b60405160200161079191906132a0565b60405160208183030381529060405290505f84306040516020016107b6929190613326565b604051602081830303815290604052805190602001205f1c90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fb1e7608585856040518463ffffffff1660e01b815260040161082f93929190613351565b5f60405180830381865afa158015610849573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906108719190613402565b90505f61087d82611711565b90505f816040516020016108919190613493565b60405160208183030381529060405290505f856108ad8a6115b8565b836108b78c6115b8565b6040516020016108ca9493929190613698565b60405160208183030381529060405290505f6108e582611711565b9050806040516020016108f89190613756565b60405160208183030381529060405298505050505050505050919050565b5f61091f61173e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561096457506109628682611396565b155b156109a85780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161099f929190613777565b60405180910390fd5b6109b58686868686611745565b505050505050565b6109c5611839565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610a209190612e55565b602060405180830381865afa158015610a3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5f91906137b2565b11610a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9690613827565b60405180910390fd5b8060018110158015610ab2575060198111155b610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae89061388f565b60405180910390fd5b5f62015180600183610b03919061315f565b610b0d91906138ad565b600854610b1a91906138ee565b90505f6201518082610b2c91906138ee565b905081421015610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b689061396b565b60405180910390fd5b804210610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa906139f9565b60405180910390fd5b60235f9054906101000a900460ff1615610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf990613a61565b60405180910390fd5b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f9054906101000a900460ff1615610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290613ac9565b60405180910390fd5b600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f205f6101000a81548160ff021916908315150217905550610d1a3385600160405180602001604052805f815250611888565b833373ffffffffffffffffffffffffffffffffffffffff167f987d620f307ff6b94d58743cb7a7509f24071586a77759b77c2d4e29f75a2f9a86604051610d61919061274a565b60405180910390a3505050610d7461191d565b50565b600a8160198110610d86575f80fd5b015f915090508054610d97906131ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc3906131ec565b8015610e0e5780601f10610de557610100808354040283529160200191610e0e565b820191905f5260205f20905b815481529060010190602001808311610df157829003601f168201915b505050505081565b610e1e611927565b5f60235f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f5b65b0c1363b3003db9bcc5e1fd8805a6d6bf5bf6dc9d3431ee4494cd7d1176660405160405180910390a2565b60608151835114610ec857815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610ebf929190613ae7565b60405180910390fd5b5f835167ffffffffffffffff811115610ee457610ee36128d5565b5b604051908082528060200260200182016040528015610f125781602001602082028036833780820191505090505b5090505f5b8451811015610f7857610f4e610f3682876119ae90919063ffffffff16565b610f4983876119c190919063ffffffff16565b610506565b828281518110610f6157610f60613192565b5b602002602001018181525050806001019050610f17565b508091505092915050565b601981565b60235f9054906101000a900460ff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fc7611927565b610fd05f6119d4565b565b610fda611927565b600160235f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f81990fd9a5c552b8e3677917d8a03c07678f0d2cb68f88b634aca2022e9bd19f60405160405180910390a2565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b61109e61109761173e565b8383611a97565b5050565b6110aa611927565b600182101580156110bc575060198211155b6110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f29061388f565b60405180910390fd5b5f81511161113e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113590613b58565b60405180910390fd5b80600a60018461114e919061315f565b6019811061115f5761115e613192565b5b01908161116c9190613d0a565b50817f2c881f99fde5a1598df2de54aef259d7f03d65b8d57497d81bf9c7e5488f05438260405161119d9190612886565b60405180910390a25050565b6007602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b6111db611927565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090613e23565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f31f0181b0d2d712e1ebecab98b9c8368abe70c4be2609c828f4d67ab5d09f17a60405160405180910390a250565b6112d7611927565b806008819055506201518060196112ee91906138ad565b816112f991906138ee565b6009819055507fe511b04a1adb3304a6e3dcf82ff4ea491561b8d16a23c97cb234487d3a603e2e600854600954604051611334929190613ae7565b60405180910390a150565b60085481565b60605f60405160200161135790614099565b604051602081830303815290604052905061137181611711565b6040516020016113819190613756565b60405160208183030381529060405291505090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f61142d61173e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561147257506114708682611396565b155b156114b65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016114ad929190613777565b60405180910390fd5b6114c38686868686611c00565b505050505050565b6114d3611927565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611543575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161153a9190612e55565b60405180910390fd5b61154c816119d4565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60605f82036115fe576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061170c565b5f8290505f5b5f821461162d578080611616906140ce565b915050600a826116269190614142565b9150611604565b5f8167ffffffffffffffff811115611648576116476128d5565b5b6040519080825280601f01601f19166020018201604052801561167a5781602001600182028036833780820191505090505b5090505b5f851461170557600182611692919061315f565b9150600a856116a19190614172565b60306116ad91906138ee565b60f81b8183815181106116c3576116c2613192565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856116fe9190614142565b945061167e565b8093505050505b919050565b6060611737826040518060600160405280604081526020016143d2604091396001611d06565b9050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117b5575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117ac9190612e55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611825575f6040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161181c9190612e55565b60405180910390fd5b6118328585858585611e95565b5050505050565b60026004540361187e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611875906141ec565b60405180910390fd5b6002600481905550565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118f8575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016118ef9190612e55565b60405180910390fd5b5f806119048585611f41565b915091506119155f87848487611e95565b505050505050565b6001600481905550565b61192f61173e565b73ffffffffffffffffffffffffffffffffffffffff1661194d61105e565b73ffffffffffffffffffffffffffffffffffffffff16146119ac5761197061173e565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016119a39190612e55565b60405180910390fd5b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b07575f6040517fced3e100000000000000000000000000000000000000000000000000000000008152600401611afe9190612e55565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611bf391906127fd565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c70575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c679190612e55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611ce0575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611cd79190612e55565b60405180910390fd5b5f80611cec8585611f41565b91509150611cfd8787848487611e95565b50505050505050565b60605f845103611d265760405180602001604052805f8152509050611e8e565b5f82611d57576003600286516004611d3e91906138ad565b611d4891906138ee565b611d529190614142565b611d7e565b600360028651611d6791906138ee565b611d719190614142565b6004611d7d91906138ad565b5b90505f8167ffffffffffffffff811115611d9b57611d9a6128d5565b5b6040519080825280601f01601f191660200182016040528015611dcd5781602001600182028036833780820191505090505b509050600185016020820187885189016020810180515f82525b82841015611e42576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611de7565b8082528915611e825760038c510660018114611e655760028114611e7857611e80565b603d6001870353603d6002870353611e80565b603d60018703535b505b50505050505080925050505b9392505050565b611ea185858585611f71565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611f3a575f611edd61173e565b90506001845103611f29575f611efc5f866119c190919063ffffffff16565b90505f611f125f866119c190919063ffffffff16565b9050611f22838989858589612301565b5050611f38565b611f378187878787876124b0565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b8051825114611fbb57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611fb2929190613ae7565b60405180910390fd5b5f611fc461173e565b90505f5b83518110156121c0575f611fe582866119c190919063ffffffff16565b90505f611ffb83866119c190919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461211e575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156120ca57888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016120c1949392919061420a565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146121b357805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121ab91906138ee565b925050819055505b5050806001019050611fc8565b50600183510361227b575f6121de5f856119c190919063ffffffff16565b90505f6121f45f856119c190919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161226c929190613ae7565b60405180910390a450506122fa565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516122f192919061424d565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156124a8578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016123619594939291906142d4565b6020604051808303815f875af192505050801561239c57506040513d601f19601f820116820180604052508101906123999190614340565b60015b61241d573d805f81146123ca576040519150601f19603f3d011682016040523d82523d5f602084013e6123cf565b606091505b505f81510361241557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161240c9190612e55565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146124a657846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161249d9190612e55565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612657578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161251095949392919061436b565b6020604051808303815f875af192505050801561254b57506040513d601f19601f820116820180604052508101906125489190614340565b60015b6125cc573d805f8114612579576040519150601f19603f3d011682016040523d82523d5f602084013e61257e565b606091505b505f8151036125c457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016125bb9190612e55565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461265557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161264c9190612e55565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61269982612670565b9050919050565b6126a98161268f565b81146126b3575f80fd5b50565b5f813590506126c4816126a0565b92915050565b5f819050919050565b6126dc816126ca565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f806040838503121561271357612712612668565b5b5f612720858286016126b6565b9250506020612731858286016126e9565b9150509250929050565b612744816126ca565b82525050565b5f60208201905061275d5f83018461273b565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61279781612763565b81146127a1575f80fd5b50565b5f813590506127b28161278e565b92915050565b5f602082840312156127cd576127cc612668565b5b5f6127da848285016127a4565b91505092915050565b5f8115159050919050565b6127f7816127e3565b82525050565b5f6020820190506128105f8301846127ee565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61285882612816565b6128628185612820565b9350612872818560208601612830565b61287b8161283e565b840191505092915050565b5f6020820190508181035f83015261289e818461284e565b905092915050565b5f602082840312156128bb576128ba612668565b5b5f6128c8848285016126e9565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61290b8261283e565b810181811067ffffffffffffffff8211171561292a576129296128d5565b5b80604052505050565b5f61293c61265f565b90506129488282612902565b919050565b5f67ffffffffffffffff821115612967576129666128d5565b5b602082029050602081019050919050565b5f80fd5b5f61298e6129898461294d565b612933565b905080838252602082019050602084028301858111156129b1576129b0612978565b5b835b818110156129da57806129c688826126e9565b8452602084019350506020810190506129b3565b5050509392505050565b5f82601f8301126129f8576129f76128d1565b5b8135612a0884826020860161297c565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115612a2f57612a2e6128d5565b5b612a388261283e565b9050602081019050919050565b828183375f83830152505050565b5f612a65612a6084612a15565b612933565b905082815260208101848484011115612a8157612a80612a11565b5b612a8c848285612a45565b509392505050565b5f82601f830112612aa857612aa76128d1565b5b8135612ab8848260208601612a53565b91505092915050565b5f805f805f60a08688031215612ada57612ad9612668565b5b5f612ae7888289016126b6565b9550506020612af8888289016126b6565b945050604086013567ffffffffffffffff811115612b1957612b1861266c565b5b612b25888289016129e4565b935050606086013567ffffffffffffffff811115612b4657612b4561266c565b5b612b52888289016129e4565b925050608086013567ffffffffffffffff811115612b7357612b7261266c565b5b612b7f88828901612a94565b9150509295509295909350565b5f67ffffffffffffffff821115612ba657612ba56128d5565b5b602082029050602081019050919050565b5f612bc9612bc484612b8c565b612933565b90508083825260208201905060208402830185811115612bec57612beb612978565b5b835b81811015612c155780612c0188826126b6565b845260208401935050602081019050612bee565b5050509392505050565b5f82601f830112612c3357612c326128d1565b5b8135612c43848260208601612bb7565b91505092915050565b5f8060408385031215612c6257612c61612668565b5b5f83013567ffffffffffffffff811115612c7f57612c7e61266c565b5b612c8b85828601612c1f565b925050602083013567ffffffffffffffff811115612cac57612cab61266c565b5b612cb8858286016129e4565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612cf4816126ca565b82525050565b5f612d058383612ceb565b60208301905092915050565b5f602082019050919050565b5f612d2782612cc2565b612d318185612ccc565b9350612d3c83612cdc565b805f5b83811015612d6c578151612d538882612cfa565b9750612d5e83612d11565b925050600181019050612d3f565b5085935050505092915050565b5f6020820190508181035f830152612d918184612d1d565b905092915050565b5f819050919050565b5f612dbc612db7612db284612670565b612d99565b612670565b9050919050565b5f612dcd82612da2565b9050919050565b5f612dde82612dc3565b9050919050565b612dee81612dd4565b82525050565b5f602082019050612e075f830184612de5565b92915050565b5f612e1782612dc3565b9050919050565b612e2781612e0d565b82525050565b5f602082019050612e405f830184612e1e565b92915050565b612e4f8161268f565b82525050565b5f602082019050612e685f830184612e46565b92915050565b612e77816127e3565b8114612e81575f80fd5b50565b5f81359050612e9281612e6e565b92915050565b5f8060408385031215612eae57612ead612668565b5b5f612ebb858286016126b6565b9250506020612ecc85828601612e84565b9150509250929050565b5f67ffffffffffffffff821115612ef057612eef6128d5565b5b612ef98261283e565b9050602081019050919050565b5f612f18612f1384612ed6565b612933565b905082815260208101848484011115612f3457612f33612a11565b5b612f3f848285612a45565b509392505050565b5f82601f830112612f5b57612f5a6128d1565b5b8135612f6b848260208601612f06565b91505092915050565b5f8060408385031215612f8a57612f89612668565b5b5f612f97858286016126e9565b925050602083013567ffffffffffffffff811115612fb857612fb761266c565b5b612fc485828601612f47565b9150509250929050565b5f60208284031215612fe357612fe2612668565b5b5f612ff0848285016126b6565b91505092915050565b5f806040838503121561300f5761300e612668565b5b5f61301c858286016126b6565b925050602061302d858286016126b6565b9150509250929050565b5f805f805f60a086880312156130505761304f612668565b5b5f61305d888289016126b6565b955050602061306e888289016126b6565b945050604061307f888289016126e9565b9350506060613090888289016126e9565b925050608086013567ffffffffffffffff8111156130b1576130b061266c565b5b6130bd88828901612a94565b9150509295509295909350565b7f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e005f82015250565b5f6130fe601f83612820565b9150613109826130ca565b602082019050919050565b5f6020820190508181035f83015261312b816130f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613169826126ca565b9150613174836126ca565b925082820390508181111561318c5761318b613132565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061320357607f821691505b602082108103613216576132156131bf565b5b50919050565b5f81905092915050565b7f4368726973746d617320446179200000000000000000000000000000000000005f82015250565b5f61325a600e8361321c565b915061326582613226565b600e82019050919050565b5f61327a82612816565b613284818561321c565b9350613294818560208601612830565b80840191505092915050565b5f6132aa8261324e565b91506132b68284613270565b915081905092915050565b5f819050919050565b6132db6132d6826126ca565b6132c1565b82525050565b5f8160601b9050919050565b5f6132f7826132e1565b9050919050565b5f613308826132ed565b9050919050565b61332061331b8261268f565b6132fe565b82525050565b5f61333182856132ca565b602082019150613341828461330f565b6014820191508190509392505050565b5f6060820190508181035f830152613369818661284e565b9050818103602083015261337d818561284e565b905061338c604083018461273b565b949350505050565b5f6133a66133a184612ed6565b612933565b9050828152602081018484840111156133c2576133c1612a11565b5b6133cd848285612830565b509392505050565b5f82601f8301126133e9576133e86128d1565b5b81516133f9848260208601613394565b91505092915050565b5f6020828403121561341757613416612668565b5b5f82015167ffffffffffffffff8111156134345761343361266c565b5b613440848285016133d5565b91505092915050565b7f646174613a696d6167652f7376672b786d6c3b6261736536342c0000000000005f82015250565b5f61347d601a8361321c565b915061348882613449565b601a82019050919050565b5f61349d82613471565b91506134a98284613270565b915081905092915050565b7f7b226e616d65223a2022000000000000000000000000000000000000000000005f82015250565b5f6134e8600a8361321c565b91506134f3826134b4565b600a82019050919050565b7f222c20226465736372697074696f6e223a202241207370656369616c204368725f8201527f6973746d617320416476656e742043616c656e646172204e465420666f72206460208201527f6179200000000000000000000000000000000000000000000000000000000000604082015250565b5f61357e60438361321c565b9150613589826134fe565b604382019050919050565b7f222c2022696d616765223a2022000000000000000000000000000000000000005f82015250565b5f6135c8600d8361321c565b91506135d382613594565b600d82019050919050565b7f222c202261747472696275746573223a205b7b2274726169745f74797065223a5f8201527f2022446179222c202276616c7565223a20220000000000000000000000000000602082015250565b5f61363860328361321c565b9150613643826135de565b603282019050919050565b7f227d5d7d000000000000000000000000000000000000000000000000000000005f82015250565b5f61368260048361321c565b915061368d8261364e565b600482019050919050565b5f6136a2826134dc565b91506136ae8287613270565b91506136b982613572565b91506136c58286613270565b91506136d0826135bc565b91506136dc8285613270565b91506136e78261362c565b91506136f38284613270565b91506136fe82613676565b915081905095945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000005f82015250565b5f613740601d8361321c565b915061374b8261370c565b601d82019050919050565b5f61376082613734565b915061376c8284613270565b915081905092915050565b5f60408201905061378a5f830185612e46565b6137976020830184612e46565b9392505050565b5f815190506137ac816126d3565b92915050565b5f602082840312156137c7576137c6612668565b5b5f6137d48482850161379e565b91505092915050565b7f4d75737420686f6c642043687269737420746f6b656e7320746f20636c61696d5f82015250565b5f613811602083612820565b915061381c826137dd565b602082019050919050565b5f6020820190508181035f83015261383e81613805565b9050919050565b7f496e76616c6964206461790000000000000000000000000000000000000000005f82015250565b5f613879600b83612820565b915061388482613845565b602082019050919050565b5f6020820190508181035f8301526138a68161386d565b9050919050565b5f6138b7826126ca565b91506138c2836126ca565b92508282026138d0816126ca565b915082820484148315176138e7576138e6613132565b5b5092915050565b5f6138f8826126ca565b9150613903836126ca565b925082820190508082111561391b5761391a613132565b5b92915050565b7f44617920686173206e6f742073746172746564207965740000000000000000005f82015250565b5f613955601783612820565b915061396082613921565b602082019050919050565b5f6020820190508181035f83015261398281613949565b9050919050565b7f436c61696d2077696e646f7720666f722074686973206461792068617320656e5f8201527f6465640000000000000000000000000000000000000000000000000000000000602082015250565b5f6139e3602383612820565b91506139ee82613989565b604082019050919050565b5f6020820190508181035f830152613a10816139d7565b9050919050565b7f436f6e74726163742069732070617573656400000000000000000000000000005f82015250565b5f613a4b601283612820565b9150613a5682613a17565b602082019050919050565b5f6020820190508181035f830152613a7881613a3f565b9050919050565b7f416c726561647920636c61696d656420666f72207468697320646179000000005f82015250565b5f613ab3601c83612820565b9150613abe82613a7f565b602082019050919050565b5f6020820190508181035f830152613ae081613aa7565b9050919050565b5f604082019050613afa5f83018561273b565b613b07602083018461273b565b9392505050565b7f4772656574696e672063616e6e6f7420626520656d70747900000000000000005f82015250565b5f613b42601883612820565b9150613b4d82613b0e565b602082019050919050565b5f6020820190508181035f830152613b6f81613b36565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302613bd27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613b97565b613bdc8683613b97565b95508019841693508086168417925050509392505050565b5f613c0e613c09613c04846126ca565b612d99565b6126ca565b9050919050565b5f819050919050565b613c2783613bf4565b613c3b613c3382613c15565b848454613ba3565b825550505050565b5f90565b613c4f613c43565b613c5a818484613c1e565b505050565b5b81811015613c7d57613c725f82613c47565b600181019050613c60565b5050565b601f821115613cc257613c9381613b76565b613c9c84613b88565b81016020851015613cab578190505b613cbf613cb785613b88565b830182613c5f565b50505b505050565b5f82821c905092915050565b5f613ce25f1984600802613cc7565b1980831691505092915050565b5f613cfa8383613cd3565b9150826002028217905092915050565b613d1382612816565b67ffffffffffffffff811115613d2c57613d2b6128d5565b5b613d3682546131ec565b613d41828285613c81565b5f60209050601f831160018114613d72575f8415613d60578287015190505b613d6a8582613cef565b865550613dd1565b601f198416613d8086613b76565b5f5b82811015613da757848901518255600182019150602085019450602081019050613d82565b86831015613dc45784890151613dc0601f891682613cd3565b8355505b6001600288020188555050505b505050505050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f613e0d600f83612820565b9150613e1882613dd9565b602082019050919050565b5f6020820190508181035f830152613e3a81613e01565b9050919050565b7f7b226e616d65223a20224368726973746d617320416476656e742043616c656e5f8201527f6461722032303234222c00000000000000000000000000000000000000000000602082015250565b5f613e9b602a8361321c565b9150613ea682613e41565b602a82019050919050565b7f226465736372697074696f6e223a202241207370656369616c204368726973745f8201527f6d617320416476656e742043616c656e646172204e465420636f6c6c6563746960208201527f6f6e20776865726520686f6c64657273206f6620244348524953542063616e2060408201527f636c61696d206120756e69717565204e4654206561636820646179206f66204460608201527f6563656d626572206c656164696e6720757020746f204368726973746d61732e60808201527f222c00000000000000000000000000000000000000000000000000000000000060a082015250565b5f613fa360a28361321c565b9150613fae82613eb1565b60a282019050919050565b7f22696d616765223a2022594f55525f434f4c4c454354494f4e5f494d4147455f5f8201527f55524c5f48455245222c00000000000000000000000000000000000000000000602082015250565b5f614013602a8361321c565b915061401e82613fb9565b602a82019050919050565b7f2265787465726e616c5f6c696e6b223a2022594f55525f574542534954455f555f8201527f524c5f48455245227d0000000000000000000000000000000000000000000000602082015250565b5f61408360298361321c565b915061408e82614029565b602982019050919050565b5f6140a382613e8f565b91506140ae82613f97565b91506140b982614007565b91506140c482614077565b9150819050919050565b5f6140d8826126ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361410a57614109613132565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61414c826126ca565b9150614157836126ca565b92508261416757614166614115565b5b828204905092915050565b5f61417c826126ca565b9150614187836126ca565b92508261419757614196614115565b5b828206905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6141d6601f83612820565b91506141e1826141a2565b602082019050919050565b5f6020820190508181035f830152614203816141ca565b9050919050565b5f60808201905061421d5f830187612e46565b61422a602083018661273b565b614237604083018561273b565b614244606083018461273b565b95945050505050565b5f6040820190508181035f8301526142658185612d1d565b905081810360208301526142798184612d1d565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6142a682614282565b6142b0818561428c565b93506142c0818560208601612830565b6142c98161283e565b840191505092915050565b5f60a0820190506142e75f830188612e46565b6142f46020830187612e46565b614301604083018661273b565b61430e606083018561273b565b8181036080830152614320818461429c565b90509695505050505050565b5f8151905061433a8161278e565b92915050565b5f6020828403121561435557614354612668565b5b5f6143628482850161432c565b91505092915050565b5f60a08201905061437e5f830188612e46565b61438b6020830187612e46565b818103604083015261439d8186612d1d565b905081810360608301526143b18185612d1d565b905081810360808301526143c5818461429c565b9050969550505050505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122028c68903a25e39717470a65ef87eda3f759bcde9f6674bbc6c27bb3a14af93ae64736f6c634300081a00334576656e20427269616e206b6e6f7773202443485249535420697320746865207265616c2067696674207468697320736561736f6e21536c6569676820796f7572206461792077697468202443485249535420616e6420686f6c6964617920706c6179214b6565702063616c6d20616e6420686f6c6420796f757220244348524953542074696768742157697368696e6720796f75206120424153452d746173746963204368726973746d61732066696c6c656420776974682024434852495354206368656572214d65727279204368726973746d617321204c6574202443485249535420746f6b656e73206272696e6720796f75206368656572214c6574202443485249535420746f6b656e732061646420737061726b6c6520746f20796f7572204368726973746d61732074726565214d617920796f75722024434852495354206272696e6720796f75206a6f792064617920616e64206e6967687421486f20486f20486f6c6420796f7572202443485249535420746f6b656e732074696768742143686565727320746f206120244348524953542d66696c6c656420686f6c69646179207769746820667269656e647320616e642066756e214d617920796f757220244348524953542062616c616e63652062652061732066756c6c2061732053616e7461277320736c65696768214d617920796f7572202443485249535420686f6c64696e67732067726f7720617320796f757220686f6c69646179206a6f7920646f657321446f6e27742062652061204772696e636820636c61696d20796f7572202443485249535420616476656e7420737572707269736521416c6d6f737420746865726521204b65657020796f7572202443485249535420746f6b656e73206e656172214b656570206974206a6f6c6c792077697468202443485249535420616e64206665737469766520666f6c6c79214d617920796f75722064617973206265206d657272792c206272696768742c20616e6420244348524953542d6675656c65642152656d656d6265722c206576656e20427269616e2041726d7374726f6e672063616e2774206869646520686973207375636365737320756e64657220746861742068617421427269616e27732073756363657373206973206e6f20736563726574202443485249535420697320796f75727320746f6f21556e7772617020796f7572202443485249535420746f6b656e20616e6420756e7772617020736f6d65206a6f79214d617920796f7572202443485249535420746f6b656e73207368696e652061732062726967687420617320796f757220686f6c6964617920737069726974214465636b207468652068616c6c732077697468202443485249535420616e64206a6f796f75732063616c6c732153656e64696e67202443485249535420766962657320796f7572207761792074686973206665737469766520736561736f6e21526f636b2061726f756e6420746865204368726973746d617320747265652077697468202443485249535420676c6565214d6179202443485249535420746f6b656e73206d616b6520796f757220737069726974732062726967687421427269616e27732062616c642068656164207265666c656374732074686520627269676874206c6967687473206f66204368726973746d617321000000000000000000000000121837a9a7fd24644da6b297105bd3119dc03b56000000000000000000000000beb6b6d43835b0fbf7b80f9ca4051cedcdc0d49c00000000000000000000000000000000000000000000000000000000674ba73c