0 txs
3 calls
constructor
constructor()
functions
claimPaused
viewfunction claimPaused() view returns (bool)
depositPaused
viewfunction depositPaused() view returns (bool)
elixirFee
viewfunction elixirFee() view returns (uint256)
elixirGas
viewfunction elixirGas() view returns (uint256)
getUserActiveAmount
viewfunction getUserActiveAmount(uint256 id, address user) view returns (uint256)
getUserFee
viewfunction getUserFee(uint256 id, address user) view returns (uint256)
getUserPendingAmount
viewfunction getUserPendingAmount(uint256 id, address user) view returns (uint256)
nextSpot
viewfunction nextSpot() view returns (tuple)
owner
viewfunction owner() view returns (address)
pools
viewfunction pools(uint256 id) view returns (uint8 poolType, address apex, address sequencer, uint256 starkKey, uint256 positionId, uint256 activeAmount, uint256 hardcap, uint256 starkExTokenId)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
queue
viewfunction queue(uint128) view returns (address sender, uint256 id, uint8 spotType, bytes transaction, uint8 state)
queueCount
viewfunction queueCount() view returns (uint128)
queueUpTo
viewfunction queueUpTo() view returns (uint128)
withdrawPaused
viewfunction withdrawPaused() view returns (bool)
addPool
nonpayablefunction addPool(uint256 id, address apex, uint256 starkKey, uint256 positionId, uint256 hardcap, address sequencer, uint256 starkExTokenId)
claim
nonpayablefunction claim(address user, uint256 id)
claimWithdrawnFundsFromApex
nonpayablefunction claimWithdrawnFundsFromApex(uint256 id)
deposit
payablefunction deposit(uint256 id, uint256 amount, address receiver) payable
initialize
nonpayablefunction initialize(address owner)
migratePool
nonpayablefunction migratePool(bytes pubKeyHash, uint32 nonce)
pause
nonpayablefunction pause(bool _depositPaused, bool _withdrawPaused, bool _claimPaused)
processSpot
nonpayablefunction processSpot(tuple spot, bytes response)
renounceOwnership
nonpayablefunction renounceOwnership()
rescue
nonpayablefunction rescue(address token, uint256 amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unqueue
nonpayablefunction unqueue(uint128 spotId, bytes response)
updateGas
nonpayablefunction updateGas(uint256 _newGas)
updatePoolHardcap
nonpayablefunction updatePoolHardcap(uint256 id, uint256 hardcap)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
payablefunction withdraw(uint256 id, uint256 amount) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Claim
event Claim(address indexed user, uint256 indexed amount)
Deposit
event Deposit(uint256 indexed id, address caller, address indexed receiver, uint256 amount, uint256 shares)
GasUpdated
event GasUpdated(uint256 indexed newGas)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PauseUpdated
event PauseUpdated(bool indexed depositPaused, bool indexed withdrawPaused, bool indexed claimPaused)
PoolAdded
event PoolAdded(uint256 indexed id, address indexed token, uint256 hardcap)
PoolHardcapUpdated
event PoolHardcapUpdated(uint256 indexed id, uint256 indexed hardcap)
Queued
event Queued((address sender, uint256 id, uint8 spotType, bytes transaction, uint8 state) spot, uint128 queueCount, uint128 queueUpTo)
Upgraded
event Upgraded(address indexed implementation)
Withdraw
event Withdraw(uint256 indexed id, address indexed user, uint256 indexed amount)
errors
ClaimsPaused
error ClaimsPaused()
DepositsPaused
error DepositsPaused()
FeeTooLow
error FeeTooLow(uint256 value, uint256 fee)
FeeTransferFailed
error FeeTransferFailed()
HardcapReached
error HardcapReached(uint256 hardcap, uint256 activeAmount, uint256 amount)
InsufficientActiveBalance
error InsufficientActiveBalance(uint256 activeAmount, uint256 amount)
InvalidPool
error InvalidPool(uint256 id)
InvalidSpot
error InvalidSpot(uint128 spotId, uint128 queueUpTo)
InvalidSpotType
error InvalidSpotType((address sender, uint256 id, uint8 spotType, bytes transaction, uint8 state) spot)
NotSelf
error NotSelf()
NotSequencer
error NotSequencer(uint256 id, address sequencer, address caller)
WithdrawalsPaused
error WithdrawalsPaused()
ZeroAddress
error ZeroAddress()
creation bytecode
0x60a0604052306080523480156200001557600080fd5b50600160c955620000256200002b565b620000ec565b600054610100900460ff1615620000985760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000ea576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161365b620001246000396000818161071c0152818161076501528181610ac301528181610b030152610b92015261365b6000f3fe6080604052600436106101e25760003560e01c806388c4ccc311610102578063c4d66de811610095578063d970e8c611610064578063d970e8c6146105ca578063f0add5b7146105ea578063f2fde38b14610631578063fe5a93d61461065157600080fd5b8063c4d66de814610541578063c744725414610561578063ced17c1314610577578063cf82a28d1461059957600080fd5b8063aad3ec96116100d1578063aad3ec9614610465578063ab5e124a14610485578063ac4afa38146104a5578063c020df481461052157600080fd5b806388c4ccc3146103ea5780638da5cb5b1461040a5780638dbdbe6d146104325780639ef36bd11461044557600080fd5b806352d1902d1161017a5780637a4e4ecf116101495780637a4e4ecf1461036a578063819ec8c21461038a5780638367d6e9146103aa57806383732757146103ca57600080fd5b806352d1902d14610300578063715018a6146103155780637562cac61461032a57806376783c4c1461034a57600080fd5b80633659cfe6116101b65780633659cfe61461027b578063441a3e701461029b578063478e6253146102ae5780634f1ef286146102ed57600080fd5b806242885a146101e757806302befd241461021057806310d5a37e1461023a5780632f3ffb9f1461025c575b600080fd5b3480156101f357600080fd5b506101fd60cd5481565b6040519081526020015b60405180910390f35b34801561021c57600080fd5b5060cf5461022a9060ff1681565b6040519015158152602001610207565b34801561024657600080fd5b5061025a610255366004612a50565b610698565b005b34801561026857600080fd5b5060cf5461022a90610100900460ff1681565b34801561028757600080fd5b5061025a610296366004612ac0565b610712565b61025a6102a9366004612add565b6107fa565b3480156102ba57600080fd5b5060cc546102d590600160801b90046001600160801b031681565b6040516001600160801b039091168152602001610207565b61025a6102fb366004612aff565b610ab9565b34801561030c57600080fd5b506101fd610b85565b34801561032157600080fd5b5061025a610c38565b34801561033657600080fd5b5061025a610345366004612b5d565b610c4c565b34801561035657600080fd5b5061025a610365366004612add565b610cd3565b34801561037657600080fd5b5061025a610385366004612ba8565b610d1d565b34801561039657600080fd5b506101fd6103a5366004612bd4565b610d4b565b3480156103b657600080fd5b5061025a6103c5366004612bf9565b610d78565b3480156103d657600080fd5b5061025a6103e5366004612c7e565b610ee7565b3480156103f657600080fd5b5061025a610405366004612c9a565b6110bd565b34801561041657600080fd5b506097546040516001600160a01b039091168152602001610207565b61025a610440366004612cb3565b6111e2565b34801561045157600080fd5b5060cc546102d5906001600160801b031681565b34801561047157600080fd5b5061025a610480366004612ba8565b611496565b34801561049157600080fd5b5060cf5461022a9062010000900460ff1681565b3480156104b157600080fd5b5061050d6104c0366004612c9a565b60ca60205260009081526040902080546001820154600283015460038401546007850154600886015460099096015460ff8616966101009096046001600160a01b03908116969516949088565b604051610207989796959493929190612cf7565b34801561052d57600080fd5b5061025a61053c366004612c9a565b611692565b34801561054d57600080fd5b5061025a61055c366004612ac0565b6116cd565b34801561056d57600080fd5b506101fd60ce5481565b34801561058357600080fd5b5061058c6117fb565b6040516102079190612dbd565b3480156105a557600080fd5b506105b96105b4366004612e24565b611971565b604051610207959493929190612e3f565b3480156105d657600080fd5b5061025a6105e5366004612e84565b611a3b565b3480156105f657600080fd5b506101fd610605366004612bd4565b600082815260ca602090815260408083206001600160a01b038516845260060190915290205492915050565b34801561063d57600080fd5b5061025a61064c366004612ac0565b611f7c565b34801561065d57600080fd5b506101fd61066c366004612bd4565b600082815260ca602090815260408083206001600160a01b038516845260040190915290205492915050565b6106a0611ff2565b6040516324445d7560e01b81527335d173cdfe4d484bc5985fda55fabad5892c7b829081906324445d75906106db9086908690600401612ee6565b600060405180830381600087803b1580156106f557600080fd5b505af1158015610709573d6000803e3d6000fd5b50505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107635760405162461bcd60e51b815260040161075a90612f0e565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107ac6000805160206135df833981519152546001600160a01b031690565b6001600160a01b0316146107d25760405162461bcd60e51b815260040161075a90612f5a565b6107db8161204c565b604080516000808252602082019092526107f791839190612054565b50565b60cf54610100900460ff161561082357604051636022a9e760e01b815260040160405180910390fd5b61082b6121bf565b600082815260ca602052604090206001815460ff16600181111561085157610851612ce1565b14610872576040516321b4f3f960e21b81526004810184905260240161075a565b336000908152600482016020526040902054828110156108af57604051636845acf360e11b8152600481018290526024810184905260440161075a565b60018201546108c6906001600160a01b0316612218565b6040805160a08101825233815260208101869052908101600281526020016040518060200160405280868152506040516020016109069151815260200190565b60408051601f1981840301815291905281526020016001905260cc805460cb916000916001600160801b0316908261093d83612fbc565b91906101000a8154816001600160801b0302191690836001600160801b031602179055506001600160801b03166001600160801b0316815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151816001015560408201518160020160006101000a81548160ff021916908360028111156109e2576109e2612ce1565b0217905550606082015160038201906109fb9082613062565b50608082015160048201805460ff19166001836003811115610a1f57610a1f612ce1565b02179055505060cc547f7fc6fdfb407935bd536d4ebd1974ac63700b3ee546e5b4ffd04630478cc97337915060cb90600090610a66906001906001600160801b0316613122565b6001600160801b0390811682526020820192909252604090810160002060cc549151610aa193919280831692600160801b9091041690613218565b60405180910390a15050610ab5600160c955565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b015760405162461bcd60e51b815260040161075a90612f0e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b4a6000805160206135df833981519152546001600160a01b031690565b6001600160a01b031614610b705760405162461bcd60e51b815260040161075a90612f5a565b610b798261204c565b610ab582826001612054565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c255760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161075a565b506000805160206135df83398151915290565b610c40611ff2565b610c4a60006122d1565b565b610c54611ff2565b60cf805461ffff191684151561ff0019161761010084151581029190911762ff00001981166201000085151581029182179485905560405160ff91860482161515959490940481161515939281169116171515907fa0270f662d0cf1144ae98e452fc1f163575aff9c4d132722dcd892a94d17c0cb90600090a4505050565b610cdb611ff2565b600082815260ca602052604080822060080183905551829184917f6133937036e46e1e720f9a942fa8302b8437e20c7beb0aa20d29b030876dbdf39190a35050565b610d25611ff2565b610ab5610d3a6097546001600160a01b031690565b6001600160a01b0384169083612323565b600082815260ca602090815260408083206001600160a01b03851684526005019091529020545b92915050565b610d80611ff2565b600087815260ca602052604090205461010090046001600160a01b031615610dbe576040516321b4f3f960e21b81526004810188905260240161075a565b6000866001600160a01b031663bb09d9b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e22919061324b565b9050610e3a6001600160a01b03821688600019612386565b600088815260ca602090815260409182902080546001600160a01b038b8116610100026001600160a81b03199092169190911760019081178355600283018b9055600383018a9055820180548883166001600160a01b03199091161790556008820188905560099091018590559151868152918316918a917f6c5d0ef1d0199b6de41ecbce95f59643be4d723ca363faf92d756e61e82fb13e910160405180910390a35050505050505050565b60cc54600160801b90046001600160801b0316600090815260cb60209081526040808320600180820154855260ca909352922001546001600160a01b0316338114610f635760018201546040516340ec220f60e11b815260048101919091526001600160a01b038216602482015233604482015260640161075a565b8251156110625760cc54610f8890600160801b90046001600160801b03166001613268565b6001600160801b0316846001600160801b031614610fd85760cc546040516372fe19eb60e11b81526001600160801b038681166004830152600160801b909204909116602482015260440161075a565b60ce54604051636cb8746360e11b8152309163d970e8c6916110009086908890600401613288565b600060405180830381600088803b15801561101a57600080fd5b5087f19350505050801561102c575060015b61104c576004820180546003919060ff19166001835b0217905550611072565b6004820180546002919060ff1916600183611042565b60048201805460ff191660031790555b60cc8054600160801b90046001600160801b031690601061109283612fbc565b91906101000a8154816001600160801b0302191690836001600160801b031602179055505050505050565b600081815260ca60205260409020805461010090046001600160a01b03166110fb576040516321b4f3f960e21b81526004810183905260240161075a565b8060000160019054906101000a90046001600160a01b03166001600160a01b031663391cdc086040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611152573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611176919061324b565b6009820154604051630441a3e760e41b815230600482015260248101919091526001600160a01b03919091169063441a3e7090604401600060405180830381600087803b1580156111c657600080fd5b505af11580156111da573d6000803e3d6000fd5b505050505050565b60cf5460ff16156112065760405163deeb694360e01b815260040160405180910390fd5b61120e6121bf565b600083815260ca602052604090206001815460ff16600181111561123457611234612ce1565b14611255576040516321b4f3f960e21b81526004810185905260240161075a565b6001600160a01b03821661127c5760405163d92e233d60e01b815260040160405180910390fd5b6001810154611293906001600160a01b0316612218565b6040805160a0810182523381526020808201879052600182840152825180840184528681526001600160a01b03808716918301918252845192830188905290511692810192909252906060808301910160408051601f1981840301815291905281526020016001905260cc805460cb916000916001600160801b0316908261131a83612fbc565b91906101000a8154816001600160801b0302191690836001600160801b031602179055506001600160801b03166001600160801b0316815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151816001015560408201518160020160006101000a81548160ff021916908360028111156113bf576113bf612ce1565b0217905550606082015160038201906113d89082613062565b50608082015160048201805460ff191660018360038111156113fc576113fc612ce1565b02179055505060cc547f7fc6fdfb407935bd536d4ebd1974ac63700b3ee546e5b4ffd04630478cc97337915060cb90600090611443906001906001600160801b0316613122565b6001600160801b0390811682526020820192909252604090810160002060cc54915161147e93919280831692600160801b9091041690613218565b60405180910390a150611491600160c955565b505050565b60cf5462010000900460ff16156114c057604051637cdf17ad60e01b815260040160405180910390fd5b6114c86121bf565b600081815260ca60205260409020805461010090046001600160a01b0316611506576040516321b4f3f960e21b81526004810183905260240161075a565b6001600160a01b03831661152d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03838116600090815260058301602090815260408083208054600687019093529083208054918490559290925560975490926115f59116828560000160019054906101000a90046001600160a01b03166001600160a01b031663bb09d9b76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e5919061324b565b6001600160a01b03169190612323565b61164f85838560000160019054906101000a90046001600160a01b03166001600160a01b031663bb09d9b76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c1573d6000803e3d6000fd5b60405182906001600160a01b038716907f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d490600090a3505050610ab5600160c955565b61169a611ff2565b60ce81905560405181907fca2f2fa085e7be63b3566704f7c906a0cd54f02d30918c0197e6e20971fbd00f90600090a250565b600054610100900460ff16158080156116ed5750600054600160ff909116105b806117075750303b158015611707575060005460ff166001145b61176a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161075a565b6000805460ff19166001179055801561178d576000805461ff0019166101001790555b611795612415565b61179d61243c565b600560cd55621e848060ce556117b282611f7c565b8015610ab5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b61182c6040805160a08101825260008082526020820181905290918201908152606060208201526040016000905290565b60cc54600160801b90046001600160801b0316600090815260cb6020908152604091829020825160a08101845281546001600160a01b03168152600182015492810192909252600280820154929391929184019160ff169081111561189357611893612ce1565b60028111156118a4576118a4612ce1565b81526020016003820180546118b890612fe2565b80601f01602080910402602001604051908101604052809291908181526020018280546118e490612fe2565b80156119315780601f1061190657610100808354040283529160200191611931565b820191906000526020600020905b81548152906001019060200180831161191457829003601f168201915b5050509183525050600482015460209091019060ff16600381111561195857611958612ce1565b600381111561196957611969612ce1565b905250919050565b60cb6020526000908152604090208054600182015460028301546003840180546001600160a01b0390941694929360ff90921692916119af90612fe2565b80601f01602080910402602001604051908101604052809291908181526020018280546119db90612fe2565b8015611a285780601f106119fd57610100808354040283529160200191611a28565b820191906000526020600020905b815481529060010190602001808311611a0b57829003601f168201915b5050506004909301549192505060ff1685565b333014611a5b576040516314e1dbf760e11b815260040160405180910390fd5b6001611a6d60608401604085016132bc565b6002811115611a7e57611a7e612ce1565b03611d7c576000611a9260608401846132d7565b810190611a9f9190613325565b9050600082806020019051810190611ab7919061339f565b602080860135600090815260ca9091526040902060088101548251600783015493945091929091611ae7916133bb565b1115611b2357600881015460078201548351604051631f3475d360e31b815260048101939093526024830191909152604482015260640161075a565b611bb8611b336020870187612ac0565b845183546040805163bb09d9b760e01b8152905130939261010090046001600160a01b03169163bb09d9b79160048083019260209291908290030181865afa158015611b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba7919061324b565b6001600160a01b031692919061246b565b80546040805163bb09d9b760e01b815290516101009092046001600160a01b03169163cfe96c8491839163bb09d9b7916004808201926020929091908290030181865afa158015611c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c31919061324b565b85516002850154600386015460405160e086901b6001600160e01b03191681526001600160a01b03909416600485015260248401929092526044830152606482015260a06084820152600060a482015260c401600060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505083516020808701516001600160a01b0316600090815260048601909152604081208054929450925090611ce89084906133bb565b90915550508151600782018054600090611d039084906133bb565b90915550506020808401516001600160a01b03169086018035907feb65d0f36862bbd8763c5e2c983c9d753267d223eee35a224d8d0a9d7ef433a290611d499089612ac0565b86518651604080516001600160a01b03909416845260208401929092529082015260600160405180910390a35050505050565b6002611d8e60608401604085016132bc565b6002811115611d9f57611d9f612ce1565b03611f61576000611db360608401846132d7565b810190611dc091906133ce565b9050600082806020019051810190611dd8919061339f565b60208086018035600090815260ca90925260408220855193945092916004840191611e039089612ac0565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611e3291906133f2565b90915550508251600782018054600090611e4d9084906133f2565b909155505060cd54825160009161271091611e689190613405565b611e72919061341c565b905080600683016000611e8860208a018a612ac0565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611eb791906133bb565b90915550508251611ec99082906133f2565b600583016000611edc60208a018a612ac0565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611f0b91906133bb565b90915550508251611f1f6020880188612ac0565b6001600160a01b031687602001357f9da6493a92039daf47d1f2d7a782299c5994c6323eb1e972f69c432089ec52bf60405160405180910390a4505050505050565b816040516301831c8b60e41b815260040161075a9190613476565b611f84611ff2565b6001600160a01b038116611fe95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075a565b6107f7816122d1565b6097546001600160a01b03163314610c4a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075a565b6107f7611ff2565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561208757611491836124a3565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120e1575060408051601f3d908101601f191682019092526120de9181019061352e565b60015b6121445760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161075a565b6000805160206135df83398151915281146121b35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161075a565b5061149183838361253f565b600260c954036122115760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161075a565b600260c955565b60ce543a9060009061222b908390613405565b905080341015612257576040516378279ed960e11b81523460048201526024810182905260440161075a565b6000836001600160a01b03163460405160006040518083038185875af1925050503d80600081146122a4576040519150601f19603f3d011682016040523d82523d6000602084013e6122a9565b606091505b50509050806122cb57604051634033e4e360e01b815260040160405180910390fd5b50505050565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b03831660248201526044810182905261149190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612564565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526123d78482612639565b6122cb576040516001600160a01b03841660248201526000604482015261240b90859063095ea7b360e01b9060640161234f565b6122cb8482612564565b600054610100900460ff16610c4a5760405162461bcd60e51b815260040161075a90613547565b600054610100900460ff166124635760405162461bcd60e51b815260040161075a90613547565b610c4a6126e0565b6040516001600160a01b03808516602483015283166044820152606481018290526122cb9085906323b872dd60e01b9060840161234f565b6001600160a01b0381163b6125105760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161075a565b6000805160206135df83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61254883612710565b6000825111806125555750805b15611491576122cb8383612750565b60006125b9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661277c9092919063ffffffff16565b90508051600014806125da5750808060200190518101906125da9190613592565b6114915760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161075a565b6000806000846001600160a01b03168460405161265691906135af565b6000604051808303816000865af19150503d8060008114612693576040519150601f19603f3d011682016040523d82523d6000602084013e612698565b606091505b50915091508180156126c25750805115806126c25750808060200190518101906126c29190613592565b80156126d757506001600160a01b0385163b15155b95945050505050565b600054610100900460ff166127075760405162461bcd60e51b815260040161075a90613547565b610c4a336122d1565b612719816124a3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061277583836040518060600160405280602781526020016135ff60279139612793565b9392505050565b606061278b848460008561280b565b949350505050565b6060600080856001600160a01b0316856040516127b091906135af565b600060405180830381855af49150503d80600081146127eb576040519150601f19603f3d011682016040523d82523d6000602084013e6127f0565b606091505b5091509150612801868383876128e6565b9695505050505050565b60608247101561286c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161075a565b600080866001600160a01b0316858760405161288891906135af565b60006040518083038185875af1925050503d80600081146128c5576040519150601f19603f3d011682016040523d82523d6000602084013e6128ca565b606091505b50915091506128db878383876128e6565b979650505050505050565b6060831561295557825160000361294e576001600160a01b0385163b61294e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161075a565b508161278b565b61278b838381511561296a5781518083602001fd5b8060405162461bcd60e51b815260040161075a91906135cb565b634e487b7160e01b600052604160045260246000fd5b6040516020810167ffffffffffffffff811182821017156129bd576129bd612984565b60405290565b600082601f8301126129d457600080fd5b813567ffffffffffffffff808211156129ef576129ef612984565b604051601f8301601f19908116603f01168101908282118183101715612a1757612a17612984565b81604052838152866020858801011115612a3057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215612a6357600080fd5b823567ffffffffffffffff811115612a7a57600080fd5b612a86858286016129c3565b925050602083013563ffffffff81168114612aa057600080fd5b809150509250929050565b6001600160a01b03811681146107f757600080fd5b600060208284031215612ad257600080fd5b813561277581612aab565b60008060408385031215612af057600080fd5b50508035926020909101359150565b60008060408385031215612b1257600080fd5b8235612b1d81612aab565b9150602083013567ffffffffffffffff811115612b3957600080fd5b612b45858286016129c3565b9150509250929050565b80151581146107f757600080fd5b600080600060608486031215612b7257600080fd5b8335612b7d81612b4f565b92506020840135612b8d81612b4f565b91506040840135612b9d81612b4f565b809150509250925092565b60008060408385031215612bbb57600080fd5b8235612bc681612aab565b946020939093013593505050565b60008060408385031215612be757600080fd5b823591506020830135612aa081612aab565b600080600080600080600060e0888a031215612c1457600080fd5b873596506020880135612c2681612aab565b955060408801359450606088013593506080880135925060a0880135612c4b81612aab565b8092505060c0880135905092959891949750929550565b80356001600160801b0381168114612c7957600080fd5b919050565b60008060408385031215612c9157600080fd5b612b1d83612c62565b600060208284031215612cac57600080fd5b5035919050565b600080600060608486031215612cc857600080fd5b83359250602084013591506040840135612b9d81612aab565b634e487b7160e01b600052602160045260246000fd5b610100810160028a10612d0c57612d0c612ce1565b9881526001600160a01b0397881660208201529590961660408601526060850193909352608084019190915260a083015260c082015260e0015290565b60038110612d5957612d59612ce1565b9052565b60005b83811015612d78578181015183820152602001612d60565b50506000910152565b60008151808452612d99816020860160208601612d5d565b601f01601f19169290920160200192915050565b60048110612d5957612d59612ce1565b6020815260018060a01b0382511660208201526020820151604082015260006040830151612dee6060840182612d49565b50606083015160a06080840152612e0860c0840182612d81565b90506080840151612e1c60a0850182612dad565b509392505050565b600060208284031215612e3657600080fd5b61277582612c62565b6001600160a01b038616815260208101859052612e5f6040820185612d49565b60a060608201526000612e7560a0830185612d81565b90506128016080830184612dad565b60008060408385031215612e9757600080fd5b823567ffffffffffffffff80821115612eaf57600080fd5b9084019060a08287031215612ec357600080fd5b90925060208401359080821115612ed957600080fd5b50612b45858286016129c3565b604081526000612ef96040830185612d81565b905063ffffffff831660208301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b03808316818103612fd857612fd8612fa6565b6001019392505050565b600181811c90821680612ff657607f821691505b60208210810361301657634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561149157600081815260208120601f850160051c810160208610156130435750805b601f850160051c820191505b818110156111da5782815560010161304f565b815167ffffffffffffffff81111561307c5761307c612984565b6130908161308a8454612fe2565b8461301c565b602080601f8311600181146130c557600084156130ad5750858301515b600019600386901b1c1916600185901b1785556111da565b600085815260208120601f198616915b828110156130f4578886015182559484019460019091019084016130d5565b50858210156131125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160801b0382811682821603908082111561314257613142612fa6565b5092915050565b60018060a01b03815416825260006001808301546020818187015260ff600286015416915061317b6040870183612d49565b60038501915060a060608701526000825461319581612fe2565b8060a08a015260c0868316600081146131b557600181146131cf576131fd565b60ff1984168b83015282151560051b8b01820194506131fd565b866000528560002060005b848110156131f55781548d82018501529089019087016131da565b8c0183019550505b50505050600486015460ff1693506128016080880185612dad565b60608152600061322b6060830186613149565b6001600160801b0394851660208401529290931660409091015292915050565b60006020828403121561325d57600080fd5b815161277581612aab565b6001600160801b0381811683821601908082111561314257613142612fa6565b60408152600061329b6040830185613149565b82810360208401526126d78185612d81565b803560038110612c7957600080fd5b6000602082840312156132ce57600080fd5b612775826132ad565b6000808335601e198436030181126132ee57600080fd5b83018035915067ffffffffffffffff82111561330957600080fd5b60200191503681900382131561331e57600080fd5b9250929050565b60006040828403121561333757600080fd5b6040516040810181811067ffffffffffffffff8211171561335a5761335a612984565b60405282358152602083013561336f81612aab565b60208201529392505050565b60006020828403121561338d57600080fd5b61339561299a565b9151825250919050565b6000602082840312156133b157600080fd5b612775838361337b565b80820180821115610d7257610d72612fa6565b6000602082840312156133e057600080fd5b6133e861299a565b9135825250919050565b81810381811115610d7257610d72612fa6565b8082028115828204841417610d7257610d72612fa6565b60008261343957634e487b7160e01b600052601260045260246000fd5b500490565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803560048110612c7957600080fd5b602081526000823561348781612aab565b60018060a01b038116602084015250602083013560408301526134ac604084016132ad565b6134b96060840182612d49565b506060830135601e198436030181126134d157600080fd5b830160208101903567ffffffffffffffff8111156134ee57600080fd5b8036038213156134fd57600080fd5b60a0608085015261351260c08501828461343e565b91505061352160808501613467565b612e1c60a0850182612dad565b60006020828403121561354057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156135a457600080fd5b815161277581612b4f565b600082516135c1818460208701612d5d565b9190910192915050565b6020815260006127756020830184612d8156fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c6961d016822995dd9906145a6ad6af25536492b41673611c713de44a9ab173a64736f6c63430008120033