0 txs
68 calls
constructor
constructor(address _controller)
functions
bondingManagerAddr
viewfunction bondingManagerAddr() view returns (address)
claimedDelegatedStake
viewfunction claimedDelegatedStake(address) view returns (uint256)
claimStakeEnabled
viewfunction claimStakeEnabled() view returns (bool)
controller
viewfunction controller() view returns (address)
delegatorPoolImpl
viewfunction delegatorPoolImpl() view returns (address)
delegatorPools
viewfunction delegatorPools(address) view returns (address)
l1MigratorAddr
viewfunction l1MigratorAddr() view returns (address)
merkleSnapshotAddr
viewfunction merkleSnapshotAddr() view returns (address)
migratedDelegators
viewfunction migratedDelegators(address) view returns (bool)
migratedSenders
viewfunction migratedSenders(address) view returns (bool)
migratedUnbondingLocks
viewfunction migratedUnbondingLocks(address, uint256) view returns (bool)
targetContractId
viewfunction targetContractId() view returns (bytes32)
ticketBrokerAddr
viewfunction ticketBrokerAddr() view returns (address)
tokenAddr
viewfunction tokenAddr() view returns (address)
claimStake
nonpayablefunction claimStake(address _delegate, uint256 _stake, uint256 _fees, bytes32[] _proof, address _newDelegate)
finalizeMigrateDelegator
nonpayablefunction finalizeMigrateDelegator(tuple _params)
finalizeMigrateSender
nonpayablefunction finalizeMigrateSender(tuple _params)
finalizeMigrateUnbondingLocks
nonpayablefunction finalizeMigrateUnbondingLocks(tuple _params)
initialize
nonpayablefunction initialize(address _l1MigratorAddr, address _delegatorPoolImpl)
setClaimStakeEnabled
nonpayablefunction setClaimStakeEnabled(bool _enabled)
setController
nonpayablefunction setController(address _controller)
setDelegatorPoolImpl
nonpayablefunction setDelegatorPoolImpl(address _delegatorPoolImpl)
setL1Migrator
nonpayablefunction setL1Migrator(address _l1MigratorAddr)
syncControllerContracts
nonpayablefunction syncControllerContracts()
events
ClaimStakeEnabled
event ClaimStakeEnabled(bool _enabled)
ControllerContractUpdate
event ControllerContractUpdate(bytes32 id, address addr)
DelegatorPoolCreated
event DelegatorPoolCreated(address indexed l1Addr, address delegatorPool)
DelegatorPoolImplUpdate
event DelegatorPoolImplUpdate(address _delegatorPoolImpl)
L1MigratorUpdate
event L1MigratorUpdate(address _l1MigratorAddr)
MigrateDelegatorFinalized
event MigrateDelegatorFinalized((address l1Addr, address l2Addr, uint256 stake, uint256 delegatedStake, uint256 fees, address delegate) params)
MigrateSenderFinalized
event MigrateSenderFinalized((address l1Addr, address l2Addr, uint256 deposit, uint256 reserve) params)
MigrateUnbondingLocksFinalized
event MigrateUnbondingLocksFinalized((address l1Addr, address l2Addr, uint256 total, uint256[] unbondingLockIds, address delegate) params)
SetController
event SetController(address controller)
StakeClaimed
event StakeClaimed(address indexed delegator, address delegate, uint256 stake, uint256 fees)
TxToL1
event TxToL1(address indexed _from, address indexed _to, uint256 indexed _id, bytes _data)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162003952380380620039528339818101604052810190620000379190620000ea565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200011c565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000b28262000085565b9050919050565b620000c481620000a5565b8114620000d057600080fd5b50565b600081519050620000e481620000b9565b92915050565b60006020828403121562000103576200010262000080565b5b60006200011384828501620000d3565b91505092915050565b613826806200012c6000396000f3fe60806040526004361061014f5760003560e01c80638a716fbb116100b6578063b76087361161006f578063b760873614610487578063cc14c988146104b0578063d0b1cba2146104d9578063d2f40c5a14610504578063e89320e514610541578063f77c47911461056c57610156565b80638a716fbb146103795780638f2c17ed146103b6578063923f475c146103e157806392eefe9b1461040a57806396f995a214610433578063b3f5ccae1461045e57610156565b8063485cc95511610108578063485cc955146102555780635118d8cf1461027e57806351720b41146102bb5780635cf207f8146102e65780635fbe4d1d1461031157806389bec3441461033c57610156565b80631a0725d81461015b57806324583d97146101845780633aceba5d146101ad5780633f1c49cc146101ea5780633f23f8de146102135780634413a2e71461022a57610156565b3661015657005b600080fd5b34801561016757600080fd5b50610182600480360381019061017d919061261f565b610597565b005b34801561019057600080fd5b506101ab60048036038101906101a691906126aa565b610cf8565b005b3480156101b957600080fd5b506101d460048036038101906101cf91906126aa565b610d7b565b6040516101e191906126f2565b60405180910390f35b3480156101f657600080fd5b50610211600480360381019061020c91906127a8565b610d9b565b005b34801561021f57600080fd5b506102286112a8565b005b34801561023657600080fd5b5061023f61193e565b60405161024c9190612851565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061286c565b611964565b005b34801561028a57600080fd5b506102a560048036038101906102a091906126aa565b6119fa565b6040516102b291906128bb565b60405180910390f35b3480156102c757600080fd5b506102d0611a12565b6040516102dd91906128ef565b60405180910390f35b3480156102f257600080fd5b506102fb611a18565b6040516103089190612851565b60405180910390f35b34801561031d57600080fd5b50610326611a3e565b6040516103339190612851565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e919061290a565b611a64565b60405161037091906126f2565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906126aa565b611a93565b6040516103ad91906126f2565b60405180910390f35b3480156103c257600080fd5b506103cb611ab3565b6040516103d89190612851565b60405180910390f35b3480156103ed57600080fd5b5061040860048036038101906104039190612976565b611ad9565b005b34801561041657600080fd5b50610431600480360381019061042c91906126aa565b611b35565b005b34801561043f57600080fd5b50610448611bb7565b60405161045591906126f2565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906129c2565b611bca565b005b34801561049357600080fd5b506104ae60048036038101906104a991906126aa565b611e66565b005b3480156104bc57600080fd5b506104d760048036038101906104d29190612a0e565b611ee9565b005b3480156104e557600080fd5b506104ee61217e565b6040516104fb9190612851565b60405180910390f35b34801561051057600080fd5b5061052b600480360381019061052691906126aa565b6121a4565b6040516105389190612851565b60405180910390f35b34801561054d57600080fd5b506105566121d7565b6040516105639190612851565b60405180910390f35b34801561057857600080fd5b506105816121fd565b60405161058e9190612ab6565b60405180910390f35b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166105c381612221565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062790612b2e565b60405180910390fd5b6008600083600001602081019061064791906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690612b9a565b60405180910390fd5b6001600860008460000160208101906106e891906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508160a001602081019061074c91906126aa565b73ffffffffffffffffffffffffffffffffffffffff1682600001602081019061077591906126aa565b73ffffffffffffffffffffffffffffffffffffffff161415610a18576107c482604001358360200160208101906107ac91906126aa565b8460200160208101906107bf91906126aa565b61224a565b6000826040013583606001356107da9190612be9565b90506000600a60008560000160208101906107f591906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261083b9190612be9565b90506000811115610a11576000610873600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661237f565b9050806009600087600001602081019061088d91906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610922828287602001602081019061091d91906126aa565b61224a565b8073ffffffffffffffffffffffffffffffffffffffff1663c4d66de8600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161097d9190612851565b600060405180830381600087803b15801561099757600080fd5b505af11580156109ab573d6000803e3d6000fd5b505050508460000160208101906109c291906126aa565b73ffffffffffffffffffffffffffffffffffffffff167ff8a0d4273560c59d7022f3feaae470fc5b68c55cff078a6ab7e618203b53041882604051610a079190612851565b60405180910390a2505b5050610b80565b6000600960008460a0016020810190610a3191906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b4a578073ffffffffffffffffffffffffffffffffffffffff1663aad3ec96846020016020810190610af191906126aa565b85604001356040518363ffffffff1660e01b8152600401610b13929190612c1d565b600060405180830381600087803b158015610b2d57600080fd5b505af1158015610b41573d6000803e3d6000fd5b50505050610b7e565b610b7d8360400135846020016020810190610b6591906126aa565b8560a0016020810190610b7891906126aa565b61224a565b5b505b8160400135600a60008460a0016020810190610b9c91906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610be59190612c46565b92505081905550600082608001351115610cbd576000826020016020810190610c0e91906126aa565b73ffffffffffffffffffffffffffffffffffffffff168360800135604051610c3590612ccd565b60006040518083038185875af1925050503d8060008114610c72576040519150601f19603f3d011682016040523d82523d6000602084013e610c77565b606091505b5050905080610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb290612d2e565b60405180910390fd5b505b7fab2cb96eeb8726c709227935b01f6a5c6f7e9b518ab69eda0670c7ceda752d1a82604051610cec9190612e45565b60405180910390a15050565b610d00612454565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff274fcfe10d70df2c1a3555476ecfb830e80115781fd0c9a10024291df991b2f81604051610d709190612851565b60405180910390a150565b600c6020528060005260406000206000915054906101000a900460ff1681565b600760149054906101000a900460ff16610dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de190612eac565b60405180910390fd5b6000339050600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7390612f18565b60405180910390fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600082898989604051602001610ebc9493929190612fa1565b6040516020818303038152906040528051906020012090508173ffffffffffffffffffffffffffffffffffffffff16630a02831c7facef05f736f89c16facc0f940c13f4c3a386cf48a9b54b50f59defd8b301c40a8888856040518563ffffffff1660e01b8152600401610f339493929190613070565b60206040518083038186803b158015610f4b57600080fd5b505afa158015610f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8391906130c5565b610fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb99061313e565b60405180910390fd5b6001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146111fa5787600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109d9190612c46565b925050819055506000600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008a9050600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611145578590505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146111eb578173ffffffffffffffffffffffffffffffffffffffff1663aad3ec96868c6040518363ffffffff1660e01b81526004016111b4929190612c1d565b600060405180830381600087803b1580156111ce57600080fd5b505af11580156111e2573d6000803e3d6000fd5b505050506111f7565b6111f68a868361224a565b5b50505b600087111561124b578273ffffffffffffffffffffffffffffffffffffffff166108fc889081150290604051600060405180830381858888f19350505050158015611249573d6000803e3d6000fd5b505b8273ffffffffffffffffffffffffffffffffffffffff167fc08c27d872ca12215b2df3f441676fe2c084a204a487086d7436a4ac433d417a8a8a8a6040516112959392919061315e565b60405180910390a2505050505050505050565b60007f2517d59a36a86548e38734e8ab416f42afff4bca78706a66ad65750dae7f9e37905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e16c7d98836040518263ffffffff1660e01b815260040161132991906128ef565b60206040518083038186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137991906131aa565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461144b5780600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb8d523c5d6602683fc3e40e21a9be346f970802af52c8e045e813541394d264d82826040516114429291906131d7565b60405180910390a15b60007fbd1aa3e8d2464256d7fd3dcf645c16418d5d8c51d971f1ad7d57e7b1b5eee239905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e16c7d98836040518263ffffffff1660e01b81526004016114cc91906128ef565b60206040518083038186803b1580156114e457600080fd5b505afa1580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c91906131aa565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115ee5780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb8d523c5d6602683fc3e40e21a9be346f970802af52c8e045e813541394d264d82826040516115e59291906131d7565b60405180910390a15b60007fb6138afe6f306a47bdf645c5aebcb9781efe787d221a1880e62d1f76dae58b84905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e16c7d98836040518263ffffffff1660e01b815260040161166f91906128ef565b60206040518083038186803b15801561168757600080fd5b505afa15801561169b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bf91906131aa565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117915780600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb8d523c5d6602683fc3e40e21a9be346f970802af52c8e045e813541394d264d82826040516117889291906131d7565b60405180910390a15b60007f3443e257065fe41dd0e4d1f5a1b73a22a62e300962b57f30cddf41d0f8273ba7905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e16c7d98836040518263ffffffff1660e01b815260040161181291906128ef565b60206040518083038186803b15801561182a57600080fd5b505afa15801561183e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186291906131aa565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119345780600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb8d523c5d6602683fc3e40e21a9be346f970802af52c8e045e813541394d264d828260405161192b9291906131d7565b60405180910390a15b5050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61196c612454565b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119f66112a8565b5050565b600a6020528060005260406000206000915090505481565b60015481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ae1612454565b80600760146101000a81548160ff0219169083151502179055507f370171e543b14c71782f52c505a6b233744e5b2a35486e12ddf379221e49dfaf81604051611b2a91906126f2565b60405180910390a150565b611b3d612561565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f7081604051611bac9190612851565b60405180910390a150565b600760149054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611bf681612221565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5a90612b2e565b60405180910390fd5b600c6000836000016020810190611c7a91906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf99061324c565b60405180910390fd5b6001600c6000846000016020810190611d1b91906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663989f789c83606001358460400135611dbe9190612c46565b846020016020810190611dd191906126aa565b856040013586606001356040518563ffffffff1660e01b8152600401611df99392919061315e565b6000604051808303818588803b158015611e1257600080fd5b505af1158015611e26573d6000803e3d6000fd5b50505050507f71adb0cec7763a4cfefd893fc873369117ed172979f7b8f7b683f6a5787c52c082604051611e5a91906132e1565b60405180910390a15050565b611e6e612454565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe51b4d409fd6629b39368b4863ab2212c8e0e0a970dccfaa5800888e507ce79d81604051611ede9190612851565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f1581612221565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7990612b2e565b60405180910390fd5b6000828060600190611f94919061330b565b9050905060005b8181101561210e576000848060600190611fb5919061330b565b83818110611fc657611fc561336e565b5b905060200201359050600b6000866000016020810190611fe691906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002060009054906101000a900460ff161561207f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612076906133e9565b60405180910390fd5b6001600b600087600001602081019061209891906126aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff02191690831515021790555050808061210690613409565b915050611f9b565b50612142836040013584602001602081019061212a91906126aa565b85608001602081019061213d91906126aa565b61224a565b7f9e36876ab9fc404649651fb29b8aebacf24393e00799e53abef98a59c5a003948360405161217191906135d1565b60405180910390a1505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007311110000000000000000000000000000000011118261224391906135f3565b9050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b382866040518363ffffffff1660e01b81526004016122ce929190612c1d565b600060405180830381600087803b1580156122e857600080fd5b505af11580156122fc573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663ee4e804a8585856000806000806040518863ffffffff1660e01b8152600401612347979695949392919061363d565b600060405180830381600087803b15801561236157600080fd5b505af1158015612375573d6000803e3d6000fd5b5050505050505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561244f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612446906136f8565b60405180910390fd5b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124ba57600080fd5b505afa1580156124ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f291906131aa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461255f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255690613764565b60405180910390fd5b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e6906137d0565b60405180910390fd5b565b600080fd5b600080fd5b600080fd5b600060c08284031215612616576126156125fb565b5b81905092915050565b600060c08284031215612635576126346125f1565b5b600061264384828501612600565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126778261264c565b9050919050565b6126878161266c565b811461269257600080fd5b50565b6000813590506126a48161267e565b92915050565b6000602082840312156126c0576126bf6125f1565b5b60006126ce84828501612695565b91505092915050565b60008115159050919050565b6126ec816126d7565b82525050565b600060208201905061270760008301846126e3565b92915050565b6000819050919050565b6127208161270d565b811461272b57600080fd5b50565b60008135905061273d81612717565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261276857612767612743565b5b8235905067ffffffffffffffff81111561278557612784612748565b5b6020830191508360208202830111156127a1576127a061274d565b5b9250929050565b60008060008060008060a087890312156127c5576127c46125f1565b5b60006127d389828a01612695565b96505060206127e489828a0161272e565b95505060406127f589828a0161272e565b945050606087013567ffffffffffffffff811115612816576128156125f6565b5b61282289828a01612752565b9350935050608061283589828a01612695565b9150509295509295509295565b61284b8161266c565b82525050565b60006020820190506128666000830184612842565b92915050565b60008060408385031215612883576128826125f1565b5b600061289185828601612695565b92505060206128a285828601612695565b9150509250929050565b6128b58161270d565b82525050565b60006020820190506128d060008301846128ac565b92915050565b6000819050919050565b6128e9816128d6565b82525050565b600060208201905061290460008301846128e0565b92915050565b60008060408385031215612921576129206125f1565b5b600061292f85828601612695565b92505060206129408582860161272e565b9150509250929050565b612953816126d7565b811461295e57600080fd5b50565b6000813590506129708161294a565b92915050565b60006020828403121561298c5761298b6125f1565b5b600061299a84828501612961565b91505092915050565b6000608082840312156129b9576129b86125fb565b5b81905092915050565b6000608082840312156129d8576129d76125f1565b5b60006129e6848285016129a3565b91505092915050565b600060a08284031215612a0557612a046125fb565b5b81905092915050565b600060208284031215612a2457612a236125f1565b5b600082013567ffffffffffffffff811115612a4257612a416125f6565b5b612a4e848285016129ef565b91505092915050565b6000819050919050565b6000612a7c612a77612a728461264c565b612a57565b61264c565b9050919050565b6000612a8e82612a61565b9050919050565b6000612aa082612a83565b9050919050565b612ab081612a95565b82525050565b6000602082019050612acb6000830184612aa7565b92915050565b600082825260208201905092915050565b7f4f4e4c595f434f554e544552504152545f474154455741590000000000000000600082015250565b6000612b18601883612ad1565b9150612b2382612ae2565b602082019050919050565b60006020820190508181036000830152612b4781612b0b565b9050919050565b7f44454c454741544f525f414c52454144595f4d49475241544544000000000000600082015250565b6000612b84601a83612ad1565b9150612b8f82612b4e565b602082019050919050565b60006020820190508181036000830152612bb381612b77565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bf48261270d565b9150612bff8361270d565b925082821015612c1257612c11612bba565b5b828203905092915050565b6000604082019050612c326000830185612842565b612c3f60208301846128ac565b9392505050565b6000612c518261270d565b9150612c5c8361270d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c9157612c90612bba565b5b828201905092915050565b600081905092915050565b50565b6000612cb7600083612c9c565b9150612cc282612ca7565b600082019050919050565b6000612cd882612caa565b9150819050919050565b7f46494e414c495a455f44454c454741544f523a4641494c5f4645450000000000600082015250565b6000612d18601b83612ad1565b9150612d2382612ce2565b602082019050919050565b60006020820190508181036000830152612d4781612d0b565b9050919050565b6000612d5d6020840184612695565b905092915050565b612d6e8161266c565b82525050565b6000612d83602084018461272e565b905092915050565b612d948161270d565b82525050565b60c08201612dab6000830183612d4e565b612db86000850182612d65565b50612dc66020830183612d4e565b612dd36020850182612d65565b50612de16040830183612d74565b612dee6040850182612d8b565b50612dfc6060830183612d74565b612e096060850182612d8b565b50612e176080830183612d74565b612e246080850182612d8b565b50612e3260a0830183612d4e565b612e3f60a0850182612d65565b50505050565b600060c082019050612e5a6000830184612d9a565b92915050565b7f434c41494d5f5354414b455f44495341424c4544000000000000000000000000600082015250565b6000612e96601483612ad1565b9150612ea182612e60565b602082019050919050565b60006020820190508181036000830152612ec581612e89565b9050919050565b7f434c41494d5f5354414b453a414c52454144595f4d4947524154454400000000600082015250565b6000612f02601c83612ad1565b9150612f0d82612ecc565b602082019050919050565b60006020820190508181036000830152612f3181612ef5565b9050919050565b60008160601b9050919050565b6000612f5082612f38565b9050919050565b6000612f6282612f45565b9050919050565b612f7a612f758261266c565b612f57565b82525050565b6000819050919050565b612f9b612f968261270d565b612f80565b82525050565b6000612fad8287612f69565b601482019150612fbd8286612f69565b601482019150612fcd8285612f8a565b602082019150612fdd8284612f8a565b60208201915081905095945050505050565b600082825260208201905092915050565b600080fd5b82818337600083830152505050565b60006130208385612fef565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561305357613052613000565b5b602083029250613064838584613005565b82840190509392505050565b600060608201905061308560008301876128e0565b8181036020830152613098818587613014565b90506130a760408301846128e0565b95945050505050565b6000815190506130bf8161294a565b92915050565b6000602082840312156130db576130da6125f1565b5b60006130e9848285016130b0565b91505092915050565b7f434c41494d5f5354414b453a494e56414c49445f50524f4f4600000000000000600082015250565b6000613128601983612ad1565b9150613133826130f2565b602082019050919050565b600060208201905081810360008301526131578161311b565b9050919050565b60006060820190506131736000830186612842565b61318060208301856128ac565b61318d60408301846128ac565b949350505050565b6000815190506131a48161267e565b92915050565b6000602082840312156131c0576131bf6125f1565b5b60006131ce84828501613195565b91505092915050565b60006040820190506131ec60008301856128e0565b6131f96020830184612842565b9392505050565b7f53454e4445525f414c52454144595f4d49475241544544000000000000000000600082015250565b6000613236601783612ad1565b915061324182613200565b602082019050919050565b6000602082019050818103600083015261326581613229565b9050919050565b6080820161327d6000830183612d4e565b61328a6000850182612d65565b506132986020830183612d4e565b6132a56020850182612d65565b506132b36040830183612d74565b6132c06040850182612d8b565b506132ce6060830183612d74565b6132db6060850182612d8b565b50505050565b60006080820190506132f6600083018461326c565b92915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613328576133276132fc565b5b80840192508235915067ffffffffffffffff82111561334a57613349613301565b5b60208301925060208202360383131561336657613365613306565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f554e424f4e44494e475f4c4f434b5f414c52454144595f4d4947524154454400600082015250565b60006133d3601f83612ad1565b91506133de8261339d565b602082019050919050565b60006020820190508181036000830152613402816133c6565b9050919050565b60006134148261270d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561344757613446612bba565b5b600182019050919050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261347e5761347d61345c565b5b83810192508235915060208301925067ffffffffffffffff8211156134a6576134a5613452565b5b6020820236038413156134bc576134bb613457565b5b509250929050565b600082825260208201905092915050565b60006134e183856134c4565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561351457613513613000565b5b602083029250613525838584613005565b82840190509392505050565b600060a083016135446000840184612d4e565b6135516000860182612d65565b5061355f6020840184612d4e565b61356c6020860182612d65565b5061357a6040840184612d74565b6135876040860182612d8b565b506135956060840184613461565b85830360608701526135a88382846134d5565b925050506135b96080840184612d4e565b6135c66080860182612d65565b508091505092915050565b600060208201905081810360008301526135eb8184613531565b905092915050565b60006135fe8261264c565b91506136098361264c565b92508273ffffffffffffffffffffffffffffffffffffffff0382111561363257613631612bba565b5b828201905092915050565b600060e082019050613652600083018a6128ac565b61365f6020830189612842565b61366c6040830188612842565b6136796060830187612842565b6136866080830186612842565b61369360a0830185612842565b6136a060c0830184612842565b98975050505050505050565b7f455243313136373a20637265617465206661696c656400000000000000000000600082015250565b60006136e2601683612ad1565b91506136ed826136ac565b602082019050919050565b60006020820190508181036000830152613711816136d5565b9050919050565b7f63616c6c6572206d75737420626520436f6e74726f6c6c6572206f776e657200600082015250565b600061374e601f83612ad1565b915061375982613718565b602082019050919050565b6000602082019050818103600083015261377d81613741565b9050919050565b7f63616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000600082015250565b60006137ba601983612ad1565b91506137c582613784565b602082019050919050565b600060208201905081810360008301526137e9816137ad565b905091905056fea264697066735822122066b86eceb7ddfc038bc8e5be0f564cb4e2c604e36eababd132fa6d053e0abd6864736f6c63430008090033000000000000000000000000d8e8328501e9645d16cf49539efc04f734606ee4