/**
Generated by the following Solidity interface...
```solidity
interface OperatorStateRetriever {
struct CheckSignaturesIndices {
uint32[] nonSignerQuorumBitmapIndices;
uint32[] quorumApkIndices;
uint32[] totalStakeIndices;
uint32[][] nonSignerStakeIndices;
}
struct Operator {
address operator;
bytes32 operatorId;
uint96 stake;
}
error OperatorNotRegistered();
function getBatchOperatorFromId(address registryCoordinator, bytes32[] memory operatorIds) external view returns (address[] memory operators);
function getBatchOperatorId(address registryCoordinator, address[] memory operators) external view returns (bytes32[] memory operatorIds);
function getCheckSignaturesIndices(address registryCoordinator, uint32 referenceBlockNumber, bytes memory quorumNumbers, bytes32[] memory nonSignerOperatorIds) external view returns (CheckSignaturesIndices memory);
function getOperatorState(address registryCoordinator, bytes memory quorumNumbers, uint32 blockNumber) external view returns (Operator[][] memory);
function getOperatorState(address registryCoordinator, bytes32 operatorId, uint32 blockNumber) external view returns (uint256, Operator[][] memory);
function getQuorumBitmapsAtBlockNumber(address registryCoordinator, bytes32[] memory operatorIds, uint32 blockNumber) external view returns (uint256[] memory);
}
```
...which was generated by the following JSON ABI:
```json
[
{
"type": "function",
"name": "getBatchOperatorFromId",
"inputs": [
{
"name": "registryCoordinator",
"type": "address",
"internalType": "contract ISlashingRegistryCoordinator"
},
{
"name": "operatorIds",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
],
"outputs": [
{
"name": "operators",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getBatchOperatorId",
"inputs": [
{
"name": "registryCoordinator",
"type": "address",
"internalType": "contract ISlashingRegistryCoordinator"
},
{
"name": "operators",
"type": "address[]",
"internalType": "address[]"
}
],
"outputs": [
{
"name": "operatorIds",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getCheckSignaturesIndices",
"inputs": [
{
"name": "registryCoordinator",
"type": "address",
"internalType": "contract ISlashingRegistryCoordinator"
},
{
"name": "referenceBlockNumber",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "quorumNumbers",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "nonSignerOperatorIds",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct OperatorStateRetriever.CheckSignaturesIndices",
"components": [
{
"name": "nonSignerQuorumBitmapIndices",
"type": "uint32[]",
"internalType": "uint32[]"
},
{
"name": "quorumApkIndices",
"type": "uint32[]",
"internalType": "uint32[]"
},
{
"name": "totalStakeIndices",
"type": "uint32[]",
"internalType": "uint32[]"
},
{
"name": "nonSignerStakeIndices",
"type": "uint32[][]",
"internalType": "uint32[][]"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOperatorState",
"inputs": [
{
"name": "registryCoordinator",
"type": "address",
"internalType": "contract ISlashingRegistryCoordinator"
},
{
"name": "quorumNumbers",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "blockNumber",
"type": "uint32",
"internalType": "uint32"
}
],
"outputs": [
{
"name": "",
"type": "tuple[][]",
"internalType": "struct OperatorStateRetriever.Operator[][]",
"components": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stake",
"type": "uint96",
"internalType": "uint96"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOperatorState",
"inputs": [
{
"name": "registryCoordinator",
"type": "address",
"internalType": "contract ISlashingRegistryCoordinator"
},
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "blockNumber",
"type": "uint32",
"internalType": "uint32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "tuple[][]",
"internalType": "struct OperatorStateRetriever.Operator[][]",
"components": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "stake",
"type": "uint96",
"internalType": "uint96"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getQuorumBitmapsAtBlockNumber",
"inputs": [
{
"name": "registryCoordinator",
"type": "address",
"internalType": "contract ISlashingRegistryCoordinator"
},
{
"name": "operatorIds",
"type": "bytes32[]",
"internalType": "bytes32[]"
},
{
"name": "blockNumber",
"type": "uint32",
"internalType": "uint32"
}
],
"outputs": [
{
"name": "",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"stateMutability": "view"
},
{
"type": "error",
"name": "OperatorNotRegistered",
"inputs": []
}
]
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod OperatorStateRetriever {
use super::*;
use alloy::sol_types as alloy_sol_types;
/// The creation / init bytecode of the contract.
///
/// ```text
///0x6080604052348015600e575f5ffd5b50611c088061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806331b36bd9146100645780633563b0d11461008d5780634d2b57fe146100ad5780634f739f74146100cd5780635c155662146100ed578063cefdc1d41461010d575b5f5ffd5b6100776100723660046112df565b61012e565b60405161008491906113cc565b60405180910390f35b6100a061009b366004611406565b61023f565b6040516100849190611567565b6100c06100bb3660046115d4565b6106a7565b6040516100849190611620565b6100e06100db36600461166b565b6107b1565b604051610084919061175b565b6101006100fb366004611811565b610e2e565b6040516100849190611870565b61012061011b3660046118a7565b610fe3565b6040516100849291906118db565b606081516001600160401b0381111561014957610149611279565b604051908082528060200260200182016040528015610172578160200160208202803683370190505b5090505f5b825181101561023857836001600160a01b03166313542a4e8483815181106101a1576101a16118fb565b60200260200101516040518263ffffffff1660e01b81526004016101d491906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101ef573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610213919061190f565b828281518110610225576102256118fb565b6020908102919091010152600101610177565b5092915050565b60605f846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a29190611926565b90505f856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103059190611926565b90505f866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610344573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103689190611926565b90505f86516001600160401b0381111561038457610384611279565b6040519080825280602002602001820160405280156103b757816020015b60608152602001906001900390816103a25790505b5090505f5b875181101561069b575f8882815181106103d8576103d86118fb565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291505f906001600160a01b038716906389026245906044015f60405180830381865afa158015610435573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261045c9190810190611941565b905080516001600160401b0381111561047757610477611279565b6040519080825280602002602001820160405280156104c057816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816104955790505b508484815181106104d3576104d36118fb565b60209081029190910101525f5b8151811015610690576040518060600160405280876001600160a01b03166347b314e8858581518110610515576105156118fb565b60200260200101516040518263ffffffff1660e01b815260040161053b91815260200190565b602060405180830381865afa158015610556573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057a9190611926565b6001600160a01b0316815260200183838151811061059a5761059a6118fb565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105c8576105c86118fb565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610622573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064691906119d1565b6001600160601b0316815250858581518110610664576106646118fb565b6020026020010151828151811061067d5761067d6118fb565b60209081029190910101526001016104e0565b5050506001016103bc565b50979650505050505050565b606081516001600160401b038111156106c2576106c2611279565b6040519080825280602002602001820160405280156106eb578160200160208202803683370190505b5090505f5b825181101561023857836001600160a01b031663296bb06484838151811061071a5761071a6118fb565b60200260200101516040518263ffffffff1660e01b815260040161074091815260200190565b602060405180830381865afa15801561075b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077f9190611926565b828281518110610791576107916118fb565b6001600160a01b03909216602092830291909101909101526001016106f0565b6107dc6040518060800160405280606081526020016060815260200160608152602001606081525090565b5f866001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610819573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083d9190611926565b905061086a6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b0389169063c391425e90610898908a9088906004016119f7565b5f60405180830381865afa1580156108b2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108d99190810190611a15565b81526040516340e03a8160e11b81526001600160a01b038316906381c075029061090b908a908a908a90600401611acc565b5f60405180830381865afa158015610925573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261094c9190810190611a15565b6040820152846001600160401b0381111561096957610969611279565b60405190808252806020026020018201604052801561099c57816020015b60608152602001906001900390816109875790505b5060608201525f5b60ff8116861115610d475784515f906001600160401b038111156109ca576109ca611279565b6040519080825280602002602001820160405280156109f3578160200160208202803683370190505b5083606001518360ff1681518110610a0d57610a0d6118fb565b60209081029190910101525f5b8651811015610c53575f8b6001600160a01b03166304ec6351898481518110610a4557610a456118fb565b60200260200101518d885f01518681518110610a6357610a636118fb565b60200260200101516040518463ffffffff1660e01b8152600401610aa09392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610abb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adf9190611af4565b9050806001600160c01b03165f03610b0a576040516325ec6c1f60e01b815260040160405180910390fd5b89898560ff16818110610b1f57610b1f6118fb565b60016001600160c01b038516919093013560f81c1c82169091039050610c4a57856001600160a01b031663dd9846b9898481518110610b6057610b606118fb565b60200260200101518c8c8860ff16818110610b7d57610b7d6118fb565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8e166044820152606401602060405180830381865afa158015610bd1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf59190611b1a565b85606001518560ff1681518110610c0e57610c0e6118fb565b60200260200101518481518110610c2757610c276118fb565b63ffffffff9092166020928302919091019091015282610c4681611b49565b9350505b50600101610a1a565b505f816001600160401b03811115610c6d57610c6d611279565b604051908082528060200260200182016040528015610c96578160200160208202803683370190505b5090505f5b82811015610d0c5784606001518460ff1681518110610cbc57610cbc6118fb565b60200260200101518181518110610cd557610cd56118fb565b6020026020010151828281518110610cef57610cef6118fb565b63ffffffff90921660209283029190910190910152600101610c9b565b508084606001518460ff1681518110610d2757610d276118fb565b602002602001018190525050508080610d3f90611b61565b9150506109a4565b505f886001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da99190611926565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610ddc908a908a908d90600401611b7f565b5f60405180830381865afa158015610df6573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e1d9190810190611a15565b602083015250979650505050505050565b60605f846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610e5f9291906119f7565b5f60405180830381865afa158015610e79573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ea09190810190611a15565b90505f84516001600160401b03811115610ebc57610ebc611279565b604051908082528060200260200182016040528015610ee5578160200160208202803683370190505b5090505f5b8551811015610fd957866001600160a01b03166304ec6351878381518110610f1457610f146118fb565b602002602001015187868581518110610f2f57610f2f6118fb565b60200260200101516040518463ffffffff1660e01b8152600401610f6c9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610f87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fab9190611af4565b6001600160c01b0316828281518110610fc657610fc66118fb565b6020908102919091010152600101610eea565b5095945050505050565b6040805160018082528183019092525f9160609183916020808301908036833701905050905084815f8151811061101c5761101c6118fb565b60209081029190910101526040516361c8a12f60e11b81525f906001600160a01b0388169063c391425e9061105790889086906004016119f7565b5f60405180830381865afa158015611071573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110989190810190611a15565b5f815181106110a9576110a96118fb565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291505f906001600160a01b038916906304ec635190606401602060405180830381865afa158015611112573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111369190611af4565b6001600160c01b031690505f61114b82611169565b9050816111598a838a61023f565b9550955050505050935093915050565b60605f5f61117684611232565b61ffff166001600160401b0381111561119157611191611279565b6040519080825280601f01601f1916602001820160405280156111bb576020820181803683370190505b5090505f805b8251821080156111d2575061010081105b15611228576001811b935085841615611218578060f81b8383815181106111fb576111fb6118fb565b60200101906001600160f81b03191690815f1a9053508160010191505b61122181611b49565b90506111c1565b5090949350505050565b5f805b821561125c57611246600184611ba8565b909216918061125481611bbb565b915050611235565b92915050565b6001600160a01b0381168114611276575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156112b5576112b5611279565b604052919050565b5f6001600160401b038211156112d5576112d5611279565b5060051b60200190565b5f5f604083850312156112f0575f5ffd5b82356112fb81611262565b915060208301356001600160401b03811115611315575f5ffd5b8301601f81018513611325575f5ffd5b8035611338611333826112bd565b61128d565b8082825260208201915060208360051b850101925087831115611359575f5ffd5b6020840193505b8284101561138457833561137381611262565b825260209384019390910190611360565b809450505050509250929050565b5f8151808452602084019350602083015f5b828110156113c25781518652602095860195909101906001016113a4565b5093949350505050565b602081525f6113de6020830184611392565b9392505050565b63ffffffff81168114611276575f5ffd5b8035611401816113e5565b919050565b5f5f5f60608486031215611418575f5ffd5b833561142381611262565b925060208401356001600160401b0381111561143d575f5ffd5b8401601f8101861361144d575f5ffd5b80356001600160401b0381111561146657611466611279565b611479601f8201601f191660200161128d565b81815287602083850101111561148d575f5ffd5b816020840160208301375f602083830101528094505050506114b1604085016113f6565b90509250925092565b5f82825180855260208501945060208160051b830101602085015f5b8381101561155b57848303601f19018852815180518085526020918201918501905f5b8181101561154257835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016114f9565b50506020998a01999094509290920191506001016114d6565b50909695505050505050565b602081525f6113de60208301846114ba565b5f82601f830112611588575f5ffd5b8135611596611333826112bd565b8082825260208201915060208360051b8601019250858311156115b7575f5ffd5b602085015b83811015610fd95780358352602092830192016115bc565b5f5f604083850312156115e5575f5ffd5b82356115f081611262565b915060208301356001600160401b0381111561160a575f5ffd5b61161685828601611579565b9150509250929050565b602080825282518282018190525f918401906040840190835b818110156116605783516001600160a01b0316835260209384019390920191600101611639565b509095945050505050565b5f5f5f5f5f6080868803121561167f575f5ffd5b853561168a81611262565b9450602086013561169a816113e5565b935060408601356001600160401b038111156116b4575f5ffd5b8601601f810188136116c4575f5ffd5b80356001600160401b038111156116d9575f5ffd5b8860208284010111156116ea575f5ffd5b6020919091019350915060608601356001600160401b0381111561170c575f5ffd5b61171888828901611579565b9150509295509295909350565b5f8151808452602084019350602083015f5b828110156113c257815163ffffffff16865260209586019590910190600101611737565b602081525f82516080602084015261177660a0840182611725565b90506020840151601f198483030160408501526117938282611725565b9150506040840151601f198483030160608501526117b18282611725565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b8501015f5b8281101561069b57601f198683030184526117fc828651611725565b602095860195949094019391506001016117e0565b5f5f5f60608486031215611823575f5ffd5b833561182e81611262565b925060208401356001600160401b03811115611848575f5ffd5b61185486828701611579565b9250506040840135611865816113e5565b809150509250925092565b602080825282518282018190525f918401906040840190835b81811015611660578351835260209384019390920191600101611889565b5f5f5f606084860312156118b9575f5ffd5b83356118c481611262565b9250602084013591506040840135611865816113e5565b828152604060208201525f6118f360408301846114ba565b949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561191f575f5ffd5b5051919050565b5f60208284031215611936575f5ffd5b81516113de81611262565b5f60208284031215611951575f5ffd5b81516001600160401b03811115611966575f5ffd5b8201601f81018413611976575f5ffd5b8051611984611333826112bd565b8082825260208201915060208360051b8501019250868311156119a5575f5ffd5b6020840193505b828410156119c75783518252602093840193909101906119ac565b9695505050505050565b5f602082840312156119e1575f5ffd5b81516001600160601b03811681146113de575f5ffd5b63ffffffff83168152604060208201525f6118f36040830184611392565b5f60208284031215611a25575f5ffd5b81516001600160401b03811115611a3a575f5ffd5b8201601f81018413611a4a575f5ffd5b8051611a58611333826112bd565b8082825260208201915060208360051b850101925086831115611a79575f5ffd5b6020840193505b828410156119c7578351611a93816113e5565b825260209384019390910190611a80565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201525f611aeb604083018486611aa4565b95945050505050565b5f60208284031215611b04575f5ffd5b81516001600160c01b03811681146113de575f5ffd5b5f60208284031215611b2a575f5ffd5b81516113de816113e5565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611b5a57611b5a611b35565b5060010190565b5f60ff821660ff8103611b7657611b76611b35565b60010192915050565b604081525f611b92604083018587611aa4565b905063ffffffff83166020830152949350505050565b8181038181111561125c5761125c611b35565b5f61ffff821661ffff8103611b7657611b76611b3556fea2646970667358221220492b3f60926e46ade5551f3fadaa07714d4d8eab2ce50f89a4a14a00b13a3ac164736f6c634300081b0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\x80`@R4\x80\x15`\x0EW__\xFD[Pa\x1C\x08\x80a\0\x1C_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\0`W_5`\xE0\x1C\x80c1\xB3k\xD9\x14a\0dW\x80c5c\xB0\xD1\x14a\0\x8DW\x80cM+W\xFE\x14a\0\xADW\x80cOs\x9Ft\x14a\0\xCDW\x80c\\\x15Vb\x14a\0\xEDW\x80c\xCE\xFD\xC1\xD4\x14a\x01\rW[__\xFD[a\0wa\0r6`\x04a\x12\xDFV[a\x01.V[`@Qa\0\x84\x91\x90a\x13\xCCV[`@Q\x80\x91\x03\x90\xF3[a\0\xA0a\0\x9B6`\x04a\x14\x06V[a\x02?V[`@Qa\0\x84\x91\x90a\x15gV[a\0\xC0a\0\xBB6`\x04a\x15\xD4V[a\x06\xA7V[`@Qa\0\x84\x91\x90a\x16 V[a\0\xE0a\0\xDB6`\x04a\x16kV[a\x07\xB1V[`@Qa\0\x84\x91\x90a\x17[V[a\x01\0a\0\xFB6`\x04a\x18\x11V[a\x0E.V[`@Qa\0\x84\x91\x90a\x18pV[a\x01 a\x01\x1B6`\x04a\x18\xA7V[a\x0F\xE3V[`@Qa\0\x84\x92\x91\x90a\x18\xDBV[``\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x01IWa\x01Ia\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x01rW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x82Q\x81\x10\x15a\x028W\x83`\x01`\x01`\xA0\x1B\x03\x16c\x13T*N\x84\x83\x81Q\x81\x10a\x01\xA1Wa\x01\xA1a\x18\xFBV[` \x02` \x01\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x01\xD4\x91\x90`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xEFW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x13\x91\x90a\x19\x0FV[\x82\x82\x81Q\x81\x10a\x02%Wa\x02%a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x01wV[P\x92\x91PPV[``_\x84`\x01`\x01`\xA0\x1B\x03\x16ch0H5`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02~W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\xA2\x91\x90a\x19&V[\x90P_\x85`\x01`\x01`\xA0\x1B\x03\x16c\x9E\x99#\xC2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\xE1W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x05\x91\x90a\x19&V[\x90P_\x86`\x01`\x01`\xA0\x1B\x03\x16c]\xF4YF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03DW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03h\x91\x90a\x19&V[\x90P_\x86Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x03\x84Wa\x03\x84a\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x03\xB7W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x03\xA2W\x90P[P\x90P_[\x87Q\x81\x10\x15a\x06\x9BW_\x88\x82\x81Q\x81\x10a\x03\xD8Wa\x03\xD8a\x18\xFBV[\x01` \x01Q`@Qc\x89\x02bE`\xE0\x1B\x81R`\xF8\x91\x90\x91\x1C`\x04\x82\x01\x81\x90Rc\xFF\xFF\xFF\xFF\x8A\x16`$\x83\x01R\x91P_\x90`\x01`\x01`\xA0\x1B\x03\x87\x16\x90c\x89\x02bE\x90`D\x01_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x045W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x04\\\x91\x90\x81\x01\x90a\x19AV[\x90P\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x04wWa\x04wa\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x04\xC0W\x81` \x01[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01R\x82R_\x19\x90\x92\x01\x91\x01\x81a\x04\x95W\x90P[P\x84\x84\x81Q\x81\x10a\x04\xD3Wa\x04\xD3a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R_[\x81Q\x81\x10\x15a\x06\x90W`@Q\x80``\x01`@R\x80\x87`\x01`\x01`\xA0\x1B\x03\x16cG\xB3\x14\xE8\x85\x85\x81Q\x81\x10a\x05\x15Wa\x05\x15a\x18\xFBV[` \x02` \x01\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x05;\x91\x81R` \x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05VW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05z\x91\x90a\x19&V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x83\x83\x81Q\x81\x10a\x05\x9AWa\x05\x9Aa\x18\xFBV[` \x02` \x01\x01Q\x81R` \x01\x89`\x01`\x01`\xA0\x1B\x03\x16c\xFA(\xC6'\x85\x85\x81Q\x81\x10a\x05\xC8Wa\x05\xC8a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Q`\x01`\x01`\xE0\x1B\x03\x19`\xE0\x84\x90\x1B\x16\x81R`\x04\x81\x01\x91\x90\x91R`\xFF\x88\x16`$\x82\x01Rc\xFF\xFF\xFF\xFF\x8F\x16`D\x82\x01R`d\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\"W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06F\x91\x90a\x19\xD1V[`\x01`\x01``\x1B\x03\x16\x81RP\x85\x85\x81Q\x81\x10a\x06dWa\x06da\x18\xFBV[` \x02` \x01\x01Q\x82\x81Q\x81\x10a\x06}Wa\x06}a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x04\xE0V[PPP`\x01\x01a\x03\xBCV[P\x97\x96PPPPPPPV[``\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x06\xC2Wa\x06\xC2a\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x06\xEBW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x82Q\x81\x10\x15a\x028W\x83`\x01`\x01`\xA0\x1B\x03\x16c)k\xB0d\x84\x83\x81Q\x81\x10a\x07\x1AWa\x07\x1Aa\x18\xFBV[` \x02` \x01\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x07@\x91\x81R` \x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07[W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x7F\x91\x90a\x19&V[\x82\x82\x81Q\x81\x10a\x07\x91Wa\x07\x91a\x18\xFBV[`\x01`\x01`\xA0\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x06\xF0V[a\x07\xDC`@Q\x80`\x80\x01`@R\x80``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[_\x86`\x01`\x01`\xA0\x1B\x03\x16ch0H5`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x19W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08=\x91\x90a\x19&V[\x90Pa\x08j`@Q\x80`\x80\x01`@R\x80``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[`@Qca\xC8\xA1/`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x89\x16\x90c\xC3\x91B^\x90a\x08\x98\x90\x8A\x90\x88\x90`\x04\x01a\x19\xF7V[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xB2W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x08\xD9\x91\x90\x81\x01\x90a\x1A\x15V[\x81R`@Qc@\xE0:\x81`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90c\x81\xC0u\x02\x90a\t\x0B\x90\x8A\x90\x8A\x90\x8A\x90`\x04\x01a\x1A\xCCV[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t%W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\tL\x91\x90\x81\x01\x90a\x1A\x15V[`@\x82\x01R\x84`\x01`\x01`@\x1B\x03\x81\x11\x15a\tiWa\tia\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t\x9CW\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\t\x87W\x90P[P``\x82\x01R_[`\xFF\x81\x16\x86\x11\x15a\rGW\x84Q_\x90`\x01`\x01`@\x1B\x03\x81\x11\x15a\t\xCAWa\t\xCAa\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t\xF3W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x83``\x01Q\x83`\xFF\x16\x81Q\x81\x10a\n\rWa\n\ra\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R_[\x86Q\x81\x10\x15a\x0CSW_\x8B`\x01`\x01`\xA0\x1B\x03\x16c\x04\xECcQ\x89\x84\x81Q\x81\x10a\nEWa\nEa\x18\xFBV[` \x02` \x01\x01Q\x8D\x88_\x01Q\x86\x81Q\x81\x10a\ncWa\nca\x18\xFBV[` \x02` \x01\x01Q`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\n\xA0\x93\x92\x91\x90\x92\x83Rc\xFF\xFF\xFF\xFF\x91\x82\x16` \x84\x01R\x16`@\x82\x01R``\x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xBBW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xDF\x91\x90a\x1A\xF4V[\x90P\x80`\x01`\x01`\xC0\x1B\x03\x16_\x03a\x0B\nW`@Qc%\xECl\x1F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x89\x89\x85`\xFF\x16\x81\x81\x10a\x0B\x1FWa\x0B\x1Fa\x18\xFBV[`\x01`\x01`\x01`\xC0\x1B\x03\x85\x16\x91\x90\x93\x015`\xF8\x1C\x1C\x82\x16\x90\x91\x03\x90Pa\x0CJW\x85`\x01`\x01`\xA0\x1B\x03\x16c\xDD\x98F\xB9\x89\x84\x81Q\x81\x10a\x0B`Wa\x0B`a\x18\xFBV[` \x02` \x01\x01Q\x8C\x8C\x88`\xFF\x16\x81\x81\x10a\x0B}Wa\x0B}a\x18\xFBV[`@Q`\x01`\x01`\xE0\x1B\x03\x19`\xE0\x87\x90\x1B\x16\x81R`\x04\x81\x01\x94\x90\x94R\x91\x90\x91\x015`\xF8\x1C`$\x83\x01RPc\xFF\xFF\xFF\xFF\x8E\x16`D\x82\x01R`d\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xD1W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xF5\x91\x90a\x1B\x1AV[\x85``\x01Q\x85`\xFF\x16\x81Q\x81\x10a\x0C\x0EWa\x0C\x0Ea\x18\xFBV[` \x02` \x01\x01Q\x84\x81Q\x81\x10a\x0C'Wa\x0C'a\x18\xFBV[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x82a\x0CF\x81a\x1BIV[\x93PP[P`\x01\x01a\n\x1AV[P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0CmWa\x0Cma\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0C\x96W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x82\x81\x10\x15a\r\x0CW\x84``\x01Q\x84`\xFF\x16\x81Q\x81\x10a\x0C\xBCWa\x0C\xBCa\x18\xFBV[` \x02` \x01\x01Q\x81\x81Q\x81\x10a\x0C\xD5Wa\x0C\xD5a\x18\xFBV[` \x02` \x01\x01Q\x82\x82\x81Q\x81\x10a\x0C\xEFWa\x0C\xEFa\x18\xFBV[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x0C\x9BV[P\x80\x84``\x01Q\x84`\xFF\x16\x81Q\x81\x10a\r'Wa\r'a\x18\xFBV[` \x02` \x01\x01\x81\x90RPPP\x80\x80a\r?\x90a\x1BaV[\x91PPa\t\xA4V[P_\x88`\x01`\x01`\xA0\x1B\x03\x16c]\xF4YF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\x85W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\r\xA9\x91\x90a\x19&V[`@Qc5IR\xA3`\xE2\x1B\x81R\x90\x91P`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\xD5%J\x8C\x90a\r\xDC\x90\x8A\x90\x8A\x90\x8D\x90`\x04\x01a\x1B\x7FV[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\xF6W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x0E\x1D\x91\x90\x81\x01\x90a\x1A\x15V[` \x83\x01RP\x97\x96PPPPPPPV[``_\x84`\x01`\x01`\xA0\x1B\x03\x16c\xC3\x91B^\x84\x86`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0E_\x92\x91\x90a\x19\xF7V[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0EyW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x0E\xA0\x91\x90\x81\x01\x90a\x1A\x15V[\x90P_\x84Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0E\xBCWa\x0E\xBCa\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0E\xE5W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x85Q\x81\x10\x15a\x0F\xD9W\x86`\x01`\x01`\xA0\x1B\x03\x16c\x04\xECcQ\x87\x83\x81Q\x81\x10a\x0F\x14Wa\x0F\x14a\x18\xFBV[` \x02` \x01\x01Q\x87\x86\x85\x81Q\x81\x10a\x0F/Wa\x0F/a\x18\xFBV[` \x02` \x01\x01Q`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0Fl\x93\x92\x91\x90\x92\x83Rc\xFF\xFF\xFF\xFF\x91\x82\x16` \x84\x01R\x16`@\x82\x01R``\x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\x87W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\xAB\x91\x90a\x1A\xF4V[`\x01`\x01`\xC0\x1B\x03\x16\x82\x82\x81Q\x81\x10a\x0F\xC6Wa\x0F\xC6a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x0E\xEAV[P\x95\x94PPPPPV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91``\x91\x83\x91` \x80\x83\x01\x90\x806\x837\x01\x90PP\x90P\x84\x81_\x81Q\x81\x10a\x10\x1CWa\x10\x1Ca\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R`@Qca\xC8\xA1/`\xE1\x1B\x81R_\x90`\x01`\x01`\xA0\x1B\x03\x88\x16\x90c\xC3\x91B^\x90a\x10W\x90\x88\x90\x86\x90`\x04\x01a\x19\xF7V[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10qW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x10\x98\x91\x90\x81\x01\x90a\x1A\x15V[_\x81Q\x81\x10a\x10\xA9Wa\x10\xA9a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Qc\x04\xECcQ`\xE0\x1B\x81R`\x04\x81\x01\x88\x90Rc\xFF\xFF\xFF\xFF\x87\x81\x16`$\x83\x01R\x90\x91\x16`D\x82\x01\x81\x90R\x91P_\x90`\x01`\x01`\xA0\x1B\x03\x89\x16\x90c\x04\xECcQ\x90`d\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11\x12W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x116\x91\x90a\x1A\xF4V[`\x01`\x01`\xC0\x1B\x03\x16\x90P_a\x11K\x82a\x11iV[\x90P\x81a\x11Y\x8A\x83\x8Aa\x02?V[\x95P\x95PPPPP\x93P\x93\x91PPV[``__a\x11v\x84a\x122V[a\xFF\xFF\x16`\x01`\x01`@\x1B\x03\x81\x11\x15a\x11\x91Wa\x11\x91a\x12yV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x11\xBBW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P_\x80[\x82Q\x82\x10\x80\x15a\x11\xD2WPa\x01\0\x81\x10[\x15a\x12(W`\x01\x81\x1B\x93P\x85\x84\x16\x15a\x12\x18W\x80`\xF8\x1B\x83\x83\x81Q\x81\x10a\x11\xFBWa\x11\xFBa\x18\xFBV[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SP\x81`\x01\x01\x91P[a\x12!\x81a\x1BIV[\x90Pa\x11\xC1V[P\x90\x94\x93PPPPV[_\x80[\x82\x15a\x12\\Wa\x12F`\x01\x84a\x1B\xA8V[\x90\x92\x16\x91\x80a\x12T\x81a\x1B\xBBV[\x91PPa\x125V[\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x12vW__\xFD[PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x12\xB5Wa\x12\xB5a\x12yV[`@R\x91\x90PV[_`\x01`\x01`@\x1B\x03\x82\x11\x15a\x12\xD5Wa\x12\xD5a\x12yV[P`\x05\x1B` \x01\x90V[__`@\x83\x85\x03\x12\x15a\x12\xF0W__\xFD[\x825a\x12\xFB\x81a\x12bV[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x13\x15W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x13%W__\xFD[\x805a\x138a\x133\x82a\x12\xBDV[a\x12\x8DV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x87\x83\x11\x15a\x13YW__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x13\x84W\x835a\x13s\x81a\x12bV[\x82R` \x93\x84\x01\x93\x90\x91\x01\x90a\x13`V[\x80\x94PPPPP\x92P\x92\x90PV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15a\x13\xC2W\x81Q\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01a\x13\xA4V[P\x93\x94\x93PPPPV[` \x81R_a\x13\xDE` \x83\x01\x84a\x13\x92V[\x93\x92PPPV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x12vW__\xFD[\x805a\x14\x01\x81a\x13\xE5V[\x91\x90PV[___``\x84\x86\x03\x12\x15a\x14\x18W__\xFD[\x835a\x14#\x81a\x12bV[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x14=W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x14MW__\xFD[\x805`\x01`\x01`@\x1B\x03\x81\x11\x15a\x14fWa\x14fa\x12yV[a\x14y`\x1F\x82\x01`\x1F\x19\x16` \x01a\x12\x8DV[\x81\x81R\x87` \x83\x85\x01\x01\x11\x15a\x14\x8DW__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x94PPPPa\x14\xB1`@\x85\x01a\x13\xF6V[\x90P\x92P\x92P\x92V[_\x82\x82Q\x80\x85R` \x85\x01\x94P` \x81`\x05\x1B\x83\x01\x01` \x85\x01_[\x83\x81\x10\x15a\x15[W\x84\x83\x03`\x1F\x19\x01\x88R\x81Q\x80Q\x80\x85R` \x91\x82\x01\x91\x85\x01\x90_[\x81\x81\x10\x15a\x15BW\x83Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x84R` \x80\x82\x01Q\x81\x86\x01R`@\x91\x82\x01Q`\x01`\x01``\x1B\x03\x16\x91\x85\x01\x91\x90\x91R\x90\x93\x01\x92``\x90\x92\x01\x91`\x01\x01a\x14\xF9V[PP` \x99\x8A\x01\x99\x90\x94P\x92\x90\x92\x01\x91P`\x01\x01a\x14\xD6V[P\x90\x96\x95PPPPPPV[` \x81R_a\x13\xDE` \x83\x01\x84a\x14\xBAV[_\x82`\x1F\x83\x01\x12a\x15\x88W__\xFD[\x815a\x15\x96a\x133\x82a\x12\xBDV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15a\x15\xB7W__\xFD[` \x85\x01[\x83\x81\x10\x15a\x0F\xD9W\x805\x83R` \x92\x83\x01\x92\x01a\x15\xBCV[__`@\x83\x85\x03\x12\x15a\x15\xE5W__\xFD[\x825a\x15\xF0\x81a\x12bV[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\nW__\xFD[a\x16\x16\x85\x82\x86\x01a\x15yV[\x91PP\x92P\x92\x90PV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x84\x01\x90`@\x84\x01\x90\x83[\x81\x81\x10\x15a\x16`W\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a\x169V[P\x90\x95\x94PPPPPV[_____`\x80\x86\x88\x03\x12\x15a\x16\x7FW__\xFD[\x855a\x16\x8A\x81a\x12bV[\x94P` \x86\x015a\x16\x9A\x81a\x13\xE5V[\x93P`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\xB4W__\xFD[\x86\x01`\x1F\x81\x01\x88\x13a\x16\xC4W__\xFD[\x805`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\xD9W__\xFD[\x88` \x82\x84\x01\x01\x11\x15a\x16\xEAW__\xFD[` \x91\x90\x91\x01\x93P\x91P``\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x17\x0CW__\xFD[a\x17\x18\x88\x82\x89\x01a\x15yV[\x91PP\x92\x95P\x92\x95\x90\x93PV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15a\x13\xC2W\x81Qc\xFF\xFF\xFF\xFF\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01a\x177V[` \x81R_\x82Q`\x80` \x84\x01Ra\x17v`\xA0\x84\x01\x82a\x17%V[\x90P` \x84\x01Q`\x1F\x19\x84\x83\x03\x01`@\x85\x01Ra\x17\x93\x82\x82a\x17%V[\x91PP`@\x84\x01Q`\x1F\x19\x84\x83\x03\x01``\x85\x01Ra\x17\xB1\x82\x82a\x17%V[``\x86\x01Q\x85\x82\x03`\x1F\x19\x01`\x80\x87\x01R\x80Q\x80\x83R\x91\x93P` \x90\x81\x01\x92P\x80\x84\x01\x91\x90`\x05\x82\x90\x1B\x85\x01\x01_[\x82\x81\x10\x15a\x06\x9BW`\x1F\x19\x86\x83\x03\x01\x84Ra\x17\xFC\x82\x86Qa\x17%V[` \x95\x86\x01\x95\x94\x90\x94\x01\x93\x91P`\x01\x01a\x17\xE0V[___``\x84\x86\x03\x12\x15a\x18#W__\xFD[\x835a\x18.\x81a\x12bV[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x18HW__\xFD[a\x18T\x86\x82\x87\x01a\x15yV[\x92PP`@\x84\x015a\x18e\x81a\x13\xE5V[\x80\x91PP\x92P\x92P\x92V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x84\x01\x90`@\x84\x01\x90\x83[\x81\x81\x10\x15a\x16`W\x83Q\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a\x18\x89V[___``\x84\x86\x03\x12\x15a\x18\xB9W__\xFD[\x835a\x18\xC4\x81a\x12bV[\x92P` \x84\x015\x91P`@\x84\x015a\x18e\x81a\x13\xE5V[\x82\x81R`@` \x82\x01R_a\x18\xF3`@\x83\x01\x84a\x14\xBAV[\x94\x93PPPPV[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_` \x82\x84\x03\x12\x15a\x19\x1FW__\xFD[PQ\x91\x90PV[_` \x82\x84\x03\x12\x15a\x196W__\xFD[\x81Qa\x13\xDE\x81a\x12bV[_` \x82\x84\x03\x12\x15a\x19QW__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x19fW__\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x19vW__\xFD[\x80Qa\x19\x84a\x133\x82a\x12\xBDV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15a\x19\xA5W__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x19\xC7W\x83Q\x82R` \x93\x84\x01\x93\x90\x91\x01\x90a\x19\xACV[\x96\x95PPPPPPV[_` \x82\x84\x03\x12\x15a\x19\xE1W__\xFD[\x81Q`\x01`\x01``\x1B\x03\x81\x16\x81\x14a\x13\xDEW__\xFD[c\xFF\xFF\xFF\xFF\x83\x16\x81R`@` \x82\x01R_a\x18\xF3`@\x83\x01\x84a\x13\x92V[_` \x82\x84\x03\x12\x15a\x1A%W__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1A:W__\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x1AJW__\xFD[\x80Qa\x1AXa\x133\x82a\x12\xBDV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15a\x1AyW__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x19\xC7W\x83Qa\x1A\x93\x81a\x13\xE5V[\x82R` \x93\x84\x01\x93\x90\x91\x01\x90a\x1A\x80V[\x81\x83R\x81\x81` \x85\x017P_\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[c\xFF\xFF\xFF\xFF\x84\x16\x81R`@` \x82\x01R_a\x1A\xEB`@\x83\x01\x84\x86a\x1A\xA4V[\x95\x94PPPPPV[_` \x82\x84\x03\x12\x15a\x1B\x04W__\xFD[\x81Q`\x01`\x01`\xC0\x1B\x03\x81\x16\x81\x14a\x13\xDEW__\xFD[_` \x82\x84\x03\x12\x15a\x1B*W__\xFD[\x81Qa\x13\xDE\x81a\x13\xE5V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_`\x01\x82\x01a\x1BZWa\x1BZa\x1B5V[P`\x01\x01\x90V[_`\xFF\x82\x16`\xFF\x81\x03a\x1BvWa\x1Bva\x1B5V[`\x01\x01\x92\x91PPV[`@\x81R_a\x1B\x92`@\x83\x01\x85\x87a\x1A\xA4V[\x90Pc\xFF\xFF\xFF\xFF\x83\x16` \x83\x01R\x94\x93PPPPV[\x81\x81\x03\x81\x81\x11\x15a\x12\\Wa\x12\\a\x1B5V[_a\xFF\xFF\x82\x16a\xFF\xFF\x81\x03a\x1BvWa\x1Bva\x1B5V\xFE\xA2dipfsX\"\x12 I+?`\x92nF\xAD\xE5U\x1F?\xAD\xAA\x07qMM\x8E\xAB,\xE5\x0F\x89\xA4\xA1J\0\xB1::\xC1dsolcC\0\x08\x1B\x003",
);
/// The runtime bytecode of the contract, as deployed on the network.
///
/// ```text
///0x608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806331b36bd9146100645780633563b0d11461008d5780634d2b57fe146100ad5780634f739f74146100cd5780635c155662146100ed578063cefdc1d41461010d575b5f5ffd5b6100776100723660046112df565b61012e565b60405161008491906113cc565b60405180910390f35b6100a061009b366004611406565b61023f565b6040516100849190611567565b6100c06100bb3660046115d4565b6106a7565b6040516100849190611620565b6100e06100db36600461166b565b6107b1565b604051610084919061175b565b6101006100fb366004611811565b610e2e565b6040516100849190611870565b61012061011b3660046118a7565b610fe3565b6040516100849291906118db565b606081516001600160401b0381111561014957610149611279565b604051908082528060200260200182016040528015610172578160200160208202803683370190505b5090505f5b825181101561023857836001600160a01b03166313542a4e8483815181106101a1576101a16118fb565b60200260200101516040518263ffffffff1660e01b81526004016101d491906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101ef573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610213919061190f565b828281518110610225576102256118fb565b6020908102919091010152600101610177565b5092915050565b60605f846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a29190611926565b90505f856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103059190611926565b90505f866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610344573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103689190611926565b90505f86516001600160401b0381111561038457610384611279565b6040519080825280602002602001820160405280156103b757816020015b60608152602001906001900390816103a25790505b5090505f5b875181101561069b575f8882815181106103d8576103d86118fb565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291505f906001600160a01b038716906389026245906044015f60405180830381865afa158015610435573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261045c9190810190611941565b905080516001600160401b0381111561047757610477611279565b6040519080825280602002602001820160405280156104c057816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816104955790505b508484815181106104d3576104d36118fb565b60209081029190910101525f5b8151811015610690576040518060600160405280876001600160a01b03166347b314e8858581518110610515576105156118fb565b60200260200101516040518263ffffffff1660e01b815260040161053b91815260200190565b602060405180830381865afa158015610556573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057a9190611926565b6001600160a01b0316815260200183838151811061059a5761059a6118fb565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105c8576105c86118fb565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610622573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064691906119d1565b6001600160601b0316815250858581518110610664576106646118fb565b6020026020010151828151811061067d5761067d6118fb565b60209081029190910101526001016104e0565b5050506001016103bc565b50979650505050505050565b606081516001600160401b038111156106c2576106c2611279565b6040519080825280602002602001820160405280156106eb578160200160208202803683370190505b5090505f5b825181101561023857836001600160a01b031663296bb06484838151811061071a5761071a6118fb565b60200260200101516040518263ffffffff1660e01b815260040161074091815260200190565b602060405180830381865afa15801561075b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077f9190611926565b828281518110610791576107916118fb565b6001600160a01b03909216602092830291909101909101526001016106f0565b6107dc6040518060800160405280606081526020016060815260200160608152602001606081525090565b5f866001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610819573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083d9190611926565b905061086a6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b0389169063c391425e90610898908a9088906004016119f7565b5f60405180830381865afa1580156108b2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108d99190810190611a15565b81526040516340e03a8160e11b81526001600160a01b038316906381c075029061090b908a908a908a90600401611acc565b5f60405180830381865afa158015610925573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261094c9190810190611a15565b6040820152846001600160401b0381111561096957610969611279565b60405190808252806020026020018201604052801561099c57816020015b60608152602001906001900390816109875790505b5060608201525f5b60ff8116861115610d475784515f906001600160401b038111156109ca576109ca611279565b6040519080825280602002602001820160405280156109f3578160200160208202803683370190505b5083606001518360ff1681518110610a0d57610a0d6118fb565b60209081029190910101525f5b8651811015610c53575f8b6001600160a01b03166304ec6351898481518110610a4557610a456118fb565b60200260200101518d885f01518681518110610a6357610a636118fb565b60200260200101516040518463ffffffff1660e01b8152600401610aa09392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610abb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adf9190611af4565b9050806001600160c01b03165f03610b0a576040516325ec6c1f60e01b815260040160405180910390fd5b89898560ff16818110610b1f57610b1f6118fb565b60016001600160c01b038516919093013560f81c1c82169091039050610c4a57856001600160a01b031663dd9846b9898481518110610b6057610b606118fb565b60200260200101518c8c8860ff16818110610b7d57610b7d6118fb565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8e166044820152606401602060405180830381865afa158015610bd1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf59190611b1a565b85606001518560ff1681518110610c0e57610c0e6118fb565b60200260200101518481518110610c2757610c276118fb565b63ffffffff9092166020928302919091019091015282610c4681611b49565b9350505b50600101610a1a565b505f816001600160401b03811115610c6d57610c6d611279565b604051908082528060200260200182016040528015610c96578160200160208202803683370190505b5090505f5b82811015610d0c5784606001518460ff1681518110610cbc57610cbc6118fb565b60200260200101518181518110610cd557610cd56118fb565b6020026020010151828281518110610cef57610cef6118fb565b63ffffffff90921660209283029190910190910152600101610c9b565b508084606001518460ff1681518110610d2757610d276118fb565b602002602001018190525050508080610d3f90611b61565b9150506109a4565b505f886001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da99190611926565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610ddc908a908a908d90600401611b7f565b5f60405180830381865afa158015610df6573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e1d9190810190611a15565b602083015250979650505050505050565b60605f846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610e5f9291906119f7565b5f60405180830381865afa158015610e79573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ea09190810190611a15565b90505f84516001600160401b03811115610ebc57610ebc611279565b604051908082528060200260200182016040528015610ee5578160200160208202803683370190505b5090505f5b8551811015610fd957866001600160a01b03166304ec6351878381518110610f1457610f146118fb565b602002602001015187868581518110610f2f57610f2f6118fb565b60200260200101516040518463ffffffff1660e01b8152600401610f6c9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610f87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fab9190611af4565b6001600160c01b0316828281518110610fc657610fc66118fb565b6020908102919091010152600101610eea565b5095945050505050565b6040805160018082528183019092525f9160609183916020808301908036833701905050905084815f8151811061101c5761101c6118fb565b60209081029190910101526040516361c8a12f60e11b81525f906001600160a01b0388169063c391425e9061105790889086906004016119f7565b5f60405180830381865afa158015611071573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110989190810190611a15565b5f815181106110a9576110a96118fb565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291505f906001600160a01b038916906304ec635190606401602060405180830381865afa158015611112573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111369190611af4565b6001600160c01b031690505f61114b82611169565b9050816111598a838a61023f565b9550955050505050935093915050565b60605f5f61117684611232565b61ffff166001600160401b0381111561119157611191611279565b6040519080825280601f01601f1916602001820160405280156111bb576020820181803683370190505b5090505f805b8251821080156111d2575061010081105b15611228576001811b935085841615611218578060f81b8383815181106111fb576111fb6118fb565b60200101906001600160f81b03191690815f1a9053508160010191505b61122181611b49565b90506111c1565b5090949350505050565b5f805b821561125c57611246600184611ba8565b909216918061125481611bbb565b915050611235565b92915050565b6001600160a01b0381168114611276575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156112b5576112b5611279565b604052919050565b5f6001600160401b038211156112d5576112d5611279565b5060051b60200190565b5f5f604083850312156112f0575f5ffd5b82356112fb81611262565b915060208301356001600160401b03811115611315575f5ffd5b8301601f81018513611325575f5ffd5b8035611338611333826112bd565b61128d565b8082825260208201915060208360051b850101925087831115611359575f5ffd5b6020840193505b8284101561138457833561137381611262565b825260209384019390910190611360565b809450505050509250929050565b5f8151808452602084019350602083015f5b828110156113c25781518652602095860195909101906001016113a4565b5093949350505050565b602081525f6113de6020830184611392565b9392505050565b63ffffffff81168114611276575f5ffd5b8035611401816113e5565b919050565b5f5f5f60608486031215611418575f5ffd5b833561142381611262565b925060208401356001600160401b0381111561143d575f5ffd5b8401601f8101861361144d575f5ffd5b80356001600160401b0381111561146657611466611279565b611479601f8201601f191660200161128d565b81815287602083850101111561148d575f5ffd5b816020840160208301375f602083830101528094505050506114b1604085016113f6565b90509250925092565b5f82825180855260208501945060208160051b830101602085015f5b8381101561155b57848303601f19018852815180518085526020918201918501905f5b8181101561154257835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016114f9565b50506020998a01999094509290920191506001016114d6565b50909695505050505050565b602081525f6113de60208301846114ba565b5f82601f830112611588575f5ffd5b8135611596611333826112bd565b8082825260208201915060208360051b8601019250858311156115b7575f5ffd5b602085015b83811015610fd95780358352602092830192016115bc565b5f5f604083850312156115e5575f5ffd5b82356115f081611262565b915060208301356001600160401b0381111561160a575f5ffd5b61161685828601611579565b9150509250929050565b602080825282518282018190525f918401906040840190835b818110156116605783516001600160a01b0316835260209384019390920191600101611639565b509095945050505050565b5f5f5f5f5f6080868803121561167f575f5ffd5b853561168a81611262565b9450602086013561169a816113e5565b935060408601356001600160401b038111156116b4575f5ffd5b8601601f810188136116c4575f5ffd5b80356001600160401b038111156116d9575f5ffd5b8860208284010111156116ea575f5ffd5b6020919091019350915060608601356001600160401b0381111561170c575f5ffd5b61171888828901611579565b9150509295509295909350565b5f8151808452602084019350602083015f5b828110156113c257815163ffffffff16865260209586019590910190600101611737565b602081525f82516080602084015261177660a0840182611725565b90506020840151601f198483030160408501526117938282611725565b9150506040840151601f198483030160608501526117b18282611725565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b8501015f5b8281101561069b57601f198683030184526117fc828651611725565b602095860195949094019391506001016117e0565b5f5f5f60608486031215611823575f5ffd5b833561182e81611262565b925060208401356001600160401b03811115611848575f5ffd5b61185486828701611579565b9250506040840135611865816113e5565b809150509250925092565b602080825282518282018190525f918401906040840190835b81811015611660578351835260209384019390920191600101611889565b5f5f5f606084860312156118b9575f5ffd5b83356118c481611262565b9250602084013591506040840135611865816113e5565b828152604060208201525f6118f360408301846114ba565b949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561191f575f5ffd5b5051919050565b5f60208284031215611936575f5ffd5b81516113de81611262565b5f60208284031215611951575f5ffd5b81516001600160401b03811115611966575f5ffd5b8201601f81018413611976575f5ffd5b8051611984611333826112bd565b8082825260208201915060208360051b8501019250868311156119a5575f5ffd5b6020840193505b828410156119c75783518252602093840193909101906119ac565b9695505050505050565b5f602082840312156119e1575f5ffd5b81516001600160601b03811681146113de575f5ffd5b63ffffffff83168152604060208201525f6118f36040830184611392565b5f60208284031215611a25575f5ffd5b81516001600160401b03811115611a3a575f5ffd5b8201601f81018413611a4a575f5ffd5b8051611a58611333826112bd565b8082825260208201915060208360051b850101925086831115611a79575f5ffd5b6020840193505b828410156119c7578351611a93816113e5565b825260209384019390910190611a80565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201525f611aeb604083018486611aa4565b95945050505050565b5f60208284031215611b04575f5ffd5b81516001600160c01b03811681146113de575f5ffd5b5f60208284031215611b2a575f5ffd5b81516113de816113e5565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611b5a57611b5a611b35565b5060010190565b5f60ff821660ff8103611b7657611b76611b35565b60010192915050565b604081525f611b92604083018587611aa4565b905063ffffffff83166020830152949350505050565b8181038181111561125c5761125c611b35565b5f61ffff821661ffff8103611b7657611b76611b3556fea2646970667358221220492b3f60926e46ade5551f3fadaa07714d4d8eab2ce50f89a4a14a00b13a3ac164736f6c634300081b0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\0`W_5`\xE0\x1C\x80c1\xB3k\xD9\x14a\0dW\x80c5c\xB0\xD1\x14a\0\x8DW\x80cM+W\xFE\x14a\0\xADW\x80cOs\x9Ft\x14a\0\xCDW\x80c\\\x15Vb\x14a\0\xEDW\x80c\xCE\xFD\xC1\xD4\x14a\x01\rW[__\xFD[a\0wa\0r6`\x04a\x12\xDFV[a\x01.V[`@Qa\0\x84\x91\x90a\x13\xCCV[`@Q\x80\x91\x03\x90\xF3[a\0\xA0a\0\x9B6`\x04a\x14\x06V[a\x02?V[`@Qa\0\x84\x91\x90a\x15gV[a\0\xC0a\0\xBB6`\x04a\x15\xD4V[a\x06\xA7V[`@Qa\0\x84\x91\x90a\x16 V[a\0\xE0a\0\xDB6`\x04a\x16kV[a\x07\xB1V[`@Qa\0\x84\x91\x90a\x17[V[a\x01\0a\0\xFB6`\x04a\x18\x11V[a\x0E.V[`@Qa\0\x84\x91\x90a\x18pV[a\x01 a\x01\x1B6`\x04a\x18\xA7V[a\x0F\xE3V[`@Qa\0\x84\x92\x91\x90a\x18\xDBV[``\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x01IWa\x01Ia\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x01rW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x82Q\x81\x10\x15a\x028W\x83`\x01`\x01`\xA0\x1B\x03\x16c\x13T*N\x84\x83\x81Q\x81\x10a\x01\xA1Wa\x01\xA1a\x18\xFBV[` \x02` \x01\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x01\xD4\x91\x90`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xEFW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x13\x91\x90a\x19\x0FV[\x82\x82\x81Q\x81\x10a\x02%Wa\x02%a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x01wV[P\x92\x91PPV[``_\x84`\x01`\x01`\xA0\x1B\x03\x16ch0H5`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02~W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\xA2\x91\x90a\x19&V[\x90P_\x85`\x01`\x01`\xA0\x1B\x03\x16c\x9E\x99#\xC2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\xE1W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x05\x91\x90a\x19&V[\x90P_\x86`\x01`\x01`\xA0\x1B\x03\x16c]\xF4YF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03DW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03h\x91\x90a\x19&V[\x90P_\x86Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x03\x84Wa\x03\x84a\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x03\xB7W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x03\xA2W\x90P[P\x90P_[\x87Q\x81\x10\x15a\x06\x9BW_\x88\x82\x81Q\x81\x10a\x03\xD8Wa\x03\xD8a\x18\xFBV[\x01` \x01Q`@Qc\x89\x02bE`\xE0\x1B\x81R`\xF8\x91\x90\x91\x1C`\x04\x82\x01\x81\x90Rc\xFF\xFF\xFF\xFF\x8A\x16`$\x83\x01R\x91P_\x90`\x01`\x01`\xA0\x1B\x03\x87\x16\x90c\x89\x02bE\x90`D\x01_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x045W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x04\\\x91\x90\x81\x01\x90a\x19AV[\x90P\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x04wWa\x04wa\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x04\xC0W\x81` \x01[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01R\x82R_\x19\x90\x92\x01\x91\x01\x81a\x04\x95W\x90P[P\x84\x84\x81Q\x81\x10a\x04\xD3Wa\x04\xD3a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R_[\x81Q\x81\x10\x15a\x06\x90W`@Q\x80``\x01`@R\x80\x87`\x01`\x01`\xA0\x1B\x03\x16cG\xB3\x14\xE8\x85\x85\x81Q\x81\x10a\x05\x15Wa\x05\x15a\x18\xFBV[` \x02` \x01\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x05;\x91\x81R` \x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05VW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05z\x91\x90a\x19&V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x83\x83\x81Q\x81\x10a\x05\x9AWa\x05\x9Aa\x18\xFBV[` \x02` \x01\x01Q\x81R` \x01\x89`\x01`\x01`\xA0\x1B\x03\x16c\xFA(\xC6'\x85\x85\x81Q\x81\x10a\x05\xC8Wa\x05\xC8a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Q`\x01`\x01`\xE0\x1B\x03\x19`\xE0\x84\x90\x1B\x16\x81R`\x04\x81\x01\x91\x90\x91R`\xFF\x88\x16`$\x82\x01Rc\xFF\xFF\xFF\xFF\x8F\x16`D\x82\x01R`d\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\"W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06F\x91\x90a\x19\xD1V[`\x01`\x01``\x1B\x03\x16\x81RP\x85\x85\x81Q\x81\x10a\x06dWa\x06da\x18\xFBV[` \x02` \x01\x01Q\x82\x81Q\x81\x10a\x06}Wa\x06}a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x04\xE0V[PPP`\x01\x01a\x03\xBCV[P\x97\x96PPPPPPPV[``\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x06\xC2Wa\x06\xC2a\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x06\xEBW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x82Q\x81\x10\x15a\x028W\x83`\x01`\x01`\xA0\x1B\x03\x16c)k\xB0d\x84\x83\x81Q\x81\x10a\x07\x1AWa\x07\x1Aa\x18\xFBV[` \x02` \x01\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x07@\x91\x81R` \x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07[W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x7F\x91\x90a\x19&V[\x82\x82\x81Q\x81\x10a\x07\x91Wa\x07\x91a\x18\xFBV[`\x01`\x01`\xA0\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x06\xF0V[a\x07\xDC`@Q\x80`\x80\x01`@R\x80``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[_\x86`\x01`\x01`\xA0\x1B\x03\x16ch0H5`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x19W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08=\x91\x90a\x19&V[\x90Pa\x08j`@Q\x80`\x80\x01`@R\x80``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[`@Qca\xC8\xA1/`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x89\x16\x90c\xC3\x91B^\x90a\x08\x98\x90\x8A\x90\x88\x90`\x04\x01a\x19\xF7V[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xB2W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x08\xD9\x91\x90\x81\x01\x90a\x1A\x15V[\x81R`@Qc@\xE0:\x81`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90c\x81\xC0u\x02\x90a\t\x0B\x90\x8A\x90\x8A\x90\x8A\x90`\x04\x01a\x1A\xCCV[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t%W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\tL\x91\x90\x81\x01\x90a\x1A\x15V[`@\x82\x01R\x84`\x01`\x01`@\x1B\x03\x81\x11\x15a\tiWa\tia\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t\x9CW\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\t\x87W\x90P[P``\x82\x01R_[`\xFF\x81\x16\x86\x11\x15a\rGW\x84Q_\x90`\x01`\x01`@\x1B\x03\x81\x11\x15a\t\xCAWa\t\xCAa\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t\xF3W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x83``\x01Q\x83`\xFF\x16\x81Q\x81\x10a\n\rWa\n\ra\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R_[\x86Q\x81\x10\x15a\x0CSW_\x8B`\x01`\x01`\xA0\x1B\x03\x16c\x04\xECcQ\x89\x84\x81Q\x81\x10a\nEWa\nEa\x18\xFBV[` \x02` \x01\x01Q\x8D\x88_\x01Q\x86\x81Q\x81\x10a\ncWa\nca\x18\xFBV[` \x02` \x01\x01Q`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\n\xA0\x93\x92\x91\x90\x92\x83Rc\xFF\xFF\xFF\xFF\x91\x82\x16` \x84\x01R\x16`@\x82\x01R``\x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xBBW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xDF\x91\x90a\x1A\xF4V[\x90P\x80`\x01`\x01`\xC0\x1B\x03\x16_\x03a\x0B\nW`@Qc%\xECl\x1F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x89\x89\x85`\xFF\x16\x81\x81\x10a\x0B\x1FWa\x0B\x1Fa\x18\xFBV[`\x01`\x01`\x01`\xC0\x1B\x03\x85\x16\x91\x90\x93\x015`\xF8\x1C\x1C\x82\x16\x90\x91\x03\x90Pa\x0CJW\x85`\x01`\x01`\xA0\x1B\x03\x16c\xDD\x98F\xB9\x89\x84\x81Q\x81\x10a\x0B`Wa\x0B`a\x18\xFBV[` \x02` \x01\x01Q\x8C\x8C\x88`\xFF\x16\x81\x81\x10a\x0B}Wa\x0B}a\x18\xFBV[`@Q`\x01`\x01`\xE0\x1B\x03\x19`\xE0\x87\x90\x1B\x16\x81R`\x04\x81\x01\x94\x90\x94R\x91\x90\x91\x015`\xF8\x1C`$\x83\x01RPc\xFF\xFF\xFF\xFF\x8E\x16`D\x82\x01R`d\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xD1W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xF5\x91\x90a\x1B\x1AV[\x85``\x01Q\x85`\xFF\x16\x81Q\x81\x10a\x0C\x0EWa\x0C\x0Ea\x18\xFBV[` \x02` \x01\x01Q\x84\x81Q\x81\x10a\x0C'Wa\x0C'a\x18\xFBV[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x82a\x0CF\x81a\x1BIV[\x93PP[P`\x01\x01a\n\x1AV[P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0CmWa\x0Cma\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0C\x96W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x82\x81\x10\x15a\r\x0CW\x84``\x01Q\x84`\xFF\x16\x81Q\x81\x10a\x0C\xBCWa\x0C\xBCa\x18\xFBV[` \x02` \x01\x01Q\x81\x81Q\x81\x10a\x0C\xD5Wa\x0C\xD5a\x18\xFBV[` \x02` \x01\x01Q\x82\x82\x81Q\x81\x10a\x0C\xEFWa\x0C\xEFa\x18\xFBV[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x0C\x9BV[P\x80\x84``\x01Q\x84`\xFF\x16\x81Q\x81\x10a\r'Wa\r'a\x18\xFBV[` \x02` \x01\x01\x81\x90RPPP\x80\x80a\r?\x90a\x1BaV[\x91PPa\t\xA4V[P_\x88`\x01`\x01`\xA0\x1B\x03\x16c]\xF4YF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\x85W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\r\xA9\x91\x90a\x19&V[`@Qc5IR\xA3`\xE2\x1B\x81R\x90\x91P`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\xD5%J\x8C\x90a\r\xDC\x90\x8A\x90\x8A\x90\x8D\x90`\x04\x01a\x1B\x7FV[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\xF6W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x0E\x1D\x91\x90\x81\x01\x90a\x1A\x15V[` \x83\x01RP\x97\x96PPPPPPPV[``_\x84`\x01`\x01`\xA0\x1B\x03\x16c\xC3\x91B^\x84\x86`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0E_\x92\x91\x90a\x19\xF7V[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0EyW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x0E\xA0\x91\x90\x81\x01\x90a\x1A\x15V[\x90P_\x84Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0E\xBCWa\x0E\xBCa\x12yV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0E\xE5W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x85Q\x81\x10\x15a\x0F\xD9W\x86`\x01`\x01`\xA0\x1B\x03\x16c\x04\xECcQ\x87\x83\x81Q\x81\x10a\x0F\x14Wa\x0F\x14a\x18\xFBV[` \x02` \x01\x01Q\x87\x86\x85\x81Q\x81\x10a\x0F/Wa\x0F/a\x18\xFBV[` \x02` \x01\x01Q`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0Fl\x93\x92\x91\x90\x92\x83Rc\xFF\xFF\xFF\xFF\x91\x82\x16` \x84\x01R\x16`@\x82\x01R``\x01\x90V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\x87W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\xAB\x91\x90a\x1A\xF4V[`\x01`\x01`\xC0\x1B\x03\x16\x82\x82\x81Q\x81\x10a\x0F\xC6Wa\x0F\xC6a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x0E\xEAV[P\x95\x94PPPPPV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91``\x91\x83\x91` \x80\x83\x01\x90\x806\x837\x01\x90PP\x90P\x84\x81_\x81Q\x81\x10a\x10\x1CWa\x10\x1Ca\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01R`@Qca\xC8\xA1/`\xE1\x1B\x81R_\x90`\x01`\x01`\xA0\x1B\x03\x88\x16\x90c\xC3\x91B^\x90a\x10W\x90\x88\x90\x86\x90`\x04\x01a\x19\xF7V[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10qW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x10\x98\x91\x90\x81\x01\x90a\x1A\x15V[_\x81Q\x81\x10a\x10\xA9Wa\x10\xA9a\x18\xFBV[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Qc\x04\xECcQ`\xE0\x1B\x81R`\x04\x81\x01\x88\x90Rc\xFF\xFF\xFF\xFF\x87\x81\x16`$\x83\x01R\x90\x91\x16`D\x82\x01\x81\x90R\x91P_\x90`\x01`\x01`\xA0\x1B\x03\x89\x16\x90c\x04\xECcQ\x90`d\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11\x12W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x116\x91\x90a\x1A\xF4V[`\x01`\x01`\xC0\x1B\x03\x16\x90P_a\x11K\x82a\x11iV[\x90P\x81a\x11Y\x8A\x83\x8Aa\x02?V[\x95P\x95PPPPP\x93P\x93\x91PPV[``__a\x11v\x84a\x122V[a\xFF\xFF\x16`\x01`\x01`@\x1B\x03\x81\x11\x15a\x11\x91Wa\x11\x91a\x12yV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x11\xBBW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P_\x80[\x82Q\x82\x10\x80\x15a\x11\xD2WPa\x01\0\x81\x10[\x15a\x12(W`\x01\x81\x1B\x93P\x85\x84\x16\x15a\x12\x18W\x80`\xF8\x1B\x83\x83\x81Q\x81\x10a\x11\xFBWa\x11\xFBa\x18\xFBV[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SP\x81`\x01\x01\x91P[a\x12!\x81a\x1BIV[\x90Pa\x11\xC1V[P\x90\x94\x93PPPPV[_\x80[\x82\x15a\x12\\Wa\x12F`\x01\x84a\x1B\xA8V[\x90\x92\x16\x91\x80a\x12T\x81a\x1B\xBBV[\x91PPa\x125V[\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x12vW__\xFD[PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x12\xB5Wa\x12\xB5a\x12yV[`@R\x91\x90PV[_`\x01`\x01`@\x1B\x03\x82\x11\x15a\x12\xD5Wa\x12\xD5a\x12yV[P`\x05\x1B` \x01\x90V[__`@\x83\x85\x03\x12\x15a\x12\xF0W__\xFD[\x825a\x12\xFB\x81a\x12bV[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x13\x15W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x13%W__\xFD[\x805a\x138a\x133\x82a\x12\xBDV[a\x12\x8DV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x87\x83\x11\x15a\x13YW__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x13\x84W\x835a\x13s\x81a\x12bV[\x82R` \x93\x84\x01\x93\x90\x91\x01\x90a\x13`V[\x80\x94PPPPP\x92P\x92\x90PV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15a\x13\xC2W\x81Q\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01a\x13\xA4V[P\x93\x94\x93PPPPV[` \x81R_a\x13\xDE` \x83\x01\x84a\x13\x92V[\x93\x92PPPV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x12vW__\xFD[\x805a\x14\x01\x81a\x13\xE5V[\x91\x90PV[___``\x84\x86\x03\x12\x15a\x14\x18W__\xFD[\x835a\x14#\x81a\x12bV[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x14=W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x14MW__\xFD[\x805`\x01`\x01`@\x1B\x03\x81\x11\x15a\x14fWa\x14fa\x12yV[a\x14y`\x1F\x82\x01`\x1F\x19\x16` \x01a\x12\x8DV[\x81\x81R\x87` \x83\x85\x01\x01\x11\x15a\x14\x8DW__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x94PPPPa\x14\xB1`@\x85\x01a\x13\xF6V[\x90P\x92P\x92P\x92V[_\x82\x82Q\x80\x85R` \x85\x01\x94P` \x81`\x05\x1B\x83\x01\x01` \x85\x01_[\x83\x81\x10\x15a\x15[W\x84\x83\x03`\x1F\x19\x01\x88R\x81Q\x80Q\x80\x85R` \x91\x82\x01\x91\x85\x01\x90_[\x81\x81\x10\x15a\x15BW\x83Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x84R` \x80\x82\x01Q\x81\x86\x01R`@\x91\x82\x01Q`\x01`\x01``\x1B\x03\x16\x91\x85\x01\x91\x90\x91R\x90\x93\x01\x92``\x90\x92\x01\x91`\x01\x01a\x14\xF9V[PP` \x99\x8A\x01\x99\x90\x94P\x92\x90\x92\x01\x91P`\x01\x01a\x14\xD6V[P\x90\x96\x95PPPPPPV[` \x81R_a\x13\xDE` \x83\x01\x84a\x14\xBAV[_\x82`\x1F\x83\x01\x12a\x15\x88W__\xFD[\x815a\x15\x96a\x133\x82a\x12\xBDV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15a\x15\xB7W__\xFD[` \x85\x01[\x83\x81\x10\x15a\x0F\xD9W\x805\x83R` \x92\x83\x01\x92\x01a\x15\xBCV[__`@\x83\x85\x03\x12\x15a\x15\xE5W__\xFD[\x825a\x15\xF0\x81a\x12bV[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\nW__\xFD[a\x16\x16\x85\x82\x86\x01a\x15yV[\x91PP\x92P\x92\x90PV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x84\x01\x90`@\x84\x01\x90\x83[\x81\x81\x10\x15a\x16`W\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a\x169V[P\x90\x95\x94PPPPPV[_____`\x80\x86\x88\x03\x12\x15a\x16\x7FW__\xFD[\x855a\x16\x8A\x81a\x12bV[\x94P` \x86\x015a\x16\x9A\x81a\x13\xE5V[\x93P`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\xB4W__\xFD[\x86\x01`\x1F\x81\x01\x88\x13a\x16\xC4W__\xFD[\x805`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\xD9W__\xFD[\x88` \x82\x84\x01\x01\x11\x15a\x16\xEAW__\xFD[` \x91\x90\x91\x01\x93P\x91P``\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x17\x0CW__\xFD[a\x17\x18\x88\x82\x89\x01a\x15yV[\x91PP\x92\x95P\x92\x95\x90\x93PV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15a\x13\xC2W\x81Qc\xFF\xFF\xFF\xFF\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01a\x177V[` \x81R_\x82Q`\x80` \x84\x01Ra\x17v`\xA0\x84\x01\x82a\x17%V[\x90P` \x84\x01Q`\x1F\x19\x84\x83\x03\x01`@\x85\x01Ra\x17\x93\x82\x82a\x17%V[\x91PP`@\x84\x01Q`\x1F\x19\x84\x83\x03\x01``\x85\x01Ra\x17\xB1\x82\x82a\x17%V[``\x86\x01Q\x85\x82\x03`\x1F\x19\x01`\x80\x87\x01R\x80Q\x80\x83R\x91\x93P` \x90\x81\x01\x92P\x80\x84\x01\x91\x90`\x05\x82\x90\x1B\x85\x01\x01_[\x82\x81\x10\x15a\x06\x9BW`\x1F\x19\x86\x83\x03\x01\x84Ra\x17\xFC\x82\x86Qa\x17%V[` \x95\x86\x01\x95\x94\x90\x94\x01\x93\x91P`\x01\x01a\x17\xE0V[___``\x84\x86\x03\x12\x15a\x18#W__\xFD[\x835a\x18.\x81a\x12bV[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x18HW__\xFD[a\x18T\x86\x82\x87\x01a\x15yV[\x92PP`@\x84\x015a\x18e\x81a\x13\xE5V[\x80\x91PP\x92P\x92P\x92V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x84\x01\x90`@\x84\x01\x90\x83[\x81\x81\x10\x15a\x16`W\x83Q\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a\x18\x89V[___``\x84\x86\x03\x12\x15a\x18\xB9W__\xFD[\x835a\x18\xC4\x81a\x12bV[\x92P` \x84\x015\x91P`@\x84\x015a\x18e\x81a\x13\xE5V[\x82\x81R`@` \x82\x01R_a\x18\xF3`@\x83\x01\x84a\x14\xBAV[\x94\x93PPPPV[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_` \x82\x84\x03\x12\x15a\x19\x1FW__\xFD[PQ\x91\x90PV[_` \x82\x84\x03\x12\x15a\x196W__\xFD[\x81Qa\x13\xDE\x81a\x12bV[_` \x82\x84\x03\x12\x15a\x19QW__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x19fW__\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x19vW__\xFD[\x80Qa\x19\x84a\x133\x82a\x12\xBDV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15a\x19\xA5W__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x19\xC7W\x83Q\x82R` \x93\x84\x01\x93\x90\x91\x01\x90a\x19\xACV[\x96\x95PPPPPPV[_` \x82\x84\x03\x12\x15a\x19\xE1W__\xFD[\x81Q`\x01`\x01``\x1B\x03\x81\x16\x81\x14a\x13\xDEW__\xFD[c\xFF\xFF\xFF\xFF\x83\x16\x81R`@` \x82\x01R_a\x18\xF3`@\x83\x01\x84a\x13\x92V[_` \x82\x84\x03\x12\x15a\x1A%W__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1A:W__\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x1AJW__\xFD[\x80Qa\x1AXa\x133\x82a\x12\xBDV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15a\x1AyW__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x19\xC7W\x83Qa\x1A\x93\x81a\x13\xE5V[\x82R` \x93\x84\x01\x93\x90\x91\x01\x90a\x1A\x80V[\x81\x83R\x81\x81` \x85\x017P_\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[c\xFF\xFF\xFF\xFF\x84\x16\x81R`@` \x82\x01R_a\x1A\xEB`@\x83\x01\x84\x86a\x1A\xA4V[\x95\x94PPPPPV[_` \x82\x84\x03\x12\x15a\x1B\x04W__\xFD[\x81Q`\x01`\x01`\xC0\x1B\x03\x81\x16\x81\x14a\x13\xDEW__\xFD[_` \x82\x84\x03\x12\x15a\x1B*W__\xFD[\x81Qa\x13\xDE\x81a\x13\xE5V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_`\x01\x82\x01a\x1BZWa\x1BZa\x1B5V[P`\x01\x01\x90V[_`\xFF\x82\x16`\xFF\x81\x03a\x1BvWa\x1Bva\x1B5V[`\x01\x01\x92\x91PPV[`@\x81R_a\x1B\x92`@\x83\x01\x85\x87a\x1A\xA4V[\x90Pc\xFF\xFF\xFF\xFF\x83\x16` \x83\x01R\x94\x93PPPPV[\x81\x81\x03\x81\x81\x11\x15a\x12\\Wa\x12\\a\x1B5V[_a\xFF\xFF\x82\x16a\xFF\xFF\x81\x03a\x1BvWa\x1Bva\x1B5V\xFE\xA2dipfsX\"\x12 I+?`\x92nF\xAD\xE5U\x1F?\xAD\xAA\x07qMM\x8E\xAB,\xE5\x0F\x89\xA4\xA1J\0\xB1::\xC1dsolcC\0\x08\x1B\x003",
);
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct CheckSignaturesIndices { uint32[] nonSignerQuorumBitmapIndices; uint32[] quorumApkIndices; uint32[] totalStakeIndices; uint32[][] nonSignerStakeIndices; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct CheckSignaturesIndices {
#[allow(missing_docs)]
pub nonSignerQuorumBitmapIndices: alloy::sol_types::private::Vec<u32>,
#[allow(missing_docs)]
pub quorumApkIndices: alloy::sol_types::private::Vec<u32>,
#[allow(missing_docs)]
pub totalStakeIndices: alloy::sol_types::private::Vec<u32>,
#[allow(missing_docs)]
pub nonSignerStakeIndices:
alloy::sol_types::private::Vec<alloy::sol_types::private::Vec<u32>>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Vec<u32>,
alloy::sol_types::private::Vec<u32>,
alloy::sol_types::private::Vec<u32>,
alloy::sol_types::private::Vec<alloy::sol_types::private::Vec<u32>>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<CheckSignaturesIndices> for UnderlyingRustTuple<'_> {
fn from(value: CheckSignaturesIndices) -> Self {
(
value.nonSignerQuorumBitmapIndices,
value.quorumApkIndices,
value.totalStakeIndices,
value.nonSignerStakeIndices,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for CheckSignaturesIndices {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
nonSignerQuorumBitmapIndices: tuple.0,
quorumApkIndices: tuple.1,
totalStakeIndices: tuple.2,
nonSignerStakeIndices: tuple.3,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for CheckSignaturesIndices {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for CheckSignaturesIndices {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::SolType>::tokenize(
&self.nonSignerQuorumBitmapIndices,
),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::SolType>::tokenize(&self.quorumApkIndices),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::SolType>::tokenize(&self.totalStakeIndices),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
>,
> as alloy_sol_types::SolType>::tokenize(&self.nonSignerStakeIndices),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for CheckSignaturesIndices {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for CheckSignaturesIndices {
const NAME: &'static str = "CheckSignaturesIndices";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"CheckSignaturesIndices(uint32[] nonSignerQuorumBitmapIndices,uint32[] quorumApkIndices,uint32[] totalStakeIndices,uint32[][] nonSignerStakeIndices)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.nonSignerQuorumBitmapIndices,
)
.0,
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.quorumApkIndices,
)
.0,
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.totalStakeIndices,
)
.0,
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
>,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.nonSignerStakeIndices,
)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for CheckSignaturesIndices {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.nonSignerQuorumBitmapIndices,
)
+ <alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.quorumApkIndices,
)
+ <alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.totalStakeIndices,
)
+ <alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
>,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.nonSignerStakeIndices,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.nonSignerQuorumBitmapIndices,
out,
);
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.quorumApkIndices,
out,
);
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.totalStakeIndices,
out,
);
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.nonSignerStakeIndices,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct Operator { address operator; bytes32 operatorId; uint96 stake; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct Operator {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub stake: alloy::sol_types::private::primitives::aliases::U96,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<96>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::FixedBytes<32>,
alloy::sol_types::private::primitives::aliases::U96,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<Operator> for UnderlyingRustTuple<'_> {
fn from(value: Operator) -> Self {
(value.operator, value.operatorId, value.stake)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for Operator {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operator: tuple.0,
operatorId: tuple.1,
stake: tuple.2,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for Operator {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for Operator {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.operator,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.operatorId),
<alloy::sol_types::sol_data::Uint<
96,
> as alloy_sol_types::SolType>::tokenize(&self.stake),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for Operator {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for Operator {
const NAME: &'static str = "Operator";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"Operator(address operator,bytes32 operatorId,uint96 stake)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
&self.operator,
)
.0,
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::eip712_data_word(&self.operatorId)
.0,
<alloy::sol_types::sol_data::Uint<
96,
> as alloy_sol_types::SolType>::eip712_data_word(&self.stake)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for Operator {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.operator,
)
+ <alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.operatorId,
)
+ <alloy::sol_types::sol_data::Uint<
96,
> as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.stake)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.operator,
out,
);
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.operatorId,
out,
);
<alloy::sol_types::sol_data::Uint<
96,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.stake,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OperatorNotRegistered()` and selector `0x25ec6c1f`.
```solidity
error OperatorNotRegistered();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OperatorNotRegistered;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OperatorNotRegistered> for UnderlyingRustTuple<'_> {
fn from(value: OperatorNotRegistered) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorNotRegistered {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OperatorNotRegistered {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OperatorNotRegistered()";
const SELECTOR: [u8; 4] = [37u8, 236u8, 108u8, 31u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getBatchOperatorFromId(address,bytes32[])` and selector `0x4d2b57fe`.
```solidity
function getBatchOperatorFromId(address registryCoordinator, bytes32[] memory operatorIds) external view returns (address[] memory operators);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getBatchOperatorFromIdCall {
#[allow(missing_docs)]
pub registryCoordinator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operatorIds: alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getBatchOperatorFromId(address,bytes32[])`](getBatchOperatorFromIdCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getBatchOperatorFromIdReturn {
#[allow(missing_docs)]
pub operators: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getBatchOperatorFromIdCall> for UnderlyingRustTuple<'_> {
fn from(value: getBatchOperatorFromIdCall) -> Self {
(value.registryCoordinator, value.operatorIds)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getBatchOperatorFromIdCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
registryCoordinator: tuple.0,
operatorIds: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getBatchOperatorFromIdReturn> for UnderlyingRustTuple<'_> {
fn from(value: getBatchOperatorFromIdReturn) -> Self {
(value.operators,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getBatchOperatorFromIdReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { operators: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getBatchOperatorFromIdCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Vec<alloy::sol_types::private::Address>;
type ReturnTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getBatchOperatorFromId(address,bytes32[])";
const SELECTOR: [u8; 4] = [77u8, 43u8, 87u8, 254u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.registryCoordinator,
),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::SolType>::tokenize(&self.operatorIds),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Address,
> as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getBatchOperatorFromIdReturn = r.into();
r.operators
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getBatchOperatorFromIdReturn = r.into();
r.operators
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getBatchOperatorId(address,address[])` and selector `0x31b36bd9`.
```solidity
function getBatchOperatorId(address registryCoordinator, address[] memory operators) external view returns (bytes32[] memory operatorIds);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getBatchOperatorIdCall {
#[allow(missing_docs)]
pub registryCoordinator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operators: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getBatchOperatorId(address,address[])`](getBatchOperatorIdCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getBatchOperatorIdReturn {
#[allow(missing_docs)]
pub operatorIds: alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getBatchOperatorIdCall> for UnderlyingRustTuple<'_> {
fn from(value: getBatchOperatorIdCall) -> Self {
(value.registryCoordinator, value.operators)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getBatchOperatorIdCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
registryCoordinator: tuple.0,
operators: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getBatchOperatorIdReturn> for UnderlyingRustTuple<'_> {
fn from(value: getBatchOperatorIdReturn) -> Self {
(value.operatorIds,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getBatchOperatorIdReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorIds: tuple.0,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getBatchOperatorIdCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>;
type ReturnTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getBatchOperatorId(address,address[])";
const SELECTOR: [u8; 4] = [49u8, 179u8, 107u8, 217u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.registryCoordinator,
),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Address,
> as alloy_sol_types::SolType>::tokenize(&self.operators),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getBatchOperatorIdReturn = r.into();
r.operatorIds
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getBatchOperatorIdReturn = r.into();
r.operatorIds
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getCheckSignaturesIndices(address,uint32,bytes,bytes32[])` and selector `0x4f739f74`.
```solidity
function getCheckSignaturesIndices(address registryCoordinator, uint32 referenceBlockNumber, bytes memory quorumNumbers, bytes32[] memory nonSignerOperatorIds) external view returns (CheckSignaturesIndices memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getCheckSignaturesIndicesCall {
#[allow(missing_docs)]
pub registryCoordinator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub referenceBlockNumber: u32,
#[allow(missing_docs)]
pub quorumNumbers: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub nonSignerOperatorIds:
alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getCheckSignaturesIndices(address,uint32,bytes,bytes32[])`](getCheckSignaturesIndicesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getCheckSignaturesIndicesReturn {
#[allow(missing_docs)]
pub _0: <CheckSignaturesIndices as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
u32,
alloy::sol_types::private::Bytes,
alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getCheckSignaturesIndicesCall> for UnderlyingRustTuple<'_> {
fn from(value: getCheckSignaturesIndicesCall) -> Self {
(
value.registryCoordinator,
value.referenceBlockNumber,
value.quorumNumbers,
value.nonSignerOperatorIds,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getCheckSignaturesIndicesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
registryCoordinator: tuple.0,
referenceBlockNumber: tuple.1,
quorumNumbers: tuple.2,
nonSignerOperatorIds: tuple.3,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (CheckSignaturesIndices,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(<CheckSignaturesIndices as alloy::sol_types::SolType>::RustType,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getCheckSignaturesIndicesReturn> for UnderlyingRustTuple<'_> {
fn from(value: getCheckSignaturesIndicesReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getCheckSignaturesIndicesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getCheckSignaturesIndicesCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = <CheckSignaturesIndices as alloy::sol_types::SolType>::RustType;
type ReturnTuple<'a> = (CheckSignaturesIndices,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str =
"getCheckSignaturesIndices(address,uint32,bytes,bytes32[])";
const SELECTOR: [u8; 4] = [79u8, 115u8, 159u8, 116u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.registryCoordinator,
),
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::SolType>::tokenize(&self.referenceBlockNumber),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.quorumNumbers,
),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::SolType>::tokenize(&self.nonSignerOperatorIds),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<CheckSignaturesIndices as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getCheckSignaturesIndicesReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getCheckSignaturesIndicesReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getOperatorState(address,bytes,uint32)` and selector `0x3563b0d1`.
```solidity
function getOperatorState(address registryCoordinator, bytes memory quorumNumbers, uint32 blockNumber) external view returns (Operator[][] memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorState_0Call {
#[allow(missing_docs)]
pub registryCoordinator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub quorumNumbers: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub blockNumber: u32,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getOperatorState(address,bytes,uint32)`](getOperatorState_0Call) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorState_0Return {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<<Operator as alloy::sol_types::SolType>::RustType>,
>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::Uint<32>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Bytes,
u32,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorState_0Call> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorState_0Call) -> Self {
(
value.registryCoordinator,
value.quorumNumbers,
value.blockNumber,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorState_0Call {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
registryCoordinator: tuple.0,
quorumNumbers: tuple.1,
blockNumber: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Array<Operator>>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<
<Operator as alloy::sol_types::SolType>::RustType,
>,
>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorState_0Return> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorState_0Return) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorState_0Return {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getOperatorState_0Call {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::Uint<32>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<<Operator as alloy::sol_types::SolType>::RustType>,
>;
type ReturnTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Array<Operator>>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getOperatorState(address,bytes,uint32)";
const SELECTOR: [u8; 4] = [53u8, 99u8, 176u8, 209u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.registryCoordinator,
),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.quorumNumbers,
),
<alloy::sol_types::sol_data::Uint<32> as alloy_sol_types::SolType>::tokenize(
&self.blockNumber,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<Operator>,
> as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getOperatorState_0Return = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getOperatorState_0Return = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getOperatorState(address,bytes32,uint32)` and selector `0xcefdc1d4`.
```solidity
function getOperatorState(address registryCoordinator, bytes32 operatorId, uint32 blockNumber) external view returns (uint256, Operator[][] memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorState_1Call {
#[allow(missing_docs)]
pub registryCoordinator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub blockNumber: u32,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getOperatorState(address,bytes32,uint32)`](getOperatorState_1Call) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorState_1Return {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub _1: alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<<Operator as alloy::sol_types::SolType>::RustType>,
>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<32>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::FixedBytes<32>,
u32,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorState_1Call> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorState_1Call) -> Self {
(
value.registryCoordinator,
value.operatorId,
value.blockNumber,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorState_1Call {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
registryCoordinator: tuple.0,
operatorId: tuple.1,
blockNumber: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Array<Operator>>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<
<Operator as alloy::sol_types::SolType>::RustType,
>,
>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorState_1Return> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorState_1Return) -> Self {
(value._0, value._1)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorState_1Return {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_0: tuple.0,
_1: tuple.1,
}
}
}
}
impl getOperatorState_1Return {
fn _tokenize(
&self,
) -> <getOperatorState_1Call as alloy_sol_types::SolCall>::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self._0),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<Operator>,
> as alloy_sol_types::SolType>::tokenize(&self._1),
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getOperatorState_1Call {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<32>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = getOperatorState_1Return;
type ReturnTuple<'a> = (
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Array<Operator>>,
);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getOperatorState(address,bytes32,uint32)";
const SELECTOR: [u8; 4] = [206u8, 253u8, 193u8, 212u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.registryCoordinator,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.operatorId),
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::SolType>::tokenize(&self.blockNumber),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
getOperatorState_1Return::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getQuorumBitmapsAtBlockNumber(address,bytes32[],uint32)` and selector `0x5c155662`.
```solidity
function getQuorumBitmapsAtBlockNumber(address registryCoordinator, bytes32[] memory operatorIds, uint32 blockNumber) external view returns (uint256[] memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapsAtBlockNumberCall {
#[allow(missing_docs)]
pub registryCoordinator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operatorIds: alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
#[allow(missing_docs)]
pub blockNumber: u32,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getQuorumBitmapsAtBlockNumber(address,bytes32[],uint32)`](getQuorumBitmapsAtBlockNumberCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapsAtBlockNumberReturn {
#[allow(missing_docs)]
pub _0:
alloy::sol_types::private::Vec<alloy::sol_types::private::primitives::aliases::U256>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
alloy::sol_types::sol_data::Uint<32>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
u32,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapsAtBlockNumberCall> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapsAtBlockNumberCall) -> Self {
(
value.registryCoordinator,
value.operatorIds,
value.blockNumber,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapsAtBlockNumberCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
registryCoordinator: tuple.0,
operatorIds: tuple.1,
blockNumber: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapsAtBlockNumberReturn> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapsAtBlockNumberReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapsAtBlockNumberReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getQuorumBitmapsAtBlockNumberCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
alloy::sol_types::sol_data::Uint<32>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>;
type ReturnTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str =
"getQuorumBitmapsAtBlockNumber(address,bytes32[],uint32)";
const SELECTOR: [u8; 4] = [92u8, 21u8, 86u8, 98u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.registryCoordinator,
),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::SolType>::tokenize(&self.operatorIds),
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::SolType>::tokenize(&self.blockNumber),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getQuorumBitmapsAtBlockNumberReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getQuorumBitmapsAtBlockNumberReturn = r.into();
r._0
})
}
}
};
///Container for all the [`OperatorStateRetriever`](self) function calls.
#[derive(serde::Serialize, serde::Deserialize)]
pub enum OperatorStateRetrieverCalls {
#[allow(missing_docs)]
getBatchOperatorFromId(getBatchOperatorFromIdCall),
#[allow(missing_docs)]
getBatchOperatorId(getBatchOperatorIdCall),
#[allow(missing_docs)]
getCheckSignaturesIndices(getCheckSignaturesIndicesCall),
#[allow(missing_docs)]
getOperatorState_0(getOperatorState_0Call),
#[allow(missing_docs)]
getOperatorState_1(getOperatorState_1Call),
#[allow(missing_docs)]
getQuorumBitmapsAtBlockNumber(getQuorumBitmapsAtBlockNumberCall),
}
#[automatically_derived]
impl OperatorStateRetrieverCalls {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 4usize]] = &[
[49u8, 179u8, 107u8, 217u8],
[53u8, 99u8, 176u8, 209u8],
[77u8, 43u8, 87u8, 254u8],
[79u8, 115u8, 159u8, 116u8],
[92u8, 21u8, 86u8, 98u8],
[206u8, 253u8, 193u8, 212u8],
];
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for OperatorStateRetrieverCalls {
const NAME: &'static str = "OperatorStateRetrieverCalls";
const MIN_DATA_LENGTH: usize = 96usize;
const COUNT: usize = 6usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::getBatchOperatorFromId(_) => {
<getBatchOperatorFromIdCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getBatchOperatorId(_) => {
<getBatchOperatorIdCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getCheckSignaturesIndices(_) => {
<getCheckSignaturesIndicesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getOperatorState_0(_) => {
<getOperatorState_0Call as alloy_sol_types::SolCall>::SELECTOR
}
Self::getOperatorState_1(_) => {
<getOperatorState_1Call as alloy_sol_types::SolCall>::SELECTOR
}
Self::getQuorumBitmapsAtBlockNumber(_) => {
<getQuorumBitmapsAtBlockNumberCall as alloy_sol_types::SolCall>::SELECTOR
}
}
}
#[inline]
fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
Self::SELECTORS.get(i).copied()
}
#[inline]
fn valid_selector(selector: [u8; 4]) -> bool {
Self::SELECTORS.binary_search(&selector).is_ok()
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw(selector: [u8; 4], data: &[u8]) -> alloy_sol_types::Result<Self> {
static DECODE_SHIMS: &[fn(
&[u8],
)
-> alloy_sol_types::Result<OperatorStateRetrieverCalls>] = &[
{
fn getBatchOperatorId(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getBatchOperatorIdCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(OperatorStateRetrieverCalls::getBatchOperatorId)
}
getBatchOperatorId
},
{
fn getOperatorState_0(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getOperatorState_0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(OperatorStateRetrieverCalls::getOperatorState_0)
}
getOperatorState_0
},
{
fn getBatchOperatorFromId(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getBatchOperatorFromIdCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(OperatorStateRetrieverCalls::getBatchOperatorFromId)
}
getBatchOperatorFromId
},
{
fn getCheckSignaturesIndices(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getCheckSignaturesIndicesCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(OperatorStateRetrieverCalls::getCheckSignaturesIndices)
}
getCheckSignaturesIndices
},
{
fn getQuorumBitmapsAtBlockNumber(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getQuorumBitmapsAtBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(
OperatorStateRetrieverCalls::getQuorumBitmapsAtBlockNumber,
)
}
getQuorumBitmapsAtBlockNumber
},
{
fn getOperatorState_1(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getOperatorState_1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(OperatorStateRetrieverCalls::getOperatorState_1)
}
getOperatorState_1
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_SHIMS[idx](data)
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw_validate(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_VALIDATE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<
OperatorStateRetrieverCalls,
>] = &[
{
fn getBatchOperatorId(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getBatchOperatorIdCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(OperatorStateRetrieverCalls::getBatchOperatorId)
}
getBatchOperatorId
},
{
fn getOperatorState_0(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getOperatorState_0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(OperatorStateRetrieverCalls::getOperatorState_0)
}
getOperatorState_0
},
{
fn getBatchOperatorFromId(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getBatchOperatorFromIdCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(OperatorStateRetrieverCalls::getBatchOperatorFromId)
}
getBatchOperatorFromId
},
{
fn getCheckSignaturesIndices(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getCheckSignaturesIndicesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(OperatorStateRetrieverCalls::getCheckSignaturesIndices)
}
getCheckSignaturesIndices
},
{
fn getQuorumBitmapsAtBlockNumber(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getQuorumBitmapsAtBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(
OperatorStateRetrieverCalls::getQuorumBitmapsAtBlockNumber,
)
}
getQuorumBitmapsAtBlockNumber
},
{
fn getOperatorState_1(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverCalls> {
<getOperatorState_1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(OperatorStateRetrieverCalls::getOperatorState_1)
}
getOperatorState_1
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_VALIDATE_SHIMS[idx](data)
}
#[inline]
fn abi_encoded_size(&self) -> usize {
match self {
Self::getBatchOperatorFromId(inner) => {
<getBatchOperatorFromIdCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getBatchOperatorId(inner) => {
<getBatchOperatorIdCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getCheckSignaturesIndices(inner) => {
<getCheckSignaturesIndicesCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getOperatorState_0(inner) => {
<getOperatorState_0Call as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getOperatorState_1(inner) => {
<getOperatorState_1Call as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getQuorumBitmapsAtBlockNumber(inner) => {
<getQuorumBitmapsAtBlockNumberCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
}
}
#[inline]
fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
match self {
Self::getBatchOperatorFromId(inner) => {
<getBatchOperatorFromIdCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner, out,
)
}
Self::getBatchOperatorId(inner) => {
<getBatchOperatorIdCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::getCheckSignaturesIndices(inner) => {
<getCheckSignaturesIndicesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner, out,
)
}
Self::getOperatorState_0(inner) => {
<getOperatorState_0Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::getOperatorState_1(inner) => {
<getOperatorState_1Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::getQuorumBitmapsAtBlockNumber(inner) => {
<getQuorumBitmapsAtBlockNumberCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner, out,
)
}
}
}
}
///Container for all the [`OperatorStateRetriever`](self) custom errors.
#[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq, Eq, Hash)]
pub enum OperatorStateRetrieverErrors {
#[allow(missing_docs)]
OperatorNotRegistered(OperatorNotRegistered),
}
#[automatically_derived]
impl OperatorStateRetrieverErrors {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 4usize]] = &[[37u8, 236u8, 108u8, 31u8]];
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for OperatorStateRetrieverErrors {
const NAME: &'static str = "OperatorStateRetrieverErrors";
const MIN_DATA_LENGTH: usize = 0usize;
const COUNT: usize = 1usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::OperatorNotRegistered(_) => {
<OperatorNotRegistered as alloy_sol_types::SolError>::SELECTOR
}
}
}
#[inline]
fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
Self::SELECTORS.get(i).copied()
}
#[inline]
fn valid_selector(selector: [u8; 4]) -> bool {
Self::SELECTORS.binary_search(&selector).is_ok()
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw(selector: [u8; 4], data: &[u8]) -> alloy_sol_types::Result<Self> {
static DECODE_SHIMS: &[fn(
&[u8],
)
-> alloy_sol_types::Result<OperatorStateRetrieverErrors>] = &[{
fn OperatorNotRegistered(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverErrors> {
<OperatorNotRegistered as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(OperatorStateRetrieverErrors::OperatorNotRegistered)
}
OperatorNotRegistered
}];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_SHIMS[idx](data)
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw_validate(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_VALIDATE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<
OperatorStateRetrieverErrors,
>] = &[{
fn OperatorNotRegistered(
data: &[u8],
) -> alloy_sol_types::Result<OperatorStateRetrieverErrors> {
<OperatorNotRegistered as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(OperatorStateRetrieverErrors::OperatorNotRegistered)
}
OperatorNotRegistered
}];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_VALIDATE_SHIMS[idx](data)
}
#[inline]
fn abi_encoded_size(&self) -> usize {
match self {
Self::OperatorNotRegistered(inner) => {
<OperatorNotRegistered as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
}
}
#[inline]
fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
match self {
Self::OperatorNotRegistered(inner) => {
<OperatorNotRegistered as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
}
}
}
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`OperatorStateRetriever`](self) contract instance.
See the [wrapper's documentation](`OperatorStateRetrieverInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
provider: P,
) -> OperatorStateRetrieverInstance<P, N> {
OperatorStateRetrieverInstance::<P, N>::new(address, provider)
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub fn deploy<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>(
provider: P,
) -> impl ::core::future::Future<Output = alloy_contract::Result<OperatorStateRetrieverInstance<P, N>>>
{
OperatorStateRetrieverInstance::<P, N>::deploy(provider)
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper around creating a `RawCallBuilder` with the data set to
the bytecode concatenated with the constructor's ABI-encoded arguments.*/
#[inline]
pub fn deploy_builder<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
provider: P,
) -> alloy_contract::RawCallBuilder<P, N> {
OperatorStateRetrieverInstance::<P, N>::deploy_builder(provider)
}
/**A [`OperatorStateRetriever`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`OperatorStateRetriever`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct OperatorStateRetrieverInstance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for OperatorStateRetrieverInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("OperatorStateRetrieverInstance")
.field(&self.address)
.finish()
}
}
/// Instantiation and getters/setters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
OperatorStateRetrieverInstance<P, N>
{
/**Creates a new wrapper around an on-chain [`OperatorStateRetriever`](self) contract instance.
See the [wrapper's documentation](`OperatorStateRetrieverInstance`) for more details.*/
#[inline]
pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
Self {
address,
provider,
_network: ::core::marker::PhantomData,
}
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub async fn deploy(
provider: P,
) -> alloy_contract::Result<OperatorStateRetrieverInstance<P, N>> {
let call_builder = Self::deploy_builder(provider);
let contract_address = call_builder.deploy().await?;
Ok(Self::new(contract_address, call_builder.provider))
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper around creating a `RawCallBuilder` with the data set to
the bytecode concatenated with the constructor's ABI-encoded arguments.*/
#[inline]
pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
alloy_contract::RawCallBuilder::new_raw_deploy(
provider,
::core::clone::Clone::clone(&BYTECODE),
)
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> OperatorStateRetrieverInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> OperatorStateRetrieverInstance<P, N> {
OperatorStateRetrieverInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
OperatorStateRetrieverInstance<P, N>
{
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
///Creates a new call builder for the [`getBatchOperatorFromId`] function.
pub fn getBatchOperatorFromId(
&self,
registryCoordinator: alloy::sol_types::private::Address,
operatorIds: alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
) -> alloy_contract::SolCallBuilder<&P, getBatchOperatorFromIdCall, N> {
self.call_builder(&getBatchOperatorFromIdCall {
registryCoordinator,
operatorIds,
})
}
///Creates a new call builder for the [`getBatchOperatorId`] function.
pub fn getBatchOperatorId(
&self,
registryCoordinator: alloy::sol_types::private::Address,
operators: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
) -> alloy_contract::SolCallBuilder<&P, getBatchOperatorIdCall, N> {
self.call_builder(&getBatchOperatorIdCall {
registryCoordinator,
operators,
})
}
///Creates a new call builder for the [`getCheckSignaturesIndices`] function.
pub fn getCheckSignaturesIndices(
&self,
registryCoordinator: alloy::sol_types::private::Address,
referenceBlockNumber: u32,
quorumNumbers: alloy::sol_types::private::Bytes,
nonSignerOperatorIds: alloy::sol_types::private::Vec<
alloy::sol_types::private::FixedBytes<32>,
>,
) -> alloy_contract::SolCallBuilder<&P, getCheckSignaturesIndicesCall, N> {
self.call_builder(&getCheckSignaturesIndicesCall {
registryCoordinator,
referenceBlockNumber,
quorumNumbers,
nonSignerOperatorIds,
})
}
///Creates a new call builder for the [`getOperatorState_0`] function.
pub fn getOperatorState_0(
&self,
registryCoordinator: alloy::sol_types::private::Address,
quorumNumbers: alloy::sol_types::private::Bytes,
blockNumber: u32,
) -> alloy_contract::SolCallBuilder<&P, getOperatorState_0Call, N> {
self.call_builder(&getOperatorState_0Call {
registryCoordinator,
quorumNumbers,
blockNumber,
})
}
///Creates a new call builder for the [`getOperatorState_1`] function.
pub fn getOperatorState_1(
&self,
registryCoordinator: alloy::sol_types::private::Address,
operatorId: alloy::sol_types::private::FixedBytes<32>,
blockNumber: u32,
) -> alloy_contract::SolCallBuilder<&P, getOperatorState_1Call, N> {
self.call_builder(&getOperatorState_1Call {
registryCoordinator,
operatorId,
blockNumber,
})
}
///Creates a new call builder for the [`getQuorumBitmapsAtBlockNumber`] function.
pub fn getQuorumBitmapsAtBlockNumber(
&self,
registryCoordinator: alloy::sol_types::private::Address,
operatorIds: alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
blockNumber: u32,
) -> alloy_contract::SolCallBuilder<&P, getQuorumBitmapsAtBlockNumberCall, N> {
self.call_builder(&getQuorumBitmapsAtBlockNumberCall {
registryCoordinator,
operatorIds,
blockNumber,
})
}
}
/// Event filters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
OperatorStateRetrieverInstance<P, N>
{
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
}
}