0 txs
0 calls
constructor
constructor(address _controller)
functions
claimableReserve
viewfunction claimableReserve(address _reserveHolder, address _claimant) view returns (uint256)
claimedReserve
viewfunction claimedReserve(address _reserveHolder, address _claimant) view returns (uint256)
controller
viewfunction controller() view returns (address)
getReserveInfo
viewfunction getReserveInfo(address _reserveHolder) view returns (tuple info)
getSenderInfo
viewfunction getSenderInfo(address _sender) view returns (tuple sender, tuple reserve)
getTicketHash
purefunction getTicketHash(tuple _ticket) pure returns (bytes32)
isUnlockInProgress
viewfunction isUnlockInProgress(address _sender) view returns (bool)
targetContractId
viewfunction targetContractId() view returns (bytes32)
ticketValidityPeriod
viewfunction ticketValidityPeriod() view returns (uint256)
unlockPeriod
viewfunction unlockPeriod() view returns (uint256)
usedTickets
viewfunction usedTickets(bytes32) view returns (bool)
batchRedeemWinningTickets
nonpayablefunction batchRedeemWinningTickets(tuple[] _tickets, bytes[] _sigs, uint256[] _recipientRands)
cancelUnlock
nonpayablefunction cancelUnlock()
fundDeposit
payablefunction fundDeposit() payable
fundDepositAndReserve
payablefunction fundDepositAndReserve(uint256 _depositAmount, uint256 _reserveAmount) payable
fundDepositAndReserveFor
payablefunction fundDepositAndReserveFor(address _addr, uint256 _depositAmount, uint256 _reserveAmount) payable
fundReserve
payablefunction fundReserve() payable
redeemWinningTicket
nonpayablefunction redeemWinningTicket(tuple _ticket, bytes _sig, uint256 _recipientRand)
setController
nonpayablefunction setController(address _controller)
setTicketValidityPeriod
nonpayablefunction setTicketValidityPeriod(uint256 _ticketValidityPeriod)
setUnlockPeriod
nonpayablefunction setUnlockPeriod(uint256 _unlockPeriod)
unlock
nonpayablefunction unlock()
withdraw
nonpayablefunction withdraw()
events
DepositFunded
event DepositFunded(address indexed sender, uint256 amount)
ParameterUpdate
event ParameterUpdate(string param)
ReserveClaimed
event ReserveClaimed(address indexed reserveHolder, address claimant, uint256 amount)
ReserveFunded
event ReserveFunded(address indexed reserveHolder, uint256 amount)
SetController
event SetController(address controller)
Unlock
event Unlock(address indexed sender, uint256 startRound, uint256 endRound)
UnlockCancelled
event UnlockCancelled(address indexed sender)
WinningTicketRedeemed
event WinningTicketRedeemed(address indexed sender, address indexed recipient, uint256 faceValue, uint256 winProb, uint256 senderNonce, uint256 recipientRand, bytes auxData)
WinningTicketTransfer
event WinningTicketTransfer(address indexed sender, address indexed recipient, uint256 amount)
Withdrawal
event Withdrawal(address indexed sender, uint256 deposit, uint256 reserve)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162002fb038038062002fb083398101604081905262000034916200005a565b600080546001600160a01b0319166001600160a01b03929092169190911790556200008c565b6000602082840312156200006d57600080fd5b81516001600160a01b03811681146200008557600080fd5b9392505050565b612f14806200009c6000396000f3fe6080604052600436106101405760003560e01c806381779f38116100b6578063c2c4c2c81161006f578063c2c4c2c814610329578063c92978081461033e578063d01b808e1461035e578063e1a589da1461037e578063ec8b3cb6146103ac578063f77c4791146103cc57600080fd5b806381779f381461028b578063856a2cf8146102ab57806392eefe9b146102c1578063989f789c146102e1578063a69df4b5146102f4578063b03fa8641461030957600080fd5b8063511f407311610108578063511f4073146101f557806351720b411461020857806359a515ba1461021e5780635b6333eb1461024e5780636caa736b1461027b5780636f9c3c8f1461028357600080fd5b8063121cdcc21461014557806320d3a0b41461017a5780633ccfd60b1461019e5780633d0ddf84146101b55780634ac826da146101d5575b600080fd5b34801561015157600080fd5b506101656101603660046126c0565b610404565b60405190151581526020015b60405180910390f35b34801561018657600080fd5b5061019060045481565b604051908152602001610171565b3480156101aa57600080fd5b506101b3610440565b005b3480156101c157600080fd5b506101b36101d03660046126dd565b6105c6565b3480156101e157600080fd5b506101906101f03660046126f6565b61062d565b6101b361020336600461272f565b6106ef565b34801561021457600080fd5b5061019060015481565b34801561022a57600080fd5b506101656102393660046126dd565b60056020526000908152604090205460ff1681565b34801561025a57600080fd5b5061026e6102693660046126c0565b6106fe565b6040516101719190612751565b6101b36107cc565b6101b3610862565b34801561029757600080fd5b506101906102a63660046126f6565b6108bd565b3480156102b757600080fd5b5061019060065481565b3480156102cd57600080fd5b506101b36102dc3660046126c0565b610ad2565b6101b36102ef366004612768565b610b28565b34801561030057600080fd5b506101b3610cb7565b34801561031557600080fd5b5061019061032436600461290f565b610e4b565b34801561033557600080fd5b506101b3610e9d565b34801561034a57600080fd5b506101b36103593660046126dd565b610ec3565b34801561036a57600080fd5b506101b3610379366004612a5b565b610f8b565b34801561038a57600080fd5b5061039e6103993660046126c0565b6110d2565b604051610171929190612b53565b3480156103b857600080fd5b506101b36103c7366004612b79565b611133565b3480156103d857600080fd5b506000546103ec906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b6001600160a01b0381166000908152600360209081526040808320815180830190925280548252600101549181018290529015155b9392505050565b610448611445565b33600090815260036020908152604080832080546002909352922054811515806104725750600081115b6104975760405162461bcd60e51b815260040161048e90612be6565b60405180910390fd5b6040805180820190915283548152600184015460209091018190526104fe5760405162461bcd60e51b815260206004820152601d60248201527f6e6f20756e6c6f636b207265717565737420696e2070726f6772657373000000604482015260640161048e565b60408051808201909152835481526001840154602082015261051f9061150b565b156105605760405162461bcd60e51b81526020600482015260116024820152701858d8dbdd5b9d081a5cc81b1bd8dad959607a1b604482015260640161048e565b60008084553381526002602052604081205561058533610580848461159f565b6115ab565b604080518381526020810183905233917fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb91015b60405180910390a2505050565b6105ce61161b565b60048190556040517f9f5033568d78ae30f29f01e944f97b2216493bd19d1b46d429673acff3dcd67490610622906020808252600c908201526b1d5b9b1bd8dad4195c9a5bd960a21b604082015260600190565b60405180910390a150565b6001600160a01b03821660009081526002602052604081208161064e6116ff565b6001600160a01b0316638a19c8bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561068657600080fd5b505afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be9190612c29565b60009081526002909201602090815260408084206001600160a01b0387168552909152909120549150505b92915050565b6106fa338383610b28565b5050565b604080518082018252600080825260208083018290526001600160a01b0385168083526002808352948320805485529083529390529091600101906107416116ff565b6001600160a01b0316638a19c8bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561077957600080fd5b505afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b19190612c29565b81526020808201929092526040016000205490820152919050565b6107d4611445565b33600081815260036020526040902080543491906107f2908361159f565b80825560408051808201909152908152600182015460209091018190521561081e5761081e81846117a1565b61082734611846565b826001600160a01b03167f5159e237d952190e68d5215430f305831be7c9c8776d1377c76679ae4773413f836040516105b991815260200190565b61086a611445565b336000818152600360205260409020349061088583836118c1565b604080518082019091528154815260018201546020909101819052156108af576108af81846117a1565b6108b834611846565b505050565b6001600160a01b0382166000908152600260205260408120816108de6116ff565b6001600160a01b0316638a19c8bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561091657600080fd5b505afa15801561092a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094e9190612c29565b9050610958611933565b60405163022008dd60e21b81526001600160a01b038681166004830152919091169063088023749060240160206040518083038186803b15801561099b57600080fd5b505afa1580156109af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d39190612c42565b6109e2576000925050506106e9565b60006109ec611933565b6001600160a01b0316632a4e0d556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2457600080fd5b505afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190612c29565b905080610a6f57600093505050506106e9565b60008281526001840160205260408120548454610a8b9161159f565b600084815260028601602090815260408083206001600160a01b038b168452909152902054909150610ac790610ac18385611984565b90611990565b979650505050505050565b610ada61199c565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f7090602001610622565b610b30611445565b8181610b3c828261159f565b3414610bba5760405162461bcd60e51b815260206004820152604160248201527f6d73672e76616c756520646f6573206e6f7420657175616c2073756d206f662060448201527f6465706f73697420616d6f756e7420616e64207265736572766520616d6f756e6064820152601d60fa1b608482015260a40161048e565b6001600160a01b0385166000908152600360205260409020805486918691610be2908361159f565b808255604080518082019091529081526001820154602090910181905215610c0e57610c0e81846117a1565b6001600160a01b038816600090815260036020526040902088908790610c3483836118c1565b60408051808201909152815481526001820154602090910181905215610c5e57610c5e81846117a1565b610c6734611846565b505050826001600160a01b03167f5159e237d952190e68d5215430f305831be7c9c8776d1377c76679ae4773413f83604051610ca591815260200190565b60405180910390a25050505050505050565b610cbf611445565b3360009081526003602052604090208054151580610cea575033600090815260026020526040812054115b610d065760405162461bcd60e51b815260040161048e90612be6565b60408051808201909152815481526001820154602090910181905215610d6e5760405162461bcd60e51b815260206004820152601860248201527f756e6c6f636b20616c726561647920696e697469617465640000000000000000604482015260640161048e565b6000610d786116ff565b6001600160a01b0316638a19c8bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610db057600080fd5b505afa158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190612c29565b9050610dff6004548261159f90919063ffffffff16565b6001830181905560405133917ff7870c5b224cbc19873599e46ccfc7103934650509b1af0c3ce90138377c200491610e3f91858252602082015260400190565b60405180910390a25050565b80516020808301516040808501516060860151608087015160a088015160c08901519451600098610e80989097969101612c90565b604051602081830303815290604052805190602001209050919050565b610ea5611445565b33600081815260036020526040902090610ec09082906117a1565b50565b610ecb61161b565b60008111610f2f5760405162461bcd60e51b815260206004820152602b60248201527f7469636b657456616c6964697479506572696f64206d7573742062652067726560448201526a061746572207468616e20360ac1b606482015260840161048e565b60068190556040517f9f5033568d78ae30f29f01e944f97b2216493bd19d1b46d429673acff3dcd67490610622906020808252601490820152731d1a58dad95d15985b1a591a5d1e54195c9a5bd960621b604082015260600190565b610f93611445565b610f9b6116ff565b6001600160a01b031663219bc76c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fd357600080fd5b505afa158015610fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100b9190612c42565b6110575760405162461bcd60e51b815260206004820181905260248201527f63757272656e7420726f756e64206973206e6f7420696e697469616c697a6564604482015260640161048e565b60005b83518110156110cc576110b984828151811061107857611078612cf2565b602002602001015184838151811061109257611092612cf2565b60200260200101518484815181106110ac576110ac612cf2565b60200260200101516119f6565b50806110c481612d1e565b91505061105a565b50505050565b60408051808201825260008082526020918201819052825180840184528181528083018290526001600160a01b03851682526003835290839020835180850190945280548452600101549183019190915261112c836106fe565b9050915091565b61113b611445565b6111436116ff565b6001600160a01b031663219bc76c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561117b57600080fd5b505afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190612c42565b6111ff5760405162461bcd60e51b815260206004820181905260248201527f63757272656e7420726f756e64206973206e6f7420696e697469616c697a6564604482015260640161048e565b600061120a84610e4b565b905061121884828585611a97565b6020808501516001600160a01b03166000908152600382526040908190208151808301909252805482526001810154928201929092526112579061150b565b6112985760405162461bcd60e51b81526020600482015260126024820152711cd95b99195c881a5cc81d5b9b1bd8dad95960721b604482015260640161048e565b80541515806112c9575060006112c786602001516001600160a01b031660009081526002602052604090205490565b115b6112e55760405162461bcd60e51b815260040161048e90612be6565b600082815260056020526040808220805460ff19166001179055825490870151111561134e5761134361133b8760200151886000015161133686600001548b6040015161199090919063ffffffff16565b611ce6565b83549061159f565b600083559050611363565b50604085015181546113609082611990565b82555b80156113d25761137c8660000151828860c00151611e7e565b85600001516001600160a01b031686602001516001600160a01b03167f8b87351a208c06e3ceee59d80725fd77a23b4129e1b51ca231fc89b40712649c836040516113c991815260200190565b60405180910390a35b85600001516001600160a01b031686602001516001600160a01b03167fc389eb51ed006dbf2528507f010efdf5225ea596e1e1741d74f550dab1925ee7886040015189606001518a60800151898c60c00151604051611435959493929190612d65565b60405180910390a3505050505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c99190612c42565b156115095760405162461bcd60e51b815260206004820152601060248201526f1cde5cdd195b481a5cc81c185d5cd95960821b604482015260640161048e565b565b60008160200151600014806106e9575081602001516115286116ff565b6001600160a01b0316638a19c8bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561156057600080fd5b505afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115989190612c29565b1092915050565b60006104398284612d90565b6115b3611f05565b6040516320283da960e01b81526001600160a01b0384811660048301526024820184905291909116906320283da990604401600060405180830381600087803b1580156115ff57600080fd5b505af1158015611613573d6000803e3d6000fd5b505050505050565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561166757600080fd5b505afa15801561167b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169f9190612da8565b6001600160a01b0316336001600160a01b0316146115095760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206d75737420626520436f6e74726f6c6c6572206f776e657200604482015260640161048e565b60008054604051631c2d8fb360e31b81527fe8438ea868df48e3fc21f2f087b993c9b1837dc0f6135064161ce7d7a1701fe860048201526001600160a01b039091169063e16c7d98906024015b60206040518083038186803b15801561176457600080fd5b505afa158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c9190612da8565b905090565b6040805180820190915282548152600183015460209091018190526118085760405162461bcd60e51b815260206004820152601d60248201527f6e6f20756e6c6f636b207265717565737420696e2070726f6772657373000000604482015260640161048e565b6000600183018190556040516001600160a01b038316917ffa044b7b93a40365dc68049797c2eb06918523d694e5d56e406cac3eb35578e591a25050565b61184e611f05565b6001600160a01b031663f6326fb3826040518263ffffffff1660e01b81526004016020604051808303818588803b15801561188857600080fd5b505af115801561189c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106fa9190612c42565b6001600160a01b0382166000908152600260205260409020546118e4908261159f565b6001600160a01b038316600081815260026020526040908190209290925590517fb52b99b9e83551fcbd069b559cc3e823e2a1a3bad8ece46561ea77524394c85090610e3f9084815260200190565b60008054604051631c2d8fb360e31b81527f2517d59a36a86548e38734e8ab416f42afff4bca78706a66ad65750dae7f9e3760048201526001600160a01b039091169063e16c7d989060240161174c565b60006104398284612dc5565b60006104398284612de7565b6000546001600160a01b031633146115095760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015260640161048e565b600080848484604051602401611a0e93929190612dfe565b60408051601f198184030181529181526020820180516001600160e01b03166376459e5b60e11b179052519091503090611a49908390612e8a565b6000604051808303816000865af19150503d8060008114611a86576040519150601f19603f3d011682016040523d82523d6000602084013e611a8b565b606091505b50909695505050505050565b83516001600160a01b0316611aee5760405162461bcd60e51b815260206004820181905260248201527f7469636b657420726563697069656e74206973206e756c6c2061646472657373604482015260640161048e565b60208401516001600160a01b0316611b485760405162461bcd60e51b815260206004820152601d60248201527f7469636b65742073656e646572206973206e756c6c2061646472657373000000604482015260640161048e565b611b558460c00151611f56565b60a08401516040805160208101849052016040516020818303038152906040528051906020012014611be05760405162461bcd60e51b815260206004820152602e60248201527f726563697069656e7452616e6420646f6573206e6f74206d617463682072656360448201526d0d2e0d2cadce8a4c2dcc890c2e6d60931b606482015260840161048e565b60008381526005602052604090205460ff1615611c305760405162461bcd60e51b815260206004820152600e60248201526d1d1a58dad95d081a5cc81d5cd95960921b604482015260640161048e565b611c3f846020015183856121a3565b611c965760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964207369676e6174757265206f766572207469636b65742068616044820152610e6d60f31b606482015260840161048e565b611ca58282866060015161223d565b6110cc5760405162461bcd60e51b81526020600482015260126024820152713a34b1b5b2ba103234b2103737ba103bb4b760711b604482015260640161048e565b600080611cf385856108bd565b90506000818411611d045783611d06565b815b90508015611e75576000611d186116ff565b6001600160a01b0316638a19c8bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5057600080fd5b505afa158015611d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d889190612c29565b6001600160a01b0388166000908152600260209081526040808320848452600181019092529091205491925090611dbf908461159f565b60008381526001830160209081526040808320939093556002840181528282206001600160a01b038b16835290522054611df9908461159f565b600083815260028301602090815260408083206001600160a01b038c1684529091529020558054611e2a9084611990565b8155604080516001600160a01b038981168252602082018690528a16917f5c2b394723f408a40a60335e24b71829642e35f350cebe2036a96a66e895ea98910160405180910390a250505b95945050505050565b6000611e8982612274565b509050611e94611933565b604051630ebad44b60e21b81526001600160a01b03868116600483015260248201869052604482018490529190911690633aeb512c90606401600060405180830381600087803b158015611ee757600080fd5b505af1158015611efb573d6000803e3d6000fd5b5050505050505050565b60008054604051631c2d8fb360e31b81527f6e58ad548d72b425ea94c15f453bf26caddb061d82b2551db7fdd3cefe0e994060048201526001600160a01b039091169063e16c7d989060240161174c565b600080611f6283612274565b915091506000611f706116ff565b6001600160a01b0316633aa4add4846040518263ffffffff1660e01b8152600401611f9d91815260200190565b60206040518083038186803b158015611fb557600080fd5b505afa158015611fc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fed9190612c29565b9050806120545760405162461bcd60e51b815260206004820152602f60248201527f7469636b6574206372656174696f6e526f756e6420646f6573206e6f7420686160448201526e0ecca40c240c4d8dec6d640d0c2e6d608b1b606482015260840161048e565b8082146120c95760405162461bcd60e51b815260206004820152603760248201527f7469636b6574206372656174696f6e526f756e64426c6f636b4861736820696e60448201527f76616c696420666f72206372656174696f6e526f756e64000000000000000000606482015260840161048e565b60006120d36116ff565b6001600160a01b0316638a19c8bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561210b57600080fd5b505afa15801561211f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121439190612c29565b90508061215b6006548661159f90919063ffffffff16565b1161219c5760405162461bcd60e51b81526020600482015260116024820152701d1a58dad95d081a5cc8195e1c1a5c9959607a1b604482015260640161048e565b5050505050565b600082516041146121f65760405162461bcd60e51b815260206004820152601860248201527f494e56414c49445f5349474e41545552455f4c454e4754480000000000000000604482015260640161048e565b600061220a612204846122f5565b85612330565b90506001600160a01b03811615801590611e755750806001600160a01b0316856001600160a01b03161495945050505050565b6000818484604051602001612253929190612ea6565b60408051601f19818403018152919052805160209091012010949350505050565b60008082516040146122e45760405162461bcd60e51b815260206004820152603360248201527f696e76616c6964206c656e67746820666f72207469636b657420617578446174604482015272613a206d75737420626520363420627974657360681b606482015260840161048e565b505060208101516040909101519091565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01610e80565b600080600061233f8585612354565b9150915061234c816123c4565b509392505050565b60008082516041141561238b5760208301516040840151606085015160001a61237f8782858561257f565b945094505050506123bd565b8251604014156123b557602083015160408401516123aa86838361266c565b9350935050506123bd565b506000905060025b9250929050565b60008160048111156123d8576123d8612ec8565b14156123e15750565b60018160048111156123f5576123f5612ec8565b14156124435760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161048e565b600281600481111561245757612457612ec8565b14156124a55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161048e565b60038160048111156124b9576124b9612ec8565b14156125125760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161048e565b600481600481111561252657612526612ec8565b1415610ec05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161048e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156125b65750600090506003612663565b8460ff16601b141580156125ce57508460ff16601c14155b156125df5750600090506004612663565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612633573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661265c57600060019250925050612663565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161268d8782888561257f565b935093505050935093915050565b6001600160a01b0381168114610ec057600080fd5b80356126bb8161269b565b919050565b6000602082840312156126d257600080fd5b81356104398161269b565b6000602082840312156126ef57600080fd5b5035919050565b6000806040838503121561270957600080fd5b82356127148161269b565b915060208301356127248161269b565b809150509250929050565b6000806040838503121561274257600080fd5b50508035926020909101359150565b8151815260208083015190820152604081016106e9565b60008060006060848603121561277d57600080fd5b83356127888161269b565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156127d6576127d661279d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156128055761280561279d565b604052919050565b600082601f83011261281e57600080fd5b813567ffffffffffffffff8111156128385761283861279d565b61284b601f8201601f19166020016127dc565b81815284602083860101111561286057600080fd5b816020850160208301376000918101602001919091529392505050565b600060e0828403121561288f57600080fd5b6128976127b3565b90506128a2826126b0565b81526128b0602083016126b0565b602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013567ffffffffffffffff8111156128f757600080fd5b6129038482850161280d565b60c08301525092915050565b60006020828403121561292157600080fd5b813567ffffffffffffffff81111561293857600080fd5b6129448482850161287d565b949350505050565b600067ffffffffffffffff8211156129665761296661279d565b5060051b60200190565b600082601f83011261298157600080fd5b813560206129966129918361294c565b6127dc565b82815260059290921b840181019181810190868411156129b557600080fd5b8286015b848110156129f557803567ffffffffffffffff8111156129d95760008081fd5b6129e78986838b010161280d565b8452509183019183016129b9565b509695505050505050565b600082601f830112612a1157600080fd5b81356020612a216129918361294c565b82815260059290921b84018101918181019086841115612a4057600080fd5b8286015b848110156129f55780358352918301918301612a44565b600080600060608486031215612a7057600080fd5b833567ffffffffffffffff80821115612a8857600080fd5b818601915086601f830112612a9c57600080fd5b81356020612aac6129918361294c565b82815260059290921b8401810191818101908a841115612acb57600080fd5b8286015b84811015612b0357803586811115612ae75760008081fd5b612af58d86838b010161287d565b845250918301918301612acf565b5097505087013592505080821115612b1a57600080fd5b612b2687838801612970565b93506040860135915080821115612b3c57600080fd5b50612b4986828701612a00565b9150509250925092565b825181526020808401518183015282516040830152820151606082015260808101610439565b600080600060608486031215612b8e57600080fd5b833567ffffffffffffffff80821115612ba657600080fd5b612bb28783880161287d565b94506020860135915080821115612bc857600080fd5b50612bd58682870161280d565b925050604084013590509250925092565b60208082526023908201527f73656e646572206465706f73697420616e64207265736572766520617265207a60408201526265726f60e81b606082015260800190565b600060208284031215612c3b57600080fd5b5051919050565b600060208284031215612c5457600080fd5b8151801515811461043957600080fd5b60005b83811015612c7f578181015183820152602001612c67565b838111156110cc5750506000910152565b60006bffffffffffffffffffffffff19808a60601b168352808960601b166014840152508660288301528560488301528460688301528360888301528251612cdf8160a8850160208701612c64565b9190910160a80198975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612d3257612d32612d08565b5060010190565b60008151808452612d51816020860160208601612c64565b601f01601f19169290920160200192915050565b85815284602082015283604082015282606082015260a060808201526000610ac760a0830184612d39565b60008219821115612da357612da3612d08565b500190565b600060208284031215612dba57600080fd5b81516104398161269b565b600082612de257634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612df957612df9612d08565b500390565b60608152600060018060a01b0380865116606084015280602087015116608084015250604085015160a0830152606085015160c0830152608085015160e083015260a085015161010083015260c085015160e0610120840152612e65610140840182612d39565b90508281036020840152612e798186612d39565b915050826040830152949350505050565b60008251612e9c818460208701612c64565b9190910192915050565b60008351612eb8818460208801612c64565b9190910191825250602001919050565b634e487b7160e01b600052602160045260246000fdfea26469706673582212208c3e7caca484083884d0cfaede3b1bd63bef066a92632853811fd1321dbe68cd64736f6c63430008090033000000000000000000000000d8e8328501e9645d16cf49539efc04f734606ee4