4 txs
11 calls
constructor
constructor(address _ripeToken, address _feeRecipient, address _initialOwner)
functions
auctionContract
viewfunction auctionContract() view returns (address)
BATCH_SIZE
viewfunction BATCH_SIZE() view returns (uint256)
canDistribute
viewfunction canDistribute() view returns (bool)
distributedTotal
viewfunction distributedTotal() view returns (uint256)
DISTRIBUTION_WINDOW_LENGTH
viewfunction DISTRIBUTION_WINDOW_LENGTH() view returns (uint256)
distributionCount
viewfunction distributionCount() view returns (uint256)
distributionExecuted
viewfunction distributionExecuted(uint256) view returns (bool)
distributionsExtension
viewfunction distributionsExtension() view returns (address)
feeRecipient
viewfunction feeRecipient() view returns (address)
getDistributionWindowEnd
viewfunction getDistributionWindowEnd(uint256 distributionId) view returns (uint256)
getDistributionWindowStart
viewfunction getDistributionWindowStart(uint256 distributionId) view returns (uint256)
getExecutedDistributionCount
viewfunction getExecutedDistributionCount() view returns (uint256)
getExecutedDistributions
viewfunction getExecutedDistributions() view returns (uint256[])
getNextAvailableDistributionId
viewfunction getNextAvailableDistributionId() view returns (uint256)
getNextDistributionTime
viewfunction getNextDistributionTime() view returns (uint256)
getVoidRecipient
viewfunction getVoidRecipient(uint256 index) view returns (address)
owner
viewfunction owner() view returns (address)
ripeToken
viewfunction ripeToken() view returns (address)
TOTAL_DISTRIBUTIONS
viewfunction TOTAL_DISTRIBUTIONS() view returns (uint256)
VESTING_DURATION
viewfunction VESTING_DURATION() view returns (uint256)
voidRecipients
viewfunction voidRecipients(uint256) view returns (address)
distribute
nonpayablefunction distribute(uint256 distributionId)
recoverNonRipeTokens
nonpayablefunction recoverNonRipeTokens(address token, address recipient)
renounceOwnership
nonpayablefunction renounceOwnership()
setAuctionContract
nonpayablefunction setAuctionContract(address _auctionContract)
setDistributionsExtension
nonpayablefunction setDistributionsExtension(address _extension)
sweepNonRipeTokens
nonpayablefunction sweepNonRipeTokens(address token)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateFeeRecipient
nonpayablefunction updateFeeRecipient(address _newRecipient)
events
AuctionContractUpdated
event AuctionContractUpdated(address indexed auctionContract)
FeeRecipientUpdated
event FeeRecipientUpdated(address indexed oldRecipient, address indexed newRecipient)
NonRipeTokensRecovered
event NonRipeTokensRecovered(address indexed token, address indexed recipient, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RitualComplete
event RitualComplete(uint256 indexed ritualNumber, address indexed participant, address indexed voidRecipient, uint256 amountReleased, uint256 timestamp, uint256 totalDistributionsCompleted)
errors
AuctionNotAuthorized
error AuctionNotAuthorized()
AwaitingRitualPreparation
error AwaitingRitualPreparation()
CannotRecoverRipe
error CannotRecoverRipe()
DistributionAlreadyExecuted
error DistributionAlreadyExecuted()
InvalidDistributionId
error InvalidDistributionId()
InvalidRecipient
error InvalidRecipient()
TheRitualIsComplete
error TheRitualIsComplete()
TheVoidIsNotYetReady
error TheVoidIsNotYetReady()
TransferFailed
error TransferFailed()
creation bytecode
0x60a06040523480156200001157600080fd5b506040516200358138038062003581833981810160405281019062000037919062000223565b620000576200004b620000ed60201b60201c565b620000f560201b60201c565b600180819055508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000e481620000f560201b60201c565b5050506200027f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001eb82620001be565b9050919050565b620001fd81620001de565b81146200020957600080fd5b50565b6000815190506200021d81620001f2565b92915050565b6000806000606084860312156200023f576200023e620001b9565b5b60006200024f868287016200020c565b935050602062000262868287016200020c565b925050604062000275868287016200020c565b9150509250925092565b608051613299620002e8600039600081816107ad01528181610d1d01528181610ee30152818161123801528181611698015281816117d001528181611875015281816118b00152818161194301528181611bf201528181612104015261219701526132996000f3fe6080604052600436106101c65760003560e01c806391c05b0b116100f7578063ce5d515f11610095578063f0c1214f11610064578063f0c1214f14610643578063f160d3691461066e578063f2fde38b14610697578063fb71a9e0146106c0576101cd565b8063ce5d515f14610585578063d677947e146105c2578063dc45c7b5146105ed578063ee5f416e14610618576101cd565b8063a17f9f39116100d1578063a17f9f39146104c7578063afc3002e146104f2578063b2bd78a91461051d578063c65c3d951461055a576101cd565b806391c05b0b1461044a5780639d2c1e09146104735780639dfe43521461049e576101cd565b806349faa4d4116101645780635485208b1161013e5780635485208b146103a0578063715018a6146103cb57806387d3297a146103e25780638da5cb5b1461041f576101cd565b806349faa4d41461031f5780634c89b2671461034a5780634cfc4d3014610375576101cd565b80633ee70031116101a05780633ee700311461025157806341a90f961461027a57806343d2a759146102b757806346904840146102f4576101cd565b8063023924c7146101d25780630ab8afac146101fb5780630c5dec2a14610226576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190612600565b6106e9565b005b34801561020757600080fd5b50610210610778565b60405161021d919061268c565b60405180910390f35b34801561023257600080fd5b5061023b61079e565b60405161024891906126c0565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190612600565b6107a3565b005b34801561028657600080fd5b506102a1600480360381019061029c9190612707565b610aa2565b6040516102ae9190612743565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d99190612707565b610aea565b6040516102eb9190612743565b60405180910390f35b34801561030057600080fd5b50610309610b29565b6040516103169190612743565b60405180910390f35b34801561032b57600080fd5b50610334610b4f565b60405161034191906126c0565b60405180910390f35b34801561035657600080fd5b5061035f610b5e565b60405161036c91906126c0565b60405180910390f35b34801561038157600080fd5b5061038a610b72565b60405161039791906126c0565b60405180910390f35b3480156103ac57600080fd5b506103b5610b7a565b6040516103c2919061281c565b60405180910390f35b3480156103d757600080fd5b506103e0610cbe565b005b3480156103ee57600080fd5b5061040960048036038101906104049190612707565b610cd2565b60405161041691906126c0565b60405180910390f35b34801561042b57600080fd5b50610434610de7565b6040516104419190612743565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c9190612707565b610e10565b005b34801561047f57600080fd5b506104886114eb565b60405161049591906126c0565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190612600565b611551565b005b3480156104d357600080fd5b506104dc61159d565b6040516104e991906126c0565b60405180910390f35b3480156104fe57600080fd5b506105076115a3565b604051610514919061285f565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f9190612707565b6115c9565b60405161055191906126c0565b60405180910390f35b34801561056657600080fd5b5061056f611752565b60405161057c91906126c0565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a79190612707565b611758565b6040516105b99190612895565b60405180910390f35b3480156105ce57600080fd5b506105d7611778565b6040516105e49190612895565b60405180910390f35b3480156105f957600080fd5b50610602611873565b60405161060f91906128d1565b60405180910390f35b34801561062457600080fd5b5061062d611897565b60405161063a91906126c0565b60405180910390f35b34801561064f57600080fd5b50610658611a3d565b60405161066591906126c0565b60405180910390f35b34801561067a57600080fd5b5061069560048036038101906106909190612600565b611a97565b005b3480156106a357600080fd5b506106be60048036038101906106b99190612600565b611b65565b005b3480156106cc57600080fd5b506106e760048036038101906106e291906128ec565b611be8565b005b6106f1611ee8565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f43bba9fc462a2af50177549d51fef3faee7889e40cdcc7eab34c6fe074dbc86d60405160405180910390a250565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b604081565b6107ab611ee8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610830576040517fe119b6ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361093d574790506000811115610938576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516108b99061295d565b60006040518083038185875af1925050503d80600081146108f6576040519150601f19603f3d011682016040523d82523d6000602084013e6108fb565b606091505b5050905080610936576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b610a17565b60008290508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161097b9190612743565b602060405180830381865afa158015610998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bc9190612987565b91506000821115610a1557610a14600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838373ffffffffffffffffffffffffffffffffffffffff16611f669092919063ffffffff16565b5b505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f9b31087ec8308912370ebf28c83502c222c5c2b11c8725dae7e319e923a6b55c83604051610a9691906126c0565b60405180910390a35050565b600060088281548110610ab857610ab76129b4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60088181548110610afa57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6a06765c793fa10079d0000081565b60406309660180610b6f9190612a41565b81565b630966018081565b606060003073ffffffffffffffffffffffffffffffffffffffff16639d2c1e096040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190612987565b905060008167ffffffffffffffff811115610c0b57610c0a612a72565b5b604051908082528060200260200182016040528015610c395781602001602082028036833780820191505090505b509050600080600190505b60408111610cb4576005600082815260200190815260200160002060009054906101000a900460ff1615610ca15780838381518110610c8657610c856129b4565b5b6020026020010181815250508180610c9d90612aa1565b9250505b8080610cac90612aa1565b915050610c44565b5081935050505090565b610cc6611ee8565b610cd06000611fec565b565b600080821480610ce25750604082115b15610d19576040517f0c76eab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8660a786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daa9190612987565b905060406309660180610dbd9190612a41565b600184610dca9190612ae9565b610dd49190612b1d565b81610ddf9190612b5f565b915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e186120b0565b6000811480610e275750604081115b15610e5e576040517f0c76eab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005600082815260200190815260200160002060009054906101000a900460ff1615610eb6576040517f75e27e9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ec1426120ff565b9050600060035482610ed39190612ae9565b90506a06765c793fa10079d000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f3a9190612743565b602060405180830381865afa158015610f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7b9190612987565b1015610fb3576040517fe6f65d9d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6a06765c793fa10079d00000811015610ff8576040517fd92891e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611080576040517f5b0233c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378bd7935856040518263ffffffff1660e01b81526004016110dd91906126c0565b60e060405180830381865afa1580156110fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111e9190612cea565b90508060c0015161115b576040517f5b0233c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160a0015173ffffffffffffffffffffffffffffffffffffffff16146111c4576040517f5b0233c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006111cf856122a4565b90506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb836a06765c793fa10079d000006040518363ffffffff1660e01b815260040161129c929190612d17565b6020604051808303816000875af11580156112bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112df9190612d40565b905080611318576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016005600088815260200190815260200160002060006101000a81548160ff0219169083151502179055506a06765c793fa10079d00000600360008282546113619190612b5f565b925050819055506004600081548092919061137b90612aa1565b9190505550600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146457600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637fe87f69336040518263ffffffff1660e01b81526004016114319190612743565b600060405180830381600087803b15801561144b57600080fd5b505af115801561145f573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16877facd2888d008b5fe0f0c2c24397a357d85ca9f19b1b10675124815ce2ac479d626a06765c793fa10079d00000426004546040516114d393929190612d6d565b60405180910390a450505050506114e86122ed565b50565b600080600090506000600190505b60408111611549576005600082815260200190815260200160002060009054906101000a900460ff161561153657818061153290612aa1565b9250505b808061154190612aa1565b9150506114f9565b508091505090565b611559611ee8565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808214806115d95750604082115b15611610576040517f0c76eab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166387d3297a846040518263ffffffff1660e01b815260040161164b91906126c0565b602060405180830381865afa158015611668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168c9190612987565b90506040830361172d577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166386fab45e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612987565b91505061174d565b6040630966018061173e9190612a41565b816117499190612b5f565b9150505b919050565b60045481565b60056020528060005260406000206000915054906101000a900460ff1681565b600060406004541061178d5760009050611870565b6000611798426120ff565b90506000600354826117aa9190612ae9565b90506a06765c793fa10079d00000811015801561186b57506a06765c793fa10079d000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118279190612743565b602060405180830381865afa158015611844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118689190612987565b10155b925050505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006040600454106118ac5760009050611a3a565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8660a786040518163ffffffff1660e01b8152600401602060405180830381865afa158015611919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193d9190612987565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166386fab45e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d09190612987565b9050600082826119e09190612ae9565b905060006a06765c793fa10079d000006003546119fd9190612b5f565b905060006b019d971e4fe8401e740000008383611a1a9190612b1d565b611a249190612a41565b85611a2f9190612b5f565b905080955050505050505b90565b600080600190505b60408111611a8e576005600082815260200190815260200160002060009054906101000a900460ff16611a7b5780915050611a94565b8080611a8690612aa1565b915050611a45565b50600090505b90565b611a9f611ee8565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360405160405180910390a35050565b611b6d611ee8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd390612e27565b60405180910390fd5b611be581611fec565b50565b611bf0611ee8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c75576040517fe119b6ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cdb576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dc6574790506000811115611dc15760008273ffffffffffffffffffffffffffffffffffffffff1682604051611d429061295d565b60006040518083038185875af1925050503d8060008114611d7f576040519150601f19603f3d011682016040523d82523d6000602084013e611d84565b606091505b5050905080611dbf576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b611e7e565b60008390508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611e049190612743565b602060405180830381865afa158015611e21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e459190612987565b91506000821115611e7c57611e7b83838373ffffffffffffffffffffffffffffffffffffffff16611f669092919063ffffffff16565b5b505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b31087ec8308912370ebf28c83502c222c5c2b11c8725dae7e319e923a6b55c83604051611edb91906126c0565b60405180910390a3505050565b611ef06122f6565b73ffffffffffffffffffffffffffffffffffffffff16611f0e610de7565b73ffffffffffffffffffffffffffffffffffffffff1614611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90612e93565b60405180910390fd5b565b611fe78363a9059cbb60e01b8484604051602401611f85929190612d17565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506122fe565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6002600154036120f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ec90612eff565b60405180910390fd5b6002600181905550565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8660a786040518163ffffffff1660e01b8152600401602060405180830381865afa15801561216d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121919190612987565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166386fab45e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122249190612987565b90508184116122385760009250505061229f565b808410612255576b019d971e4fe8401e740000009250505061229f565b600082856122639190612ae9565b9050600083836122739190612ae9565b905080826b019d971e4fe8401e7400000061228e9190612b1d565b6122989190612a41565b9450505050505b919050565b6000806001436122b49190612ae9565b4033846040516020016122c993929190612fb3565b6040516020818303038152906040528051906020012090508060001c915050919050565b60018081905550565b600033905090565b6000612360826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123c69092919063ffffffff16565b90506000815114806123825750808060200190518101906123819190612d40565b5b6123c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b890613062565b60405180910390fd5b505050565b60606123d584846000856123de565b90509392505050565b606082471015612423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241a906130f4565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161244c919061317a565b60006040518083038185875af1925050503d8060008114612489576040519150601f19603f3d011682016040523d82523d6000602084013e61248e565b606091505b509150915061249f878383876124ab565b92505050949350505050565b6060831561250d576000835103612505576124c585612520565b612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fb906131dd565b60405180910390fd5b5b829050612518565b6125178383612543565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156125565781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258a9190613241565b60405180910390fd5b6000604051905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125cd826125a2565b9050919050565b6125dd816125c2565b81146125e857600080fd5b50565b6000813590506125fa816125d4565b92915050565b6000602082840312156126165761261561259d565b5b6000612624848285016125eb565b91505092915050565b6000819050919050565b600061265261264d612648846125a2565b61262d565b6125a2565b9050919050565b600061266482612637565b9050919050565b600061267682612659565b9050919050565b6126868161266b565b82525050565b60006020820190506126a1600083018461267d565b92915050565b6000819050919050565b6126ba816126a7565b82525050565b60006020820190506126d560008301846126b1565b92915050565b6126e4816126a7565b81146126ef57600080fd5b50565b600081359050612701816126db565b92915050565b60006020828403121561271d5761271c61259d565b5b600061272b848285016126f2565b91505092915050565b61273d816125c2565b82525050565b60006020820190506127586000830184612734565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612793816126a7565b82525050565b60006127a5838361278a565b60208301905092915050565b6000602082019050919050565b60006127c98261275e565b6127d38185612769565b93506127de8361277a565b8060005b8381101561280f5781516127f68882612799565b9750612801836127b1565b9250506001810190506127e2565b5085935050505092915050565b6000602082019050818103600083015261283681846127be565b905092915050565b600061284982612659565b9050919050565b6128598161283e565b82525050565b60006020820190506128746000830184612850565b92915050565b60008115159050919050565b61288f8161287a565b82525050565b60006020820190506128aa6000830184612886565b92915050565b60006128bb82612659565b9050919050565b6128cb816128b0565b82525050565b60006020820190506128e660008301846128c2565b92915050565b600080604083850312156129035761290261259d565b5b6000612911858286016125eb565b9250506020612922858286016125eb565b9150509250929050565b600081905092915050565b50565b600061294760008361292c565b915061295282612937565b600082019050919050565b60006129688261293a565b9150819050919050565b600081519050612981816126db565b92915050565b60006020828403121561299d5761299c61259d565b5b60006129ab84828501612972565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a4c826126a7565b9150612a57836126a7565b925082612a6757612a666129e3565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000612aac826126a7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ade57612add612a12565b5b600182019050919050565b6000612af4826126a7565b9150612aff836126a7565b9250828203905081811115612b1757612b16612a12565b5b92915050565b6000612b28826126a7565b9150612b33836126a7565b9250828202612b41816126a7565b91508282048414831517612b5857612b57612a12565b5b5092915050565b6000612b6a826126a7565b9150612b75836126a7565b9250828201905080821115612b8d57612b8c612a12565b5b92915050565b600080fd5b6000601f19601f8301169050919050565b612bb282612b98565b810181811067ffffffffffffffff82111715612bd157612bd0612a72565b5b80604052505050565b6000612be4612593565b9050612bf08282612ba9565b919050565b600081519050612c04816125d4565b92915050565b612c138161287a565b8114612c1e57600080fd5b50565b600081519050612c3081612c0a565b92915050565b600060e08284031215612c4c57612c4b612b93565b5b612c5660e0612bda565b90506000612c6684828501612972565b6000830152506020612c7a84828501612972565b6020830152506040612c8e84828501612972565b6040830152506060612ca284828501612972565b6060830152506080612cb684828501612972565b60808301525060a0612cca84828501612bf5565b60a08301525060c0612cde84828501612c21565b60c08301525092915050565b600060e08284031215612d0057612cff61259d565b5b6000612d0e84828501612c36565b91505092915050565b6000604082019050612d2c6000830185612734565b612d3960208301846126b1565b9392505050565b600060208284031215612d5657612d5561259d565b5b6000612d6484828501612c21565b91505092915050565b6000606082019050612d8260008301866126b1565b612d8f60208301856126b1565b612d9c60408301846126b1565b949350505050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e11602683612da4565b9150612e1c82612db5565b604082019050919050565b60006020820190508181036000830152612e4081612e04565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e7d602083612da4565b9150612e8882612e47565b602082019050919050565b60006020820190508181036000830152612eac81612e70565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612ee9601f83612da4565b9150612ef482612eb3565b602082019050919050565b60006020820190508181036000830152612f1881612edc565b9050919050565b6000819050919050565b6000819050919050565b612f44612f3f82612f1f565b612f29565b82525050565b60008160601b9050919050565b6000612f6282612f4a565b9050919050565b6000612f7482612f57565b9050919050565b612f8c612f87826125c2565b612f69565b82525050565b6000819050919050565b612fad612fa8826126a7565b612f92565b82525050565b6000612fbf8286612f33565b602082019150612fcf8285612f7b565b601482019150612fdf8284612f9c565b602082019150819050949350505050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061304c602a83612da4565b915061305782612ff0565b604082019050919050565b6000602082019050818103600083015261307b8161303f565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006130de602683612da4565b91506130e982613082565b604082019050919050565b6000602082019050818103600083015261310d816130d1565b9050919050565b600081519050919050565b60005b8381101561313d578082015181840152602081019050613122565b60008484015250505050565b600061315482613114565b61315e818561292c565b935061316e81856020860161311f565b80840191505092915050565b60006131868284613149565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006131c7601d83612da4565b91506131d282613191565b602082019050919050565b600060208201905081810360008301526131f6816131ba565b9050919050565b600081519050919050565b6000613213826131fd565b61321d8185612da4565b935061322d81856020860161311f565b61323681612b98565b840191505092915050565b6000602082019050818103600083015261325b8184613208565b90509291505056fea2646970667358221220d53e834976c79aa588a3cfad25779f6514bdff059e5be826074ff0180b92ce0764736f6c6343000814003300000000000000000000000088b4658c54a2562eb91662cda98b2a59197b0799000000000000000000000000194a63fb8fef421a8fe8d37f9c5cca53729c2595000000000000000000000000cb43078c32423f5348cab5885911c3b5fae217f9