0 txs
1 call
constructor
constructor()
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
bribes
viewfunction bribes(uint256, uint256) view returns (address pool, bytes32 merkleRoot)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getBribe
viewfunction getBribe(uint256 _weekNo, uint256 _index) view returns (tuple)
getBribes
viewfunction getBribes(uint256 _weekNo) view returns (tuple[])
getBribesLength
viewfunction getBribesLength(uint256 _weekNo) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasClaimed
viewfunction hasClaimed(uint256, uint256, address) view returns (bool)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
THIRD_PARTY_ROLE
viewfunction THIRD_PARTY_ROLE() view returns (bytes32)
addRewardAmounts
payablefunction addRewardAmounts(uint256 _weekNo, uint256 _index, uint256[] _rewardTokenIndexs, uint256[] _rewardAmounts) payable
adminClearBribeAmounts
nonpayablefunction adminClearBribeAmounts(uint256 _weekNo, uint256 _index, uint256[] _rewardTokenIndexs)
adminWithdraw
nonpayablefunction adminWithdraw(address _token, uint256 _amount)
batchClaim
nonpayablefunction batchClaim(uint256[] _weekNo, uint256[][] _index, uint256[][][] _amounts, bytes32[][][] _proof)
batchCreateBribe
nonpayablefunction batchCreateBribe(uint256 _weekNo, address[] _pool, address[][] _rewardTokens, uint256[][] _rewardAmounts)
batchEndBribe
payablefunction batchEndBribe(uint256 _weekNo, uint256[] _index, bytes32[] _merkleRoot, bool _skipTransfer) payable
claim
nonpayablefunction claim(uint256 _weekNo, uint256 _index, uint256[] _amounts, bytes32[] _proof)
createBribe
nonpayablefunction createBribe(uint256 _weekNo, address _pool, address[] _rewardTokens, uint256[] _rewardAmounts)
endBribe
payablefunction endBribe(uint256 _weekNo, uint256 _index, bytes32 _merkleRoot, bool _skipTransfer) payable
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
AdminClearedBribeAmounts
event AdminClearedBribeAmounts(uint256 _weekNo, uint256 _index, uint256[] _rewardTokenIndexs)
AdminWithdrawn
event AdminWithdrawn(address indexed _token, uint256 _amount)
BribeCreated
event BribeCreated(uint256 _weekNo, address indexed _pool, address[] _rewardTokens, uint256[] _rewardAmounts)
BribeEnded
event BribeEnded(uint256 _weekNo, address indexed _pool, bytes32 _merkleRoot)
Claimed
event Claimed(address indexed _user, uint256 _weekNo, address indexed _pool, uint256[] _rewardAmounts)
Initialized
event Initialized(uint8 version)
RewardAmountsAdded
event RewardAmountsAdded(address indexed _caller, uint256 _weekNo, address indexed _pool, uint256[] _rewardTokenIndexs, uint256[] _rewardAmounts)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
InvalidMerkleProof
error InvalidMerkleProof()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61353f80620000f46000396000f3fe60806040526004361061018b5760003560e01c80638129fc1c116100d6578063a217fddf1161007f578063d547741f11610059578063d547741f146104d0578063dea0e81f146104f0578063e4cdc1121461051057600080fd5b8063a217fddf1461047b578063a487e64714610490578063d2ff8d26146104a357600080fd5b806393837c15116100b057806393837c15146103ef578063982110941461042e578063998e8ec11461045b57600080fd5b80638129fc1c146103605780638ecbed221461037557806391d14854146103a957600080fd5b8063401d44821161013857806369547f2d1161011257806369547f2d146102d85780636d809a3c1461031957806375b238fc1461032c57600080fd5b8063401d448214610278578063449a11a3146102985780635bc225b8146102b857600080fd5b80632f2ff15d116101695780632f2ff15d1461021857806335347fc51461023857806336568abe1461025857600080fd5b806301ffc9a714610190578063248a9ca3146101c557806329483b4b14610203575b600080fd5b34801561019c57600080fd5b506101b06101ab366004612bae565b61053d565b60405190151581526020015b60405180910390f35b3480156101d157600080fd5b506101f56101e0366004612bf0565b60009081526065602052604090206001015490565b6040519081526020016101bc565b610216610211366004612c17565b6105d6565b005b34801561022457600080fd5b50610216610233366004612c74565b610660565b34801561024457600080fd5b50610216610253366004612cec565b61068a565b34801561026457600080fd5b50610216610273366004612c74565b6109ef565b34801561028457600080fd5b50610216610293366004612d6f565b610a7b565b3480156102a457600080fd5b506102166102b3366004612d99565b610af8565b3480156102c457600080fd5b506102166102d3366004612dec565b610db6565b3480156102e457600080fd5b506101b06102f3366004612eb0565b609860209081526000938452604080852082529284528284209052825290205460ff1681565b610216610327366004612cec565b610f04565b34801561033857600080fd5b506101f57fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b34801561036c57600080fd5b506102166112ad565b34801561038157600080fd5b506101f57f2d899ede8ca37f12c1a7a45b556f9587320db01ffe4feba254ae0c853a5ef98081565b3480156103b557600080fd5b506101b06103c4366004612c74565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103fb57600080fd5b5061040f61040a366004612ee5565b611402565b604080516001600160a01b0390931683526020830191909152016101bc565b34801561043a57600080fd5b5061044e610449366004612bf0565b611448565b6040516101bc9190612fb8565b34801561046757600080fd5b5061021661047636600461301a565b61158a565b34801561048757600080fd5b506101f5600081565b61021661049e3660046130be565b611644565b3480156104af57600080fd5b506104c36104be366004612ee5565b611722565b6040516101bc919061314a565b3480156104dc57600080fd5b506102166104eb366004612c74565b61185b565b3480156104fc57600080fd5b5061021661050b36600461315d565b611880565b34801561051c57600080fd5b506101f561052b366004612bf0565b60009081526097602052604090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806105d057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081611df3565b600061060e86868686611dfd565b90503481146106585760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206d73672e76616c756560781b60448201526064015b60405180910390fd5b505050505050565b60008281526065602052604090206001015461067b81611df3565b610685838361203e565b505050565b60008681526097602052604081208054879081106106aa576106aa6131a3565b600091825260209182902060408051608081018252600490930290910180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561072b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161070d575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561078357602002820191906000526020600020905b81548152602001906001019080831161076f575b50505091835250506003919091015460209091015280519091506001600160a01b03166107e25760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420627269626560981b604482015260640161064f565b60608101516108335760405162461bcd60e51b815260206004820152600f60248201527f6272696265206e6f7420656e6465640000000000000000000000000000000000604482015260640161064f565b6000878152609860209081526040808320898452825280832033845290915290205460ff16156108a55760405162461bcd60e51b815260206004820152600f60248201527f616c726561647920636c61696d65640000000000000000000000000000000000604482015260640161064f565b6108b7816060015133878787876120e0565b6108ed576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260986020908152604080832089845282528083203384529091528120805460ff191660011790555b8160200151518110156109925760008260200151828151811061093f5761093f6131a3565b60200260200101519050600087878481811061095d5761095d6131a3565b6020029190910135915061097d90506001600160a01b0383163383612179565b5050808061098a906131cf565b91505061091a565b5080600001516001600160a01b0316336001600160a01b03167f49837368645bef7a9c0ea1a75215e73ca4893908e62abc295bdb8da50b5d837c8988886040516109de93929190613233565b60405180910390a350505050505050565b6001600160a01b0381163314610a6d5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161064f565b610a7782826121b2565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610aa581611df3565b610ab0833384612179565b826001600160a01b03167fca1cf43de312865665f595e88f569f9d5246690c07df26e86aba01147e6d131483604051610aeb91815260200190565b60405180910390a2505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610b2281611df3565b6000858152609760205260408120805486908110610b4257610b426131a3565b6000918252602090912060049091020180549091506001600160a01b0316610b9c5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420627269626560981b604482015260640161064f565b600381015415610bee5760405162461bcd60e51b815260206004820152601360248201527f627269626520616c726561647920656e64656400000000000000000000000000604482015260640161064f565b8215801590610c01575060018101548311155b610c4d5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964205f726577617264546f6b656e496e64657873000000000000604482015260640161064f565b60005b83811015610d70576000858583818110610c6c57610c6c6131a3565b90506020020135905082600101805490508110610ccb5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964205f726577617264546f6b656e496e64657873000000000000604482015260640161064f565b6000836002018281548110610ce257610ce26131a3565b906000526020600020015411610d3a5760405162461bcd60e51b815260206004820152601160248201527f627269626520616d6f756e742069732030000000000000000000000000000000604482015260640161064f565b6000836002018281548110610d5157610d516131a3565b6000918252602090912001555080610d68816131cf565b915050610c50565b507f66f2d8fa8abe79f4b5bb54d11e68b0019b548aa26e7712b6a172626ae285923686868686604051610da69493929190613256565b60405180910390a1505050505050565b60005b87811015610ef95760005b878783818110610dd657610dd66131a3565b9050602002810190610de89190613280565b9050811015610ee657610ed48a8a84818110610e0657610e066131a3565b90506020020135898985818110610e1f57610e1f6131a3565b9050602002810190610e319190613280565b84818110610e4157610e416131a3565b90506020020135888886818110610e5a57610e5a6131a3565b9050602002810190610e6c9190613280565b85818110610e7c57610e7c6131a3565b9050602002810190610e8e9190613280565b888888818110610ea057610ea06131a3565b9050602002810190610eb29190613280565b87818110610ec257610ec26131a3565b90506020028101906102539190613280565b80610ede816131cf565b915050610dc4565b5080610ef1816131cf565b915050610db9565b505050505050505050565b7f2d899ede8ca37f12c1a7a45b556f9587320db01ffe4feba254ae0c853a5ef980610f2e81611df3565b6000878152609760205260408120805488908110610f4e57610f4e6131a3565b6000918252602090912060049091020180549091506001600160a01b0316610fa85760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420627269626560981b604482015260640161064f565b600381015415610ffa5760405162461bcd60e51b815260206004820152601360248201527f627269626520616c726561647920656e64656400000000000000000000000000604482015260640161064f565b848314801561100857508415155b61107a5760405162461bcd60e51b815260206004820152602c60248201527f696e76616c6964205f726577617264546f6b656e496e64657873206f72205f7260448201527f6577617264416d6f756e74730000000000000000000000000000000000000000606482015260840161064f565b6000805b8681101561120857600088888381811061109a5761109a6131a3565b905060200201359050836001018054905081106110f95760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964205f726577617264546f6b656e496e64657873000000000000604482015260640161064f565b6000846001018281548110611110576111106131a3565b6000918252602090912001546001600160a01b0316905073efefefefefefefefefefefefefefefefefefefef810361116d57878784818110611154576111546131a3565b905060200201358461116691906132ca565b93506111a5565b6111a533308a8a87818110611184576111846131a3565b90506020020135846001600160a01b0316612235909392919063ffffffff16565b8787848181106111b7576111b76131a3565b905060200201358560020183815481106111d3576111d36131a3565b9060005260206000200160008282546111ec91906132ca565b9250508190555050508080611200906131cf565b91505061107e565b508015611252573481146112525760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206d73672e76616c756560781b604482015260640161064f565b81546040516001600160a01b039091169033907f252b4da569013071431bb4a8a25af9eb6e1c905ab2a4cfaa3e146d4f04b4ed459061129a908d908c908c908c908c906132dd565b60405180910390a3505050505050505050565b600054610100900460ff16158080156112cd5750600054600160ff909116105b806112e75750303b1580156112e7575060005460ff166001145b6113595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064f565b6000805460ff19166001179055801561137c576000805461ff0019166101001790555b6113846122c3565b61138f60003361203e565b6113b97fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217753361203e565b80156113ff576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6097602052816000526040600020818154811061141e57600080fd5b6000918252602090912060049091020180546003909101546001600160a01b039091169250905082565b606060976000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561157f576000848152602090819020604080516080810182526004860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561150557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114e7575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561155d57602002820191906000526020600020905b815481526020019060010190808311611549575b505050505081526020016003820154815250508152602001906001019061147d565b505050509050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756115b481611df3565b60005b86811015610ef957611632898989848181106115d5576115d56131a3565b90506020020160208101906115ea919061330a565b8888858181106115fc576115fc6131a3565b905060200281019061160e9190613280565b888887818110611620576116206131a3565b905060200281019061050b9190613280565b8061163c816131cf565b9150506115b7565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561166e81611df3565b6000805b868110156116d4576116b689898984818110611690576116906131a3565b905060200201358888858181106116a9576116a96131a3565b9050602002013587611dfd565b6116c090836132ca565b9150806116cc816131cf565b915050611672565b503481146117185760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206d73672e76616c756560781b604482015260640161064f565b5050505050505050565b604080516080810182526000808252606060208301819052928201839052918101919091526000838152609760205260409020805483908110611767576117676131a3565b600091825260209182902060408051608081018252600490930290910180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156117e857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117ca575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561184057602002820191906000526020600020905b81548152602001906001019080831161182c575b50505050508152602001600382015481525050905092915050565b60008281526065602052604090206001015461187681611df3565b61068583836121b2565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756118aa81611df3565b6001600160a01b0386166119005760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964205f706f6f6c00000000000000000000000000000000000000604482015260640161064f565b60005b6000888152609760205260409020548110156119e457600088815260976020526040902080546001600160a01b038916919083908110611945576119456131a3565b60009182526020909120600490910201546001600160a01b0316036119d25760405162461bcd60e51b815260206004820152602260248201527f627269626520666f72207468697320706f6f6c20616c7265616479206578697360448201527f7473000000000000000000000000000000000000000000000000000000000000606482015260840161064f565b806119dc816131cf565b915050611903565b5083611a325760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964205f726577617264546f6b656e730000000000000000000000604482015260640161064f565b6000829003611b7c57609760008881526020019081526020016000206040518060800160405280886001600160a01b031681526020018787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506020018667ffffffffffffffff811115611aba57611aba613325565b604051908082528060200260200182016040528015611ae3578160200160208202803683370190505b50815260006020918201819052835460018082018655948252908290208351600490920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117815582820151805193949193611b4e93928501929190910190612aec565b5060408201518051611b6a916002840191602090910190612b5e565b50606082015181600301555050611da1565b838214611bf15760405162461bcd60e51b815260206004820152602760248201527f696e76616c6964205f726577617264546f6b656e73206f72205f72657761726460448201527f416d6f756e747300000000000000000000000000000000000000000000000000606482015260840161064f565b60005b82811015611c76576000848483818110611c1057611c106131a3565b9050602002013511611c645760405162461bcd60e51b815260206004820152601660248201527f696e76616c6964205f726577617264416d6f756e747300000000000000000000604482015260640161064f565b80611c6e816131cf565b915050611bf4565b50609760008881526020019081526020016000206040518060800160405280886001600160a01b03168152602001878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250604080516020878102828101820190935287825292830192909188918891829185019084908082843760009201829052509385525050506020918201819052835460018082018655948252908290208351600490920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117815582820151805193949193611d7793928501929190910190612aec565b5060408201518051611d93916002840191602090910190612b5e565b506060820151816003015550505b856001600160a01b03167fb0009e9219851f1baf368ee31ef46171f38dfe76b05431ab4bbe57923290fb5b8887878787604051611de295949392919061333b565b60405180910390a250505050505050565b6113ff8133612342565b600082611e4c5760405162461bcd60e51b815260206004820152601360248201527f696e76616c6964205f6d65726b6c65526f6f7400000000000000000000000000604482015260640161064f565b6000858152609760205260408120805486908110611e6c57611e6c6131a3565b6000918252602090912060049091020180549091506001600160a01b0316611ec65760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420627269626560981b604482015260640161064f565b600381015415611f185760405162461bcd60e51b815260206004820152601360248201527f627269626520616c726561647920656e64656400000000000000000000000000604482015260640161064f565b82611fe75760005b6001820154811015611fe5576000826001018281548110611f4357611f436131a3565b60009182526020822001546002850180546001600160a01b0390921693509084908110611f7257611f726131a3565b90600052602060002001549050611fa5826001600160a01b031673efefefefefefefefefefefefefefefefefefefef1490565b15611fbb57611fb481866132ca565b9450611fd0565b611fd06001600160a01b038316333084612235565b50508080611fdd906131cf565b915050611f20565b505b60038101849055805460408051888152602081018790526001600160a01b03909216917fb69aa6113773698f6118f6a0fdf1d2d41a119be65ed41ae50c0619d0271a7b14910160405180910390a250949350505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610a775760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561209c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000808686866040516020016120f8939291906133a7565b60408051601f198184030181528282528051602091820120908301520160405160208183030381529060405280519060200120905061216d8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c92508591506123c29050565b98975050505050505050565b73efefefefefefefefefefefefefefefefefefefef6001600160a01b038416036121a75761068582826123da565b6106858383836124a3565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610a775760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526122bd908590612612565b50505050565b600054610100900460ff166123405760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161064f565b565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610a7757612380816001600160a01b031660146126f7565b61238b8360206126f7565b60405160200161239c9291906133ee565b60408051601f198184030181529082905262461bcd60e51b825261064f9160040161346f565b6000826123cf85846128d8565b1490505b9392505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612427576040519150601f19603f3d011682016040523d82523d6000602084013e61242c565b606091505b50509050806106855760405162461bcd60e51b815260206004820152602260248201527f5472616e7366657248656c7065723a2053656e64696e6720455448206661696c60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015260840161064f565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283929087169161252d91906134a2565b6000604051808303816000865af19150503d806000811461256a576040519150601f19603f3d011682016040523d82523d6000602084013e61256f565b606091505b509150915081801561259957508051158061259957508080602001905181019061259991906134be565b61260b5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c656400000000000000000000000000000000000000606482015260840161064f565b5050505050565b6000612667826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166129259092919063ffffffff16565b805190915015610685578080602001905181019061268591906134be565b6106855760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161064f565b606060006127068360026134db565b6127119060026132ca565b67ffffffffffffffff81111561272957612729613325565b6040519080825280601f01601f191660200182016040528015612753576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061278a5761278a6131a3565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127d5576127d56131a3565b60200101906001600160f81b031916908160001a90535060006127f98460026134db565b6128049060016132ca565b90505b6001811115612889577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612845576128456131a3565b1a60f81b82828151811061285b5761285b6131a3565b60200101906001600160f81b031916908160001a90535060049490941c93612882816134f2565b9050612807565b5083156123d35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161064f565b600081815b845181101561291d57612909828683815181106128fc576128fc6131a3565b602002602001015161293c565b915080612915816131cf565b9150506128dd565b509392505050565b6060612934848460008561296b565b949350505050565b60008183106129585760008281526020849052604090206123d3565b60008381526020839052604090206123d3565b6060824710156129e35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161064f565b6001600160a01b0385163b612a3a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161064f565b600080866001600160a01b03168587604051612a5691906134a2565b60006040518083038185875af1925050503d8060008114612a93576040519150601f19603f3d011682016040523d82523d6000602084013e612a98565b606091505b5091509150612aa8828286612ab3565b979650505050505050565b60608315612ac25750816123d3565b825115612ad25782518084602001fd5b8160405162461bcd60e51b815260040161064f919061346f565b828054828255906000526020600020908101928215612b4e579160200282015b82811115612b4e578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190612b0c565b50612b5a929150612b99565b5090565b828054828255906000526020600020908101928215612b4e579160200282015b82811115612b4e578251825591602001919060010190612b7e565b5b80821115612b5a5760008155600101612b9a565b600060208284031215612bc057600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146123d357600080fd5b600060208284031215612c0257600080fd5b5035919050565b80151581146113ff57600080fd5b60008060008060808587031215612c2d57600080fd5b8435935060208501359250604085013591506060850135612c4d81612c09565b939692955090935050565b80356001600160a01b0381168114612c6f57600080fd5b919050565b60008060408385031215612c8757600080fd5b82359150612c9760208401612c58565b90509250929050565b60008083601f840112612cb257600080fd5b50813567ffffffffffffffff811115612cca57600080fd5b6020830191508360208260051b8501011115612ce557600080fd5b9250929050565b60008060008060008060808789031215612d0557600080fd5b8635955060208701359450604087013567ffffffffffffffff80821115612d2b57600080fd5b612d378a838b01612ca0565b90965094506060890135915080821115612d5057600080fd5b50612d5d89828a01612ca0565b979a9699509497509295939492505050565b60008060408385031215612d8257600080fd5b612d8b83612c58565b946020939093013593505050565b60008060008060608587031215612daf57600080fd5b8435935060208501359250604085013567ffffffffffffffff811115612dd457600080fd5b612de087828801612ca0565b95989497509550505050565b6000806000806000806000806080898b031215612e0857600080fd5b883567ffffffffffffffff80821115612e2057600080fd5b612e2c8c838d01612ca0565b909a50985060208b0135915080821115612e4557600080fd5b612e518c838d01612ca0565b909850965060408b0135915080821115612e6a57600080fd5b612e768c838d01612ca0565b909650945060608b0135915080821115612e8f57600080fd5b50612e9c8b828c01612ca0565b999c989b5096995094979396929594505050565b600080600060608486031215612ec557600080fd5b8335925060208401359150612edc60408501612c58565b90509250925092565b60008060408385031215612ef857600080fd5b50508035926020909101359150565b6000608083016001600160a01b0380845116855260208085015160808288015283815180865260a0890191508383019550600092505b80831015612f5f57855185168252948301946001929092019190830190612f3d565b50604087810151898303918a0191909152805180835290840195509083019350905060005b81811015612fa057845184529382019392820192600101612f84565b50505060608401516060860152809250505092915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561300d57603f19888603018452612ffb858351612f07565b94509285019290850190600101612fdf565b5092979650505050505050565b60008060008060008060006080888a03121561303557600080fd5b87359650602088013567ffffffffffffffff8082111561305457600080fd5b6130608b838c01612ca0565b909850965060408a013591508082111561307957600080fd5b6130858b838c01612ca0565b909650945060608a013591508082111561309e57600080fd5b506130ab8a828b01612ca0565b989b979a50959850939692959293505050565b600080600080600080608087890312156130d757600080fd5b86359550602087013567ffffffffffffffff808211156130f657600080fd5b6131028a838b01612ca0565b9097509550604089013591508082111561311b57600080fd5b5061312889828a01612ca0565b909450925050606087013561313c81612c09565b809150509295509295509295565b6020815260006123d36020830184612f07565b6000806000806000806080878903121561317657600080fd5b8635955061318660208801612c58565b9450604087013567ffffffffffffffff80821115612d2b57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131e1576131e16131b9565b5060010190565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561321a57600080fd5b8260051b80836020870137939093016020019392505050565b83815260406020820152600061324d6040830184866131e8565b95945050505050565b8481528360208201526060604082015260006132766060830184866131e8565b9695505050505050565b6000808335601e1984360301811261329757600080fd5b83018035915067ffffffffffffffff8211156132b257600080fd5b6020019150600581901b3603821315612ce557600080fd5b808201808211156105d0576105d06131b9565b8581526060602082015260006132f76060830186886131e8565b828103604084015261216d8185876131e8565b60006020828403121561331c57600080fd5b6123d382612c58565b634e487b7160e01b600052604160045260246000fd5b85815260606020808301829052908201859052600090869060808401835b88811015613385576001600160a01b0361337285612c58565b1682529282019290820190600101613359565b5084810360408601526133998187896131e8565b9a9950505050505050505050565b6001600160a01b038416815260406020820152600061324d6040830184866131e8565b60005b838110156133e55781810151838201526020016133cd565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134268160178501602088016133ca565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516134638160288401602088016133ca565b01602801949350505050565b602081526000825180602084015261348e8160408501602087016133ca565b601f01601f19169190910160400192915050565b600082516134b48184602087016133ca565b9190910192915050565b6000602082840312156134d057600080fd5b81516123d381612c09565b80820281158282048414176105d0576105d06131b9565b600081613501576135016131b9565b50600019019056fea2646970667358221220f06b23eb2845f318a346452aa1c7289195cbdb8e70eab8da6e08258cc6173a0e64736f6c63430008110033