eigenlayer_contract_deployer/bindings/core/
allocationmanager.rs

1#![allow(clippy::all, clippy::pedantic, clippy::nursery, warnings, unknown_lints, rustdoc::all, elided_lifetimes_in_paths)]
2use AllocationManager::*;
3
4///Module containing a contract's types and functions.
5/**
6
7```solidity
8library IAllocationManagerTypes {
9    struct AllocateParams { OperatorSet operatorSet; address[] strategies; uint64[] newMagnitudes; }
10    struct Allocation { uint64 currentMagnitude; int128 pendingDiff; uint32 effectBlock; }
11    struct CreateSetParams { uint32 operatorSetId; address[] strategies; }
12    struct DeregisterParams { address operator; address avs; uint32[] operatorSetIds; }
13    struct RegisterParams { address avs; uint32[] operatorSetIds; bytes data; }
14    struct SlashingParams { address operator; uint32 operatorSetId; address[] strategies; uint256[] wadsToSlash; string description; }
15}
16```*/
17#[allow(
18    non_camel_case_types,
19    non_snake_case,
20    clippy::pub_underscore_fields,
21    clippy::style,
22    clippy::empty_structs_with_brackets
23)]
24pub mod IAllocationManagerTypes {
25    use super::*;
26    use alloy::sol_types as alloy_sol_types;
27    #[derive()]
28    /**```solidity
29struct AllocateParams { OperatorSet operatorSet; address[] strategies; uint64[] newMagnitudes; }
30```*/
31    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
32    #[derive(Clone, Hash, Debug, Eq, PartialEq)]
33    pub struct AllocateParams {
34        #[allow(missing_docs)]
35        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
36        #[allow(missing_docs)]
37        pub strategies: alloy::sol_types::private::Vec<
38            alloy::sol_types::private::Address,
39        >,
40        #[allow(missing_docs)]
41        pub newMagnitudes: alloy::sol_types::private::Vec<u64>,
42    }
43    #[allow(
44        non_camel_case_types,
45        non_snake_case,
46        clippy::pub_underscore_fields,
47        clippy::style
48    )]
49    const _: () = {
50        use alloy::sol_types as alloy_sol_types;
51        #[doc(hidden)]
52        type UnderlyingSolTuple<'a> = (
53            OperatorSet,
54            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
55            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
56        );
57        #[doc(hidden)]
58        type UnderlyingRustTuple<'a> = (
59            <OperatorSet as alloy::sol_types::SolType>::RustType,
60            alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
61            alloy::sol_types::private::Vec<u64>,
62        );
63        #[cfg(test)]
64        #[allow(dead_code, unreachable_patterns)]
65        fn _type_assertion(
66            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
67        ) {
68            match _t {
69                alloy_sol_types::private::AssertTypeEq::<
70                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
71                >(_) => {}
72            }
73        }
74        #[automatically_derived]
75        #[doc(hidden)]
76        impl ::core::convert::From<AllocateParams> for UnderlyingRustTuple<'_> {
77            fn from(value: AllocateParams) -> Self {
78                (value.operatorSet, value.strategies, value.newMagnitudes)
79            }
80        }
81        #[automatically_derived]
82        #[doc(hidden)]
83        impl ::core::convert::From<UnderlyingRustTuple<'_>> for AllocateParams {
84            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
85                Self {
86                    operatorSet: tuple.0,
87                    strategies: tuple.1,
88                    newMagnitudes: tuple.2,
89                }
90            }
91        }
92        #[automatically_derived]
93        impl alloy_sol_types::SolValue for AllocateParams {
94            type SolType = Self;
95        }
96        #[automatically_derived]
97        impl alloy_sol_types::private::SolTypeValue<Self> for AllocateParams {
98            #[inline]
99            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
100                (
101                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
102                        &self.operatorSet,
103                    ),
104                    <alloy::sol_types::sol_data::Array<
105                        alloy::sol_types::sol_data::Address,
106                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
107                    <alloy::sol_types::sol_data::Array<
108                        alloy::sol_types::sol_data::Uint<64>,
109                    > as alloy_sol_types::SolType>::tokenize(&self.newMagnitudes),
110                )
111            }
112            #[inline]
113            fn stv_abi_encoded_size(&self) -> usize {
114                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
115                    return size;
116                }
117                let tuple = <UnderlyingRustTuple<
118                    '_,
119                > as ::core::convert::From<Self>>::from(self.clone());
120                <UnderlyingSolTuple<
121                    '_,
122                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
123            }
124            #[inline]
125            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
126                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
127            }
128            #[inline]
129            fn stv_abi_encode_packed_to(
130                &self,
131                out: &mut alloy_sol_types::private::Vec<u8>,
132            ) {
133                let tuple = <UnderlyingRustTuple<
134                    '_,
135                > as ::core::convert::From<Self>>::from(self.clone());
136                <UnderlyingSolTuple<
137                    '_,
138                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
139            }
140            #[inline]
141            fn stv_abi_packed_encoded_size(&self) -> usize {
142                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
143                    return size;
144                }
145                let tuple = <UnderlyingRustTuple<
146                    '_,
147                > as ::core::convert::From<Self>>::from(self.clone());
148                <UnderlyingSolTuple<
149                    '_,
150                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
151            }
152        }
153        #[automatically_derived]
154        impl alloy_sol_types::SolType for AllocateParams {
155            type RustType = Self;
156            type Token<'a> = <UnderlyingSolTuple<
157                'a,
158            > as alloy_sol_types::SolType>::Token<'a>;
159            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
160            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
161                '_,
162            > as alloy_sol_types::SolType>::ENCODED_SIZE;
163            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
164                '_,
165            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
166            #[inline]
167            fn valid_token(token: &Self::Token<'_>) -> bool {
168                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
169            }
170            #[inline]
171            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
172                let tuple = <UnderlyingSolTuple<
173                    '_,
174                > as alloy_sol_types::SolType>::detokenize(token);
175                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
176            }
177        }
178        #[automatically_derived]
179        impl alloy_sol_types::SolStruct for AllocateParams {
180            const NAME: &'static str = "AllocateParams";
181            #[inline]
182            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
183                alloy_sol_types::private::Cow::Borrowed(
184                    "AllocateParams(OperatorSet operatorSet,address[] strategies,uint64[] newMagnitudes)",
185                )
186            }
187            #[inline]
188            fn eip712_components() -> alloy_sol_types::private::Vec<
189                alloy_sol_types::private::Cow<'static, str>,
190            > {
191                let mut components = alloy_sol_types::private::Vec::with_capacity(1);
192                components
193                    .push(
194                        <OperatorSet as alloy_sol_types::SolStruct>::eip712_root_type(),
195                    );
196                components
197                    .extend(
198                        <OperatorSet as alloy_sol_types::SolStruct>::eip712_components(),
199                    );
200                components
201            }
202            #[inline]
203            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
204                [
205                    <OperatorSet as alloy_sol_types::SolType>::eip712_data_word(
206                            &self.operatorSet,
207                        )
208                        .0,
209                    <alloy::sol_types::sol_data::Array<
210                        alloy::sol_types::sol_data::Address,
211                    > as alloy_sol_types::SolType>::eip712_data_word(&self.strategies)
212                        .0,
213                    <alloy::sol_types::sol_data::Array<
214                        alloy::sol_types::sol_data::Uint<64>,
215                    > as alloy_sol_types::SolType>::eip712_data_word(&self.newMagnitudes)
216                        .0,
217                ]
218                    .concat()
219            }
220        }
221        #[automatically_derived]
222        impl alloy_sol_types::EventTopic for AllocateParams {
223            #[inline]
224            fn topic_preimage_length(rust: &Self::RustType) -> usize {
225                0usize
226                    + <OperatorSet as alloy_sol_types::EventTopic>::topic_preimage_length(
227                        &rust.operatorSet,
228                    )
229                    + <alloy::sol_types::sol_data::Array<
230                        alloy::sol_types::sol_data::Address,
231                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
232                        &rust.strategies,
233                    )
234                    + <alloy::sol_types::sol_data::Array<
235                        alloy::sol_types::sol_data::Uint<64>,
236                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
237                        &rust.newMagnitudes,
238                    )
239            }
240            #[inline]
241            fn encode_topic_preimage(
242                rust: &Self::RustType,
243                out: &mut alloy_sol_types::private::Vec<u8>,
244            ) {
245                out.reserve(
246                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
247                );
248                <OperatorSet as alloy_sol_types::EventTopic>::encode_topic_preimage(
249                    &rust.operatorSet,
250                    out,
251                );
252                <alloy::sol_types::sol_data::Array<
253                    alloy::sol_types::sol_data::Address,
254                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
255                    &rust.strategies,
256                    out,
257                );
258                <alloy::sol_types::sol_data::Array<
259                    alloy::sol_types::sol_data::Uint<64>,
260                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
261                    &rust.newMagnitudes,
262                    out,
263                );
264            }
265            #[inline]
266            fn encode_topic(
267                rust: &Self::RustType,
268            ) -> alloy_sol_types::abi::token::WordToken {
269                let mut out = alloy_sol_types::private::Vec::new();
270                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
271                    rust,
272                    &mut out,
273                );
274                alloy_sol_types::abi::token::WordToken(
275                    alloy_sol_types::private::keccak256(out),
276                )
277            }
278        }
279    };
280    #[derive(Default, Debug, PartialEq, Eq, Hash)]
281    /**```solidity
282struct Allocation { uint64 currentMagnitude; int128 pendingDiff; uint32 effectBlock; }
283```*/
284    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
285    #[derive(Clone)]
286    pub struct Allocation {
287        #[allow(missing_docs)]
288        pub currentMagnitude: u64,
289        #[allow(missing_docs)]
290        pub pendingDiff: i128,
291        #[allow(missing_docs)]
292        pub effectBlock: u32,
293    }
294    #[allow(
295        non_camel_case_types,
296        non_snake_case,
297        clippy::pub_underscore_fields,
298        clippy::style
299    )]
300    const _: () = {
301        use alloy::sol_types as alloy_sol_types;
302        #[doc(hidden)]
303        type UnderlyingSolTuple<'a> = (
304            alloy::sol_types::sol_data::Uint<64>,
305            alloy::sol_types::sol_data::Int<128>,
306            alloy::sol_types::sol_data::Uint<32>,
307        );
308        #[doc(hidden)]
309        type UnderlyingRustTuple<'a> = (u64, i128, u32);
310        #[cfg(test)]
311        #[allow(dead_code, unreachable_patterns)]
312        fn _type_assertion(
313            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
314        ) {
315            match _t {
316                alloy_sol_types::private::AssertTypeEq::<
317                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
318                >(_) => {}
319            }
320        }
321        #[automatically_derived]
322        #[doc(hidden)]
323        impl ::core::convert::From<Allocation> for UnderlyingRustTuple<'_> {
324            fn from(value: Allocation) -> Self {
325                (value.currentMagnitude, value.pendingDiff, value.effectBlock)
326            }
327        }
328        #[automatically_derived]
329        #[doc(hidden)]
330        impl ::core::convert::From<UnderlyingRustTuple<'_>> for Allocation {
331            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
332                Self {
333                    currentMagnitude: tuple.0,
334                    pendingDiff: tuple.1,
335                    effectBlock: tuple.2,
336                }
337            }
338        }
339        #[automatically_derived]
340        impl alloy_sol_types::SolValue for Allocation {
341            type SolType = Self;
342        }
343        #[automatically_derived]
344        impl alloy_sol_types::private::SolTypeValue<Self> for Allocation {
345            #[inline]
346            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
347                (
348                    <alloy::sol_types::sol_data::Uint<
349                        64,
350                    > as alloy_sol_types::SolType>::tokenize(&self.currentMagnitude),
351                    <alloy::sol_types::sol_data::Int<
352                        128,
353                    > as alloy_sol_types::SolType>::tokenize(&self.pendingDiff),
354                    <alloy::sol_types::sol_data::Uint<
355                        32,
356                    > as alloy_sol_types::SolType>::tokenize(&self.effectBlock),
357                )
358            }
359            #[inline]
360            fn stv_abi_encoded_size(&self) -> usize {
361                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
362                    return size;
363                }
364                let tuple = <UnderlyingRustTuple<
365                    '_,
366                > as ::core::convert::From<Self>>::from(self.clone());
367                <UnderlyingSolTuple<
368                    '_,
369                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
370            }
371            #[inline]
372            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
373                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
374            }
375            #[inline]
376            fn stv_abi_encode_packed_to(
377                &self,
378                out: &mut alloy_sol_types::private::Vec<u8>,
379            ) {
380                let tuple = <UnderlyingRustTuple<
381                    '_,
382                > as ::core::convert::From<Self>>::from(self.clone());
383                <UnderlyingSolTuple<
384                    '_,
385                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
386            }
387            #[inline]
388            fn stv_abi_packed_encoded_size(&self) -> usize {
389                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
390                    return size;
391                }
392                let tuple = <UnderlyingRustTuple<
393                    '_,
394                > as ::core::convert::From<Self>>::from(self.clone());
395                <UnderlyingSolTuple<
396                    '_,
397                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
398            }
399        }
400        #[automatically_derived]
401        impl alloy_sol_types::SolType for Allocation {
402            type RustType = Self;
403            type Token<'a> = <UnderlyingSolTuple<
404                'a,
405            > as alloy_sol_types::SolType>::Token<'a>;
406            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
407            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
408                '_,
409            > as alloy_sol_types::SolType>::ENCODED_SIZE;
410            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
411                '_,
412            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
413            #[inline]
414            fn valid_token(token: &Self::Token<'_>) -> bool {
415                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
416            }
417            #[inline]
418            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
419                let tuple = <UnderlyingSolTuple<
420                    '_,
421                > as alloy_sol_types::SolType>::detokenize(token);
422                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
423            }
424        }
425        #[automatically_derived]
426        impl alloy_sol_types::SolStruct for Allocation {
427            const NAME: &'static str = "Allocation";
428            #[inline]
429            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
430                alloy_sol_types::private::Cow::Borrowed(
431                    "Allocation(uint64 currentMagnitude,int128 pendingDiff,uint32 effectBlock)",
432                )
433            }
434            #[inline]
435            fn eip712_components() -> alloy_sol_types::private::Vec<
436                alloy_sol_types::private::Cow<'static, str>,
437            > {
438                alloy_sol_types::private::Vec::new()
439            }
440            #[inline]
441            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
442                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
443            }
444            #[inline]
445            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
446                [
447                    <alloy::sol_types::sol_data::Uint<
448                        64,
449                    > as alloy_sol_types::SolType>::eip712_data_word(
450                            &self.currentMagnitude,
451                        )
452                        .0,
453                    <alloy::sol_types::sol_data::Int<
454                        128,
455                    > as alloy_sol_types::SolType>::eip712_data_word(&self.pendingDiff)
456                        .0,
457                    <alloy::sol_types::sol_data::Uint<
458                        32,
459                    > as alloy_sol_types::SolType>::eip712_data_word(&self.effectBlock)
460                        .0,
461                ]
462                    .concat()
463            }
464        }
465        #[automatically_derived]
466        impl alloy_sol_types::EventTopic for Allocation {
467            #[inline]
468            fn topic_preimage_length(rust: &Self::RustType) -> usize {
469                0usize
470                    + <alloy::sol_types::sol_data::Uint<
471                        64,
472                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
473                        &rust.currentMagnitude,
474                    )
475                    + <alloy::sol_types::sol_data::Int<
476                        128,
477                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
478                        &rust.pendingDiff,
479                    )
480                    + <alloy::sol_types::sol_data::Uint<
481                        32,
482                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
483                        &rust.effectBlock,
484                    )
485            }
486            #[inline]
487            fn encode_topic_preimage(
488                rust: &Self::RustType,
489                out: &mut alloy_sol_types::private::Vec<u8>,
490            ) {
491                out.reserve(
492                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
493                );
494                <alloy::sol_types::sol_data::Uint<
495                    64,
496                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
497                    &rust.currentMagnitude,
498                    out,
499                );
500                <alloy::sol_types::sol_data::Int<
501                    128,
502                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
503                    &rust.pendingDiff,
504                    out,
505                );
506                <alloy::sol_types::sol_data::Uint<
507                    32,
508                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
509                    &rust.effectBlock,
510                    out,
511                );
512            }
513            #[inline]
514            fn encode_topic(
515                rust: &Self::RustType,
516            ) -> alloy_sol_types::abi::token::WordToken {
517                let mut out = alloy_sol_types::private::Vec::new();
518                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
519                    rust,
520                    &mut out,
521                );
522                alloy_sol_types::abi::token::WordToken(
523                    alloy_sol_types::private::keccak256(out),
524                )
525            }
526        }
527    };
528    #[derive(Default, Debug, PartialEq, Eq, Hash)]
529    /**```solidity
530struct CreateSetParams { uint32 operatorSetId; address[] strategies; }
531```*/
532    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
533    #[derive(Clone)]
534    pub struct CreateSetParams {
535        #[allow(missing_docs)]
536        pub operatorSetId: u32,
537        #[allow(missing_docs)]
538        pub strategies: alloy::sol_types::private::Vec<
539            alloy::sol_types::private::Address,
540        >,
541    }
542    #[allow(
543        non_camel_case_types,
544        non_snake_case,
545        clippy::pub_underscore_fields,
546        clippy::style
547    )]
548    const _: () = {
549        use alloy::sol_types as alloy_sol_types;
550        #[doc(hidden)]
551        type UnderlyingSolTuple<'a> = (
552            alloy::sol_types::sol_data::Uint<32>,
553            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
554        );
555        #[doc(hidden)]
556        type UnderlyingRustTuple<'a> = (
557            u32,
558            alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
559        );
560        #[cfg(test)]
561        #[allow(dead_code, unreachable_patterns)]
562        fn _type_assertion(
563            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
564        ) {
565            match _t {
566                alloy_sol_types::private::AssertTypeEq::<
567                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
568                >(_) => {}
569            }
570        }
571        #[automatically_derived]
572        #[doc(hidden)]
573        impl ::core::convert::From<CreateSetParams> for UnderlyingRustTuple<'_> {
574            fn from(value: CreateSetParams) -> Self {
575                (value.operatorSetId, value.strategies)
576            }
577        }
578        #[automatically_derived]
579        #[doc(hidden)]
580        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CreateSetParams {
581            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
582                Self {
583                    operatorSetId: tuple.0,
584                    strategies: tuple.1,
585                }
586            }
587        }
588        #[automatically_derived]
589        impl alloy_sol_types::SolValue for CreateSetParams {
590            type SolType = Self;
591        }
592        #[automatically_derived]
593        impl alloy_sol_types::private::SolTypeValue<Self> for CreateSetParams {
594            #[inline]
595            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
596                (
597                    <alloy::sol_types::sol_data::Uint<
598                        32,
599                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetId),
600                    <alloy::sol_types::sol_data::Array<
601                        alloy::sol_types::sol_data::Address,
602                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
603                )
604            }
605            #[inline]
606            fn stv_abi_encoded_size(&self) -> usize {
607                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
608                    return size;
609                }
610                let tuple = <UnderlyingRustTuple<
611                    '_,
612                > as ::core::convert::From<Self>>::from(self.clone());
613                <UnderlyingSolTuple<
614                    '_,
615                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
616            }
617            #[inline]
618            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
619                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
620            }
621            #[inline]
622            fn stv_abi_encode_packed_to(
623                &self,
624                out: &mut alloy_sol_types::private::Vec<u8>,
625            ) {
626                let tuple = <UnderlyingRustTuple<
627                    '_,
628                > as ::core::convert::From<Self>>::from(self.clone());
629                <UnderlyingSolTuple<
630                    '_,
631                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
632            }
633            #[inline]
634            fn stv_abi_packed_encoded_size(&self) -> usize {
635                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
636                    return size;
637                }
638                let tuple = <UnderlyingRustTuple<
639                    '_,
640                > as ::core::convert::From<Self>>::from(self.clone());
641                <UnderlyingSolTuple<
642                    '_,
643                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
644            }
645        }
646        #[automatically_derived]
647        impl alloy_sol_types::SolType for CreateSetParams {
648            type RustType = Self;
649            type Token<'a> = <UnderlyingSolTuple<
650                'a,
651            > as alloy_sol_types::SolType>::Token<'a>;
652            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
653            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
654                '_,
655            > as alloy_sol_types::SolType>::ENCODED_SIZE;
656            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
657                '_,
658            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
659            #[inline]
660            fn valid_token(token: &Self::Token<'_>) -> bool {
661                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
662            }
663            #[inline]
664            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
665                let tuple = <UnderlyingSolTuple<
666                    '_,
667                > as alloy_sol_types::SolType>::detokenize(token);
668                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
669            }
670        }
671        #[automatically_derived]
672        impl alloy_sol_types::SolStruct for CreateSetParams {
673            const NAME: &'static str = "CreateSetParams";
674            #[inline]
675            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
676                alloy_sol_types::private::Cow::Borrowed(
677                    "CreateSetParams(uint32 operatorSetId,address[] strategies)",
678                )
679            }
680            #[inline]
681            fn eip712_components() -> alloy_sol_types::private::Vec<
682                alloy_sol_types::private::Cow<'static, str>,
683            > {
684                alloy_sol_types::private::Vec::new()
685            }
686            #[inline]
687            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
688                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
689            }
690            #[inline]
691            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
692                [
693                    <alloy::sol_types::sol_data::Uint<
694                        32,
695                    > as alloy_sol_types::SolType>::eip712_data_word(&self.operatorSetId)
696                        .0,
697                    <alloy::sol_types::sol_data::Array<
698                        alloy::sol_types::sol_data::Address,
699                    > as alloy_sol_types::SolType>::eip712_data_word(&self.strategies)
700                        .0,
701                ]
702                    .concat()
703            }
704        }
705        #[automatically_derived]
706        impl alloy_sol_types::EventTopic for CreateSetParams {
707            #[inline]
708            fn topic_preimage_length(rust: &Self::RustType) -> usize {
709                0usize
710                    + <alloy::sol_types::sol_data::Uint<
711                        32,
712                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
713                        &rust.operatorSetId,
714                    )
715                    + <alloy::sol_types::sol_data::Array<
716                        alloy::sol_types::sol_data::Address,
717                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
718                        &rust.strategies,
719                    )
720            }
721            #[inline]
722            fn encode_topic_preimage(
723                rust: &Self::RustType,
724                out: &mut alloy_sol_types::private::Vec<u8>,
725            ) {
726                out.reserve(
727                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
728                );
729                <alloy::sol_types::sol_data::Uint<
730                    32,
731                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
732                    &rust.operatorSetId,
733                    out,
734                );
735                <alloy::sol_types::sol_data::Array<
736                    alloy::sol_types::sol_data::Address,
737                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
738                    &rust.strategies,
739                    out,
740                );
741            }
742            #[inline]
743            fn encode_topic(
744                rust: &Self::RustType,
745            ) -> alloy_sol_types::abi::token::WordToken {
746                let mut out = alloy_sol_types::private::Vec::new();
747                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
748                    rust,
749                    &mut out,
750                );
751                alloy_sol_types::abi::token::WordToken(
752                    alloy_sol_types::private::keccak256(out),
753                )
754            }
755        }
756    };
757    #[derive(Default, Debug, PartialEq, Eq, Hash)]
758    /**```solidity
759struct DeregisterParams { address operator; address avs; uint32[] operatorSetIds; }
760```*/
761    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
762    #[derive(Clone)]
763    pub struct DeregisterParams {
764        #[allow(missing_docs)]
765        pub operator: alloy::sol_types::private::Address,
766        #[allow(missing_docs)]
767        pub avs: alloy::sol_types::private::Address,
768        #[allow(missing_docs)]
769        pub operatorSetIds: alloy::sol_types::private::Vec<u32>,
770    }
771    #[allow(
772        non_camel_case_types,
773        non_snake_case,
774        clippy::pub_underscore_fields,
775        clippy::style
776    )]
777    const _: () = {
778        use alloy::sol_types as alloy_sol_types;
779        #[doc(hidden)]
780        type UnderlyingSolTuple<'a> = (
781            alloy::sol_types::sol_data::Address,
782            alloy::sol_types::sol_data::Address,
783            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
784        );
785        #[doc(hidden)]
786        type UnderlyingRustTuple<'a> = (
787            alloy::sol_types::private::Address,
788            alloy::sol_types::private::Address,
789            alloy::sol_types::private::Vec<u32>,
790        );
791        #[cfg(test)]
792        #[allow(dead_code, unreachable_patterns)]
793        fn _type_assertion(
794            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
795        ) {
796            match _t {
797                alloy_sol_types::private::AssertTypeEq::<
798                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
799                >(_) => {}
800            }
801        }
802        #[automatically_derived]
803        #[doc(hidden)]
804        impl ::core::convert::From<DeregisterParams> for UnderlyingRustTuple<'_> {
805            fn from(value: DeregisterParams) -> Self {
806                (value.operator, value.avs, value.operatorSetIds)
807            }
808        }
809        #[automatically_derived]
810        #[doc(hidden)]
811        impl ::core::convert::From<UnderlyingRustTuple<'_>> for DeregisterParams {
812            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
813                Self {
814                    operator: tuple.0,
815                    avs: tuple.1,
816                    operatorSetIds: tuple.2,
817                }
818            }
819        }
820        #[automatically_derived]
821        impl alloy_sol_types::SolValue for DeregisterParams {
822            type SolType = Self;
823        }
824        #[automatically_derived]
825        impl alloy_sol_types::private::SolTypeValue<Self> for DeregisterParams {
826            #[inline]
827            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
828                (
829                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
830                        &self.operator,
831                    ),
832                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
833                        &self.avs,
834                    ),
835                    <alloy::sol_types::sol_data::Array<
836                        alloy::sol_types::sol_data::Uint<32>,
837                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetIds),
838                )
839            }
840            #[inline]
841            fn stv_abi_encoded_size(&self) -> usize {
842                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
843                    return size;
844                }
845                let tuple = <UnderlyingRustTuple<
846                    '_,
847                > as ::core::convert::From<Self>>::from(self.clone());
848                <UnderlyingSolTuple<
849                    '_,
850                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
851            }
852            #[inline]
853            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
854                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
855            }
856            #[inline]
857            fn stv_abi_encode_packed_to(
858                &self,
859                out: &mut alloy_sol_types::private::Vec<u8>,
860            ) {
861                let tuple = <UnderlyingRustTuple<
862                    '_,
863                > as ::core::convert::From<Self>>::from(self.clone());
864                <UnderlyingSolTuple<
865                    '_,
866                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
867            }
868            #[inline]
869            fn stv_abi_packed_encoded_size(&self) -> usize {
870                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
871                    return size;
872                }
873                let tuple = <UnderlyingRustTuple<
874                    '_,
875                > as ::core::convert::From<Self>>::from(self.clone());
876                <UnderlyingSolTuple<
877                    '_,
878                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
879            }
880        }
881        #[automatically_derived]
882        impl alloy_sol_types::SolType for DeregisterParams {
883            type RustType = Self;
884            type Token<'a> = <UnderlyingSolTuple<
885                'a,
886            > as alloy_sol_types::SolType>::Token<'a>;
887            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
888            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
889                '_,
890            > as alloy_sol_types::SolType>::ENCODED_SIZE;
891            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
892                '_,
893            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
894            #[inline]
895            fn valid_token(token: &Self::Token<'_>) -> bool {
896                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
897            }
898            #[inline]
899            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
900                let tuple = <UnderlyingSolTuple<
901                    '_,
902                > as alloy_sol_types::SolType>::detokenize(token);
903                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
904            }
905        }
906        #[automatically_derived]
907        impl alloy_sol_types::SolStruct for DeregisterParams {
908            const NAME: &'static str = "DeregisterParams";
909            #[inline]
910            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
911                alloy_sol_types::private::Cow::Borrowed(
912                    "DeregisterParams(address operator,address avs,uint32[] operatorSetIds)",
913                )
914            }
915            #[inline]
916            fn eip712_components() -> alloy_sol_types::private::Vec<
917                alloy_sol_types::private::Cow<'static, str>,
918            > {
919                alloy_sol_types::private::Vec::new()
920            }
921            #[inline]
922            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
923                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
924            }
925            #[inline]
926            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
927                [
928                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
929                            &self.operator,
930                        )
931                        .0,
932                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
933                            &self.avs,
934                        )
935                        .0,
936                    <alloy::sol_types::sol_data::Array<
937                        alloy::sol_types::sol_data::Uint<32>,
938                    > as alloy_sol_types::SolType>::eip712_data_word(
939                            &self.operatorSetIds,
940                        )
941                        .0,
942                ]
943                    .concat()
944            }
945        }
946        #[automatically_derived]
947        impl alloy_sol_types::EventTopic for DeregisterParams {
948            #[inline]
949            fn topic_preimage_length(rust: &Self::RustType) -> usize {
950                0usize
951                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
952                        &rust.operator,
953                    )
954                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
955                        &rust.avs,
956                    )
957                    + <alloy::sol_types::sol_data::Array<
958                        alloy::sol_types::sol_data::Uint<32>,
959                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
960                        &rust.operatorSetIds,
961                    )
962            }
963            #[inline]
964            fn encode_topic_preimage(
965                rust: &Self::RustType,
966                out: &mut alloy_sol_types::private::Vec<u8>,
967            ) {
968                out.reserve(
969                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
970                );
971                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
972                    &rust.operator,
973                    out,
974                );
975                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
976                    &rust.avs,
977                    out,
978                );
979                <alloy::sol_types::sol_data::Array<
980                    alloy::sol_types::sol_data::Uint<32>,
981                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
982                    &rust.operatorSetIds,
983                    out,
984                );
985            }
986            #[inline]
987            fn encode_topic(
988                rust: &Self::RustType,
989            ) -> alloy_sol_types::abi::token::WordToken {
990                let mut out = alloy_sol_types::private::Vec::new();
991                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
992                    rust,
993                    &mut out,
994                );
995                alloy_sol_types::abi::token::WordToken(
996                    alloy_sol_types::private::keccak256(out),
997                )
998            }
999        }
1000    };
1001    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1002    /**```solidity
1003struct RegisterParams { address avs; uint32[] operatorSetIds; bytes data; }
1004```*/
1005    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1006    #[derive(Clone)]
1007    pub struct RegisterParams {
1008        #[allow(missing_docs)]
1009        pub avs: alloy::sol_types::private::Address,
1010        #[allow(missing_docs)]
1011        pub operatorSetIds: alloy::sol_types::private::Vec<u32>,
1012        #[allow(missing_docs)]
1013        pub data: alloy::sol_types::private::Bytes,
1014    }
1015    #[allow(
1016        non_camel_case_types,
1017        non_snake_case,
1018        clippy::pub_underscore_fields,
1019        clippy::style
1020    )]
1021    const _: () = {
1022        use alloy::sol_types as alloy_sol_types;
1023        #[doc(hidden)]
1024        type UnderlyingSolTuple<'a> = (
1025            alloy::sol_types::sol_data::Address,
1026            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
1027            alloy::sol_types::sol_data::Bytes,
1028        );
1029        #[doc(hidden)]
1030        type UnderlyingRustTuple<'a> = (
1031            alloy::sol_types::private::Address,
1032            alloy::sol_types::private::Vec<u32>,
1033            alloy::sol_types::private::Bytes,
1034        );
1035        #[cfg(test)]
1036        #[allow(dead_code, unreachable_patterns)]
1037        fn _type_assertion(
1038            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1039        ) {
1040            match _t {
1041                alloy_sol_types::private::AssertTypeEq::<
1042                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1043                >(_) => {}
1044            }
1045        }
1046        #[automatically_derived]
1047        #[doc(hidden)]
1048        impl ::core::convert::From<RegisterParams> for UnderlyingRustTuple<'_> {
1049            fn from(value: RegisterParams) -> Self {
1050                (value.avs, value.operatorSetIds, value.data)
1051            }
1052        }
1053        #[automatically_derived]
1054        #[doc(hidden)]
1055        impl ::core::convert::From<UnderlyingRustTuple<'_>> for RegisterParams {
1056            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1057                Self {
1058                    avs: tuple.0,
1059                    operatorSetIds: tuple.1,
1060                    data: tuple.2,
1061                }
1062            }
1063        }
1064        #[automatically_derived]
1065        impl alloy_sol_types::SolValue for RegisterParams {
1066            type SolType = Self;
1067        }
1068        #[automatically_derived]
1069        impl alloy_sol_types::private::SolTypeValue<Self> for RegisterParams {
1070            #[inline]
1071            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1072                (
1073                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1074                        &self.avs,
1075                    ),
1076                    <alloy::sol_types::sol_data::Array<
1077                        alloy::sol_types::sol_data::Uint<32>,
1078                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetIds),
1079                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
1080                        &self.data,
1081                    ),
1082                )
1083            }
1084            #[inline]
1085            fn stv_abi_encoded_size(&self) -> usize {
1086                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1087                    return size;
1088                }
1089                let tuple = <UnderlyingRustTuple<
1090                    '_,
1091                > as ::core::convert::From<Self>>::from(self.clone());
1092                <UnderlyingSolTuple<
1093                    '_,
1094                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1095            }
1096            #[inline]
1097            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1098                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1099            }
1100            #[inline]
1101            fn stv_abi_encode_packed_to(
1102                &self,
1103                out: &mut alloy_sol_types::private::Vec<u8>,
1104            ) {
1105                let tuple = <UnderlyingRustTuple<
1106                    '_,
1107                > as ::core::convert::From<Self>>::from(self.clone());
1108                <UnderlyingSolTuple<
1109                    '_,
1110                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1111            }
1112            #[inline]
1113            fn stv_abi_packed_encoded_size(&self) -> usize {
1114                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1115                    return size;
1116                }
1117                let tuple = <UnderlyingRustTuple<
1118                    '_,
1119                > as ::core::convert::From<Self>>::from(self.clone());
1120                <UnderlyingSolTuple<
1121                    '_,
1122                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1123            }
1124        }
1125        #[automatically_derived]
1126        impl alloy_sol_types::SolType for RegisterParams {
1127            type RustType = Self;
1128            type Token<'a> = <UnderlyingSolTuple<
1129                'a,
1130            > as alloy_sol_types::SolType>::Token<'a>;
1131            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1132            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1133                '_,
1134            > as alloy_sol_types::SolType>::ENCODED_SIZE;
1135            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1136                '_,
1137            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1138            #[inline]
1139            fn valid_token(token: &Self::Token<'_>) -> bool {
1140                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1141            }
1142            #[inline]
1143            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1144                let tuple = <UnderlyingSolTuple<
1145                    '_,
1146                > as alloy_sol_types::SolType>::detokenize(token);
1147                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1148            }
1149        }
1150        #[automatically_derived]
1151        impl alloy_sol_types::SolStruct for RegisterParams {
1152            const NAME: &'static str = "RegisterParams";
1153            #[inline]
1154            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1155                alloy_sol_types::private::Cow::Borrowed(
1156                    "RegisterParams(address avs,uint32[] operatorSetIds,bytes data)",
1157                )
1158            }
1159            #[inline]
1160            fn eip712_components() -> alloy_sol_types::private::Vec<
1161                alloy_sol_types::private::Cow<'static, str>,
1162            > {
1163                alloy_sol_types::private::Vec::new()
1164            }
1165            #[inline]
1166            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
1167                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
1168            }
1169            #[inline]
1170            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1171                [
1172                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
1173                            &self.avs,
1174                        )
1175                        .0,
1176                    <alloy::sol_types::sol_data::Array<
1177                        alloy::sol_types::sol_data::Uint<32>,
1178                    > as alloy_sol_types::SolType>::eip712_data_word(
1179                            &self.operatorSetIds,
1180                        )
1181                        .0,
1182                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::eip712_data_word(
1183                            &self.data,
1184                        )
1185                        .0,
1186                ]
1187                    .concat()
1188            }
1189        }
1190        #[automatically_derived]
1191        impl alloy_sol_types::EventTopic for RegisterParams {
1192            #[inline]
1193            fn topic_preimage_length(rust: &Self::RustType) -> usize {
1194                0usize
1195                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
1196                        &rust.avs,
1197                    )
1198                    + <alloy::sol_types::sol_data::Array<
1199                        alloy::sol_types::sol_data::Uint<32>,
1200                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1201                        &rust.operatorSetIds,
1202                    )
1203                    + <alloy::sol_types::sol_data::Bytes as alloy_sol_types::EventTopic>::topic_preimage_length(
1204                        &rust.data,
1205                    )
1206            }
1207            #[inline]
1208            fn encode_topic_preimage(
1209                rust: &Self::RustType,
1210                out: &mut alloy_sol_types::private::Vec<u8>,
1211            ) {
1212                out.reserve(
1213                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1214                );
1215                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
1216                    &rust.avs,
1217                    out,
1218                );
1219                <alloy::sol_types::sol_data::Array<
1220                    alloy::sol_types::sol_data::Uint<32>,
1221                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1222                    &rust.operatorSetIds,
1223                    out,
1224                );
1225                <alloy::sol_types::sol_data::Bytes as alloy_sol_types::EventTopic>::encode_topic_preimage(
1226                    &rust.data,
1227                    out,
1228                );
1229            }
1230            #[inline]
1231            fn encode_topic(
1232                rust: &Self::RustType,
1233            ) -> alloy_sol_types::abi::token::WordToken {
1234                let mut out = alloy_sol_types::private::Vec::new();
1235                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1236                    rust,
1237                    &mut out,
1238                );
1239                alloy_sol_types::abi::token::WordToken(
1240                    alloy_sol_types::private::keccak256(out),
1241                )
1242            }
1243        }
1244    };
1245    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1246    /**```solidity
1247struct SlashingParams { address operator; uint32 operatorSetId; address[] strategies; uint256[] wadsToSlash; string description; }
1248```*/
1249    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1250    #[derive(Clone)]
1251    pub struct SlashingParams {
1252        #[allow(missing_docs)]
1253        pub operator: alloy::sol_types::private::Address,
1254        #[allow(missing_docs)]
1255        pub operatorSetId: u32,
1256        #[allow(missing_docs)]
1257        pub strategies: alloy::sol_types::private::Vec<
1258            alloy::sol_types::private::Address,
1259        >,
1260        #[allow(missing_docs)]
1261        pub wadsToSlash: alloy::sol_types::private::Vec<
1262            alloy::sol_types::private::primitives::aliases::U256,
1263        >,
1264        #[allow(missing_docs)]
1265        pub description: alloy::sol_types::private::String,
1266    }
1267    #[allow(
1268        non_camel_case_types,
1269        non_snake_case,
1270        clippy::pub_underscore_fields,
1271        clippy::style
1272    )]
1273    const _: () = {
1274        use alloy::sol_types as alloy_sol_types;
1275        #[doc(hidden)]
1276        type UnderlyingSolTuple<'a> = (
1277            alloy::sol_types::sol_data::Address,
1278            alloy::sol_types::sol_data::Uint<32>,
1279            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
1280            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
1281            alloy::sol_types::sol_data::String,
1282        );
1283        #[doc(hidden)]
1284        type UnderlyingRustTuple<'a> = (
1285            alloy::sol_types::private::Address,
1286            u32,
1287            alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
1288            alloy::sol_types::private::Vec<
1289                alloy::sol_types::private::primitives::aliases::U256,
1290            >,
1291            alloy::sol_types::private::String,
1292        );
1293        #[cfg(test)]
1294        #[allow(dead_code, unreachable_patterns)]
1295        fn _type_assertion(
1296            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1297        ) {
1298            match _t {
1299                alloy_sol_types::private::AssertTypeEq::<
1300                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1301                >(_) => {}
1302            }
1303        }
1304        #[automatically_derived]
1305        #[doc(hidden)]
1306        impl ::core::convert::From<SlashingParams> for UnderlyingRustTuple<'_> {
1307            fn from(value: SlashingParams) -> Self {
1308                (
1309                    value.operator,
1310                    value.operatorSetId,
1311                    value.strategies,
1312                    value.wadsToSlash,
1313                    value.description,
1314                )
1315            }
1316        }
1317        #[automatically_derived]
1318        #[doc(hidden)]
1319        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SlashingParams {
1320            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1321                Self {
1322                    operator: tuple.0,
1323                    operatorSetId: tuple.1,
1324                    strategies: tuple.2,
1325                    wadsToSlash: tuple.3,
1326                    description: tuple.4,
1327                }
1328            }
1329        }
1330        #[automatically_derived]
1331        impl alloy_sol_types::SolValue for SlashingParams {
1332            type SolType = Self;
1333        }
1334        #[automatically_derived]
1335        impl alloy_sol_types::private::SolTypeValue<Self> for SlashingParams {
1336            #[inline]
1337            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1338                (
1339                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1340                        &self.operator,
1341                    ),
1342                    <alloy::sol_types::sol_data::Uint<
1343                        32,
1344                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetId),
1345                    <alloy::sol_types::sol_data::Array<
1346                        alloy::sol_types::sol_data::Address,
1347                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
1348                    <alloy::sol_types::sol_data::Array<
1349                        alloy::sol_types::sol_data::Uint<256>,
1350                    > as alloy_sol_types::SolType>::tokenize(&self.wadsToSlash),
1351                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
1352                        &self.description,
1353                    ),
1354                )
1355            }
1356            #[inline]
1357            fn stv_abi_encoded_size(&self) -> usize {
1358                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1359                    return size;
1360                }
1361                let tuple = <UnderlyingRustTuple<
1362                    '_,
1363                > as ::core::convert::From<Self>>::from(self.clone());
1364                <UnderlyingSolTuple<
1365                    '_,
1366                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1367            }
1368            #[inline]
1369            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1370                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1371            }
1372            #[inline]
1373            fn stv_abi_encode_packed_to(
1374                &self,
1375                out: &mut alloy_sol_types::private::Vec<u8>,
1376            ) {
1377                let tuple = <UnderlyingRustTuple<
1378                    '_,
1379                > as ::core::convert::From<Self>>::from(self.clone());
1380                <UnderlyingSolTuple<
1381                    '_,
1382                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1383            }
1384            #[inline]
1385            fn stv_abi_packed_encoded_size(&self) -> usize {
1386                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1387                    return size;
1388                }
1389                let tuple = <UnderlyingRustTuple<
1390                    '_,
1391                > as ::core::convert::From<Self>>::from(self.clone());
1392                <UnderlyingSolTuple<
1393                    '_,
1394                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1395            }
1396        }
1397        #[automatically_derived]
1398        impl alloy_sol_types::SolType for SlashingParams {
1399            type RustType = Self;
1400            type Token<'a> = <UnderlyingSolTuple<
1401                'a,
1402            > as alloy_sol_types::SolType>::Token<'a>;
1403            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1404            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1405                '_,
1406            > as alloy_sol_types::SolType>::ENCODED_SIZE;
1407            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1408                '_,
1409            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1410            #[inline]
1411            fn valid_token(token: &Self::Token<'_>) -> bool {
1412                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1413            }
1414            #[inline]
1415            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1416                let tuple = <UnderlyingSolTuple<
1417                    '_,
1418                > as alloy_sol_types::SolType>::detokenize(token);
1419                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1420            }
1421        }
1422        #[automatically_derived]
1423        impl alloy_sol_types::SolStruct for SlashingParams {
1424            const NAME: &'static str = "SlashingParams";
1425            #[inline]
1426            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1427                alloy_sol_types::private::Cow::Borrowed(
1428                    "SlashingParams(address operator,uint32 operatorSetId,address[] strategies,uint256[] wadsToSlash,string description)",
1429                )
1430            }
1431            #[inline]
1432            fn eip712_components() -> alloy_sol_types::private::Vec<
1433                alloy_sol_types::private::Cow<'static, str>,
1434            > {
1435                alloy_sol_types::private::Vec::new()
1436            }
1437            #[inline]
1438            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
1439                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
1440            }
1441            #[inline]
1442            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1443                [
1444                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
1445                            &self.operator,
1446                        )
1447                        .0,
1448                    <alloy::sol_types::sol_data::Uint<
1449                        32,
1450                    > as alloy_sol_types::SolType>::eip712_data_word(&self.operatorSetId)
1451                        .0,
1452                    <alloy::sol_types::sol_data::Array<
1453                        alloy::sol_types::sol_data::Address,
1454                    > as alloy_sol_types::SolType>::eip712_data_word(&self.strategies)
1455                        .0,
1456                    <alloy::sol_types::sol_data::Array<
1457                        alloy::sol_types::sol_data::Uint<256>,
1458                    > as alloy_sol_types::SolType>::eip712_data_word(&self.wadsToSlash)
1459                        .0,
1460                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::eip712_data_word(
1461                            &self.description,
1462                        )
1463                        .0,
1464                ]
1465                    .concat()
1466            }
1467        }
1468        #[automatically_derived]
1469        impl alloy_sol_types::EventTopic for SlashingParams {
1470            #[inline]
1471            fn topic_preimage_length(rust: &Self::RustType) -> usize {
1472                0usize
1473                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
1474                        &rust.operator,
1475                    )
1476                    + <alloy::sol_types::sol_data::Uint<
1477                        32,
1478                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1479                        &rust.operatorSetId,
1480                    )
1481                    + <alloy::sol_types::sol_data::Array<
1482                        alloy::sol_types::sol_data::Address,
1483                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1484                        &rust.strategies,
1485                    )
1486                    + <alloy::sol_types::sol_data::Array<
1487                        alloy::sol_types::sol_data::Uint<256>,
1488                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1489                        &rust.wadsToSlash,
1490                    )
1491                    + <alloy::sol_types::sol_data::String as alloy_sol_types::EventTopic>::topic_preimage_length(
1492                        &rust.description,
1493                    )
1494            }
1495            #[inline]
1496            fn encode_topic_preimage(
1497                rust: &Self::RustType,
1498                out: &mut alloy_sol_types::private::Vec<u8>,
1499            ) {
1500                out.reserve(
1501                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1502                );
1503                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
1504                    &rust.operator,
1505                    out,
1506                );
1507                <alloy::sol_types::sol_data::Uint<
1508                    32,
1509                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1510                    &rust.operatorSetId,
1511                    out,
1512                );
1513                <alloy::sol_types::sol_data::Array<
1514                    alloy::sol_types::sol_data::Address,
1515                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1516                    &rust.strategies,
1517                    out,
1518                );
1519                <alloy::sol_types::sol_data::Array<
1520                    alloy::sol_types::sol_data::Uint<256>,
1521                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1522                    &rust.wadsToSlash,
1523                    out,
1524                );
1525                <alloy::sol_types::sol_data::String as alloy_sol_types::EventTopic>::encode_topic_preimage(
1526                    &rust.description,
1527                    out,
1528                );
1529            }
1530            #[inline]
1531            fn encode_topic(
1532                rust: &Self::RustType,
1533            ) -> alloy_sol_types::abi::token::WordToken {
1534                let mut out = alloy_sol_types::private::Vec::new();
1535                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1536                    rust,
1537                    &mut out,
1538                );
1539                alloy_sol_types::abi::token::WordToken(
1540                    alloy_sol_types::private::keccak256(out),
1541                )
1542            }
1543        }
1544    };
1545    use alloy::contract as alloy_contract;
1546    /**Creates a new wrapper around an on-chain [`IAllocationManagerTypes`](self) contract instance.
1547
1548See the [wrapper's documentation](`IAllocationManagerTypesInstance`) for more details.*/
1549    #[inline]
1550    pub const fn new<
1551        T: alloy_contract::private::Transport + ::core::clone::Clone,
1552        P: alloy_contract::private::Provider<T, N>,
1553        N: alloy_contract::private::Network,
1554    >(
1555        address: alloy_sol_types::private::Address,
1556        provider: P,
1557    ) -> IAllocationManagerTypesInstance<T, P, N> {
1558        IAllocationManagerTypesInstance::<T, P, N>::new(address, provider)
1559    }
1560    /**A [`IAllocationManagerTypes`](self) instance.
1561
1562Contains type-safe methods for interacting with an on-chain instance of the
1563[`IAllocationManagerTypes`](self) contract located at a given `address`, using a given
1564provider `P`.
1565
1566If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
1567documentation on how to provide it), the `deploy` and `deploy_builder` methods can
1568be used to deploy a new instance of the contract.
1569
1570See the [module-level documentation](self) for all the available methods.*/
1571    #[derive(Clone)]
1572    pub struct IAllocationManagerTypesInstance<
1573        T,
1574        P,
1575        N = alloy_contract::private::Ethereum,
1576    > {
1577        address: alloy_sol_types::private::Address,
1578        provider: P,
1579        _network_transport: ::core::marker::PhantomData<(N, T)>,
1580    }
1581    #[automatically_derived]
1582    impl<T, P, N> ::core::fmt::Debug for IAllocationManagerTypesInstance<T, P, N> {
1583        #[inline]
1584        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1585            f.debug_tuple("IAllocationManagerTypesInstance")
1586                .field(&self.address)
1587                .finish()
1588        }
1589    }
1590    /// Instantiation and getters/setters.
1591    #[automatically_derived]
1592    impl<
1593        T: alloy_contract::private::Transport + ::core::clone::Clone,
1594        P: alloy_contract::private::Provider<T, N>,
1595        N: alloy_contract::private::Network,
1596    > IAllocationManagerTypesInstance<T, P, N> {
1597        /**Creates a new wrapper around an on-chain [`IAllocationManagerTypes`](self) contract instance.
1598
1599See the [wrapper's documentation](`IAllocationManagerTypesInstance`) for more details.*/
1600        #[inline]
1601        pub const fn new(
1602            address: alloy_sol_types::private::Address,
1603            provider: P,
1604        ) -> Self {
1605            Self {
1606                address,
1607                provider,
1608                _network_transport: ::core::marker::PhantomData,
1609            }
1610        }
1611        /// Returns a reference to the address.
1612        #[inline]
1613        pub const fn address(&self) -> &alloy_sol_types::private::Address {
1614            &self.address
1615        }
1616        /// Sets the address.
1617        #[inline]
1618        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1619            self.address = address;
1620        }
1621        /// Sets the address and returns `self`.
1622        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1623            self.set_address(address);
1624            self
1625        }
1626        /// Returns a reference to the provider.
1627        #[inline]
1628        pub const fn provider(&self) -> &P {
1629            &self.provider
1630        }
1631    }
1632    impl<T, P: ::core::clone::Clone, N> IAllocationManagerTypesInstance<T, &P, N> {
1633        /// Clones the provider and returns a new instance with the cloned provider.
1634        #[inline]
1635        pub fn with_cloned_provider(self) -> IAllocationManagerTypesInstance<T, P, N> {
1636            IAllocationManagerTypesInstance {
1637                address: self.address,
1638                provider: ::core::clone::Clone::clone(&self.provider),
1639                _network_transport: ::core::marker::PhantomData,
1640            }
1641        }
1642    }
1643    /// Function calls.
1644    #[automatically_derived]
1645    impl<
1646        T: alloy_contract::private::Transport + ::core::clone::Clone,
1647        P: alloy_contract::private::Provider<T, N>,
1648        N: alloy_contract::private::Network,
1649    > IAllocationManagerTypesInstance<T, P, N> {
1650        /// Creates a new call builder using this contract instance's provider and address.
1651        ///
1652        /// Note that the call can be any function call, not just those defined in this
1653        /// contract. Prefer using the other methods for building type-safe contract calls.
1654        pub fn call_builder<C: alloy_sol_types::SolCall>(
1655            &self,
1656            call: &C,
1657        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
1658            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1659        }
1660    }
1661    /// Event filters.
1662    #[automatically_derived]
1663    impl<
1664        T: alloy_contract::private::Transport + ::core::clone::Clone,
1665        P: alloy_contract::private::Provider<T, N>,
1666        N: alloy_contract::private::Network,
1667    > IAllocationManagerTypesInstance<T, P, N> {
1668        /// Creates a new event filter using this contract instance's provider and address.
1669        ///
1670        /// Note that the type can be any event, not just those defined in this contract.
1671        /// Prefer using the other methods for building type-safe event filters.
1672        pub fn event_filter<E: alloy_sol_types::SolEvent>(
1673            &self,
1674        ) -> alloy_contract::Event<T, &P, E, N> {
1675            alloy_contract::Event::new_sol(&self.provider, &self.address)
1676        }
1677    }
1678}
1679/**
1680
1681Generated by the following Solidity interface...
1682```solidity
1683library IAllocationManagerTypes {
1684    struct AllocateParams {
1685        OperatorSet operatorSet;
1686        address[] strategies;
1687        uint64[] newMagnitudes;
1688    }
1689    struct Allocation {
1690        uint64 currentMagnitude;
1691        int128 pendingDiff;
1692        uint32 effectBlock;
1693    }
1694    struct CreateSetParams {
1695        uint32 operatorSetId;
1696        address[] strategies;
1697    }
1698    struct DeregisterParams {
1699        address operator;
1700        address avs;
1701        uint32[] operatorSetIds;
1702    }
1703    struct RegisterParams {
1704        address avs;
1705        uint32[] operatorSetIds;
1706        bytes data;
1707    }
1708    struct SlashingParams {
1709        address operator;
1710        uint32 operatorSetId;
1711        address[] strategies;
1712        uint256[] wadsToSlash;
1713        string description;
1714    }
1715}
1716
1717interface AllocationManager {
1718    struct OperatorSet {
1719        address avs;
1720        uint32 id;
1721    }
1722
1723    error AlreadyMemberOfSet();
1724    error CurrentlyPaused();
1725    error Empty();
1726    error InputAddressZero();
1727    error InputArrayLengthMismatch();
1728    error InsufficientMagnitude();
1729    error InvalidAVSRegistrar();
1730    error InvalidCaller();
1731    error InvalidNewPausedStatus();
1732    error InvalidOperator();
1733    error InvalidOperatorSet();
1734    error InvalidPermissions();
1735    error InvalidShortString();
1736    error InvalidSnapshotOrdering();
1737    error InvalidWadToSlash();
1738    error ModificationAlreadyPending();
1739    error NonexistentAVSMetadata();
1740    error NotMemberOfSet();
1741    error OnlyPauser();
1742    error OnlyUnpauser();
1743    error OperatorNotSlashable();
1744    error OutOfBounds();
1745    error SameMagnitude();
1746    error StrategiesMustBeInAscendingOrder();
1747    error StrategyAlreadyInOperatorSet();
1748    error StrategyNotInOperatorSet();
1749    error StringTooLong(string str);
1750    error UninitializedAllocationDelay();
1751
1752    event AVSMetadataURIUpdated(address indexed avs, string metadataURI);
1753    event AVSRegistrarSet(address avs, address registrar);
1754    event AllocationDelaySet(address operator, uint32 delay, uint32 effectBlock);
1755    event AllocationUpdated(address operator, OperatorSet operatorSet, address strategy, uint64 magnitude, uint32 effectBlock);
1756    event EncumberedMagnitudeUpdated(address operator, address strategy, uint64 encumberedMagnitude);
1757    event Initialized(uint8 version);
1758    event MaxMagnitudeUpdated(address operator, address strategy, uint64 maxMagnitude);
1759    event OperatorAddedToOperatorSet(address indexed operator, OperatorSet operatorSet);
1760    event OperatorRemovedFromOperatorSet(address indexed operator, OperatorSet operatorSet);
1761    event OperatorSetCreated(OperatorSet operatorSet);
1762    event OperatorSlashed(address operator, OperatorSet operatorSet, address[] strategies, uint256[] wadSlashed, string description);
1763    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
1764    event Paused(address indexed account, uint256 newPausedStatus);
1765    event StrategyAddedToOperatorSet(OperatorSet operatorSet, address strategy);
1766    event StrategyRemovedFromOperatorSet(OperatorSet operatorSet, address strategy);
1767    event Unpaused(address indexed account, uint256 newPausedStatus);
1768
1769    constructor(address _delegation, address _pauserRegistry, address _permissionController, uint32 _DEALLOCATION_DELAY, uint32 _ALLOCATION_CONFIGURATION_DELAY, string _version);
1770
1771    function ALLOCATION_CONFIGURATION_DELAY() external view returns (uint32);
1772    function DEALLOCATION_DELAY() external view returns (uint32);
1773    function addStrategiesToOperatorSet(address avs, uint32 operatorSetId, address[] memory strategies) external;
1774    function clearDeallocationQueue(address operator, address[] memory strategies, uint16[] memory numToClear) external;
1775    function createOperatorSets(address avs, IAllocationManagerTypes.CreateSetParams[] memory params) external;
1776    function delegation() external view returns (address);
1777    function deregisterFromOperatorSets(IAllocationManagerTypes.DeregisterParams memory params) external;
1778    function getAVSRegistrar(address avs) external view returns (address);
1779    function getAllocatableMagnitude(address operator, address strategy) external view returns (uint64);
1780    function getAllocatedSets(address operator) external view returns (OperatorSet[] memory);
1781    function getAllocatedStake(OperatorSet memory operatorSet, address[] memory operators, address[] memory strategies) external view returns (uint256[][] memory);
1782    function getAllocatedStrategies(address operator, OperatorSet memory operatorSet) external view returns (address[] memory);
1783    function getAllocation(address operator, OperatorSet memory operatorSet, address strategy) external view returns (IAllocationManagerTypes.Allocation memory);
1784    function getAllocationDelay(address operator) external view returns (bool, uint32);
1785    function getAllocations(address[] memory operators, OperatorSet memory operatorSet, address strategy) external view returns (IAllocationManagerTypes.Allocation[] memory);
1786    function getEncumberedMagnitude(address operator, address strategy) external view returns (uint64);
1787    function getMaxMagnitude(address operator, address strategy) external view returns (uint64);
1788    function getMaxMagnitudes(address[] memory operators, address strategy) external view returns (uint64[] memory);
1789    function getMaxMagnitudes(address operator, address[] memory strategies) external view returns (uint64[] memory);
1790    function getMaxMagnitudesAtBlock(address operator, address[] memory strategies, uint32 blockNumber) external view returns (uint64[] memory);
1791    function getMemberCount(OperatorSet memory operatorSet) external view returns (uint256);
1792    function getMembers(OperatorSet memory operatorSet) external view returns (address[] memory);
1793    function getMinimumSlashableStake(OperatorSet memory operatorSet, address[] memory operators, address[] memory strategies, uint32 futureBlock) external view returns (uint256[][] memory slashableStake);
1794    function getOperatorSetCount(address avs) external view returns (uint256);
1795    function getRegisteredSets(address operator) external view returns (OperatorSet[] memory);
1796    function getStrategiesInOperatorSet(OperatorSet memory operatorSet) external view returns (address[] memory);
1797    function getStrategyAllocations(address operator, address strategy) external view returns (OperatorSet[] memory, IAllocationManagerTypes.Allocation[] memory);
1798    function initialize(address initialOwner, uint256 initialPausedStatus) external;
1799    function isMemberOfOperatorSet(address operator, OperatorSet memory operatorSet) external view returns (bool);
1800    function isOperatorSet(OperatorSet memory operatorSet) external view returns (bool);
1801    function isOperatorSlashable(address operator, OperatorSet memory operatorSet) external view returns (bool);
1802    function modifyAllocations(address operator, IAllocationManagerTypes.AllocateParams[] memory params) external;
1803    function owner() external view returns (address);
1804    function pause(uint256 newPausedStatus) external;
1805    function pauseAll() external;
1806    function paused(uint8 index) external view returns (bool);
1807    function paused() external view returns (uint256);
1808    function pauserRegistry() external view returns (address);
1809    function permissionController() external view returns (address);
1810    function registerForOperatorSets(address operator, IAllocationManagerTypes.RegisterParams memory params) external;
1811    function removeStrategiesFromOperatorSet(address avs, uint32 operatorSetId, address[] memory strategies) external;
1812    function renounceOwnership() external;
1813    function setAVSRegistrar(address avs, address registrar) external;
1814    function setAllocationDelay(address operator, uint32 delay) external;
1815    function slashOperator(address avs, IAllocationManagerTypes.SlashingParams memory params) external;
1816    function transferOwnership(address newOwner) external;
1817    function unpause(uint256 newPausedStatus) external;
1818    function updateAVSMetadataURI(address avs, string memory metadataURI) external;
1819    function version() external view returns (string memory);
1820}
1821```
1822
1823...which was generated by the following JSON ABI:
1824```json
1825[
1826  {
1827    "type": "constructor",
1828    "inputs": [
1829      {
1830        "name": "_delegation",
1831        "type": "address",
1832        "internalType": "contract IDelegationManager"
1833      },
1834      {
1835        "name": "_pauserRegistry",
1836        "type": "address",
1837        "internalType": "contract IPauserRegistry"
1838      },
1839      {
1840        "name": "_permissionController",
1841        "type": "address",
1842        "internalType": "contract IPermissionController"
1843      },
1844      {
1845        "name": "_DEALLOCATION_DELAY",
1846        "type": "uint32",
1847        "internalType": "uint32"
1848      },
1849      {
1850        "name": "_ALLOCATION_CONFIGURATION_DELAY",
1851        "type": "uint32",
1852        "internalType": "uint32"
1853      },
1854      {
1855        "name": "_version",
1856        "type": "string",
1857        "internalType": "string"
1858      }
1859    ],
1860    "stateMutability": "nonpayable"
1861  },
1862  {
1863    "type": "function",
1864    "name": "ALLOCATION_CONFIGURATION_DELAY",
1865    "inputs": [],
1866    "outputs": [
1867      {
1868        "name": "",
1869        "type": "uint32",
1870        "internalType": "uint32"
1871      }
1872    ],
1873    "stateMutability": "view"
1874  },
1875  {
1876    "type": "function",
1877    "name": "DEALLOCATION_DELAY",
1878    "inputs": [],
1879    "outputs": [
1880      {
1881        "name": "",
1882        "type": "uint32",
1883        "internalType": "uint32"
1884      }
1885    ],
1886    "stateMutability": "view"
1887  },
1888  {
1889    "type": "function",
1890    "name": "addStrategiesToOperatorSet",
1891    "inputs": [
1892      {
1893        "name": "avs",
1894        "type": "address",
1895        "internalType": "address"
1896      },
1897      {
1898        "name": "operatorSetId",
1899        "type": "uint32",
1900        "internalType": "uint32"
1901      },
1902      {
1903        "name": "strategies",
1904        "type": "address[]",
1905        "internalType": "contract IStrategy[]"
1906      }
1907    ],
1908    "outputs": [],
1909    "stateMutability": "nonpayable"
1910  },
1911  {
1912    "type": "function",
1913    "name": "clearDeallocationQueue",
1914    "inputs": [
1915      {
1916        "name": "operator",
1917        "type": "address",
1918        "internalType": "address"
1919      },
1920      {
1921        "name": "strategies",
1922        "type": "address[]",
1923        "internalType": "contract IStrategy[]"
1924      },
1925      {
1926        "name": "numToClear",
1927        "type": "uint16[]",
1928        "internalType": "uint16[]"
1929      }
1930    ],
1931    "outputs": [],
1932    "stateMutability": "nonpayable"
1933  },
1934  {
1935    "type": "function",
1936    "name": "createOperatorSets",
1937    "inputs": [
1938      {
1939        "name": "avs",
1940        "type": "address",
1941        "internalType": "address"
1942      },
1943      {
1944        "name": "params",
1945        "type": "tuple[]",
1946        "internalType": "struct IAllocationManagerTypes.CreateSetParams[]",
1947        "components": [
1948          {
1949            "name": "operatorSetId",
1950            "type": "uint32",
1951            "internalType": "uint32"
1952          },
1953          {
1954            "name": "strategies",
1955            "type": "address[]",
1956            "internalType": "contract IStrategy[]"
1957          }
1958        ]
1959      }
1960    ],
1961    "outputs": [],
1962    "stateMutability": "nonpayable"
1963  },
1964  {
1965    "type": "function",
1966    "name": "delegation",
1967    "inputs": [],
1968    "outputs": [
1969      {
1970        "name": "",
1971        "type": "address",
1972        "internalType": "contract IDelegationManager"
1973      }
1974    ],
1975    "stateMutability": "view"
1976  },
1977  {
1978    "type": "function",
1979    "name": "deregisterFromOperatorSets",
1980    "inputs": [
1981      {
1982        "name": "params",
1983        "type": "tuple",
1984        "internalType": "struct IAllocationManagerTypes.DeregisterParams",
1985        "components": [
1986          {
1987            "name": "operator",
1988            "type": "address",
1989            "internalType": "address"
1990          },
1991          {
1992            "name": "avs",
1993            "type": "address",
1994            "internalType": "address"
1995          },
1996          {
1997            "name": "operatorSetIds",
1998            "type": "uint32[]",
1999            "internalType": "uint32[]"
2000          }
2001        ]
2002      }
2003    ],
2004    "outputs": [],
2005    "stateMutability": "nonpayable"
2006  },
2007  {
2008    "type": "function",
2009    "name": "getAVSRegistrar",
2010    "inputs": [
2011      {
2012        "name": "avs",
2013        "type": "address",
2014        "internalType": "address"
2015      }
2016    ],
2017    "outputs": [
2018      {
2019        "name": "",
2020        "type": "address",
2021        "internalType": "contract IAVSRegistrar"
2022      }
2023    ],
2024    "stateMutability": "view"
2025  },
2026  {
2027    "type": "function",
2028    "name": "getAllocatableMagnitude",
2029    "inputs": [
2030      {
2031        "name": "operator",
2032        "type": "address",
2033        "internalType": "address"
2034      },
2035      {
2036        "name": "strategy",
2037        "type": "address",
2038        "internalType": "contract IStrategy"
2039      }
2040    ],
2041    "outputs": [
2042      {
2043        "name": "",
2044        "type": "uint64",
2045        "internalType": "uint64"
2046      }
2047    ],
2048    "stateMutability": "view"
2049  },
2050  {
2051    "type": "function",
2052    "name": "getAllocatedSets",
2053    "inputs": [
2054      {
2055        "name": "operator",
2056        "type": "address",
2057        "internalType": "address"
2058      }
2059    ],
2060    "outputs": [
2061      {
2062        "name": "",
2063        "type": "tuple[]",
2064        "internalType": "struct OperatorSet[]",
2065        "components": [
2066          {
2067            "name": "avs",
2068            "type": "address",
2069            "internalType": "address"
2070          },
2071          {
2072            "name": "id",
2073            "type": "uint32",
2074            "internalType": "uint32"
2075          }
2076        ]
2077      }
2078    ],
2079    "stateMutability": "view"
2080  },
2081  {
2082    "type": "function",
2083    "name": "getAllocatedStake",
2084    "inputs": [
2085      {
2086        "name": "operatorSet",
2087        "type": "tuple",
2088        "internalType": "struct OperatorSet",
2089        "components": [
2090          {
2091            "name": "avs",
2092            "type": "address",
2093            "internalType": "address"
2094          },
2095          {
2096            "name": "id",
2097            "type": "uint32",
2098            "internalType": "uint32"
2099          }
2100        ]
2101      },
2102      {
2103        "name": "operators",
2104        "type": "address[]",
2105        "internalType": "address[]"
2106      },
2107      {
2108        "name": "strategies",
2109        "type": "address[]",
2110        "internalType": "contract IStrategy[]"
2111      }
2112    ],
2113    "outputs": [
2114      {
2115        "name": "",
2116        "type": "uint256[][]",
2117        "internalType": "uint256[][]"
2118      }
2119    ],
2120    "stateMutability": "view"
2121  },
2122  {
2123    "type": "function",
2124    "name": "getAllocatedStrategies",
2125    "inputs": [
2126      {
2127        "name": "operator",
2128        "type": "address",
2129        "internalType": "address"
2130      },
2131      {
2132        "name": "operatorSet",
2133        "type": "tuple",
2134        "internalType": "struct OperatorSet",
2135        "components": [
2136          {
2137            "name": "avs",
2138            "type": "address",
2139            "internalType": "address"
2140          },
2141          {
2142            "name": "id",
2143            "type": "uint32",
2144            "internalType": "uint32"
2145          }
2146        ]
2147      }
2148    ],
2149    "outputs": [
2150      {
2151        "name": "",
2152        "type": "address[]",
2153        "internalType": "contract IStrategy[]"
2154      }
2155    ],
2156    "stateMutability": "view"
2157  },
2158  {
2159    "type": "function",
2160    "name": "getAllocation",
2161    "inputs": [
2162      {
2163        "name": "operator",
2164        "type": "address",
2165        "internalType": "address"
2166      },
2167      {
2168        "name": "operatorSet",
2169        "type": "tuple",
2170        "internalType": "struct OperatorSet",
2171        "components": [
2172          {
2173            "name": "avs",
2174            "type": "address",
2175            "internalType": "address"
2176          },
2177          {
2178            "name": "id",
2179            "type": "uint32",
2180            "internalType": "uint32"
2181          }
2182        ]
2183      },
2184      {
2185        "name": "strategy",
2186        "type": "address",
2187        "internalType": "contract IStrategy"
2188      }
2189    ],
2190    "outputs": [
2191      {
2192        "name": "",
2193        "type": "tuple",
2194        "internalType": "struct IAllocationManagerTypes.Allocation",
2195        "components": [
2196          {
2197            "name": "currentMagnitude",
2198            "type": "uint64",
2199            "internalType": "uint64"
2200          },
2201          {
2202            "name": "pendingDiff",
2203            "type": "int128",
2204            "internalType": "int128"
2205          },
2206          {
2207            "name": "effectBlock",
2208            "type": "uint32",
2209            "internalType": "uint32"
2210          }
2211        ]
2212      }
2213    ],
2214    "stateMutability": "view"
2215  },
2216  {
2217    "type": "function",
2218    "name": "getAllocationDelay",
2219    "inputs": [
2220      {
2221        "name": "operator",
2222        "type": "address",
2223        "internalType": "address"
2224      }
2225    ],
2226    "outputs": [
2227      {
2228        "name": "",
2229        "type": "bool",
2230        "internalType": "bool"
2231      },
2232      {
2233        "name": "",
2234        "type": "uint32",
2235        "internalType": "uint32"
2236      }
2237    ],
2238    "stateMutability": "view"
2239  },
2240  {
2241    "type": "function",
2242    "name": "getAllocations",
2243    "inputs": [
2244      {
2245        "name": "operators",
2246        "type": "address[]",
2247        "internalType": "address[]"
2248      },
2249      {
2250        "name": "operatorSet",
2251        "type": "tuple",
2252        "internalType": "struct OperatorSet",
2253        "components": [
2254          {
2255            "name": "avs",
2256            "type": "address",
2257            "internalType": "address"
2258          },
2259          {
2260            "name": "id",
2261            "type": "uint32",
2262            "internalType": "uint32"
2263          }
2264        ]
2265      },
2266      {
2267        "name": "strategy",
2268        "type": "address",
2269        "internalType": "contract IStrategy"
2270      }
2271    ],
2272    "outputs": [
2273      {
2274        "name": "",
2275        "type": "tuple[]",
2276        "internalType": "struct IAllocationManagerTypes.Allocation[]",
2277        "components": [
2278          {
2279            "name": "currentMagnitude",
2280            "type": "uint64",
2281            "internalType": "uint64"
2282          },
2283          {
2284            "name": "pendingDiff",
2285            "type": "int128",
2286            "internalType": "int128"
2287          },
2288          {
2289            "name": "effectBlock",
2290            "type": "uint32",
2291            "internalType": "uint32"
2292          }
2293        ]
2294      }
2295    ],
2296    "stateMutability": "view"
2297  },
2298  {
2299    "type": "function",
2300    "name": "getEncumberedMagnitude",
2301    "inputs": [
2302      {
2303        "name": "operator",
2304        "type": "address",
2305        "internalType": "address"
2306      },
2307      {
2308        "name": "strategy",
2309        "type": "address",
2310        "internalType": "contract IStrategy"
2311      }
2312    ],
2313    "outputs": [
2314      {
2315        "name": "",
2316        "type": "uint64",
2317        "internalType": "uint64"
2318      }
2319    ],
2320    "stateMutability": "view"
2321  },
2322  {
2323    "type": "function",
2324    "name": "getMaxMagnitude",
2325    "inputs": [
2326      {
2327        "name": "operator",
2328        "type": "address",
2329        "internalType": "address"
2330      },
2331      {
2332        "name": "strategy",
2333        "type": "address",
2334        "internalType": "contract IStrategy"
2335      }
2336    ],
2337    "outputs": [
2338      {
2339        "name": "",
2340        "type": "uint64",
2341        "internalType": "uint64"
2342      }
2343    ],
2344    "stateMutability": "view"
2345  },
2346  {
2347    "type": "function",
2348    "name": "getMaxMagnitudes",
2349    "inputs": [
2350      {
2351        "name": "operators",
2352        "type": "address[]",
2353        "internalType": "address[]"
2354      },
2355      {
2356        "name": "strategy",
2357        "type": "address",
2358        "internalType": "contract IStrategy"
2359      }
2360    ],
2361    "outputs": [
2362      {
2363        "name": "",
2364        "type": "uint64[]",
2365        "internalType": "uint64[]"
2366      }
2367    ],
2368    "stateMutability": "view"
2369  },
2370  {
2371    "type": "function",
2372    "name": "getMaxMagnitudes",
2373    "inputs": [
2374      {
2375        "name": "operator",
2376        "type": "address",
2377        "internalType": "address"
2378      },
2379      {
2380        "name": "strategies",
2381        "type": "address[]",
2382        "internalType": "contract IStrategy[]"
2383      }
2384    ],
2385    "outputs": [
2386      {
2387        "name": "",
2388        "type": "uint64[]",
2389        "internalType": "uint64[]"
2390      }
2391    ],
2392    "stateMutability": "view"
2393  },
2394  {
2395    "type": "function",
2396    "name": "getMaxMagnitudesAtBlock",
2397    "inputs": [
2398      {
2399        "name": "operator",
2400        "type": "address",
2401        "internalType": "address"
2402      },
2403      {
2404        "name": "strategies",
2405        "type": "address[]",
2406        "internalType": "contract IStrategy[]"
2407      },
2408      {
2409        "name": "blockNumber",
2410        "type": "uint32",
2411        "internalType": "uint32"
2412      }
2413    ],
2414    "outputs": [
2415      {
2416        "name": "",
2417        "type": "uint64[]",
2418        "internalType": "uint64[]"
2419      }
2420    ],
2421    "stateMutability": "view"
2422  },
2423  {
2424    "type": "function",
2425    "name": "getMemberCount",
2426    "inputs": [
2427      {
2428        "name": "operatorSet",
2429        "type": "tuple",
2430        "internalType": "struct OperatorSet",
2431        "components": [
2432          {
2433            "name": "avs",
2434            "type": "address",
2435            "internalType": "address"
2436          },
2437          {
2438            "name": "id",
2439            "type": "uint32",
2440            "internalType": "uint32"
2441          }
2442        ]
2443      }
2444    ],
2445    "outputs": [
2446      {
2447        "name": "",
2448        "type": "uint256",
2449        "internalType": "uint256"
2450      }
2451    ],
2452    "stateMutability": "view"
2453  },
2454  {
2455    "type": "function",
2456    "name": "getMembers",
2457    "inputs": [
2458      {
2459        "name": "operatorSet",
2460        "type": "tuple",
2461        "internalType": "struct OperatorSet",
2462        "components": [
2463          {
2464            "name": "avs",
2465            "type": "address",
2466            "internalType": "address"
2467          },
2468          {
2469            "name": "id",
2470            "type": "uint32",
2471            "internalType": "uint32"
2472          }
2473        ]
2474      }
2475    ],
2476    "outputs": [
2477      {
2478        "name": "",
2479        "type": "address[]",
2480        "internalType": "address[]"
2481      }
2482    ],
2483    "stateMutability": "view"
2484  },
2485  {
2486    "type": "function",
2487    "name": "getMinimumSlashableStake",
2488    "inputs": [
2489      {
2490        "name": "operatorSet",
2491        "type": "tuple",
2492        "internalType": "struct OperatorSet",
2493        "components": [
2494          {
2495            "name": "avs",
2496            "type": "address",
2497            "internalType": "address"
2498          },
2499          {
2500            "name": "id",
2501            "type": "uint32",
2502            "internalType": "uint32"
2503          }
2504        ]
2505      },
2506      {
2507        "name": "operators",
2508        "type": "address[]",
2509        "internalType": "address[]"
2510      },
2511      {
2512        "name": "strategies",
2513        "type": "address[]",
2514        "internalType": "contract IStrategy[]"
2515      },
2516      {
2517        "name": "futureBlock",
2518        "type": "uint32",
2519        "internalType": "uint32"
2520      }
2521    ],
2522    "outputs": [
2523      {
2524        "name": "slashableStake",
2525        "type": "uint256[][]",
2526        "internalType": "uint256[][]"
2527      }
2528    ],
2529    "stateMutability": "view"
2530  },
2531  {
2532    "type": "function",
2533    "name": "getOperatorSetCount",
2534    "inputs": [
2535      {
2536        "name": "avs",
2537        "type": "address",
2538        "internalType": "address"
2539      }
2540    ],
2541    "outputs": [
2542      {
2543        "name": "",
2544        "type": "uint256",
2545        "internalType": "uint256"
2546      }
2547    ],
2548    "stateMutability": "view"
2549  },
2550  {
2551    "type": "function",
2552    "name": "getRegisteredSets",
2553    "inputs": [
2554      {
2555        "name": "operator",
2556        "type": "address",
2557        "internalType": "address"
2558      }
2559    ],
2560    "outputs": [
2561      {
2562        "name": "",
2563        "type": "tuple[]",
2564        "internalType": "struct OperatorSet[]",
2565        "components": [
2566          {
2567            "name": "avs",
2568            "type": "address",
2569            "internalType": "address"
2570          },
2571          {
2572            "name": "id",
2573            "type": "uint32",
2574            "internalType": "uint32"
2575          }
2576        ]
2577      }
2578    ],
2579    "stateMutability": "view"
2580  },
2581  {
2582    "type": "function",
2583    "name": "getStrategiesInOperatorSet",
2584    "inputs": [
2585      {
2586        "name": "operatorSet",
2587        "type": "tuple",
2588        "internalType": "struct OperatorSet",
2589        "components": [
2590          {
2591            "name": "avs",
2592            "type": "address",
2593            "internalType": "address"
2594          },
2595          {
2596            "name": "id",
2597            "type": "uint32",
2598            "internalType": "uint32"
2599          }
2600        ]
2601      }
2602    ],
2603    "outputs": [
2604      {
2605        "name": "",
2606        "type": "address[]",
2607        "internalType": "contract IStrategy[]"
2608      }
2609    ],
2610    "stateMutability": "view"
2611  },
2612  {
2613    "type": "function",
2614    "name": "getStrategyAllocations",
2615    "inputs": [
2616      {
2617        "name": "operator",
2618        "type": "address",
2619        "internalType": "address"
2620      },
2621      {
2622        "name": "strategy",
2623        "type": "address",
2624        "internalType": "contract IStrategy"
2625      }
2626    ],
2627    "outputs": [
2628      {
2629        "name": "",
2630        "type": "tuple[]",
2631        "internalType": "struct OperatorSet[]",
2632        "components": [
2633          {
2634            "name": "avs",
2635            "type": "address",
2636            "internalType": "address"
2637          },
2638          {
2639            "name": "id",
2640            "type": "uint32",
2641            "internalType": "uint32"
2642          }
2643        ]
2644      },
2645      {
2646        "name": "",
2647        "type": "tuple[]",
2648        "internalType": "struct IAllocationManagerTypes.Allocation[]",
2649        "components": [
2650          {
2651            "name": "currentMagnitude",
2652            "type": "uint64",
2653            "internalType": "uint64"
2654          },
2655          {
2656            "name": "pendingDiff",
2657            "type": "int128",
2658            "internalType": "int128"
2659          },
2660          {
2661            "name": "effectBlock",
2662            "type": "uint32",
2663            "internalType": "uint32"
2664          }
2665        ]
2666      }
2667    ],
2668    "stateMutability": "view"
2669  },
2670  {
2671    "type": "function",
2672    "name": "initialize",
2673    "inputs": [
2674      {
2675        "name": "initialOwner",
2676        "type": "address",
2677        "internalType": "address"
2678      },
2679      {
2680        "name": "initialPausedStatus",
2681        "type": "uint256",
2682        "internalType": "uint256"
2683      }
2684    ],
2685    "outputs": [],
2686    "stateMutability": "nonpayable"
2687  },
2688  {
2689    "type": "function",
2690    "name": "isMemberOfOperatorSet",
2691    "inputs": [
2692      {
2693        "name": "operator",
2694        "type": "address",
2695        "internalType": "address"
2696      },
2697      {
2698        "name": "operatorSet",
2699        "type": "tuple",
2700        "internalType": "struct OperatorSet",
2701        "components": [
2702          {
2703            "name": "avs",
2704            "type": "address",
2705            "internalType": "address"
2706          },
2707          {
2708            "name": "id",
2709            "type": "uint32",
2710            "internalType": "uint32"
2711          }
2712        ]
2713      }
2714    ],
2715    "outputs": [
2716      {
2717        "name": "",
2718        "type": "bool",
2719        "internalType": "bool"
2720      }
2721    ],
2722    "stateMutability": "view"
2723  },
2724  {
2725    "type": "function",
2726    "name": "isOperatorSet",
2727    "inputs": [
2728      {
2729        "name": "operatorSet",
2730        "type": "tuple",
2731        "internalType": "struct OperatorSet",
2732        "components": [
2733          {
2734            "name": "avs",
2735            "type": "address",
2736            "internalType": "address"
2737          },
2738          {
2739            "name": "id",
2740            "type": "uint32",
2741            "internalType": "uint32"
2742          }
2743        ]
2744      }
2745    ],
2746    "outputs": [
2747      {
2748        "name": "",
2749        "type": "bool",
2750        "internalType": "bool"
2751      }
2752    ],
2753    "stateMutability": "view"
2754  },
2755  {
2756    "type": "function",
2757    "name": "isOperatorSlashable",
2758    "inputs": [
2759      {
2760        "name": "operator",
2761        "type": "address",
2762        "internalType": "address"
2763      },
2764      {
2765        "name": "operatorSet",
2766        "type": "tuple",
2767        "internalType": "struct OperatorSet",
2768        "components": [
2769          {
2770            "name": "avs",
2771            "type": "address",
2772            "internalType": "address"
2773          },
2774          {
2775            "name": "id",
2776            "type": "uint32",
2777            "internalType": "uint32"
2778          }
2779        ]
2780      }
2781    ],
2782    "outputs": [
2783      {
2784        "name": "",
2785        "type": "bool",
2786        "internalType": "bool"
2787      }
2788    ],
2789    "stateMutability": "view"
2790  },
2791  {
2792    "type": "function",
2793    "name": "modifyAllocations",
2794    "inputs": [
2795      {
2796        "name": "operator",
2797        "type": "address",
2798        "internalType": "address"
2799      },
2800      {
2801        "name": "params",
2802        "type": "tuple[]",
2803        "internalType": "struct IAllocationManagerTypes.AllocateParams[]",
2804        "components": [
2805          {
2806            "name": "operatorSet",
2807            "type": "tuple",
2808            "internalType": "struct OperatorSet",
2809            "components": [
2810              {
2811                "name": "avs",
2812                "type": "address",
2813                "internalType": "address"
2814              },
2815              {
2816                "name": "id",
2817                "type": "uint32",
2818                "internalType": "uint32"
2819              }
2820            ]
2821          },
2822          {
2823            "name": "strategies",
2824            "type": "address[]",
2825            "internalType": "contract IStrategy[]"
2826          },
2827          {
2828            "name": "newMagnitudes",
2829            "type": "uint64[]",
2830            "internalType": "uint64[]"
2831          }
2832        ]
2833      }
2834    ],
2835    "outputs": [],
2836    "stateMutability": "nonpayable"
2837  },
2838  {
2839    "type": "function",
2840    "name": "owner",
2841    "inputs": [],
2842    "outputs": [
2843      {
2844        "name": "",
2845        "type": "address",
2846        "internalType": "address"
2847      }
2848    ],
2849    "stateMutability": "view"
2850  },
2851  {
2852    "type": "function",
2853    "name": "pause",
2854    "inputs": [
2855      {
2856        "name": "newPausedStatus",
2857        "type": "uint256",
2858        "internalType": "uint256"
2859      }
2860    ],
2861    "outputs": [],
2862    "stateMutability": "nonpayable"
2863  },
2864  {
2865    "type": "function",
2866    "name": "pauseAll",
2867    "inputs": [],
2868    "outputs": [],
2869    "stateMutability": "nonpayable"
2870  },
2871  {
2872    "type": "function",
2873    "name": "paused",
2874    "inputs": [
2875      {
2876        "name": "index",
2877        "type": "uint8",
2878        "internalType": "uint8"
2879      }
2880    ],
2881    "outputs": [
2882      {
2883        "name": "",
2884        "type": "bool",
2885        "internalType": "bool"
2886      }
2887    ],
2888    "stateMutability": "view"
2889  },
2890  {
2891    "type": "function",
2892    "name": "paused",
2893    "inputs": [],
2894    "outputs": [
2895      {
2896        "name": "",
2897        "type": "uint256",
2898        "internalType": "uint256"
2899      }
2900    ],
2901    "stateMutability": "view"
2902  },
2903  {
2904    "type": "function",
2905    "name": "pauserRegistry",
2906    "inputs": [],
2907    "outputs": [
2908      {
2909        "name": "",
2910        "type": "address",
2911        "internalType": "contract IPauserRegistry"
2912      }
2913    ],
2914    "stateMutability": "view"
2915  },
2916  {
2917    "type": "function",
2918    "name": "permissionController",
2919    "inputs": [],
2920    "outputs": [
2921      {
2922        "name": "",
2923        "type": "address",
2924        "internalType": "contract IPermissionController"
2925      }
2926    ],
2927    "stateMutability": "view"
2928  },
2929  {
2930    "type": "function",
2931    "name": "registerForOperatorSets",
2932    "inputs": [
2933      {
2934        "name": "operator",
2935        "type": "address",
2936        "internalType": "address"
2937      },
2938      {
2939        "name": "params",
2940        "type": "tuple",
2941        "internalType": "struct IAllocationManagerTypes.RegisterParams",
2942        "components": [
2943          {
2944            "name": "avs",
2945            "type": "address",
2946            "internalType": "address"
2947          },
2948          {
2949            "name": "operatorSetIds",
2950            "type": "uint32[]",
2951            "internalType": "uint32[]"
2952          },
2953          {
2954            "name": "data",
2955            "type": "bytes",
2956            "internalType": "bytes"
2957          }
2958        ]
2959      }
2960    ],
2961    "outputs": [],
2962    "stateMutability": "nonpayable"
2963  },
2964  {
2965    "type": "function",
2966    "name": "removeStrategiesFromOperatorSet",
2967    "inputs": [
2968      {
2969        "name": "avs",
2970        "type": "address",
2971        "internalType": "address"
2972      },
2973      {
2974        "name": "operatorSetId",
2975        "type": "uint32",
2976        "internalType": "uint32"
2977      },
2978      {
2979        "name": "strategies",
2980        "type": "address[]",
2981        "internalType": "contract IStrategy[]"
2982      }
2983    ],
2984    "outputs": [],
2985    "stateMutability": "nonpayable"
2986  },
2987  {
2988    "type": "function",
2989    "name": "renounceOwnership",
2990    "inputs": [],
2991    "outputs": [],
2992    "stateMutability": "nonpayable"
2993  },
2994  {
2995    "type": "function",
2996    "name": "setAVSRegistrar",
2997    "inputs": [
2998      {
2999        "name": "avs",
3000        "type": "address",
3001        "internalType": "address"
3002      },
3003      {
3004        "name": "registrar",
3005        "type": "address",
3006        "internalType": "contract IAVSRegistrar"
3007      }
3008    ],
3009    "outputs": [],
3010    "stateMutability": "nonpayable"
3011  },
3012  {
3013    "type": "function",
3014    "name": "setAllocationDelay",
3015    "inputs": [
3016      {
3017        "name": "operator",
3018        "type": "address",
3019        "internalType": "address"
3020      },
3021      {
3022        "name": "delay",
3023        "type": "uint32",
3024        "internalType": "uint32"
3025      }
3026    ],
3027    "outputs": [],
3028    "stateMutability": "nonpayable"
3029  },
3030  {
3031    "type": "function",
3032    "name": "slashOperator",
3033    "inputs": [
3034      {
3035        "name": "avs",
3036        "type": "address",
3037        "internalType": "address"
3038      },
3039      {
3040        "name": "params",
3041        "type": "tuple",
3042        "internalType": "struct IAllocationManagerTypes.SlashingParams",
3043        "components": [
3044          {
3045            "name": "operator",
3046            "type": "address",
3047            "internalType": "address"
3048          },
3049          {
3050            "name": "operatorSetId",
3051            "type": "uint32",
3052            "internalType": "uint32"
3053          },
3054          {
3055            "name": "strategies",
3056            "type": "address[]",
3057            "internalType": "contract IStrategy[]"
3058          },
3059          {
3060            "name": "wadsToSlash",
3061            "type": "uint256[]",
3062            "internalType": "uint256[]"
3063          },
3064          {
3065            "name": "description",
3066            "type": "string",
3067            "internalType": "string"
3068          }
3069        ]
3070      }
3071    ],
3072    "outputs": [],
3073    "stateMutability": "nonpayable"
3074  },
3075  {
3076    "type": "function",
3077    "name": "transferOwnership",
3078    "inputs": [
3079      {
3080        "name": "newOwner",
3081        "type": "address",
3082        "internalType": "address"
3083      }
3084    ],
3085    "outputs": [],
3086    "stateMutability": "nonpayable"
3087  },
3088  {
3089    "type": "function",
3090    "name": "unpause",
3091    "inputs": [
3092      {
3093        "name": "newPausedStatus",
3094        "type": "uint256",
3095        "internalType": "uint256"
3096      }
3097    ],
3098    "outputs": [],
3099    "stateMutability": "nonpayable"
3100  },
3101  {
3102    "type": "function",
3103    "name": "updateAVSMetadataURI",
3104    "inputs": [
3105      {
3106        "name": "avs",
3107        "type": "address",
3108        "internalType": "address"
3109      },
3110      {
3111        "name": "metadataURI",
3112        "type": "string",
3113        "internalType": "string"
3114      }
3115    ],
3116    "outputs": [],
3117    "stateMutability": "nonpayable"
3118  },
3119  {
3120    "type": "function",
3121    "name": "version",
3122    "inputs": [],
3123    "outputs": [
3124      {
3125        "name": "",
3126        "type": "string",
3127        "internalType": "string"
3128      }
3129    ],
3130    "stateMutability": "view"
3131  },
3132  {
3133    "type": "event",
3134    "name": "AVSMetadataURIUpdated",
3135    "inputs": [
3136      {
3137        "name": "avs",
3138        "type": "address",
3139        "indexed": true,
3140        "internalType": "address"
3141      },
3142      {
3143        "name": "metadataURI",
3144        "type": "string",
3145        "indexed": false,
3146        "internalType": "string"
3147      }
3148    ],
3149    "anonymous": false
3150  },
3151  {
3152    "type": "event",
3153    "name": "AVSRegistrarSet",
3154    "inputs": [
3155      {
3156        "name": "avs",
3157        "type": "address",
3158        "indexed": false,
3159        "internalType": "address"
3160      },
3161      {
3162        "name": "registrar",
3163        "type": "address",
3164        "indexed": false,
3165        "internalType": "contract IAVSRegistrar"
3166      }
3167    ],
3168    "anonymous": false
3169  },
3170  {
3171    "type": "event",
3172    "name": "AllocationDelaySet",
3173    "inputs": [
3174      {
3175        "name": "operator",
3176        "type": "address",
3177        "indexed": false,
3178        "internalType": "address"
3179      },
3180      {
3181        "name": "delay",
3182        "type": "uint32",
3183        "indexed": false,
3184        "internalType": "uint32"
3185      },
3186      {
3187        "name": "effectBlock",
3188        "type": "uint32",
3189        "indexed": false,
3190        "internalType": "uint32"
3191      }
3192    ],
3193    "anonymous": false
3194  },
3195  {
3196    "type": "event",
3197    "name": "AllocationUpdated",
3198    "inputs": [
3199      {
3200        "name": "operator",
3201        "type": "address",
3202        "indexed": false,
3203        "internalType": "address"
3204      },
3205      {
3206        "name": "operatorSet",
3207        "type": "tuple",
3208        "indexed": false,
3209        "internalType": "struct OperatorSet",
3210        "components": [
3211          {
3212            "name": "avs",
3213            "type": "address",
3214            "internalType": "address"
3215          },
3216          {
3217            "name": "id",
3218            "type": "uint32",
3219            "internalType": "uint32"
3220          }
3221        ]
3222      },
3223      {
3224        "name": "strategy",
3225        "type": "address",
3226        "indexed": false,
3227        "internalType": "contract IStrategy"
3228      },
3229      {
3230        "name": "magnitude",
3231        "type": "uint64",
3232        "indexed": false,
3233        "internalType": "uint64"
3234      },
3235      {
3236        "name": "effectBlock",
3237        "type": "uint32",
3238        "indexed": false,
3239        "internalType": "uint32"
3240      }
3241    ],
3242    "anonymous": false
3243  },
3244  {
3245    "type": "event",
3246    "name": "EncumberedMagnitudeUpdated",
3247    "inputs": [
3248      {
3249        "name": "operator",
3250        "type": "address",
3251        "indexed": false,
3252        "internalType": "address"
3253      },
3254      {
3255        "name": "strategy",
3256        "type": "address",
3257        "indexed": false,
3258        "internalType": "contract IStrategy"
3259      },
3260      {
3261        "name": "encumberedMagnitude",
3262        "type": "uint64",
3263        "indexed": false,
3264        "internalType": "uint64"
3265      }
3266    ],
3267    "anonymous": false
3268  },
3269  {
3270    "type": "event",
3271    "name": "Initialized",
3272    "inputs": [
3273      {
3274        "name": "version",
3275        "type": "uint8",
3276        "indexed": false,
3277        "internalType": "uint8"
3278      }
3279    ],
3280    "anonymous": false
3281  },
3282  {
3283    "type": "event",
3284    "name": "MaxMagnitudeUpdated",
3285    "inputs": [
3286      {
3287        "name": "operator",
3288        "type": "address",
3289        "indexed": false,
3290        "internalType": "address"
3291      },
3292      {
3293        "name": "strategy",
3294        "type": "address",
3295        "indexed": false,
3296        "internalType": "contract IStrategy"
3297      },
3298      {
3299        "name": "maxMagnitude",
3300        "type": "uint64",
3301        "indexed": false,
3302        "internalType": "uint64"
3303      }
3304    ],
3305    "anonymous": false
3306  },
3307  {
3308    "type": "event",
3309    "name": "OperatorAddedToOperatorSet",
3310    "inputs": [
3311      {
3312        "name": "operator",
3313        "type": "address",
3314        "indexed": true,
3315        "internalType": "address"
3316      },
3317      {
3318        "name": "operatorSet",
3319        "type": "tuple",
3320        "indexed": false,
3321        "internalType": "struct OperatorSet",
3322        "components": [
3323          {
3324            "name": "avs",
3325            "type": "address",
3326            "internalType": "address"
3327          },
3328          {
3329            "name": "id",
3330            "type": "uint32",
3331            "internalType": "uint32"
3332          }
3333        ]
3334      }
3335    ],
3336    "anonymous": false
3337  },
3338  {
3339    "type": "event",
3340    "name": "OperatorRemovedFromOperatorSet",
3341    "inputs": [
3342      {
3343        "name": "operator",
3344        "type": "address",
3345        "indexed": true,
3346        "internalType": "address"
3347      },
3348      {
3349        "name": "operatorSet",
3350        "type": "tuple",
3351        "indexed": false,
3352        "internalType": "struct OperatorSet",
3353        "components": [
3354          {
3355            "name": "avs",
3356            "type": "address",
3357            "internalType": "address"
3358          },
3359          {
3360            "name": "id",
3361            "type": "uint32",
3362            "internalType": "uint32"
3363          }
3364        ]
3365      }
3366    ],
3367    "anonymous": false
3368  },
3369  {
3370    "type": "event",
3371    "name": "OperatorSetCreated",
3372    "inputs": [
3373      {
3374        "name": "operatorSet",
3375        "type": "tuple",
3376        "indexed": false,
3377        "internalType": "struct OperatorSet",
3378        "components": [
3379          {
3380            "name": "avs",
3381            "type": "address",
3382            "internalType": "address"
3383          },
3384          {
3385            "name": "id",
3386            "type": "uint32",
3387            "internalType": "uint32"
3388          }
3389        ]
3390      }
3391    ],
3392    "anonymous": false
3393  },
3394  {
3395    "type": "event",
3396    "name": "OperatorSlashed",
3397    "inputs": [
3398      {
3399        "name": "operator",
3400        "type": "address",
3401        "indexed": false,
3402        "internalType": "address"
3403      },
3404      {
3405        "name": "operatorSet",
3406        "type": "tuple",
3407        "indexed": false,
3408        "internalType": "struct OperatorSet",
3409        "components": [
3410          {
3411            "name": "avs",
3412            "type": "address",
3413            "internalType": "address"
3414          },
3415          {
3416            "name": "id",
3417            "type": "uint32",
3418            "internalType": "uint32"
3419          }
3420        ]
3421      },
3422      {
3423        "name": "strategies",
3424        "type": "address[]",
3425        "indexed": false,
3426        "internalType": "contract IStrategy[]"
3427      },
3428      {
3429        "name": "wadSlashed",
3430        "type": "uint256[]",
3431        "indexed": false,
3432        "internalType": "uint256[]"
3433      },
3434      {
3435        "name": "description",
3436        "type": "string",
3437        "indexed": false,
3438        "internalType": "string"
3439      }
3440    ],
3441    "anonymous": false
3442  },
3443  {
3444    "type": "event",
3445    "name": "OwnershipTransferred",
3446    "inputs": [
3447      {
3448        "name": "previousOwner",
3449        "type": "address",
3450        "indexed": true,
3451        "internalType": "address"
3452      },
3453      {
3454        "name": "newOwner",
3455        "type": "address",
3456        "indexed": true,
3457        "internalType": "address"
3458      }
3459    ],
3460    "anonymous": false
3461  },
3462  {
3463    "type": "event",
3464    "name": "Paused",
3465    "inputs": [
3466      {
3467        "name": "account",
3468        "type": "address",
3469        "indexed": true,
3470        "internalType": "address"
3471      },
3472      {
3473        "name": "newPausedStatus",
3474        "type": "uint256",
3475        "indexed": false,
3476        "internalType": "uint256"
3477      }
3478    ],
3479    "anonymous": false
3480  },
3481  {
3482    "type": "event",
3483    "name": "StrategyAddedToOperatorSet",
3484    "inputs": [
3485      {
3486        "name": "operatorSet",
3487        "type": "tuple",
3488        "indexed": false,
3489        "internalType": "struct OperatorSet",
3490        "components": [
3491          {
3492            "name": "avs",
3493            "type": "address",
3494            "internalType": "address"
3495          },
3496          {
3497            "name": "id",
3498            "type": "uint32",
3499            "internalType": "uint32"
3500          }
3501        ]
3502      },
3503      {
3504        "name": "strategy",
3505        "type": "address",
3506        "indexed": false,
3507        "internalType": "contract IStrategy"
3508      }
3509    ],
3510    "anonymous": false
3511  },
3512  {
3513    "type": "event",
3514    "name": "StrategyRemovedFromOperatorSet",
3515    "inputs": [
3516      {
3517        "name": "operatorSet",
3518        "type": "tuple",
3519        "indexed": false,
3520        "internalType": "struct OperatorSet",
3521        "components": [
3522          {
3523            "name": "avs",
3524            "type": "address",
3525            "internalType": "address"
3526          },
3527          {
3528            "name": "id",
3529            "type": "uint32",
3530            "internalType": "uint32"
3531          }
3532        ]
3533      },
3534      {
3535        "name": "strategy",
3536        "type": "address",
3537        "indexed": false,
3538        "internalType": "contract IStrategy"
3539      }
3540    ],
3541    "anonymous": false
3542  },
3543  {
3544    "type": "event",
3545    "name": "Unpaused",
3546    "inputs": [
3547      {
3548        "name": "account",
3549        "type": "address",
3550        "indexed": true,
3551        "internalType": "address"
3552      },
3553      {
3554        "name": "newPausedStatus",
3555        "type": "uint256",
3556        "indexed": false,
3557        "internalType": "uint256"
3558      }
3559    ],
3560    "anonymous": false
3561  },
3562  {
3563    "type": "error",
3564    "name": "AlreadyMemberOfSet",
3565    "inputs": []
3566  },
3567  {
3568    "type": "error",
3569    "name": "CurrentlyPaused",
3570    "inputs": []
3571  },
3572  {
3573    "type": "error",
3574    "name": "Empty",
3575    "inputs": []
3576  },
3577  {
3578    "type": "error",
3579    "name": "InputAddressZero",
3580    "inputs": []
3581  },
3582  {
3583    "type": "error",
3584    "name": "InputArrayLengthMismatch",
3585    "inputs": []
3586  },
3587  {
3588    "type": "error",
3589    "name": "InsufficientMagnitude",
3590    "inputs": []
3591  },
3592  {
3593    "type": "error",
3594    "name": "InvalidAVSRegistrar",
3595    "inputs": []
3596  },
3597  {
3598    "type": "error",
3599    "name": "InvalidCaller",
3600    "inputs": []
3601  },
3602  {
3603    "type": "error",
3604    "name": "InvalidNewPausedStatus",
3605    "inputs": []
3606  },
3607  {
3608    "type": "error",
3609    "name": "InvalidOperator",
3610    "inputs": []
3611  },
3612  {
3613    "type": "error",
3614    "name": "InvalidOperatorSet",
3615    "inputs": []
3616  },
3617  {
3618    "type": "error",
3619    "name": "InvalidPermissions",
3620    "inputs": []
3621  },
3622  {
3623    "type": "error",
3624    "name": "InvalidShortString",
3625    "inputs": []
3626  },
3627  {
3628    "type": "error",
3629    "name": "InvalidSnapshotOrdering",
3630    "inputs": []
3631  },
3632  {
3633    "type": "error",
3634    "name": "InvalidWadToSlash",
3635    "inputs": []
3636  },
3637  {
3638    "type": "error",
3639    "name": "ModificationAlreadyPending",
3640    "inputs": []
3641  },
3642  {
3643    "type": "error",
3644    "name": "NonexistentAVSMetadata",
3645    "inputs": []
3646  },
3647  {
3648    "type": "error",
3649    "name": "NotMemberOfSet",
3650    "inputs": []
3651  },
3652  {
3653    "type": "error",
3654    "name": "OnlyPauser",
3655    "inputs": []
3656  },
3657  {
3658    "type": "error",
3659    "name": "OnlyUnpauser",
3660    "inputs": []
3661  },
3662  {
3663    "type": "error",
3664    "name": "OperatorNotSlashable",
3665    "inputs": []
3666  },
3667  {
3668    "type": "error",
3669    "name": "OutOfBounds",
3670    "inputs": []
3671  },
3672  {
3673    "type": "error",
3674    "name": "SameMagnitude",
3675    "inputs": []
3676  },
3677  {
3678    "type": "error",
3679    "name": "StrategiesMustBeInAscendingOrder",
3680    "inputs": []
3681  },
3682  {
3683    "type": "error",
3684    "name": "StrategyAlreadyInOperatorSet",
3685    "inputs": []
3686  },
3687  {
3688    "type": "error",
3689    "name": "StrategyNotInOperatorSet",
3690    "inputs": []
3691  },
3692  {
3693    "type": "error",
3694    "name": "StringTooLong",
3695    "inputs": [
3696      {
3697        "name": "str",
3698        "type": "string",
3699        "internalType": "string"
3700      }
3701    ]
3702  },
3703  {
3704    "type": "error",
3705    "name": "UninitializedAllocationDelay",
3706    "inputs": []
3707  }
3708]
3709```*/
3710#[allow(
3711    non_camel_case_types,
3712    non_snake_case,
3713    clippy::pub_underscore_fields,
3714    clippy::style,
3715    clippy::empty_structs_with_brackets
3716)]
3717pub mod AllocationManager {
3718    use super::*;
3719    use alloy::sol_types as alloy_sol_types;
3720    /// The creation / init bytecode of the contract.
3721    ///
3722    /// ```text
3723    ///0x610140604052348015610010575f5ffd5b50604051615f8f380380615f8f83398101604081905261002f91610208565b8084878585896001600160a01b03811661005c576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05263ffffffff91821660c0521660e052166101005261008d816100a5565b610120525061009a6100eb565b505050505050610368565b5f5f829050601f815111156100d8578260405163305a27a960e01b81526004016100cf9190610310565b60405180910390fd5b80516100e382610342565b179392505050565b5f54610100900460ff16156101525760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100cf565b5f5460ff908116146101a1575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101b7575f5ffd5b50565b805163ffffffff811681146101cd575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102005781810151838201526020016101e8565b50505f910152565b5f5f5f5f5f5f60c0878903121561021d575f5ffd5b8651610228816101a3565b6020880151909650610239816101a3565b604088015190955061024a816101a3565b9350610258606088016101ba565b9250610266608088016101ba565b60a08801519092506001600160401b03811115610281575f5ffd5b8701601f81018913610291575f5ffd5b80516001600160401b038111156102aa576102aa6101d2565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102d8576102d86101d2565b6040528181528282016020018b10156102ef575f5ffd5b6103008260208301602086016101e6565b8093505050509295509295509295565b602081525f825180602084015261032e8160408501602087016101e6565b601f01601f19169190910160400192915050565b80516020808301519190811015610362575f198160200360031b1b821691505b50919050565b60805160a05160c05160e0516101005161012051615b8c6104035f395f611ad901525f818161043501526134eb01525f81816105990152613d5501525f818161035201528181611f78015261266a01525f81816107180152818161148701528181611b0d01528181611b6f0152818161294d01526135ca01525f81816105c00152818161082d01528181611c21015261316e0152615b8c5ff3fe608060405234801561000f575f5ffd5b50600436106102a2575f3560e01c80636cfb44811161016c578063a9821821116100d5578063c221d8ae1161008f578063c221d8ae146106da578063cd6dc687146106ed578063d3d96ff414610700578063df5cf72314610713578063f2fde38b1461073a578063f605ce081461074d578063fabc1cbc14610760575f5ffd5b8063a98218211461064c578063adc2e3d91461065f578063b2447af714610672578063b66bd98914610685578063b9fbaed114610698578063ba1a84e5146106c7575f5ffd5b8063886f119511610126578063886f1195146105bb5780638ce64854146105e25780638da5cb5b1461060257806394d7d00c14610613578063952899ee14610626578063a9333ec814610639575f5ffd5b80636cfb4481146105285780636e3492b5146105535780636e875dba14610566578063715018a61461057957806379ae50cd146105815780637bc1ef6114610594575f5ffd5b80634177a87c1161020e57806354fd4d50116101c857806354fd4d50146104b057806356c483e6146104c5578063595c6a67146104d85780635ac86ab7146104e05780635c975abb14610503578063670d3ba214610515575f5ffd5b80634177a87c146104105780634657e26a146104305780634a10ffe5146104575780634b5046ef1461047757806350feea201461048a578063547afb871461049d575f5ffd5b80632981eb771161025f5780632981eb771461034d5780632b453a9a146103895780632bab2c4a146103a9578063304c10cd146103bc57806336352057146103dc57806340120dab146103ef575f5ffd5b806310e1b9b8146102a65780631352c3e6146102cf578063136439dd146102f257806315fe502814610307578063260dc75814610327578063261f84e01461033a575b5f5ffd5b6102b96102b43660046149b7565b610773565b6040516102c69190614a29565b60405180910390f35b6102e26102dd366004614a37565b61079b565b60405190151581526020016102c6565b610305610300366004614a6b565b610816565b005b61031a610315366004614a82565b6108f0565b6040516102c69190614b00565b6102e2610335366004614b12565b610a07565b610305610348366004614b6c565b610a38565b6103747f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102c6565b61039c610397366004614c51565b610d13565b6040516102c69190614cf4565b61039c6103b7366004614d57565b610d29565b6103cf6103ca366004614a82565b610dc8565b6040516102c69190614ddb565b6103056103ea366004614def565b610df7565b6104026103fd366004614e41565b6115db565b6040516102c6929190614ea8565b61042361041e366004614b12565b611746565b6040516102c69190614f05565b6103cf7f000000000000000000000000000000000000000000000000000000000000000081565b61046a610465366004614f17565b61176a565b6040516102c69190614f5a565b610305610485366004614fa5565b611812565b610305610498366004615025565b6118cc565b61046a6104ab366004615083565b611a2a565b6104b8611ad2565b6040516102c691906150c5565b6103056104d3366004615110565b611b02565b610305611c0a565b6102e26104ee36600461513a565b606654600160ff9092169190911b9081161490565b6066545b6040519081526020016102c6565b6102e2610523366004614a37565b611cbe565b61053b610536366004614e41565b611ccf565b6040516001600160401b0390911681526020016102c6565b610305610561366004615170565b611ce4565b610423610574366004614b12565b6120c5565b6103056120d6565b61031a61058f366004614a82565b6120e7565b6103747f000000000000000000000000000000000000000000000000000000000000000081565b6103cf7f000000000000000000000000000000000000000000000000000000000000000081565b6105f56105f03660046151a1565b6121c1565b6040516102c691906151e4565b6033546001600160a01b03166103cf565b61046a6106213660046151f6565b61226d565b610305610634366004615251565b612359565b61053b610647366004614e41565b612805565b61030561065a3660046153fa565b612834565b61030561066d366004615478565b6128e6565b610507610680366004614b12565b612c46565b610305610693366004615025565b612c68565b6106ab6106a6366004614a82565b612dc2565b60408051921515835263ffffffff9091166020830152016102c6565b6105076106d5366004614a82565b612e5a565b6104236106e8366004614a37565b612e7a565b6103056106fb3660046154ba565b612ea3565b61030561070e366004614e41565b612fc0565b6103cf7f000000000000000000000000000000000000000000000000000000000000000081565b610305610748366004614a82565b6130e7565b61053b61075b366004614e41565b613160565b61030561076e366004614a6b565b61316c565b61077b6148a8565b5f61078f8561078986613282565b856132e5565b925050505b9392505050565b6001600160a01b0382165f908152609e602052604081208190816107be85613282565b815260208082019290925260409081015f2081518083019092525460ff8116151580835261010090910463ffffffff169282019290925291508061080c5750806020015163ffffffff164311155b9150505b92915050565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90610862903390600401614ddb565b602060405180830381865afa15801561087d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a191906154e4565b6108be57604051631d77d47760e21b815260040160405180910390fd5b60665481811681146108e35760405163c61dca5d60e01b815260040160405180910390fd5b6108ec82613445565b5050565b6001600160a01b0381165f908152609d602052604081206060919061091490613482565b90505f816001600160401b0381111561092f5761092f6148db565b60405190808252806020026020018201604052801561097357816020015b604080518082019091525f808252602082015281526020019060019003908161094d5790505b5090505f5b828110156109ff576001600160a01b0385165f908152609d602052604090206109da906109a5908361348b565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b8282815181106109ec576109ec615503565b6020908102919091010152600101610978565b509392505050565b60208082015182516001600160a01b03165f9081526098909252604082206108109163ffffffff9081169061349616565b82610a42816134ad565b610a5f5760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff16610a97576040516348f7dbb960e01b815260040160405180910390fd5b5f5b82811015610d0c575f6040518060400160405280876001600160a01b03168152602001868685818110610ace57610ace615503565b9050602002810190610ae09190615517565b610aee906020810190615535565b63ffffffff168152509050610b38816020015163ffffffff1660985f896001600160a01b03166001600160a01b031681526020019081526020015f2061355790919063ffffffff16565b610b5557604051631fb1705560e21b815260040160405180910390fd5b7f31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c6040518060400160405280886001600160a01b03168152602001836020015163ffffffff16815250604051610bab919061554e565b60405180910390a15f610bbd82613282565b90505f5b868685818110610bd357610bd3615503565b9050602002810190610be59190615517565b610bf390602081019061555c565b9050811015610d0157610c69878786818110610c1157610c11615503565b9050602002810190610c239190615517565b610c3190602081019061555c565b83818110610c4157610c41615503565b9050602002016020810190610c569190614a82565b5f84815260996020526040902090613562565b507f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83888887818110610c9e57610c9e615503565b9050602002810190610cb09190615517565b610cbe90602081019061555c565b84818110610cce57610cce615503565b9050602002016020810190610ce39190614a82565b604051610cf19291906155a1565b60405180910390a1600101610bc1565b505050600101610a99565b5050505050565b6060610d2184848443613576565b949350505050565b6060610d3785858585613576565b90505f5b8451811015610dbf57610d67858281518110610d5957610d59615503565b60200260200101518761079b565b610db7575f5b8451811015610db5575f838381518110610d8957610d89615503565b60200260200101518281518110610da257610da2615503565b6020908102919091010152600101610d6d565b505b600101610d3b565b50949350505050565b6001600160a01b038082165f908152609760205260408120549091168015610df05780610794565b5090919050565b606654600190600290811603610e205760405163840a48d560e01b815260040160405180910390fd5b82610e2a816134ad565b610e475760405163932d94f760e01b815260040160405180910390fd5b5f6040518060400160405280866001600160a01b03168152602001856020016020810190610e759190615535565b63ffffffff1690529050610e8c606085018561555c565b9050610e9b604086018661555c565b905014610ebb576040516343714afd60e01b815260040160405180910390fd5b60208082015182516001600160a01b03165f90815260989092526040909120610eed9163ffffffff9081169061349616565b610f0a57604051631fb1705560e21b815260040160405180910390fd5b610f20610f1a6020860186614a82565b8261079b565b610f3d5760405163ebbff49760e01b815260040160405180910390fd5b5f610f4b604086018661555c565b90506001600160401b03811115610f6457610f646148db565b604051908082528060200260200182016040528015610f8d578160200160208202803683370190505b5090505f5b610f9f604087018761555c565b905081101561156d578015806110325750610fbd604087018761555c565b610fc86001846155db565b818110610fd757610fd7615503565b9050602002016020810190610fec9190614a82565b6001600160a01b0316611002604088018861555c565b8381811061101257611012615503565b90506020020160208101906110279190614a82565b6001600160a01b0316115b61104f57604051639f1c805360e01b815260040160405180910390fd5b61105c606087018761555c565b8281811061106c5761106c615503565b905060200201355f1080156110ac5750670de0b6b3a7640000611092606088018861555c565b838181106110a2576110a2615503565b9050602002013511155b6110c957604051631353603160e01b815260040160405180910390fd5b6111256110d9604088018861555c565b838181106110e9576110e9615503565b90506020020160208101906110fe9190614a82565b60995f61110a87613282565b81526020019081526020015f2061386390919063ffffffff16565b611142576040516331bc342760e11b815260040160405180910390fd5b5f8061119461115460208a018a614a82565b61115d87613282565b61116a60408c018c61555c565b8781811061117a5761117a615503565b905060200201602081019061118f9190614a82565b6132e5565b805191935091506001600160401b03165f036111b1575050611565565b5f6111ec6111c260608b018b61555c565b868181106111d2576111d2615503565b85516001600160401b031692602090910201359050613884565b83519091506112076001600160401b0380841690831661389a565b86868151811061121957611219615503565b60200260200101818152505081835f0181815161123691906155ee565b6001600160401b03169052508351829085906112539083906155ee565b6001600160401b03169052506020840180518391906112739083906155ee565b6001600160401b031690525060208301515f600f9190910b1215611378575f6112d66112a260608d018d61555c565b888181106112b2576112b2615503565b9050602002013585602001516112c79061560d565b6001600160801b031690613884565b9050806001600160401b0316846020018181516112f3919061562e565b600f0b9052505f516020615b375f395f51905f5261131460208d018d614a82565b8961132260408f018f61555c565b8a81811061133257611332615503565b90506020020160208101906113479190614a82565b611358885f015189602001516138ae565b886040015160405161136e95949392919061565b565b60405180910390a1505b6113ca61138860208c018c614a82565b61139189613282565b61139e60408e018e61555c565b898181106113ae576113ae615503565b90506020020160208101906113c39190614a82565b87876138cd565b5f516020615b375f395f51905f526113e560208c018c614a82565b886113f360408e018e61555c565b8981811061140357611403615503565b90506020020160208101906114189190614a82565b865160405161142c9493929190439061565b565b60405180910390a161147d61144460208c018c614a82565b61145160408d018d61555c565b8881811061146157611461615503565b90506020020160208101906114769190614a82565b8651613b01565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663601bb36f6114b960208d018d614a82565b6114c660408e018e61555c565b898181106114d6576114d6615503565b90506020020160208101906114eb9190614a82565b875160405160e085901b6001600160e01b03191681526001600160a01b0393841660048201529290911660248301526001600160401b0380861660448401521660648201526084015f604051808303815f87803b15801561154a575f5ffd5b505af115801561155c573d5f5f3e3d5ffd5b50505050505050505b600101610f92565b507f80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe561159c6020870187614a82565b836115aa604089018961555c565b856115b860808c018c6156ac565b6040516115cb9796959493929190615716565b60405180910390a1505050505050565b6001600160a01b0382165f908152609d60205260408120606091829161160090613482565b90505f816001600160401b0381111561161b5761161b6148db565b60405190808252806020026020018201604052801561165f57816020015b604080518082019091525f80825260208201528152602001906001900390816116395790505b5090505f826001600160401b0381111561167b5761167b6148db565b6040519080825280602002602001820160405280156116b457816020015b6116a16148a8565b8152602001906001900390816116995790505b5090505f5b83811015611737576001600160a01b0388165f908152609d602052604081206116e6906109a5908461348b565b9050808483815181106116fb576116fb615503565b602002602001018190525061171189828a610773565b83838151811061172357611723615503565b6020908102919091010152506001016116b9565b509093509150505b9250929050565b60605f61079460995f61175886613282565b81526020019081526020015f20613b63565b60605f83516001600160401b03811115611786576117866148db565b6040519080825280602002602001820160405280156117af578160200160208202803683370190505b5090505f5b84518110156109ff576117e08582815181106117d2576117d2615503565b602002602001015185612805565b8282815181106117f2576117f2615503565b6001600160401b03909216602092830291909101909101526001016117b4565b6066545f9060019081160361183a5760405163840a48d560e01b815260040160405180910390fd5b83821461185a576040516343714afd60e01b815260040160405180910390fd5b5f5b848110156118c3576118bb8787878481811061187a5761187a615503565b905060200201602081019061188f9190614a82565b8686858181106118a1576118a1615503565b90506020020160208101906118b691906157ac565b613b6f565b60010161185c565b50505050505050565b836118d6816134ad565b6118f35760405163932d94f760e01b815260040160405180910390fd5b604080518082019091526001600160a01b038616815263ffffffff851660208201525f61191f82613282565b9050611960826020015163ffffffff1660985f8a6001600160a01b03166001600160a01b031681526020019081526020015f2061349690919063ffffffff16565b61197d57604051631fb1705560e21b815260040160405180910390fd5b5f5b84811015611a205761199c868683818110610c4157610c41615503565b6119b95760405163585cfb2f60e01b815260040160405180910390fd5b7f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b838787848181106119ed576119ed615503565b9050602002016020810190611a029190614a82565b604051611a109291906155a1565b60405180910390a160010161197f565b5050505050505050565b60605f82516001600160401b03811115611a4657611a466148db565b604051908082528060200260200182016040528015611a6f578160200160208202803683370190505b5090505f5b83518110156109ff57611aa085858381518110611a9357611a93615503565b6020026020010151612805565b828281518110611ab257611ab2615503565b6001600160401b0390921660209283029190910190910152600101611a74565b6060611afd7f0000000000000000000000000000000000000000000000000000000000000000613c73565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c0057611b3b826134ad565b611b58576040516348f5c3ed60e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90611ba4908590600401614ddb565b602060405180830381865afa158015611bbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be391906154e4565b611c005760405163ccea9e6f60e01b815260040160405180910390fd5b6108ec8282613cb0565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90611c56903390600401614ddb565b602060405180830381865afa158015611c71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c9591906154e4565b611cb257604051631d77d47760e21b815260040160405180910390fd5b611cbc5f19613445565b565b5f61079483609a5f61110a86613282565b5f5f611cdb8484613e52565b95945050505050565b606654600290600490811603611d0d5760405163840a48d560e01b815260040160405180910390fd5b611d22611d1d6020840184614a82565b6134ad565b80611d3b5750611d3b611d1d6040840160208501614a82565b611d58576040516348f5c3ed60e01b815260040160405180910390fd5b5f5b611d67604084018461555c565b9050811015612029575f6040518060400160405280856020016020810190611d8f9190614a82565b6001600160a01b03168152602001611daa604087018761555c565b85818110611dba57611dba615503565b9050602002016020810190611dcf9190615535565b63ffffffff168152509050611e1c816020015163ffffffff1660985f876020016020810190611dfe9190614a82565b6001600160a01b0316815260208101919091526040015f2090613496565b611e3957604051631fb1705560e21b815260040160405180910390fd5b609e5f611e496020870187614a82565b6001600160a01b03166001600160a01b031681526020019081526020015f205f611e7283613282565b815260208101919091526040015f205460ff16611ea2576040516325131d4f60e01b815260040160405180910390fd5b611edc611eae82613282565b609c5f611ebe6020890189614a82565b6001600160a01b0316815260208101919091526040015f2090613fc1565b50611f14611eed6020860186614a82565b609a5f611ef985613282565b81526020019081526020015f20613fcc90919063ffffffff16565b50611f226020850185614a82565b6001600160a01b03167fad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe82604051611f5a919061554e565b60405180910390a2604080518082019091525f815260208101611f9d7f0000000000000000000000000000000000000000000000000000000000000000436157cd565b63ffffffff169052609e5f611fb56020880188614a82565b6001600160a01b03166001600160a01b031681526020019081526020015f205f611fde84613282565b81526020808201929092526040015f2082518154939092015163ffffffff166101000264ffffffff00199215159290921664ffffffffff199093169290921717905550600101611d5a565b5061203d6103ca6040840160208501614a82565b6001600160a01b031663303ca9566120586020850185614a82565b6120686040860160208701614a82565b612075604087018761555c565b6040518563ffffffff1660e01b81526004016120949493929190615822565b5f604051808303815f87803b1580156120ab575f5ffd5b505af11580156120bd573d5f5f3e3d5ffd5b505050505050565b6060610810609a5f61175885613282565b6120de613fe0565b611cbc5f61403a565b6001600160a01b0381165f908152609c602052604081206060919061210b90613482565b90505f816001600160401b03811115612126576121266148db565b60405190808252806020026020018201604052801561216a57816020015b604080518082019091525f80825260208201528152602001906001900390816121445790505b5090505f5b828110156109ff576001600160a01b0385165f908152609c6020526040902061219c906109a5908361348b565b8282815181106121ae576121ae615503565b602090810291909101015260010161216f565b60605f84516001600160401b038111156121dd576121dd6148db565b60405190808252806020026020018201604052801561221657816020015b6122036148a8565b8152602001906001900390816121fb5790505b5090505f5b8551811015610dbf5761224886828151811061223957612239615503565b60200260200101518686610773565b82828151811061225a5761225a615503565b602090810291909101015260010161221b565b60605f83516001600160401b03811115612289576122896148db565b6040519080825280602002602001820160405280156122b2578160200160208202803683370190505b5090505f5b8451811015610dbf576001600160a01b0386165f90815260a1602052604081208651612327928792918990869081106122f2576122f2615503565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2061408b90919063ffffffff16565b82828151811061233957612339615503565b6001600160401b03909216602092830291909101909101526001016122b7565b6066545f906001908116036123815760405163840a48d560e01b815260040160405180910390fd5b61238a836134ad565b6123a7576040516348f5c3ed60e01b815260040160405180910390fd5b5f5f5f6123b386612dc2565b91509150816123d55760405163fa55fc8160e01b815260040160405180910390fd5b91505f90505b8351811015610d0c578381815181106123f6576123f6615503565b6020026020010151604001515184828151811061241557612415615503565b6020026020010151602001515114612440576040516343714afd60e01b815260040160405180910390fd5b5f84828151811061245357612453615503565b602090810291909101810151518082015181516001600160a01b03165f908152609890935260409092209092506124939163ffffffff9081169061349616565b6124b057604051631fb1705560e21b815260040160405180910390fd5b5f6124bb878361079b565b90505f5b8684815181106124d1576124d1615503565b602002602001015160200151518110156127fa575f8785815181106124f8576124f8615503565b602002602001015160200151828151811061251557612515615503565b6020026020010151905061252c898261ffff613b6f565b5f5f61253b8b61078988613282565b91509150806040015163ffffffff165f1461256957604051630d8fcbe360e41b815260040160405180910390fd5b5f6125768785848961409f565b90506125bb825f01518c8a8151811061259157612591615503565b60200260200101516040015187815181106125ae576125ae615503565b60200260200101516140d5565b600f0b602083018190525f036125e457604051634606179360e11b815260040160405180910390fd5b5f8260200151600f0b12156127285780156126aa5761266561260588613282565b6001600160a01b03808f165f90815260a360209081526040808320938a16835292905220908154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61268f7f0000000000000000000000000000000000000000000000000000000000000000436157cd565b61269a9060016157cd565b63ffffffff166040830152612795565b6126bc836020015183602001516138ae565b6001600160401b031660208401528a518b90899081106126de576126de615503565b60200260200101516040015185815181106126fb576126fb615503565b6020908102919091018101516001600160401b031683525f9083015263ffffffff43166040830152612795565b5f8260200151600f0b131561279557612749836020015183602001516138ae565b6001600160401b03908116602085018190528451909116101561277f57604051636c9be0bf60e01b815260040160405180910390fd5b61278989436157cd565b63ffffffff1660408301525b6127aa8c6127a289613282565b8686866138cd565b5f516020615b375f395f51905f528c88866127cc865f015187602001516138ae565b86604001516040516127e295949392919061565b565b60405180910390a15050600190920191506124bf9050565b5050506001016123db565b6001600160a01b038083165f90815260a1602090815260408083209385168352929052908120610794906140ec565b8261283e816134ad565b61285b5760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff1661289d576001600160a01b0384165f90815260a460205260409020805460ff191660011790555b836001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371384846040516128d892919061584e565b60405180910390a250505050565b60665460029060049081160361290f5760405163840a48d560e01b815260040160405180910390fd5b82612919816134ad565b6129365760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90612982908790600401614ddb565b602060405180830381865afa15801561299d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129c191906154e4565b6129de5760405163ccea9e6f60e01b815260040160405180910390fd5b5f5b6129ed602085018561555c565b9050811015612bb557604080518082019091525f9080612a106020880188614a82565b6001600160a01b03168152602001868060200190612a2e919061555c565b85818110612a3e57612a3e615503565b9050602002016020810190612a539190615535565b63ffffffff90811690915260208083015183516001600160a01b03165f90815260989092526040909120929350612a8f92919081169061349616565b612aac57604051631fb1705560e21b815260040160405180910390fd5b612ab6868261079b565b15612ad457604051636c6c6e2760e11b815260040160405180910390fd5b612afd612ae082613282565b6001600160a01b0388165f908152609c6020526040902090613557565b50612b2986609a5f612b0e85613282565b81526020019081526020015f2061356290919063ffffffff16565b50856001600160a01b03167f43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e82604051612b63919061554e565b60405180910390a26001600160a01b0386165f908152609e60205260408120600191612b8e84613282565b815260208101919091526040015f20805460ff1916911515919091179055506001016129e0565b50612bc66103ca6020850185614a82565b6001600160a01b031663c63fd50285612be26020870187614a82565b612bef602088018861555c565b612bfc60408a018a6156ac565b6040518763ffffffff1660e01b8152600401612c1d96959493929190615861565b5f604051808303815f87803b158015612c34575f5ffd5b505af1158015611a20573d5f5f3e3d5ffd5b5f610810609a5f612c5685613282565b81526020019081526020015f20613482565b83612c72816134ad565b612c8f5760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f93845260989052939091209192612cce929161349616565b612ceb57604051631fb1705560e21b815260040160405180910390fd5b5f612cf582613282565b90505f5b84811015611a2057612d3e868683818110612d1657612d16615503565b9050602002016020810190612d2b9190614a82565b5f84815260996020526040902090613fcc565b612d5b576040516331bc342760e11b815260040160405180910390fd5b7f7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee83878784818110612d8f57612d8f615503565b9050602002016020810190612da49190614a82565b604051612db29291906155a1565b60405180910390a1600101612cf9565b6001600160a01b0381165f908152609b602090815260408083208151608081018352905463ffffffff80821680845260ff600160201b8404161515958401869052600160281b8304821694840194909452600160481b909104166060820181905284939192919015801590612e415750826060015163ffffffff164310155b15612e50575050604081015160015b9590945092505050565b6001600160a01b0381165f90815260986020526040812061081090613482565b6001600160a01b0382165f908152609f602052604081206060919061080c908261175886613282565b5f54610100900460ff1615808015612ec157505f54600160ff909116105b80612eda5750303b158015612eda57505f5460ff166001145b612f425760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015612f63575f805461ff0019166101001790555b612f6c82613445565b612f758361403a565b8015612fbb575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050565b81612fca816134ad565b612fe75760405163932d94f760e01b815260040160405180910390fd5b60405163b526578760e01b81526001600160a01b0383169063b526578790613013908690600401614ddb565b602060405180830381865afa15801561302e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305291906154e4565b61306f57604051631d0b13c160e31b815260040160405180910390fd5b6001600160a01b038381165f90815260976020526040902080546001600160a01b0319169184169190911790557f2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf85836130c781610dc8565b604080516001600160a01b03938416815292909116602083015201612fb2565b6130ef613fe0565b6001600160a01b0381166131545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401612f39565b61315d8161403a565b50565b5f5f610dbf8484613e52565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131ec91906158ad565b6001600160a01b0316336001600160a01b03161461321d5760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146132445760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f815f0151826020015163ffffffff166040516020016132cd92919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b604051602081830303815290604052610810906158c8565b604080518082019091525f80825260208201526133006148a8565b6040805180820182526001600160a01b038088165f90815260a160209081528482209288168252919091529182208190613339906140ec565b6001600160401b0390811682526001600160a01b038981165f81815260a260209081526040808320948c168084529482528083205486169682019690965291815260a082528481208b8252825284812092815291815290839020835160608101855290549283168152600160401b8304600f0b91810191909152600160c01b90910463ffffffff169181018290529192504310156133db57909250905061343d565b6133ec815f015182602001516138ae565b6001600160401b0316815260208101515f600f9190910b121561342a5761341b826020015182602001516138ae565b6001600160401b031660208301525b5f60408201819052602082015290925090505b935093915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f610810825490565b5f61079483836140ff565b5f8181526001830160205260408120541515610794565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af1158015613533573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081091906154e4565b5f6107948383614125565b5f610794836001600160a01b038416614125565b606083516001600160401b03811115613591576135916148db565b6040519080825280602002602001820160405280156135c457816020015b60608152602001906001900390816135af5790505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0e0e67686866040518363ffffffff1660e01b81526004016136169291906158eb565b5f60405180830381865afa158015613630573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613657919081019061590f565b90505f5b8551811015613859575f86828151811061367757613677615503565b6020026020010151905085516001600160401b0381111561369a5761369a6148db565b6040519080825280602002602001820160405280156136c3578160200160208202803683370190505b508483815181106136d6576136d6615503565b60209081029190910101525f5b865181101561384f575f8782815181106136ff576136ff615503565b6020908102919091018101516001600160a01b038086165f90815260a184526040808220928416825291909352822090925061373a906140ec565b9050806001600160401b03165f03613753575050613847565b5f61375f858d85610773565b90508863ffffffff16816040015163ffffffff161115801561378757505f8160200151600f0b125b156137a95761379d815f015182602001516138ae565b6001600160401b031681525b80515f906137c4906001600160401b0390811690851661389a565b905061380b818989815181106137dc576137dc615503565b602002602001015187815181106137f5576137f5615503565b602002602001015161417190919063ffffffff16565b89888151811061381d5761381d615503565b6020026020010151868151811061383657613836615503565b602002602001018181525050505050505b6001016136e3565b505060010161365b565b5050949350505050565b6001600160a01b0381165f9081526001830160205260408120541515610794565b5f6107948383670de0b6b3a76400006001614185565b5f61079483670de0b6b3a7640000846141de565b5f6107946138c5836001600160401b03861661562e565b600f0b6142c3565b6020808301516001600160a01b038088165f90815260a284526040808220928816825291909352909120546001600160401b0390811691161461398f57602082810180516001600160a01b038881165f90815260a28552604080822092891682529190945292839020805467ffffffffffffffff19166001600160401b039092169190911790555190517facf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc55916139869188918791615a1b565b60405180910390a15b6001600160a01b038086165f90815260a060209081526040808320888452825280832093871683529281529082902083518154928501519385015163ffffffff16600160c01b0263ffffffff60c01b196001600160801b038616600160401b026001600160c01b03199095166001600160401b03909316929092179390931716919091179055600f0b15613a71576001600160a01b0385165f908152609f602090815260408083208784529091529020613a499084613562565b506001600160a01b0385165f908152609d60205260409020613a6b9085613557565b50610d0c565b80516001600160401b03165f03610d0c576001600160a01b0385165f908152609f602090815260408083208784529091529020613aae9084613fcc565b506001600160a01b0385165f908152609f602090815260408083208784529091529020613ada90613482565b5f03610d0c576001600160a01b0385165f908152609d602052604090206120bd9085613fc1565b6001600160a01b038084165f90815260a160209081526040808320938616835292905220613b3090438361432e565b7f1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c838383604051612fb293929190615a1b565b60605f61079483614342565b6001600160a01b038381165f90815260a360209081526040808320938616835292905290812054600f81810b600160801b909204900b035b5f81118015613bb957508261ffff1682105b15610d0c576001600160a01b038086165f90815260a3602090815260408083209388168352929052908120613bed9061439b565b90505f5f613bfc8884896132e5565b91509150806040015163ffffffff16431015613c1a57505050610d0c565b613c2788848985856138cd565b6001600160a01b038089165f90815260a360209081526040808320938b16835292905220613c54906143ed565b50613c5e85615a47565b9450613c6984615a5f565b9350505050613ba7565b60605f613c7f83614461565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b0382165f908152609b60209081526040918290208251608081018452905463ffffffff808216835260ff600160201b830416151593830193909352600160281b8104831693820193909352600160481b909204166060820181905215801590613d2a5750806060015163ffffffff164310155b15613d4457604081015163ffffffff168152600160208201525b63ffffffff82166040820152613d7a7f0000000000000000000000000000000000000000000000000000000000000000436157cd565b613d859060016157cd565b63ffffffff90811660608381019182526001600160a01b0386165f818152609b602090815260409182902087518154838a0151858b01519851928a1664ffffffffff1990921691909117600160201b91151591909102176cffffffffffffffff00000000001916600160281b9789169790970263ffffffff60481b191696909617600160481b968816968702179055815192835294871694820194909452928301919091527f4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db9101612fb2565b6001600160a01b038281165f81815260a2602090815260408083209486168084529482528083205493835260a38252808320948352939052918220546001600160401b039091169190600f81810b600160801b909204900b03815b81811015613f7d576001600160a01b038087165f90815260a3602090815260408083209389168352929052908120613ee59083614488565b6001600160a01b038881165f90815260a0602090815260408083208584528252808320938b16835292815290829020825160608101845290546001600160401b0381168252600160401b8104600f0b92820192909252600160c01b90910463ffffffff16918101829052919250431015613f60575050613f7d565b613f6e8682602001516138ae565b95505050806001019050613ead565b506001600160a01b038086165f90815260a1602090815260408083209388168352929052208390613fad906140ec565b613fb791906155ee565b9150509250929050565b5f61079483836144f7565b5f610794836001600160a01b0384166144f7565b6033546001600160a01b03163314611cbc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612f39565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6107948383670de0b6b3a76400006145da565b5f6140b08460995f61110a89613282565b80156140b95750815b8015611cdb57505090516001600160401b031615159392505050565b5f6107946001600160401b03808516908416615a74565b5f61081082670de0b6b3a764000061462f565b5f825f01828154811061411457614114615503565b905f5260205f200154905092915050565b5f81815260018301602052604081205461416a57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610810565b505f610810565b5f6107948383670de0b6b3a76400006141de565b5f5f6141928686866141de565b905060018360028111156141a8576141a8615aa1565b1480156141c457505f84806141bf576141bf615ab5565b868809115b15611cdb576141d4600182615ac9565b9695505050505050565b5f80805f19858709858702925082811083820303915050805f036142155783828161420b5761420b615ab5565b0492505050610794565b80841161425c5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401612f39565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f6001600160401b0382111561432a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401612f39565b5090565b612fbb83836001600160401b038416614666565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561438f57602002820191905f5260205f20905b81548152602001906001019080831161437b575b50505050509050919050565b5f6143b58254600f81810b600160801b909204900b131590565b156143d357604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f9081526001909101602052604090205490565b5f6144078254600f81810b600160801b909204900b131590565b1561442557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546001600160801b03191692016001600160801b03169190911790915590565b5f60ff8216601f81111561081057604051632cd44ac360e21b815260040160405180910390fd5b5f5f6144aa61449684614769565b85546144a59190600f0b615adc565b6147d2565b8454909150600160801b9004600f90810b9082900b126144dd57604051632d0483c560e21b815260040160405180910390fd5b600f0b5f9081526001939093016020525050604090205490565b5f81815260018301602052604081205480156145d1575f6145196001836155db565b85549091505f9061452c906001906155db565b905081811461458b575f865f01828154811061454a5761454a615503565b905f5260205f200154905080875f01848154811061456a5761456a615503565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061459c5761459c615b03565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610810565b5f915050610810565b82545f90816145eb8686838561483b565b905080156146255761460f866146026001846155db565b5f91825260209091200190565b54600160201b90046001600160e01b031661078f565b5091949350505050565b81545f90801561465e57614648846146026001846155db565b54600160201b90046001600160e01b031661080c565b509092915050565b8254801561471c575f61467e856146026001856155db565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090851610156146d05760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff80861691160361471a57826146f1866146026001866155db565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216600160201b029190921617910155565b5f6001600160ff1b0382111561432a5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401612f39565b80600f81900b81146148365760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401612f39565b919050565b5f5b818310156109ff575f614850848461488e565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561487a57809250614888565b614885816001615ac9565b93505b5061483d565b5f61489c6002848418615b17565b61079490848416615ac9565b604080516060810182525f808252602082018190529181019190915290565b6001600160a01b038116811461315d575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614911576149116148db565b60405290565b604051601f8201601f191681016001600160401b038111828210171561493f5761493f6148db565b604052919050565b803563ffffffff81168114614836575f5ffd5b5f6040828403121561496a575f5ffd5b604080519081016001600160401b038111828210171561498c5761498c6148db565b604052905080823561499d816148c7565b81526149ab60208401614947565b60208201525092915050565b5f5f5f608084860312156149c9575f5ffd5b83356149d4816148c7565b92506149e3856020860161495a565b915060608401356149f3816148c7565b809150509250925092565b80516001600160401b03168252602080820151600f0b9083015260409081015163ffffffff16910152565b6060810161081082846149fe565b5f5f60608385031215614a48575f5ffd5b8235614a53816148c7565b9150614a62846020850161495a565b90509250929050565b5f60208284031215614a7b575f5ffd5b5035919050565b5f60208284031215614a92575f5ffd5b8135610794816148c7565b80516001600160a01b0316825260209081015163ffffffff16910152565b5f8151808452602084019350602083015f5b82811015614af657614ae0868351614a9d565b6040959095019460209190910190600101614acd565b5093949350505050565b602081525f6107946020830184614abb565b5f60408284031215614b22575f5ffd5b610794838361495a565b5f5f83601f840112614b3c575f5ffd5b5081356001600160401b03811115614b52575f5ffd5b6020830191508360208260051b850101111561173f575f5ffd5b5f5f5f60408486031215614b7e575f5ffd5b8335614b89816148c7565b925060208401356001600160401b03811115614ba3575f5ffd5b614baf86828701614b2c565b9497909650939450505050565b5f6001600160401b03821115614bd457614bd46148db565b5060051b60200190565b5f82601f830112614bed575f5ffd5b8135614c00614bfb82614bbc565b614917565b8082825260208201915060208360051b860101925085831115614c21575f5ffd5b602085015b83811015614c47578035614c39816148c7565b835260209283019201614c26565b5095945050505050565b5f5f5f60808486031215614c63575f5ffd5b614c6d858561495a565b925060408401356001600160401b03811115614c87575f5ffd5b614c9386828701614bde565b92505060608401356001600160401b03811115614cae575f5ffd5b614cba86828701614bde565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614af6578151865260209586019590910190600101614cd6565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614d4b57603f19878603018452614d36858351614cc4565b94506020938401939190910190600101614d1a565b50929695505050505050565b5f5f5f5f60a08587031215614d6a575f5ffd5b614d74868661495a565b935060408501356001600160401b03811115614d8e575f5ffd5b614d9a87828801614bde565b93505060608501356001600160401b03811115614db5575f5ffd5b614dc187828801614bde565b925050614dd060808601614947565b905092959194509250565b6001600160a01b0391909116815260200190565b5f5f60408385031215614e00575f5ffd5b8235614e0b816148c7565b915060208301356001600160401b03811115614e25575f5ffd5b830160a08186031215614e36575f5ffd5b809150509250929050565b5f5f60408385031215614e52575f5ffd5b8235614e5d816148c7565b91506020830135614e36816148c7565b5f8151808452602084019350602083015f5b82811015614af657614e928683516149fe565b6060959095019460209190910190600101614e7f565b604081525f614eba6040830185614abb565b8281036020840152611cdb8185614e6d565b5f8151808452602084019350602083015f5b82811015614af65781516001600160a01b0316865260209586019590910190600101614ede565b602081525f6107946020830184614ecc565b5f5f60408385031215614f28575f5ffd5b82356001600160401b03811115614f3d575f5ffd5b614f4985828601614bde565b9250506020830135614e36816148c7565b602080825282518282018190525f918401906040840190835b81811015614f9a5783516001600160401b0316835260209384019390920191600101614f73565b509095945050505050565b5f5f5f5f5f60608688031215614fb9575f5ffd5b8535614fc4816148c7565b945060208601356001600160401b03811115614fde575f5ffd5b614fea88828901614b2c565b90955093505060408601356001600160401b03811115615008575f5ffd5b61501488828901614b2c565b969995985093965092949392505050565b5f5f5f5f60608587031215615038575f5ffd5b8435615043816148c7565b935061505160208601614947565b925060408501356001600160401b0381111561506b575f5ffd5b61507787828801614b2c565b95989497509550505050565b5f5f60408385031215615094575f5ffd5b823561509f816148c7565b915060208301356001600160401b038111156150b9575f5ffd5b613fb785828601614bde565b602081525f82518060208401525f5b818110156150f157602081860181015160408684010152016150d4565b505f604082850101526040601f19601f83011684010191505092915050565b5f5f60408385031215615121575f5ffd5b823561512c816148c7565b9150614a6260208401614947565b5f6020828403121561514a575f5ffd5b813560ff81168114610794575f5ffd5b5f6060828403121561516a575f5ffd5b50919050565b5f60208284031215615180575f5ffd5b81356001600160401b03811115615195575f5ffd5b61080c8482850161515a565b5f5f5f608084860312156151b3575f5ffd5b83356001600160401b038111156151c8575f5ffd5b6151d486828701614bde565b9350506149e3856020860161495a565b602081525f6107946020830184614e6d565b5f5f5f60608486031215615208575f5ffd5b8335615213816148c7565b925060208401356001600160401b0381111561522d575f5ffd5b61523986828701614bde565b92505061524860408501614947565b90509250925092565b5f5f60408385031215615262575f5ffd5b823561526d816148c7565b915060208301356001600160401b03811115615287575f5ffd5b8301601f81018513615297575f5ffd5b80356152a5614bfb82614bbc565b8082825260208201915060208360051b8501019250878311156152c6575f5ffd5b602084015b838110156153eb5780356001600160401b038111156152e8575f5ffd5b85016080818b03601f190112156152fd575f5ffd5b6153056148ef565b6153128b6020840161495a565b815260608201356001600160401b0381111561532c575f5ffd5b61533b8c602083860101614bde565b60208301525060808201356001600160401b03811115615359575f5ffd5b6020818401019250508a601f830112615370575f5ffd5b813561537e614bfb82614bbc565b8082825260208201915060208360051b86010192508d83111561539f575f5ffd5b6020850194505b828510156153d55784356001600160401b03811681146153c4575f5ffd5b8252602094850194909101906153a6565b60408401525050845250602092830192016152cb565b50809450505050509250929050565b5f5f5f6040848603121561540c575f5ffd5b8335615417816148c7565b925060208401356001600160401b03811115615431575f5ffd5b8401601f81018613615441575f5ffd5b80356001600160401b03811115615456575f5ffd5b866020828401011115615467575f5ffd5b939660209190910195509293505050565b5f5f60408385031215615489575f5ffd5b8235615494816148c7565b915060208301356001600160401b038111156154ae575f5ffd5b613fb78582860161515a565b5f5f604083850312156154cb575f5ffd5b82356154d6816148c7565b946020939093013593505050565b5f602082840312156154f4575f5ffd5b81518015158114610794575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235603e1983360301811261552b575f5ffd5b9190910192915050565b5f60208284031215615545575f5ffd5b61079482614947565b604081016108108284614a9d565b5f5f8335601e19843603018112615571575f5ffd5b8301803591506001600160401b0382111561558a575f5ffd5b6020019150600581901b360382131561173f575f5ffd5b606081016155af8285614a9d565b6001600160a01b039290921660409190910152919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610810576108106155c7565b6001600160401b038281168282160390811115610810576108106155c7565b5f600f82900b6001607f1b8101615626576156266155c7565b5f0392915050565b600f81810b9083900b0160016001607f1b03811360016001607f1b031982121715610810576108106155c7565b6001600160a01b038616815260c081016156786020830187614a9d565b6001600160a01b039490941660608201526001600160401b0392909216608083015263ffffffff1660a09091015292915050565b5f5f8335601e198436030181126156c1575f5ffd5b8301803591506001600160401b038211156156da575f5ffd5b60200191503681900382131561173f575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b03881681525f60c08201615734602084018a614a9d565b60c060608401528690528660e083015f5b88811015615775578235615758816148c7565b6001600160a01b0316825260209283019290910190600101615745565b5083810360808501526157888188614cc4565b91505082810360a084015261579e8185876156ee565b9a9950505050505050505050565b5f602082840312156157bc575f5ffd5b813561ffff81168114610794575f5ffd5b63ffffffff8181168382160190811115610810576108106155c7565b8183526020830192505f815f5b84811015614af65763ffffffff61580c83614947565b16865260209586019591909101906001016157f6565b6001600160a01b038581168252841660208201526060604082018190525f906141d490830184866157e9565b602081525f610d216020830184866156ee565b6001600160a01b038781168252861660208201526080604082018190525f9061588d90830186886157e9565b82810360608401526158a08185876156ee565b9998505050505050505050565b5f602082840312156158bd575f5ffd5b8151610794816148c7565b8051602080830151919081101561516a575f1960209190910360031b1b16919050565b604081525f6158fd6040830185614ecc565b8281036020840152611cdb8185614ecc565b5f6020828403121561591f575f5ffd5b81516001600160401b03811115615934575f5ffd5b8201601f81018413615944575f5ffd5b8051615952614bfb82614bbc565b8082825260208201915060208360051b850101925086831115615973575f5ffd5b602084015b83811015615a105780516001600160401b03811115615995575f5ffd5b8501603f810189136159a5575f5ffd5b60208101516159b6614bfb82614bbc565b808282526020820191506020808460051b8601010192508b8311156159d9575f5ffd5b6040840193505b828410156159fb5783518252602093840193909101906159e0565b86525050602093840193919091019050615978565b509695505050505050565b6001600160a01b0393841681529190921660208201526001600160401b03909116604082015260600190565b5f60018201615a5857615a586155c7565b5060010190565b5f81615a6d57615a6d6155c7565b505f190190565b600f82810b9082900b0360016001607f1b0319811260016001607f1b0382131715610810576108106155c7565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b80820180821115610810576108106155c7565b8082018281125f831280158216821582161715615afb57615afb6155c7565b505092915050565b634e487b7160e01b5f52603160045260245ffd5b5f82615b3157634e487b7160e01b5f52601260045260245ffd5b50049056fe1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dda264697066735822122064a2cb6e41f7f8bd29297c0eef600bae9afeb2ec41d7d1f5544aca9fe17d469964736f6c634300081b0033
3724    /// ```
3725    #[rustfmt::skip]
3726    #[allow(clippy::all)]
3727    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3728        b"a\x01@`@R4\x80\x15a\0\x10W__\xFD[P`@Qa_\x8F8\x03\x80a_\x8F\x839\x81\x01`@\x81\x90Ra\0/\x91a\x02\x08V[\x80\x84\x87\x85\x85\x89`\x01`\x01`\xA0\x1B\x03\x81\x16a\0\\W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\x80R\x92\x83\x16`\xA0Rc\xFF\xFF\xFF\xFF\x91\x82\x16`\xC0R\x16`\xE0R\x16a\x01\0Ra\0\x8D\x81a\0\xA5V[a\x01 RPa\0\x9Aa\0\xEBV[PPPPPPa\x03hV[__\x82\x90P`\x1F\x81Q\x11\x15a\0\xD8W\x82`@Qc0Z'\xA9`\xE0\x1B\x81R`\x04\x01a\0\xCF\x91\x90a\x03\x10V[`@Q\x80\x91\x03\x90\xFD[\x80Qa\0\xE3\x82a\x03BV[\x17\x93\x92PPPV[_Ta\x01\0\x90\x04`\xFF\x16\x15a\x01RW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01a\0\xCFV[_T`\xFF\x90\x81\x16\x14a\x01\xA1W_\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01\xB7W__\xFD[PV[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x01\xCDW__\xFD[\x91\x90PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[_[\x83\x81\x10\x15a\x02\0W\x81\x81\x01Q\x83\x82\x01R` \x01a\x01\xE8V[PP_\x91\x01RV[______`\xC0\x87\x89\x03\x12\x15a\x02\x1DW__\xFD[\x86Qa\x02(\x81a\x01\xA3V[` \x88\x01Q\x90\x96Pa\x029\x81a\x01\xA3V[`@\x88\x01Q\x90\x95Pa\x02J\x81a\x01\xA3V[\x93Pa\x02X``\x88\x01a\x01\xBAV[\x92Pa\x02f`\x80\x88\x01a\x01\xBAV[`\xA0\x88\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02\x81W__\xFD[\x87\x01`\x1F\x81\x01\x89\x13a\x02\x91W__\xFD[\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02\xAAWa\x02\xAAa\x01\xD2V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x02\xD8Wa\x02\xD8a\x01\xD2V[`@R\x81\x81R\x82\x82\x01` \x01\x8B\x10\x15a\x02\xEFW__\xFD[a\x03\0\x82` \x83\x01` \x86\x01a\x01\xE6V[\x80\x93PPPP\x92\x95P\x92\x95P\x92\x95V[` \x81R_\x82Q\x80` \x84\x01Ra\x03.\x81`@\x85\x01` \x87\x01a\x01\xE6V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x03bW_\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa[\x8Ca\x04\x03_9_a\x1A\xD9\x01R_\x81\x81a\x045\x01Ra4\xEB\x01R_\x81\x81a\x05\x99\x01Ra=U\x01R_\x81\x81a\x03R\x01R\x81\x81a\x1Fx\x01Ra&j\x01R_\x81\x81a\x07\x18\x01R\x81\x81a\x14\x87\x01R\x81\x81a\x1B\r\x01R\x81\x81a\x1Bo\x01R\x81\x81a)M\x01Ra5\xCA\x01R_\x81\x81a\x05\xC0\x01R\x81\x81a\x08-\x01R\x81\x81a\x1C!\x01Ra1n\x01Ra[\x8C_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x02\xA2W_5`\xE0\x1C\x80cl\xFBD\x81\x11a\x01lW\x80c\xA9\x82\x18!\x11a\0\xD5W\x80c\xC2!\xD8\xAE\x11a\0\x8FW\x80c\xC2!\xD8\xAE\x14a\x06\xDAW\x80c\xCDm\xC6\x87\x14a\x06\xEDW\x80c\xD3\xD9o\xF4\x14a\x07\0W\x80c\xDF\\\xF7#\x14a\x07\x13W\x80c\xF2\xFD\xE3\x8B\x14a\x07:W\x80c\xF6\x05\xCE\x08\x14a\x07MW\x80c\xFA\xBC\x1C\xBC\x14a\x07`W__\xFD[\x80c\xA9\x82\x18!\x14a\x06LW\x80c\xAD\xC2\xE3\xD9\x14a\x06_W\x80c\xB2Dz\xF7\x14a\x06rW\x80c\xB6k\xD9\x89\x14a\x06\x85W\x80c\xB9\xFB\xAE\xD1\x14a\x06\x98W\x80c\xBA\x1A\x84\xE5\x14a\x06\xC7W__\xFD[\x80c\x88o\x11\x95\x11a\x01&W\x80c\x88o\x11\x95\x14a\x05\xBBW\x80c\x8C\xE6HT\x14a\x05\xE2W\x80c\x8D\xA5\xCB[\x14a\x06\x02W\x80c\x94\xD7\xD0\x0C\x14a\x06\x13W\x80c\x95(\x99\xEE\x14a\x06&W\x80c\xA93>\xC8\x14a\x069W__\xFD[\x80cl\xFBD\x81\x14a\x05(W\x80cn4\x92\xB5\x14a\x05SW\x80cn\x87]\xBA\x14a\x05fW\x80cqP\x18\xA6\x14a\x05yW\x80cy\xAEP\xCD\x14a\x05\x81W\x80c{\xC1\xEFa\x14a\x05\x94W__\xFD[\x80cAw\xA8|\x11a\x02\x0EW\x80cT\xFDMP\x11a\x01\xC8W\x80cT\xFDMP\x14a\x04\xB0W\x80cV\xC4\x83\xE6\x14a\x04\xC5W\x80cY\\jg\x14a\x04\xD8W\x80cZ\xC8j\xB7\x14a\x04\xE0W\x80c\\\x97Z\xBB\x14a\x05\x03W\x80cg\r;\xA2\x14a\x05\x15W__\xFD[\x80cAw\xA8|\x14a\x04\x10W\x80cFW\xE2j\x14a\x040W\x80cJ\x10\xFF\xE5\x14a\x04WW\x80cKPF\xEF\x14a\x04wW\x80cP\xFE\xEA \x14a\x04\x8AW\x80cTz\xFB\x87\x14a\x04\x9DW__\xFD[\x80c)\x81\xEBw\x11a\x02_W\x80c)\x81\xEBw\x14a\x03MW\x80c+E:\x9A\x14a\x03\x89W\x80c+\xAB,J\x14a\x03\xA9W\x80c0L\x10\xCD\x14a\x03\xBCW\x80c65 W\x14a\x03\xDCW\x80c@\x12\r\xAB\x14a\x03\xEFW__\xFD[\x80c\x10\xE1\xB9\xB8\x14a\x02\xA6W\x80c\x13R\xC3\xE6\x14a\x02\xCFW\x80c\x13d9\xDD\x14a\x02\xF2W\x80c\x15\xFEP(\x14a\x03\x07W\x80c&\r\xC7X\x14a\x03'W\x80c&\x1F\x84\xE0\x14a\x03:W[__\xFD[a\x02\xB9a\x02\xB46`\x04aI\xB7V[a\x07sV[`@Qa\x02\xC6\x91\x90aJ)V[`@Q\x80\x91\x03\x90\xF3[a\x02\xE2a\x02\xDD6`\x04aJ7V[a\x07\x9BV[`@Q\x90\x15\x15\x81R` \x01a\x02\xC6V[a\x03\x05a\x03\x006`\x04aJkV[a\x08\x16V[\0[a\x03\x1Aa\x03\x156`\x04aJ\x82V[a\x08\xF0V[`@Qa\x02\xC6\x91\x90aK\0V[a\x02\xE2a\x0356`\x04aK\x12V[a\n\x07V[a\x03\x05a\x03H6`\x04aKlV[a\n8V[a\x03t\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xC6V[a\x03\x9Ca\x03\x976`\x04aLQV[a\r\x13V[`@Qa\x02\xC6\x91\x90aL\xF4V[a\x03\x9Ca\x03\xB76`\x04aMWV[a\r)V[a\x03\xCFa\x03\xCA6`\x04aJ\x82V[a\r\xC8V[`@Qa\x02\xC6\x91\x90aM\xDBV[a\x03\x05a\x03\xEA6`\x04aM\xEFV[a\r\xF7V[a\x04\x02a\x03\xFD6`\x04aNAV[a\x15\xDBV[`@Qa\x02\xC6\x92\x91\x90aN\xA8V[a\x04#a\x04\x1E6`\x04aK\x12V[a\x17FV[`@Qa\x02\xC6\x91\x90aO\x05V[a\x03\xCF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x04ja\x04e6`\x04aO\x17V[a\x17jV[`@Qa\x02\xC6\x91\x90aOZV[a\x03\x05a\x04\x856`\x04aO\xA5V[a\x18\x12V[a\x03\x05a\x04\x986`\x04aP%V[a\x18\xCCV[a\x04ja\x04\xAB6`\x04aP\x83V[a\x1A*V[a\x04\xB8a\x1A\xD2V[`@Qa\x02\xC6\x91\x90aP\xC5V[a\x03\x05a\x04\xD36`\x04aQ\x10V[a\x1B\x02V[a\x03\x05a\x1C\nV[a\x02\xE2a\x04\xEE6`\x04aQ:V[`fT`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`fT[`@Q\x90\x81R` \x01a\x02\xC6V[a\x02\xE2a\x05#6`\x04aJ7V[a\x1C\xBEV[a\x05;a\x0566`\x04aNAV[a\x1C\xCFV[`@Q`\x01`\x01`@\x1B\x03\x90\x91\x16\x81R` \x01a\x02\xC6V[a\x03\x05a\x05a6`\x04aQpV[a\x1C\xE4V[a\x04#a\x05t6`\x04aK\x12V[a \xC5V[a\x03\x05a \xD6V[a\x03\x1Aa\x05\x8F6`\x04aJ\x82V[a \xE7V[a\x03t\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03\xCF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x05\xF5a\x05\xF06`\x04aQ\xA1V[a!\xC1V[`@Qa\x02\xC6\x91\x90aQ\xE4V[`3T`\x01`\x01`\xA0\x1B\x03\x16a\x03\xCFV[a\x04ja\x06!6`\x04aQ\xF6V[a\"mV[a\x03\x05a\x0646`\x04aRQV[a#YV[a\x05;a\x06G6`\x04aNAV[a(\x05V[a\x03\x05a\x06Z6`\x04aS\xFAV[a(4V[a\x03\x05a\x06m6`\x04aTxV[a(\xE6V[a\x05\x07a\x06\x806`\x04aK\x12V[a,FV[a\x03\x05a\x06\x936`\x04aP%V[a,hV[a\x06\xABa\x06\xA66`\x04aJ\x82V[a-\xC2V[`@\x80Q\x92\x15\x15\x83Rc\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x02\xC6V[a\x05\x07a\x06\xD56`\x04aJ\x82V[a.ZV[a\x04#a\x06\xE86`\x04aJ7V[a.zV[a\x03\x05a\x06\xFB6`\x04aT\xBAV[a.\xA3V[a\x03\x05a\x07\x0E6`\x04aNAV[a/\xC0V[a\x03\xCF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03\x05a\x07H6`\x04aJ\x82V[a0\xE7V[a\x05;a\x07[6`\x04aNAV[a1`V[a\x03\x05a\x07n6`\x04aJkV[a1lV[a\x07{aH\xA8V[_a\x07\x8F\x85a\x07\x89\x86a2\x82V[\x85a2\xE5V[\x92PPP[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9E` R`@\x81 \x81\x90\x81a\x07\xBE\x85a2\x82V[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_ \x81Q\x80\x83\x01\x90\x92RT`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x90\x91\x04c\xFF\xFF\xFF\xFF\x16\x92\x82\x01\x92\x90\x92R\x91P\x80a\x08\x0CWP\x80` \x01Qc\xFF\xFF\xFF\xFF\x16C\x11\x15[\x91PP[\x92\x91PPV[`@Qc#}\xFBG`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cF\xFB\xF6\x8E\x90a\x08b\x903\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08}W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xA1\x91\x90aT\xE4V[a\x08\xBEW`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x81\x81\x16\x81\x14a\x08\xE3W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xEC\x82a4EV[PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9D` R`@\x81 ``\x91\x90a\t\x14\x90a4\x82V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\t/Wa\t/aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\tsW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\tMW\x90P[P\x90P_[\x82\x81\x10\x15a\t\xFFW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a\t\xDA\x90a\t\xA5\x90\x83a4\x8BV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01RP`@\x80Q\x80\x82\x01\x90\x91R``\x82\x90\x1C\x81Rc\xFF\xFF\xFF\xFF\x90\x91\x16` \x82\x01R\x90V[\x82\x82\x81Q\x81\x10a\t\xECWa\t\xECaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\txV[P\x93\x92PPPV[` \x80\x82\x01Q\x82Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x92R`@\x82 a\x08\x10\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a4\x96\x16V[\x82a\nB\x81a4\xADV[a\n_W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xA4` R`@\x90 T`\xFF\x16a\n\x97W`@QcH\xF7\xDB\xB9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x82\x81\x10\x15a\r\x0CW_`@Q\x80`@\x01`@R\x80\x87`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86\x86\x85\x81\x81\x10a\n\xCEWa\n\xCEaU\x03V[\x90P` \x02\x81\x01\x90a\n\xE0\x91\x90aU\x17V[a\n\xEE\x90` \x81\x01\x90aU5V[c\xFF\xFF\xFF\xFF\x16\x81RP\x90Pa\x0B8\x81` \x01Qc\xFF\xFF\xFF\xFF\x16`\x98_\x89`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ a5W\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x0BUW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x7F1b\x92\x85\xEA\xD23Z\xE0\x93?\x86\xED*\xE63!\xF7\xAFw\xB4\xE6\xEA\xAB\xC4,\x05x\x80\x97~l`@Q\x80`@\x01`@R\x80\x88`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x83` \x01Qc\xFF\xFF\xFF\xFF\x16\x81RP`@Qa\x0B\xAB\x91\x90aUNV[`@Q\x80\x91\x03\x90\xA1_a\x0B\xBD\x82a2\x82V[\x90P_[\x86\x86\x85\x81\x81\x10a\x0B\xD3Wa\x0B\xD3aU\x03V[\x90P` \x02\x81\x01\x90a\x0B\xE5\x91\x90aU\x17V[a\x0B\xF3\x90` \x81\x01\x90aU\\V[\x90P\x81\x10\x15a\r\x01Wa\x0Ci\x87\x87\x86\x81\x81\x10a\x0C\x11Wa\x0C\x11aU\x03V[\x90P` \x02\x81\x01\x90a\x0C#\x91\x90aU\x17V[a\x0C1\x90` \x81\x01\x90aU\\V[\x83\x81\x81\x10a\x0CAWa\x0CAaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x0CV\x91\x90aJ\x82V[_\x84\x81R`\x99` R`@\x90 \x90a5bV[P\x7Fz\xB2`\xFE\n\xF1\x93\xDB_I\x86w\r\x83\x1B\xDAN\xA4`\x99\xDC\x81~\x8Bg\x16\xDC\xAE\x8A\xF8\xE8\x8B\x83\x88\x88\x87\x81\x81\x10a\x0C\x9EWa\x0C\x9EaU\x03V[\x90P` \x02\x81\x01\x90a\x0C\xB0\x91\x90aU\x17V[a\x0C\xBE\x90` \x81\x01\x90aU\\V[\x84\x81\x81\x10a\x0C\xCEWa\x0C\xCEaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x0C\xE3\x91\x90aJ\x82V[`@Qa\x0C\xF1\x92\x91\x90aU\xA1V[`@Q\x80\x91\x03\x90\xA1`\x01\x01a\x0B\xC1V[PPP`\x01\x01a\n\x99V[PPPPPV[``a\r!\x84\x84\x84Ca5vV[\x94\x93PPPPV[``a\r7\x85\x85\x85\x85a5vV[\x90P_[\x84Q\x81\x10\x15a\r\xBFWa\rg\x85\x82\x81Q\x81\x10a\rYWa\rYaU\x03V[` \x02` \x01\x01Q\x87a\x07\x9BV[a\r\xB7W_[\x84Q\x81\x10\x15a\r\xB5W_\x83\x83\x81Q\x81\x10a\r\x89Wa\r\x89aU\x03V[` \x02` \x01\x01Q\x82\x81Q\x81\x10a\r\xA2Wa\r\xA2aU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\rmV[P[`\x01\x01a\r;V[P\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x90\x81R`\x97` R`@\x81 T\x90\x91\x16\x80\x15a\r\xF0W\x80a\x07\x94V[P\x90\x91\x90PV[`fT`\x01\x90`\x02\x90\x81\x16\x03a\x0E W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a\x0E*\x81a4\xADV[a\x0EGW`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_`@Q\x80`@\x01`@R\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x85` \x01` \x81\x01\x90a\x0Eu\x91\x90aU5V[c\xFF\xFF\xFF\xFF\x16\x90R\x90Pa\x0E\x8C``\x85\x01\x85aU\\V[\x90Pa\x0E\x9B`@\x86\x01\x86aU\\V[\x90P\x14a\x0E\xBBW`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[` \x80\x82\x01Q\x82Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x92R`@\x90\x91 a\x0E\xED\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a4\x96\x16V[a\x0F\nW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0F a\x0F\x1A` \x86\x01\x86aJ\x82V[\x82a\x07\x9BV[a\x0F=W`@Qc\xEB\xBF\xF4\x97`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x0FK`@\x86\x01\x86aU\\V[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0FdWa\x0FdaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0F\x8DW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[a\x0F\x9F`@\x87\x01\x87aU\\V[\x90P\x81\x10\x15a\x15mW\x80\x15\x80a\x102WPa\x0F\xBD`@\x87\x01\x87aU\\V[a\x0F\xC8`\x01\x84aU\xDBV[\x81\x81\x10a\x0F\xD7Wa\x0F\xD7aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x0F\xEC\x91\x90aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16a\x10\x02`@\x88\x01\x88aU\\V[\x83\x81\x81\x10a\x10\x12Wa\x10\x12aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x10'\x91\x90aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x11[a\x10OW`@Qc\x9F\x1C\x80S`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x10\\``\x87\x01\x87aU\\V[\x82\x81\x81\x10a\x10lWa\x10laU\x03V[\x90P` \x02\x015_\x10\x80\x15a\x10\xACWPg\r\xE0\xB6\xB3\xA7d\0\0a\x10\x92``\x88\x01\x88aU\\V[\x83\x81\x81\x10a\x10\xA2Wa\x10\xA2aU\x03V[\x90P` \x02\x015\x11\x15[a\x10\xC9W`@Qc\x13S`1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11%a\x10\xD9`@\x88\x01\x88aU\\V[\x83\x81\x81\x10a\x10\xE9Wa\x10\xE9aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x10\xFE\x91\x90aJ\x82V[`\x99_a\x11\n\x87a2\x82V[\x81R` \x01\x90\x81R` \x01_ a8c\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x11BW`@Qc1\xBC4'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80a\x11\x94a\x11T` \x8A\x01\x8AaJ\x82V[a\x11]\x87a2\x82V[a\x11j`@\x8C\x01\x8CaU\\V[\x87\x81\x81\x10a\x11zWa\x11zaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x11\x8F\x91\x90aJ\x82V[a2\xE5V[\x80Q\x91\x93P\x91P`\x01`\x01`@\x1B\x03\x16_\x03a\x11\xB1WPPa\x15eV[_a\x11\xECa\x11\xC2``\x8B\x01\x8BaU\\V[\x86\x81\x81\x10a\x11\xD2Wa\x11\xD2aU\x03V[\x85Q`\x01`\x01`@\x1B\x03\x16\x92` \x90\x91\x02\x015\x90Pa8\x84V[\x83Q\x90\x91Pa\x12\x07`\x01`\x01`@\x1B\x03\x80\x84\x16\x90\x83\x16a8\x9AV[\x86\x86\x81Q\x81\x10a\x12\x19Wa\x12\x19aU\x03V[` \x02` \x01\x01\x81\x81RPP\x81\x83_\x01\x81\x81Qa\x126\x91\x90aU\xEEV[`\x01`\x01`@\x1B\x03\x16\x90RP\x83Q\x82\x90\x85\x90a\x12S\x90\x83\x90aU\xEEV[`\x01`\x01`@\x1B\x03\x16\x90RP` \x84\x01\x80Q\x83\x91\x90a\x12s\x90\x83\x90aU\xEEV[`\x01`\x01`@\x1B\x03\x16\x90RP` \x83\x01Q_`\x0F\x91\x90\x91\x0B\x12\x15a\x13xW_a\x12\xD6a\x12\xA2``\x8D\x01\x8DaU\\V[\x88\x81\x81\x10a\x12\xB2Wa\x12\xB2aU\x03V[\x90P` \x02\x015\x85` \x01Qa\x12\xC7\x90aV\rV[`\x01`\x01`\x80\x1B\x03\x16\x90a8\x84V[\x90P\x80`\x01`\x01`@\x1B\x03\x16\x84` \x01\x81\x81Qa\x12\xF3\x91\x90aV.V[`\x0F\x0B\x90RP_Q` a[7_9_Q\x90_Ra\x13\x14` \x8D\x01\x8DaJ\x82V[\x89a\x13\"`@\x8F\x01\x8FaU\\V[\x8A\x81\x81\x10a\x132Wa\x132aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x13G\x91\x90aJ\x82V[a\x13X\x88_\x01Q\x89` \x01Qa8\xAEV[\x88`@\x01Q`@Qa\x13n\x95\x94\x93\x92\x91\x90aV[V[`@Q\x80\x91\x03\x90\xA1P[a\x13\xCAa\x13\x88` \x8C\x01\x8CaJ\x82V[a\x13\x91\x89a2\x82V[a\x13\x9E`@\x8E\x01\x8EaU\\V[\x89\x81\x81\x10a\x13\xAEWa\x13\xAEaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x13\xC3\x91\x90aJ\x82V[\x87\x87a8\xCDV[_Q` a[7_9_Q\x90_Ra\x13\xE5` \x8C\x01\x8CaJ\x82V[\x88a\x13\xF3`@\x8E\x01\x8EaU\\V[\x89\x81\x81\x10a\x14\x03Wa\x14\x03aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x14\x18\x91\x90aJ\x82V[\x86Q`@Qa\x14,\x94\x93\x92\x91\x90C\x90aV[V[`@Q\x80\x91\x03\x90\xA1a\x14}a\x14D` \x8C\x01\x8CaJ\x82V[a\x14Q`@\x8D\x01\x8DaU\\V[\x88\x81\x81\x10a\x14aWa\x14aaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x14v\x91\x90aJ\x82V[\x86Qa;\x01V[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c`\x1B\xB3oa\x14\xB9` \x8D\x01\x8DaJ\x82V[a\x14\xC6`@\x8E\x01\x8EaU\\V[\x89\x81\x81\x10a\x14\xD6Wa\x14\xD6aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x14\xEB\x91\x90aJ\x82V[\x87Q`@Q`\xE0\x85\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R`\x01`\x01`\xA0\x1B\x03\x93\x84\x16`\x04\x82\x01R\x92\x90\x91\x16`$\x83\x01R`\x01`\x01`@\x1B\x03\x80\x86\x16`D\x84\x01R\x16`d\x82\x01R`\x84\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x15JW__\xFD[PZ\xF1\x15\x80\x15a\x15\\W=__>=_\xFD[PPPPPPPP[`\x01\x01a\x0F\x92V[P\x7F\x80\x96\x9A\xD2\x94(\xD6y~\xE7\xAA\xD0\x84\xF9\xE4\xA4*\x82\xFCPm\xCD,\xA3\xB6\xFBC\x1F\x85\xCC\xEB\xE5a\x15\x9C` \x87\x01\x87aJ\x82V[\x83a\x15\xAA`@\x89\x01\x89aU\\V[\x85a\x15\xB8`\x80\x8C\x01\x8CaV\xACV[`@Qa\x15\xCB\x97\x96\x95\x94\x93\x92\x91\x90aW\x16V[`@Q\x80\x91\x03\x90\xA1PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9D` R`@\x81 ``\x91\x82\x91a\x16\0\x90a4\x82V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\x1BWa\x16\x1BaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16_W\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x169W\x90P[P\x90P_\x82`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16{Wa\x16{aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16\xB4W\x81` \x01[a\x16\xA1aH\xA8V[\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x16\x99W\x90P[P\x90P_[\x83\x81\x10\x15a\x177W`\x01`\x01`\xA0\x1B\x03\x88\x16_\x90\x81R`\x9D` R`@\x81 a\x16\xE6\x90a\t\xA5\x90\x84a4\x8BV[\x90P\x80\x84\x83\x81Q\x81\x10a\x16\xFBWa\x16\xFBaU\x03V[` \x02` \x01\x01\x81\x90RPa\x17\x11\x89\x82\x8Aa\x07sV[\x83\x83\x81Q\x81\x10a\x17#Wa\x17#aU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01RP`\x01\x01a\x16\xB9V[P\x90\x93P\x91PP[\x92P\x92\x90PV[``_a\x07\x94`\x99_a\x17X\x86a2\x82V[\x81R` \x01\x90\x81R` \x01_ a;cV[``_\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x17\x86Wa\x17\x86aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x17\xAFW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x84Q\x81\x10\x15a\t\xFFWa\x17\xE0\x85\x82\x81Q\x81\x10a\x17\xD2Wa\x17\xD2aU\x03V[` \x02` \x01\x01Q\x85a(\x05V[\x82\x82\x81Q\x81\x10a\x17\xF2Wa\x17\xF2aU\x03V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x17\xB4V[`fT_\x90`\x01\x90\x81\x16\x03a\x18:W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83\x82\x14a\x18ZW`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x84\x81\x10\x15a\x18\xC3Wa\x18\xBB\x87\x87\x87\x84\x81\x81\x10a\x18zWa\x18zaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x18\x8F\x91\x90aJ\x82V[\x86\x86\x85\x81\x81\x10a\x18\xA1Wa\x18\xA1aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x18\xB6\x91\x90aW\xACV[a;oV[`\x01\x01a\x18\\V[PPPPPPPV[\x83a\x18\xD6\x81a4\xADV[a\x18\xF3W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R`\x01`\x01`\xA0\x1B\x03\x86\x16\x81Rc\xFF\xFF\xFF\xFF\x85\x16` \x82\x01R_a\x19\x1F\x82a2\x82V[\x90Pa\x19`\x82` \x01Qc\xFF\xFF\xFF\xFF\x16`\x98_\x8A`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ a4\x96\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x19}W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x84\x81\x10\x15a\x1A Wa\x19\x9C\x86\x86\x83\x81\x81\x10a\x0CAWa\x0CAaU\x03V[a\x19\xB9W`@QcX\\\xFB/`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x7Fz\xB2`\xFE\n\xF1\x93\xDB_I\x86w\r\x83\x1B\xDAN\xA4`\x99\xDC\x81~\x8Bg\x16\xDC\xAE\x8A\xF8\xE8\x8B\x83\x87\x87\x84\x81\x81\x10a\x19\xEDWa\x19\xEDaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x1A\x02\x91\x90aJ\x82V[`@Qa\x1A\x10\x92\x91\x90aU\xA1V[`@Q\x80\x91\x03\x90\xA1`\x01\x01a\x19\x7FV[PPPPPPPPV[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1AFWa\x1AFaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1AoW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a\t\xFFWa\x1A\xA0\x85\x85\x83\x81Q\x81\x10a\x1A\x93Wa\x1A\x93aU\x03V[` \x02` \x01\x01Qa(\x05V[\x82\x82\x81Q\x81\x10a\x1A\xB2Wa\x1A\xB2aU\x03V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x1AtV[``a\x1A\xFD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a<sV[\x90P\x90V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x1C\0Wa\x1B;\x82a4\xADV[a\x1BXW`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Qc6\xB8{\xD7`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cmp\xF7\xAE\x90a\x1B\xA4\x90\x85\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xBFW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B\xE3\x91\x90aT\xE4V[a\x1C\0W`@Qc\xCC\xEA\x9Eo`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xEC\x82\x82a<\xB0V[`@Qc#}\xFBG`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cF\xFB\xF6\x8E\x90a\x1CV\x903\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1CqW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\x95\x91\x90aT\xE4V[a\x1C\xB2W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1C\xBC_\x19a4EV[V[_a\x07\x94\x83`\x9A_a\x11\n\x86a2\x82V[__a\x1C\xDB\x84\x84a>RV[\x95\x94PPPPPV[`fT`\x02\x90`\x04\x90\x81\x16\x03a\x1D\rW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1D\"a\x1D\x1D` \x84\x01\x84aJ\x82V[a4\xADV[\x80a\x1D;WPa\x1D;a\x1D\x1D`@\x84\x01` \x85\x01aJ\x82V[a\x1DXW`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[a\x1Dg`@\x84\x01\x84aU\\V[\x90P\x81\x10\x15a )W_`@Q\x80`@\x01`@R\x80\x85` \x01` \x81\x01\x90a\x1D\x8F\x91\x90aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x1D\xAA`@\x87\x01\x87aU\\V[\x85\x81\x81\x10a\x1D\xBAWa\x1D\xBAaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x1D\xCF\x91\x90aU5V[c\xFF\xFF\xFF\xFF\x16\x81RP\x90Pa\x1E\x1C\x81` \x01Qc\xFF\xFF\xFF\xFF\x16`\x98_\x87` \x01` \x81\x01\x90a\x1D\xFE\x91\x90aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x90a4\x96V[a\x1E9W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x9E_a\x1EI` \x87\x01\x87aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _a\x1Er\x83a2\x82V[\x81R` \x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16a\x1E\xA2W`@Qc%\x13\x1DO`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1E\xDCa\x1E\xAE\x82a2\x82V[`\x9C_a\x1E\xBE` \x89\x01\x89aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x90a?\xC1V[Pa\x1F\x14a\x1E\xED` \x86\x01\x86aJ\x82V[`\x9A_a\x1E\xF9\x85a2\x82V[\x81R` \x01\x90\x81R` \x01_ a?\xCC\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[Pa\x1F\"` \x85\x01\x85aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x7F\xAD4\xC3\x07\x0B\xE1\xDF\xFB\xCA\xA4\x99\xD0\0\xBA+\x8D\x98H\xAE\xFC\xAC0Y\xDF$]\xD9\\N\xCE\x14\xFE\x82`@Qa\x1FZ\x91\x90aUNV[`@Q\x80\x91\x03\x90\xA2`@\x80Q\x80\x82\x01\x90\x91R_\x81R` \x81\x01a\x1F\x9D\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CaW\xCDV[c\xFF\xFF\xFF\xFF\x16\x90R`\x9E_a\x1F\xB5` \x88\x01\x88aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _a\x1F\xDE\x84a2\x82V[\x81R` \x80\x82\x01\x92\x90\x92R`@\x01_ \x82Q\x81T\x93\x90\x92\x01Qc\xFF\xFF\xFF\xFF\x16a\x01\0\x02d\xFF\xFF\xFF\xFF\0\x19\x92\x15\x15\x92\x90\x92\x16d\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x92\x90\x92\x17\x17\x90UP`\x01\x01a\x1DZV[Pa =a\x03\xCA`@\x84\x01` \x85\x01aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16c0<\xA9Va X` \x85\x01\x85aJ\x82V[a h`@\x86\x01` \x87\x01aJ\x82V[a u`@\x87\x01\x87aU\\V[`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a \x94\x94\x93\x92\x91\x90aX\"V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a \xABW__\xFD[PZ\xF1\x15\x80\x15a \xBDW=__>=_\xFD[PPPPPPV[``a\x08\x10`\x9A_a\x17X\x85a2\x82V[a \xDEa?\xE0V[a\x1C\xBC_a@:V[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9C` R`@\x81 ``\x91\x90a!\x0B\x90a4\x82V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a!&Wa!&aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a!jW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a!DW\x90P[P\x90P_[\x82\x81\x10\x15a\t\xFFW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9C` R`@\x90 a!\x9C\x90a\t\xA5\x90\x83a4\x8BV[\x82\x82\x81Q\x81\x10a!\xAEWa!\xAEaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a!oV[``_\x84Q`\x01`\x01`@\x1B\x03\x81\x11\x15a!\xDDWa!\xDDaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\"\x16W\x81` \x01[a\"\x03aH\xA8V[\x81R` \x01\x90`\x01\x90\x03\x90\x81a!\xFBW\x90P[P\x90P_[\x85Q\x81\x10\x15a\r\xBFWa\"H\x86\x82\x81Q\x81\x10a\"9Wa\"9aU\x03V[` \x02` \x01\x01Q\x86\x86a\x07sV[\x82\x82\x81Q\x81\x10a\"ZWa\"ZaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\"\x1BV[``_\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\"\x89Wa\"\x89aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\"\xB2W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x84Q\x81\x10\x15a\r\xBFW`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xA1` R`@\x81 \x86Qa#'\x92\x87\x92\x91\x89\x90\x86\x90\x81\x10a\"\xF2Wa\"\xF2aU\x03V[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ a@\x8B\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82\x82\x81Q\x81\x10a#9Wa#9aU\x03V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\"\xB7V[`fT_\x90`\x01\x90\x81\x16\x03a#\x81W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a#\x8A\x83a4\xADV[a#\xA7W`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___a#\xB3\x86a-\xC2V[\x91P\x91P\x81a#\xD5W`@Qc\xFAU\xFC\x81`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x91P_\x90P[\x83Q\x81\x10\x15a\r\x0CW\x83\x81\x81Q\x81\x10a#\xF6Wa#\xF6aU\x03V[` \x02` \x01\x01Q`@\x01QQ\x84\x82\x81Q\x81\x10a$\x15Wa$\x15aU\x03V[` \x02` \x01\x01Q` \x01QQ\x14a$@W`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x84\x82\x81Q\x81\x10a$SWa$SaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01QQ\x80\x82\x01Q\x81Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x93R`@\x90\x92 \x90\x92Pa$\x93\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a4\x96\x16V[a$\xB0W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a$\xBB\x87\x83a\x07\x9BV[\x90P_[\x86\x84\x81Q\x81\x10a$\xD1Wa$\xD1aU\x03V[` \x02` \x01\x01Q` \x01QQ\x81\x10\x15a'\xFAW_\x87\x85\x81Q\x81\x10a$\xF8Wa$\xF8aU\x03V[` \x02` \x01\x01Q` \x01Q\x82\x81Q\x81\x10a%\x15Wa%\x15aU\x03V[` \x02` \x01\x01Q\x90Pa%,\x89\x82a\xFF\xFFa;oV[__a%;\x8Ba\x07\x89\x88a2\x82V[\x91P\x91P\x80`@\x01Qc\xFF\xFF\xFF\xFF\x16_\x14a%iW`@Qc\r\x8F\xCB\xE3`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a%v\x87\x85\x84\x89a@\x9FV[\x90Pa%\xBB\x82_\x01Q\x8C\x8A\x81Q\x81\x10a%\x91Wa%\x91aU\x03V[` \x02` \x01\x01Q`@\x01Q\x87\x81Q\x81\x10a%\xAEWa%\xAEaU\x03V[` \x02` \x01\x01Qa@\xD5V[`\x0F\x0B` \x83\x01\x81\x90R_\x03a%\xE4W`@QcF\x06\x17\x93`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x82` \x01Q`\x0F\x0B\x12\x15a'(W\x80\x15a&\xAAWa&ea&\x05\x88a2\x82V[`\x01`\x01`\xA0\x1B\x03\x80\x8F\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R \x90\x81T`\x01`\x80\x1B\x90\x81\x90\x04`\x0F\x0B_\x81\x81R`\x01\x80\x86\x01` R`@\x90\x91 \x93\x90\x93U\x83T`\x01`\x01`\x80\x1B\x03\x90\x81\x16\x93\x90\x91\x01\x16\x02\x17\x90UV[a&\x8F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CaW\xCDV[a&\x9A\x90`\x01aW\xCDV[c\xFF\xFF\xFF\xFF\x16`@\x83\x01Ra'\x95V[a&\xBC\x83` \x01Q\x83` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x16` \x84\x01R\x8AQ\x8B\x90\x89\x90\x81\x10a&\xDEWa&\xDEaU\x03V[` \x02` \x01\x01Q`@\x01Q\x85\x81Q\x81\x10a&\xFBWa&\xFBaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q`\x01`\x01`@\x1B\x03\x16\x83R_\x90\x83\x01Rc\xFF\xFF\xFF\xFFC\x16`@\x83\x01Ra'\x95V[_\x82` \x01Q`\x0F\x0B\x13\x15a'\x95Wa'I\x83` \x01Q\x83` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x90\x81\x16` \x85\x01\x81\x90R\x84Q\x90\x91\x16\x10\x15a'\x7FW`@Qcl\x9B\xE0\xBF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a'\x89\x89CaW\xCDV[c\xFF\xFF\xFF\xFF\x16`@\x83\x01R[a'\xAA\x8Ca'\xA2\x89a2\x82V[\x86\x86\x86a8\xCDV[_Q` a[7_9_Q\x90_R\x8C\x88\x86a'\xCC\x86_\x01Q\x87` \x01Qa8\xAEV[\x86`@\x01Q`@Qa'\xE2\x95\x94\x93\x92\x91\x90aV[V[`@Q\x80\x91\x03\x90\xA1PP`\x01\x90\x92\x01\x91Pa$\xBF\x90PV[PPP`\x01\x01a#\xDBV[`\x01`\x01`\xA0\x1B\x03\x80\x83\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x85\x16\x83R\x92\x90R\x90\x81 a\x07\x94\x90a@\xECV[\x82a(>\x81a4\xADV[a([W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xA4` R`@\x90 T`\xFF\x16a(\x9DW`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xA4` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U[\x83`\x01`\x01`\xA0\x1B\x03\x16\x7F\xA8\x9C\x1D\xC2C\xD8\x90\x8A\x96\xDD\x84\x94K\xCC\x97\xD6\xBCj\xC0\r\xD7\x8E b\x15v\xBEj<\x947\x13\x84\x84`@Qa(\xD8\x92\x91\x90aXNV[`@Q\x80\x91\x03\x90\xA2PPPPV[`fT`\x02\x90`\x04\x90\x81\x16\x03a)\x0FW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a)\x19\x81a4\xADV[a)6W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Qc6\xB8{\xD7`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cmp\xF7\xAE\x90a)\x82\x90\x87\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)\x9DW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)\xC1\x91\x90aT\xE4V[a)\xDEW`@Qc\xCC\xEA\x9Eo`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[a)\xED` \x85\x01\x85aU\\V[\x90P\x81\x10\x15a+\xB5W`@\x80Q\x80\x82\x01\x90\x91R_\x90\x80a*\x10` \x88\x01\x88aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86\x80` \x01\x90a*.\x91\x90aU\\V[\x85\x81\x81\x10a*>Wa*>aU\x03V[\x90P` \x02\x01` \x81\x01\x90a*S\x91\x90aU5V[c\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x91R` \x80\x83\x01Q\x83Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x92R`@\x90\x91 \x92\x93Pa*\x8F\x92\x91\x90\x81\x16\x90a4\x96\x16V[a*\xACW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a*\xB6\x86\x82a\x07\x9BV[\x15a*\xD4W`@Qclln'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a*\xFDa*\xE0\x82a2\x82V[`\x01`\x01`\xA0\x1B\x03\x88\x16_\x90\x81R`\x9C` R`@\x90 \x90a5WV[Pa+)\x86`\x9A_a+\x0E\x85a2\x82V[\x81R` \x01\x90\x81R` \x01_ a5b\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[P\x85`\x01`\x01`\xA0\x1B\x03\x16\x7FC#.\xDF\x90qu=#!\xE5\xFA~\x01\x83c\xEE$\x8E_!B\xE6\xC0\x8E\xDD2e\xBF\xB4\x89^\x82`@Qa+c\x91\x90aUNV[`@Q\x80\x91\x03\x90\xA2`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\x9E` R`@\x81 `\x01\x91a+\x8E\x84a2\x82V[\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90UP`\x01\x01a)\xE0V[Pa+\xC6a\x03\xCA` \x85\x01\x85aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16c\xC6?\xD5\x02\x85a+\xE2` \x87\x01\x87aJ\x82V[a+\xEF` \x88\x01\x88aU\\V[a+\xFC`@\x8A\x01\x8AaV\xACV[`@Q\x87c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a,\x1D\x96\x95\x94\x93\x92\x91\x90aXaV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a,4W__\xFD[PZ\xF1\x15\x80\x15a\x1A W=__>=_\xFD[_a\x08\x10`\x9A_a,V\x85a2\x82V[\x81R` \x01\x90\x81R` \x01_ a4\x82V[\x83a,r\x81a4\xADV[a,\x8FW`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x82R`\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x82Rc\xFF\xFF\xFF\xFF\x80\x88\x16` \x80\x85\x01\x82\x90R_\x93\x84R`\x98\x90R\x93\x90\x91 \x91\x92a,\xCE\x92\x91a4\x96\x16V[a,\xEBW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a,\xF5\x82a2\x82V[\x90P_[\x84\x81\x10\x15a\x1A Wa->\x86\x86\x83\x81\x81\x10a-\x16Wa-\x16aU\x03V[\x90P` \x02\x01` \x81\x01\x90a-+\x91\x90aJ\x82V[_\x84\x81R`\x99` R`@\x90 \x90a?\xCCV[a-[W`@Qc1\xBC4'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x7F{K\x07=\x80\xDC\xACU\xA1\x11w\xD8E\x9A\xD9\xF6d\xCE\xEB\x91\xF7\x1F'\x16{\xB1O\x81R\xA7\xEE\xEE\x83\x87\x87\x84\x81\x81\x10a-\x8FWa-\x8FaU\x03V[\x90P` \x02\x01` \x81\x01\x90a-\xA4\x91\x90aJ\x82V[`@Qa-\xB2\x92\x91\x90aU\xA1V[`@Q\x80\x91\x03\x90\xA1`\x01\x01a,\xF9V[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9B` \x90\x81R`@\x80\x83 \x81Q`\x80\x81\x01\x83R\x90Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x80\x84R`\xFF`\x01` \x1B\x84\x04\x16\x15\x15\x95\x84\x01\x86\x90R`\x01`(\x1B\x83\x04\x82\x16\x94\x84\x01\x94\x90\x94R`\x01`H\x1B\x90\x91\x04\x16``\x82\x01\x81\x90R\x84\x93\x91\x92\x91\x90\x15\x80\x15\x90a.AWP\x82``\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15[\x15a.PWPP`@\x81\x01Q`\x01[\x95\x90\x94P\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x98` R`@\x81 a\x08\x10\x90a4\x82V[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9F` R`@\x81 ``\x91\x90a\x08\x0C\x90\x82a\x17X\x86a2\x82V[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a.\xC1WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a.\xDAWP0;\x15\x80\x15a.\xDAWP_T`\xFF\x16`\x01\x14[a/BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[_\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a/cW_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a/l\x82a4EV[a/u\x83a@:V[\x80\x15a/\xBBW_\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01[`@Q\x80\x91\x03\x90\xA1[PPPV[\x81a/\xCA\x81a4\xADV[a/\xE7W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Qc\xB5&W\x87`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90c\xB5&W\x87\x90a0\x13\x90\x86\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0.W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0R\x91\x90aT\xE4V[a0oW`@Qc\x1D\x0B\x13\xC1`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16_\x90\x81R`\x97` R`@\x90 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x84\x16\x91\x90\x91\x17\x90U\x7F*\xE9E\xC4\x0CD\xDC\x0E\xC2c\xF9V\t\xC3\xFD\xC6\x95.\n\xEF\xA2-ct\xE4O,\x99z\xCE\xDF\x85\x83a0\xC7\x81a\r\xC8V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x91\x16` \x83\x01R\x01a/\xB2V[a0\xEFa?\xE0V[`\x01`\x01`\xA0\x1B\x03\x81\x16a1TW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a/9V[a1]\x81a@:V[PV[__a\r\xBF\x84\x84a>RV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a1\xC8W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a1\xEC\x91\x90aX\xADV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a2\x1DW`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x80\x19\x82\x19\x81\x16\x14a2DW`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`f\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01`@Q\x80\x91\x03\x90\xA2PPV[_\x81_\x01Q\x82` \x01Qc\xFF\xFF\xFF\xFF\x16`@Q` \x01a2\xCD\x92\x91\x90``\x92\x90\x92\x1Bk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x82R`\xA0\x1B`\x01`\x01`\xA0\x1B\x03\x19\x16`\x14\x82\x01R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x08\x10\x90aX\xC8V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra3\0aH\xA8V[`@\x80Q\x80\x82\x01\x82R`\x01`\x01`\xA0\x1B\x03\x80\x88\x16_\x90\x81R`\xA1` \x90\x81R\x84\x82 \x92\x88\x16\x82R\x91\x90\x91R\x91\x82 \x81\x90a39\x90a@\xECV[`\x01`\x01`@\x1B\x03\x90\x81\x16\x82R`\x01`\x01`\xA0\x1B\x03\x89\x81\x16_\x81\x81R`\xA2` \x90\x81R`@\x80\x83 \x94\x8C\x16\x80\x84R\x94\x82R\x80\x83 T\x86\x16\x96\x82\x01\x96\x90\x96R\x91\x81R`\xA0\x82R\x84\x81 \x8B\x82R\x82R\x84\x81 \x92\x81R\x91\x81R\x90\x83\x90 \x83Q``\x81\x01\x85R\x90T\x92\x83\x16\x81R`\x01`@\x1B\x83\x04`\x0F\x0B\x91\x81\x01\x91\x90\x91R`\x01`\xC0\x1B\x90\x91\x04c\xFF\xFF\xFF\xFF\x16\x91\x81\x01\x82\x90R\x91\x92PC\x10\x15a3\xDBW\x90\x92P\x90Pa4=V[a3\xEC\x81_\x01Q\x82` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x16\x81R` \x81\x01Q_`\x0F\x91\x90\x91\x0B\x12\x15a4*Wa4\x1B\x82` \x01Q\x82` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x16` \x83\x01R[_`@\x82\x01\x81\x90R` \x82\x01R\x90\x92P\x90P[\x93P\x93\x91PPV[`f\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[_a\x08\x10\x82T\x90V[_a\x07\x94\x83\x83a@\xFFV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x07\x94V[`@Qc\x1B\xEB+\x97`\xE3\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R3`$\x83\x01R0`D\x83\x01R_\x805`\x01`\x01`\xE0\x1B\x03\x19\x16`d\x84\x01R\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xDFY\\\xB8\x90`\x84\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a53W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\x10\x91\x90aT\xE4V[_a\x07\x94\x83\x83aA%V[_a\x07\x94\x83`\x01`\x01`\xA0\x1B\x03\x84\x16aA%V[``\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a5\x91Wa5\x91aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a5\xC4W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a5\xAFW\x90P[P\x90P_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xF0\xE0\xE6v\x86\x86`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a6\x16\x92\x91\x90aX\xEBV[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a60W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra6W\x91\x90\x81\x01\x90aY\x0FV[\x90P_[\x85Q\x81\x10\x15a8YW_\x86\x82\x81Q\x81\x10a6wWa6waU\x03V[` \x02` \x01\x01Q\x90P\x85Q`\x01`\x01`@\x1B\x03\x81\x11\x15a6\x9AWa6\x9AaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a6\xC3W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x84\x83\x81Q\x81\x10a6\xD6Wa6\xD6aU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R_[\x86Q\x81\x10\x15a8OW_\x87\x82\x81Q\x81\x10a6\xFFWa6\xFFaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA1\x84R`@\x80\x82 \x92\x84\x16\x82R\x91\x90\x93R\x82 \x90\x92Pa7:\x90a@\xECV[\x90P\x80`\x01`\x01`@\x1B\x03\x16_\x03a7SWPPa8GV[_a7_\x85\x8D\x85a\x07sV[\x90P\x88c\xFF\xFF\xFF\xFF\x16\x81`@\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15\x80\x15a7\x87WP_\x81` \x01Q`\x0F\x0B\x12[\x15a7\xA9Wa7\x9D\x81_\x01Q\x82` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x16\x81R[\x80Q_\x90a7\xC4\x90`\x01`\x01`@\x1B\x03\x90\x81\x16\x90\x85\x16a8\x9AV[\x90Pa8\x0B\x81\x89\x89\x81Q\x81\x10a7\xDCWa7\xDCaU\x03V[` \x02` \x01\x01Q\x87\x81Q\x81\x10a7\xF5Wa7\xF5aU\x03V[` \x02` \x01\x01QaAq\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x89\x88\x81Q\x81\x10a8\x1DWa8\x1DaU\x03V[` \x02` \x01\x01Q\x86\x81Q\x81\x10a86Wa86aU\x03V[` \x02` \x01\x01\x81\x81RPPPPPP[`\x01\x01a6\xE3V[PP`\x01\x01a6[V[PP\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x07\x94V[_a\x07\x94\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0`\x01aA\x85V[_a\x07\x94\x83g\r\xE0\xB6\xB3\xA7d\0\0\x84aA\xDEV[_a\x07\x94a8\xC5\x83`\x01`\x01`@\x1B\x03\x86\x16aV.V[`\x0F\x0BaB\xC3V[` \x80\x83\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x88\x16_\x90\x81R`\xA2\x84R`@\x80\x82 \x92\x88\x16\x82R\x91\x90\x93R\x90\x91 T`\x01`\x01`@\x1B\x03\x90\x81\x16\x91\x16\x14a9\x8FW` \x82\x81\x01\x80Q`\x01`\x01`\xA0\x1B\x03\x88\x81\x16_\x90\x81R`\xA2\x85R`@\x80\x82 \x92\x89\x16\x82R\x91\x90\x94R\x92\x83\x90 \x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01`\x01`@\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UQ\x90Q\x7F\xAC\xF9\t_\xEB:7\x0C\x9C\xF6\x92B\x1Ci\xEF2\rM\xB5\xC6nj})\xC7iN\xB0#d\xFCU\x91a9\x86\x91\x88\x91\x87\x91aZ\x1BV[`@Q\x80\x91\x03\x90\xA1[`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA0` \x90\x81R`@\x80\x83 \x88\x84R\x82R\x80\x83 \x93\x87\x16\x83R\x92\x81R\x90\x82\x90 \x83Q\x81T\x92\x85\x01Q\x93\x85\x01Qc\xFF\xFF\xFF\xFF\x16`\x01`\xC0\x1B\x02c\xFF\xFF\xFF\xFF`\xC0\x1B\x19`\x01`\x01`\x80\x1B\x03\x86\x16`\x01`@\x1B\x02`\x01`\x01`\xC0\x1B\x03\x19\x90\x95\x16`\x01`\x01`@\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x93\x90\x93\x17\x16\x91\x90\x91\x17\x90U`\x0F\x0B\x15a:qW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a:I\x90\x84a5bV[P`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a:k\x90\x85a5WV[Pa\r\x0CV[\x80Q`\x01`\x01`@\x1B\x03\x16_\x03a\r\x0CW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a:\xAE\x90\x84a?\xCCV[P`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a:\xDA\x90a4\x82V[_\x03a\r\x0CW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a \xBD\x90\x85a?\xC1V[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R a;0\x90C\x83aC.V[\x7F\x1CdX\x07\x9AA\x07}\0<\x11\xFA\xF9\xBF\t~i;\xD6yy\xE4\xE6P\x0B\xAC{)\xDBw\x9B\\\x83\x83\x83`@Qa/\xB2\x93\x92\x91\x90aZ\x1BV[``_a\x07\x94\x83aCBV[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R\x90\x81 T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x03[_\x81\x11\x80\x15a;\xB9WP\x82a\xFF\xFF\x16\x82\x10[\x15a\r\x0CW`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R\x90\x81 a;\xED\x90aC\x9BV[\x90P__a;\xFC\x88\x84\x89a2\xE5V[\x91P\x91P\x80`@\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15a<\x1AWPPPa\r\x0CV[a<'\x88\x84\x89\x85\x85a8\xCDV[`\x01`\x01`\xA0\x1B\x03\x80\x89\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R a<T\x90aC\xEDV[Pa<^\x85aZGV[\x94Pa<i\x84aZ_V[\x93PPPPa;\xA7V[``_a<\x7F\x83aDaV[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9B` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x90Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x83R`\xFF`\x01` \x1B\x83\x04\x16\x15\x15\x93\x83\x01\x93\x90\x93R`\x01`(\x1B\x81\x04\x83\x16\x93\x82\x01\x93\x90\x93R`\x01`H\x1B\x90\x92\x04\x16``\x82\x01\x81\x90R\x15\x80\x15\x90a=*WP\x80``\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15[\x15a=DW`@\x81\x01Qc\xFF\xFF\xFF\xFF\x16\x81R`\x01` \x82\x01R[c\xFF\xFF\xFF\xFF\x82\x16`@\x82\x01Ra=z\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CaW\xCDV[a=\x85\x90`\x01aW\xCDV[c\xFF\xFF\xFF\xFF\x90\x81\x16``\x83\x81\x01\x91\x82R`\x01`\x01`\xA0\x1B\x03\x86\x16_\x81\x81R`\x9B` \x90\x81R`@\x91\x82\x90 \x87Q\x81T\x83\x8A\x01Q\x85\x8B\x01Q\x98Q\x92\x8A\x16d\xFF\xFF\xFF\xFF\xFF\x19\x90\x92\x16\x91\x90\x91\x17`\x01` \x1B\x91\x15\x15\x91\x90\x91\x02\x17l\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x19\x16`\x01`(\x1B\x97\x89\x16\x97\x90\x97\x02c\xFF\xFF\xFF\xFF`H\x1B\x19\x16\x96\x90\x96\x17`\x01`H\x1B\x96\x88\x16\x96\x87\x02\x17\x90U\x81Q\x92\x83R\x94\x87\x16\x94\x82\x01\x94\x90\x94R\x92\x83\x01\x91\x90\x91R\x7FN\x85u\x1Dc1Pllb3_ ~\xB3\x1F\x12\xA6\x1EW\x0F4\xF5\xC1v@0\x87\x85\xC6\xD4\xDB\x91\x01a/\xB2V[`\x01`\x01`\xA0\x1B\x03\x82\x81\x16_\x81\x81R`\xA2` \x90\x81R`@\x80\x83 \x94\x86\x16\x80\x84R\x94\x82R\x80\x83 T\x93\x83R`\xA3\x82R\x80\x83 \x94\x83R\x93\x90R\x91\x82 T`\x01`\x01`@\x1B\x03\x90\x91\x16\x91\x90`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x03\x81[\x81\x81\x10\x15a?}W`\x01`\x01`\xA0\x1B\x03\x80\x87\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x89\x16\x83R\x92\x90R\x90\x81 a>\xE5\x90\x83aD\x88V[`\x01`\x01`\xA0\x1B\x03\x88\x81\x16_\x90\x81R`\xA0` \x90\x81R`@\x80\x83 \x85\x84R\x82R\x80\x83 \x93\x8B\x16\x83R\x92\x81R\x90\x82\x90 \x82Q``\x81\x01\x84R\x90T`\x01`\x01`@\x1B\x03\x81\x16\x82R`\x01`@\x1B\x81\x04`\x0F\x0B\x92\x82\x01\x92\x90\x92R`\x01`\xC0\x1B\x90\x91\x04c\xFF\xFF\xFF\xFF\x16\x91\x81\x01\x82\x90R\x91\x92PC\x10\x15a?`WPPa?}V[a?n\x86\x82` \x01Qa8\xAEV[\x95PPP\x80`\x01\x01\x90Pa>\xADV[P`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R \x83\x90a?\xAD\x90a@\xECV[a?\xB7\x91\x90aU\xEEV[\x91PP\x92P\x92\x90PV[_a\x07\x94\x83\x83aD\xF7V[_a\x07\x94\x83`\x01`\x01`\xA0\x1B\x03\x84\x16aD\xF7V[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x1C\xBCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a/9V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90_\x90\xA3PPV[_a\x07\x94\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0aE\xDAV[_a@\xB0\x84`\x99_a\x11\n\x89a2\x82V[\x80\x15a@\xB9WP\x81[\x80\x15a\x1C\xDBWPP\x90Q`\x01`\x01`@\x1B\x03\x16\x15\x15\x93\x92PPPV[_a\x07\x94`\x01`\x01`@\x1B\x03\x80\x85\x16\x90\x84\x16aZtV[_a\x08\x10\x82g\r\xE0\xB6\xB3\xA7d\0\0aF/V[_\x82_\x01\x82\x81T\x81\x10aA\x14WaA\x14aU\x03V[\x90_R` _ \x01T\x90P\x92\x91PPV[_\x81\x81R`\x01\x83\x01` R`@\x81 TaAjWP\x81T`\x01\x81\x81\x01\x84U_\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x08\x10V[P_a\x08\x10V[_a\x07\x94\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0aA\xDEV[__aA\x92\x86\x86\x86aA\xDEV[\x90P`\x01\x83`\x02\x81\x11\x15aA\xA8WaA\xA8aZ\xA1V[\x14\x80\x15aA\xC4WP_\x84\x80aA\xBFWaA\xBFaZ\xB5V[\x86\x88\t\x11[\x15a\x1C\xDBWaA\xD4`\x01\x82aZ\xC9V[\x96\x95PPPPPPV[_\x80\x80_\x19\x85\x87\t\x85\x87\x02\x92P\x82\x81\x10\x83\x82\x03\x03\x91PP\x80_\x03aB\x15W\x83\x82\x81aB\x0BWaB\x0BaZ\xB5V[\x04\x92PPPa\x07\x94V[\x80\x84\x11aB\\W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01RtMath: mulDiv overflow`X\x1B`D\x82\x01R`d\x01a/9V[_\x84\x86\x88\t`\x02`\x01\x87\x19\x81\x01\x88\x16\x97\x88\x90\x04`\x03\x81\x02\x83\x18\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x90\x81\x02\x90\x92\x03\x90\x91\x02_\x88\x90\x03\x88\x90\x04\x90\x91\x01\x85\x83\x11\x90\x94\x03\x93\x90\x93\x02\x93\x03\x94\x90\x94\x04\x91\x90\x91\x17\x02\x94\x93PPPPV[_`\x01`\x01`@\x1B\x03\x82\x11\x15aC*W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FSafeCast: value doesn't fit in 6`D\x82\x01Re4 bits`\xD0\x1B`d\x82\x01R`\x84\x01a/9V[P\x90V[a/\xBB\x83\x83`\x01`\x01`@\x1B\x03\x84\x16aFfV[``\x81_\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15aC\x8FW` \x02\x82\x01\x91\x90_R` _ \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11aC{W[PPPPP\x90P\x91\x90PV[_aC\xB5\x82T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x13\x15\x90V[\x15aC\xD3W`@Qc\x1E\xD9P\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x80T`\x0F\x0B_\x90\x81R`\x01\x90\x91\x01` R`@\x90 T\x90V[_aD\x07\x82T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x13\x15\x90V[\x15aD%W`@Qc\x1E\xD9P\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x80T`\x0F\x0B_\x81\x81R`\x01\x80\x84\x01` R`@\x82 \x80T\x92\x90U\x83T`\x01`\x01`\x80\x1B\x03\x19\x16\x92\x01`\x01`\x01`\x80\x1B\x03\x16\x91\x90\x91\x17\x90\x91U\x90V[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x08\x10W`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[__aD\xAAaD\x96\x84aGiV[\x85TaD\xA5\x91\x90`\x0F\x0BaZ\xDCV[aG\xD2V[\x84T\x90\x91P`\x01`\x80\x1B\x90\x04`\x0F\x90\x81\x0B\x90\x82\x90\x0B\x12aD\xDDW`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x0F\x0B_\x90\x81R`\x01\x93\x90\x93\x01` RPP`@\x90 T\x90V[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15aE\xD1W_aE\x19`\x01\x83aU\xDBV[\x85T\x90\x91P_\x90aE,\x90`\x01\x90aU\xDBV[\x90P\x81\x81\x14aE\x8BW_\x86_\x01\x82\x81T\x81\x10aEJWaEJaU\x03V[\x90_R` _ \x01T\x90P\x80\x87_\x01\x84\x81T\x81\x10aEjWaEjaU\x03V[_\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80aE\x9CWaE\x9Ca[\x03V[`\x01\x90\x03\x81\x81\x90_R` _ \x01_\x90U\x90U\x85`\x01\x01_\x86\x81R` \x01\x90\x81R` \x01_ _\x90U`\x01\x93PPPPa\x08\x10V[_\x91PPa\x08\x10V[\x82T_\x90\x81aE\xEB\x86\x86\x83\x85aH;V[\x90P\x80\x15aF%WaF\x0F\x86aF\x02`\x01\x84aU\xDBV[_\x91\x82R` \x90\x91 \x01\x90V[T`\x01` \x1B\x90\x04`\x01`\x01`\xE0\x1B\x03\x16a\x07\x8FV[P\x91\x94\x93PPPPV[\x81T_\x90\x80\x15aF^WaFH\x84aF\x02`\x01\x84aU\xDBV[T`\x01` \x1B\x90\x04`\x01`\x01`\xE0\x1B\x03\x16a\x08\x0CV[P\x90\x92\x91PPV[\x82T\x80\x15aG\x1CW_aF~\x85aF\x02`\x01\x85aU\xDBV[`@\x80Q\x80\x82\x01\x90\x91R\x90Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x80\x84R`\x01` \x1B\x90\x92\x04`\x01`\x01`\xE0\x1B\x03\x16` \x84\x01R\x91\x92P\x90\x85\x16\x10\x15aF\xD0W`@Qc\x15\x1B\x8E?`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80Qc\xFF\xFF\xFF\xFF\x80\x86\x16\x91\x16\x03aG\x1AW\x82aF\xF1\x86aF\x02`\x01\x86aU\xDBV[\x80T`\x01`\x01`\xE0\x1B\x03\x92\x90\x92\x16`\x01` \x1B\x02c\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x90UPPPPPV[P[P`@\x80Q\x80\x82\x01\x90\x91Rc\xFF\xFF\xFF\xFF\x92\x83\x16\x81R`\x01`\x01`\xE0\x1B\x03\x91\x82\x16` \x80\x83\x01\x91\x82R\x85T`\x01\x81\x01\x87U_\x96\x87R\x95 \x91Q\x90Q\x90\x92\x16`\x01` \x1B\x02\x91\x90\x92\x16\x17\x91\x01UV[_`\x01`\x01`\xFF\x1B\x03\x82\x11\x15aC*W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`(`$\x82\x01R\x7FSafeCast: value doesn't fit in a`D\x82\x01Rg7\x104\xB7:\x19\x1A\x9B`\xC1\x1B`d\x82\x01R`\x84\x01a/9V[\x80`\x0F\x81\x90\x0B\x81\x14aH6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FSafeCast: value doesn't fit in 1`D\x82\x01Rf28 bits`\xC8\x1B`d\x82\x01R`\x84\x01a/9V[\x91\x90PV[_[\x81\x83\x10\x15a\t\xFFW_aHP\x84\x84aH\x8EV[_\x87\x81R` \x90 \x90\x91Pc\xFF\xFF\xFF\xFF\x86\x16\x90\x82\x01Tc\xFF\xFF\xFF\xFF\x16\x11\x15aHzW\x80\x92PaH\x88V[aH\x85\x81`\x01aZ\xC9V[\x93P[PaH=V[_aH\x9C`\x02\x84\x84\x18a[\x17V[a\x07\x94\x90\x84\x84\x16aZ\xC9V[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a1]W__\xFD[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q``\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI\x11WaI\x11aH\xDBV[`@R\x90V[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI?WaI?aH\xDBV[`@R\x91\x90PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14aH6W__\xFD[_`@\x82\x84\x03\x12\x15aIjW__\xFD[`@\x80Q\x90\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI\x8CWaI\x8CaH\xDBV[`@R\x90P\x80\x825aI\x9D\x81aH\xC7V[\x81RaI\xAB` \x84\x01aIGV[` \x82\x01RP\x92\x91PPV[___`\x80\x84\x86\x03\x12\x15aI\xC9W__\xFD[\x835aI\xD4\x81aH\xC7V[\x92PaI\xE3\x85` \x86\x01aIZV[\x91P``\x84\x015aI\xF3\x81aH\xC7V[\x80\x91PP\x92P\x92P\x92V[\x80Q`\x01`\x01`@\x1B\x03\x16\x82R` \x80\x82\x01Q`\x0F\x0B\x90\x83\x01R`@\x90\x81\x01Qc\xFF\xFF\xFF\xFF\x16\x91\x01RV[``\x81\x01a\x08\x10\x82\x84aI\xFEV[__``\x83\x85\x03\x12\x15aJHW__\xFD[\x825aJS\x81aH\xC7V[\x91PaJb\x84` \x85\x01aIZV[\x90P\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15aJ{W__\xFD[P5\x91\x90PV[_` \x82\x84\x03\x12\x15aJ\x92W__\xFD[\x815a\x07\x94\x81aH\xC7V[\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x90\x81\x01Qc\xFF\xFF\xFF\xFF\x16\x91\x01RV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJ\xF6WaJ\xE0\x86\x83QaJ\x9DV[`@\x95\x90\x95\x01\x94` \x91\x90\x91\x01\x90`\x01\x01aJ\xCDV[P\x93\x94\x93PPPPV[` \x81R_a\x07\x94` \x83\x01\x84aJ\xBBV[_`@\x82\x84\x03\x12\x15aK\"W__\xFD[a\x07\x94\x83\x83aIZV[__\x83`\x1F\x84\x01\x12aK<W__\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aKRW__\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x17?W__\xFD[___`@\x84\x86\x03\x12\x15aK~W__\xFD[\x835aK\x89\x81aH\xC7V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aK\xA3W__\xFD[aK\xAF\x86\x82\x87\x01aK,V[\x94\x97\x90\x96P\x93\x94PPPPV[_`\x01`\x01`@\x1B\x03\x82\x11\x15aK\xD4WaK\xD4aH\xDBV[P`\x05\x1B` \x01\x90V[_\x82`\x1F\x83\x01\x12aK\xEDW__\xFD[\x815aL\0aK\xFB\x82aK\xBCV[aI\x17V[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aL!W__\xFD[` \x85\x01[\x83\x81\x10\x15aLGW\x805aL9\x81aH\xC7V[\x83R` \x92\x83\x01\x92\x01aL&V[P\x95\x94PPPPPV[___`\x80\x84\x86\x03\x12\x15aLcW__\xFD[aLm\x85\x85aIZV[\x92P`@\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aL\x87W__\xFD[aL\x93\x86\x82\x87\x01aK\xDEV[\x92PP``\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aL\xAEW__\xFD[aL\xBA\x86\x82\x87\x01aK\xDEV[\x91PP\x92P\x92P\x92V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJ\xF6W\x81Q\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aL\xD6V[_` \x82\x01` \x83R\x80\x84Q\x80\x83R`@\x85\x01\x91P`@\x81`\x05\x1B\x86\x01\x01\x92P` \x86\x01_[\x82\x81\x10\x15aMKW`?\x19\x87\x86\x03\x01\x84RaM6\x85\x83QaL\xC4V[\x94P` \x93\x84\x01\x93\x91\x90\x91\x01\x90`\x01\x01aM\x1AV[P\x92\x96\x95PPPPPPV[____`\xA0\x85\x87\x03\x12\x15aMjW__\xFD[aMt\x86\x86aIZV[\x93P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\x8EW__\xFD[aM\x9A\x87\x82\x88\x01aK\xDEV[\x93PP``\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\xB5W__\xFD[aM\xC1\x87\x82\x88\x01aK\xDEV[\x92PPaM\xD0`\x80\x86\x01aIGV[\x90P\x92\x95\x91\x94P\x92PV[`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[__`@\x83\x85\x03\x12\x15aN\0W__\xFD[\x825aN\x0B\x81aH\xC7V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN%W__\xFD[\x83\x01`\xA0\x81\x86\x03\x12\x15aN6W__\xFD[\x80\x91PP\x92P\x92\x90PV[__`@\x83\x85\x03\x12\x15aNRW__\xFD[\x825aN]\x81aH\xC7V[\x91P` \x83\x015aN6\x81aH\xC7V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJ\xF6WaN\x92\x86\x83QaI\xFEV[``\x95\x90\x95\x01\x94` \x91\x90\x91\x01\x90`\x01\x01aN\x7FV[`@\x81R_aN\xBA`@\x83\x01\x85aJ\xBBV[\x82\x81\x03` \x84\x01Ra\x1C\xDB\x81\x85aNmV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJ\xF6W\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aN\xDEV[` \x81R_a\x07\x94` \x83\x01\x84aN\xCCV[__`@\x83\x85\x03\x12\x15aO(W__\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15aO=W__\xFD[aOI\x85\x82\x86\x01aK\xDEV[\x92PP` \x83\x015aN6\x81aH\xC7V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x84\x01\x90`@\x84\x01\x90\x83[\x81\x81\x10\x15aO\x9AW\x83Q`\x01`\x01`@\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aOsV[P\x90\x95\x94PPPPPV[_____``\x86\x88\x03\x12\x15aO\xB9W__\xFD[\x855aO\xC4\x81aH\xC7V[\x94P` \x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aO\xDEW__\xFD[aO\xEA\x88\x82\x89\x01aK,V[\x90\x95P\x93PP`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aP\x08W__\xFD[aP\x14\x88\x82\x89\x01aK,V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[____``\x85\x87\x03\x12\x15aP8W__\xFD[\x845aPC\x81aH\xC7V[\x93PaPQ` \x86\x01aIGV[\x92P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aPkW__\xFD[aPw\x87\x82\x88\x01aK,V[\x95\x98\x94\x97P\x95PPPPV[__`@\x83\x85\x03\x12\x15aP\x94W__\xFD[\x825aP\x9F\x81aH\xC7V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aP\xB9W__\xFD[a?\xB7\x85\x82\x86\x01aK\xDEV[` \x81R_\x82Q\x80` \x84\x01R_[\x81\x81\x10\x15aP\xF1W` \x81\x86\x01\x81\x01Q`@\x86\x84\x01\x01R\x01aP\xD4V[P_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[__`@\x83\x85\x03\x12\x15aQ!W__\xFD[\x825aQ,\x81aH\xC7V[\x91PaJb` \x84\x01aIGV[_` \x82\x84\x03\x12\x15aQJW__\xFD[\x815`\xFF\x81\x16\x81\x14a\x07\x94W__\xFD[_``\x82\x84\x03\x12\x15aQjW__\xFD[P\x91\x90PV[_` \x82\x84\x03\x12\x15aQ\x80W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aQ\x95W__\xFD[a\x08\x0C\x84\x82\x85\x01aQZV[___`\x80\x84\x86\x03\x12\x15aQ\xB3W__\xFD[\x835`\x01`\x01`@\x1B\x03\x81\x11\x15aQ\xC8W__\xFD[aQ\xD4\x86\x82\x87\x01aK\xDEV[\x93PPaI\xE3\x85` \x86\x01aIZV[` \x81R_a\x07\x94` \x83\x01\x84aNmV[___``\x84\x86\x03\x12\x15aR\x08W__\xFD[\x835aR\x13\x81aH\xC7V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aR-W__\xFD[aR9\x86\x82\x87\x01aK\xDEV[\x92PPaRH`@\x85\x01aIGV[\x90P\x92P\x92P\x92V[__`@\x83\x85\x03\x12\x15aRbW__\xFD[\x825aRm\x81aH\xC7V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aR\x87W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13aR\x97W__\xFD[\x805aR\xA5aK\xFB\x82aK\xBCV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x87\x83\x11\x15aR\xC6W__\xFD[` \x84\x01[\x83\x81\x10\x15aS\xEBW\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aR\xE8W__\xFD[\x85\x01`\x80\x81\x8B\x03`\x1F\x19\x01\x12\x15aR\xFDW__\xFD[aS\x05aH\xEFV[aS\x12\x8B` \x84\x01aIZV[\x81R``\x82\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aS,W__\xFD[aS;\x8C` \x83\x86\x01\x01aK\xDEV[` \x83\x01RP`\x80\x82\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aSYW__\xFD[` \x81\x84\x01\x01\x92PP\x8A`\x1F\x83\x01\x12aSpW__\xFD[\x815aS~aK\xFB\x82aK\xBCV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x8D\x83\x11\x15aS\x9FW__\xFD[` \x85\x01\x94P[\x82\x85\x10\x15aS\xD5W\x845`\x01`\x01`@\x1B\x03\x81\x16\x81\x14aS\xC4W__\xFD[\x82R` \x94\x85\x01\x94\x90\x91\x01\x90aS\xA6V[`@\x84\x01RPP\x84RP` \x92\x83\x01\x92\x01aR\xCBV[P\x80\x94PPPPP\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15aT\x0CW__\xFD[\x835aT\x17\x81aH\xC7V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aT1W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13aTAW__\xFD[\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aTVW__\xFD[\x86` \x82\x84\x01\x01\x11\x15aTgW__\xFD[\x93\x96` \x91\x90\x91\x01\x95P\x92\x93PPPV[__`@\x83\x85\x03\x12\x15aT\x89W__\xFD[\x825aT\x94\x81aH\xC7V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aT\xAEW__\xFD[a?\xB7\x85\x82\x86\x01aQZV[__`@\x83\x85\x03\x12\x15aT\xCBW__\xFD[\x825aT\xD6\x81aH\xC7V[\x94` \x93\x90\x93\x015\x93PPPV[_` \x82\x84\x03\x12\x15aT\xF4W__\xFD[\x81Q\x80\x15\x15\x81\x14a\x07\x94W__\xFD[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_\x825`>\x19\x836\x03\x01\x81\x12aU+W__\xFD[\x91\x90\x91\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15aUEW__\xFD[a\x07\x94\x82aIGV[`@\x81\x01a\x08\x10\x82\x84aJ\x9DV[__\x835`\x1E\x19\x846\x03\x01\x81\x12aUqW__\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aU\x8AW__\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a\x17?W__\xFD[``\x81\x01aU\xAF\x82\x85aJ\x9DV[`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`@\x91\x90\x91\x01R\x91\x90PV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a\x08\x10Wa\x08\x10aU\xC7V[`\x01`\x01`@\x1B\x03\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x08\x10Wa\x08\x10aU\xC7V[_`\x0F\x82\x90\x0B`\x01`\x7F\x1B\x81\x01aV&WaV&aU\xC7V[_\x03\x92\x91PPV[`\x0F\x81\x81\x0B\x90\x83\x90\x0B\x01`\x01`\x01`\x7F\x1B\x03\x81\x13`\x01`\x01`\x7F\x1B\x03\x19\x82\x12\x17\x15a\x08\x10Wa\x08\x10aU\xC7V[`\x01`\x01`\xA0\x1B\x03\x86\x16\x81R`\xC0\x81\x01aVx` \x83\x01\x87aJ\x9DV[`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16``\x82\x01R`\x01`\x01`@\x1B\x03\x92\x90\x92\x16`\x80\x83\x01Rc\xFF\xFF\xFF\xFF\x16`\xA0\x90\x91\x01R\x92\x91PPV[__\x835`\x1E\x19\x846\x03\x01\x81\x12aV\xC1W__\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aV\xDAW__\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a\x17?W__\xFD[\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[`\x01`\x01`\xA0\x1B\x03\x88\x16\x81R_`\xC0\x82\x01aW4` \x84\x01\x8AaJ\x9DV[`\xC0``\x84\x01R\x86\x90R\x86`\xE0\x83\x01_[\x88\x81\x10\x15aWuW\x825aWX\x81aH\xC7V[`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x92\x83\x01\x92\x90\x91\x01\x90`\x01\x01aWEV[P\x83\x81\x03`\x80\x85\x01RaW\x88\x81\x88aL\xC4V[\x91PP\x82\x81\x03`\xA0\x84\x01RaW\x9E\x81\x85\x87aV\xEEV[\x9A\x99PPPPPPPPPPV[_` \x82\x84\x03\x12\x15aW\xBCW__\xFD[\x815a\xFF\xFF\x81\x16\x81\x14a\x07\x94W__\xFD[c\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x81\x11\x15a\x08\x10Wa\x08\x10aU\xC7V[\x81\x83R` \x83\x01\x92P_\x81_[\x84\x81\x10\x15aJ\xF6Wc\xFF\xFF\xFF\xFFaX\x0C\x83aIGV[\x16\x86R` \x95\x86\x01\x95\x91\x90\x91\x01\x90`\x01\x01aW\xF6V[`\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x82R\x84\x16` \x82\x01R```@\x82\x01\x81\x90R_\x90aA\xD4\x90\x83\x01\x84\x86aW\xE9V[` \x81R_a\r!` \x83\x01\x84\x86aV\xEEV[`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x82R\x86\x16` \x82\x01R`\x80`@\x82\x01\x81\x90R_\x90aX\x8D\x90\x83\x01\x86\x88aW\xE9V[\x82\x81\x03``\x84\x01RaX\xA0\x81\x85\x87aV\xEEV[\x99\x98PPPPPPPPPV[_` \x82\x84\x03\x12\x15aX\xBDW__\xFD[\x81Qa\x07\x94\x81aH\xC7V[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15aQjW_\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[`@\x81R_aX\xFD`@\x83\x01\x85aN\xCCV[\x82\x81\x03` \x84\x01Ra\x1C\xDB\x81\x85aN\xCCV[_` \x82\x84\x03\x12\x15aY\x1FW__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aY4W__\xFD[\x82\x01`\x1F\x81\x01\x84\x13aYDW__\xFD[\x80QaYRaK\xFB\x82aK\xBCV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15aYsW__\xFD[` \x84\x01[\x83\x81\x10\x15aZ\x10W\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15aY\x95W__\xFD[\x85\x01`?\x81\x01\x89\x13aY\xA5W__\xFD[` \x81\x01QaY\xB6aK\xFB\x82aK\xBCV[\x80\x82\x82R` \x82\x01\x91P` \x80\x84`\x05\x1B\x86\x01\x01\x01\x92P\x8B\x83\x11\x15aY\xD9W__\xFD[`@\x84\x01\x93P[\x82\x84\x10\x15aY\xFBW\x83Q\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aY\xE0V[\x86RPP` \x93\x84\x01\x93\x91\x90\x91\x01\x90PaYxV[P\x96\x95PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x91\x90\x92\x16` \x82\x01R`\x01`\x01`@\x1B\x03\x90\x91\x16`@\x82\x01R``\x01\x90V[_`\x01\x82\x01aZXWaZXaU\xC7V[P`\x01\x01\x90V[_\x81aZmWaZmaU\xC7V[P_\x19\x01\x90V[`\x0F\x82\x81\x0B\x90\x82\x90\x0B\x03`\x01`\x01`\x7F\x1B\x03\x19\x81\x12`\x01`\x01`\x7F\x1B\x03\x82\x13\x17\x15a\x08\x10Wa\x08\x10aU\xC7V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x08\x10Wa\x08\x10aU\xC7V[\x80\x82\x01\x82\x81\x12_\x83\x12\x80\x15\x82\x16\x82\x15\x82\x16\x17\x15aZ\xFBWaZ\xFBaU\xC7V[PP\x92\x91PPV[cNH{q`\xE0\x1B_R`1`\x04R`$_\xFD[_\x82a[1WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x04\x90V\xFE\x14\x87\xAFT\x18\xC4~\xE5\xEAE\xEFJ\x939\x86h\x12\x08\x90wJ\x9E\x13H~a\xE9\xDC;\xAFv\xDD\xA2dipfsX\"\x12 d\xA2\xCBnA\xF7\xF8\xBD))|\x0E\xEF`\x0B\xAE\x9A\xFE\xB2\xECA\xD7\xD1\xF5TJ\xCA\x9F\xE1}F\x99dsolcC\0\x08\x1B\x003",
3729    );
3730    /// The runtime bytecode of the contract, as deployed on the network.
3731    ///
3732    /// ```text
3733    ///0x608060405234801561000f575f5ffd5b50600436106102a2575f3560e01c80636cfb44811161016c578063a9821821116100d5578063c221d8ae1161008f578063c221d8ae146106da578063cd6dc687146106ed578063d3d96ff414610700578063df5cf72314610713578063f2fde38b1461073a578063f605ce081461074d578063fabc1cbc14610760575f5ffd5b8063a98218211461064c578063adc2e3d91461065f578063b2447af714610672578063b66bd98914610685578063b9fbaed114610698578063ba1a84e5146106c7575f5ffd5b8063886f119511610126578063886f1195146105bb5780638ce64854146105e25780638da5cb5b1461060257806394d7d00c14610613578063952899ee14610626578063a9333ec814610639575f5ffd5b80636cfb4481146105285780636e3492b5146105535780636e875dba14610566578063715018a61461057957806379ae50cd146105815780637bc1ef6114610594575f5ffd5b80634177a87c1161020e57806354fd4d50116101c857806354fd4d50146104b057806356c483e6146104c5578063595c6a67146104d85780635ac86ab7146104e05780635c975abb14610503578063670d3ba214610515575f5ffd5b80634177a87c146104105780634657e26a146104305780634a10ffe5146104575780634b5046ef1461047757806350feea201461048a578063547afb871461049d575f5ffd5b80632981eb771161025f5780632981eb771461034d5780632b453a9a146103895780632bab2c4a146103a9578063304c10cd146103bc57806336352057146103dc57806340120dab146103ef575f5ffd5b806310e1b9b8146102a65780631352c3e6146102cf578063136439dd146102f257806315fe502814610307578063260dc75814610327578063261f84e01461033a575b5f5ffd5b6102b96102b43660046149b7565b610773565b6040516102c69190614a29565b60405180910390f35b6102e26102dd366004614a37565b61079b565b60405190151581526020016102c6565b610305610300366004614a6b565b610816565b005b61031a610315366004614a82565b6108f0565b6040516102c69190614b00565b6102e2610335366004614b12565b610a07565b610305610348366004614b6c565b610a38565b6103747f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102c6565b61039c610397366004614c51565b610d13565b6040516102c69190614cf4565b61039c6103b7366004614d57565b610d29565b6103cf6103ca366004614a82565b610dc8565b6040516102c69190614ddb565b6103056103ea366004614def565b610df7565b6104026103fd366004614e41565b6115db565b6040516102c6929190614ea8565b61042361041e366004614b12565b611746565b6040516102c69190614f05565b6103cf7f000000000000000000000000000000000000000000000000000000000000000081565b61046a610465366004614f17565b61176a565b6040516102c69190614f5a565b610305610485366004614fa5565b611812565b610305610498366004615025565b6118cc565b61046a6104ab366004615083565b611a2a565b6104b8611ad2565b6040516102c691906150c5565b6103056104d3366004615110565b611b02565b610305611c0a565b6102e26104ee36600461513a565b606654600160ff9092169190911b9081161490565b6066545b6040519081526020016102c6565b6102e2610523366004614a37565b611cbe565b61053b610536366004614e41565b611ccf565b6040516001600160401b0390911681526020016102c6565b610305610561366004615170565b611ce4565b610423610574366004614b12565b6120c5565b6103056120d6565b61031a61058f366004614a82565b6120e7565b6103747f000000000000000000000000000000000000000000000000000000000000000081565b6103cf7f000000000000000000000000000000000000000000000000000000000000000081565b6105f56105f03660046151a1565b6121c1565b6040516102c691906151e4565b6033546001600160a01b03166103cf565b61046a6106213660046151f6565b61226d565b610305610634366004615251565b612359565b61053b610647366004614e41565b612805565b61030561065a3660046153fa565b612834565b61030561066d366004615478565b6128e6565b610507610680366004614b12565b612c46565b610305610693366004615025565b612c68565b6106ab6106a6366004614a82565b612dc2565b60408051921515835263ffffffff9091166020830152016102c6565b6105076106d5366004614a82565b612e5a565b6104236106e8366004614a37565b612e7a565b6103056106fb3660046154ba565b612ea3565b61030561070e366004614e41565b612fc0565b6103cf7f000000000000000000000000000000000000000000000000000000000000000081565b610305610748366004614a82565b6130e7565b61053b61075b366004614e41565b613160565b61030561076e366004614a6b565b61316c565b61077b6148a8565b5f61078f8561078986613282565b856132e5565b925050505b9392505050565b6001600160a01b0382165f908152609e602052604081208190816107be85613282565b815260208082019290925260409081015f2081518083019092525460ff8116151580835261010090910463ffffffff169282019290925291508061080c5750806020015163ffffffff164311155b9150505b92915050565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90610862903390600401614ddb565b602060405180830381865afa15801561087d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a191906154e4565b6108be57604051631d77d47760e21b815260040160405180910390fd5b60665481811681146108e35760405163c61dca5d60e01b815260040160405180910390fd5b6108ec82613445565b5050565b6001600160a01b0381165f908152609d602052604081206060919061091490613482565b90505f816001600160401b0381111561092f5761092f6148db565b60405190808252806020026020018201604052801561097357816020015b604080518082019091525f808252602082015281526020019060019003908161094d5790505b5090505f5b828110156109ff576001600160a01b0385165f908152609d602052604090206109da906109a5908361348b565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b8282815181106109ec576109ec615503565b6020908102919091010152600101610978565b509392505050565b60208082015182516001600160a01b03165f9081526098909252604082206108109163ffffffff9081169061349616565b82610a42816134ad565b610a5f5760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff16610a97576040516348f7dbb960e01b815260040160405180910390fd5b5f5b82811015610d0c575f6040518060400160405280876001600160a01b03168152602001868685818110610ace57610ace615503565b9050602002810190610ae09190615517565b610aee906020810190615535565b63ffffffff168152509050610b38816020015163ffffffff1660985f896001600160a01b03166001600160a01b031681526020019081526020015f2061355790919063ffffffff16565b610b5557604051631fb1705560e21b815260040160405180910390fd5b7f31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c6040518060400160405280886001600160a01b03168152602001836020015163ffffffff16815250604051610bab919061554e565b60405180910390a15f610bbd82613282565b90505f5b868685818110610bd357610bd3615503565b9050602002810190610be59190615517565b610bf390602081019061555c565b9050811015610d0157610c69878786818110610c1157610c11615503565b9050602002810190610c239190615517565b610c3190602081019061555c565b83818110610c4157610c41615503565b9050602002016020810190610c569190614a82565b5f84815260996020526040902090613562565b507f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83888887818110610c9e57610c9e615503565b9050602002810190610cb09190615517565b610cbe90602081019061555c565b84818110610cce57610cce615503565b9050602002016020810190610ce39190614a82565b604051610cf19291906155a1565b60405180910390a1600101610bc1565b505050600101610a99565b5050505050565b6060610d2184848443613576565b949350505050565b6060610d3785858585613576565b90505f5b8451811015610dbf57610d67858281518110610d5957610d59615503565b60200260200101518761079b565b610db7575f5b8451811015610db5575f838381518110610d8957610d89615503565b60200260200101518281518110610da257610da2615503565b6020908102919091010152600101610d6d565b505b600101610d3b565b50949350505050565b6001600160a01b038082165f908152609760205260408120549091168015610df05780610794565b5090919050565b606654600190600290811603610e205760405163840a48d560e01b815260040160405180910390fd5b82610e2a816134ad565b610e475760405163932d94f760e01b815260040160405180910390fd5b5f6040518060400160405280866001600160a01b03168152602001856020016020810190610e759190615535565b63ffffffff1690529050610e8c606085018561555c565b9050610e9b604086018661555c565b905014610ebb576040516343714afd60e01b815260040160405180910390fd5b60208082015182516001600160a01b03165f90815260989092526040909120610eed9163ffffffff9081169061349616565b610f0a57604051631fb1705560e21b815260040160405180910390fd5b610f20610f1a6020860186614a82565b8261079b565b610f3d5760405163ebbff49760e01b815260040160405180910390fd5b5f610f4b604086018661555c565b90506001600160401b03811115610f6457610f646148db565b604051908082528060200260200182016040528015610f8d578160200160208202803683370190505b5090505f5b610f9f604087018761555c565b905081101561156d578015806110325750610fbd604087018761555c565b610fc86001846155db565b818110610fd757610fd7615503565b9050602002016020810190610fec9190614a82565b6001600160a01b0316611002604088018861555c565b8381811061101257611012615503565b90506020020160208101906110279190614a82565b6001600160a01b0316115b61104f57604051639f1c805360e01b815260040160405180910390fd5b61105c606087018761555c565b8281811061106c5761106c615503565b905060200201355f1080156110ac5750670de0b6b3a7640000611092606088018861555c565b838181106110a2576110a2615503565b9050602002013511155b6110c957604051631353603160e01b815260040160405180910390fd5b6111256110d9604088018861555c565b838181106110e9576110e9615503565b90506020020160208101906110fe9190614a82565b60995f61110a87613282565b81526020019081526020015f2061386390919063ffffffff16565b611142576040516331bc342760e11b815260040160405180910390fd5b5f8061119461115460208a018a614a82565b61115d87613282565b61116a60408c018c61555c565b8781811061117a5761117a615503565b905060200201602081019061118f9190614a82565b6132e5565b805191935091506001600160401b03165f036111b1575050611565565b5f6111ec6111c260608b018b61555c565b868181106111d2576111d2615503565b85516001600160401b031692602090910201359050613884565b83519091506112076001600160401b0380841690831661389a565b86868151811061121957611219615503565b60200260200101818152505081835f0181815161123691906155ee565b6001600160401b03169052508351829085906112539083906155ee565b6001600160401b03169052506020840180518391906112739083906155ee565b6001600160401b031690525060208301515f600f9190910b1215611378575f6112d66112a260608d018d61555c565b888181106112b2576112b2615503565b9050602002013585602001516112c79061560d565b6001600160801b031690613884565b9050806001600160401b0316846020018181516112f3919061562e565b600f0b9052505f516020615b375f395f51905f5261131460208d018d614a82565b8961132260408f018f61555c565b8a81811061133257611332615503565b90506020020160208101906113479190614a82565b611358885f015189602001516138ae565b886040015160405161136e95949392919061565b565b60405180910390a1505b6113ca61138860208c018c614a82565b61139189613282565b61139e60408e018e61555c565b898181106113ae576113ae615503565b90506020020160208101906113c39190614a82565b87876138cd565b5f516020615b375f395f51905f526113e560208c018c614a82565b886113f360408e018e61555c565b8981811061140357611403615503565b90506020020160208101906114189190614a82565b865160405161142c9493929190439061565b565b60405180910390a161147d61144460208c018c614a82565b61145160408d018d61555c565b8881811061146157611461615503565b90506020020160208101906114769190614a82565b8651613b01565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663601bb36f6114b960208d018d614a82565b6114c660408e018e61555c565b898181106114d6576114d6615503565b90506020020160208101906114eb9190614a82565b875160405160e085901b6001600160e01b03191681526001600160a01b0393841660048201529290911660248301526001600160401b0380861660448401521660648201526084015f604051808303815f87803b15801561154a575f5ffd5b505af115801561155c573d5f5f3e3d5ffd5b50505050505050505b600101610f92565b507f80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe561159c6020870187614a82565b836115aa604089018961555c565b856115b860808c018c6156ac565b6040516115cb9796959493929190615716565b60405180910390a1505050505050565b6001600160a01b0382165f908152609d60205260408120606091829161160090613482565b90505f816001600160401b0381111561161b5761161b6148db565b60405190808252806020026020018201604052801561165f57816020015b604080518082019091525f80825260208201528152602001906001900390816116395790505b5090505f826001600160401b0381111561167b5761167b6148db565b6040519080825280602002602001820160405280156116b457816020015b6116a16148a8565b8152602001906001900390816116995790505b5090505f5b83811015611737576001600160a01b0388165f908152609d602052604081206116e6906109a5908461348b565b9050808483815181106116fb576116fb615503565b602002602001018190525061171189828a610773565b83838151811061172357611723615503565b6020908102919091010152506001016116b9565b509093509150505b9250929050565b60605f61079460995f61175886613282565b81526020019081526020015f20613b63565b60605f83516001600160401b03811115611786576117866148db565b6040519080825280602002602001820160405280156117af578160200160208202803683370190505b5090505f5b84518110156109ff576117e08582815181106117d2576117d2615503565b602002602001015185612805565b8282815181106117f2576117f2615503565b6001600160401b03909216602092830291909101909101526001016117b4565b6066545f9060019081160361183a5760405163840a48d560e01b815260040160405180910390fd5b83821461185a576040516343714afd60e01b815260040160405180910390fd5b5f5b848110156118c3576118bb8787878481811061187a5761187a615503565b905060200201602081019061188f9190614a82565b8686858181106118a1576118a1615503565b90506020020160208101906118b691906157ac565b613b6f565b60010161185c565b50505050505050565b836118d6816134ad565b6118f35760405163932d94f760e01b815260040160405180910390fd5b604080518082019091526001600160a01b038616815263ffffffff851660208201525f61191f82613282565b9050611960826020015163ffffffff1660985f8a6001600160a01b03166001600160a01b031681526020019081526020015f2061349690919063ffffffff16565b61197d57604051631fb1705560e21b815260040160405180910390fd5b5f5b84811015611a205761199c868683818110610c4157610c41615503565b6119b95760405163585cfb2f60e01b815260040160405180910390fd5b7f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b838787848181106119ed576119ed615503565b9050602002016020810190611a029190614a82565b604051611a109291906155a1565b60405180910390a160010161197f565b5050505050505050565b60605f82516001600160401b03811115611a4657611a466148db565b604051908082528060200260200182016040528015611a6f578160200160208202803683370190505b5090505f5b83518110156109ff57611aa085858381518110611a9357611a93615503565b6020026020010151612805565b828281518110611ab257611ab2615503565b6001600160401b0390921660209283029190910190910152600101611a74565b6060611afd7f0000000000000000000000000000000000000000000000000000000000000000613c73565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c0057611b3b826134ad565b611b58576040516348f5c3ed60e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90611ba4908590600401614ddb565b602060405180830381865afa158015611bbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be391906154e4565b611c005760405163ccea9e6f60e01b815260040160405180910390fd5b6108ec8282613cb0565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90611c56903390600401614ddb565b602060405180830381865afa158015611c71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c9591906154e4565b611cb257604051631d77d47760e21b815260040160405180910390fd5b611cbc5f19613445565b565b5f61079483609a5f61110a86613282565b5f5f611cdb8484613e52565b95945050505050565b606654600290600490811603611d0d5760405163840a48d560e01b815260040160405180910390fd5b611d22611d1d6020840184614a82565b6134ad565b80611d3b5750611d3b611d1d6040840160208501614a82565b611d58576040516348f5c3ed60e01b815260040160405180910390fd5b5f5b611d67604084018461555c565b9050811015612029575f6040518060400160405280856020016020810190611d8f9190614a82565b6001600160a01b03168152602001611daa604087018761555c565b85818110611dba57611dba615503565b9050602002016020810190611dcf9190615535565b63ffffffff168152509050611e1c816020015163ffffffff1660985f876020016020810190611dfe9190614a82565b6001600160a01b0316815260208101919091526040015f2090613496565b611e3957604051631fb1705560e21b815260040160405180910390fd5b609e5f611e496020870187614a82565b6001600160a01b03166001600160a01b031681526020019081526020015f205f611e7283613282565b815260208101919091526040015f205460ff16611ea2576040516325131d4f60e01b815260040160405180910390fd5b611edc611eae82613282565b609c5f611ebe6020890189614a82565b6001600160a01b0316815260208101919091526040015f2090613fc1565b50611f14611eed6020860186614a82565b609a5f611ef985613282565b81526020019081526020015f20613fcc90919063ffffffff16565b50611f226020850185614a82565b6001600160a01b03167fad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe82604051611f5a919061554e565b60405180910390a2604080518082019091525f815260208101611f9d7f0000000000000000000000000000000000000000000000000000000000000000436157cd565b63ffffffff169052609e5f611fb56020880188614a82565b6001600160a01b03166001600160a01b031681526020019081526020015f205f611fde84613282565b81526020808201929092526040015f2082518154939092015163ffffffff166101000264ffffffff00199215159290921664ffffffffff199093169290921717905550600101611d5a565b5061203d6103ca6040840160208501614a82565b6001600160a01b031663303ca9566120586020850185614a82565b6120686040860160208701614a82565b612075604087018761555c565b6040518563ffffffff1660e01b81526004016120949493929190615822565b5f604051808303815f87803b1580156120ab575f5ffd5b505af11580156120bd573d5f5f3e3d5ffd5b505050505050565b6060610810609a5f61175885613282565b6120de613fe0565b611cbc5f61403a565b6001600160a01b0381165f908152609c602052604081206060919061210b90613482565b90505f816001600160401b03811115612126576121266148db565b60405190808252806020026020018201604052801561216a57816020015b604080518082019091525f80825260208201528152602001906001900390816121445790505b5090505f5b828110156109ff576001600160a01b0385165f908152609c6020526040902061219c906109a5908361348b565b8282815181106121ae576121ae615503565b602090810291909101015260010161216f565b60605f84516001600160401b038111156121dd576121dd6148db565b60405190808252806020026020018201604052801561221657816020015b6122036148a8565b8152602001906001900390816121fb5790505b5090505f5b8551811015610dbf5761224886828151811061223957612239615503565b60200260200101518686610773565b82828151811061225a5761225a615503565b602090810291909101015260010161221b565b60605f83516001600160401b03811115612289576122896148db565b6040519080825280602002602001820160405280156122b2578160200160208202803683370190505b5090505f5b8451811015610dbf576001600160a01b0386165f90815260a1602052604081208651612327928792918990869081106122f2576122f2615503565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2061408b90919063ffffffff16565b82828151811061233957612339615503565b6001600160401b03909216602092830291909101909101526001016122b7565b6066545f906001908116036123815760405163840a48d560e01b815260040160405180910390fd5b61238a836134ad565b6123a7576040516348f5c3ed60e01b815260040160405180910390fd5b5f5f5f6123b386612dc2565b91509150816123d55760405163fa55fc8160e01b815260040160405180910390fd5b91505f90505b8351811015610d0c578381815181106123f6576123f6615503565b6020026020010151604001515184828151811061241557612415615503565b6020026020010151602001515114612440576040516343714afd60e01b815260040160405180910390fd5b5f84828151811061245357612453615503565b602090810291909101810151518082015181516001600160a01b03165f908152609890935260409092209092506124939163ffffffff9081169061349616565b6124b057604051631fb1705560e21b815260040160405180910390fd5b5f6124bb878361079b565b90505f5b8684815181106124d1576124d1615503565b602002602001015160200151518110156127fa575f8785815181106124f8576124f8615503565b602002602001015160200151828151811061251557612515615503565b6020026020010151905061252c898261ffff613b6f565b5f5f61253b8b61078988613282565b91509150806040015163ffffffff165f1461256957604051630d8fcbe360e41b815260040160405180910390fd5b5f6125768785848961409f565b90506125bb825f01518c8a8151811061259157612591615503565b60200260200101516040015187815181106125ae576125ae615503565b60200260200101516140d5565b600f0b602083018190525f036125e457604051634606179360e11b815260040160405180910390fd5b5f8260200151600f0b12156127285780156126aa5761266561260588613282565b6001600160a01b03808f165f90815260a360209081526040808320938a16835292905220908154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61268f7f0000000000000000000000000000000000000000000000000000000000000000436157cd565b61269a9060016157cd565b63ffffffff166040830152612795565b6126bc836020015183602001516138ae565b6001600160401b031660208401528a518b90899081106126de576126de615503565b60200260200101516040015185815181106126fb576126fb615503565b6020908102919091018101516001600160401b031683525f9083015263ffffffff43166040830152612795565b5f8260200151600f0b131561279557612749836020015183602001516138ae565b6001600160401b03908116602085018190528451909116101561277f57604051636c9be0bf60e01b815260040160405180910390fd5b61278989436157cd565b63ffffffff1660408301525b6127aa8c6127a289613282565b8686866138cd565b5f516020615b375f395f51905f528c88866127cc865f015187602001516138ae565b86604001516040516127e295949392919061565b565b60405180910390a15050600190920191506124bf9050565b5050506001016123db565b6001600160a01b038083165f90815260a1602090815260408083209385168352929052908120610794906140ec565b8261283e816134ad565b61285b5760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff1661289d576001600160a01b0384165f90815260a460205260409020805460ff191660011790555b836001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371384846040516128d892919061584e565b60405180910390a250505050565b60665460029060049081160361290f5760405163840a48d560e01b815260040160405180910390fd5b82612919816134ad565b6129365760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90612982908790600401614ddb565b602060405180830381865afa15801561299d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129c191906154e4565b6129de5760405163ccea9e6f60e01b815260040160405180910390fd5b5f5b6129ed602085018561555c565b9050811015612bb557604080518082019091525f9080612a106020880188614a82565b6001600160a01b03168152602001868060200190612a2e919061555c565b85818110612a3e57612a3e615503565b9050602002016020810190612a539190615535565b63ffffffff90811690915260208083015183516001600160a01b03165f90815260989092526040909120929350612a8f92919081169061349616565b612aac57604051631fb1705560e21b815260040160405180910390fd5b612ab6868261079b565b15612ad457604051636c6c6e2760e11b815260040160405180910390fd5b612afd612ae082613282565b6001600160a01b0388165f908152609c6020526040902090613557565b50612b2986609a5f612b0e85613282565b81526020019081526020015f2061356290919063ffffffff16565b50856001600160a01b03167f43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e82604051612b63919061554e565b60405180910390a26001600160a01b0386165f908152609e60205260408120600191612b8e84613282565b815260208101919091526040015f20805460ff1916911515919091179055506001016129e0565b50612bc66103ca6020850185614a82565b6001600160a01b031663c63fd50285612be26020870187614a82565b612bef602088018861555c565b612bfc60408a018a6156ac565b6040518763ffffffff1660e01b8152600401612c1d96959493929190615861565b5f604051808303815f87803b158015612c34575f5ffd5b505af1158015611a20573d5f5f3e3d5ffd5b5f610810609a5f612c5685613282565b81526020019081526020015f20613482565b83612c72816134ad565b612c8f5760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f93845260989052939091209192612cce929161349616565b612ceb57604051631fb1705560e21b815260040160405180910390fd5b5f612cf582613282565b90505f5b84811015611a2057612d3e868683818110612d1657612d16615503565b9050602002016020810190612d2b9190614a82565b5f84815260996020526040902090613fcc565b612d5b576040516331bc342760e11b815260040160405180910390fd5b7f7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee83878784818110612d8f57612d8f615503565b9050602002016020810190612da49190614a82565b604051612db29291906155a1565b60405180910390a1600101612cf9565b6001600160a01b0381165f908152609b602090815260408083208151608081018352905463ffffffff80821680845260ff600160201b8404161515958401869052600160281b8304821694840194909452600160481b909104166060820181905284939192919015801590612e415750826060015163ffffffff164310155b15612e50575050604081015160015b9590945092505050565b6001600160a01b0381165f90815260986020526040812061081090613482565b6001600160a01b0382165f908152609f602052604081206060919061080c908261175886613282565b5f54610100900460ff1615808015612ec157505f54600160ff909116105b80612eda5750303b158015612eda57505f5460ff166001145b612f425760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015612f63575f805461ff0019166101001790555b612f6c82613445565b612f758361403a565b8015612fbb575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050565b81612fca816134ad565b612fe75760405163932d94f760e01b815260040160405180910390fd5b60405163b526578760e01b81526001600160a01b0383169063b526578790613013908690600401614ddb565b602060405180830381865afa15801561302e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305291906154e4565b61306f57604051631d0b13c160e31b815260040160405180910390fd5b6001600160a01b038381165f90815260976020526040902080546001600160a01b0319169184169190911790557f2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf85836130c781610dc8565b604080516001600160a01b03938416815292909116602083015201612fb2565b6130ef613fe0565b6001600160a01b0381166131545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401612f39565b61315d8161403a565b50565b5f5f610dbf8484613e52565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131ec91906158ad565b6001600160a01b0316336001600160a01b03161461321d5760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146132445760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f815f0151826020015163ffffffff166040516020016132cd92919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b604051602081830303815290604052610810906158c8565b604080518082019091525f80825260208201526133006148a8565b6040805180820182526001600160a01b038088165f90815260a160209081528482209288168252919091529182208190613339906140ec565b6001600160401b0390811682526001600160a01b038981165f81815260a260209081526040808320948c168084529482528083205486169682019690965291815260a082528481208b8252825284812092815291815290839020835160608101855290549283168152600160401b8304600f0b91810191909152600160c01b90910463ffffffff169181018290529192504310156133db57909250905061343d565b6133ec815f015182602001516138ae565b6001600160401b0316815260208101515f600f9190910b121561342a5761341b826020015182602001516138ae565b6001600160401b031660208301525b5f60408201819052602082015290925090505b935093915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f610810825490565b5f61079483836140ff565b5f8181526001830160205260408120541515610794565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af1158015613533573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081091906154e4565b5f6107948383614125565b5f610794836001600160a01b038416614125565b606083516001600160401b03811115613591576135916148db565b6040519080825280602002602001820160405280156135c457816020015b60608152602001906001900390816135af5790505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0e0e67686866040518363ffffffff1660e01b81526004016136169291906158eb565b5f60405180830381865afa158015613630573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613657919081019061590f565b90505f5b8551811015613859575f86828151811061367757613677615503565b6020026020010151905085516001600160401b0381111561369a5761369a6148db565b6040519080825280602002602001820160405280156136c3578160200160208202803683370190505b508483815181106136d6576136d6615503565b60209081029190910101525f5b865181101561384f575f8782815181106136ff576136ff615503565b6020908102919091018101516001600160a01b038086165f90815260a184526040808220928416825291909352822090925061373a906140ec565b9050806001600160401b03165f03613753575050613847565b5f61375f858d85610773565b90508863ffffffff16816040015163ffffffff161115801561378757505f8160200151600f0b125b156137a95761379d815f015182602001516138ae565b6001600160401b031681525b80515f906137c4906001600160401b0390811690851661389a565b905061380b818989815181106137dc576137dc615503565b602002602001015187815181106137f5576137f5615503565b602002602001015161417190919063ffffffff16565b89888151811061381d5761381d615503565b6020026020010151868151811061383657613836615503565b602002602001018181525050505050505b6001016136e3565b505060010161365b565b5050949350505050565b6001600160a01b0381165f9081526001830160205260408120541515610794565b5f6107948383670de0b6b3a76400006001614185565b5f61079483670de0b6b3a7640000846141de565b5f6107946138c5836001600160401b03861661562e565b600f0b6142c3565b6020808301516001600160a01b038088165f90815260a284526040808220928816825291909352909120546001600160401b0390811691161461398f57602082810180516001600160a01b038881165f90815260a28552604080822092891682529190945292839020805467ffffffffffffffff19166001600160401b039092169190911790555190517facf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc55916139869188918791615a1b565b60405180910390a15b6001600160a01b038086165f90815260a060209081526040808320888452825280832093871683529281529082902083518154928501519385015163ffffffff16600160c01b0263ffffffff60c01b196001600160801b038616600160401b026001600160c01b03199095166001600160401b03909316929092179390931716919091179055600f0b15613a71576001600160a01b0385165f908152609f602090815260408083208784529091529020613a499084613562565b506001600160a01b0385165f908152609d60205260409020613a6b9085613557565b50610d0c565b80516001600160401b03165f03610d0c576001600160a01b0385165f908152609f602090815260408083208784529091529020613aae9084613fcc565b506001600160a01b0385165f908152609f602090815260408083208784529091529020613ada90613482565b5f03610d0c576001600160a01b0385165f908152609d602052604090206120bd9085613fc1565b6001600160a01b038084165f90815260a160209081526040808320938616835292905220613b3090438361432e565b7f1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c838383604051612fb293929190615a1b565b60605f61079483614342565b6001600160a01b038381165f90815260a360209081526040808320938616835292905290812054600f81810b600160801b909204900b035b5f81118015613bb957508261ffff1682105b15610d0c576001600160a01b038086165f90815260a3602090815260408083209388168352929052908120613bed9061439b565b90505f5f613bfc8884896132e5565b91509150806040015163ffffffff16431015613c1a57505050610d0c565b613c2788848985856138cd565b6001600160a01b038089165f90815260a360209081526040808320938b16835292905220613c54906143ed565b50613c5e85615a47565b9450613c6984615a5f565b9350505050613ba7565b60605f613c7f83614461565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b0382165f908152609b60209081526040918290208251608081018452905463ffffffff808216835260ff600160201b830416151593830193909352600160281b8104831693820193909352600160481b909204166060820181905215801590613d2a5750806060015163ffffffff164310155b15613d4457604081015163ffffffff168152600160208201525b63ffffffff82166040820152613d7a7f0000000000000000000000000000000000000000000000000000000000000000436157cd565b613d859060016157cd565b63ffffffff90811660608381019182526001600160a01b0386165f818152609b602090815260409182902087518154838a0151858b01519851928a1664ffffffffff1990921691909117600160201b91151591909102176cffffffffffffffff00000000001916600160281b9789169790970263ffffffff60481b191696909617600160481b968816968702179055815192835294871694820194909452928301919091527f4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db9101612fb2565b6001600160a01b038281165f81815260a2602090815260408083209486168084529482528083205493835260a38252808320948352939052918220546001600160401b039091169190600f81810b600160801b909204900b03815b81811015613f7d576001600160a01b038087165f90815260a3602090815260408083209389168352929052908120613ee59083614488565b6001600160a01b038881165f90815260a0602090815260408083208584528252808320938b16835292815290829020825160608101845290546001600160401b0381168252600160401b8104600f0b92820192909252600160c01b90910463ffffffff16918101829052919250431015613f60575050613f7d565b613f6e8682602001516138ae565b95505050806001019050613ead565b506001600160a01b038086165f90815260a1602090815260408083209388168352929052208390613fad906140ec565b613fb791906155ee565b9150509250929050565b5f61079483836144f7565b5f610794836001600160a01b0384166144f7565b6033546001600160a01b03163314611cbc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612f39565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6107948383670de0b6b3a76400006145da565b5f6140b08460995f61110a89613282565b80156140b95750815b8015611cdb57505090516001600160401b031615159392505050565b5f6107946001600160401b03808516908416615a74565b5f61081082670de0b6b3a764000061462f565b5f825f01828154811061411457614114615503565b905f5260205f200154905092915050565b5f81815260018301602052604081205461416a57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610810565b505f610810565b5f6107948383670de0b6b3a76400006141de565b5f5f6141928686866141de565b905060018360028111156141a8576141a8615aa1565b1480156141c457505f84806141bf576141bf615ab5565b868809115b15611cdb576141d4600182615ac9565b9695505050505050565b5f80805f19858709858702925082811083820303915050805f036142155783828161420b5761420b615ab5565b0492505050610794565b80841161425c5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401612f39565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f6001600160401b0382111561432a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401612f39565b5090565b612fbb83836001600160401b038416614666565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561438f57602002820191905f5260205f20905b81548152602001906001019080831161437b575b50505050509050919050565b5f6143b58254600f81810b600160801b909204900b131590565b156143d357604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f9081526001909101602052604090205490565b5f6144078254600f81810b600160801b909204900b131590565b1561442557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546001600160801b03191692016001600160801b03169190911790915590565b5f60ff8216601f81111561081057604051632cd44ac360e21b815260040160405180910390fd5b5f5f6144aa61449684614769565b85546144a59190600f0b615adc565b6147d2565b8454909150600160801b9004600f90810b9082900b126144dd57604051632d0483c560e21b815260040160405180910390fd5b600f0b5f9081526001939093016020525050604090205490565b5f81815260018301602052604081205480156145d1575f6145196001836155db565b85549091505f9061452c906001906155db565b905081811461458b575f865f01828154811061454a5761454a615503565b905f5260205f200154905080875f01848154811061456a5761456a615503565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061459c5761459c615b03565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610810565b5f915050610810565b82545f90816145eb8686838561483b565b905080156146255761460f866146026001846155db565b5f91825260209091200190565b54600160201b90046001600160e01b031661078f565b5091949350505050565b81545f90801561465e57614648846146026001846155db565b54600160201b90046001600160e01b031661080c565b509092915050565b8254801561471c575f61467e856146026001856155db565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090851610156146d05760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff80861691160361471a57826146f1866146026001866155db565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216600160201b029190921617910155565b5f6001600160ff1b0382111561432a5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401612f39565b80600f81900b81146148365760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401612f39565b919050565b5f5b818310156109ff575f614850848461488e565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561487a57809250614888565b614885816001615ac9565b93505b5061483d565b5f61489c6002848418615b17565b61079490848416615ac9565b604080516060810182525f808252602082018190529181019190915290565b6001600160a01b038116811461315d575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614911576149116148db565b60405290565b604051601f8201601f191681016001600160401b038111828210171561493f5761493f6148db565b604052919050565b803563ffffffff81168114614836575f5ffd5b5f6040828403121561496a575f5ffd5b604080519081016001600160401b038111828210171561498c5761498c6148db565b604052905080823561499d816148c7565b81526149ab60208401614947565b60208201525092915050565b5f5f5f608084860312156149c9575f5ffd5b83356149d4816148c7565b92506149e3856020860161495a565b915060608401356149f3816148c7565b809150509250925092565b80516001600160401b03168252602080820151600f0b9083015260409081015163ffffffff16910152565b6060810161081082846149fe565b5f5f60608385031215614a48575f5ffd5b8235614a53816148c7565b9150614a62846020850161495a565b90509250929050565b5f60208284031215614a7b575f5ffd5b5035919050565b5f60208284031215614a92575f5ffd5b8135610794816148c7565b80516001600160a01b0316825260209081015163ffffffff16910152565b5f8151808452602084019350602083015f5b82811015614af657614ae0868351614a9d565b6040959095019460209190910190600101614acd565b5093949350505050565b602081525f6107946020830184614abb565b5f60408284031215614b22575f5ffd5b610794838361495a565b5f5f83601f840112614b3c575f5ffd5b5081356001600160401b03811115614b52575f5ffd5b6020830191508360208260051b850101111561173f575f5ffd5b5f5f5f60408486031215614b7e575f5ffd5b8335614b89816148c7565b925060208401356001600160401b03811115614ba3575f5ffd5b614baf86828701614b2c565b9497909650939450505050565b5f6001600160401b03821115614bd457614bd46148db565b5060051b60200190565b5f82601f830112614bed575f5ffd5b8135614c00614bfb82614bbc565b614917565b8082825260208201915060208360051b860101925085831115614c21575f5ffd5b602085015b83811015614c47578035614c39816148c7565b835260209283019201614c26565b5095945050505050565b5f5f5f60808486031215614c63575f5ffd5b614c6d858561495a565b925060408401356001600160401b03811115614c87575f5ffd5b614c9386828701614bde565b92505060608401356001600160401b03811115614cae575f5ffd5b614cba86828701614bde565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614af6578151865260209586019590910190600101614cd6565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614d4b57603f19878603018452614d36858351614cc4565b94506020938401939190910190600101614d1a565b50929695505050505050565b5f5f5f5f60a08587031215614d6a575f5ffd5b614d74868661495a565b935060408501356001600160401b03811115614d8e575f5ffd5b614d9a87828801614bde565b93505060608501356001600160401b03811115614db5575f5ffd5b614dc187828801614bde565b925050614dd060808601614947565b905092959194509250565b6001600160a01b0391909116815260200190565b5f5f60408385031215614e00575f5ffd5b8235614e0b816148c7565b915060208301356001600160401b03811115614e25575f5ffd5b830160a08186031215614e36575f5ffd5b809150509250929050565b5f5f60408385031215614e52575f5ffd5b8235614e5d816148c7565b91506020830135614e36816148c7565b5f8151808452602084019350602083015f5b82811015614af657614e928683516149fe565b6060959095019460209190910190600101614e7f565b604081525f614eba6040830185614abb565b8281036020840152611cdb8185614e6d565b5f8151808452602084019350602083015f5b82811015614af65781516001600160a01b0316865260209586019590910190600101614ede565b602081525f6107946020830184614ecc565b5f5f60408385031215614f28575f5ffd5b82356001600160401b03811115614f3d575f5ffd5b614f4985828601614bde565b9250506020830135614e36816148c7565b602080825282518282018190525f918401906040840190835b81811015614f9a5783516001600160401b0316835260209384019390920191600101614f73565b509095945050505050565b5f5f5f5f5f60608688031215614fb9575f5ffd5b8535614fc4816148c7565b945060208601356001600160401b03811115614fde575f5ffd5b614fea88828901614b2c565b90955093505060408601356001600160401b03811115615008575f5ffd5b61501488828901614b2c565b969995985093965092949392505050565b5f5f5f5f60608587031215615038575f5ffd5b8435615043816148c7565b935061505160208601614947565b925060408501356001600160401b0381111561506b575f5ffd5b61507787828801614b2c565b95989497509550505050565b5f5f60408385031215615094575f5ffd5b823561509f816148c7565b915060208301356001600160401b038111156150b9575f5ffd5b613fb785828601614bde565b602081525f82518060208401525f5b818110156150f157602081860181015160408684010152016150d4565b505f604082850101526040601f19601f83011684010191505092915050565b5f5f60408385031215615121575f5ffd5b823561512c816148c7565b9150614a6260208401614947565b5f6020828403121561514a575f5ffd5b813560ff81168114610794575f5ffd5b5f6060828403121561516a575f5ffd5b50919050565b5f60208284031215615180575f5ffd5b81356001600160401b03811115615195575f5ffd5b61080c8482850161515a565b5f5f5f608084860312156151b3575f5ffd5b83356001600160401b038111156151c8575f5ffd5b6151d486828701614bde565b9350506149e3856020860161495a565b602081525f6107946020830184614e6d565b5f5f5f60608486031215615208575f5ffd5b8335615213816148c7565b925060208401356001600160401b0381111561522d575f5ffd5b61523986828701614bde565b92505061524860408501614947565b90509250925092565b5f5f60408385031215615262575f5ffd5b823561526d816148c7565b915060208301356001600160401b03811115615287575f5ffd5b8301601f81018513615297575f5ffd5b80356152a5614bfb82614bbc565b8082825260208201915060208360051b8501019250878311156152c6575f5ffd5b602084015b838110156153eb5780356001600160401b038111156152e8575f5ffd5b85016080818b03601f190112156152fd575f5ffd5b6153056148ef565b6153128b6020840161495a565b815260608201356001600160401b0381111561532c575f5ffd5b61533b8c602083860101614bde565b60208301525060808201356001600160401b03811115615359575f5ffd5b6020818401019250508a601f830112615370575f5ffd5b813561537e614bfb82614bbc565b8082825260208201915060208360051b86010192508d83111561539f575f5ffd5b6020850194505b828510156153d55784356001600160401b03811681146153c4575f5ffd5b8252602094850194909101906153a6565b60408401525050845250602092830192016152cb565b50809450505050509250929050565b5f5f5f6040848603121561540c575f5ffd5b8335615417816148c7565b925060208401356001600160401b03811115615431575f5ffd5b8401601f81018613615441575f5ffd5b80356001600160401b03811115615456575f5ffd5b866020828401011115615467575f5ffd5b939660209190910195509293505050565b5f5f60408385031215615489575f5ffd5b8235615494816148c7565b915060208301356001600160401b038111156154ae575f5ffd5b613fb78582860161515a565b5f5f604083850312156154cb575f5ffd5b82356154d6816148c7565b946020939093013593505050565b5f602082840312156154f4575f5ffd5b81518015158114610794575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235603e1983360301811261552b575f5ffd5b9190910192915050565b5f60208284031215615545575f5ffd5b61079482614947565b604081016108108284614a9d565b5f5f8335601e19843603018112615571575f5ffd5b8301803591506001600160401b0382111561558a575f5ffd5b6020019150600581901b360382131561173f575f5ffd5b606081016155af8285614a9d565b6001600160a01b039290921660409190910152919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610810576108106155c7565b6001600160401b038281168282160390811115610810576108106155c7565b5f600f82900b6001607f1b8101615626576156266155c7565b5f0392915050565b600f81810b9083900b0160016001607f1b03811360016001607f1b031982121715610810576108106155c7565b6001600160a01b038616815260c081016156786020830187614a9d565b6001600160a01b039490941660608201526001600160401b0392909216608083015263ffffffff1660a09091015292915050565b5f5f8335601e198436030181126156c1575f5ffd5b8301803591506001600160401b038211156156da575f5ffd5b60200191503681900382131561173f575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b03881681525f60c08201615734602084018a614a9d565b60c060608401528690528660e083015f5b88811015615775578235615758816148c7565b6001600160a01b0316825260209283019290910190600101615745565b5083810360808501526157888188614cc4565b91505082810360a084015261579e8185876156ee565b9a9950505050505050505050565b5f602082840312156157bc575f5ffd5b813561ffff81168114610794575f5ffd5b63ffffffff8181168382160190811115610810576108106155c7565b8183526020830192505f815f5b84811015614af65763ffffffff61580c83614947565b16865260209586019591909101906001016157f6565b6001600160a01b038581168252841660208201526060604082018190525f906141d490830184866157e9565b602081525f610d216020830184866156ee565b6001600160a01b038781168252861660208201526080604082018190525f9061588d90830186886157e9565b82810360608401526158a08185876156ee565b9998505050505050505050565b5f602082840312156158bd575f5ffd5b8151610794816148c7565b8051602080830151919081101561516a575f1960209190910360031b1b16919050565b604081525f6158fd6040830185614ecc565b8281036020840152611cdb8185614ecc565b5f6020828403121561591f575f5ffd5b81516001600160401b03811115615934575f5ffd5b8201601f81018413615944575f5ffd5b8051615952614bfb82614bbc565b8082825260208201915060208360051b850101925086831115615973575f5ffd5b602084015b83811015615a105780516001600160401b03811115615995575f5ffd5b8501603f810189136159a5575f5ffd5b60208101516159b6614bfb82614bbc565b808282526020820191506020808460051b8601010192508b8311156159d9575f5ffd5b6040840193505b828410156159fb5783518252602093840193909101906159e0565b86525050602093840193919091019050615978565b509695505050505050565b6001600160a01b0393841681529190921660208201526001600160401b03909116604082015260600190565b5f60018201615a5857615a586155c7565b5060010190565b5f81615a6d57615a6d6155c7565b505f190190565b600f82810b9082900b0360016001607f1b0319811260016001607f1b0382131715610810576108106155c7565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b80820180821115610810576108106155c7565b8082018281125f831280158216821582161715615afb57615afb6155c7565b505092915050565b634e487b7160e01b5f52603160045260245ffd5b5f82615b3157634e487b7160e01b5f52601260045260245ffd5b50049056fe1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dda264697066735822122064a2cb6e41f7f8bd29297c0eef600bae9afeb2ec41d7d1f5544aca9fe17d469964736f6c634300081b0033
3734    /// ```
3735    #[rustfmt::skip]
3736    #[allow(clippy::all)]
3737    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3738        b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x02\xA2W_5`\xE0\x1C\x80cl\xFBD\x81\x11a\x01lW\x80c\xA9\x82\x18!\x11a\0\xD5W\x80c\xC2!\xD8\xAE\x11a\0\x8FW\x80c\xC2!\xD8\xAE\x14a\x06\xDAW\x80c\xCDm\xC6\x87\x14a\x06\xEDW\x80c\xD3\xD9o\xF4\x14a\x07\0W\x80c\xDF\\\xF7#\x14a\x07\x13W\x80c\xF2\xFD\xE3\x8B\x14a\x07:W\x80c\xF6\x05\xCE\x08\x14a\x07MW\x80c\xFA\xBC\x1C\xBC\x14a\x07`W__\xFD[\x80c\xA9\x82\x18!\x14a\x06LW\x80c\xAD\xC2\xE3\xD9\x14a\x06_W\x80c\xB2Dz\xF7\x14a\x06rW\x80c\xB6k\xD9\x89\x14a\x06\x85W\x80c\xB9\xFB\xAE\xD1\x14a\x06\x98W\x80c\xBA\x1A\x84\xE5\x14a\x06\xC7W__\xFD[\x80c\x88o\x11\x95\x11a\x01&W\x80c\x88o\x11\x95\x14a\x05\xBBW\x80c\x8C\xE6HT\x14a\x05\xE2W\x80c\x8D\xA5\xCB[\x14a\x06\x02W\x80c\x94\xD7\xD0\x0C\x14a\x06\x13W\x80c\x95(\x99\xEE\x14a\x06&W\x80c\xA93>\xC8\x14a\x069W__\xFD[\x80cl\xFBD\x81\x14a\x05(W\x80cn4\x92\xB5\x14a\x05SW\x80cn\x87]\xBA\x14a\x05fW\x80cqP\x18\xA6\x14a\x05yW\x80cy\xAEP\xCD\x14a\x05\x81W\x80c{\xC1\xEFa\x14a\x05\x94W__\xFD[\x80cAw\xA8|\x11a\x02\x0EW\x80cT\xFDMP\x11a\x01\xC8W\x80cT\xFDMP\x14a\x04\xB0W\x80cV\xC4\x83\xE6\x14a\x04\xC5W\x80cY\\jg\x14a\x04\xD8W\x80cZ\xC8j\xB7\x14a\x04\xE0W\x80c\\\x97Z\xBB\x14a\x05\x03W\x80cg\r;\xA2\x14a\x05\x15W__\xFD[\x80cAw\xA8|\x14a\x04\x10W\x80cFW\xE2j\x14a\x040W\x80cJ\x10\xFF\xE5\x14a\x04WW\x80cKPF\xEF\x14a\x04wW\x80cP\xFE\xEA \x14a\x04\x8AW\x80cTz\xFB\x87\x14a\x04\x9DW__\xFD[\x80c)\x81\xEBw\x11a\x02_W\x80c)\x81\xEBw\x14a\x03MW\x80c+E:\x9A\x14a\x03\x89W\x80c+\xAB,J\x14a\x03\xA9W\x80c0L\x10\xCD\x14a\x03\xBCW\x80c65 W\x14a\x03\xDCW\x80c@\x12\r\xAB\x14a\x03\xEFW__\xFD[\x80c\x10\xE1\xB9\xB8\x14a\x02\xA6W\x80c\x13R\xC3\xE6\x14a\x02\xCFW\x80c\x13d9\xDD\x14a\x02\xF2W\x80c\x15\xFEP(\x14a\x03\x07W\x80c&\r\xC7X\x14a\x03'W\x80c&\x1F\x84\xE0\x14a\x03:W[__\xFD[a\x02\xB9a\x02\xB46`\x04aI\xB7V[a\x07sV[`@Qa\x02\xC6\x91\x90aJ)V[`@Q\x80\x91\x03\x90\xF3[a\x02\xE2a\x02\xDD6`\x04aJ7V[a\x07\x9BV[`@Q\x90\x15\x15\x81R` \x01a\x02\xC6V[a\x03\x05a\x03\x006`\x04aJkV[a\x08\x16V[\0[a\x03\x1Aa\x03\x156`\x04aJ\x82V[a\x08\xF0V[`@Qa\x02\xC6\x91\x90aK\0V[a\x02\xE2a\x0356`\x04aK\x12V[a\n\x07V[a\x03\x05a\x03H6`\x04aKlV[a\n8V[a\x03t\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xC6V[a\x03\x9Ca\x03\x976`\x04aLQV[a\r\x13V[`@Qa\x02\xC6\x91\x90aL\xF4V[a\x03\x9Ca\x03\xB76`\x04aMWV[a\r)V[a\x03\xCFa\x03\xCA6`\x04aJ\x82V[a\r\xC8V[`@Qa\x02\xC6\x91\x90aM\xDBV[a\x03\x05a\x03\xEA6`\x04aM\xEFV[a\r\xF7V[a\x04\x02a\x03\xFD6`\x04aNAV[a\x15\xDBV[`@Qa\x02\xC6\x92\x91\x90aN\xA8V[a\x04#a\x04\x1E6`\x04aK\x12V[a\x17FV[`@Qa\x02\xC6\x91\x90aO\x05V[a\x03\xCF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x04ja\x04e6`\x04aO\x17V[a\x17jV[`@Qa\x02\xC6\x91\x90aOZV[a\x03\x05a\x04\x856`\x04aO\xA5V[a\x18\x12V[a\x03\x05a\x04\x986`\x04aP%V[a\x18\xCCV[a\x04ja\x04\xAB6`\x04aP\x83V[a\x1A*V[a\x04\xB8a\x1A\xD2V[`@Qa\x02\xC6\x91\x90aP\xC5V[a\x03\x05a\x04\xD36`\x04aQ\x10V[a\x1B\x02V[a\x03\x05a\x1C\nV[a\x02\xE2a\x04\xEE6`\x04aQ:V[`fT`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`fT[`@Q\x90\x81R` \x01a\x02\xC6V[a\x02\xE2a\x05#6`\x04aJ7V[a\x1C\xBEV[a\x05;a\x0566`\x04aNAV[a\x1C\xCFV[`@Q`\x01`\x01`@\x1B\x03\x90\x91\x16\x81R` \x01a\x02\xC6V[a\x03\x05a\x05a6`\x04aQpV[a\x1C\xE4V[a\x04#a\x05t6`\x04aK\x12V[a \xC5V[a\x03\x05a \xD6V[a\x03\x1Aa\x05\x8F6`\x04aJ\x82V[a \xE7V[a\x03t\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03\xCF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x05\xF5a\x05\xF06`\x04aQ\xA1V[a!\xC1V[`@Qa\x02\xC6\x91\x90aQ\xE4V[`3T`\x01`\x01`\xA0\x1B\x03\x16a\x03\xCFV[a\x04ja\x06!6`\x04aQ\xF6V[a\"mV[a\x03\x05a\x0646`\x04aRQV[a#YV[a\x05;a\x06G6`\x04aNAV[a(\x05V[a\x03\x05a\x06Z6`\x04aS\xFAV[a(4V[a\x03\x05a\x06m6`\x04aTxV[a(\xE6V[a\x05\x07a\x06\x806`\x04aK\x12V[a,FV[a\x03\x05a\x06\x936`\x04aP%V[a,hV[a\x06\xABa\x06\xA66`\x04aJ\x82V[a-\xC2V[`@\x80Q\x92\x15\x15\x83Rc\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x02\xC6V[a\x05\x07a\x06\xD56`\x04aJ\x82V[a.ZV[a\x04#a\x06\xE86`\x04aJ7V[a.zV[a\x03\x05a\x06\xFB6`\x04aT\xBAV[a.\xA3V[a\x03\x05a\x07\x0E6`\x04aNAV[a/\xC0V[a\x03\xCF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03\x05a\x07H6`\x04aJ\x82V[a0\xE7V[a\x05;a\x07[6`\x04aNAV[a1`V[a\x03\x05a\x07n6`\x04aJkV[a1lV[a\x07{aH\xA8V[_a\x07\x8F\x85a\x07\x89\x86a2\x82V[\x85a2\xE5V[\x92PPP[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9E` R`@\x81 \x81\x90\x81a\x07\xBE\x85a2\x82V[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_ \x81Q\x80\x83\x01\x90\x92RT`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x90\x91\x04c\xFF\xFF\xFF\xFF\x16\x92\x82\x01\x92\x90\x92R\x91P\x80a\x08\x0CWP\x80` \x01Qc\xFF\xFF\xFF\xFF\x16C\x11\x15[\x91PP[\x92\x91PPV[`@Qc#}\xFBG`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cF\xFB\xF6\x8E\x90a\x08b\x903\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08}W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xA1\x91\x90aT\xE4V[a\x08\xBEW`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x81\x81\x16\x81\x14a\x08\xE3W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xEC\x82a4EV[PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9D` R`@\x81 ``\x91\x90a\t\x14\x90a4\x82V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\t/Wa\t/aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\tsW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\tMW\x90P[P\x90P_[\x82\x81\x10\x15a\t\xFFW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a\t\xDA\x90a\t\xA5\x90\x83a4\x8BV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01RP`@\x80Q\x80\x82\x01\x90\x91R``\x82\x90\x1C\x81Rc\xFF\xFF\xFF\xFF\x90\x91\x16` \x82\x01R\x90V[\x82\x82\x81Q\x81\x10a\t\xECWa\t\xECaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\txV[P\x93\x92PPPV[` \x80\x82\x01Q\x82Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x92R`@\x82 a\x08\x10\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a4\x96\x16V[\x82a\nB\x81a4\xADV[a\n_W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xA4` R`@\x90 T`\xFF\x16a\n\x97W`@QcH\xF7\xDB\xB9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x82\x81\x10\x15a\r\x0CW_`@Q\x80`@\x01`@R\x80\x87`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86\x86\x85\x81\x81\x10a\n\xCEWa\n\xCEaU\x03V[\x90P` \x02\x81\x01\x90a\n\xE0\x91\x90aU\x17V[a\n\xEE\x90` \x81\x01\x90aU5V[c\xFF\xFF\xFF\xFF\x16\x81RP\x90Pa\x0B8\x81` \x01Qc\xFF\xFF\xFF\xFF\x16`\x98_\x89`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ a5W\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x0BUW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x7F1b\x92\x85\xEA\xD23Z\xE0\x93?\x86\xED*\xE63!\xF7\xAFw\xB4\xE6\xEA\xAB\xC4,\x05x\x80\x97~l`@Q\x80`@\x01`@R\x80\x88`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x83` \x01Qc\xFF\xFF\xFF\xFF\x16\x81RP`@Qa\x0B\xAB\x91\x90aUNV[`@Q\x80\x91\x03\x90\xA1_a\x0B\xBD\x82a2\x82V[\x90P_[\x86\x86\x85\x81\x81\x10a\x0B\xD3Wa\x0B\xD3aU\x03V[\x90P` \x02\x81\x01\x90a\x0B\xE5\x91\x90aU\x17V[a\x0B\xF3\x90` \x81\x01\x90aU\\V[\x90P\x81\x10\x15a\r\x01Wa\x0Ci\x87\x87\x86\x81\x81\x10a\x0C\x11Wa\x0C\x11aU\x03V[\x90P` \x02\x81\x01\x90a\x0C#\x91\x90aU\x17V[a\x0C1\x90` \x81\x01\x90aU\\V[\x83\x81\x81\x10a\x0CAWa\x0CAaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x0CV\x91\x90aJ\x82V[_\x84\x81R`\x99` R`@\x90 \x90a5bV[P\x7Fz\xB2`\xFE\n\xF1\x93\xDB_I\x86w\r\x83\x1B\xDAN\xA4`\x99\xDC\x81~\x8Bg\x16\xDC\xAE\x8A\xF8\xE8\x8B\x83\x88\x88\x87\x81\x81\x10a\x0C\x9EWa\x0C\x9EaU\x03V[\x90P` \x02\x81\x01\x90a\x0C\xB0\x91\x90aU\x17V[a\x0C\xBE\x90` \x81\x01\x90aU\\V[\x84\x81\x81\x10a\x0C\xCEWa\x0C\xCEaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x0C\xE3\x91\x90aJ\x82V[`@Qa\x0C\xF1\x92\x91\x90aU\xA1V[`@Q\x80\x91\x03\x90\xA1`\x01\x01a\x0B\xC1V[PPP`\x01\x01a\n\x99V[PPPPPV[``a\r!\x84\x84\x84Ca5vV[\x94\x93PPPPV[``a\r7\x85\x85\x85\x85a5vV[\x90P_[\x84Q\x81\x10\x15a\r\xBFWa\rg\x85\x82\x81Q\x81\x10a\rYWa\rYaU\x03V[` \x02` \x01\x01Q\x87a\x07\x9BV[a\r\xB7W_[\x84Q\x81\x10\x15a\r\xB5W_\x83\x83\x81Q\x81\x10a\r\x89Wa\r\x89aU\x03V[` \x02` \x01\x01Q\x82\x81Q\x81\x10a\r\xA2Wa\r\xA2aU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\rmV[P[`\x01\x01a\r;V[P\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x90\x81R`\x97` R`@\x81 T\x90\x91\x16\x80\x15a\r\xF0W\x80a\x07\x94V[P\x90\x91\x90PV[`fT`\x01\x90`\x02\x90\x81\x16\x03a\x0E W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a\x0E*\x81a4\xADV[a\x0EGW`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_`@Q\x80`@\x01`@R\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x85` \x01` \x81\x01\x90a\x0Eu\x91\x90aU5V[c\xFF\xFF\xFF\xFF\x16\x90R\x90Pa\x0E\x8C``\x85\x01\x85aU\\V[\x90Pa\x0E\x9B`@\x86\x01\x86aU\\V[\x90P\x14a\x0E\xBBW`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[` \x80\x82\x01Q\x82Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x92R`@\x90\x91 a\x0E\xED\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a4\x96\x16V[a\x0F\nW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0F a\x0F\x1A` \x86\x01\x86aJ\x82V[\x82a\x07\x9BV[a\x0F=W`@Qc\xEB\xBF\xF4\x97`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x0FK`@\x86\x01\x86aU\\V[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0FdWa\x0FdaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0F\x8DW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[a\x0F\x9F`@\x87\x01\x87aU\\V[\x90P\x81\x10\x15a\x15mW\x80\x15\x80a\x102WPa\x0F\xBD`@\x87\x01\x87aU\\V[a\x0F\xC8`\x01\x84aU\xDBV[\x81\x81\x10a\x0F\xD7Wa\x0F\xD7aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x0F\xEC\x91\x90aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16a\x10\x02`@\x88\x01\x88aU\\V[\x83\x81\x81\x10a\x10\x12Wa\x10\x12aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x10'\x91\x90aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x11[a\x10OW`@Qc\x9F\x1C\x80S`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x10\\``\x87\x01\x87aU\\V[\x82\x81\x81\x10a\x10lWa\x10laU\x03V[\x90P` \x02\x015_\x10\x80\x15a\x10\xACWPg\r\xE0\xB6\xB3\xA7d\0\0a\x10\x92``\x88\x01\x88aU\\V[\x83\x81\x81\x10a\x10\xA2Wa\x10\xA2aU\x03V[\x90P` \x02\x015\x11\x15[a\x10\xC9W`@Qc\x13S`1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11%a\x10\xD9`@\x88\x01\x88aU\\V[\x83\x81\x81\x10a\x10\xE9Wa\x10\xE9aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x10\xFE\x91\x90aJ\x82V[`\x99_a\x11\n\x87a2\x82V[\x81R` \x01\x90\x81R` \x01_ a8c\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x11BW`@Qc1\xBC4'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80a\x11\x94a\x11T` \x8A\x01\x8AaJ\x82V[a\x11]\x87a2\x82V[a\x11j`@\x8C\x01\x8CaU\\V[\x87\x81\x81\x10a\x11zWa\x11zaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x11\x8F\x91\x90aJ\x82V[a2\xE5V[\x80Q\x91\x93P\x91P`\x01`\x01`@\x1B\x03\x16_\x03a\x11\xB1WPPa\x15eV[_a\x11\xECa\x11\xC2``\x8B\x01\x8BaU\\V[\x86\x81\x81\x10a\x11\xD2Wa\x11\xD2aU\x03V[\x85Q`\x01`\x01`@\x1B\x03\x16\x92` \x90\x91\x02\x015\x90Pa8\x84V[\x83Q\x90\x91Pa\x12\x07`\x01`\x01`@\x1B\x03\x80\x84\x16\x90\x83\x16a8\x9AV[\x86\x86\x81Q\x81\x10a\x12\x19Wa\x12\x19aU\x03V[` \x02` \x01\x01\x81\x81RPP\x81\x83_\x01\x81\x81Qa\x126\x91\x90aU\xEEV[`\x01`\x01`@\x1B\x03\x16\x90RP\x83Q\x82\x90\x85\x90a\x12S\x90\x83\x90aU\xEEV[`\x01`\x01`@\x1B\x03\x16\x90RP` \x84\x01\x80Q\x83\x91\x90a\x12s\x90\x83\x90aU\xEEV[`\x01`\x01`@\x1B\x03\x16\x90RP` \x83\x01Q_`\x0F\x91\x90\x91\x0B\x12\x15a\x13xW_a\x12\xD6a\x12\xA2``\x8D\x01\x8DaU\\V[\x88\x81\x81\x10a\x12\xB2Wa\x12\xB2aU\x03V[\x90P` \x02\x015\x85` \x01Qa\x12\xC7\x90aV\rV[`\x01`\x01`\x80\x1B\x03\x16\x90a8\x84V[\x90P\x80`\x01`\x01`@\x1B\x03\x16\x84` \x01\x81\x81Qa\x12\xF3\x91\x90aV.V[`\x0F\x0B\x90RP_Q` a[7_9_Q\x90_Ra\x13\x14` \x8D\x01\x8DaJ\x82V[\x89a\x13\"`@\x8F\x01\x8FaU\\V[\x8A\x81\x81\x10a\x132Wa\x132aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x13G\x91\x90aJ\x82V[a\x13X\x88_\x01Q\x89` \x01Qa8\xAEV[\x88`@\x01Q`@Qa\x13n\x95\x94\x93\x92\x91\x90aV[V[`@Q\x80\x91\x03\x90\xA1P[a\x13\xCAa\x13\x88` \x8C\x01\x8CaJ\x82V[a\x13\x91\x89a2\x82V[a\x13\x9E`@\x8E\x01\x8EaU\\V[\x89\x81\x81\x10a\x13\xAEWa\x13\xAEaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x13\xC3\x91\x90aJ\x82V[\x87\x87a8\xCDV[_Q` a[7_9_Q\x90_Ra\x13\xE5` \x8C\x01\x8CaJ\x82V[\x88a\x13\xF3`@\x8E\x01\x8EaU\\V[\x89\x81\x81\x10a\x14\x03Wa\x14\x03aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x14\x18\x91\x90aJ\x82V[\x86Q`@Qa\x14,\x94\x93\x92\x91\x90C\x90aV[V[`@Q\x80\x91\x03\x90\xA1a\x14}a\x14D` \x8C\x01\x8CaJ\x82V[a\x14Q`@\x8D\x01\x8DaU\\V[\x88\x81\x81\x10a\x14aWa\x14aaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x14v\x91\x90aJ\x82V[\x86Qa;\x01V[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c`\x1B\xB3oa\x14\xB9` \x8D\x01\x8DaJ\x82V[a\x14\xC6`@\x8E\x01\x8EaU\\V[\x89\x81\x81\x10a\x14\xD6Wa\x14\xD6aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x14\xEB\x91\x90aJ\x82V[\x87Q`@Q`\xE0\x85\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R`\x01`\x01`\xA0\x1B\x03\x93\x84\x16`\x04\x82\x01R\x92\x90\x91\x16`$\x83\x01R`\x01`\x01`@\x1B\x03\x80\x86\x16`D\x84\x01R\x16`d\x82\x01R`\x84\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x15JW__\xFD[PZ\xF1\x15\x80\x15a\x15\\W=__>=_\xFD[PPPPPPPP[`\x01\x01a\x0F\x92V[P\x7F\x80\x96\x9A\xD2\x94(\xD6y~\xE7\xAA\xD0\x84\xF9\xE4\xA4*\x82\xFCPm\xCD,\xA3\xB6\xFBC\x1F\x85\xCC\xEB\xE5a\x15\x9C` \x87\x01\x87aJ\x82V[\x83a\x15\xAA`@\x89\x01\x89aU\\V[\x85a\x15\xB8`\x80\x8C\x01\x8CaV\xACV[`@Qa\x15\xCB\x97\x96\x95\x94\x93\x92\x91\x90aW\x16V[`@Q\x80\x91\x03\x90\xA1PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9D` R`@\x81 ``\x91\x82\x91a\x16\0\x90a4\x82V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\x1BWa\x16\x1BaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16_W\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x169W\x90P[P\x90P_\x82`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16{Wa\x16{aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16\xB4W\x81` \x01[a\x16\xA1aH\xA8V[\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x16\x99W\x90P[P\x90P_[\x83\x81\x10\x15a\x177W`\x01`\x01`\xA0\x1B\x03\x88\x16_\x90\x81R`\x9D` R`@\x81 a\x16\xE6\x90a\t\xA5\x90\x84a4\x8BV[\x90P\x80\x84\x83\x81Q\x81\x10a\x16\xFBWa\x16\xFBaU\x03V[` \x02` \x01\x01\x81\x90RPa\x17\x11\x89\x82\x8Aa\x07sV[\x83\x83\x81Q\x81\x10a\x17#Wa\x17#aU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01RP`\x01\x01a\x16\xB9V[P\x90\x93P\x91PP[\x92P\x92\x90PV[``_a\x07\x94`\x99_a\x17X\x86a2\x82V[\x81R` \x01\x90\x81R` \x01_ a;cV[``_\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x17\x86Wa\x17\x86aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x17\xAFW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x84Q\x81\x10\x15a\t\xFFWa\x17\xE0\x85\x82\x81Q\x81\x10a\x17\xD2Wa\x17\xD2aU\x03V[` \x02` \x01\x01Q\x85a(\x05V[\x82\x82\x81Q\x81\x10a\x17\xF2Wa\x17\xF2aU\x03V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x17\xB4V[`fT_\x90`\x01\x90\x81\x16\x03a\x18:W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83\x82\x14a\x18ZW`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x84\x81\x10\x15a\x18\xC3Wa\x18\xBB\x87\x87\x87\x84\x81\x81\x10a\x18zWa\x18zaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x18\x8F\x91\x90aJ\x82V[\x86\x86\x85\x81\x81\x10a\x18\xA1Wa\x18\xA1aU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x18\xB6\x91\x90aW\xACV[a;oV[`\x01\x01a\x18\\V[PPPPPPPV[\x83a\x18\xD6\x81a4\xADV[a\x18\xF3W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R`\x01`\x01`\xA0\x1B\x03\x86\x16\x81Rc\xFF\xFF\xFF\xFF\x85\x16` \x82\x01R_a\x19\x1F\x82a2\x82V[\x90Pa\x19`\x82` \x01Qc\xFF\xFF\xFF\xFF\x16`\x98_\x8A`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ a4\x96\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x19}W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x84\x81\x10\x15a\x1A Wa\x19\x9C\x86\x86\x83\x81\x81\x10a\x0CAWa\x0CAaU\x03V[a\x19\xB9W`@QcX\\\xFB/`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x7Fz\xB2`\xFE\n\xF1\x93\xDB_I\x86w\r\x83\x1B\xDAN\xA4`\x99\xDC\x81~\x8Bg\x16\xDC\xAE\x8A\xF8\xE8\x8B\x83\x87\x87\x84\x81\x81\x10a\x19\xEDWa\x19\xEDaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x1A\x02\x91\x90aJ\x82V[`@Qa\x1A\x10\x92\x91\x90aU\xA1V[`@Q\x80\x91\x03\x90\xA1`\x01\x01a\x19\x7FV[PPPPPPPPV[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1AFWa\x1AFaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1AoW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a\t\xFFWa\x1A\xA0\x85\x85\x83\x81Q\x81\x10a\x1A\x93Wa\x1A\x93aU\x03V[` \x02` \x01\x01Qa(\x05V[\x82\x82\x81Q\x81\x10a\x1A\xB2Wa\x1A\xB2aU\x03V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x1AtV[``a\x1A\xFD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a<sV[\x90P\x90V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x1C\0Wa\x1B;\x82a4\xADV[a\x1BXW`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Qc6\xB8{\xD7`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cmp\xF7\xAE\x90a\x1B\xA4\x90\x85\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xBFW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B\xE3\x91\x90aT\xE4V[a\x1C\0W`@Qc\xCC\xEA\x9Eo`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xEC\x82\x82a<\xB0V[`@Qc#}\xFBG`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cF\xFB\xF6\x8E\x90a\x1CV\x903\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1CqW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\x95\x91\x90aT\xE4V[a\x1C\xB2W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1C\xBC_\x19a4EV[V[_a\x07\x94\x83`\x9A_a\x11\n\x86a2\x82V[__a\x1C\xDB\x84\x84a>RV[\x95\x94PPPPPV[`fT`\x02\x90`\x04\x90\x81\x16\x03a\x1D\rW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1D\"a\x1D\x1D` \x84\x01\x84aJ\x82V[a4\xADV[\x80a\x1D;WPa\x1D;a\x1D\x1D`@\x84\x01` \x85\x01aJ\x82V[a\x1DXW`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[a\x1Dg`@\x84\x01\x84aU\\V[\x90P\x81\x10\x15a )W_`@Q\x80`@\x01`@R\x80\x85` \x01` \x81\x01\x90a\x1D\x8F\x91\x90aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x1D\xAA`@\x87\x01\x87aU\\V[\x85\x81\x81\x10a\x1D\xBAWa\x1D\xBAaU\x03V[\x90P` \x02\x01` \x81\x01\x90a\x1D\xCF\x91\x90aU5V[c\xFF\xFF\xFF\xFF\x16\x81RP\x90Pa\x1E\x1C\x81` \x01Qc\xFF\xFF\xFF\xFF\x16`\x98_\x87` \x01` \x81\x01\x90a\x1D\xFE\x91\x90aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x90a4\x96V[a\x1E9W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x9E_a\x1EI` \x87\x01\x87aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _a\x1Er\x83a2\x82V[\x81R` \x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16a\x1E\xA2W`@Qc%\x13\x1DO`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1E\xDCa\x1E\xAE\x82a2\x82V[`\x9C_a\x1E\xBE` \x89\x01\x89aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x90a?\xC1V[Pa\x1F\x14a\x1E\xED` \x86\x01\x86aJ\x82V[`\x9A_a\x1E\xF9\x85a2\x82V[\x81R` \x01\x90\x81R` \x01_ a?\xCC\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[Pa\x1F\"` \x85\x01\x85aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x7F\xAD4\xC3\x07\x0B\xE1\xDF\xFB\xCA\xA4\x99\xD0\0\xBA+\x8D\x98H\xAE\xFC\xAC0Y\xDF$]\xD9\\N\xCE\x14\xFE\x82`@Qa\x1FZ\x91\x90aUNV[`@Q\x80\x91\x03\x90\xA2`@\x80Q\x80\x82\x01\x90\x91R_\x81R` \x81\x01a\x1F\x9D\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CaW\xCDV[c\xFF\xFF\xFF\xFF\x16\x90R`\x9E_a\x1F\xB5` \x88\x01\x88aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _a\x1F\xDE\x84a2\x82V[\x81R` \x80\x82\x01\x92\x90\x92R`@\x01_ \x82Q\x81T\x93\x90\x92\x01Qc\xFF\xFF\xFF\xFF\x16a\x01\0\x02d\xFF\xFF\xFF\xFF\0\x19\x92\x15\x15\x92\x90\x92\x16d\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x92\x90\x92\x17\x17\x90UP`\x01\x01a\x1DZV[Pa =a\x03\xCA`@\x84\x01` \x85\x01aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16c0<\xA9Va X` \x85\x01\x85aJ\x82V[a h`@\x86\x01` \x87\x01aJ\x82V[a u`@\x87\x01\x87aU\\V[`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a \x94\x94\x93\x92\x91\x90aX\"V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a \xABW__\xFD[PZ\xF1\x15\x80\x15a \xBDW=__>=_\xFD[PPPPPPV[``a\x08\x10`\x9A_a\x17X\x85a2\x82V[a \xDEa?\xE0V[a\x1C\xBC_a@:V[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9C` R`@\x81 ``\x91\x90a!\x0B\x90a4\x82V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a!&Wa!&aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a!jW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a!DW\x90P[P\x90P_[\x82\x81\x10\x15a\t\xFFW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9C` R`@\x90 a!\x9C\x90a\t\xA5\x90\x83a4\x8BV[\x82\x82\x81Q\x81\x10a!\xAEWa!\xAEaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a!oV[``_\x84Q`\x01`\x01`@\x1B\x03\x81\x11\x15a!\xDDWa!\xDDaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\"\x16W\x81` \x01[a\"\x03aH\xA8V[\x81R` \x01\x90`\x01\x90\x03\x90\x81a!\xFBW\x90P[P\x90P_[\x85Q\x81\x10\x15a\r\xBFWa\"H\x86\x82\x81Q\x81\x10a\"9Wa\"9aU\x03V[` \x02` \x01\x01Q\x86\x86a\x07sV[\x82\x82\x81Q\x81\x10a\"ZWa\"ZaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\"\x1BV[``_\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\"\x89Wa\"\x89aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\"\xB2W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x84Q\x81\x10\x15a\r\xBFW`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xA1` R`@\x81 \x86Qa#'\x92\x87\x92\x91\x89\x90\x86\x90\x81\x10a\"\xF2Wa\"\xF2aU\x03V[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ a@\x8B\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82\x82\x81Q\x81\x10a#9Wa#9aU\x03V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\"\xB7V[`fT_\x90`\x01\x90\x81\x16\x03a#\x81W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a#\x8A\x83a4\xADV[a#\xA7W`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___a#\xB3\x86a-\xC2V[\x91P\x91P\x81a#\xD5W`@Qc\xFAU\xFC\x81`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x91P_\x90P[\x83Q\x81\x10\x15a\r\x0CW\x83\x81\x81Q\x81\x10a#\xF6Wa#\xF6aU\x03V[` \x02` \x01\x01Q`@\x01QQ\x84\x82\x81Q\x81\x10a$\x15Wa$\x15aU\x03V[` \x02` \x01\x01Q` \x01QQ\x14a$@W`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x84\x82\x81Q\x81\x10a$SWa$SaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01QQ\x80\x82\x01Q\x81Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x93R`@\x90\x92 \x90\x92Pa$\x93\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a4\x96\x16V[a$\xB0W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a$\xBB\x87\x83a\x07\x9BV[\x90P_[\x86\x84\x81Q\x81\x10a$\xD1Wa$\xD1aU\x03V[` \x02` \x01\x01Q` \x01QQ\x81\x10\x15a'\xFAW_\x87\x85\x81Q\x81\x10a$\xF8Wa$\xF8aU\x03V[` \x02` \x01\x01Q` \x01Q\x82\x81Q\x81\x10a%\x15Wa%\x15aU\x03V[` \x02` \x01\x01Q\x90Pa%,\x89\x82a\xFF\xFFa;oV[__a%;\x8Ba\x07\x89\x88a2\x82V[\x91P\x91P\x80`@\x01Qc\xFF\xFF\xFF\xFF\x16_\x14a%iW`@Qc\r\x8F\xCB\xE3`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a%v\x87\x85\x84\x89a@\x9FV[\x90Pa%\xBB\x82_\x01Q\x8C\x8A\x81Q\x81\x10a%\x91Wa%\x91aU\x03V[` \x02` \x01\x01Q`@\x01Q\x87\x81Q\x81\x10a%\xAEWa%\xAEaU\x03V[` \x02` \x01\x01Qa@\xD5V[`\x0F\x0B` \x83\x01\x81\x90R_\x03a%\xE4W`@QcF\x06\x17\x93`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x82` \x01Q`\x0F\x0B\x12\x15a'(W\x80\x15a&\xAAWa&ea&\x05\x88a2\x82V[`\x01`\x01`\xA0\x1B\x03\x80\x8F\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R \x90\x81T`\x01`\x80\x1B\x90\x81\x90\x04`\x0F\x0B_\x81\x81R`\x01\x80\x86\x01` R`@\x90\x91 \x93\x90\x93U\x83T`\x01`\x01`\x80\x1B\x03\x90\x81\x16\x93\x90\x91\x01\x16\x02\x17\x90UV[a&\x8F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CaW\xCDV[a&\x9A\x90`\x01aW\xCDV[c\xFF\xFF\xFF\xFF\x16`@\x83\x01Ra'\x95V[a&\xBC\x83` \x01Q\x83` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x16` \x84\x01R\x8AQ\x8B\x90\x89\x90\x81\x10a&\xDEWa&\xDEaU\x03V[` \x02` \x01\x01Q`@\x01Q\x85\x81Q\x81\x10a&\xFBWa&\xFBaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q`\x01`\x01`@\x1B\x03\x16\x83R_\x90\x83\x01Rc\xFF\xFF\xFF\xFFC\x16`@\x83\x01Ra'\x95V[_\x82` \x01Q`\x0F\x0B\x13\x15a'\x95Wa'I\x83` \x01Q\x83` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x90\x81\x16` \x85\x01\x81\x90R\x84Q\x90\x91\x16\x10\x15a'\x7FW`@Qcl\x9B\xE0\xBF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a'\x89\x89CaW\xCDV[c\xFF\xFF\xFF\xFF\x16`@\x83\x01R[a'\xAA\x8Ca'\xA2\x89a2\x82V[\x86\x86\x86a8\xCDV[_Q` a[7_9_Q\x90_R\x8C\x88\x86a'\xCC\x86_\x01Q\x87` \x01Qa8\xAEV[\x86`@\x01Q`@Qa'\xE2\x95\x94\x93\x92\x91\x90aV[V[`@Q\x80\x91\x03\x90\xA1PP`\x01\x90\x92\x01\x91Pa$\xBF\x90PV[PPP`\x01\x01a#\xDBV[`\x01`\x01`\xA0\x1B\x03\x80\x83\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x85\x16\x83R\x92\x90R\x90\x81 a\x07\x94\x90a@\xECV[\x82a(>\x81a4\xADV[a([W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xA4` R`@\x90 T`\xFF\x16a(\x9DW`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xA4` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U[\x83`\x01`\x01`\xA0\x1B\x03\x16\x7F\xA8\x9C\x1D\xC2C\xD8\x90\x8A\x96\xDD\x84\x94K\xCC\x97\xD6\xBCj\xC0\r\xD7\x8E b\x15v\xBEj<\x947\x13\x84\x84`@Qa(\xD8\x92\x91\x90aXNV[`@Q\x80\x91\x03\x90\xA2PPPPV[`fT`\x02\x90`\x04\x90\x81\x16\x03a)\x0FW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a)\x19\x81a4\xADV[a)6W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Qc6\xB8{\xD7`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cmp\xF7\xAE\x90a)\x82\x90\x87\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)\x9DW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)\xC1\x91\x90aT\xE4V[a)\xDEW`@Qc\xCC\xEA\x9Eo`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[a)\xED` \x85\x01\x85aU\\V[\x90P\x81\x10\x15a+\xB5W`@\x80Q\x80\x82\x01\x90\x91R_\x90\x80a*\x10` \x88\x01\x88aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86\x80` \x01\x90a*.\x91\x90aU\\V[\x85\x81\x81\x10a*>Wa*>aU\x03V[\x90P` \x02\x01` \x81\x01\x90a*S\x91\x90aU5V[c\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x91R` \x80\x83\x01Q\x83Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x92R`@\x90\x91 \x92\x93Pa*\x8F\x92\x91\x90\x81\x16\x90a4\x96\x16V[a*\xACW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a*\xB6\x86\x82a\x07\x9BV[\x15a*\xD4W`@Qclln'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a*\xFDa*\xE0\x82a2\x82V[`\x01`\x01`\xA0\x1B\x03\x88\x16_\x90\x81R`\x9C` R`@\x90 \x90a5WV[Pa+)\x86`\x9A_a+\x0E\x85a2\x82V[\x81R` \x01\x90\x81R` \x01_ a5b\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[P\x85`\x01`\x01`\xA0\x1B\x03\x16\x7FC#.\xDF\x90qu=#!\xE5\xFA~\x01\x83c\xEE$\x8E_!B\xE6\xC0\x8E\xDD2e\xBF\xB4\x89^\x82`@Qa+c\x91\x90aUNV[`@Q\x80\x91\x03\x90\xA2`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\x9E` R`@\x81 `\x01\x91a+\x8E\x84a2\x82V[\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90UP`\x01\x01a)\xE0V[Pa+\xC6a\x03\xCA` \x85\x01\x85aJ\x82V[`\x01`\x01`\xA0\x1B\x03\x16c\xC6?\xD5\x02\x85a+\xE2` \x87\x01\x87aJ\x82V[a+\xEF` \x88\x01\x88aU\\V[a+\xFC`@\x8A\x01\x8AaV\xACV[`@Q\x87c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a,\x1D\x96\x95\x94\x93\x92\x91\x90aXaV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a,4W__\xFD[PZ\xF1\x15\x80\x15a\x1A W=__>=_\xFD[_a\x08\x10`\x9A_a,V\x85a2\x82V[\x81R` \x01\x90\x81R` \x01_ a4\x82V[\x83a,r\x81a4\xADV[a,\x8FW`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x82R`\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x82Rc\xFF\xFF\xFF\xFF\x80\x88\x16` \x80\x85\x01\x82\x90R_\x93\x84R`\x98\x90R\x93\x90\x91 \x91\x92a,\xCE\x92\x91a4\x96\x16V[a,\xEBW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a,\xF5\x82a2\x82V[\x90P_[\x84\x81\x10\x15a\x1A Wa->\x86\x86\x83\x81\x81\x10a-\x16Wa-\x16aU\x03V[\x90P` \x02\x01` \x81\x01\x90a-+\x91\x90aJ\x82V[_\x84\x81R`\x99` R`@\x90 \x90a?\xCCV[a-[W`@Qc1\xBC4'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x7F{K\x07=\x80\xDC\xACU\xA1\x11w\xD8E\x9A\xD9\xF6d\xCE\xEB\x91\xF7\x1F'\x16{\xB1O\x81R\xA7\xEE\xEE\x83\x87\x87\x84\x81\x81\x10a-\x8FWa-\x8FaU\x03V[\x90P` \x02\x01` \x81\x01\x90a-\xA4\x91\x90aJ\x82V[`@Qa-\xB2\x92\x91\x90aU\xA1V[`@Q\x80\x91\x03\x90\xA1`\x01\x01a,\xF9V[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9B` \x90\x81R`@\x80\x83 \x81Q`\x80\x81\x01\x83R\x90Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x80\x84R`\xFF`\x01` \x1B\x84\x04\x16\x15\x15\x95\x84\x01\x86\x90R`\x01`(\x1B\x83\x04\x82\x16\x94\x84\x01\x94\x90\x94R`\x01`H\x1B\x90\x91\x04\x16``\x82\x01\x81\x90R\x84\x93\x91\x92\x91\x90\x15\x80\x15\x90a.AWP\x82``\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15[\x15a.PWPP`@\x81\x01Q`\x01[\x95\x90\x94P\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x98` R`@\x81 a\x08\x10\x90a4\x82V[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9F` R`@\x81 ``\x91\x90a\x08\x0C\x90\x82a\x17X\x86a2\x82V[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a.\xC1WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a.\xDAWP0;\x15\x80\x15a.\xDAWP_T`\xFF\x16`\x01\x14[a/BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[_\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a/cW_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a/l\x82a4EV[a/u\x83a@:V[\x80\x15a/\xBBW_\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01[`@Q\x80\x91\x03\x90\xA1[PPPV[\x81a/\xCA\x81a4\xADV[a/\xE7W`@Qc\x93-\x94\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Qc\xB5&W\x87`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90c\xB5&W\x87\x90a0\x13\x90\x86\x90`\x04\x01aM\xDBV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0.W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0R\x91\x90aT\xE4V[a0oW`@Qc\x1D\x0B\x13\xC1`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16_\x90\x81R`\x97` R`@\x90 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x84\x16\x91\x90\x91\x17\x90U\x7F*\xE9E\xC4\x0CD\xDC\x0E\xC2c\xF9V\t\xC3\xFD\xC6\x95.\n\xEF\xA2-ct\xE4O,\x99z\xCE\xDF\x85\x83a0\xC7\x81a\r\xC8V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x91\x16` \x83\x01R\x01a/\xB2V[a0\xEFa?\xE0V[`\x01`\x01`\xA0\x1B\x03\x81\x16a1TW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a/9V[a1]\x81a@:V[PV[__a\r\xBF\x84\x84a>RV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a1\xC8W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a1\xEC\x91\x90aX\xADV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a2\x1DW`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x80\x19\x82\x19\x81\x16\x14a2DW`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`f\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01`@Q\x80\x91\x03\x90\xA2PPV[_\x81_\x01Q\x82` \x01Qc\xFF\xFF\xFF\xFF\x16`@Q` \x01a2\xCD\x92\x91\x90``\x92\x90\x92\x1Bk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x82R`\xA0\x1B`\x01`\x01`\xA0\x1B\x03\x19\x16`\x14\x82\x01R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x08\x10\x90aX\xC8V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra3\0aH\xA8V[`@\x80Q\x80\x82\x01\x82R`\x01`\x01`\xA0\x1B\x03\x80\x88\x16_\x90\x81R`\xA1` \x90\x81R\x84\x82 \x92\x88\x16\x82R\x91\x90\x91R\x91\x82 \x81\x90a39\x90a@\xECV[`\x01`\x01`@\x1B\x03\x90\x81\x16\x82R`\x01`\x01`\xA0\x1B\x03\x89\x81\x16_\x81\x81R`\xA2` \x90\x81R`@\x80\x83 \x94\x8C\x16\x80\x84R\x94\x82R\x80\x83 T\x86\x16\x96\x82\x01\x96\x90\x96R\x91\x81R`\xA0\x82R\x84\x81 \x8B\x82R\x82R\x84\x81 \x92\x81R\x91\x81R\x90\x83\x90 \x83Q``\x81\x01\x85R\x90T\x92\x83\x16\x81R`\x01`@\x1B\x83\x04`\x0F\x0B\x91\x81\x01\x91\x90\x91R`\x01`\xC0\x1B\x90\x91\x04c\xFF\xFF\xFF\xFF\x16\x91\x81\x01\x82\x90R\x91\x92PC\x10\x15a3\xDBW\x90\x92P\x90Pa4=V[a3\xEC\x81_\x01Q\x82` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x16\x81R` \x81\x01Q_`\x0F\x91\x90\x91\x0B\x12\x15a4*Wa4\x1B\x82` \x01Q\x82` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x16` \x83\x01R[_`@\x82\x01\x81\x90R` \x82\x01R\x90\x92P\x90P[\x93P\x93\x91PPV[`f\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[_a\x08\x10\x82T\x90V[_a\x07\x94\x83\x83a@\xFFV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x07\x94V[`@Qc\x1B\xEB+\x97`\xE3\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R3`$\x83\x01R0`D\x83\x01R_\x805`\x01`\x01`\xE0\x1B\x03\x19\x16`d\x84\x01R\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xDFY\\\xB8\x90`\x84\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a53W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\x10\x91\x90aT\xE4V[_a\x07\x94\x83\x83aA%V[_a\x07\x94\x83`\x01`\x01`\xA0\x1B\x03\x84\x16aA%V[``\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a5\x91Wa5\x91aH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a5\xC4W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a5\xAFW\x90P[P\x90P_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xF0\xE0\xE6v\x86\x86`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a6\x16\x92\x91\x90aX\xEBV[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a60W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra6W\x91\x90\x81\x01\x90aY\x0FV[\x90P_[\x85Q\x81\x10\x15a8YW_\x86\x82\x81Q\x81\x10a6wWa6waU\x03V[` \x02` \x01\x01Q\x90P\x85Q`\x01`\x01`@\x1B\x03\x81\x11\x15a6\x9AWa6\x9AaH\xDBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a6\xC3W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x84\x83\x81Q\x81\x10a6\xD6Wa6\xD6aU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x01R_[\x86Q\x81\x10\x15a8OW_\x87\x82\x81Q\x81\x10a6\xFFWa6\xFFaU\x03V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA1\x84R`@\x80\x82 \x92\x84\x16\x82R\x91\x90\x93R\x82 \x90\x92Pa7:\x90a@\xECV[\x90P\x80`\x01`\x01`@\x1B\x03\x16_\x03a7SWPPa8GV[_a7_\x85\x8D\x85a\x07sV[\x90P\x88c\xFF\xFF\xFF\xFF\x16\x81`@\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15\x80\x15a7\x87WP_\x81` \x01Q`\x0F\x0B\x12[\x15a7\xA9Wa7\x9D\x81_\x01Q\x82` \x01Qa8\xAEV[`\x01`\x01`@\x1B\x03\x16\x81R[\x80Q_\x90a7\xC4\x90`\x01`\x01`@\x1B\x03\x90\x81\x16\x90\x85\x16a8\x9AV[\x90Pa8\x0B\x81\x89\x89\x81Q\x81\x10a7\xDCWa7\xDCaU\x03V[` \x02` \x01\x01Q\x87\x81Q\x81\x10a7\xF5Wa7\xF5aU\x03V[` \x02` \x01\x01QaAq\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x89\x88\x81Q\x81\x10a8\x1DWa8\x1DaU\x03V[` \x02` \x01\x01Q\x86\x81Q\x81\x10a86Wa86aU\x03V[` \x02` \x01\x01\x81\x81RPPPPPP[`\x01\x01a6\xE3V[PP`\x01\x01a6[V[PP\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x07\x94V[_a\x07\x94\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0`\x01aA\x85V[_a\x07\x94\x83g\r\xE0\xB6\xB3\xA7d\0\0\x84aA\xDEV[_a\x07\x94a8\xC5\x83`\x01`\x01`@\x1B\x03\x86\x16aV.V[`\x0F\x0BaB\xC3V[` \x80\x83\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x88\x16_\x90\x81R`\xA2\x84R`@\x80\x82 \x92\x88\x16\x82R\x91\x90\x93R\x90\x91 T`\x01`\x01`@\x1B\x03\x90\x81\x16\x91\x16\x14a9\x8FW` \x82\x81\x01\x80Q`\x01`\x01`\xA0\x1B\x03\x88\x81\x16_\x90\x81R`\xA2\x85R`@\x80\x82 \x92\x89\x16\x82R\x91\x90\x94R\x92\x83\x90 \x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01`\x01`@\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UQ\x90Q\x7F\xAC\xF9\t_\xEB:7\x0C\x9C\xF6\x92B\x1Ci\xEF2\rM\xB5\xC6nj})\xC7iN\xB0#d\xFCU\x91a9\x86\x91\x88\x91\x87\x91aZ\x1BV[`@Q\x80\x91\x03\x90\xA1[`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA0` \x90\x81R`@\x80\x83 \x88\x84R\x82R\x80\x83 \x93\x87\x16\x83R\x92\x81R\x90\x82\x90 \x83Q\x81T\x92\x85\x01Q\x93\x85\x01Qc\xFF\xFF\xFF\xFF\x16`\x01`\xC0\x1B\x02c\xFF\xFF\xFF\xFF`\xC0\x1B\x19`\x01`\x01`\x80\x1B\x03\x86\x16`\x01`@\x1B\x02`\x01`\x01`\xC0\x1B\x03\x19\x90\x95\x16`\x01`\x01`@\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x93\x90\x93\x17\x16\x91\x90\x91\x17\x90U`\x0F\x0B\x15a:qW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a:I\x90\x84a5bV[P`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a:k\x90\x85a5WV[Pa\r\x0CV[\x80Q`\x01`\x01`@\x1B\x03\x16_\x03a\r\x0CW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a:\xAE\x90\x84a?\xCCV[P`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a:\xDA\x90a4\x82V[_\x03a\r\x0CW`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a \xBD\x90\x85a?\xC1V[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R a;0\x90C\x83aC.V[\x7F\x1CdX\x07\x9AA\x07}\0<\x11\xFA\xF9\xBF\t~i;\xD6yy\xE4\xE6P\x0B\xAC{)\xDBw\x9B\\\x83\x83\x83`@Qa/\xB2\x93\x92\x91\x90aZ\x1BV[``_a\x07\x94\x83aCBV[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R\x90\x81 T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x03[_\x81\x11\x80\x15a;\xB9WP\x82a\xFF\xFF\x16\x82\x10[\x15a\r\x0CW`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R\x90\x81 a;\xED\x90aC\x9BV[\x90P__a;\xFC\x88\x84\x89a2\xE5V[\x91P\x91P\x80`@\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15a<\x1AWPPPa\r\x0CV[a<'\x88\x84\x89\x85\x85a8\xCDV[`\x01`\x01`\xA0\x1B\x03\x80\x89\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R a<T\x90aC\xEDV[Pa<^\x85aZGV[\x94Pa<i\x84aZ_V[\x93PPPPa;\xA7V[``_a<\x7F\x83aDaV[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9B` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x90Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x83R`\xFF`\x01` \x1B\x83\x04\x16\x15\x15\x93\x83\x01\x93\x90\x93R`\x01`(\x1B\x81\x04\x83\x16\x93\x82\x01\x93\x90\x93R`\x01`H\x1B\x90\x92\x04\x16``\x82\x01\x81\x90R\x15\x80\x15\x90a=*WP\x80``\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15[\x15a=DW`@\x81\x01Qc\xFF\xFF\xFF\xFF\x16\x81R`\x01` \x82\x01R[c\xFF\xFF\xFF\xFF\x82\x16`@\x82\x01Ra=z\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CaW\xCDV[a=\x85\x90`\x01aW\xCDV[c\xFF\xFF\xFF\xFF\x90\x81\x16``\x83\x81\x01\x91\x82R`\x01`\x01`\xA0\x1B\x03\x86\x16_\x81\x81R`\x9B` \x90\x81R`@\x91\x82\x90 \x87Q\x81T\x83\x8A\x01Q\x85\x8B\x01Q\x98Q\x92\x8A\x16d\xFF\xFF\xFF\xFF\xFF\x19\x90\x92\x16\x91\x90\x91\x17`\x01` \x1B\x91\x15\x15\x91\x90\x91\x02\x17l\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x19\x16`\x01`(\x1B\x97\x89\x16\x97\x90\x97\x02c\xFF\xFF\xFF\xFF`H\x1B\x19\x16\x96\x90\x96\x17`\x01`H\x1B\x96\x88\x16\x96\x87\x02\x17\x90U\x81Q\x92\x83R\x94\x87\x16\x94\x82\x01\x94\x90\x94R\x92\x83\x01\x91\x90\x91R\x7FN\x85u\x1Dc1Pllb3_ ~\xB3\x1F\x12\xA6\x1EW\x0F4\xF5\xC1v@0\x87\x85\xC6\xD4\xDB\x91\x01a/\xB2V[`\x01`\x01`\xA0\x1B\x03\x82\x81\x16_\x81\x81R`\xA2` \x90\x81R`@\x80\x83 \x94\x86\x16\x80\x84R\x94\x82R\x80\x83 T\x93\x83R`\xA3\x82R\x80\x83 \x94\x83R\x93\x90R\x91\x82 T`\x01`\x01`@\x1B\x03\x90\x91\x16\x91\x90`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x03\x81[\x81\x81\x10\x15a?}W`\x01`\x01`\xA0\x1B\x03\x80\x87\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x89\x16\x83R\x92\x90R\x90\x81 a>\xE5\x90\x83aD\x88V[`\x01`\x01`\xA0\x1B\x03\x88\x81\x16_\x90\x81R`\xA0` \x90\x81R`@\x80\x83 \x85\x84R\x82R\x80\x83 \x93\x8B\x16\x83R\x92\x81R\x90\x82\x90 \x82Q``\x81\x01\x84R\x90T`\x01`\x01`@\x1B\x03\x81\x16\x82R`\x01`@\x1B\x81\x04`\x0F\x0B\x92\x82\x01\x92\x90\x92R`\x01`\xC0\x1B\x90\x91\x04c\xFF\xFF\xFF\xFF\x16\x91\x81\x01\x82\x90R\x91\x92PC\x10\x15a?`WPPa?}V[a?n\x86\x82` \x01Qa8\xAEV[\x95PPP\x80`\x01\x01\x90Pa>\xADV[P`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R \x83\x90a?\xAD\x90a@\xECV[a?\xB7\x91\x90aU\xEEV[\x91PP\x92P\x92\x90PV[_a\x07\x94\x83\x83aD\xF7V[_a\x07\x94\x83`\x01`\x01`\xA0\x1B\x03\x84\x16aD\xF7V[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x1C\xBCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a/9V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90_\x90\xA3PPV[_a\x07\x94\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0aE\xDAV[_a@\xB0\x84`\x99_a\x11\n\x89a2\x82V[\x80\x15a@\xB9WP\x81[\x80\x15a\x1C\xDBWPP\x90Q`\x01`\x01`@\x1B\x03\x16\x15\x15\x93\x92PPPV[_a\x07\x94`\x01`\x01`@\x1B\x03\x80\x85\x16\x90\x84\x16aZtV[_a\x08\x10\x82g\r\xE0\xB6\xB3\xA7d\0\0aF/V[_\x82_\x01\x82\x81T\x81\x10aA\x14WaA\x14aU\x03V[\x90_R` _ \x01T\x90P\x92\x91PPV[_\x81\x81R`\x01\x83\x01` R`@\x81 TaAjWP\x81T`\x01\x81\x81\x01\x84U_\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x08\x10V[P_a\x08\x10V[_a\x07\x94\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0aA\xDEV[__aA\x92\x86\x86\x86aA\xDEV[\x90P`\x01\x83`\x02\x81\x11\x15aA\xA8WaA\xA8aZ\xA1V[\x14\x80\x15aA\xC4WP_\x84\x80aA\xBFWaA\xBFaZ\xB5V[\x86\x88\t\x11[\x15a\x1C\xDBWaA\xD4`\x01\x82aZ\xC9V[\x96\x95PPPPPPV[_\x80\x80_\x19\x85\x87\t\x85\x87\x02\x92P\x82\x81\x10\x83\x82\x03\x03\x91PP\x80_\x03aB\x15W\x83\x82\x81aB\x0BWaB\x0BaZ\xB5V[\x04\x92PPPa\x07\x94V[\x80\x84\x11aB\\W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01RtMath: mulDiv overflow`X\x1B`D\x82\x01R`d\x01a/9V[_\x84\x86\x88\t`\x02`\x01\x87\x19\x81\x01\x88\x16\x97\x88\x90\x04`\x03\x81\x02\x83\x18\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x90\x81\x02\x90\x92\x03\x90\x91\x02_\x88\x90\x03\x88\x90\x04\x90\x91\x01\x85\x83\x11\x90\x94\x03\x93\x90\x93\x02\x93\x03\x94\x90\x94\x04\x91\x90\x91\x17\x02\x94\x93PPPPV[_`\x01`\x01`@\x1B\x03\x82\x11\x15aC*W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FSafeCast: value doesn't fit in 6`D\x82\x01Re4 bits`\xD0\x1B`d\x82\x01R`\x84\x01a/9V[P\x90V[a/\xBB\x83\x83`\x01`\x01`@\x1B\x03\x84\x16aFfV[``\x81_\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15aC\x8FW` \x02\x82\x01\x91\x90_R` _ \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11aC{W[PPPPP\x90P\x91\x90PV[_aC\xB5\x82T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x13\x15\x90V[\x15aC\xD3W`@Qc\x1E\xD9P\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x80T`\x0F\x0B_\x90\x81R`\x01\x90\x91\x01` R`@\x90 T\x90V[_aD\x07\x82T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x13\x15\x90V[\x15aD%W`@Qc\x1E\xD9P\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x80T`\x0F\x0B_\x81\x81R`\x01\x80\x84\x01` R`@\x82 \x80T\x92\x90U\x83T`\x01`\x01`\x80\x1B\x03\x19\x16\x92\x01`\x01`\x01`\x80\x1B\x03\x16\x91\x90\x91\x17\x90\x91U\x90V[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x08\x10W`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[__aD\xAAaD\x96\x84aGiV[\x85TaD\xA5\x91\x90`\x0F\x0BaZ\xDCV[aG\xD2V[\x84T\x90\x91P`\x01`\x80\x1B\x90\x04`\x0F\x90\x81\x0B\x90\x82\x90\x0B\x12aD\xDDW`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x0F\x0B_\x90\x81R`\x01\x93\x90\x93\x01` RPP`@\x90 T\x90V[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15aE\xD1W_aE\x19`\x01\x83aU\xDBV[\x85T\x90\x91P_\x90aE,\x90`\x01\x90aU\xDBV[\x90P\x81\x81\x14aE\x8BW_\x86_\x01\x82\x81T\x81\x10aEJWaEJaU\x03V[\x90_R` _ \x01T\x90P\x80\x87_\x01\x84\x81T\x81\x10aEjWaEjaU\x03V[_\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80aE\x9CWaE\x9Ca[\x03V[`\x01\x90\x03\x81\x81\x90_R` _ \x01_\x90U\x90U\x85`\x01\x01_\x86\x81R` \x01\x90\x81R` \x01_ _\x90U`\x01\x93PPPPa\x08\x10V[_\x91PPa\x08\x10V[\x82T_\x90\x81aE\xEB\x86\x86\x83\x85aH;V[\x90P\x80\x15aF%WaF\x0F\x86aF\x02`\x01\x84aU\xDBV[_\x91\x82R` \x90\x91 \x01\x90V[T`\x01` \x1B\x90\x04`\x01`\x01`\xE0\x1B\x03\x16a\x07\x8FV[P\x91\x94\x93PPPPV[\x81T_\x90\x80\x15aF^WaFH\x84aF\x02`\x01\x84aU\xDBV[T`\x01` \x1B\x90\x04`\x01`\x01`\xE0\x1B\x03\x16a\x08\x0CV[P\x90\x92\x91PPV[\x82T\x80\x15aG\x1CW_aF~\x85aF\x02`\x01\x85aU\xDBV[`@\x80Q\x80\x82\x01\x90\x91R\x90Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x80\x84R`\x01` \x1B\x90\x92\x04`\x01`\x01`\xE0\x1B\x03\x16` \x84\x01R\x91\x92P\x90\x85\x16\x10\x15aF\xD0W`@Qc\x15\x1B\x8E?`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80Qc\xFF\xFF\xFF\xFF\x80\x86\x16\x91\x16\x03aG\x1AW\x82aF\xF1\x86aF\x02`\x01\x86aU\xDBV[\x80T`\x01`\x01`\xE0\x1B\x03\x92\x90\x92\x16`\x01` \x1B\x02c\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x90UPPPPPV[P[P`@\x80Q\x80\x82\x01\x90\x91Rc\xFF\xFF\xFF\xFF\x92\x83\x16\x81R`\x01`\x01`\xE0\x1B\x03\x91\x82\x16` \x80\x83\x01\x91\x82R\x85T`\x01\x81\x01\x87U_\x96\x87R\x95 \x91Q\x90Q\x90\x92\x16`\x01` \x1B\x02\x91\x90\x92\x16\x17\x91\x01UV[_`\x01`\x01`\xFF\x1B\x03\x82\x11\x15aC*W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`(`$\x82\x01R\x7FSafeCast: value doesn't fit in a`D\x82\x01Rg7\x104\xB7:\x19\x1A\x9B`\xC1\x1B`d\x82\x01R`\x84\x01a/9V[\x80`\x0F\x81\x90\x0B\x81\x14aH6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FSafeCast: value doesn't fit in 1`D\x82\x01Rf28 bits`\xC8\x1B`d\x82\x01R`\x84\x01a/9V[\x91\x90PV[_[\x81\x83\x10\x15a\t\xFFW_aHP\x84\x84aH\x8EV[_\x87\x81R` \x90 \x90\x91Pc\xFF\xFF\xFF\xFF\x86\x16\x90\x82\x01Tc\xFF\xFF\xFF\xFF\x16\x11\x15aHzW\x80\x92PaH\x88V[aH\x85\x81`\x01aZ\xC9V[\x93P[PaH=V[_aH\x9C`\x02\x84\x84\x18a[\x17V[a\x07\x94\x90\x84\x84\x16aZ\xC9V[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a1]W__\xFD[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q``\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI\x11WaI\x11aH\xDBV[`@R\x90V[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI?WaI?aH\xDBV[`@R\x91\x90PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14aH6W__\xFD[_`@\x82\x84\x03\x12\x15aIjW__\xFD[`@\x80Q\x90\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI\x8CWaI\x8CaH\xDBV[`@R\x90P\x80\x825aI\x9D\x81aH\xC7V[\x81RaI\xAB` \x84\x01aIGV[` \x82\x01RP\x92\x91PPV[___`\x80\x84\x86\x03\x12\x15aI\xC9W__\xFD[\x835aI\xD4\x81aH\xC7V[\x92PaI\xE3\x85` \x86\x01aIZV[\x91P``\x84\x015aI\xF3\x81aH\xC7V[\x80\x91PP\x92P\x92P\x92V[\x80Q`\x01`\x01`@\x1B\x03\x16\x82R` \x80\x82\x01Q`\x0F\x0B\x90\x83\x01R`@\x90\x81\x01Qc\xFF\xFF\xFF\xFF\x16\x91\x01RV[``\x81\x01a\x08\x10\x82\x84aI\xFEV[__``\x83\x85\x03\x12\x15aJHW__\xFD[\x825aJS\x81aH\xC7V[\x91PaJb\x84` \x85\x01aIZV[\x90P\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15aJ{W__\xFD[P5\x91\x90PV[_` \x82\x84\x03\x12\x15aJ\x92W__\xFD[\x815a\x07\x94\x81aH\xC7V[\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x90\x81\x01Qc\xFF\xFF\xFF\xFF\x16\x91\x01RV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJ\xF6WaJ\xE0\x86\x83QaJ\x9DV[`@\x95\x90\x95\x01\x94` \x91\x90\x91\x01\x90`\x01\x01aJ\xCDV[P\x93\x94\x93PPPPV[` \x81R_a\x07\x94` \x83\x01\x84aJ\xBBV[_`@\x82\x84\x03\x12\x15aK\"W__\xFD[a\x07\x94\x83\x83aIZV[__\x83`\x1F\x84\x01\x12aK<W__\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aKRW__\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x17?W__\xFD[___`@\x84\x86\x03\x12\x15aK~W__\xFD[\x835aK\x89\x81aH\xC7V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aK\xA3W__\xFD[aK\xAF\x86\x82\x87\x01aK,V[\x94\x97\x90\x96P\x93\x94PPPPV[_`\x01`\x01`@\x1B\x03\x82\x11\x15aK\xD4WaK\xD4aH\xDBV[P`\x05\x1B` \x01\x90V[_\x82`\x1F\x83\x01\x12aK\xEDW__\xFD[\x815aL\0aK\xFB\x82aK\xBCV[aI\x17V[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aL!W__\xFD[` \x85\x01[\x83\x81\x10\x15aLGW\x805aL9\x81aH\xC7V[\x83R` \x92\x83\x01\x92\x01aL&V[P\x95\x94PPPPPV[___`\x80\x84\x86\x03\x12\x15aLcW__\xFD[aLm\x85\x85aIZV[\x92P`@\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aL\x87W__\xFD[aL\x93\x86\x82\x87\x01aK\xDEV[\x92PP``\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aL\xAEW__\xFD[aL\xBA\x86\x82\x87\x01aK\xDEV[\x91PP\x92P\x92P\x92V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJ\xF6W\x81Q\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aL\xD6V[_` \x82\x01` \x83R\x80\x84Q\x80\x83R`@\x85\x01\x91P`@\x81`\x05\x1B\x86\x01\x01\x92P` \x86\x01_[\x82\x81\x10\x15aMKW`?\x19\x87\x86\x03\x01\x84RaM6\x85\x83QaL\xC4V[\x94P` \x93\x84\x01\x93\x91\x90\x91\x01\x90`\x01\x01aM\x1AV[P\x92\x96\x95PPPPPPV[____`\xA0\x85\x87\x03\x12\x15aMjW__\xFD[aMt\x86\x86aIZV[\x93P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\x8EW__\xFD[aM\x9A\x87\x82\x88\x01aK\xDEV[\x93PP``\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\xB5W__\xFD[aM\xC1\x87\x82\x88\x01aK\xDEV[\x92PPaM\xD0`\x80\x86\x01aIGV[\x90P\x92\x95\x91\x94P\x92PV[`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[__`@\x83\x85\x03\x12\x15aN\0W__\xFD[\x825aN\x0B\x81aH\xC7V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN%W__\xFD[\x83\x01`\xA0\x81\x86\x03\x12\x15aN6W__\xFD[\x80\x91PP\x92P\x92\x90PV[__`@\x83\x85\x03\x12\x15aNRW__\xFD[\x825aN]\x81aH\xC7V[\x91P` \x83\x015aN6\x81aH\xC7V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJ\xF6WaN\x92\x86\x83QaI\xFEV[``\x95\x90\x95\x01\x94` \x91\x90\x91\x01\x90`\x01\x01aN\x7FV[`@\x81R_aN\xBA`@\x83\x01\x85aJ\xBBV[\x82\x81\x03` \x84\x01Ra\x1C\xDB\x81\x85aNmV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJ\xF6W\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aN\xDEV[` \x81R_a\x07\x94` \x83\x01\x84aN\xCCV[__`@\x83\x85\x03\x12\x15aO(W__\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15aO=W__\xFD[aOI\x85\x82\x86\x01aK\xDEV[\x92PP` \x83\x015aN6\x81aH\xC7V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x84\x01\x90`@\x84\x01\x90\x83[\x81\x81\x10\x15aO\x9AW\x83Q`\x01`\x01`@\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aOsV[P\x90\x95\x94PPPPPV[_____``\x86\x88\x03\x12\x15aO\xB9W__\xFD[\x855aO\xC4\x81aH\xC7V[\x94P` \x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aO\xDEW__\xFD[aO\xEA\x88\x82\x89\x01aK,V[\x90\x95P\x93PP`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aP\x08W__\xFD[aP\x14\x88\x82\x89\x01aK,V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[____``\x85\x87\x03\x12\x15aP8W__\xFD[\x845aPC\x81aH\xC7V[\x93PaPQ` \x86\x01aIGV[\x92P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aPkW__\xFD[aPw\x87\x82\x88\x01aK,V[\x95\x98\x94\x97P\x95PPPPV[__`@\x83\x85\x03\x12\x15aP\x94W__\xFD[\x825aP\x9F\x81aH\xC7V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aP\xB9W__\xFD[a?\xB7\x85\x82\x86\x01aK\xDEV[` \x81R_\x82Q\x80` \x84\x01R_[\x81\x81\x10\x15aP\xF1W` \x81\x86\x01\x81\x01Q`@\x86\x84\x01\x01R\x01aP\xD4V[P_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[__`@\x83\x85\x03\x12\x15aQ!W__\xFD[\x825aQ,\x81aH\xC7V[\x91PaJb` \x84\x01aIGV[_` \x82\x84\x03\x12\x15aQJW__\xFD[\x815`\xFF\x81\x16\x81\x14a\x07\x94W__\xFD[_``\x82\x84\x03\x12\x15aQjW__\xFD[P\x91\x90PV[_` \x82\x84\x03\x12\x15aQ\x80W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aQ\x95W__\xFD[a\x08\x0C\x84\x82\x85\x01aQZV[___`\x80\x84\x86\x03\x12\x15aQ\xB3W__\xFD[\x835`\x01`\x01`@\x1B\x03\x81\x11\x15aQ\xC8W__\xFD[aQ\xD4\x86\x82\x87\x01aK\xDEV[\x93PPaI\xE3\x85` \x86\x01aIZV[` \x81R_a\x07\x94` \x83\x01\x84aNmV[___``\x84\x86\x03\x12\x15aR\x08W__\xFD[\x835aR\x13\x81aH\xC7V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aR-W__\xFD[aR9\x86\x82\x87\x01aK\xDEV[\x92PPaRH`@\x85\x01aIGV[\x90P\x92P\x92P\x92V[__`@\x83\x85\x03\x12\x15aRbW__\xFD[\x825aRm\x81aH\xC7V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aR\x87W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13aR\x97W__\xFD[\x805aR\xA5aK\xFB\x82aK\xBCV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x87\x83\x11\x15aR\xC6W__\xFD[` \x84\x01[\x83\x81\x10\x15aS\xEBW\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aR\xE8W__\xFD[\x85\x01`\x80\x81\x8B\x03`\x1F\x19\x01\x12\x15aR\xFDW__\xFD[aS\x05aH\xEFV[aS\x12\x8B` \x84\x01aIZV[\x81R``\x82\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aS,W__\xFD[aS;\x8C` \x83\x86\x01\x01aK\xDEV[` \x83\x01RP`\x80\x82\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aSYW__\xFD[` \x81\x84\x01\x01\x92PP\x8A`\x1F\x83\x01\x12aSpW__\xFD[\x815aS~aK\xFB\x82aK\xBCV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x8D\x83\x11\x15aS\x9FW__\xFD[` \x85\x01\x94P[\x82\x85\x10\x15aS\xD5W\x845`\x01`\x01`@\x1B\x03\x81\x16\x81\x14aS\xC4W__\xFD[\x82R` \x94\x85\x01\x94\x90\x91\x01\x90aS\xA6V[`@\x84\x01RPP\x84RP` \x92\x83\x01\x92\x01aR\xCBV[P\x80\x94PPPPP\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15aT\x0CW__\xFD[\x835aT\x17\x81aH\xC7V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aT1W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13aTAW__\xFD[\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aTVW__\xFD[\x86` \x82\x84\x01\x01\x11\x15aTgW__\xFD[\x93\x96` \x91\x90\x91\x01\x95P\x92\x93PPPV[__`@\x83\x85\x03\x12\x15aT\x89W__\xFD[\x825aT\x94\x81aH\xC7V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aT\xAEW__\xFD[a?\xB7\x85\x82\x86\x01aQZV[__`@\x83\x85\x03\x12\x15aT\xCBW__\xFD[\x825aT\xD6\x81aH\xC7V[\x94` \x93\x90\x93\x015\x93PPPV[_` \x82\x84\x03\x12\x15aT\xF4W__\xFD[\x81Q\x80\x15\x15\x81\x14a\x07\x94W__\xFD[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_\x825`>\x19\x836\x03\x01\x81\x12aU+W__\xFD[\x91\x90\x91\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15aUEW__\xFD[a\x07\x94\x82aIGV[`@\x81\x01a\x08\x10\x82\x84aJ\x9DV[__\x835`\x1E\x19\x846\x03\x01\x81\x12aUqW__\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aU\x8AW__\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a\x17?W__\xFD[``\x81\x01aU\xAF\x82\x85aJ\x9DV[`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`@\x91\x90\x91\x01R\x91\x90PV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a\x08\x10Wa\x08\x10aU\xC7V[`\x01`\x01`@\x1B\x03\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x08\x10Wa\x08\x10aU\xC7V[_`\x0F\x82\x90\x0B`\x01`\x7F\x1B\x81\x01aV&WaV&aU\xC7V[_\x03\x92\x91PPV[`\x0F\x81\x81\x0B\x90\x83\x90\x0B\x01`\x01`\x01`\x7F\x1B\x03\x81\x13`\x01`\x01`\x7F\x1B\x03\x19\x82\x12\x17\x15a\x08\x10Wa\x08\x10aU\xC7V[`\x01`\x01`\xA0\x1B\x03\x86\x16\x81R`\xC0\x81\x01aVx` \x83\x01\x87aJ\x9DV[`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16``\x82\x01R`\x01`\x01`@\x1B\x03\x92\x90\x92\x16`\x80\x83\x01Rc\xFF\xFF\xFF\xFF\x16`\xA0\x90\x91\x01R\x92\x91PPV[__\x835`\x1E\x19\x846\x03\x01\x81\x12aV\xC1W__\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aV\xDAW__\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a\x17?W__\xFD[\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[`\x01`\x01`\xA0\x1B\x03\x88\x16\x81R_`\xC0\x82\x01aW4` \x84\x01\x8AaJ\x9DV[`\xC0``\x84\x01R\x86\x90R\x86`\xE0\x83\x01_[\x88\x81\x10\x15aWuW\x825aWX\x81aH\xC7V[`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x92\x83\x01\x92\x90\x91\x01\x90`\x01\x01aWEV[P\x83\x81\x03`\x80\x85\x01RaW\x88\x81\x88aL\xC4V[\x91PP\x82\x81\x03`\xA0\x84\x01RaW\x9E\x81\x85\x87aV\xEEV[\x9A\x99PPPPPPPPPPV[_` \x82\x84\x03\x12\x15aW\xBCW__\xFD[\x815a\xFF\xFF\x81\x16\x81\x14a\x07\x94W__\xFD[c\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x81\x11\x15a\x08\x10Wa\x08\x10aU\xC7V[\x81\x83R` \x83\x01\x92P_\x81_[\x84\x81\x10\x15aJ\xF6Wc\xFF\xFF\xFF\xFFaX\x0C\x83aIGV[\x16\x86R` \x95\x86\x01\x95\x91\x90\x91\x01\x90`\x01\x01aW\xF6V[`\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x82R\x84\x16` \x82\x01R```@\x82\x01\x81\x90R_\x90aA\xD4\x90\x83\x01\x84\x86aW\xE9V[` \x81R_a\r!` \x83\x01\x84\x86aV\xEEV[`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x82R\x86\x16` \x82\x01R`\x80`@\x82\x01\x81\x90R_\x90aX\x8D\x90\x83\x01\x86\x88aW\xE9V[\x82\x81\x03``\x84\x01RaX\xA0\x81\x85\x87aV\xEEV[\x99\x98PPPPPPPPPV[_` \x82\x84\x03\x12\x15aX\xBDW__\xFD[\x81Qa\x07\x94\x81aH\xC7V[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15aQjW_\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[`@\x81R_aX\xFD`@\x83\x01\x85aN\xCCV[\x82\x81\x03` \x84\x01Ra\x1C\xDB\x81\x85aN\xCCV[_` \x82\x84\x03\x12\x15aY\x1FW__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aY4W__\xFD[\x82\x01`\x1F\x81\x01\x84\x13aYDW__\xFD[\x80QaYRaK\xFB\x82aK\xBCV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15aYsW__\xFD[` \x84\x01[\x83\x81\x10\x15aZ\x10W\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15aY\x95W__\xFD[\x85\x01`?\x81\x01\x89\x13aY\xA5W__\xFD[` \x81\x01QaY\xB6aK\xFB\x82aK\xBCV[\x80\x82\x82R` \x82\x01\x91P` \x80\x84`\x05\x1B\x86\x01\x01\x01\x92P\x8B\x83\x11\x15aY\xD9W__\xFD[`@\x84\x01\x93P[\x82\x84\x10\x15aY\xFBW\x83Q\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aY\xE0V[\x86RPP` \x93\x84\x01\x93\x91\x90\x91\x01\x90PaYxV[P\x96\x95PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x91\x90\x92\x16` \x82\x01R`\x01`\x01`@\x1B\x03\x90\x91\x16`@\x82\x01R``\x01\x90V[_`\x01\x82\x01aZXWaZXaU\xC7V[P`\x01\x01\x90V[_\x81aZmWaZmaU\xC7V[P_\x19\x01\x90V[`\x0F\x82\x81\x0B\x90\x82\x90\x0B\x03`\x01`\x01`\x7F\x1B\x03\x19\x81\x12`\x01`\x01`\x7F\x1B\x03\x82\x13\x17\x15a\x08\x10Wa\x08\x10aU\xC7V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x08\x10Wa\x08\x10aU\xC7V[\x80\x82\x01\x82\x81\x12_\x83\x12\x80\x15\x82\x16\x82\x15\x82\x16\x17\x15aZ\xFBWaZ\xFBaU\xC7V[PP\x92\x91PPV[cNH{q`\xE0\x1B_R`1`\x04R`$_\xFD[_\x82a[1WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x04\x90V\xFE\x14\x87\xAFT\x18\xC4~\xE5\xEAE\xEFJ\x939\x86h\x12\x08\x90wJ\x9E\x13H~a\xE9\xDC;\xAFv\xDD\xA2dipfsX\"\x12 d\xA2\xCBnA\xF7\xF8\xBD))|\x0E\xEF`\x0B\xAE\x9A\xFE\xB2\xECA\xD7\xD1\xF5TJ\xCA\x9F\xE1}F\x99dsolcC\0\x08\x1B\x003",
3739    );
3740    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3741    /**```solidity
3742struct OperatorSet { address avs; uint32 id; }
3743```*/
3744    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3745    #[derive(Clone)]
3746    pub struct OperatorSet {
3747        #[allow(missing_docs)]
3748        pub avs: alloy::sol_types::private::Address,
3749        #[allow(missing_docs)]
3750        pub id: u32,
3751    }
3752    #[allow(
3753        non_camel_case_types,
3754        non_snake_case,
3755        clippy::pub_underscore_fields,
3756        clippy::style
3757    )]
3758    const _: () = {
3759        use alloy::sol_types as alloy_sol_types;
3760        #[doc(hidden)]
3761        type UnderlyingSolTuple<'a> = (
3762            alloy::sol_types::sol_data::Address,
3763            alloy::sol_types::sol_data::Uint<32>,
3764        );
3765        #[doc(hidden)]
3766        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u32);
3767        #[cfg(test)]
3768        #[allow(dead_code, unreachable_patterns)]
3769        fn _type_assertion(
3770            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3771        ) {
3772            match _t {
3773                alloy_sol_types::private::AssertTypeEq::<
3774                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3775                >(_) => {}
3776            }
3777        }
3778        #[automatically_derived]
3779        #[doc(hidden)]
3780        impl ::core::convert::From<OperatorSet> for UnderlyingRustTuple<'_> {
3781            fn from(value: OperatorSet) -> Self {
3782                (value.avs, value.id)
3783            }
3784        }
3785        #[automatically_derived]
3786        #[doc(hidden)]
3787        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorSet {
3788            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3789                Self { avs: tuple.0, id: tuple.1 }
3790            }
3791        }
3792        #[automatically_derived]
3793        impl alloy_sol_types::SolValue for OperatorSet {
3794            type SolType = Self;
3795        }
3796        #[automatically_derived]
3797        impl alloy_sol_types::private::SolTypeValue<Self> for OperatorSet {
3798            #[inline]
3799            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
3800                (
3801                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3802                        &self.avs,
3803                    ),
3804                    <alloy::sol_types::sol_data::Uint<
3805                        32,
3806                    > as alloy_sol_types::SolType>::tokenize(&self.id),
3807                )
3808            }
3809            #[inline]
3810            fn stv_abi_encoded_size(&self) -> usize {
3811                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
3812                    return size;
3813                }
3814                let tuple = <UnderlyingRustTuple<
3815                    '_,
3816                > as ::core::convert::From<Self>>::from(self.clone());
3817                <UnderlyingSolTuple<
3818                    '_,
3819                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
3820            }
3821            #[inline]
3822            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
3823                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
3824            }
3825            #[inline]
3826            fn stv_abi_encode_packed_to(
3827                &self,
3828                out: &mut alloy_sol_types::private::Vec<u8>,
3829            ) {
3830                let tuple = <UnderlyingRustTuple<
3831                    '_,
3832                > as ::core::convert::From<Self>>::from(self.clone());
3833                <UnderlyingSolTuple<
3834                    '_,
3835                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
3836            }
3837            #[inline]
3838            fn stv_abi_packed_encoded_size(&self) -> usize {
3839                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
3840                    return size;
3841                }
3842                let tuple = <UnderlyingRustTuple<
3843                    '_,
3844                > as ::core::convert::From<Self>>::from(self.clone());
3845                <UnderlyingSolTuple<
3846                    '_,
3847                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
3848            }
3849        }
3850        #[automatically_derived]
3851        impl alloy_sol_types::SolType for OperatorSet {
3852            type RustType = Self;
3853            type Token<'a> = <UnderlyingSolTuple<
3854                'a,
3855            > as alloy_sol_types::SolType>::Token<'a>;
3856            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
3857            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
3858                '_,
3859            > as alloy_sol_types::SolType>::ENCODED_SIZE;
3860            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
3861                '_,
3862            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
3863            #[inline]
3864            fn valid_token(token: &Self::Token<'_>) -> bool {
3865                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
3866            }
3867            #[inline]
3868            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
3869                let tuple = <UnderlyingSolTuple<
3870                    '_,
3871                > as alloy_sol_types::SolType>::detokenize(token);
3872                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
3873            }
3874        }
3875        #[automatically_derived]
3876        impl alloy_sol_types::SolStruct for OperatorSet {
3877            const NAME: &'static str = "OperatorSet";
3878            #[inline]
3879            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
3880                alloy_sol_types::private::Cow::Borrowed(
3881                    "OperatorSet(address avs,uint32 id)",
3882                )
3883            }
3884            #[inline]
3885            fn eip712_components() -> alloy_sol_types::private::Vec<
3886                alloy_sol_types::private::Cow<'static, str>,
3887            > {
3888                alloy_sol_types::private::Vec::new()
3889            }
3890            #[inline]
3891            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
3892                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
3893            }
3894            #[inline]
3895            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
3896                [
3897                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
3898                            &self.avs,
3899                        )
3900                        .0,
3901                    <alloy::sol_types::sol_data::Uint<
3902                        32,
3903                    > as alloy_sol_types::SolType>::eip712_data_word(&self.id)
3904                        .0,
3905                ]
3906                    .concat()
3907            }
3908        }
3909        #[automatically_derived]
3910        impl alloy_sol_types::EventTopic for OperatorSet {
3911            #[inline]
3912            fn topic_preimage_length(rust: &Self::RustType) -> usize {
3913                0usize
3914                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
3915                        &rust.avs,
3916                    )
3917                    + <alloy::sol_types::sol_data::Uint<
3918                        32,
3919                    > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.id)
3920            }
3921            #[inline]
3922            fn encode_topic_preimage(
3923                rust: &Self::RustType,
3924                out: &mut alloy_sol_types::private::Vec<u8>,
3925            ) {
3926                out.reserve(
3927                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
3928                );
3929                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
3930                    &rust.avs,
3931                    out,
3932                );
3933                <alloy::sol_types::sol_data::Uint<
3934                    32,
3935                > as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.id, out);
3936            }
3937            #[inline]
3938            fn encode_topic(
3939                rust: &Self::RustType,
3940            ) -> alloy_sol_types::abi::token::WordToken {
3941                let mut out = alloy_sol_types::private::Vec::new();
3942                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
3943                    rust,
3944                    &mut out,
3945                );
3946                alloy_sol_types::abi::token::WordToken(
3947                    alloy_sol_types::private::keccak256(out),
3948                )
3949            }
3950        }
3951    };
3952    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3953    /**Custom error with signature `AlreadyMemberOfSet()` and selector `0xd8d8dc4e`.
3954```solidity
3955error AlreadyMemberOfSet();
3956```*/
3957    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3958    #[derive(Clone)]
3959    pub struct AlreadyMemberOfSet {}
3960    #[allow(
3961        non_camel_case_types,
3962        non_snake_case,
3963        clippy::pub_underscore_fields,
3964        clippy::style
3965    )]
3966    const _: () = {
3967        use alloy::sol_types as alloy_sol_types;
3968        #[doc(hidden)]
3969        type UnderlyingSolTuple<'a> = ();
3970        #[doc(hidden)]
3971        type UnderlyingRustTuple<'a> = ();
3972        #[cfg(test)]
3973        #[allow(dead_code, unreachable_patterns)]
3974        fn _type_assertion(
3975            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3976        ) {
3977            match _t {
3978                alloy_sol_types::private::AssertTypeEq::<
3979                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3980                >(_) => {}
3981            }
3982        }
3983        #[automatically_derived]
3984        #[doc(hidden)]
3985        impl ::core::convert::From<AlreadyMemberOfSet> for UnderlyingRustTuple<'_> {
3986            fn from(value: AlreadyMemberOfSet) -> Self {
3987                ()
3988            }
3989        }
3990        #[automatically_derived]
3991        #[doc(hidden)]
3992        impl ::core::convert::From<UnderlyingRustTuple<'_>> for AlreadyMemberOfSet {
3993            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3994                Self {}
3995            }
3996        }
3997        #[automatically_derived]
3998        impl alloy_sol_types::SolError for AlreadyMemberOfSet {
3999            type Parameters<'a> = UnderlyingSolTuple<'a>;
4000            type Token<'a> = <Self::Parameters<
4001                'a,
4002            > as alloy_sol_types::SolType>::Token<'a>;
4003            const SIGNATURE: &'static str = "AlreadyMemberOfSet()";
4004            const SELECTOR: [u8; 4] = [216u8, 216u8, 220u8, 78u8];
4005            #[inline]
4006            fn new<'a>(
4007                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4008            ) -> Self {
4009                tuple.into()
4010            }
4011            #[inline]
4012            fn tokenize(&self) -> Self::Token<'_> {
4013                ()
4014            }
4015        }
4016    };
4017    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4018    /**Custom error with signature `CurrentlyPaused()` and selector `0x840a48d5`.
4019```solidity
4020error CurrentlyPaused();
4021```*/
4022    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4023    #[derive(Clone)]
4024    pub struct CurrentlyPaused {}
4025    #[allow(
4026        non_camel_case_types,
4027        non_snake_case,
4028        clippy::pub_underscore_fields,
4029        clippy::style
4030    )]
4031    const _: () = {
4032        use alloy::sol_types as alloy_sol_types;
4033        #[doc(hidden)]
4034        type UnderlyingSolTuple<'a> = ();
4035        #[doc(hidden)]
4036        type UnderlyingRustTuple<'a> = ();
4037        #[cfg(test)]
4038        #[allow(dead_code, unreachable_patterns)]
4039        fn _type_assertion(
4040            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4041        ) {
4042            match _t {
4043                alloy_sol_types::private::AssertTypeEq::<
4044                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4045                >(_) => {}
4046            }
4047        }
4048        #[automatically_derived]
4049        #[doc(hidden)]
4050        impl ::core::convert::From<CurrentlyPaused> for UnderlyingRustTuple<'_> {
4051            fn from(value: CurrentlyPaused) -> Self {
4052                ()
4053            }
4054        }
4055        #[automatically_derived]
4056        #[doc(hidden)]
4057        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CurrentlyPaused {
4058            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4059                Self {}
4060            }
4061        }
4062        #[automatically_derived]
4063        impl alloy_sol_types::SolError for CurrentlyPaused {
4064            type Parameters<'a> = UnderlyingSolTuple<'a>;
4065            type Token<'a> = <Self::Parameters<
4066                'a,
4067            > as alloy_sol_types::SolType>::Token<'a>;
4068            const SIGNATURE: &'static str = "CurrentlyPaused()";
4069            const SELECTOR: [u8; 4] = [132u8, 10u8, 72u8, 213u8];
4070            #[inline]
4071            fn new<'a>(
4072                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4073            ) -> Self {
4074                tuple.into()
4075            }
4076            #[inline]
4077            fn tokenize(&self) -> Self::Token<'_> {
4078                ()
4079            }
4080        }
4081    };
4082    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4083    /**Custom error with signature `Empty()` and selector `0x3db2a12a`.
4084```solidity
4085error Empty();
4086```*/
4087    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4088    #[derive(Clone)]
4089    pub struct Empty {}
4090    #[allow(
4091        non_camel_case_types,
4092        non_snake_case,
4093        clippy::pub_underscore_fields,
4094        clippy::style
4095    )]
4096    const _: () = {
4097        use alloy::sol_types as alloy_sol_types;
4098        #[doc(hidden)]
4099        type UnderlyingSolTuple<'a> = ();
4100        #[doc(hidden)]
4101        type UnderlyingRustTuple<'a> = ();
4102        #[cfg(test)]
4103        #[allow(dead_code, unreachable_patterns)]
4104        fn _type_assertion(
4105            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4106        ) {
4107            match _t {
4108                alloy_sol_types::private::AssertTypeEq::<
4109                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4110                >(_) => {}
4111            }
4112        }
4113        #[automatically_derived]
4114        #[doc(hidden)]
4115        impl ::core::convert::From<Empty> for UnderlyingRustTuple<'_> {
4116            fn from(value: Empty) -> Self {
4117                ()
4118            }
4119        }
4120        #[automatically_derived]
4121        #[doc(hidden)]
4122        impl ::core::convert::From<UnderlyingRustTuple<'_>> for Empty {
4123            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4124                Self {}
4125            }
4126        }
4127        #[automatically_derived]
4128        impl alloy_sol_types::SolError for Empty {
4129            type Parameters<'a> = UnderlyingSolTuple<'a>;
4130            type Token<'a> = <Self::Parameters<
4131                'a,
4132            > as alloy_sol_types::SolType>::Token<'a>;
4133            const SIGNATURE: &'static str = "Empty()";
4134            const SELECTOR: [u8; 4] = [61u8, 178u8, 161u8, 42u8];
4135            #[inline]
4136            fn new<'a>(
4137                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4138            ) -> Self {
4139                tuple.into()
4140            }
4141            #[inline]
4142            fn tokenize(&self) -> Self::Token<'_> {
4143                ()
4144            }
4145        }
4146    };
4147    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4148    /**Custom error with signature `InputAddressZero()` and selector `0x73632176`.
4149```solidity
4150error InputAddressZero();
4151```*/
4152    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4153    #[derive(Clone)]
4154    pub struct InputAddressZero {}
4155    #[allow(
4156        non_camel_case_types,
4157        non_snake_case,
4158        clippy::pub_underscore_fields,
4159        clippy::style
4160    )]
4161    const _: () = {
4162        use alloy::sol_types as alloy_sol_types;
4163        #[doc(hidden)]
4164        type UnderlyingSolTuple<'a> = ();
4165        #[doc(hidden)]
4166        type UnderlyingRustTuple<'a> = ();
4167        #[cfg(test)]
4168        #[allow(dead_code, unreachable_patterns)]
4169        fn _type_assertion(
4170            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4171        ) {
4172            match _t {
4173                alloy_sol_types::private::AssertTypeEq::<
4174                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4175                >(_) => {}
4176            }
4177        }
4178        #[automatically_derived]
4179        #[doc(hidden)]
4180        impl ::core::convert::From<InputAddressZero> for UnderlyingRustTuple<'_> {
4181            fn from(value: InputAddressZero) -> Self {
4182                ()
4183            }
4184        }
4185        #[automatically_derived]
4186        #[doc(hidden)]
4187        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InputAddressZero {
4188            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4189                Self {}
4190            }
4191        }
4192        #[automatically_derived]
4193        impl alloy_sol_types::SolError for InputAddressZero {
4194            type Parameters<'a> = UnderlyingSolTuple<'a>;
4195            type Token<'a> = <Self::Parameters<
4196                'a,
4197            > as alloy_sol_types::SolType>::Token<'a>;
4198            const SIGNATURE: &'static str = "InputAddressZero()";
4199            const SELECTOR: [u8; 4] = [115u8, 99u8, 33u8, 118u8];
4200            #[inline]
4201            fn new<'a>(
4202                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4203            ) -> Self {
4204                tuple.into()
4205            }
4206            #[inline]
4207            fn tokenize(&self) -> Self::Token<'_> {
4208                ()
4209            }
4210        }
4211    };
4212    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4213    /**Custom error with signature `InputArrayLengthMismatch()` and selector `0x43714afd`.
4214```solidity
4215error InputArrayLengthMismatch();
4216```*/
4217    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4218    #[derive(Clone)]
4219    pub struct InputArrayLengthMismatch {}
4220    #[allow(
4221        non_camel_case_types,
4222        non_snake_case,
4223        clippy::pub_underscore_fields,
4224        clippy::style
4225    )]
4226    const _: () = {
4227        use alloy::sol_types as alloy_sol_types;
4228        #[doc(hidden)]
4229        type UnderlyingSolTuple<'a> = ();
4230        #[doc(hidden)]
4231        type UnderlyingRustTuple<'a> = ();
4232        #[cfg(test)]
4233        #[allow(dead_code, unreachable_patterns)]
4234        fn _type_assertion(
4235            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4236        ) {
4237            match _t {
4238                alloy_sol_types::private::AssertTypeEq::<
4239                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4240                >(_) => {}
4241            }
4242        }
4243        #[automatically_derived]
4244        #[doc(hidden)]
4245        impl ::core::convert::From<InputArrayLengthMismatch>
4246        for UnderlyingRustTuple<'_> {
4247            fn from(value: InputArrayLengthMismatch) -> Self {
4248                ()
4249            }
4250        }
4251        #[automatically_derived]
4252        #[doc(hidden)]
4253        impl ::core::convert::From<UnderlyingRustTuple<'_>>
4254        for InputArrayLengthMismatch {
4255            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4256                Self {}
4257            }
4258        }
4259        #[automatically_derived]
4260        impl alloy_sol_types::SolError for InputArrayLengthMismatch {
4261            type Parameters<'a> = UnderlyingSolTuple<'a>;
4262            type Token<'a> = <Self::Parameters<
4263                'a,
4264            > as alloy_sol_types::SolType>::Token<'a>;
4265            const SIGNATURE: &'static str = "InputArrayLengthMismatch()";
4266            const SELECTOR: [u8; 4] = [67u8, 113u8, 74u8, 253u8];
4267            #[inline]
4268            fn new<'a>(
4269                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4270            ) -> Self {
4271                tuple.into()
4272            }
4273            #[inline]
4274            fn tokenize(&self) -> Self::Token<'_> {
4275                ()
4276            }
4277        }
4278    };
4279    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4280    /**Custom error with signature `InsufficientMagnitude()` and selector `0x6c9be0bf`.
4281```solidity
4282error InsufficientMagnitude();
4283```*/
4284    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4285    #[derive(Clone)]
4286    pub struct InsufficientMagnitude {}
4287    #[allow(
4288        non_camel_case_types,
4289        non_snake_case,
4290        clippy::pub_underscore_fields,
4291        clippy::style
4292    )]
4293    const _: () = {
4294        use alloy::sol_types as alloy_sol_types;
4295        #[doc(hidden)]
4296        type UnderlyingSolTuple<'a> = ();
4297        #[doc(hidden)]
4298        type UnderlyingRustTuple<'a> = ();
4299        #[cfg(test)]
4300        #[allow(dead_code, unreachable_patterns)]
4301        fn _type_assertion(
4302            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4303        ) {
4304            match _t {
4305                alloy_sol_types::private::AssertTypeEq::<
4306                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4307                >(_) => {}
4308            }
4309        }
4310        #[automatically_derived]
4311        #[doc(hidden)]
4312        impl ::core::convert::From<InsufficientMagnitude> for UnderlyingRustTuple<'_> {
4313            fn from(value: InsufficientMagnitude) -> Self {
4314                ()
4315            }
4316        }
4317        #[automatically_derived]
4318        #[doc(hidden)]
4319        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InsufficientMagnitude {
4320            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4321                Self {}
4322            }
4323        }
4324        #[automatically_derived]
4325        impl alloy_sol_types::SolError for InsufficientMagnitude {
4326            type Parameters<'a> = UnderlyingSolTuple<'a>;
4327            type Token<'a> = <Self::Parameters<
4328                'a,
4329            > as alloy_sol_types::SolType>::Token<'a>;
4330            const SIGNATURE: &'static str = "InsufficientMagnitude()";
4331            const SELECTOR: [u8; 4] = [108u8, 155u8, 224u8, 191u8];
4332            #[inline]
4333            fn new<'a>(
4334                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4335            ) -> Self {
4336                tuple.into()
4337            }
4338            #[inline]
4339            fn tokenize(&self) -> Self::Token<'_> {
4340                ()
4341            }
4342        }
4343    };
4344    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4345    /**Custom error with signature `InvalidAVSRegistrar()` and selector `0xe8589e08`.
4346```solidity
4347error InvalidAVSRegistrar();
4348```*/
4349    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4350    #[derive(Clone)]
4351    pub struct InvalidAVSRegistrar {}
4352    #[allow(
4353        non_camel_case_types,
4354        non_snake_case,
4355        clippy::pub_underscore_fields,
4356        clippy::style
4357    )]
4358    const _: () = {
4359        use alloy::sol_types as alloy_sol_types;
4360        #[doc(hidden)]
4361        type UnderlyingSolTuple<'a> = ();
4362        #[doc(hidden)]
4363        type UnderlyingRustTuple<'a> = ();
4364        #[cfg(test)]
4365        #[allow(dead_code, unreachable_patterns)]
4366        fn _type_assertion(
4367            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4368        ) {
4369            match _t {
4370                alloy_sol_types::private::AssertTypeEq::<
4371                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4372                >(_) => {}
4373            }
4374        }
4375        #[automatically_derived]
4376        #[doc(hidden)]
4377        impl ::core::convert::From<InvalidAVSRegistrar> for UnderlyingRustTuple<'_> {
4378            fn from(value: InvalidAVSRegistrar) -> Self {
4379                ()
4380            }
4381        }
4382        #[automatically_derived]
4383        #[doc(hidden)]
4384        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidAVSRegistrar {
4385            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4386                Self {}
4387            }
4388        }
4389        #[automatically_derived]
4390        impl alloy_sol_types::SolError for InvalidAVSRegistrar {
4391            type Parameters<'a> = UnderlyingSolTuple<'a>;
4392            type Token<'a> = <Self::Parameters<
4393                'a,
4394            > as alloy_sol_types::SolType>::Token<'a>;
4395            const SIGNATURE: &'static str = "InvalidAVSRegistrar()";
4396            const SELECTOR: [u8; 4] = [232u8, 88u8, 158u8, 8u8];
4397            #[inline]
4398            fn new<'a>(
4399                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4400            ) -> Self {
4401                tuple.into()
4402            }
4403            #[inline]
4404            fn tokenize(&self) -> Self::Token<'_> {
4405                ()
4406            }
4407        }
4408    };
4409    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4410    /**Custom error with signature `InvalidCaller()` and selector `0x48f5c3ed`.
4411```solidity
4412error InvalidCaller();
4413```*/
4414    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4415    #[derive(Clone)]
4416    pub struct InvalidCaller {}
4417    #[allow(
4418        non_camel_case_types,
4419        non_snake_case,
4420        clippy::pub_underscore_fields,
4421        clippy::style
4422    )]
4423    const _: () = {
4424        use alloy::sol_types as alloy_sol_types;
4425        #[doc(hidden)]
4426        type UnderlyingSolTuple<'a> = ();
4427        #[doc(hidden)]
4428        type UnderlyingRustTuple<'a> = ();
4429        #[cfg(test)]
4430        #[allow(dead_code, unreachable_patterns)]
4431        fn _type_assertion(
4432            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4433        ) {
4434            match _t {
4435                alloy_sol_types::private::AssertTypeEq::<
4436                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4437                >(_) => {}
4438            }
4439        }
4440        #[automatically_derived]
4441        #[doc(hidden)]
4442        impl ::core::convert::From<InvalidCaller> for UnderlyingRustTuple<'_> {
4443            fn from(value: InvalidCaller) -> Self {
4444                ()
4445            }
4446        }
4447        #[automatically_derived]
4448        #[doc(hidden)]
4449        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidCaller {
4450            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4451                Self {}
4452            }
4453        }
4454        #[automatically_derived]
4455        impl alloy_sol_types::SolError for InvalidCaller {
4456            type Parameters<'a> = UnderlyingSolTuple<'a>;
4457            type Token<'a> = <Self::Parameters<
4458                'a,
4459            > as alloy_sol_types::SolType>::Token<'a>;
4460            const SIGNATURE: &'static str = "InvalidCaller()";
4461            const SELECTOR: [u8; 4] = [72u8, 245u8, 195u8, 237u8];
4462            #[inline]
4463            fn new<'a>(
4464                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4465            ) -> Self {
4466                tuple.into()
4467            }
4468            #[inline]
4469            fn tokenize(&self) -> Self::Token<'_> {
4470                ()
4471            }
4472        }
4473    };
4474    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4475    /**Custom error with signature `InvalidNewPausedStatus()` and selector `0xc61dca5d`.
4476```solidity
4477error InvalidNewPausedStatus();
4478```*/
4479    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4480    #[derive(Clone)]
4481    pub struct InvalidNewPausedStatus {}
4482    #[allow(
4483        non_camel_case_types,
4484        non_snake_case,
4485        clippy::pub_underscore_fields,
4486        clippy::style
4487    )]
4488    const _: () = {
4489        use alloy::sol_types as alloy_sol_types;
4490        #[doc(hidden)]
4491        type UnderlyingSolTuple<'a> = ();
4492        #[doc(hidden)]
4493        type UnderlyingRustTuple<'a> = ();
4494        #[cfg(test)]
4495        #[allow(dead_code, unreachable_patterns)]
4496        fn _type_assertion(
4497            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4498        ) {
4499            match _t {
4500                alloy_sol_types::private::AssertTypeEq::<
4501                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4502                >(_) => {}
4503            }
4504        }
4505        #[automatically_derived]
4506        #[doc(hidden)]
4507        impl ::core::convert::From<InvalidNewPausedStatus> for UnderlyingRustTuple<'_> {
4508            fn from(value: InvalidNewPausedStatus) -> Self {
4509                ()
4510            }
4511        }
4512        #[automatically_derived]
4513        #[doc(hidden)]
4514        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidNewPausedStatus {
4515            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4516                Self {}
4517            }
4518        }
4519        #[automatically_derived]
4520        impl alloy_sol_types::SolError for InvalidNewPausedStatus {
4521            type Parameters<'a> = UnderlyingSolTuple<'a>;
4522            type Token<'a> = <Self::Parameters<
4523                'a,
4524            > as alloy_sol_types::SolType>::Token<'a>;
4525            const SIGNATURE: &'static str = "InvalidNewPausedStatus()";
4526            const SELECTOR: [u8; 4] = [198u8, 29u8, 202u8, 93u8];
4527            #[inline]
4528            fn new<'a>(
4529                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4530            ) -> Self {
4531                tuple.into()
4532            }
4533            #[inline]
4534            fn tokenize(&self) -> Self::Token<'_> {
4535                ()
4536            }
4537        }
4538    };
4539    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4540    /**Custom error with signature `InvalidOperator()` and selector `0xccea9e6f`.
4541```solidity
4542error InvalidOperator();
4543```*/
4544    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4545    #[derive(Clone)]
4546    pub struct InvalidOperator {}
4547    #[allow(
4548        non_camel_case_types,
4549        non_snake_case,
4550        clippy::pub_underscore_fields,
4551        clippy::style
4552    )]
4553    const _: () = {
4554        use alloy::sol_types as alloy_sol_types;
4555        #[doc(hidden)]
4556        type UnderlyingSolTuple<'a> = ();
4557        #[doc(hidden)]
4558        type UnderlyingRustTuple<'a> = ();
4559        #[cfg(test)]
4560        #[allow(dead_code, unreachable_patterns)]
4561        fn _type_assertion(
4562            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4563        ) {
4564            match _t {
4565                alloy_sol_types::private::AssertTypeEq::<
4566                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4567                >(_) => {}
4568            }
4569        }
4570        #[automatically_derived]
4571        #[doc(hidden)]
4572        impl ::core::convert::From<InvalidOperator> for UnderlyingRustTuple<'_> {
4573            fn from(value: InvalidOperator) -> Self {
4574                ()
4575            }
4576        }
4577        #[automatically_derived]
4578        #[doc(hidden)]
4579        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidOperator {
4580            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4581                Self {}
4582            }
4583        }
4584        #[automatically_derived]
4585        impl alloy_sol_types::SolError for InvalidOperator {
4586            type Parameters<'a> = UnderlyingSolTuple<'a>;
4587            type Token<'a> = <Self::Parameters<
4588                'a,
4589            > as alloy_sol_types::SolType>::Token<'a>;
4590            const SIGNATURE: &'static str = "InvalidOperator()";
4591            const SELECTOR: [u8; 4] = [204u8, 234u8, 158u8, 111u8];
4592            #[inline]
4593            fn new<'a>(
4594                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4595            ) -> Self {
4596                tuple.into()
4597            }
4598            #[inline]
4599            fn tokenize(&self) -> Self::Token<'_> {
4600                ()
4601            }
4602        }
4603    };
4604    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4605    /**Custom error with signature `InvalidOperatorSet()` and selector `0x7ec5c154`.
4606```solidity
4607error InvalidOperatorSet();
4608```*/
4609    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4610    #[derive(Clone)]
4611    pub struct InvalidOperatorSet {}
4612    #[allow(
4613        non_camel_case_types,
4614        non_snake_case,
4615        clippy::pub_underscore_fields,
4616        clippy::style
4617    )]
4618    const _: () = {
4619        use alloy::sol_types as alloy_sol_types;
4620        #[doc(hidden)]
4621        type UnderlyingSolTuple<'a> = ();
4622        #[doc(hidden)]
4623        type UnderlyingRustTuple<'a> = ();
4624        #[cfg(test)]
4625        #[allow(dead_code, unreachable_patterns)]
4626        fn _type_assertion(
4627            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4628        ) {
4629            match _t {
4630                alloy_sol_types::private::AssertTypeEq::<
4631                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4632                >(_) => {}
4633            }
4634        }
4635        #[automatically_derived]
4636        #[doc(hidden)]
4637        impl ::core::convert::From<InvalidOperatorSet> for UnderlyingRustTuple<'_> {
4638            fn from(value: InvalidOperatorSet) -> Self {
4639                ()
4640            }
4641        }
4642        #[automatically_derived]
4643        #[doc(hidden)]
4644        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidOperatorSet {
4645            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4646                Self {}
4647            }
4648        }
4649        #[automatically_derived]
4650        impl alloy_sol_types::SolError for InvalidOperatorSet {
4651            type Parameters<'a> = UnderlyingSolTuple<'a>;
4652            type Token<'a> = <Self::Parameters<
4653                'a,
4654            > as alloy_sol_types::SolType>::Token<'a>;
4655            const SIGNATURE: &'static str = "InvalidOperatorSet()";
4656            const SELECTOR: [u8; 4] = [126u8, 197u8, 193u8, 84u8];
4657            #[inline]
4658            fn new<'a>(
4659                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4660            ) -> Self {
4661                tuple.into()
4662            }
4663            #[inline]
4664            fn tokenize(&self) -> Self::Token<'_> {
4665                ()
4666            }
4667        }
4668    };
4669    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4670    /**Custom error with signature `InvalidPermissions()` and selector `0x932d94f7`.
4671```solidity
4672error InvalidPermissions();
4673```*/
4674    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4675    #[derive(Clone)]
4676    pub struct InvalidPermissions {}
4677    #[allow(
4678        non_camel_case_types,
4679        non_snake_case,
4680        clippy::pub_underscore_fields,
4681        clippy::style
4682    )]
4683    const _: () = {
4684        use alloy::sol_types as alloy_sol_types;
4685        #[doc(hidden)]
4686        type UnderlyingSolTuple<'a> = ();
4687        #[doc(hidden)]
4688        type UnderlyingRustTuple<'a> = ();
4689        #[cfg(test)]
4690        #[allow(dead_code, unreachable_patterns)]
4691        fn _type_assertion(
4692            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4693        ) {
4694            match _t {
4695                alloy_sol_types::private::AssertTypeEq::<
4696                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4697                >(_) => {}
4698            }
4699        }
4700        #[automatically_derived]
4701        #[doc(hidden)]
4702        impl ::core::convert::From<InvalidPermissions> for UnderlyingRustTuple<'_> {
4703            fn from(value: InvalidPermissions) -> Self {
4704                ()
4705            }
4706        }
4707        #[automatically_derived]
4708        #[doc(hidden)]
4709        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPermissions {
4710            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4711                Self {}
4712            }
4713        }
4714        #[automatically_derived]
4715        impl alloy_sol_types::SolError for InvalidPermissions {
4716            type Parameters<'a> = UnderlyingSolTuple<'a>;
4717            type Token<'a> = <Self::Parameters<
4718                'a,
4719            > as alloy_sol_types::SolType>::Token<'a>;
4720            const SIGNATURE: &'static str = "InvalidPermissions()";
4721            const SELECTOR: [u8; 4] = [147u8, 45u8, 148u8, 247u8];
4722            #[inline]
4723            fn new<'a>(
4724                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4725            ) -> Self {
4726                tuple.into()
4727            }
4728            #[inline]
4729            fn tokenize(&self) -> Self::Token<'_> {
4730                ()
4731            }
4732        }
4733    };
4734    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4735    /**Custom error with signature `InvalidShortString()` and selector `0xb3512b0c`.
4736```solidity
4737error InvalidShortString();
4738```*/
4739    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4740    #[derive(Clone)]
4741    pub struct InvalidShortString {}
4742    #[allow(
4743        non_camel_case_types,
4744        non_snake_case,
4745        clippy::pub_underscore_fields,
4746        clippy::style
4747    )]
4748    const _: () = {
4749        use alloy::sol_types as alloy_sol_types;
4750        #[doc(hidden)]
4751        type UnderlyingSolTuple<'a> = ();
4752        #[doc(hidden)]
4753        type UnderlyingRustTuple<'a> = ();
4754        #[cfg(test)]
4755        #[allow(dead_code, unreachable_patterns)]
4756        fn _type_assertion(
4757            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4758        ) {
4759            match _t {
4760                alloy_sol_types::private::AssertTypeEq::<
4761                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4762                >(_) => {}
4763            }
4764        }
4765        #[automatically_derived]
4766        #[doc(hidden)]
4767        impl ::core::convert::From<InvalidShortString> for UnderlyingRustTuple<'_> {
4768            fn from(value: InvalidShortString) -> Self {
4769                ()
4770            }
4771        }
4772        #[automatically_derived]
4773        #[doc(hidden)]
4774        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidShortString {
4775            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4776                Self {}
4777            }
4778        }
4779        #[automatically_derived]
4780        impl alloy_sol_types::SolError for InvalidShortString {
4781            type Parameters<'a> = UnderlyingSolTuple<'a>;
4782            type Token<'a> = <Self::Parameters<
4783                'a,
4784            > as alloy_sol_types::SolType>::Token<'a>;
4785            const SIGNATURE: &'static str = "InvalidShortString()";
4786            const SELECTOR: [u8; 4] = [179u8, 81u8, 43u8, 12u8];
4787            #[inline]
4788            fn new<'a>(
4789                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4790            ) -> Self {
4791                tuple.into()
4792            }
4793            #[inline]
4794            fn tokenize(&self) -> Self::Token<'_> {
4795                ()
4796            }
4797        }
4798    };
4799    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4800    /**Custom error with signature `InvalidSnapshotOrdering()` and selector `0x2a371c7e`.
4801```solidity
4802error InvalidSnapshotOrdering();
4803```*/
4804    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4805    #[derive(Clone)]
4806    pub struct InvalidSnapshotOrdering {}
4807    #[allow(
4808        non_camel_case_types,
4809        non_snake_case,
4810        clippy::pub_underscore_fields,
4811        clippy::style
4812    )]
4813    const _: () = {
4814        use alloy::sol_types as alloy_sol_types;
4815        #[doc(hidden)]
4816        type UnderlyingSolTuple<'a> = ();
4817        #[doc(hidden)]
4818        type UnderlyingRustTuple<'a> = ();
4819        #[cfg(test)]
4820        #[allow(dead_code, unreachable_patterns)]
4821        fn _type_assertion(
4822            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4823        ) {
4824            match _t {
4825                alloy_sol_types::private::AssertTypeEq::<
4826                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4827                >(_) => {}
4828            }
4829        }
4830        #[automatically_derived]
4831        #[doc(hidden)]
4832        impl ::core::convert::From<InvalidSnapshotOrdering> for UnderlyingRustTuple<'_> {
4833            fn from(value: InvalidSnapshotOrdering) -> Self {
4834                ()
4835            }
4836        }
4837        #[automatically_derived]
4838        #[doc(hidden)]
4839        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidSnapshotOrdering {
4840            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4841                Self {}
4842            }
4843        }
4844        #[automatically_derived]
4845        impl alloy_sol_types::SolError for InvalidSnapshotOrdering {
4846            type Parameters<'a> = UnderlyingSolTuple<'a>;
4847            type Token<'a> = <Self::Parameters<
4848                'a,
4849            > as alloy_sol_types::SolType>::Token<'a>;
4850            const SIGNATURE: &'static str = "InvalidSnapshotOrdering()";
4851            const SELECTOR: [u8; 4] = [42u8, 55u8, 28u8, 126u8];
4852            #[inline]
4853            fn new<'a>(
4854                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4855            ) -> Self {
4856                tuple.into()
4857            }
4858            #[inline]
4859            fn tokenize(&self) -> Self::Token<'_> {
4860                ()
4861            }
4862        }
4863    };
4864    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4865    /**Custom error with signature `InvalidWadToSlash()` and selector `0x13536031`.
4866```solidity
4867error InvalidWadToSlash();
4868```*/
4869    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4870    #[derive(Clone)]
4871    pub struct InvalidWadToSlash {}
4872    #[allow(
4873        non_camel_case_types,
4874        non_snake_case,
4875        clippy::pub_underscore_fields,
4876        clippy::style
4877    )]
4878    const _: () = {
4879        use alloy::sol_types as alloy_sol_types;
4880        #[doc(hidden)]
4881        type UnderlyingSolTuple<'a> = ();
4882        #[doc(hidden)]
4883        type UnderlyingRustTuple<'a> = ();
4884        #[cfg(test)]
4885        #[allow(dead_code, unreachable_patterns)]
4886        fn _type_assertion(
4887            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4888        ) {
4889            match _t {
4890                alloy_sol_types::private::AssertTypeEq::<
4891                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4892                >(_) => {}
4893            }
4894        }
4895        #[automatically_derived]
4896        #[doc(hidden)]
4897        impl ::core::convert::From<InvalidWadToSlash> for UnderlyingRustTuple<'_> {
4898            fn from(value: InvalidWadToSlash) -> Self {
4899                ()
4900            }
4901        }
4902        #[automatically_derived]
4903        #[doc(hidden)]
4904        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidWadToSlash {
4905            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4906                Self {}
4907            }
4908        }
4909        #[automatically_derived]
4910        impl alloy_sol_types::SolError for InvalidWadToSlash {
4911            type Parameters<'a> = UnderlyingSolTuple<'a>;
4912            type Token<'a> = <Self::Parameters<
4913                'a,
4914            > as alloy_sol_types::SolType>::Token<'a>;
4915            const SIGNATURE: &'static str = "InvalidWadToSlash()";
4916            const SELECTOR: [u8; 4] = [19u8, 83u8, 96u8, 49u8];
4917            #[inline]
4918            fn new<'a>(
4919                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4920            ) -> Self {
4921                tuple.into()
4922            }
4923            #[inline]
4924            fn tokenize(&self) -> Self::Token<'_> {
4925                ()
4926            }
4927        }
4928    };
4929    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4930    /**Custom error with signature `ModificationAlreadyPending()` and selector `0xd8fcbe30`.
4931```solidity
4932error ModificationAlreadyPending();
4933```*/
4934    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4935    #[derive(Clone)]
4936    pub struct ModificationAlreadyPending {}
4937    #[allow(
4938        non_camel_case_types,
4939        non_snake_case,
4940        clippy::pub_underscore_fields,
4941        clippy::style
4942    )]
4943    const _: () = {
4944        use alloy::sol_types as alloy_sol_types;
4945        #[doc(hidden)]
4946        type UnderlyingSolTuple<'a> = ();
4947        #[doc(hidden)]
4948        type UnderlyingRustTuple<'a> = ();
4949        #[cfg(test)]
4950        #[allow(dead_code, unreachable_patterns)]
4951        fn _type_assertion(
4952            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4953        ) {
4954            match _t {
4955                alloy_sol_types::private::AssertTypeEq::<
4956                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4957                >(_) => {}
4958            }
4959        }
4960        #[automatically_derived]
4961        #[doc(hidden)]
4962        impl ::core::convert::From<ModificationAlreadyPending>
4963        for UnderlyingRustTuple<'_> {
4964            fn from(value: ModificationAlreadyPending) -> Self {
4965                ()
4966            }
4967        }
4968        #[automatically_derived]
4969        #[doc(hidden)]
4970        impl ::core::convert::From<UnderlyingRustTuple<'_>>
4971        for ModificationAlreadyPending {
4972            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4973                Self {}
4974            }
4975        }
4976        #[automatically_derived]
4977        impl alloy_sol_types::SolError for ModificationAlreadyPending {
4978            type Parameters<'a> = UnderlyingSolTuple<'a>;
4979            type Token<'a> = <Self::Parameters<
4980                'a,
4981            > as alloy_sol_types::SolType>::Token<'a>;
4982            const SIGNATURE: &'static str = "ModificationAlreadyPending()";
4983            const SELECTOR: [u8; 4] = [216u8, 252u8, 190u8, 48u8];
4984            #[inline]
4985            fn new<'a>(
4986                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4987            ) -> Self {
4988                tuple.into()
4989            }
4990            #[inline]
4991            fn tokenize(&self) -> Self::Token<'_> {
4992                ()
4993            }
4994        }
4995    };
4996    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4997    /**Custom error with signature `NonexistentAVSMetadata()` and selector `0x48f7dbb9`.
4998```solidity
4999error NonexistentAVSMetadata();
5000```*/
5001    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5002    #[derive(Clone)]
5003    pub struct NonexistentAVSMetadata {}
5004    #[allow(
5005        non_camel_case_types,
5006        non_snake_case,
5007        clippy::pub_underscore_fields,
5008        clippy::style
5009    )]
5010    const _: () = {
5011        use alloy::sol_types as alloy_sol_types;
5012        #[doc(hidden)]
5013        type UnderlyingSolTuple<'a> = ();
5014        #[doc(hidden)]
5015        type UnderlyingRustTuple<'a> = ();
5016        #[cfg(test)]
5017        #[allow(dead_code, unreachable_patterns)]
5018        fn _type_assertion(
5019            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5020        ) {
5021            match _t {
5022                alloy_sol_types::private::AssertTypeEq::<
5023                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5024                >(_) => {}
5025            }
5026        }
5027        #[automatically_derived]
5028        #[doc(hidden)]
5029        impl ::core::convert::From<NonexistentAVSMetadata> for UnderlyingRustTuple<'_> {
5030            fn from(value: NonexistentAVSMetadata) -> Self {
5031                ()
5032            }
5033        }
5034        #[automatically_derived]
5035        #[doc(hidden)]
5036        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NonexistentAVSMetadata {
5037            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5038                Self {}
5039            }
5040        }
5041        #[automatically_derived]
5042        impl alloy_sol_types::SolError for NonexistentAVSMetadata {
5043            type Parameters<'a> = UnderlyingSolTuple<'a>;
5044            type Token<'a> = <Self::Parameters<
5045                'a,
5046            > as alloy_sol_types::SolType>::Token<'a>;
5047            const SIGNATURE: &'static str = "NonexistentAVSMetadata()";
5048            const SELECTOR: [u8; 4] = [72u8, 247u8, 219u8, 185u8];
5049            #[inline]
5050            fn new<'a>(
5051                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5052            ) -> Self {
5053                tuple.into()
5054            }
5055            #[inline]
5056            fn tokenize(&self) -> Self::Token<'_> {
5057                ()
5058            }
5059        }
5060    };
5061    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5062    /**Custom error with signature `NotMemberOfSet()` and selector `0x25131d4f`.
5063```solidity
5064error NotMemberOfSet();
5065```*/
5066    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5067    #[derive(Clone)]
5068    pub struct NotMemberOfSet {}
5069    #[allow(
5070        non_camel_case_types,
5071        non_snake_case,
5072        clippy::pub_underscore_fields,
5073        clippy::style
5074    )]
5075    const _: () = {
5076        use alloy::sol_types as alloy_sol_types;
5077        #[doc(hidden)]
5078        type UnderlyingSolTuple<'a> = ();
5079        #[doc(hidden)]
5080        type UnderlyingRustTuple<'a> = ();
5081        #[cfg(test)]
5082        #[allow(dead_code, unreachable_patterns)]
5083        fn _type_assertion(
5084            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5085        ) {
5086            match _t {
5087                alloy_sol_types::private::AssertTypeEq::<
5088                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5089                >(_) => {}
5090            }
5091        }
5092        #[automatically_derived]
5093        #[doc(hidden)]
5094        impl ::core::convert::From<NotMemberOfSet> for UnderlyingRustTuple<'_> {
5095            fn from(value: NotMemberOfSet) -> Self {
5096                ()
5097            }
5098        }
5099        #[automatically_derived]
5100        #[doc(hidden)]
5101        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NotMemberOfSet {
5102            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5103                Self {}
5104            }
5105        }
5106        #[automatically_derived]
5107        impl alloy_sol_types::SolError for NotMemberOfSet {
5108            type Parameters<'a> = UnderlyingSolTuple<'a>;
5109            type Token<'a> = <Self::Parameters<
5110                'a,
5111            > as alloy_sol_types::SolType>::Token<'a>;
5112            const SIGNATURE: &'static str = "NotMemberOfSet()";
5113            const SELECTOR: [u8; 4] = [37u8, 19u8, 29u8, 79u8];
5114            #[inline]
5115            fn new<'a>(
5116                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5117            ) -> Self {
5118                tuple.into()
5119            }
5120            #[inline]
5121            fn tokenize(&self) -> Self::Token<'_> {
5122                ()
5123            }
5124        }
5125    };
5126    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5127    /**Custom error with signature `OnlyPauser()` and selector `0x75df51dc`.
5128```solidity
5129error OnlyPauser();
5130```*/
5131    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5132    #[derive(Clone)]
5133    pub struct OnlyPauser {}
5134    #[allow(
5135        non_camel_case_types,
5136        non_snake_case,
5137        clippy::pub_underscore_fields,
5138        clippy::style
5139    )]
5140    const _: () = {
5141        use alloy::sol_types as alloy_sol_types;
5142        #[doc(hidden)]
5143        type UnderlyingSolTuple<'a> = ();
5144        #[doc(hidden)]
5145        type UnderlyingRustTuple<'a> = ();
5146        #[cfg(test)]
5147        #[allow(dead_code, unreachable_patterns)]
5148        fn _type_assertion(
5149            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5150        ) {
5151            match _t {
5152                alloy_sol_types::private::AssertTypeEq::<
5153                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5154                >(_) => {}
5155            }
5156        }
5157        #[automatically_derived]
5158        #[doc(hidden)]
5159        impl ::core::convert::From<OnlyPauser> for UnderlyingRustTuple<'_> {
5160            fn from(value: OnlyPauser) -> Self {
5161                ()
5162            }
5163        }
5164        #[automatically_derived]
5165        #[doc(hidden)]
5166        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyPauser {
5167            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5168                Self {}
5169            }
5170        }
5171        #[automatically_derived]
5172        impl alloy_sol_types::SolError for OnlyPauser {
5173            type Parameters<'a> = UnderlyingSolTuple<'a>;
5174            type Token<'a> = <Self::Parameters<
5175                'a,
5176            > as alloy_sol_types::SolType>::Token<'a>;
5177            const SIGNATURE: &'static str = "OnlyPauser()";
5178            const SELECTOR: [u8; 4] = [117u8, 223u8, 81u8, 220u8];
5179            #[inline]
5180            fn new<'a>(
5181                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5182            ) -> Self {
5183                tuple.into()
5184            }
5185            #[inline]
5186            fn tokenize(&self) -> Self::Token<'_> {
5187                ()
5188            }
5189        }
5190    };
5191    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5192    /**Custom error with signature `OnlyUnpauser()` and selector `0x794821ff`.
5193```solidity
5194error OnlyUnpauser();
5195```*/
5196    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5197    #[derive(Clone)]
5198    pub struct OnlyUnpauser {}
5199    #[allow(
5200        non_camel_case_types,
5201        non_snake_case,
5202        clippy::pub_underscore_fields,
5203        clippy::style
5204    )]
5205    const _: () = {
5206        use alloy::sol_types as alloy_sol_types;
5207        #[doc(hidden)]
5208        type UnderlyingSolTuple<'a> = ();
5209        #[doc(hidden)]
5210        type UnderlyingRustTuple<'a> = ();
5211        #[cfg(test)]
5212        #[allow(dead_code, unreachable_patterns)]
5213        fn _type_assertion(
5214            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5215        ) {
5216            match _t {
5217                alloy_sol_types::private::AssertTypeEq::<
5218                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5219                >(_) => {}
5220            }
5221        }
5222        #[automatically_derived]
5223        #[doc(hidden)]
5224        impl ::core::convert::From<OnlyUnpauser> for UnderlyingRustTuple<'_> {
5225            fn from(value: OnlyUnpauser) -> Self {
5226                ()
5227            }
5228        }
5229        #[automatically_derived]
5230        #[doc(hidden)]
5231        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyUnpauser {
5232            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5233                Self {}
5234            }
5235        }
5236        #[automatically_derived]
5237        impl alloy_sol_types::SolError for OnlyUnpauser {
5238            type Parameters<'a> = UnderlyingSolTuple<'a>;
5239            type Token<'a> = <Self::Parameters<
5240                'a,
5241            > as alloy_sol_types::SolType>::Token<'a>;
5242            const SIGNATURE: &'static str = "OnlyUnpauser()";
5243            const SELECTOR: [u8; 4] = [121u8, 72u8, 33u8, 255u8];
5244            #[inline]
5245            fn new<'a>(
5246                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5247            ) -> Self {
5248                tuple.into()
5249            }
5250            #[inline]
5251            fn tokenize(&self) -> Self::Token<'_> {
5252                ()
5253            }
5254        }
5255    };
5256    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5257    /**Custom error with signature `OperatorNotSlashable()` and selector `0xebbff497`.
5258```solidity
5259error OperatorNotSlashable();
5260```*/
5261    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5262    #[derive(Clone)]
5263    pub struct OperatorNotSlashable {}
5264    #[allow(
5265        non_camel_case_types,
5266        non_snake_case,
5267        clippy::pub_underscore_fields,
5268        clippy::style
5269    )]
5270    const _: () = {
5271        use alloy::sol_types as alloy_sol_types;
5272        #[doc(hidden)]
5273        type UnderlyingSolTuple<'a> = ();
5274        #[doc(hidden)]
5275        type UnderlyingRustTuple<'a> = ();
5276        #[cfg(test)]
5277        #[allow(dead_code, unreachable_patterns)]
5278        fn _type_assertion(
5279            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5280        ) {
5281            match _t {
5282                alloy_sol_types::private::AssertTypeEq::<
5283                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5284                >(_) => {}
5285            }
5286        }
5287        #[automatically_derived]
5288        #[doc(hidden)]
5289        impl ::core::convert::From<OperatorNotSlashable> for UnderlyingRustTuple<'_> {
5290            fn from(value: OperatorNotSlashable) -> Self {
5291                ()
5292            }
5293        }
5294        #[automatically_derived]
5295        #[doc(hidden)]
5296        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorNotSlashable {
5297            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5298                Self {}
5299            }
5300        }
5301        #[automatically_derived]
5302        impl alloy_sol_types::SolError for OperatorNotSlashable {
5303            type Parameters<'a> = UnderlyingSolTuple<'a>;
5304            type Token<'a> = <Self::Parameters<
5305                'a,
5306            > as alloy_sol_types::SolType>::Token<'a>;
5307            const SIGNATURE: &'static str = "OperatorNotSlashable()";
5308            const SELECTOR: [u8; 4] = [235u8, 191u8, 244u8, 151u8];
5309            #[inline]
5310            fn new<'a>(
5311                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5312            ) -> Self {
5313                tuple.into()
5314            }
5315            #[inline]
5316            fn tokenize(&self) -> Self::Token<'_> {
5317                ()
5318            }
5319        }
5320    };
5321    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5322    /**Custom error with signature `OutOfBounds()` and selector `0xb4120f14`.
5323```solidity
5324error OutOfBounds();
5325```*/
5326    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5327    #[derive(Clone)]
5328    pub struct OutOfBounds {}
5329    #[allow(
5330        non_camel_case_types,
5331        non_snake_case,
5332        clippy::pub_underscore_fields,
5333        clippy::style
5334    )]
5335    const _: () = {
5336        use alloy::sol_types as alloy_sol_types;
5337        #[doc(hidden)]
5338        type UnderlyingSolTuple<'a> = ();
5339        #[doc(hidden)]
5340        type UnderlyingRustTuple<'a> = ();
5341        #[cfg(test)]
5342        #[allow(dead_code, unreachable_patterns)]
5343        fn _type_assertion(
5344            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5345        ) {
5346            match _t {
5347                alloy_sol_types::private::AssertTypeEq::<
5348                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5349                >(_) => {}
5350            }
5351        }
5352        #[automatically_derived]
5353        #[doc(hidden)]
5354        impl ::core::convert::From<OutOfBounds> for UnderlyingRustTuple<'_> {
5355            fn from(value: OutOfBounds) -> Self {
5356                ()
5357            }
5358        }
5359        #[automatically_derived]
5360        #[doc(hidden)]
5361        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OutOfBounds {
5362            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5363                Self {}
5364            }
5365        }
5366        #[automatically_derived]
5367        impl alloy_sol_types::SolError for OutOfBounds {
5368            type Parameters<'a> = UnderlyingSolTuple<'a>;
5369            type Token<'a> = <Self::Parameters<
5370                'a,
5371            > as alloy_sol_types::SolType>::Token<'a>;
5372            const SIGNATURE: &'static str = "OutOfBounds()";
5373            const SELECTOR: [u8; 4] = [180u8, 18u8, 15u8, 20u8];
5374            #[inline]
5375            fn new<'a>(
5376                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5377            ) -> Self {
5378                tuple.into()
5379            }
5380            #[inline]
5381            fn tokenize(&self) -> Self::Token<'_> {
5382                ()
5383            }
5384        }
5385    };
5386    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5387    /**Custom error with signature `SameMagnitude()` and selector `0x8c0c2f26`.
5388```solidity
5389error SameMagnitude();
5390```*/
5391    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5392    #[derive(Clone)]
5393    pub struct SameMagnitude {}
5394    #[allow(
5395        non_camel_case_types,
5396        non_snake_case,
5397        clippy::pub_underscore_fields,
5398        clippy::style
5399    )]
5400    const _: () = {
5401        use alloy::sol_types as alloy_sol_types;
5402        #[doc(hidden)]
5403        type UnderlyingSolTuple<'a> = ();
5404        #[doc(hidden)]
5405        type UnderlyingRustTuple<'a> = ();
5406        #[cfg(test)]
5407        #[allow(dead_code, unreachable_patterns)]
5408        fn _type_assertion(
5409            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5410        ) {
5411            match _t {
5412                alloy_sol_types::private::AssertTypeEq::<
5413                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5414                >(_) => {}
5415            }
5416        }
5417        #[automatically_derived]
5418        #[doc(hidden)]
5419        impl ::core::convert::From<SameMagnitude> for UnderlyingRustTuple<'_> {
5420            fn from(value: SameMagnitude) -> Self {
5421                ()
5422            }
5423        }
5424        #[automatically_derived]
5425        #[doc(hidden)]
5426        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SameMagnitude {
5427            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5428                Self {}
5429            }
5430        }
5431        #[automatically_derived]
5432        impl alloy_sol_types::SolError for SameMagnitude {
5433            type Parameters<'a> = UnderlyingSolTuple<'a>;
5434            type Token<'a> = <Self::Parameters<
5435                'a,
5436            > as alloy_sol_types::SolType>::Token<'a>;
5437            const SIGNATURE: &'static str = "SameMagnitude()";
5438            const SELECTOR: [u8; 4] = [140u8, 12u8, 47u8, 38u8];
5439            #[inline]
5440            fn new<'a>(
5441                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5442            ) -> Self {
5443                tuple.into()
5444            }
5445            #[inline]
5446            fn tokenize(&self) -> Self::Token<'_> {
5447                ()
5448            }
5449        }
5450    };
5451    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5452    /**Custom error with signature `StrategiesMustBeInAscendingOrder()` and selector `0x9f1c8053`.
5453```solidity
5454error StrategiesMustBeInAscendingOrder();
5455```*/
5456    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5457    #[derive(Clone)]
5458    pub struct StrategiesMustBeInAscendingOrder {}
5459    #[allow(
5460        non_camel_case_types,
5461        non_snake_case,
5462        clippy::pub_underscore_fields,
5463        clippy::style
5464    )]
5465    const _: () = {
5466        use alloy::sol_types as alloy_sol_types;
5467        #[doc(hidden)]
5468        type UnderlyingSolTuple<'a> = ();
5469        #[doc(hidden)]
5470        type UnderlyingRustTuple<'a> = ();
5471        #[cfg(test)]
5472        #[allow(dead_code, unreachable_patterns)]
5473        fn _type_assertion(
5474            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5475        ) {
5476            match _t {
5477                alloy_sol_types::private::AssertTypeEq::<
5478                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5479                >(_) => {}
5480            }
5481        }
5482        #[automatically_derived]
5483        #[doc(hidden)]
5484        impl ::core::convert::From<StrategiesMustBeInAscendingOrder>
5485        for UnderlyingRustTuple<'_> {
5486            fn from(value: StrategiesMustBeInAscendingOrder) -> Self {
5487                ()
5488            }
5489        }
5490        #[automatically_derived]
5491        #[doc(hidden)]
5492        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5493        for StrategiesMustBeInAscendingOrder {
5494            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5495                Self {}
5496            }
5497        }
5498        #[automatically_derived]
5499        impl alloy_sol_types::SolError for StrategiesMustBeInAscendingOrder {
5500            type Parameters<'a> = UnderlyingSolTuple<'a>;
5501            type Token<'a> = <Self::Parameters<
5502                'a,
5503            > as alloy_sol_types::SolType>::Token<'a>;
5504            const SIGNATURE: &'static str = "StrategiesMustBeInAscendingOrder()";
5505            const SELECTOR: [u8; 4] = [159u8, 28u8, 128u8, 83u8];
5506            #[inline]
5507            fn new<'a>(
5508                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5509            ) -> Self {
5510                tuple.into()
5511            }
5512            #[inline]
5513            fn tokenize(&self) -> Self::Token<'_> {
5514                ()
5515            }
5516        }
5517    };
5518    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5519    /**Custom error with signature `StrategyAlreadyInOperatorSet()` and selector `0x585cfb2f`.
5520```solidity
5521error StrategyAlreadyInOperatorSet();
5522```*/
5523    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5524    #[derive(Clone)]
5525    pub struct StrategyAlreadyInOperatorSet {}
5526    #[allow(
5527        non_camel_case_types,
5528        non_snake_case,
5529        clippy::pub_underscore_fields,
5530        clippy::style
5531    )]
5532    const _: () = {
5533        use alloy::sol_types as alloy_sol_types;
5534        #[doc(hidden)]
5535        type UnderlyingSolTuple<'a> = ();
5536        #[doc(hidden)]
5537        type UnderlyingRustTuple<'a> = ();
5538        #[cfg(test)]
5539        #[allow(dead_code, unreachable_patterns)]
5540        fn _type_assertion(
5541            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5542        ) {
5543            match _t {
5544                alloy_sol_types::private::AssertTypeEq::<
5545                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5546                >(_) => {}
5547            }
5548        }
5549        #[automatically_derived]
5550        #[doc(hidden)]
5551        impl ::core::convert::From<StrategyAlreadyInOperatorSet>
5552        for UnderlyingRustTuple<'_> {
5553            fn from(value: StrategyAlreadyInOperatorSet) -> Self {
5554                ()
5555            }
5556        }
5557        #[automatically_derived]
5558        #[doc(hidden)]
5559        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5560        for StrategyAlreadyInOperatorSet {
5561            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5562                Self {}
5563            }
5564        }
5565        #[automatically_derived]
5566        impl alloy_sol_types::SolError for StrategyAlreadyInOperatorSet {
5567            type Parameters<'a> = UnderlyingSolTuple<'a>;
5568            type Token<'a> = <Self::Parameters<
5569                'a,
5570            > as alloy_sol_types::SolType>::Token<'a>;
5571            const SIGNATURE: &'static str = "StrategyAlreadyInOperatorSet()";
5572            const SELECTOR: [u8; 4] = [88u8, 92u8, 251u8, 47u8];
5573            #[inline]
5574            fn new<'a>(
5575                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5576            ) -> Self {
5577                tuple.into()
5578            }
5579            #[inline]
5580            fn tokenize(&self) -> Self::Token<'_> {
5581                ()
5582            }
5583        }
5584    };
5585    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5586    /**Custom error with signature `StrategyNotInOperatorSet()` and selector `0x6378684e`.
5587```solidity
5588error StrategyNotInOperatorSet();
5589```*/
5590    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5591    #[derive(Clone)]
5592    pub struct StrategyNotInOperatorSet {}
5593    #[allow(
5594        non_camel_case_types,
5595        non_snake_case,
5596        clippy::pub_underscore_fields,
5597        clippy::style
5598    )]
5599    const _: () = {
5600        use alloy::sol_types as alloy_sol_types;
5601        #[doc(hidden)]
5602        type UnderlyingSolTuple<'a> = ();
5603        #[doc(hidden)]
5604        type UnderlyingRustTuple<'a> = ();
5605        #[cfg(test)]
5606        #[allow(dead_code, unreachable_patterns)]
5607        fn _type_assertion(
5608            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5609        ) {
5610            match _t {
5611                alloy_sol_types::private::AssertTypeEq::<
5612                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5613                >(_) => {}
5614            }
5615        }
5616        #[automatically_derived]
5617        #[doc(hidden)]
5618        impl ::core::convert::From<StrategyNotInOperatorSet>
5619        for UnderlyingRustTuple<'_> {
5620            fn from(value: StrategyNotInOperatorSet) -> Self {
5621                ()
5622            }
5623        }
5624        #[automatically_derived]
5625        #[doc(hidden)]
5626        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5627        for StrategyNotInOperatorSet {
5628            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5629                Self {}
5630            }
5631        }
5632        #[automatically_derived]
5633        impl alloy_sol_types::SolError for StrategyNotInOperatorSet {
5634            type Parameters<'a> = UnderlyingSolTuple<'a>;
5635            type Token<'a> = <Self::Parameters<
5636                'a,
5637            > as alloy_sol_types::SolType>::Token<'a>;
5638            const SIGNATURE: &'static str = "StrategyNotInOperatorSet()";
5639            const SELECTOR: [u8; 4] = [99u8, 120u8, 104u8, 78u8];
5640            #[inline]
5641            fn new<'a>(
5642                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5643            ) -> Self {
5644                tuple.into()
5645            }
5646            #[inline]
5647            fn tokenize(&self) -> Self::Token<'_> {
5648                ()
5649            }
5650        }
5651    };
5652    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5653    /**Custom error with signature `StringTooLong(string)` and selector `0x305a27a9`.
5654```solidity
5655error StringTooLong(string str);
5656```*/
5657    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5658    #[derive(Clone)]
5659    pub struct StringTooLong {
5660        #[allow(missing_docs)]
5661        pub str: alloy::sol_types::private::String,
5662    }
5663    #[allow(
5664        non_camel_case_types,
5665        non_snake_case,
5666        clippy::pub_underscore_fields,
5667        clippy::style
5668    )]
5669    const _: () = {
5670        use alloy::sol_types as alloy_sol_types;
5671        #[doc(hidden)]
5672        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
5673        #[doc(hidden)]
5674        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
5675        #[cfg(test)]
5676        #[allow(dead_code, unreachable_patterns)]
5677        fn _type_assertion(
5678            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5679        ) {
5680            match _t {
5681                alloy_sol_types::private::AssertTypeEq::<
5682                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5683                >(_) => {}
5684            }
5685        }
5686        #[automatically_derived]
5687        #[doc(hidden)]
5688        impl ::core::convert::From<StringTooLong> for UnderlyingRustTuple<'_> {
5689            fn from(value: StringTooLong) -> Self {
5690                (value.str,)
5691            }
5692        }
5693        #[automatically_derived]
5694        #[doc(hidden)]
5695        impl ::core::convert::From<UnderlyingRustTuple<'_>> for StringTooLong {
5696            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5697                Self { str: tuple.0 }
5698            }
5699        }
5700        #[automatically_derived]
5701        impl alloy_sol_types::SolError for StringTooLong {
5702            type Parameters<'a> = UnderlyingSolTuple<'a>;
5703            type Token<'a> = <Self::Parameters<
5704                'a,
5705            > as alloy_sol_types::SolType>::Token<'a>;
5706            const SIGNATURE: &'static str = "StringTooLong(string)";
5707            const SELECTOR: [u8; 4] = [48u8, 90u8, 39u8, 169u8];
5708            #[inline]
5709            fn new<'a>(
5710                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5711            ) -> Self {
5712                tuple.into()
5713            }
5714            #[inline]
5715            fn tokenize(&self) -> Self::Token<'_> {
5716                (
5717                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
5718                        &self.str,
5719                    ),
5720                )
5721            }
5722        }
5723    };
5724    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5725    /**Custom error with signature `UninitializedAllocationDelay()` and selector `0xfa55fc81`.
5726```solidity
5727error UninitializedAllocationDelay();
5728```*/
5729    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5730    #[derive(Clone)]
5731    pub struct UninitializedAllocationDelay {}
5732    #[allow(
5733        non_camel_case_types,
5734        non_snake_case,
5735        clippy::pub_underscore_fields,
5736        clippy::style
5737    )]
5738    const _: () = {
5739        use alloy::sol_types as alloy_sol_types;
5740        #[doc(hidden)]
5741        type UnderlyingSolTuple<'a> = ();
5742        #[doc(hidden)]
5743        type UnderlyingRustTuple<'a> = ();
5744        #[cfg(test)]
5745        #[allow(dead_code, unreachable_patterns)]
5746        fn _type_assertion(
5747            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5748        ) {
5749            match _t {
5750                alloy_sol_types::private::AssertTypeEq::<
5751                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5752                >(_) => {}
5753            }
5754        }
5755        #[automatically_derived]
5756        #[doc(hidden)]
5757        impl ::core::convert::From<UninitializedAllocationDelay>
5758        for UnderlyingRustTuple<'_> {
5759            fn from(value: UninitializedAllocationDelay) -> Self {
5760                ()
5761            }
5762        }
5763        #[automatically_derived]
5764        #[doc(hidden)]
5765        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5766        for UninitializedAllocationDelay {
5767            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5768                Self {}
5769            }
5770        }
5771        #[automatically_derived]
5772        impl alloy_sol_types::SolError for UninitializedAllocationDelay {
5773            type Parameters<'a> = UnderlyingSolTuple<'a>;
5774            type Token<'a> = <Self::Parameters<
5775                'a,
5776            > as alloy_sol_types::SolType>::Token<'a>;
5777            const SIGNATURE: &'static str = "UninitializedAllocationDelay()";
5778            const SELECTOR: [u8; 4] = [250u8, 85u8, 252u8, 129u8];
5779            #[inline]
5780            fn new<'a>(
5781                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5782            ) -> Self {
5783                tuple.into()
5784            }
5785            #[inline]
5786            fn tokenize(&self) -> Self::Token<'_> {
5787                ()
5788            }
5789        }
5790    };
5791    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5792    /**Event with signature `AVSMetadataURIUpdated(address,string)` and selector `0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713`.
5793```solidity
5794event AVSMetadataURIUpdated(address indexed avs, string metadataURI);
5795```*/
5796    #[allow(
5797        non_camel_case_types,
5798        non_snake_case,
5799        clippy::pub_underscore_fields,
5800        clippy::style
5801    )]
5802    #[derive(Clone)]
5803    pub struct AVSMetadataURIUpdated {
5804        #[allow(missing_docs)]
5805        pub avs: alloy::sol_types::private::Address,
5806        #[allow(missing_docs)]
5807        pub metadataURI: alloy::sol_types::private::String,
5808    }
5809    #[allow(
5810        non_camel_case_types,
5811        non_snake_case,
5812        clippy::pub_underscore_fields,
5813        clippy::style
5814    )]
5815    const _: () = {
5816        use alloy::sol_types as alloy_sol_types;
5817        #[automatically_derived]
5818        impl alloy_sol_types::SolEvent for AVSMetadataURIUpdated {
5819            type DataTuple<'a> = (alloy::sol_types::sol_data::String,);
5820            type DataToken<'a> = <Self::DataTuple<
5821                'a,
5822            > as alloy_sol_types::SolType>::Token<'a>;
5823            type TopicList = (
5824                alloy_sol_types::sol_data::FixedBytes<32>,
5825                alloy::sol_types::sol_data::Address,
5826            );
5827            const SIGNATURE: &'static str = "AVSMetadataURIUpdated(address,string)";
5828            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
5829                168u8, 156u8, 29u8, 194u8, 67u8, 216u8, 144u8, 138u8, 150u8, 221u8,
5830                132u8, 148u8, 75u8, 204u8, 151u8, 214u8, 188u8, 106u8, 192u8, 13u8,
5831                215u8, 142u8, 32u8, 98u8, 21u8, 118u8, 190u8, 106u8, 60u8, 148u8, 55u8,
5832                19u8,
5833            ]);
5834            const ANONYMOUS: bool = false;
5835            #[allow(unused_variables)]
5836            #[inline]
5837            fn new(
5838                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
5839                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
5840            ) -> Self {
5841                Self {
5842                    avs: topics.1,
5843                    metadataURI: data.0,
5844                }
5845            }
5846            #[inline]
5847            fn check_signature(
5848                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
5849            ) -> alloy_sol_types::Result<()> {
5850                if topics.0 != Self::SIGNATURE_HASH {
5851                    return Err(
5852                        alloy_sol_types::Error::invalid_event_signature_hash(
5853                            Self::SIGNATURE,
5854                            topics.0,
5855                            Self::SIGNATURE_HASH,
5856                        ),
5857                    );
5858                }
5859                Ok(())
5860            }
5861            #[inline]
5862            fn tokenize_body(&self) -> Self::DataToken<'_> {
5863                (
5864                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
5865                        &self.metadataURI,
5866                    ),
5867                )
5868            }
5869            #[inline]
5870            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
5871                (Self::SIGNATURE_HASH.into(), self.avs.clone())
5872            }
5873            #[inline]
5874            fn encode_topics_raw(
5875                &self,
5876                out: &mut [alloy_sol_types::abi::token::WordToken],
5877            ) -> alloy_sol_types::Result<()> {
5878                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
5879                    return Err(alloy_sol_types::Error::Overrun);
5880                }
5881                out[0usize] = alloy_sol_types::abi::token::WordToken(
5882                    Self::SIGNATURE_HASH,
5883                );
5884                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
5885                    &self.avs,
5886                );
5887                Ok(())
5888            }
5889        }
5890        #[automatically_derived]
5891        impl alloy_sol_types::private::IntoLogData for AVSMetadataURIUpdated {
5892            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
5893                From::from(self)
5894            }
5895            fn into_log_data(self) -> alloy_sol_types::private::LogData {
5896                From::from(&self)
5897            }
5898        }
5899        #[automatically_derived]
5900        impl From<&AVSMetadataURIUpdated> for alloy_sol_types::private::LogData {
5901            #[inline]
5902            fn from(this: &AVSMetadataURIUpdated) -> alloy_sol_types::private::LogData {
5903                alloy_sol_types::SolEvent::encode_log_data(this)
5904            }
5905        }
5906    };
5907    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5908    /**Event with signature `AVSRegistrarSet(address,address)` and selector `0x2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf85`.
5909```solidity
5910event AVSRegistrarSet(address avs, address registrar);
5911```*/
5912    #[allow(
5913        non_camel_case_types,
5914        non_snake_case,
5915        clippy::pub_underscore_fields,
5916        clippy::style
5917    )]
5918    #[derive(Clone)]
5919    pub struct AVSRegistrarSet {
5920        #[allow(missing_docs)]
5921        pub avs: alloy::sol_types::private::Address,
5922        #[allow(missing_docs)]
5923        pub registrar: alloy::sol_types::private::Address,
5924    }
5925    #[allow(
5926        non_camel_case_types,
5927        non_snake_case,
5928        clippy::pub_underscore_fields,
5929        clippy::style
5930    )]
5931    const _: () = {
5932        use alloy::sol_types as alloy_sol_types;
5933        #[automatically_derived]
5934        impl alloy_sol_types::SolEvent for AVSRegistrarSet {
5935            type DataTuple<'a> = (
5936                alloy::sol_types::sol_data::Address,
5937                alloy::sol_types::sol_data::Address,
5938            );
5939            type DataToken<'a> = <Self::DataTuple<
5940                'a,
5941            > as alloy_sol_types::SolType>::Token<'a>;
5942            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
5943            const SIGNATURE: &'static str = "AVSRegistrarSet(address,address)";
5944            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
5945                42u8, 233u8, 69u8, 196u8, 12u8, 68u8, 220u8, 14u8, 194u8, 99u8, 249u8,
5946                86u8, 9u8, 195u8, 253u8, 198u8, 149u8, 46u8, 10u8, 239u8, 162u8, 45u8,
5947                99u8, 116u8, 228u8, 79u8, 44u8, 153u8, 122u8, 206u8, 223u8, 133u8,
5948            ]);
5949            const ANONYMOUS: bool = false;
5950            #[allow(unused_variables)]
5951            #[inline]
5952            fn new(
5953                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
5954                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
5955            ) -> Self {
5956                Self {
5957                    avs: data.0,
5958                    registrar: data.1,
5959                }
5960            }
5961            #[inline]
5962            fn check_signature(
5963                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
5964            ) -> alloy_sol_types::Result<()> {
5965                if topics.0 != Self::SIGNATURE_HASH {
5966                    return Err(
5967                        alloy_sol_types::Error::invalid_event_signature_hash(
5968                            Self::SIGNATURE,
5969                            topics.0,
5970                            Self::SIGNATURE_HASH,
5971                        ),
5972                    );
5973                }
5974                Ok(())
5975            }
5976            #[inline]
5977            fn tokenize_body(&self) -> Self::DataToken<'_> {
5978                (
5979                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5980                        &self.avs,
5981                    ),
5982                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5983                        &self.registrar,
5984                    ),
5985                )
5986            }
5987            #[inline]
5988            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
5989                (Self::SIGNATURE_HASH.into(),)
5990            }
5991            #[inline]
5992            fn encode_topics_raw(
5993                &self,
5994                out: &mut [alloy_sol_types::abi::token::WordToken],
5995            ) -> alloy_sol_types::Result<()> {
5996                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
5997                    return Err(alloy_sol_types::Error::Overrun);
5998                }
5999                out[0usize] = alloy_sol_types::abi::token::WordToken(
6000                    Self::SIGNATURE_HASH,
6001                );
6002                Ok(())
6003            }
6004        }
6005        #[automatically_derived]
6006        impl alloy_sol_types::private::IntoLogData for AVSRegistrarSet {
6007            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6008                From::from(self)
6009            }
6010            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6011                From::from(&self)
6012            }
6013        }
6014        #[automatically_derived]
6015        impl From<&AVSRegistrarSet> for alloy_sol_types::private::LogData {
6016            #[inline]
6017            fn from(this: &AVSRegistrarSet) -> alloy_sol_types::private::LogData {
6018                alloy_sol_types::SolEvent::encode_log_data(this)
6019            }
6020        }
6021    };
6022    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6023    /**Event with signature `AllocationDelaySet(address,uint32,uint32)` and selector `0x4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db`.
6024```solidity
6025event AllocationDelaySet(address operator, uint32 delay, uint32 effectBlock);
6026```*/
6027    #[allow(
6028        non_camel_case_types,
6029        non_snake_case,
6030        clippy::pub_underscore_fields,
6031        clippy::style
6032    )]
6033    #[derive(Clone)]
6034    pub struct AllocationDelaySet {
6035        #[allow(missing_docs)]
6036        pub operator: alloy::sol_types::private::Address,
6037        #[allow(missing_docs)]
6038        pub delay: u32,
6039        #[allow(missing_docs)]
6040        pub effectBlock: u32,
6041    }
6042    #[allow(
6043        non_camel_case_types,
6044        non_snake_case,
6045        clippy::pub_underscore_fields,
6046        clippy::style
6047    )]
6048    const _: () = {
6049        use alloy::sol_types as alloy_sol_types;
6050        #[automatically_derived]
6051        impl alloy_sol_types::SolEvent for AllocationDelaySet {
6052            type DataTuple<'a> = (
6053                alloy::sol_types::sol_data::Address,
6054                alloy::sol_types::sol_data::Uint<32>,
6055                alloy::sol_types::sol_data::Uint<32>,
6056            );
6057            type DataToken<'a> = <Self::DataTuple<
6058                'a,
6059            > as alloy_sol_types::SolType>::Token<'a>;
6060            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6061            const SIGNATURE: &'static str = "AllocationDelaySet(address,uint32,uint32)";
6062            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6063                78u8, 133u8, 117u8, 29u8, 99u8, 49u8, 80u8, 108u8, 108u8, 98u8, 51u8,
6064                95u8, 32u8, 126u8, 179u8, 31u8, 18u8, 166u8, 30u8, 87u8, 15u8, 52u8,
6065                245u8, 193u8, 118u8, 64u8, 48u8, 135u8, 133u8, 198u8, 212u8, 219u8,
6066            ]);
6067            const ANONYMOUS: bool = false;
6068            #[allow(unused_variables)]
6069            #[inline]
6070            fn new(
6071                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6072                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6073            ) -> Self {
6074                Self {
6075                    operator: data.0,
6076                    delay: data.1,
6077                    effectBlock: data.2,
6078                }
6079            }
6080            #[inline]
6081            fn check_signature(
6082                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6083            ) -> alloy_sol_types::Result<()> {
6084                if topics.0 != Self::SIGNATURE_HASH {
6085                    return Err(
6086                        alloy_sol_types::Error::invalid_event_signature_hash(
6087                            Self::SIGNATURE,
6088                            topics.0,
6089                            Self::SIGNATURE_HASH,
6090                        ),
6091                    );
6092                }
6093                Ok(())
6094            }
6095            #[inline]
6096            fn tokenize_body(&self) -> Self::DataToken<'_> {
6097                (
6098                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6099                        &self.operator,
6100                    ),
6101                    <alloy::sol_types::sol_data::Uint<
6102                        32,
6103                    > as alloy_sol_types::SolType>::tokenize(&self.delay),
6104                    <alloy::sol_types::sol_data::Uint<
6105                        32,
6106                    > as alloy_sol_types::SolType>::tokenize(&self.effectBlock),
6107                )
6108            }
6109            #[inline]
6110            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6111                (Self::SIGNATURE_HASH.into(),)
6112            }
6113            #[inline]
6114            fn encode_topics_raw(
6115                &self,
6116                out: &mut [alloy_sol_types::abi::token::WordToken],
6117            ) -> alloy_sol_types::Result<()> {
6118                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6119                    return Err(alloy_sol_types::Error::Overrun);
6120                }
6121                out[0usize] = alloy_sol_types::abi::token::WordToken(
6122                    Self::SIGNATURE_HASH,
6123                );
6124                Ok(())
6125            }
6126        }
6127        #[automatically_derived]
6128        impl alloy_sol_types::private::IntoLogData for AllocationDelaySet {
6129            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6130                From::from(self)
6131            }
6132            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6133                From::from(&self)
6134            }
6135        }
6136        #[automatically_derived]
6137        impl From<&AllocationDelaySet> for alloy_sol_types::private::LogData {
6138            #[inline]
6139            fn from(this: &AllocationDelaySet) -> alloy_sol_types::private::LogData {
6140                alloy_sol_types::SolEvent::encode_log_data(this)
6141            }
6142        }
6143    };
6144    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6145    /**Event with signature `AllocationUpdated(address,(address,uint32),address,uint64,uint32)` and selector `0x1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd`.
6146```solidity
6147event AllocationUpdated(address operator, OperatorSet operatorSet, address strategy, uint64 magnitude, uint32 effectBlock);
6148```*/
6149    #[allow(
6150        non_camel_case_types,
6151        non_snake_case,
6152        clippy::pub_underscore_fields,
6153        clippy::style
6154    )]
6155    #[derive(Clone)]
6156    pub struct AllocationUpdated {
6157        #[allow(missing_docs)]
6158        pub operator: alloy::sol_types::private::Address,
6159        #[allow(missing_docs)]
6160        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
6161        #[allow(missing_docs)]
6162        pub strategy: alloy::sol_types::private::Address,
6163        #[allow(missing_docs)]
6164        pub magnitude: u64,
6165        #[allow(missing_docs)]
6166        pub effectBlock: u32,
6167    }
6168    #[allow(
6169        non_camel_case_types,
6170        non_snake_case,
6171        clippy::pub_underscore_fields,
6172        clippy::style
6173    )]
6174    const _: () = {
6175        use alloy::sol_types as alloy_sol_types;
6176        #[automatically_derived]
6177        impl alloy_sol_types::SolEvent for AllocationUpdated {
6178            type DataTuple<'a> = (
6179                alloy::sol_types::sol_data::Address,
6180                OperatorSet,
6181                alloy::sol_types::sol_data::Address,
6182                alloy::sol_types::sol_data::Uint<64>,
6183                alloy::sol_types::sol_data::Uint<32>,
6184            );
6185            type DataToken<'a> = <Self::DataTuple<
6186                'a,
6187            > as alloy_sol_types::SolType>::Token<'a>;
6188            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6189            const SIGNATURE: &'static str = "AllocationUpdated(address,(address,uint32),address,uint64,uint32)";
6190            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6191                20u8, 135u8, 175u8, 84u8, 24u8, 196u8, 126u8, 229u8, 234u8, 69u8, 239u8,
6192                74u8, 147u8, 57u8, 134u8, 104u8, 18u8, 8u8, 144u8, 119u8, 74u8, 158u8,
6193                19u8, 72u8, 126u8, 97u8, 233u8, 220u8, 59u8, 175u8, 118u8, 221u8,
6194            ]);
6195            const ANONYMOUS: bool = false;
6196            #[allow(unused_variables)]
6197            #[inline]
6198            fn new(
6199                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6200                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6201            ) -> Self {
6202                Self {
6203                    operator: data.0,
6204                    operatorSet: data.1,
6205                    strategy: data.2,
6206                    magnitude: data.3,
6207                    effectBlock: data.4,
6208                }
6209            }
6210            #[inline]
6211            fn check_signature(
6212                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6213            ) -> alloy_sol_types::Result<()> {
6214                if topics.0 != Self::SIGNATURE_HASH {
6215                    return Err(
6216                        alloy_sol_types::Error::invalid_event_signature_hash(
6217                            Self::SIGNATURE,
6218                            topics.0,
6219                            Self::SIGNATURE_HASH,
6220                        ),
6221                    );
6222                }
6223                Ok(())
6224            }
6225            #[inline]
6226            fn tokenize_body(&self) -> Self::DataToken<'_> {
6227                (
6228                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6229                        &self.operator,
6230                    ),
6231                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
6232                        &self.operatorSet,
6233                    ),
6234                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6235                        &self.strategy,
6236                    ),
6237                    <alloy::sol_types::sol_data::Uint<
6238                        64,
6239                    > as alloy_sol_types::SolType>::tokenize(&self.magnitude),
6240                    <alloy::sol_types::sol_data::Uint<
6241                        32,
6242                    > as alloy_sol_types::SolType>::tokenize(&self.effectBlock),
6243                )
6244            }
6245            #[inline]
6246            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6247                (Self::SIGNATURE_HASH.into(),)
6248            }
6249            #[inline]
6250            fn encode_topics_raw(
6251                &self,
6252                out: &mut [alloy_sol_types::abi::token::WordToken],
6253            ) -> alloy_sol_types::Result<()> {
6254                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6255                    return Err(alloy_sol_types::Error::Overrun);
6256                }
6257                out[0usize] = alloy_sol_types::abi::token::WordToken(
6258                    Self::SIGNATURE_HASH,
6259                );
6260                Ok(())
6261            }
6262        }
6263        #[automatically_derived]
6264        impl alloy_sol_types::private::IntoLogData for AllocationUpdated {
6265            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6266                From::from(self)
6267            }
6268            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6269                From::from(&self)
6270            }
6271        }
6272        #[automatically_derived]
6273        impl From<&AllocationUpdated> for alloy_sol_types::private::LogData {
6274            #[inline]
6275            fn from(this: &AllocationUpdated) -> alloy_sol_types::private::LogData {
6276                alloy_sol_types::SolEvent::encode_log_data(this)
6277            }
6278        }
6279    };
6280    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6281    /**Event with signature `EncumberedMagnitudeUpdated(address,address,uint64)` and selector `0xacf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc55`.
6282```solidity
6283event EncumberedMagnitudeUpdated(address operator, address strategy, uint64 encumberedMagnitude);
6284```*/
6285    #[allow(
6286        non_camel_case_types,
6287        non_snake_case,
6288        clippy::pub_underscore_fields,
6289        clippy::style
6290    )]
6291    #[derive(Clone)]
6292    pub struct EncumberedMagnitudeUpdated {
6293        #[allow(missing_docs)]
6294        pub operator: alloy::sol_types::private::Address,
6295        #[allow(missing_docs)]
6296        pub strategy: alloy::sol_types::private::Address,
6297        #[allow(missing_docs)]
6298        pub encumberedMagnitude: u64,
6299    }
6300    #[allow(
6301        non_camel_case_types,
6302        non_snake_case,
6303        clippy::pub_underscore_fields,
6304        clippy::style
6305    )]
6306    const _: () = {
6307        use alloy::sol_types as alloy_sol_types;
6308        #[automatically_derived]
6309        impl alloy_sol_types::SolEvent for EncumberedMagnitudeUpdated {
6310            type DataTuple<'a> = (
6311                alloy::sol_types::sol_data::Address,
6312                alloy::sol_types::sol_data::Address,
6313                alloy::sol_types::sol_data::Uint<64>,
6314            );
6315            type DataToken<'a> = <Self::DataTuple<
6316                'a,
6317            > as alloy_sol_types::SolType>::Token<'a>;
6318            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6319            const SIGNATURE: &'static str = "EncumberedMagnitudeUpdated(address,address,uint64)";
6320            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6321                172u8, 249u8, 9u8, 95u8, 235u8, 58u8, 55u8, 12u8, 156u8, 246u8, 146u8,
6322                66u8, 28u8, 105u8, 239u8, 50u8, 13u8, 77u8, 181u8, 198u8, 110u8, 106u8,
6323                125u8, 41u8, 199u8, 105u8, 78u8, 176u8, 35u8, 100u8, 252u8, 85u8,
6324            ]);
6325            const ANONYMOUS: bool = false;
6326            #[allow(unused_variables)]
6327            #[inline]
6328            fn new(
6329                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6330                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6331            ) -> Self {
6332                Self {
6333                    operator: data.0,
6334                    strategy: data.1,
6335                    encumberedMagnitude: data.2,
6336                }
6337            }
6338            #[inline]
6339            fn check_signature(
6340                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6341            ) -> alloy_sol_types::Result<()> {
6342                if topics.0 != Self::SIGNATURE_HASH {
6343                    return Err(
6344                        alloy_sol_types::Error::invalid_event_signature_hash(
6345                            Self::SIGNATURE,
6346                            topics.0,
6347                            Self::SIGNATURE_HASH,
6348                        ),
6349                    );
6350                }
6351                Ok(())
6352            }
6353            #[inline]
6354            fn tokenize_body(&self) -> Self::DataToken<'_> {
6355                (
6356                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6357                        &self.operator,
6358                    ),
6359                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6360                        &self.strategy,
6361                    ),
6362                    <alloy::sol_types::sol_data::Uint<
6363                        64,
6364                    > as alloy_sol_types::SolType>::tokenize(&self.encumberedMagnitude),
6365                )
6366            }
6367            #[inline]
6368            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6369                (Self::SIGNATURE_HASH.into(),)
6370            }
6371            #[inline]
6372            fn encode_topics_raw(
6373                &self,
6374                out: &mut [alloy_sol_types::abi::token::WordToken],
6375            ) -> alloy_sol_types::Result<()> {
6376                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6377                    return Err(alloy_sol_types::Error::Overrun);
6378                }
6379                out[0usize] = alloy_sol_types::abi::token::WordToken(
6380                    Self::SIGNATURE_HASH,
6381                );
6382                Ok(())
6383            }
6384        }
6385        #[automatically_derived]
6386        impl alloy_sol_types::private::IntoLogData for EncumberedMagnitudeUpdated {
6387            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6388                From::from(self)
6389            }
6390            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6391                From::from(&self)
6392            }
6393        }
6394        #[automatically_derived]
6395        impl From<&EncumberedMagnitudeUpdated> for alloy_sol_types::private::LogData {
6396            #[inline]
6397            fn from(
6398                this: &EncumberedMagnitudeUpdated,
6399            ) -> alloy_sol_types::private::LogData {
6400                alloy_sol_types::SolEvent::encode_log_data(this)
6401            }
6402        }
6403    };
6404    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6405    /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`.
6406```solidity
6407event Initialized(uint8 version);
6408```*/
6409    #[allow(
6410        non_camel_case_types,
6411        non_snake_case,
6412        clippy::pub_underscore_fields,
6413        clippy::style
6414    )]
6415    #[derive(Clone)]
6416    pub struct Initialized {
6417        #[allow(missing_docs)]
6418        pub version: u8,
6419    }
6420    #[allow(
6421        non_camel_case_types,
6422        non_snake_case,
6423        clippy::pub_underscore_fields,
6424        clippy::style
6425    )]
6426    const _: () = {
6427        use alloy::sol_types as alloy_sol_types;
6428        #[automatically_derived]
6429        impl alloy_sol_types::SolEvent for Initialized {
6430            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
6431            type DataToken<'a> = <Self::DataTuple<
6432                'a,
6433            > as alloy_sol_types::SolType>::Token<'a>;
6434            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6435            const SIGNATURE: &'static str = "Initialized(uint8)";
6436            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6437                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
6438                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
6439                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
6440            ]);
6441            const ANONYMOUS: bool = false;
6442            #[allow(unused_variables)]
6443            #[inline]
6444            fn new(
6445                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6446                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6447            ) -> Self {
6448                Self { version: data.0 }
6449            }
6450            #[inline]
6451            fn check_signature(
6452                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6453            ) -> alloy_sol_types::Result<()> {
6454                if topics.0 != Self::SIGNATURE_HASH {
6455                    return Err(
6456                        alloy_sol_types::Error::invalid_event_signature_hash(
6457                            Self::SIGNATURE,
6458                            topics.0,
6459                            Self::SIGNATURE_HASH,
6460                        ),
6461                    );
6462                }
6463                Ok(())
6464            }
6465            #[inline]
6466            fn tokenize_body(&self) -> Self::DataToken<'_> {
6467                (
6468                    <alloy::sol_types::sol_data::Uint<
6469                        8,
6470                    > as alloy_sol_types::SolType>::tokenize(&self.version),
6471                )
6472            }
6473            #[inline]
6474            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6475                (Self::SIGNATURE_HASH.into(),)
6476            }
6477            #[inline]
6478            fn encode_topics_raw(
6479                &self,
6480                out: &mut [alloy_sol_types::abi::token::WordToken],
6481            ) -> alloy_sol_types::Result<()> {
6482                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6483                    return Err(alloy_sol_types::Error::Overrun);
6484                }
6485                out[0usize] = alloy_sol_types::abi::token::WordToken(
6486                    Self::SIGNATURE_HASH,
6487                );
6488                Ok(())
6489            }
6490        }
6491        #[automatically_derived]
6492        impl alloy_sol_types::private::IntoLogData for Initialized {
6493            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6494                From::from(self)
6495            }
6496            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6497                From::from(&self)
6498            }
6499        }
6500        #[automatically_derived]
6501        impl From<&Initialized> for alloy_sol_types::private::LogData {
6502            #[inline]
6503            fn from(this: &Initialized) -> alloy_sol_types::private::LogData {
6504                alloy_sol_types::SolEvent::encode_log_data(this)
6505            }
6506        }
6507    };
6508    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6509    /**Event with signature `MaxMagnitudeUpdated(address,address,uint64)` and selector `0x1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c`.
6510```solidity
6511event MaxMagnitudeUpdated(address operator, address strategy, uint64 maxMagnitude);
6512```*/
6513    #[allow(
6514        non_camel_case_types,
6515        non_snake_case,
6516        clippy::pub_underscore_fields,
6517        clippy::style
6518    )]
6519    #[derive(Clone)]
6520    pub struct MaxMagnitudeUpdated {
6521        #[allow(missing_docs)]
6522        pub operator: alloy::sol_types::private::Address,
6523        #[allow(missing_docs)]
6524        pub strategy: alloy::sol_types::private::Address,
6525        #[allow(missing_docs)]
6526        pub maxMagnitude: u64,
6527    }
6528    #[allow(
6529        non_camel_case_types,
6530        non_snake_case,
6531        clippy::pub_underscore_fields,
6532        clippy::style
6533    )]
6534    const _: () = {
6535        use alloy::sol_types as alloy_sol_types;
6536        #[automatically_derived]
6537        impl alloy_sol_types::SolEvent for MaxMagnitudeUpdated {
6538            type DataTuple<'a> = (
6539                alloy::sol_types::sol_data::Address,
6540                alloy::sol_types::sol_data::Address,
6541                alloy::sol_types::sol_data::Uint<64>,
6542            );
6543            type DataToken<'a> = <Self::DataTuple<
6544                'a,
6545            > as alloy_sol_types::SolType>::Token<'a>;
6546            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6547            const SIGNATURE: &'static str = "MaxMagnitudeUpdated(address,address,uint64)";
6548            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6549                28u8, 100u8, 88u8, 7u8, 154u8, 65u8, 7u8, 125u8, 0u8, 60u8, 17u8, 250u8,
6550                249u8, 191u8, 9u8, 126u8, 105u8, 59u8, 214u8, 121u8, 121u8, 228u8, 230u8,
6551                80u8, 11u8, 172u8, 123u8, 41u8, 219u8, 119u8, 155u8, 92u8,
6552            ]);
6553            const ANONYMOUS: bool = false;
6554            #[allow(unused_variables)]
6555            #[inline]
6556            fn new(
6557                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6558                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6559            ) -> Self {
6560                Self {
6561                    operator: data.0,
6562                    strategy: data.1,
6563                    maxMagnitude: data.2,
6564                }
6565            }
6566            #[inline]
6567            fn check_signature(
6568                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6569            ) -> alloy_sol_types::Result<()> {
6570                if topics.0 != Self::SIGNATURE_HASH {
6571                    return Err(
6572                        alloy_sol_types::Error::invalid_event_signature_hash(
6573                            Self::SIGNATURE,
6574                            topics.0,
6575                            Self::SIGNATURE_HASH,
6576                        ),
6577                    );
6578                }
6579                Ok(())
6580            }
6581            #[inline]
6582            fn tokenize_body(&self) -> Self::DataToken<'_> {
6583                (
6584                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6585                        &self.operator,
6586                    ),
6587                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6588                        &self.strategy,
6589                    ),
6590                    <alloy::sol_types::sol_data::Uint<
6591                        64,
6592                    > as alloy_sol_types::SolType>::tokenize(&self.maxMagnitude),
6593                )
6594            }
6595            #[inline]
6596            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6597                (Self::SIGNATURE_HASH.into(),)
6598            }
6599            #[inline]
6600            fn encode_topics_raw(
6601                &self,
6602                out: &mut [alloy_sol_types::abi::token::WordToken],
6603            ) -> alloy_sol_types::Result<()> {
6604                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6605                    return Err(alloy_sol_types::Error::Overrun);
6606                }
6607                out[0usize] = alloy_sol_types::abi::token::WordToken(
6608                    Self::SIGNATURE_HASH,
6609                );
6610                Ok(())
6611            }
6612        }
6613        #[automatically_derived]
6614        impl alloy_sol_types::private::IntoLogData for MaxMagnitudeUpdated {
6615            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6616                From::from(self)
6617            }
6618            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6619                From::from(&self)
6620            }
6621        }
6622        #[automatically_derived]
6623        impl From<&MaxMagnitudeUpdated> for alloy_sol_types::private::LogData {
6624            #[inline]
6625            fn from(this: &MaxMagnitudeUpdated) -> alloy_sol_types::private::LogData {
6626                alloy_sol_types::SolEvent::encode_log_data(this)
6627            }
6628        }
6629    };
6630    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6631    /**Event with signature `OperatorAddedToOperatorSet(address,(address,uint32))` and selector `0x43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e`.
6632```solidity
6633event OperatorAddedToOperatorSet(address indexed operator, OperatorSet operatorSet);
6634```*/
6635    #[allow(
6636        non_camel_case_types,
6637        non_snake_case,
6638        clippy::pub_underscore_fields,
6639        clippy::style
6640    )]
6641    #[derive(Clone)]
6642    pub struct OperatorAddedToOperatorSet {
6643        #[allow(missing_docs)]
6644        pub operator: alloy::sol_types::private::Address,
6645        #[allow(missing_docs)]
6646        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
6647    }
6648    #[allow(
6649        non_camel_case_types,
6650        non_snake_case,
6651        clippy::pub_underscore_fields,
6652        clippy::style
6653    )]
6654    const _: () = {
6655        use alloy::sol_types as alloy_sol_types;
6656        #[automatically_derived]
6657        impl alloy_sol_types::SolEvent for OperatorAddedToOperatorSet {
6658            type DataTuple<'a> = (OperatorSet,);
6659            type DataToken<'a> = <Self::DataTuple<
6660                'a,
6661            > as alloy_sol_types::SolType>::Token<'a>;
6662            type TopicList = (
6663                alloy_sol_types::sol_data::FixedBytes<32>,
6664                alloy::sol_types::sol_data::Address,
6665            );
6666            const SIGNATURE: &'static str = "OperatorAddedToOperatorSet(address,(address,uint32))";
6667            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6668                67u8, 35u8, 46u8, 223u8, 144u8, 113u8, 117u8, 61u8, 35u8, 33u8, 229u8,
6669                250u8, 126u8, 1u8, 131u8, 99u8, 238u8, 36u8, 142u8, 95u8, 33u8, 66u8,
6670                230u8, 192u8, 142u8, 221u8, 50u8, 101u8, 191u8, 180u8, 137u8, 94u8,
6671            ]);
6672            const ANONYMOUS: bool = false;
6673            #[allow(unused_variables)]
6674            #[inline]
6675            fn new(
6676                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6677                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6678            ) -> Self {
6679                Self {
6680                    operator: topics.1,
6681                    operatorSet: data.0,
6682                }
6683            }
6684            #[inline]
6685            fn check_signature(
6686                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6687            ) -> alloy_sol_types::Result<()> {
6688                if topics.0 != Self::SIGNATURE_HASH {
6689                    return Err(
6690                        alloy_sol_types::Error::invalid_event_signature_hash(
6691                            Self::SIGNATURE,
6692                            topics.0,
6693                            Self::SIGNATURE_HASH,
6694                        ),
6695                    );
6696                }
6697                Ok(())
6698            }
6699            #[inline]
6700            fn tokenize_body(&self) -> Self::DataToken<'_> {
6701                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
6702            }
6703            #[inline]
6704            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6705                (Self::SIGNATURE_HASH.into(), self.operator.clone())
6706            }
6707            #[inline]
6708            fn encode_topics_raw(
6709                &self,
6710                out: &mut [alloy_sol_types::abi::token::WordToken],
6711            ) -> alloy_sol_types::Result<()> {
6712                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6713                    return Err(alloy_sol_types::Error::Overrun);
6714                }
6715                out[0usize] = alloy_sol_types::abi::token::WordToken(
6716                    Self::SIGNATURE_HASH,
6717                );
6718                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
6719                    &self.operator,
6720                );
6721                Ok(())
6722            }
6723        }
6724        #[automatically_derived]
6725        impl alloy_sol_types::private::IntoLogData for OperatorAddedToOperatorSet {
6726            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6727                From::from(self)
6728            }
6729            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6730                From::from(&self)
6731            }
6732        }
6733        #[automatically_derived]
6734        impl From<&OperatorAddedToOperatorSet> for alloy_sol_types::private::LogData {
6735            #[inline]
6736            fn from(
6737                this: &OperatorAddedToOperatorSet,
6738            ) -> alloy_sol_types::private::LogData {
6739                alloy_sol_types::SolEvent::encode_log_data(this)
6740            }
6741        }
6742    };
6743    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6744    /**Event with signature `OperatorRemovedFromOperatorSet(address,(address,uint32))` and selector `0xad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe`.
6745```solidity
6746event OperatorRemovedFromOperatorSet(address indexed operator, OperatorSet operatorSet);
6747```*/
6748    #[allow(
6749        non_camel_case_types,
6750        non_snake_case,
6751        clippy::pub_underscore_fields,
6752        clippy::style
6753    )]
6754    #[derive(Clone)]
6755    pub struct OperatorRemovedFromOperatorSet {
6756        #[allow(missing_docs)]
6757        pub operator: alloy::sol_types::private::Address,
6758        #[allow(missing_docs)]
6759        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
6760    }
6761    #[allow(
6762        non_camel_case_types,
6763        non_snake_case,
6764        clippy::pub_underscore_fields,
6765        clippy::style
6766    )]
6767    const _: () = {
6768        use alloy::sol_types as alloy_sol_types;
6769        #[automatically_derived]
6770        impl alloy_sol_types::SolEvent for OperatorRemovedFromOperatorSet {
6771            type DataTuple<'a> = (OperatorSet,);
6772            type DataToken<'a> = <Self::DataTuple<
6773                'a,
6774            > as alloy_sol_types::SolType>::Token<'a>;
6775            type TopicList = (
6776                alloy_sol_types::sol_data::FixedBytes<32>,
6777                alloy::sol_types::sol_data::Address,
6778            );
6779            const SIGNATURE: &'static str = "OperatorRemovedFromOperatorSet(address,(address,uint32))";
6780            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6781                173u8, 52u8, 195u8, 7u8, 11u8, 225u8, 223u8, 251u8, 202u8, 164u8, 153u8,
6782                208u8, 0u8, 186u8, 43u8, 141u8, 152u8, 72u8, 174u8, 252u8, 172u8, 48u8,
6783                89u8, 223u8, 36u8, 93u8, 217u8, 92u8, 78u8, 206u8, 20u8, 254u8,
6784            ]);
6785            const ANONYMOUS: bool = false;
6786            #[allow(unused_variables)]
6787            #[inline]
6788            fn new(
6789                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6790                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6791            ) -> Self {
6792                Self {
6793                    operator: topics.1,
6794                    operatorSet: data.0,
6795                }
6796            }
6797            #[inline]
6798            fn check_signature(
6799                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6800            ) -> alloy_sol_types::Result<()> {
6801                if topics.0 != Self::SIGNATURE_HASH {
6802                    return Err(
6803                        alloy_sol_types::Error::invalid_event_signature_hash(
6804                            Self::SIGNATURE,
6805                            topics.0,
6806                            Self::SIGNATURE_HASH,
6807                        ),
6808                    );
6809                }
6810                Ok(())
6811            }
6812            #[inline]
6813            fn tokenize_body(&self) -> Self::DataToken<'_> {
6814                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
6815            }
6816            #[inline]
6817            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6818                (Self::SIGNATURE_HASH.into(), self.operator.clone())
6819            }
6820            #[inline]
6821            fn encode_topics_raw(
6822                &self,
6823                out: &mut [alloy_sol_types::abi::token::WordToken],
6824            ) -> alloy_sol_types::Result<()> {
6825                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6826                    return Err(alloy_sol_types::Error::Overrun);
6827                }
6828                out[0usize] = alloy_sol_types::abi::token::WordToken(
6829                    Self::SIGNATURE_HASH,
6830                );
6831                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
6832                    &self.operator,
6833                );
6834                Ok(())
6835            }
6836        }
6837        #[automatically_derived]
6838        impl alloy_sol_types::private::IntoLogData for OperatorRemovedFromOperatorSet {
6839            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6840                From::from(self)
6841            }
6842            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6843                From::from(&self)
6844            }
6845        }
6846        #[automatically_derived]
6847        impl From<&OperatorRemovedFromOperatorSet>
6848        for alloy_sol_types::private::LogData {
6849            #[inline]
6850            fn from(
6851                this: &OperatorRemovedFromOperatorSet,
6852            ) -> alloy_sol_types::private::LogData {
6853                alloy_sol_types::SolEvent::encode_log_data(this)
6854            }
6855        }
6856    };
6857    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6858    /**Event with signature `OperatorSetCreated((address,uint32))` and selector `0x31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c`.
6859```solidity
6860event OperatorSetCreated(OperatorSet operatorSet);
6861```*/
6862    #[allow(
6863        non_camel_case_types,
6864        non_snake_case,
6865        clippy::pub_underscore_fields,
6866        clippy::style
6867    )]
6868    #[derive(Clone)]
6869    pub struct OperatorSetCreated {
6870        #[allow(missing_docs)]
6871        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
6872    }
6873    #[allow(
6874        non_camel_case_types,
6875        non_snake_case,
6876        clippy::pub_underscore_fields,
6877        clippy::style
6878    )]
6879    const _: () = {
6880        use alloy::sol_types as alloy_sol_types;
6881        #[automatically_derived]
6882        impl alloy_sol_types::SolEvent for OperatorSetCreated {
6883            type DataTuple<'a> = (OperatorSet,);
6884            type DataToken<'a> = <Self::DataTuple<
6885                'a,
6886            > as alloy_sol_types::SolType>::Token<'a>;
6887            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6888            const SIGNATURE: &'static str = "OperatorSetCreated((address,uint32))";
6889            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6890                49u8, 98u8, 146u8, 133u8, 234u8, 210u8, 51u8, 90u8, 224u8, 147u8, 63u8,
6891                134u8, 237u8, 42u8, 230u8, 51u8, 33u8, 247u8, 175u8, 119u8, 180u8, 230u8,
6892                234u8, 171u8, 196u8, 44u8, 5u8, 120u8, 128u8, 151u8, 126u8, 108u8,
6893            ]);
6894            const ANONYMOUS: bool = false;
6895            #[allow(unused_variables)]
6896            #[inline]
6897            fn new(
6898                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6899                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6900            ) -> Self {
6901                Self { operatorSet: data.0 }
6902            }
6903            #[inline]
6904            fn check_signature(
6905                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6906            ) -> alloy_sol_types::Result<()> {
6907                if topics.0 != Self::SIGNATURE_HASH {
6908                    return Err(
6909                        alloy_sol_types::Error::invalid_event_signature_hash(
6910                            Self::SIGNATURE,
6911                            topics.0,
6912                            Self::SIGNATURE_HASH,
6913                        ),
6914                    );
6915                }
6916                Ok(())
6917            }
6918            #[inline]
6919            fn tokenize_body(&self) -> Self::DataToken<'_> {
6920                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
6921            }
6922            #[inline]
6923            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6924                (Self::SIGNATURE_HASH.into(),)
6925            }
6926            #[inline]
6927            fn encode_topics_raw(
6928                &self,
6929                out: &mut [alloy_sol_types::abi::token::WordToken],
6930            ) -> alloy_sol_types::Result<()> {
6931                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6932                    return Err(alloy_sol_types::Error::Overrun);
6933                }
6934                out[0usize] = alloy_sol_types::abi::token::WordToken(
6935                    Self::SIGNATURE_HASH,
6936                );
6937                Ok(())
6938            }
6939        }
6940        #[automatically_derived]
6941        impl alloy_sol_types::private::IntoLogData for OperatorSetCreated {
6942            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6943                From::from(self)
6944            }
6945            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6946                From::from(&self)
6947            }
6948        }
6949        #[automatically_derived]
6950        impl From<&OperatorSetCreated> for alloy_sol_types::private::LogData {
6951            #[inline]
6952            fn from(this: &OperatorSetCreated) -> alloy_sol_types::private::LogData {
6953                alloy_sol_types::SolEvent::encode_log_data(this)
6954            }
6955        }
6956    };
6957    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6958    /**Event with signature `OperatorSlashed(address,(address,uint32),address[],uint256[],string)` and selector `0x80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe5`.
6959```solidity
6960event OperatorSlashed(address operator, OperatorSet operatorSet, address[] strategies, uint256[] wadSlashed, string description);
6961```*/
6962    #[allow(
6963        non_camel_case_types,
6964        non_snake_case,
6965        clippy::pub_underscore_fields,
6966        clippy::style
6967    )]
6968    #[derive(Clone)]
6969    pub struct OperatorSlashed {
6970        #[allow(missing_docs)]
6971        pub operator: alloy::sol_types::private::Address,
6972        #[allow(missing_docs)]
6973        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
6974        #[allow(missing_docs)]
6975        pub strategies: alloy::sol_types::private::Vec<
6976            alloy::sol_types::private::Address,
6977        >,
6978        #[allow(missing_docs)]
6979        pub wadSlashed: alloy::sol_types::private::Vec<
6980            alloy::sol_types::private::primitives::aliases::U256,
6981        >,
6982        #[allow(missing_docs)]
6983        pub description: alloy::sol_types::private::String,
6984    }
6985    #[allow(
6986        non_camel_case_types,
6987        non_snake_case,
6988        clippy::pub_underscore_fields,
6989        clippy::style
6990    )]
6991    const _: () = {
6992        use alloy::sol_types as alloy_sol_types;
6993        #[automatically_derived]
6994        impl alloy_sol_types::SolEvent for OperatorSlashed {
6995            type DataTuple<'a> = (
6996                alloy::sol_types::sol_data::Address,
6997                OperatorSet,
6998                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
6999                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
7000                alloy::sol_types::sol_data::String,
7001            );
7002            type DataToken<'a> = <Self::DataTuple<
7003                'a,
7004            > as alloy_sol_types::SolType>::Token<'a>;
7005            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
7006            const SIGNATURE: &'static str = "OperatorSlashed(address,(address,uint32),address[],uint256[],string)";
7007            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7008                128u8, 150u8, 154u8, 210u8, 148u8, 40u8, 214u8, 121u8, 126u8, 231u8,
7009                170u8, 208u8, 132u8, 249u8, 228u8, 164u8, 42u8, 130u8, 252u8, 80u8,
7010                109u8, 205u8, 44u8, 163u8, 182u8, 251u8, 67u8, 31u8, 133u8, 204u8, 235u8,
7011                229u8,
7012            ]);
7013            const ANONYMOUS: bool = false;
7014            #[allow(unused_variables)]
7015            #[inline]
7016            fn new(
7017                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7018                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7019            ) -> Self {
7020                Self {
7021                    operator: data.0,
7022                    operatorSet: data.1,
7023                    strategies: data.2,
7024                    wadSlashed: data.3,
7025                    description: data.4,
7026                }
7027            }
7028            #[inline]
7029            fn check_signature(
7030                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7031            ) -> alloy_sol_types::Result<()> {
7032                if topics.0 != Self::SIGNATURE_HASH {
7033                    return Err(
7034                        alloy_sol_types::Error::invalid_event_signature_hash(
7035                            Self::SIGNATURE,
7036                            topics.0,
7037                            Self::SIGNATURE_HASH,
7038                        ),
7039                    );
7040                }
7041                Ok(())
7042            }
7043            #[inline]
7044            fn tokenize_body(&self) -> Self::DataToken<'_> {
7045                (
7046                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7047                        &self.operator,
7048                    ),
7049                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
7050                        &self.operatorSet,
7051                    ),
7052                    <alloy::sol_types::sol_data::Array<
7053                        alloy::sol_types::sol_data::Address,
7054                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
7055                    <alloy::sol_types::sol_data::Array<
7056                        alloy::sol_types::sol_data::Uint<256>,
7057                    > as alloy_sol_types::SolType>::tokenize(&self.wadSlashed),
7058                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
7059                        &self.description,
7060                    ),
7061                )
7062            }
7063            #[inline]
7064            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7065                (Self::SIGNATURE_HASH.into(),)
7066            }
7067            #[inline]
7068            fn encode_topics_raw(
7069                &self,
7070                out: &mut [alloy_sol_types::abi::token::WordToken],
7071            ) -> alloy_sol_types::Result<()> {
7072                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7073                    return Err(alloy_sol_types::Error::Overrun);
7074                }
7075                out[0usize] = alloy_sol_types::abi::token::WordToken(
7076                    Self::SIGNATURE_HASH,
7077                );
7078                Ok(())
7079            }
7080        }
7081        #[automatically_derived]
7082        impl alloy_sol_types::private::IntoLogData for OperatorSlashed {
7083            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7084                From::from(self)
7085            }
7086            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7087                From::from(&self)
7088            }
7089        }
7090        #[automatically_derived]
7091        impl From<&OperatorSlashed> for alloy_sol_types::private::LogData {
7092            #[inline]
7093            fn from(this: &OperatorSlashed) -> alloy_sol_types::private::LogData {
7094                alloy_sol_types::SolEvent::encode_log_data(this)
7095            }
7096        }
7097    };
7098    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7099    /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
7100```solidity
7101event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
7102```*/
7103    #[allow(
7104        non_camel_case_types,
7105        non_snake_case,
7106        clippy::pub_underscore_fields,
7107        clippy::style
7108    )]
7109    #[derive(Clone)]
7110    pub struct OwnershipTransferred {
7111        #[allow(missing_docs)]
7112        pub previousOwner: alloy::sol_types::private::Address,
7113        #[allow(missing_docs)]
7114        pub newOwner: alloy::sol_types::private::Address,
7115    }
7116    #[allow(
7117        non_camel_case_types,
7118        non_snake_case,
7119        clippy::pub_underscore_fields,
7120        clippy::style
7121    )]
7122    const _: () = {
7123        use alloy::sol_types as alloy_sol_types;
7124        #[automatically_derived]
7125        impl alloy_sol_types::SolEvent for OwnershipTransferred {
7126            type DataTuple<'a> = ();
7127            type DataToken<'a> = <Self::DataTuple<
7128                'a,
7129            > as alloy_sol_types::SolType>::Token<'a>;
7130            type TopicList = (
7131                alloy_sol_types::sol_data::FixedBytes<32>,
7132                alloy::sol_types::sol_data::Address,
7133                alloy::sol_types::sol_data::Address,
7134            );
7135            const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
7136            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7137                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
7138                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
7139                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
7140            ]);
7141            const ANONYMOUS: bool = false;
7142            #[allow(unused_variables)]
7143            #[inline]
7144            fn new(
7145                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7146                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7147            ) -> Self {
7148                Self {
7149                    previousOwner: topics.1,
7150                    newOwner: topics.2,
7151                }
7152            }
7153            #[inline]
7154            fn check_signature(
7155                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7156            ) -> alloy_sol_types::Result<()> {
7157                if topics.0 != Self::SIGNATURE_HASH {
7158                    return Err(
7159                        alloy_sol_types::Error::invalid_event_signature_hash(
7160                            Self::SIGNATURE,
7161                            topics.0,
7162                            Self::SIGNATURE_HASH,
7163                        ),
7164                    );
7165                }
7166                Ok(())
7167            }
7168            #[inline]
7169            fn tokenize_body(&self) -> Self::DataToken<'_> {
7170                ()
7171            }
7172            #[inline]
7173            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7174                (
7175                    Self::SIGNATURE_HASH.into(),
7176                    self.previousOwner.clone(),
7177                    self.newOwner.clone(),
7178                )
7179            }
7180            #[inline]
7181            fn encode_topics_raw(
7182                &self,
7183                out: &mut [alloy_sol_types::abi::token::WordToken],
7184            ) -> alloy_sol_types::Result<()> {
7185                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7186                    return Err(alloy_sol_types::Error::Overrun);
7187                }
7188                out[0usize] = alloy_sol_types::abi::token::WordToken(
7189                    Self::SIGNATURE_HASH,
7190                );
7191                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7192                    &self.previousOwner,
7193                );
7194                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7195                    &self.newOwner,
7196                );
7197                Ok(())
7198            }
7199        }
7200        #[automatically_derived]
7201        impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
7202            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7203                From::from(self)
7204            }
7205            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7206                From::from(&self)
7207            }
7208        }
7209        #[automatically_derived]
7210        impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
7211            #[inline]
7212            fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
7213                alloy_sol_types::SolEvent::encode_log_data(this)
7214            }
7215        }
7216    };
7217    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7218    /**Event with signature `Paused(address,uint256)` and selector `0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d`.
7219```solidity
7220event Paused(address indexed account, uint256 newPausedStatus);
7221```*/
7222    #[allow(
7223        non_camel_case_types,
7224        non_snake_case,
7225        clippy::pub_underscore_fields,
7226        clippy::style
7227    )]
7228    #[derive(Clone)]
7229    pub struct Paused {
7230        #[allow(missing_docs)]
7231        pub account: alloy::sol_types::private::Address,
7232        #[allow(missing_docs)]
7233        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
7234    }
7235    #[allow(
7236        non_camel_case_types,
7237        non_snake_case,
7238        clippy::pub_underscore_fields,
7239        clippy::style
7240    )]
7241    const _: () = {
7242        use alloy::sol_types as alloy_sol_types;
7243        #[automatically_derived]
7244        impl alloy_sol_types::SolEvent for Paused {
7245            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7246            type DataToken<'a> = <Self::DataTuple<
7247                'a,
7248            > as alloy_sol_types::SolType>::Token<'a>;
7249            type TopicList = (
7250                alloy_sol_types::sol_data::FixedBytes<32>,
7251                alloy::sol_types::sol_data::Address,
7252            );
7253            const SIGNATURE: &'static str = "Paused(address,uint256)";
7254            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7255                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
7256                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
7257                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
7258            ]);
7259            const ANONYMOUS: bool = false;
7260            #[allow(unused_variables)]
7261            #[inline]
7262            fn new(
7263                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7264                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7265            ) -> Self {
7266                Self {
7267                    account: topics.1,
7268                    newPausedStatus: data.0,
7269                }
7270            }
7271            #[inline]
7272            fn check_signature(
7273                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7274            ) -> alloy_sol_types::Result<()> {
7275                if topics.0 != Self::SIGNATURE_HASH {
7276                    return Err(
7277                        alloy_sol_types::Error::invalid_event_signature_hash(
7278                            Self::SIGNATURE,
7279                            topics.0,
7280                            Self::SIGNATURE_HASH,
7281                        ),
7282                    );
7283                }
7284                Ok(())
7285            }
7286            #[inline]
7287            fn tokenize_body(&self) -> Self::DataToken<'_> {
7288                (
7289                    <alloy::sol_types::sol_data::Uint<
7290                        256,
7291                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
7292                )
7293            }
7294            #[inline]
7295            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7296                (Self::SIGNATURE_HASH.into(), self.account.clone())
7297            }
7298            #[inline]
7299            fn encode_topics_raw(
7300                &self,
7301                out: &mut [alloy_sol_types::abi::token::WordToken],
7302            ) -> alloy_sol_types::Result<()> {
7303                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7304                    return Err(alloy_sol_types::Error::Overrun);
7305                }
7306                out[0usize] = alloy_sol_types::abi::token::WordToken(
7307                    Self::SIGNATURE_HASH,
7308                );
7309                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7310                    &self.account,
7311                );
7312                Ok(())
7313            }
7314        }
7315        #[automatically_derived]
7316        impl alloy_sol_types::private::IntoLogData for Paused {
7317            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7318                From::from(self)
7319            }
7320            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7321                From::from(&self)
7322            }
7323        }
7324        #[automatically_derived]
7325        impl From<&Paused> for alloy_sol_types::private::LogData {
7326            #[inline]
7327            fn from(this: &Paused) -> alloy_sol_types::private::LogData {
7328                alloy_sol_types::SolEvent::encode_log_data(this)
7329            }
7330        }
7331    };
7332    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7333    /**Event with signature `StrategyAddedToOperatorSet((address,uint32),address)` and selector `0x7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b`.
7334```solidity
7335event StrategyAddedToOperatorSet(OperatorSet operatorSet, address strategy);
7336```*/
7337    #[allow(
7338        non_camel_case_types,
7339        non_snake_case,
7340        clippy::pub_underscore_fields,
7341        clippy::style
7342    )]
7343    #[derive(Clone)]
7344    pub struct StrategyAddedToOperatorSet {
7345        #[allow(missing_docs)]
7346        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
7347        #[allow(missing_docs)]
7348        pub strategy: alloy::sol_types::private::Address,
7349    }
7350    #[allow(
7351        non_camel_case_types,
7352        non_snake_case,
7353        clippy::pub_underscore_fields,
7354        clippy::style
7355    )]
7356    const _: () = {
7357        use alloy::sol_types as alloy_sol_types;
7358        #[automatically_derived]
7359        impl alloy_sol_types::SolEvent for StrategyAddedToOperatorSet {
7360            type DataTuple<'a> = (OperatorSet, alloy::sol_types::sol_data::Address);
7361            type DataToken<'a> = <Self::DataTuple<
7362                'a,
7363            > as alloy_sol_types::SolType>::Token<'a>;
7364            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
7365            const SIGNATURE: &'static str = "StrategyAddedToOperatorSet((address,uint32),address)";
7366            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7367                122u8, 178u8, 96u8, 254u8, 10u8, 241u8, 147u8, 219u8, 95u8, 73u8, 134u8,
7368                119u8, 13u8, 131u8, 27u8, 218u8, 78u8, 164u8, 96u8, 153u8, 220u8, 129u8,
7369                126u8, 139u8, 103u8, 22u8, 220u8, 174u8, 138u8, 248u8, 232u8, 139u8,
7370            ]);
7371            const ANONYMOUS: bool = false;
7372            #[allow(unused_variables)]
7373            #[inline]
7374            fn new(
7375                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7376                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7377            ) -> Self {
7378                Self {
7379                    operatorSet: data.0,
7380                    strategy: data.1,
7381                }
7382            }
7383            #[inline]
7384            fn check_signature(
7385                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7386            ) -> alloy_sol_types::Result<()> {
7387                if topics.0 != Self::SIGNATURE_HASH {
7388                    return Err(
7389                        alloy_sol_types::Error::invalid_event_signature_hash(
7390                            Self::SIGNATURE,
7391                            topics.0,
7392                            Self::SIGNATURE_HASH,
7393                        ),
7394                    );
7395                }
7396                Ok(())
7397            }
7398            #[inline]
7399            fn tokenize_body(&self) -> Self::DataToken<'_> {
7400                (
7401                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
7402                        &self.operatorSet,
7403                    ),
7404                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7405                        &self.strategy,
7406                    ),
7407                )
7408            }
7409            #[inline]
7410            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7411                (Self::SIGNATURE_HASH.into(),)
7412            }
7413            #[inline]
7414            fn encode_topics_raw(
7415                &self,
7416                out: &mut [alloy_sol_types::abi::token::WordToken],
7417            ) -> alloy_sol_types::Result<()> {
7418                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7419                    return Err(alloy_sol_types::Error::Overrun);
7420                }
7421                out[0usize] = alloy_sol_types::abi::token::WordToken(
7422                    Self::SIGNATURE_HASH,
7423                );
7424                Ok(())
7425            }
7426        }
7427        #[automatically_derived]
7428        impl alloy_sol_types::private::IntoLogData for StrategyAddedToOperatorSet {
7429            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7430                From::from(self)
7431            }
7432            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7433                From::from(&self)
7434            }
7435        }
7436        #[automatically_derived]
7437        impl From<&StrategyAddedToOperatorSet> for alloy_sol_types::private::LogData {
7438            #[inline]
7439            fn from(
7440                this: &StrategyAddedToOperatorSet,
7441            ) -> alloy_sol_types::private::LogData {
7442                alloy_sol_types::SolEvent::encode_log_data(this)
7443            }
7444        }
7445    };
7446    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7447    /**Event with signature `StrategyRemovedFromOperatorSet((address,uint32),address)` and selector `0x7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee`.
7448```solidity
7449event StrategyRemovedFromOperatorSet(OperatorSet operatorSet, address strategy);
7450```*/
7451    #[allow(
7452        non_camel_case_types,
7453        non_snake_case,
7454        clippy::pub_underscore_fields,
7455        clippy::style
7456    )]
7457    #[derive(Clone)]
7458    pub struct StrategyRemovedFromOperatorSet {
7459        #[allow(missing_docs)]
7460        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
7461        #[allow(missing_docs)]
7462        pub strategy: alloy::sol_types::private::Address,
7463    }
7464    #[allow(
7465        non_camel_case_types,
7466        non_snake_case,
7467        clippy::pub_underscore_fields,
7468        clippy::style
7469    )]
7470    const _: () = {
7471        use alloy::sol_types as alloy_sol_types;
7472        #[automatically_derived]
7473        impl alloy_sol_types::SolEvent for StrategyRemovedFromOperatorSet {
7474            type DataTuple<'a> = (OperatorSet, alloy::sol_types::sol_data::Address);
7475            type DataToken<'a> = <Self::DataTuple<
7476                'a,
7477            > as alloy_sol_types::SolType>::Token<'a>;
7478            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
7479            const SIGNATURE: &'static str = "StrategyRemovedFromOperatorSet((address,uint32),address)";
7480            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7481                123u8, 75u8, 7u8, 61u8, 128u8, 220u8, 172u8, 85u8, 161u8, 17u8, 119u8,
7482                216u8, 69u8, 154u8, 217u8, 246u8, 100u8, 206u8, 235u8, 145u8, 247u8,
7483                31u8, 39u8, 22u8, 123u8, 177u8, 79u8, 129u8, 82u8, 167u8, 238u8, 238u8,
7484            ]);
7485            const ANONYMOUS: bool = false;
7486            #[allow(unused_variables)]
7487            #[inline]
7488            fn new(
7489                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7490                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7491            ) -> Self {
7492                Self {
7493                    operatorSet: data.0,
7494                    strategy: data.1,
7495                }
7496            }
7497            #[inline]
7498            fn check_signature(
7499                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7500            ) -> alloy_sol_types::Result<()> {
7501                if topics.0 != Self::SIGNATURE_HASH {
7502                    return Err(
7503                        alloy_sol_types::Error::invalid_event_signature_hash(
7504                            Self::SIGNATURE,
7505                            topics.0,
7506                            Self::SIGNATURE_HASH,
7507                        ),
7508                    );
7509                }
7510                Ok(())
7511            }
7512            #[inline]
7513            fn tokenize_body(&self) -> Self::DataToken<'_> {
7514                (
7515                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
7516                        &self.operatorSet,
7517                    ),
7518                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7519                        &self.strategy,
7520                    ),
7521                )
7522            }
7523            #[inline]
7524            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7525                (Self::SIGNATURE_HASH.into(),)
7526            }
7527            #[inline]
7528            fn encode_topics_raw(
7529                &self,
7530                out: &mut [alloy_sol_types::abi::token::WordToken],
7531            ) -> alloy_sol_types::Result<()> {
7532                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7533                    return Err(alloy_sol_types::Error::Overrun);
7534                }
7535                out[0usize] = alloy_sol_types::abi::token::WordToken(
7536                    Self::SIGNATURE_HASH,
7537                );
7538                Ok(())
7539            }
7540        }
7541        #[automatically_derived]
7542        impl alloy_sol_types::private::IntoLogData for StrategyRemovedFromOperatorSet {
7543            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7544                From::from(self)
7545            }
7546            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7547                From::from(&self)
7548            }
7549        }
7550        #[automatically_derived]
7551        impl From<&StrategyRemovedFromOperatorSet>
7552        for alloy_sol_types::private::LogData {
7553            #[inline]
7554            fn from(
7555                this: &StrategyRemovedFromOperatorSet,
7556            ) -> alloy_sol_types::private::LogData {
7557                alloy_sol_types::SolEvent::encode_log_data(this)
7558            }
7559        }
7560    };
7561    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7562    /**Event with signature `Unpaused(address,uint256)` and selector `0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c`.
7563```solidity
7564event Unpaused(address indexed account, uint256 newPausedStatus);
7565```*/
7566    #[allow(
7567        non_camel_case_types,
7568        non_snake_case,
7569        clippy::pub_underscore_fields,
7570        clippy::style
7571    )]
7572    #[derive(Clone)]
7573    pub struct Unpaused {
7574        #[allow(missing_docs)]
7575        pub account: alloy::sol_types::private::Address,
7576        #[allow(missing_docs)]
7577        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
7578    }
7579    #[allow(
7580        non_camel_case_types,
7581        non_snake_case,
7582        clippy::pub_underscore_fields,
7583        clippy::style
7584    )]
7585    const _: () = {
7586        use alloy::sol_types as alloy_sol_types;
7587        #[automatically_derived]
7588        impl alloy_sol_types::SolEvent for Unpaused {
7589            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7590            type DataToken<'a> = <Self::DataTuple<
7591                'a,
7592            > as alloy_sol_types::SolType>::Token<'a>;
7593            type TopicList = (
7594                alloy_sol_types::sol_data::FixedBytes<32>,
7595                alloy::sol_types::sol_data::Address,
7596            );
7597            const SIGNATURE: &'static str = "Unpaused(address,uint256)";
7598            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7599                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
7600                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
7601                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
7602            ]);
7603            const ANONYMOUS: bool = false;
7604            #[allow(unused_variables)]
7605            #[inline]
7606            fn new(
7607                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7608                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7609            ) -> Self {
7610                Self {
7611                    account: topics.1,
7612                    newPausedStatus: data.0,
7613                }
7614            }
7615            #[inline]
7616            fn check_signature(
7617                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7618            ) -> alloy_sol_types::Result<()> {
7619                if topics.0 != Self::SIGNATURE_HASH {
7620                    return Err(
7621                        alloy_sol_types::Error::invalid_event_signature_hash(
7622                            Self::SIGNATURE,
7623                            topics.0,
7624                            Self::SIGNATURE_HASH,
7625                        ),
7626                    );
7627                }
7628                Ok(())
7629            }
7630            #[inline]
7631            fn tokenize_body(&self) -> Self::DataToken<'_> {
7632                (
7633                    <alloy::sol_types::sol_data::Uint<
7634                        256,
7635                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
7636                )
7637            }
7638            #[inline]
7639            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7640                (Self::SIGNATURE_HASH.into(), self.account.clone())
7641            }
7642            #[inline]
7643            fn encode_topics_raw(
7644                &self,
7645                out: &mut [alloy_sol_types::abi::token::WordToken],
7646            ) -> alloy_sol_types::Result<()> {
7647                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7648                    return Err(alloy_sol_types::Error::Overrun);
7649                }
7650                out[0usize] = alloy_sol_types::abi::token::WordToken(
7651                    Self::SIGNATURE_HASH,
7652                );
7653                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7654                    &self.account,
7655                );
7656                Ok(())
7657            }
7658        }
7659        #[automatically_derived]
7660        impl alloy_sol_types::private::IntoLogData for Unpaused {
7661            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7662                From::from(self)
7663            }
7664            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7665                From::from(&self)
7666            }
7667        }
7668        #[automatically_derived]
7669        impl From<&Unpaused> for alloy_sol_types::private::LogData {
7670            #[inline]
7671            fn from(this: &Unpaused) -> alloy_sol_types::private::LogData {
7672                alloy_sol_types::SolEvent::encode_log_data(this)
7673            }
7674        }
7675    };
7676    /**Constructor`.
7677```solidity
7678constructor(address _delegation, address _pauserRegistry, address _permissionController, uint32 _DEALLOCATION_DELAY, uint32 _ALLOCATION_CONFIGURATION_DELAY, string _version);
7679```*/
7680    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7681    #[derive(Clone)]
7682    pub struct constructorCall {
7683        #[allow(missing_docs)]
7684        pub _delegation: alloy::sol_types::private::Address,
7685        #[allow(missing_docs)]
7686        pub _pauserRegistry: alloy::sol_types::private::Address,
7687        #[allow(missing_docs)]
7688        pub _permissionController: alloy::sol_types::private::Address,
7689        #[allow(missing_docs)]
7690        pub _DEALLOCATION_DELAY: u32,
7691        #[allow(missing_docs)]
7692        pub _ALLOCATION_CONFIGURATION_DELAY: u32,
7693        #[allow(missing_docs)]
7694        pub _version: alloy::sol_types::private::String,
7695    }
7696    const _: () = {
7697        use alloy::sol_types as alloy_sol_types;
7698        {
7699            #[doc(hidden)]
7700            type UnderlyingSolTuple<'a> = (
7701                alloy::sol_types::sol_data::Address,
7702                alloy::sol_types::sol_data::Address,
7703                alloy::sol_types::sol_data::Address,
7704                alloy::sol_types::sol_data::Uint<32>,
7705                alloy::sol_types::sol_data::Uint<32>,
7706                alloy::sol_types::sol_data::String,
7707            );
7708            #[doc(hidden)]
7709            type UnderlyingRustTuple<'a> = (
7710                alloy::sol_types::private::Address,
7711                alloy::sol_types::private::Address,
7712                alloy::sol_types::private::Address,
7713                u32,
7714                u32,
7715                alloy::sol_types::private::String,
7716            );
7717            #[cfg(test)]
7718            #[allow(dead_code, unreachable_patterns)]
7719            fn _type_assertion(
7720                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7721            ) {
7722                match _t {
7723                    alloy_sol_types::private::AssertTypeEq::<
7724                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7725                    >(_) => {}
7726                }
7727            }
7728            #[automatically_derived]
7729            #[doc(hidden)]
7730            impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
7731                fn from(value: constructorCall) -> Self {
7732                    (
7733                        value._delegation,
7734                        value._pauserRegistry,
7735                        value._permissionController,
7736                        value._DEALLOCATION_DELAY,
7737                        value._ALLOCATION_CONFIGURATION_DELAY,
7738                        value._version,
7739                    )
7740                }
7741            }
7742            #[automatically_derived]
7743            #[doc(hidden)]
7744            impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
7745                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7746                    Self {
7747                        _delegation: tuple.0,
7748                        _pauserRegistry: tuple.1,
7749                        _permissionController: tuple.2,
7750                        _DEALLOCATION_DELAY: tuple.3,
7751                        _ALLOCATION_CONFIGURATION_DELAY: tuple.4,
7752                        _version: tuple.5,
7753                    }
7754                }
7755            }
7756        }
7757        #[automatically_derived]
7758        impl alloy_sol_types::SolConstructor for constructorCall {
7759            type Parameters<'a> = (
7760                alloy::sol_types::sol_data::Address,
7761                alloy::sol_types::sol_data::Address,
7762                alloy::sol_types::sol_data::Address,
7763                alloy::sol_types::sol_data::Uint<32>,
7764                alloy::sol_types::sol_data::Uint<32>,
7765                alloy::sol_types::sol_data::String,
7766            );
7767            type Token<'a> = <Self::Parameters<
7768                'a,
7769            > as alloy_sol_types::SolType>::Token<'a>;
7770            #[inline]
7771            fn new<'a>(
7772                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7773            ) -> Self {
7774                tuple.into()
7775            }
7776            #[inline]
7777            fn tokenize(&self) -> Self::Token<'_> {
7778                (
7779                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7780                        &self._delegation,
7781                    ),
7782                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7783                        &self._pauserRegistry,
7784                    ),
7785                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7786                        &self._permissionController,
7787                    ),
7788                    <alloy::sol_types::sol_data::Uint<
7789                        32,
7790                    > as alloy_sol_types::SolType>::tokenize(&self._DEALLOCATION_DELAY),
7791                    <alloy::sol_types::sol_data::Uint<
7792                        32,
7793                    > as alloy_sol_types::SolType>::tokenize(
7794                        &self._ALLOCATION_CONFIGURATION_DELAY,
7795                    ),
7796                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
7797                        &self._version,
7798                    ),
7799                )
7800            }
7801        }
7802    };
7803    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7804    /**Function with signature `ALLOCATION_CONFIGURATION_DELAY()` and selector `0x7bc1ef61`.
7805```solidity
7806function ALLOCATION_CONFIGURATION_DELAY() external view returns (uint32);
7807```*/
7808    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7809    #[derive(Clone)]
7810    pub struct ALLOCATION_CONFIGURATION_DELAYCall {}
7811    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7812    ///Container type for the return parameters of the [`ALLOCATION_CONFIGURATION_DELAY()`](ALLOCATION_CONFIGURATION_DELAYCall) function.
7813    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7814    #[derive(Clone)]
7815    pub struct ALLOCATION_CONFIGURATION_DELAYReturn {
7816        #[allow(missing_docs)]
7817        pub _0: u32,
7818    }
7819    #[allow(
7820        non_camel_case_types,
7821        non_snake_case,
7822        clippy::pub_underscore_fields,
7823        clippy::style
7824    )]
7825    const _: () = {
7826        use alloy::sol_types as alloy_sol_types;
7827        {
7828            #[doc(hidden)]
7829            type UnderlyingSolTuple<'a> = ();
7830            #[doc(hidden)]
7831            type UnderlyingRustTuple<'a> = ();
7832            #[cfg(test)]
7833            #[allow(dead_code, unreachable_patterns)]
7834            fn _type_assertion(
7835                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7836            ) {
7837                match _t {
7838                    alloy_sol_types::private::AssertTypeEq::<
7839                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7840                    >(_) => {}
7841                }
7842            }
7843            #[automatically_derived]
7844            #[doc(hidden)]
7845            impl ::core::convert::From<ALLOCATION_CONFIGURATION_DELAYCall>
7846            for UnderlyingRustTuple<'_> {
7847                fn from(value: ALLOCATION_CONFIGURATION_DELAYCall) -> Self {
7848                    ()
7849                }
7850            }
7851            #[automatically_derived]
7852            #[doc(hidden)]
7853            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7854            for ALLOCATION_CONFIGURATION_DELAYCall {
7855                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7856                    Self {}
7857                }
7858            }
7859        }
7860        {
7861            #[doc(hidden)]
7862            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,);
7863            #[doc(hidden)]
7864            type UnderlyingRustTuple<'a> = (u32,);
7865            #[cfg(test)]
7866            #[allow(dead_code, unreachable_patterns)]
7867            fn _type_assertion(
7868                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7869            ) {
7870                match _t {
7871                    alloy_sol_types::private::AssertTypeEq::<
7872                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7873                    >(_) => {}
7874                }
7875            }
7876            #[automatically_derived]
7877            #[doc(hidden)]
7878            impl ::core::convert::From<ALLOCATION_CONFIGURATION_DELAYReturn>
7879            for UnderlyingRustTuple<'_> {
7880                fn from(value: ALLOCATION_CONFIGURATION_DELAYReturn) -> Self {
7881                    (value._0,)
7882                }
7883            }
7884            #[automatically_derived]
7885            #[doc(hidden)]
7886            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7887            for ALLOCATION_CONFIGURATION_DELAYReturn {
7888                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7889                    Self { _0: tuple.0 }
7890                }
7891            }
7892        }
7893        #[automatically_derived]
7894        impl alloy_sol_types::SolCall for ALLOCATION_CONFIGURATION_DELAYCall {
7895            type Parameters<'a> = ();
7896            type Token<'a> = <Self::Parameters<
7897                'a,
7898            > as alloy_sol_types::SolType>::Token<'a>;
7899            type Return = ALLOCATION_CONFIGURATION_DELAYReturn;
7900            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,);
7901            type ReturnToken<'a> = <Self::ReturnTuple<
7902                'a,
7903            > as alloy_sol_types::SolType>::Token<'a>;
7904            const SIGNATURE: &'static str = "ALLOCATION_CONFIGURATION_DELAY()";
7905            const SELECTOR: [u8; 4] = [123u8, 193u8, 239u8, 97u8];
7906            #[inline]
7907            fn new<'a>(
7908                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7909            ) -> Self {
7910                tuple.into()
7911            }
7912            #[inline]
7913            fn tokenize(&self) -> Self::Token<'_> {
7914                ()
7915            }
7916            #[inline]
7917            fn abi_decode_returns(
7918                data: &[u8],
7919                validate: bool,
7920            ) -> alloy_sol_types::Result<Self::Return> {
7921                <Self::ReturnTuple<
7922                    '_,
7923                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7924                    .map(Into::into)
7925            }
7926        }
7927    };
7928    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7929    /**Function with signature `DEALLOCATION_DELAY()` and selector `0x2981eb77`.
7930```solidity
7931function DEALLOCATION_DELAY() external view returns (uint32);
7932```*/
7933    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7934    #[derive(Clone)]
7935    pub struct DEALLOCATION_DELAYCall {}
7936    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7937    ///Container type for the return parameters of the [`DEALLOCATION_DELAY()`](DEALLOCATION_DELAYCall) function.
7938    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7939    #[derive(Clone)]
7940    pub struct DEALLOCATION_DELAYReturn {
7941        #[allow(missing_docs)]
7942        pub _0: u32,
7943    }
7944    #[allow(
7945        non_camel_case_types,
7946        non_snake_case,
7947        clippy::pub_underscore_fields,
7948        clippy::style
7949    )]
7950    const _: () = {
7951        use alloy::sol_types as alloy_sol_types;
7952        {
7953            #[doc(hidden)]
7954            type UnderlyingSolTuple<'a> = ();
7955            #[doc(hidden)]
7956            type UnderlyingRustTuple<'a> = ();
7957            #[cfg(test)]
7958            #[allow(dead_code, unreachable_patterns)]
7959            fn _type_assertion(
7960                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7961            ) {
7962                match _t {
7963                    alloy_sol_types::private::AssertTypeEq::<
7964                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7965                    >(_) => {}
7966                }
7967            }
7968            #[automatically_derived]
7969            #[doc(hidden)]
7970            impl ::core::convert::From<DEALLOCATION_DELAYCall>
7971            for UnderlyingRustTuple<'_> {
7972                fn from(value: DEALLOCATION_DELAYCall) -> Self {
7973                    ()
7974                }
7975            }
7976            #[automatically_derived]
7977            #[doc(hidden)]
7978            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7979            for DEALLOCATION_DELAYCall {
7980                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7981                    Self {}
7982                }
7983            }
7984        }
7985        {
7986            #[doc(hidden)]
7987            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,);
7988            #[doc(hidden)]
7989            type UnderlyingRustTuple<'a> = (u32,);
7990            #[cfg(test)]
7991            #[allow(dead_code, unreachable_patterns)]
7992            fn _type_assertion(
7993                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7994            ) {
7995                match _t {
7996                    alloy_sol_types::private::AssertTypeEq::<
7997                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7998                    >(_) => {}
7999                }
8000            }
8001            #[automatically_derived]
8002            #[doc(hidden)]
8003            impl ::core::convert::From<DEALLOCATION_DELAYReturn>
8004            for UnderlyingRustTuple<'_> {
8005                fn from(value: DEALLOCATION_DELAYReturn) -> Self {
8006                    (value._0,)
8007                }
8008            }
8009            #[automatically_derived]
8010            #[doc(hidden)]
8011            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8012            for DEALLOCATION_DELAYReturn {
8013                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8014                    Self { _0: tuple.0 }
8015                }
8016            }
8017        }
8018        #[automatically_derived]
8019        impl alloy_sol_types::SolCall for DEALLOCATION_DELAYCall {
8020            type Parameters<'a> = ();
8021            type Token<'a> = <Self::Parameters<
8022                'a,
8023            > as alloy_sol_types::SolType>::Token<'a>;
8024            type Return = DEALLOCATION_DELAYReturn;
8025            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,);
8026            type ReturnToken<'a> = <Self::ReturnTuple<
8027                'a,
8028            > as alloy_sol_types::SolType>::Token<'a>;
8029            const SIGNATURE: &'static str = "DEALLOCATION_DELAY()";
8030            const SELECTOR: [u8; 4] = [41u8, 129u8, 235u8, 119u8];
8031            #[inline]
8032            fn new<'a>(
8033                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8034            ) -> Self {
8035                tuple.into()
8036            }
8037            #[inline]
8038            fn tokenize(&self) -> Self::Token<'_> {
8039                ()
8040            }
8041            #[inline]
8042            fn abi_decode_returns(
8043                data: &[u8],
8044                validate: bool,
8045            ) -> alloy_sol_types::Result<Self::Return> {
8046                <Self::ReturnTuple<
8047                    '_,
8048                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8049                    .map(Into::into)
8050            }
8051        }
8052    };
8053    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8054    /**Function with signature `addStrategiesToOperatorSet(address,uint32,address[])` and selector `0x50feea20`.
8055```solidity
8056function addStrategiesToOperatorSet(address avs, uint32 operatorSetId, address[] memory strategies) external;
8057```*/
8058    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8059    #[derive(Clone)]
8060    pub struct addStrategiesToOperatorSetCall {
8061        #[allow(missing_docs)]
8062        pub avs: alloy::sol_types::private::Address,
8063        #[allow(missing_docs)]
8064        pub operatorSetId: u32,
8065        #[allow(missing_docs)]
8066        pub strategies: alloy::sol_types::private::Vec<
8067            alloy::sol_types::private::Address,
8068        >,
8069    }
8070    ///Container type for the return parameters of the [`addStrategiesToOperatorSet(address,uint32,address[])`](addStrategiesToOperatorSetCall) function.
8071    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8072    #[derive(Clone)]
8073    pub struct addStrategiesToOperatorSetReturn {}
8074    #[allow(
8075        non_camel_case_types,
8076        non_snake_case,
8077        clippy::pub_underscore_fields,
8078        clippy::style
8079    )]
8080    const _: () = {
8081        use alloy::sol_types as alloy_sol_types;
8082        {
8083            #[doc(hidden)]
8084            type UnderlyingSolTuple<'a> = (
8085                alloy::sol_types::sol_data::Address,
8086                alloy::sol_types::sol_data::Uint<32>,
8087                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
8088            );
8089            #[doc(hidden)]
8090            type UnderlyingRustTuple<'a> = (
8091                alloy::sol_types::private::Address,
8092                u32,
8093                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
8094            );
8095            #[cfg(test)]
8096            #[allow(dead_code, unreachable_patterns)]
8097            fn _type_assertion(
8098                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8099            ) {
8100                match _t {
8101                    alloy_sol_types::private::AssertTypeEq::<
8102                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8103                    >(_) => {}
8104                }
8105            }
8106            #[automatically_derived]
8107            #[doc(hidden)]
8108            impl ::core::convert::From<addStrategiesToOperatorSetCall>
8109            for UnderlyingRustTuple<'_> {
8110                fn from(value: addStrategiesToOperatorSetCall) -> Self {
8111                    (value.avs, value.operatorSetId, value.strategies)
8112                }
8113            }
8114            #[automatically_derived]
8115            #[doc(hidden)]
8116            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8117            for addStrategiesToOperatorSetCall {
8118                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8119                    Self {
8120                        avs: tuple.0,
8121                        operatorSetId: tuple.1,
8122                        strategies: tuple.2,
8123                    }
8124                }
8125            }
8126        }
8127        {
8128            #[doc(hidden)]
8129            type UnderlyingSolTuple<'a> = ();
8130            #[doc(hidden)]
8131            type UnderlyingRustTuple<'a> = ();
8132            #[cfg(test)]
8133            #[allow(dead_code, unreachable_patterns)]
8134            fn _type_assertion(
8135                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8136            ) {
8137                match _t {
8138                    alloy_sol_types::private::AssertTypeEq::<
8139                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8140                    >(_) => {}
8141                }
8142            }
8143            #[automatically_derived]
8144            #[doc(hidden)]
8145            impl ::core::convert::From<addStrategiesToOperatorSetReturn>
8146            for UnderlyingRustTuple<'_> {
8147                fn from(value: addStrategiesToOperatorSetReturn) -> Self {
8148                    ()
8149                }
8150            }
8151            #[automatically_derived]
8152            #[doc(hidden)]
8153            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8154            for addStrategiesToOperatorSetReturn {
8155                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8156                    Self {}
8157                }
8158            }
8159        }
8160        #[automatically_derived]
8161        impl alloy_sol_types::SolCall for addStrategiesToOperatorSetCall {
8162            type Parameters<'a> = (
8163                alloy::sol_types::sol_data::Address,
8164                alloy::sol_types::sol_data::Uint<32>,
8165                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
8166            );
8167            type Token<'a> = <Self::Parameters<
8168                'a,
8169            > as alloy_sol_types::SolType>::Token<'a>;
8170            type Return = addStrategiesToOperatorSetReturn;
8171            type ReturnTuple<'a> = ();
8172            type ReturnToken<'a> = <Self::ReturnTuple<
8173                'a,
8174            > as alloy_sol_types::SolType>::Token<'a>;
8175            const SIGNATURE: &'static str = "addStrategiesToOperatorSet(address,uint32,address[])";
8176            const SELECTOR: [u8; 4] = [80u8, 254u8, 234u8, 32u8];
8177            #[inline]
8178            fn new<'a>(
8179                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8180            ) -> Self {
8181                tuple.into()
8182            }
8183            #[inline]
8184            fn tokenize(&self) -> Self::Token<'_> {
8185                (
8186                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8187                        &self.avs,
8188                    ),
8189                    <alloy::sol_types::sol_data::Uint<
8190                        32,
8191                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetId),
8192                    <alloy::sol_types::sol_data::Array<
8193                        alloy::sol_types::sol_data::Address,
8194                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
8195                )
8196            }
8197            #[inline]
8198            fn abi_decode_returns(
8199                data: &[u8],
8200                validate: bool,
8201            ) -> alloy_sol_types::Result<Self::Return> {
8202                <Self::ReturnTuple<
8203                    '_,
8204                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8205                    .map(Into::into)
8206            }
8207        }
8208    };
8209    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8210    /**Function with signature `clearDeallocationQueue(address,address[],uint16[])` and selector `0x4b5046ef`.
8211```solidity
8212function clearDeallocationQueue(address operator, address[] memory strategies, uint16[] memory numToClear) external;
8213```*/
8214    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8215    #[derive(Clone)]
8216    pub struct clearDeallocationQueueCall {
8217        #[allow(missing_docs)]
8218        pub operator: alloy::sol_types::private::Address,
8219        #[allow(missing_docs)]
8220        pub strategies: alloy::sol_types::private::Vec<
8221            alloy::sol_types::private::Address,
8222        >,
8223        #[allow(missing_docs)]
8224        pub numToClear: alloy::sol_types::private::Vec<u16>,
8225    }
8226    ///Container type for the return parameters of the [`clearDeallocationQueue(address,address[],uint16[])`](clearDeallocationQueueCall) function.
8227    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8228    #[derive(Clone)]
8229    pub struct clearDeallocationQueueReturn {}
8230    #[allow(
8231        non_camel_case_types,
8232        non_snake_case,
8233        clippy::pub_underscore_fields,
8234        clippy::style
8235    )]
8236    const _: () = {
8237        use alloy::sol_types as alloy_sol_types;
8238        {
8239            #[doc(hidden)]
8240            type UnderlyingSolTuple<'a> = (
8241                alloy::sol_types::sol_data::Address,
8242                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
8243                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<16>>,
8244            );
8245            #[doc(hidden)]
8246            type UnderlyingRustTuple<'a> = (
8247                alloy::sol_types::private::Address,
8248                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
8249                alloy::sol_types::private::Vec<u16>,
8250            );
8251            #[cfg(test)]
8252            #[allow(dead_code, unreachable_patterns)]
8253            fn _type_assertion(
8254                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8255            ) {
8256                match _t {
8257                    alloy_sol_types::private::AssertTypeEq::<
8258                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8259                    >(_) => {}
8260                }
8261            }
8262            #[automatically_derived]
8263            #[doc(hidden)]
8264            impl ::core::convert::From<clearDeallocationQueueCall>
8265            for UnderlyingRustTuple<'_> {
8266                fn from(value: clearDeallocationQueueCall) -> Self {
8267                    (value.operator, value.strategies, value.numToClear)
8268                }
8269            }
8270            #[automatically_derived]
8271            #[doc(hidden)]
8272            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8273            for clearDeallocationQueueCall {
8274                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8275                    Self {
8276                        operator: tuple.0,
8277                        strategies: tuple.1,
8278                        numToClear: tuple.2,
8279                    }
8280                }
8281            }
8282        }
8283        {
8284            #[doc(hidden)]
8285            type UnderlyingSolTuple<'a> = ();
8286            #[doc(hidden)]
8287            type UnderlyingRustTuple<'a> = ();
8288            #[cfg(test)]
8289            #[allow(dead_code, unreachable_patterns)]
8290            fn _type_assertion(
8291                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8292            ) {
8293                match _t {
8294                    alloy_sol_types::private::AssertTypeEq::<
8295                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8296                    >(_) => {}
8297                }
8298            }
8299            #[automatically_derived]
8300            #[doc(hidden)]
8301            impl ::core::convert::From<clearDeallocationQueueReturn>
8302            for UnderlyingRustTuple<'_> {
8303                fn from(value: clearDeallocationQueueReturn) -> Self {
8304                    ()
8305                }
8306            }
8307            #[automatically_derived]
8308            #[doc(hidden)]
8309            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8310            for clearDeallocationQueueReturn {
8311                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8312                    Self {}
8313                }
8314            }
8315        }
8316        #[automatically_derived]
8317        impl alloy_sol_types::SolCall for clearDeallocationQueueCall {
8318            type Parameters<'a> = (
8319                alloy::sol_types::sol_data::Address,
8320                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
8321                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<16>>,
8322            );
8323            type Token<'a> = <Self::Parameters<
8324                'a,
8325            > as alloy_sol_types::SolType>::Token<'a>;
8326            type Return = clearDeallocationQueueReturn;
8327            type ReturnTuple<'a> = ();
8328            type ReturnToken<'a> = <Self::ReturnTuple<
8329                'a,
8330            > as alloy_sol_types::SolType>::Token<'a>;
8331            const SIGNATURE: &'static str = "clearDeallocationQueue(address,address[],uint16[])";
8332            const SELECTOR: [u8; 4] = [75u8, 80u8, 70u8, 239u8];
8333            #[inline]
8334            fn new<'a>(
8335                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8336            ) -> Self {
8337                tuple.into()
8338            }
8339            #[inline]
8340            fn tokenize(&self) -> Self::Token<'_> {
8341                (
8342                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8343                        &self.operator,
8344                    ),
8345                    <alloy::sol_types::sol_data::Array<
8346                        alloy::sol_types::sol_data::Address,
8347                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
8348                    <alloy::sol_types::sol_data::Array<
8349                        alloy::sol_types::sol_data::Uint<16>,
8350                    > as alloy_sol_types::SolType>::tokenize(&self.numToClear),
8351                )
8352            }
8353            #[inline]
8354            fn abi_decode_returns(
8355                data: &[u8],
8356                validate: bool,
8357            ) -> alloy_sol_types::Result<Self::Return> {
8358                <Self::ReturnTuple<
8359                    '_,
8360                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8361                    .map(Into::into)
8362            }
8363        }
8364    };
8365    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8366    /**Function with signature `createOperatorSets(address,(uint32,address[])[])` and selector `0x261f84e0`.
8367```solidity
8368function createOperatorSets(address avs, IAllocationManagerTypes.CreateSetParams[] memory params) external;
8369```*/
8370    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8371    #[derive(Clone)]
8372    pub struct createOperatorSetsCall {
8373        #[allow(missing_docs)]
8374        pub avs: alloy::sol_types::private::Address,
8375        #[allow(missing_docs)]
8376        pub params: alloy::sol_types::private::Vec<
8377            <IAllocationManagerTypes::CreateSetParams as alloy::sol_types::SolType>::RustType,
8378        >,
8379    }
8380    ///Container type for the return parameters of the [`createOperatorSets(address,(uint32,address[])[])`](createOperatorSetsCall) function.
8381    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8382    #[derive(Clone)]
8383    pub struct createOperatorSetsReturn {}
8384    #[allow(
8385        non_camel_case_types,
8386        non_snake_case,
8387        clippy::pub_underscore_fields,
8388        clippy::style
8389    )]
8390    const _: () = {
8391        use alloy::sol_types as alloy_sol_types;
8392        {
8393            #[doc(hidden)]
8394            type UnderlyingSolTuple<'a> = (
8395                alloy::sol_types::sol_data::Address,
8396                alloy::sol_types::sol_data::Array<
8397                    IAllocationManagerTypes::CreateSetParams,
8398                >,
8399            );
8400            #[doc(hidden)]
8401            type UnderlyingRustTuple<'a> = (
8402                alloy::sol_types::private::Address,
8403                alloy::sol_types::private::Vec<
8404                    <IAllocationManagerTypes::CreateSetParams as alloy::sol_types::SolType>::RustType,
8405                >,
8406            );
8407            #[cfg(test)]
8408            #[allow(dead_code, unreachable_patterns)]
8409            fn _type_assertion(
8410                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8411            ) {
8412                match _t {
8413                    alloy_sol_types::private::AssertTypeEq::<
8414                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8415                    >(_) => {}
8416                }
8417            }
8418            #[automatically_derived]
8419            #[doc(hidden)]
8420            impl ::core::convert::From<createOperatorSetsCall>
8421            for UnderlyingRustTuple<'_> {
8422                fn from(value: createOperatorSetsCall) -> Self {
8423                    (value.avs, value.params)
8424                }
8425            }
8426            #[automatically_derived]
8427            #[doc(hidden)]
8428            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8429            for createOperatorSetsCall {
8430                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8431                    Self {
8432                        avs: tuple.0,
8433                        params: tuple.1,
8434                    }
8435                }
8436            }
8437        }
8438        {
8439            #[doc(hidden)]
8440            type UnderlyingSolTuple<'a> = ();
8441            #[doc(hidden)]
8442            type UnderlyingRustTuple<'a> = ();
8443            #[cfg(test)]
8444            #[allow(dead_code, unreachable_patterns)]
8445            fn _type_assertion(
8446                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8447            ) {
8448                match _t {
8449                    alloy_sol_types::private::AssertTypeEq::<
8450                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8451                    >(_) => {}
8452                }
8453            }
8454            #[automatically_derived]
8455            #[doc(hidden)]
8456            impl ::core::convert::From<createOperatorSetsReturn>
8457            for UnderlyingRustTuple<'_> {
8458                fn from(value: createOperatorSetsReturn) -> Self {
8459                    ()
8460                }
8461            }
8462            #[automatically_derived]
8463            #[doc(hidden)]
8464            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8465            for createOperatorSetsReturn {
8466                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8467                    Self {}
8468                }
8469            }
8470        }
8471        #[automatically_derived]
8472        impl alloy_sol_types::SolCall for createOperatorSetsCall {
8473            type Parameters<'a> = (
8474                alloy::sol_types::sol_data::Address,
8475                alloy::sol_types::sol_data::Array<
8476                    IAllocationManagerTypes::CreateSetParams,
8477                >,
8478            );
8479            type Token<'a> = <Self::Parameters<
8480                'a,
8481            > as alloy_sol_types::SolType>::Token<'a>;
8482            type Return = createOperatorSetsReturn;
8483            type ReturnTuple<'a> = ();
8484            type ReturnToken<'a> = <Self::ReturnTuple<
8485                'a,
8486            > as alloy_sol_types::SolType>::Token<'a>;
8487            const SIGNATURE: &'static str = "createOperatorSets(address,(uint32,address[])[])";
8488            const SELECTOR: [u8; 4] = [38u8, 31u8, 132u8, 224u8];
8489            #[inline]
8490            fn new<'a>(
8491                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8492            ) -> Self {
8493                tuple.into()
8494            }
8495            #[inline]
8496            fn tokenize(&self) -> Self::Token<'_> {
8497                (
8498                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8499                        &self.avs,
8500                    ),
8501                    <alloy::sol_types::sol_data::Array<
8502                        IAllocationManagerTypes::CreateSetParams,
8503                    > as alloy_sol_types::SolType>::tokenize(&self.params),
8504                )
8505            }
8506            #[inline]
8507            fn abi_decode_returns(
8508                data: &[u8],
8509                validate: bool,
8510            ) -> alloy_sol_types::Result<Self::Return> {
8511                <Self::ReturnTuple<
8512                    '_,
8513                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8514                    .map(Into::into)
8515            }
8516        }
8517    };
8518    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8519    /**Function with signature `delegation()` and selector `0xdf5cf723`.
8520```solidity
8521function delegation() external view returns (address);
8522```*/
8523    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8524    #[derive(Clone)]
8525    pub struct delegationCall {}
8526    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8527    ///Container type for the return parameters of the [`delegation()`](delegationCall) function.
8528    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8529    #[derive(Clone)]
8530    pub struct delegationReturn {
8531        #[allow(missing_docs)]
8532        pub _0: alloy::sol_types::private::Address,
8533    }
8534    #[allow(
8535        non_camel_case_types,
8536        non_snake_case,
8537        clippy::pub_underscore_fields,
8538        clippy::style
8539    )]
8540    const _: () = {
8541        use alloy::sol_types as alloy_sol_types;
8542        {
8543            #[doc(hidden)]
8544            type UnderlyingSolTuple<'a> = ();
8545            #[doc(hidden)]
8546            type UnderlyingRustTuple<'a> = ();
8547            #[cfg(test)]
8548            #[allow(dead_code, unreachable_patterns)]
8549            fn _type_assertion(
8550                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8551            ) {
8552                match _t {
8553                    alloy_sol_types::private::AssertTypeEq::<
8554                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8555                    >(_) => {}
8556                }
8557            }
8558            #[automatically_derived]
8559            #[doc(hidden)]
8560            impl ::core::convert::From<delegationCall> for UnderlyingRustTuple<'_> {
8561                fn from(value: delegationCall) -> Self {
8562                    ()
8563                }
8564            }
8565            #[automatically_derived]
8566            #[doc(hidden)]
8567            impl ::core::convert::From<UnderlyingRustTuple<'_>> for delegationCall {
8568                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8569                    Self {}
8570                }
8571            }
8572        }
8573        {
8574            #[doc(hidden)]
8575            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
8576            #[doc(hidden)]
8577            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
8578            #[cfg(test)]
8579            #[allow(dead_code, unreachable_patterns)]
8580            fn _type_assertion(
8581                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8582            ) {
8583                match _t {
8584                    alloy_sol_types::private::AssertTypeEq::<
8585                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8586                    >(_) => {}
8587                }
8588            }
8589            #[automatically_derived]
8590            #[doc(hidden)]
8591            impl ::core::convert::From<delegationReturn> for UnderlyingRustTuple<'_> {
8592                fn from(value: delegationReturn) -> Self {
8593                    (value._0,)
8594                }
8595            }
8596            #[automatically_derived]
8597            #[doc(hidden)]
8598            impl ::core::convert::From<UnderlyingRustTuple<'_>> for delegationReturn {
8599                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8600                    Self { _0: tuple.0 }
8601                }
8602            }
8603        }
8604        #[automatically_derived]
8605        impl alloy_sol_types::SolCall for delegationCall {
8606            type Parameters<'a> = ();
8607            type Token<'a> = <Self::Parameters<
8608                'a,
8609            > as alloy_sol_types::SolType>::Token<'a>;
8610            type Return = delegationReturn;
8611            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
8612            type ReturnToken<'a> = <Self::ReturnTuple<
8613                'a,
8614            > as alloy_sol_types::SolType>::Token<'a>;
8615            const SIGNATURE: &'static str = "delegation()";
8616            const SELECTOR: [u8; 4] = [223u8, 92u8, 247u8, 35u8];
8617            #[inline]
8618            fn new<'a>(
8619                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8620            ) -> Self {
8621                tuple.into()
8622            }
8623            #[inline]
8624            fn tokenize(&self) -> Self::Token<'_> {
8625                ()
8626            }
8627            #[inline]
8628            fn abi_decode_returns(
8629                data: &[u8],
8630                validate: bool,
8631            ) -> alloy_sol_types::Result<Self::Return> {
8632                <Self::ReturnTuple<
8633                    '_,
8634                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8635                    .map(Into::into)
8636            }
8637        }
8638    };
8639    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8640    /**Function with signature `deregisterFromOperatorSets((address,address,uint32[]))` and selector `0x6e3492b5`.
8641```solidity
8642function deregisterFromOperatorSets(IAllocationManagerTypes.DeregisterParams memory params) external;
8643```*/
8644    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8645    #[derive(Clone)]
8646    pub struct deregisterFromOperatorSetsCall {
8647        #[allow(missing_docs)]
8648        pub params: <IAllocationManagerTypes::DeregisterParams as alloy::sol_types::SolType>::RustType,
8649    }
8650    ///Container type for the return parameters of the [`deregisterFromOperatorSets((address,address,uint32[]))`](deregisterFromOperatorSetsCall) function.
8651    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8652    #[derive(Clone)]
8653    pub struct deregisterFromOperatorSetsReturn {}
8654    #[allow(
8655        non_camel_case_types,
8656        non_snake_case,
8657        clippy::pub_underscore_fields,
8658        clippy::style
8659    )]
8660    const _: () = {
8661        use alloy::sol_types as alloy_sol_types;
8662        {
8663            #[doc(hidden)]
8664            type UnderlyingSolTuple<'a> = (IAllocationManagerTypes::DeregisterParams,);
8665            #[doc(hidden)]
8666            type UnderlyingRustTuple<'a> = (
8667                <IAllocationManagerTypes::DeregisterParams as alloy::sol_types::SolType>::RustType,
8668            );
8669            #[cfg(test)]
8670            #[allow(dead_code, unreachable_patterns)]
8671            fn _type_assertion(
8672                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8673            ) {
8674                match _t {
8675                    alloy_sol_types::private::AssertTypeEq::<
8676                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8677                    >(_) => {}
8678                }
8679            }
8680            #[automatically_derived]
8681            #[doc(hidden)]
8682            impl ::core::convert::From<deregisterFromOperatorSetsCall>
8683            for UnderlyingRustTuple<'_> {
8684                fn from(value: deregisterFromOperatorSetsCall) -> Self {
8685                    (value.params,)
8686                }
8687            }
8688            #[automatically_derived]
8689            #[doc(hidden)]
8690            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8691            for deregisterFromOperatorSetsCall {
8692                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8693                    Self { params: tuple.0 }
8694                }
8695            }
8696        }
8697        {
8698            #[doc(hidden)]
8699            type UnderlyingSolTuple<'a> = ();
8700            #[doc(hidden)]
8701            type UnderlyingRustTuple<'a> = ();
8702            #[cfg(test)]
8703            #[allow(dead_code, unreachable_patterns)]
8704            fn _type_assertion(
8705                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8706            ) {
8707                match _t {
8708                    alloy_sol_types::private::AssertTypeEq::<
8709                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8710                    >(_) => {}
8711                }
8712            }
8713            #[automatically_derived]
8714            #[doc(hidden)]
8715            impl ::core::convert::From<deregisterFromOperatorSetsReturn>
8716            for UnderlyingRustTuple<'_> {
8717                fn from(value: deregisterFromOperatorSetsReturn) -> Self {
8718                    ()
8719                }
8720            }
8721            #[automatically_derived]
8722            #[doc(hidden)]
8723            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8724            for deregisterFromOperatorSetsReturn {
8725                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8726                    Self {}
8727                }
8728            }
8729        }
8730        #[automatically_derived]
8731        impl alloy_sol_types::SolCall for deregisterFromOperatorSetsCall {
8732            type Parameters<'a> = (IAllocationManagerTypes::DeregisterParams,);
8733            type Token<'a> = <Self::Parameters<
8734                'a,
8735            > as alloy_sol_types::SolType>::Token<'a>;
8736            type Return = deregisterFromOperatorSetsReturn;
8737            type ReturnTuple<'a> = ();
8738            type ReturnToken<'a> = <Self::ReturnTuple<
8739                'a,
8740            > as alloy_sol_types::SolType>::Token<'a>;
8741            const SIGNATURE: &'static str = "deregisterFromOperatorSets((address,address,uint32[]))";
8742            const SELECTOR: [u8; 4] = [110u8, 52u8, 146u8, 181u8];
8743            #[inline]
8744            fn new<'a>(
8745                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8746            ) -> Self {
8747                tuple.into()
8748            }
8749            #[inline]
8750            fn tokenize(&self) -> Self::Token<'_> {
8751                (
8752                    <IAllocationManagerTypes::DeregisterParams as alloy_sol_types::SolType>::tokenize(
8753                        &self.params,
8754                    ),
8755                )
8756            }
8757            #[inline]
8758            fn abi_decode_returns(
8759                data: &[u8],
8760                validate: bool,
8761            ) -> alloy_sol_types::Result<Self::Return> {
8762                <Self::ReturnTuple<
8763                    '_,
8764                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8765                    .map(Into::into)
8766            }
8767        }
8768    };
8769    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8770    /**Function with signature `getAVSRegistrar(address)` and selector `0x304c10cd`.
8771```solidity
8772function getAVSRegistrar(address avs) external view returns (address);
8773```*/
8774    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8775    #[derive(Clone)]
8776    pub struct getAVSRegistrarCall {
8777        #[allow(missing_docs)]
8778        pub avs: alloy::sol_types::private::Address,
8779    }
8780    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8781    ///Container type for the return parameters of the [`getAVSRegistrar(address)`](getAVSRegistrarCall) function.
8782    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8783    #[derive(Clone)]
8784    pub struct getAVSRegistrarReturn {
8785        #[allow(missing_docs)]
8786        pub _0: alloy::sol_types::private::Address,
8787    }
8788    #[allow(
8789        non_camel_case_types,
8790        non_snake_case,
8791        clippy::pub_underscore_fields,
8792        clippy::style
8793    )]
8794    const _: () = {
8795        use alloy::sol_types as alloy_sol_types;
8796        {
8797            #[doc(hidden)]
8798            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
8799            #[doc(hidden)]
8800            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
8801            #[cfg(test)]
8802            #[allow(dead_code, unreachable_patterns)]
8803            fn _type_assertion(
8804                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8805            ) {
8806                match _t {
8807                    alloy_sol_types::private::AssertTypeEq::<
8808                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8809                    >(_) => {}
8810                }
8811            }
8812            #[automatically_derived]
8813            #[doc(hidden)]
8814            impl ::core::convert::From<getAVSRegistrarCall> for UnderlyingRustTuple<'_> {
8815                fn from(value: getAVSRegistrarCall) -> Self {
8816                    (value.avs,)
8817                }
8818            }
8819            #[automatically_derived]
8820            #[doc(hidden)]
8821            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getAVSRegistrarCall {
8822                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8823                    Self { avs: tuple.0 }
8824                }
8825            }
8826        }
8827        {
8828            #[doc(hidden)]
8829            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
8830            #[doc(hidden)]
8831            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
8832            #[cfg(test)]
8833            #[allow(dead_code, unreachable_patterns)]
8834            fn _type_assertion(
8835                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8836            ) {
8837                match _t {
8838                    alloy_sol_types::private::AssertTypeEq::<
8839                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8840                    >(_) => {}
8841                }
8842            }
8843            #[automatically_derived]
8844            #[doc(hidden)]
8845            impl ::core::convert::From<getAVSRegistrarReturn>
8846            for UnderlyingRustTuple<'_> {
8847                fn from(value: getAVSRegistrarReturn) -> Self {
8848                    (value._0,)
8849                }
8850            }
8851            #[automatically_derived]
8852            #[doc(hidden)]
8853            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8854            for getAVSRegistrarReturn {
8855                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8856                    Self { _0: tuple.0 }
8857                }
8858            }
8859        }
8860        #[automatically_derived]
8861        impl alloy_sol_types::SolCall for getAVSRegistrarCall {
8862            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
8863            type Token<'a> = <Self::Parameters<
8864                'a,
8865            > as alloy_sol_types::SolType>::Token<'a>;
8866            type Return = getAVSRegistrarReturn;
8867            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
8868            type ReturnToken<'a> = <Self::ReturnTuple<
8869                'a,
8870            > as alloy_sol_types::SolType>::Token<'a>;
8871            const SIGNATURE: &'static str = "getAVSRegistrar(address)";
8872            const SELECTOR: [u8; 4] = [48u8, 76u8, 16u8, 205u8];
8873            #[inline]
8874            fn new<'a>(
8875                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8876            ) -> Self {
8877                tuple.into()
8878            }
8879            #[inline]
8880            fn tokenize(&self) -> Self::Token<'_> {
8881                (
8882                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8883                        &self.avs,
8884                    ),
8885                )
8886            }
8887            #[inline]
8888            fn abi_decode_returns(
8889                data: &[u8],
8890                validate: bool,
8891            ) -> alloy_sol_types::Result<Self::Return> {
8892                <Self::ReturnTuple<
8893                    '_,
8894                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8895                    .map(Into::into)
8896            }
8897        }
8898    };
8899    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8900    /**Function with signature `getAllocatableMagnitude(address,address)` and selector `0x6cfb4481`.
8901```solidity
8902function getAllocatableMagnitude(address operator, address strategy) external view returns (uint64);
8903```*/
8904    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8905    #[derive(Clone)]
8906    pub struct getAllocatableMagnitudeCall {
8907        #[allow(missing_docs)]
8908        pub operator: alloy::sol_types::private::Address,
8909        #[allow(missing_docs)]
8910        pub strategy: alloy::sol_types::private::Address,
8911    }
8912    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8913    ///Container type for the return parameters of the [`getAllocatableMagnitude(address,address)`](getAllocatableMagnitudeCall) function.
8914    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8915    #[derive(Clone)]
8916    pub struct getAllocatableMagnitudeReturn {
8917        #[allow(missing_docs)]
8918        pub _0: u64,
8919    }
8920    #[allow(
8921        non_camel_case_types,
8922        non_snake_case,
8923        clippy::pub_underscore_fields,
8924        clippy::style
8925    )]
8926    const _: () = {
8927        use alloy::sol_types as alloy_sol_types;
8928        {
8929            #[doc(hidden)]
8930            type UnderlyingSolTuple<'a> = (
8931                alloy::sol_types::sol_data::Address,
8932                alloy::sol_types::sol_data::Address,
8933            );
8934            #[doc(hidden)]
8935            type UnderlyingRustTuple<'a> = (
8936                alloy::sol_types::private::Address,
8937                alloy::sol_types::private::Address,
8938            );
8939            #[cfg(test)]
8940            #[allow(dead_code, unreachable_patterns)]
8941            fn _type_assertion(
8942                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8943            ) {
8944                match _t {
8945                    alloy_sol_types::private::AssertTypeEq::<
8946                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8947                    >(_) => {}
8948                }
8949            }
8950            #[automatically_derived]
8951            #[doc(hidden)]
8952            impl ::core::convert::From<getAllocatableMagnitudeCall>
8953            for UnderlyingRustTuple<'_> {
8954                fn from(value: getAllocatableMagnitudeCall) -> Self {
8955                    (value.operator, value.strategy)
8956                }
8957            }
8958            #[automatically_derived]
8959            #[doc(hidden)]
8960            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8961            for getAllocatableMagnitudeCall {
8962                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8963                    Self {
8964                        operator: tuple.0,
8965                        strategy: tuple.1,
8966                    }
8967                }
8968            }
8969        }
8970        {
8971            #[doc(hidden)]
8972            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
8973            #[doc(hidden)]
8974            type UnderlyingRustTuple<'a> = (u64,);
8975            #[cfg(test)]
8976            #[allow(dead_code, unreachable_patterns)]
8977            fn _type_assertion(
8978                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8979            ) {
8980                match _t {
8981                    alloy_sol_types::private::AssertTypeEq::<
8982                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8983                    >(_) => {}
8984                }
8985            }
8986            #[automatically_derived]
8987            #[doc(hidden)]
8988            impl ::core::convert::From<getAllocatableMagnitudeReturn>
8989            for UnderlyingRustTuple<'_> {
8990                fn from(value: getAllocatableMagnitudeReturn) -> Self {
8991                    (value._0,)
8992                }
8993            }
8994            #[automatically_derived]
8995            #[doc(hidden)]
8996            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8997            for getAllocatableMagnitudeReturn {
8998                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8999                    Self { _0: tuple.0 }
9000                }
9001            }
9002        }
9003        #[automatically_derived]
9004        impl alloy_sol_types::SolCall for getAllocatableMagnitudeCall {
9005            type Parameters<'a> = (
9006                alloy::sol_types::sol_data::Address,
9007                alloy::sol_types::sol_data::Address,
9008            );
9009            type Token<'a> = <Self::Parameters<
9010                'a,
9011            > as alloy_sol_types::SolType>::Token<'a>;
9012            type Return = getAllocatableMagnitudeReturn;
9013            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
9014            type ReturnToken<'a> = <Self::ReturnTuple<
9015                'a,
9016            > as alloy_sol_types::SolType>::Token<'a>;
9017            const SIGNATURE: &'static str = "getAllocatableMagnitude(address,address)";
9018            const SELECTOR: [u8; 4] = [108u8, 251u8, 68u8, 129u8];
9019            #[inline]
9020            fn new<'a>(
9021                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9022            ) -> Self {
9023                tuple.into()
9024            }
9025            #[inline]
9026            fn tokenize(&self) -> Self::Token<'_> {
9027                (
9028                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9029                        &self.operator,
9030                    ),
9031                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9032                        &self.strategy,
9033                    ),
9034                )
9035            }
9036            #[inline]
9037            fn abi_decode_returns(
9038                data: &[u8],
9039                validate: bool,
9040            ) -> alloy_sol_types::Result<Self::Return> {
9041                <Self::ReturnTuple<
9042                    '_,
9043                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9044                    .map(Into::into)
9045            }
9046        }
9047    };
9048    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9049    /**Function with signature `getAllocatedSets(address)` and selector `0x15fe5028`.
9050```solidity
9051function getAllocatedSets(address operator) external view returns (OperatorSet[] memory);
9052```*/
9053    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9054    #[derive(Clone)]
9055    pub struct getAllocatedSetsCall {
9056        #[allow(missing_docs)]
9057        pub operator: alloy::sol_types::private::Address,
9058    }
9059    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9060    ///Container type for the return parameters of the [`getAllocatedSets(address)`](getAllocatedSetsCall) function.
9061    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9062    #[derive(Clone)]
9063    pub struct getAllocatedSetsReturn {
9064        #[allow(missing_docs)]
9065        pub _0: alloy::sol_types::private::Vec<
9066            <OperatorSet as alloy::sol_types::SolType>::RustType,
9067        >,
9068    }
9069    #[allow(
9070        non_camel_case_types,
9071        non_snake_case,
9072        clippy::pub_underscore_fields,
9073        clippy::style
9074    )]
9075    const _: () = {
9076        use alloy::sol_types as alloy_sol_types;
9077        {
9078            #[doc(hidden)]
9079            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
9080            #[doc(hidden)]
9081            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
9082            #[cfg(test)]
9083            #[allow(dead_code, unreachable_patterns)]
9084            fn _type_assertion(
9085                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9086            ) {
9087                match _t {
9088                    alloy_sol_types::private::AssertTypeEq::<
9089                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9090                    >(_) => {}
9091                }
9092            }
9093            #[automatically_derived]
9094            #[doc(hidden)]
9095            impl ::core::convert::From<getAllocatedSetsCall>
9096            for UnderlyingRustTuple<'_> {
9097                fn from(value: getAllocatedSetsCall) -> Self {
9098                    (value.operator,)
9099                }
9100            }
9101            #[automatically_derived]
9102            #[doc(hidden)]
9103            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9104            for getAllocatedSetsCall {
9105                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9106                    Self { operator: tuple.0 }
9107                }
9108            }
9109        }
9110        {
9111            #[doc(hidden)]
9112            type UnderlyingSolTuple<'a> = (
9113                alloy::sol_types::sol_data::Array<OperatorSet>,
9114            );
9115            #[doc(hidden)]
9116            type UnderlyingRustTuple<'a> = (
9117                alloy::sol_types::private::Vec<
9118                    <OperatorSet as alloy::sol_types::SolType>::RustType,
9119                >,
9120            );
9121            #[cfg(test)]
9122            #[allow(dead_code, unreachable_patterns)]
9123            fn _type_assertion(
9124                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9125            ) {
9126                match _t {
9127                    alloy_sol_types::private::AssertTypeEq::<
9128                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9129                    >(_) => {}
9130                }
9131            }
9132            #[automatically_derived]
9133            #[doc(hidden)]
9134            impl ::core::convert::From<getAllocatedSetsReturn>
9135            for UnderlyingRustTuple<'_> {
9136                fn from(value: getAllocatedSetsReturn) -> Self {
9137                    (value._0,)
9138                }
9139            }
9140            #[automatically_derived]
9141            #[doc(hidden)]
9142            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9143            for getAllocatedSetsReturn {
9144                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9145                    Self { _0: tuple.0 }
9146                }
9147            }
9148        }
9149        #[automatically_derived]
9150        impl alloy_sol_types::SolCall for getAllocatedSetsCall {
9151            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
9152            type Token<'a> = <Self::Parameters<
9153                'a,
9154            > as alloy_sol_types::SolType>::Token<'a>;
9155            type Return = getAllocatedSetsReturn;
9156            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array<OperatorSet>,);
9157            type ReturnToken<'a> = <Self::ReturnTuple<
9158                'a,
9159            > as alloy_sol_types::SolType>::Token<'a>;
9160            const SIGNATURE: &'static str = "getAllocatedSets(address)";
9161            const SELECTOR: [u8; 4] = [21u8, 254u8, 80u8, 40u8];
9162            #[inline]
9163            fn new<'a>(
9164                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9165            ) -> Self {
9166                tuple.into()
9167            }
9168            #[inline]
9169            fn tokenize(&self) -> Self::Token<'_> {
9170                (
9171                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9172                        &self.operator,
9173                    ),
9174                )
9175            }
9176            #[inline]
9177            fn abi_decode_returns(
9178                data: &[u8],
9179                validate: bool,
9180            ) -> alloy_sol_types::Result<Self::Return> {
9181                <Self::ReturnTuple<
9182                    '_,
9183                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9184                    .map(Into::into)
9185            }
9186        }
9187    };
9188    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9189    /**Function with signature `getAllocatedStake((address,uint32),address[],address[])` and selector `0x2b453a9a`.
9190```solidity
9191function getAllocatedStake(OperatorSet memory operatorSet, address[] memory operators, address[] memory strategies) external view returns (uint256[][] memory);
9192```*/
9193    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9194    #[derive(Clone)]
9195    pub struct getAllocatedStakeCall {
9196        #[allow(missing_docs)]
9197        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
9198        #[allow(missing_docs)]
9199        pub operators: alloy::sol_types::private::Vec<
9200            alloy::sol_types::private::Address,
9201        >,
9202        #[allow(missing_docs)]
9203        pub strategies: alloy::sol_types::private::Vec<
9204            alloy::sol_types::private::Address,
9205        >,
9206    }
9207    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9208    ///Container type for the return parameters of the [`getAllocatedStake((address,uint32),address[],address[])`](getAllocatedStakeCall) function.
9209    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9210    #[derive(Clone)]
9211    pub struct getAllocatedStakeReturn {
9212        #[allow(missing_docs)]
9213        pub _0: alloy::sol_types::private::Vec<
9214            alloy::sol_types::private::Vec<
9215                alloy::sol_types::private::primitives::aliases::U256,
9216            >,
9217        >,
9218    }
9219    #[allow(
9220        non_camel_case_types,
9221        non_snake_case,
9222        clippy::pub_underscore_fields,
9223        clippy::style
9224    )]
9225    const _: () = {
9226        use alloy::sol_types as alloy_sol_types;
9227        {
9228            #[doc(hidden)]
9229            type UnderlyingSolTuple<'a> = (
9230                OperatorSet,
9231                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9232                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9233            );
9234            #[doc(hidden)]
9235            type UnderlyingRustTuple<'a> = (
9236                <OperatorSet as alloy::sol_types::SolType>::RustType,
9237                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9238                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9239            );
9240            #[cfg(test)]
9241            #[allow(dead_code, unreachable_patterns)]
9242            fn _type_assertion(
9243                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9244            ) {
9245                match _t {
9246                    alloy_sol_types::private::AssertTypeEq::<
9247                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9248                    >(_) => {}
9249                }
9250            }
9251            #[automatically_derived]
9252            #[doc(hidden)]
9253            impl ::core::convert::From<getAllocatedStakeCall>
9254            for UnderlyingRustTuple<'_> {
9255                fn from(value: getAllocatedStakeCall) -> Self {
9256                    (value.operatorSet, value.operators, value.strategies)
9257                }
9258            }
9259            #[automatically_derived]
9260            #[doc(hidden)]
9261            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9262            for getAllocatedStakeCall {
9263                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9264                    Self {
9265                        operatorSet: tuple.0,
9266                        operators: tuple.1,
9267                        strategies: tuple.2,
9268                    }
9269                }
9270            }
9271        }
9272        {
9273            #[doc(hidden)]
9274            type UnderlyingSolTuple<'a> = (
9275                alloy::sol_types::sol_data::Array<
9276                    alloy::sol_types::sol_data::Array<
9277                        alloy::sol_types::sol_data::Uint<256>,
9278                    >,
9279                >,
9280            );
9281            #[doc(hidden)]
9282            type UnderlyingRustTuple<'a> = (
9283                alloy::sol_types::private::Vec<
9284                    alloy::sol_types::private::Vec<
9285                        alloy::sol_types::private::primitives::aliases::U256,
9286                    >,
9287                >,
9288            );
9289            #[cfg(test)]
9290            #[allow(dead_code, unreachable_patterns)]
9291            fn _type_assertion(
9292                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9293            ) {
9294                match _t {
9295                    alloy_sol_types::private::AssertTypeEq::<
9296                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9297                    >(_) => {}
9298                }
9299            }
9300            #[automatically_derived]
9301            #[doc(hidden)]
9302            impl ::core::convert::From<getAllocatedStakeReturn>
9303            for UnderlyingRustTuple<'_> {
9304                fn from(value: getAllocatedStakeReturn) -> Self {
9305                    (value._0,)
9306                }
9307            }
9308            #[automatically_derived]
9309            #[doc(hidden)]
9310            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9311            for getAllocatedStakeReturn {
9312                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9313                    Self { _0: tuple.0 }
9314                }
9315            }
9316        }
9317        #[automatically_derived]
9318        impl alloy_sol_types::SolCall for getAllocatedStakeCall {
9319            type Parameters<'a> = (
9320                OperatorSet,
9321                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9322                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9323            );
9324            type Token<'a> = <Self::Parameters<
9325                'a,
9326            > as alloy_sol_types::SolType>::Token<'a>;
9327            type Return = getAllocatedStakeReturn;
9328            type ReturnTuple<'a> = (
9329                alloy::sol_types::sol_data::Array<
9330                    alloy::sol_types::sol_data::Array<
9331                        alloy::sol_types::sol_data::Uint<256>,
9332                    >,
9333                >,
9334            );
9335            type ReturnToken<'a> = <Self::ReturnTuple<
9336                'a,
9337            > as alloy_sol_types::SolType>::Token<'a>;
9338            const SIGNATURE: &'static str = "getAllocatedStake((address,uint32),address[],address[])";
9339            const SELECTOR: [u8; 4] = [43u8, 69u8, 58u8, 154u8];
9340            #[inline]
9341            fn new<'a>(
9342                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9343            ) -> Self {
9344                tuple.into()
9345            }
9346            #[inline]
9347            fn tokenize(&self) -> Self::Token<'_> {
9348                (
9349                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
9350                        &self.operatorSet,
9351                    ),
9352                    <alloy::sol_types::sol_data::Array<
9353                        alloy::sol_types::sol_data::Address,
9354                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
9355                    <alloy::sol_types::sol_data::Array<
9356                        alloy::sol_types::sol_data::Address,
9357                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
9358                )
9359            }
9360            #[inline]
9361            fn abi_decode_returns(
9362                data: &[u8],
9363                validate: bool,
9364            ) -> alloy_sol_types::Result<Self::Return> {
9365                <Self::ReturnTuple<
9366                    '_,
9367                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9368                    .map(Into::into)
9369            }
9370        }
9371    };
9372    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9373    /**Function with signature `getAllocatedStrategies(address,(address,uint32))` and selector `0xc221d8ae`.
9374```solidity
9375function getAllocatedStrategies(address operator, OperatorSet memory operatorSet) external view returns (address[] memory);
9376```*/
9377    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9378    #[derive(Clone)]
9379    pub struct getAllocatedStrategiesCall {
9380        #[allow(missing_docs)]
9381        pub operator: alloy::sol_types::private::Address,
9382        #[allow(missing_docs)]
9383        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
9384    }
9385    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9386    ///Container type for the return parameters of the [`getAllocatedStrategies(address,(address,uint32))`](getAllocatedStrategiesCall) function.
9387    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9388    #[derive(Clone)]
9389    pub struct getAllocatedStrategiesReturn {
9390        #[allow(missing_docs)]
9391        pub _0: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9392    }
9393    #[allow(
9394        non_camel_case_types,
9395        non_snake_case,
9396        clippy::pub_underscore_fields,
9397        clippy::style
9398    )]
9399    const _: () = {
9400        use alloy::sol_types as alloy_sol_types;
9401        {
9402            #[doc(hidden)]
9403            type UnderlyingSolTuple<'a> = (
9404                alloy::sol_types::sol_data::Address,
9405                OperatorSet,
9406            );
9407            #[doc(hidden)]
9408            type UnderlyingRustTuple<'a> = (
9409                alloy::sol_types::private::Address,
9410                <OperatorSet as alloy::sol_types::SolType>::RustType,
9411            );
9412            #[cfg(test)]
9413            #[allow(dead_code, unreachable_patterns)]
9414            fn _type_assertion(
9415                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9416            ) {
9417                match _t {
9418                    alloy_sol_types::private::AssertTypeEq::<
9419                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9420                    >(_) => {}
9421                }
9422            }
9423            #[automatically_derived]
9424            #[doc(hidden)]
9425            impl ::core::convert::From<getAllocatedStrategiesCall>
9426            for UnderlyingRustTuple<'_> {
9427                fn from(value: getAllocatedStrategiesCall) -> Self {
9428                    (value.operator, value.operatorSet)
9429                }
9430            }
9431            #[automatically_derived]
9432            #[doc(hidden)]
9433            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9434            for getAllocatedStrategiesCall {
9435                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9436                    Self {
9437                        operator: tuple.0,
9438                        operatorSet: tuple.1,
9439                    }
9440                }
9441            }
9442        }
9443        {
9444            #[doc(hidden)]
9445            type UnderlyingSolTuple<'a> = (
9446                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9447            );
9448            #[doc(hidden)]
9449            type UnderlyingRustTuple<'a> = (
9450                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9451            );
9452            #[cfg(test)]
9453            #[allow(dead_code, unreachable_patterns)]
9454            fn _type_assertion(
9455                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9456            ) {
9457                match _t {
9458                    alloy_sol_types::private::AssertTypeEq::<
9459                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9460                    >(_) => {}
9461                }
9462            }
9463            #[automatically_derived]
9464            #[doc(hidden)]
9465            impl ::core::convert::From<getAllocatedStrategiesReturn>
9466            for UnderlyingRustTuple<'_> {
9467                fn from(value: getAllocatedStrategiesReturn) -> Self {
9468                    (value._0,)
9469                }
9470            }
9471            #[automatically_derived]
9472            #[doc(hidden)]
9473            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9474            for getAllocatedStrategiesReturn {
9475                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9476                    Self { _0: tuple.0 }
9477                }
9478            }
9479        }
9480        #[automatically_derived]
9481        impl alloy_sol_types::SolCall for getAllocatedStrategiesCall {
9482            type Parameters<'a> = (alloy::sol_types::sol_data::Address, OperatorSet);
9483            type Token<'a> = <Self::Parameters<
9484                'a,
9485            > as alloy_sol_types::SolType>::Token<'a>;
9486            type Return = getAllocatedStrategiesReturn;
9487            type ReturnTuple<'a> = (
9488                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9489            );
9490            type ReturnToken<'a> = <Self::ReturnTuple<
9491                'a,
9492            > as alloy_sol_types::SolType>::Token<'a>;
9493            const SIGNATURE: &'static str = "getAllocatedStrategies(address,(address,uint32))";
9494            const SELECTOR: [u8; 4] = [194u8, 33u8, 216u8, 174u8];
9495            #[inline]
9496            fn new<'a>(
9497                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9498            ) -> Self {
9499                tuple.into()
9500            }
9501            #[inline]
9502            fn tokenize(&self) -> Self::Token<'_> {
9503                (
9504                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9505                        &self.operator,
9506                    ),
9507                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
9508                        &self.operatorSet,
9509                    ),
9510                )
9511            }
9512            #[inline]
9513            fn abi_decode_returns(
9514                data: &[u8],
9515                validate: bool,
9516            ) -> alloy_sol_types::Result<Self::Return> {
9517                <Self::ReturnTuple<
9518                    '_,
9519                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9520                    .map(Into::into)
9521            }
9522        }
9523    };
9524    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9525    /**Function with signature `getAllocation(address,(address,uint32),address)` and selector `0x10e1b9b8`.
9526```solidity
9527function getAllocation(address operator, OperatorSet memory operatorSet, address strategy) external view returns (IAllocationManagerTypes.Allocation memory);
9528```*/
9529    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9530    #[derive(Clone)]
9531    pub struct getAllocationCall {
9532        #[allow(missing_docs)]
9533        pub operator: alloy::sol_types::private::Address,
9534        #[allow(missing_docs)]
9535        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
9536        #[allow(missing_docs)]
9537        pub strategy: alloy::sol_types::private::Address,
9538    }
9539    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9540    ///Container type for the return parameters of the [`getAllocation(address,(address,uint32),address)`](getAllocationCall) function.
9541    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9542    #[derive(Clone)]
9543    pub struct getAllocationReturn {
9544        #[allow(missing_docs)]
9545        pub _0: <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
9546    }
9547    #[allow(
9548        non_camel_case_types,
9549        non_snake_case,
9550        clippy::pub_underscore_fields,
9551        clippy::style
9552    )]
9553    const _: () = {
9554        use alloy::sol_types as alloy_sol_types;
9555        {
9556            #[doc(hidden)]
9557            type UnderlyingSolTuple<'a> = (
9558                alloy::sol_types::sol_data::Address,
9559                OperatorSet,
9560                alloy::sol_types::sol_data::Address,
9561            );
9562            #[doc(hidden)]
9563            type UnderlyingRustTuple<'a> = (
9564                alloy::sol_types::private::Address,
9565                <OperatorSet as alloy::sol_types::SolType>::RustType,
9566                alloy::sol_types::private::Address,
9567            );
9568            #[cfg(test)]
9569            #[allow(dead_code, unreachable_patterns)]
9570            fn _type_assertion(
9571                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9572            ) {
9573                match _t {
9574                    alloy_sol_types::private::AssertTypeEq::<
9575                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9576                    >(_) => {}
9577                }
9578            }
9579            #[automatically_derived]
9580            #[doc(hidden)]
9581            impl ::core::convert::From<getAllocationCall> for UnderlyingRustTuple<'_> {
9582                fn from(value: getAllocationCall) -> Self {
9583                    (value.operator, value.operatorSet, value.strategy)
9584                }
9585            }
9586            #[automatically_derived]
9587            #[doc(hidden)]
9588            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getAllocationCall {
9589                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9590                    Self {
9591                        operator: tuple.0,
9592                        operatorSet: tuple.1,
9593                        strategy: tuple.2,
9594                    }
9595                }
9596            }
9597        }
9598        {
9599            #[doc(hidden)]
9600            type UnderlyingSolTuple<'a> = (IAllocationManagerTypes::Allocation,);
9601            #[doc(hidden)]
9602            type UnderlyingRustTuple<'a> = (
9603                <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
9604            );
9605            #[cfg(test)]
9606            #[allow(dead_code, unreachable_patterns)]
9607            fn _type_assertion(
9608                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9609            ) {
9610                match _t {
9611                    alloy_sol_types::private::AssertTypeEq::<
9612                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9613                    >(_) => {}
9614                }
9615            }
9616            #[automatically_derived]
9617            #[doc(hidden)]
9618            impl ::core::convert::From<getAllocationReturn> for UnderlyingRustTuple<'_> {
9619                fn from(value: getAllocationReturn) -> Self {
9620                    (value._0,)
9621                }
9622            }
9623            #[automatically_derived]
9624            #[doc(hidden)]
9625            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getAllocationReturn {
9626                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9627                    Self { _0: tuple.0 }
9628                }
9629            }
9630        }
9631        #[automatically_derived]
9632        impl alloy_sol_types::SolCall for getAllocationCall {
9633            type Parameters<'a> = (
9634                alloy::sol_types::sol_data::Address,
9635                OperatorSet,
9636                alloy::sol_types::sol_data::Address,
9637            );
9638            type Token<'a> = <Self::Parameters<
9639                'a,
9640            > as alloy_sol_types::SolType>::Token<'a>;
9641            type Return = getAllocationReturn;
9642            type ReturnTuple<'a> = (IAllocationManagerTypes::Allocation,);
9643            type ReturnToken<'a> = <Self::ReturnTuple<
9644                'a,
9645            > as alloy_sol_types::SolType>::Token<'a>;
9646            const SIGNATURE: &'static str = "getAllocation(address,(address,uint32),address)";
9647            const SELECTOR: [u8; 4] = [16u8, 225u8, 185u8, 184u8];
9648            #[inline]
9649            fn new<'a>(
9650                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9651            ) -> Self {
9652                tuple.into()
9653            }
9654            #[inline]
9655            fn tokenize(&self) -> Self::Token<'_> {
9656                (
9657                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9658                        &self.operator,
9659                    ),
9660                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
9661                        &self.operatorSet,
9662                    ),
9663                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9664                        &self.strategy,
9665                    ),
9666                )
9667            }
9668            #[inline]
9669            fn abi_decode_returns(
9670                data: &[u8],
9671                validate: bool,
9672            ) -> alloy_sol_types::Result<Self::Return> {
9673                <Self::ReturnTuple<
9674                    '_,
9675                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9676                    .map(Into::into)
9677            }
9678        }
9679    };
9680    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9681    /**Function with signature `getAllocationDelay(address)` and selector `0xb9fbaed1`.
9682```solidity
9683function getAllocationDelay(address operator) external view returns (bool, uint32);
9684```*/
9685    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9686    #[derive(Clone)]
9687    pub struct getAllocationDelayCall {
9688        #[allow(missing_docs)]
9689        pub operator: alloy::sol_types::private::Address,
9690    }
9691    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9692    ///Container type for the return parameters of the [`getAllocationDelay(address)`](getAllocationDelayCall) function.
9693    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9694    #[derive(Clone)]
9695    pub struct getAllocationDelayReturn {
9696        #[allow(missing_docs)]
9697        pub _0: bool,
9698        #[allow(missing_docs)]
9699        pub _1: u32,
9700    }
9701    #[allow(
9702        non_camel_case_types,
9703        non_snake_case,
9704        clippy::pub_underscore_fields,
9705        clippy::style
9706    )]
9707    const _: () = {
9708        use alloy::sol_types as alloy_sol_types;
9709        {
9710            #[doc(hidden)]
9711            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
9712            #[doc(hidden)]
9713            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
9714            #[cfg(test)]
9715            #[allow(dead_code, unreachable_patterns)]
9716            fn _type_assertion(
9717                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9718            ) {
9719                match _t {
9720                    alloy_sol_types::private::AssertTypeEq::<
9721                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9722                    >(_) => {}
9723                }
9724            }
9725            #[automatically_derived]
9726            #[doc(hidden)]
9727            impl ::core::convert::From<getAllocationDelayCall>
9728            for UnderlyingRustTuple<'_> {
9729                fn from(value: getAllocationDelayCall) -> Self {
9730                    (value.operator,)
9731                }
9732            }
9733            #[automatically_derived]
9734            #[doc(hidden)]
9735            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9736            for getAllocationDelayCall {
9737                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9738                    Self { operator: tuple.0 }
9739                }
9740            }
9741        }
9742        {
9743            #[doc(hidden)]
9744            type UnderlyingSolTuple<'a> = (
9745                alloy::sol_types::sol_data::Bool,
9746                alloy::sol_types::sol_data::Uint<32>,
9747            );
9748            #[doc(hidden)]
9749            type UnderlyingRustTuple<'a> = (bool, u32);
9750            #[cfg(test)]
9751            #[allow(dead_code, unreachable_patterns)]
9752            fn _type_assertion(
9753                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9754            ) {
9755                match _t {
9756                    alloy_sol_types::private::AssertTypeEq::<
9757                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9758                    >(_) => {}
9759                }
9760            }
9761            #[automatically_derived]
9762            #[doc(hidden)]
9763            impl ::core::convert::From<getAllocationDelayReturn>
9764            for UnderlyingRustTuple<'_> {
9765                fn from(value: getAllocationDelayReturn) -> Self {
9766                    (value._0, value._1)
9767                }
9768            }
9769            #[automatically_derived]
9770            #[doc(hidden)]
9771            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9772            for getAllocationDelayReturn {
9773                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9774                    Self { _0: tuple.0, _1: tuple.1 }
9775                }
9776            }
9777        }
9778        #[automatically_derived]
9779        impl alloy_sol_types::SolCall for getAllocationDelayCall {
9780            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
9781            type Token<'a> = <Self::Parameters<
9782                'a,
9783            > as alloy_sol_types::SolType>::Token<'a>;
9784            type Return = getAllocationDelayReturn;
9785            type ReturnTuple<'a> = (
9786                alloy::sol_types::sol_data::Bool,
9787                alloy::sol_types::sol_data::Uint<32>,
9788            );
9789            type ReturnToken<'a> = <Self::ReturnTuple<
9790                'a,
9791            > as alloy_sol_types::SolType>::Token<'a>;
9792            const SIGNATURE: &'static str = "getAllocationDelay(address)";
9793            const SELECTOR: [u8; 4] = [185u8, 251u8, 174u8, 209u8];
9794            #[inline]
9795            fn new<'a>(
9796                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9797            ) -> Self {
9798                tuple.into()
9799            }
9800            #[inline]
9801            fn tokenize(&self) -> Self::Token<'_> {
9802                (
9803                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9804                        &self.operator,
9805                    ),
9806                )
9807            }
9808            #[inline]
9809            fn abi_decode_returns(
9810                data: &[u8],
9811                validate: bool,
9812            ) -> alloy_sol_types::Result<Self::Return> {
9813                <Self::ReturnTuple<
9814                    '_,
9815                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9816                    .map(Into::into)
9817            }
9818        }
9819    };
9820    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9821    /**Function with signature `getAllocations(address[],(address,uint32),address)` and selector `0x8ce64854`.
9822```solidity
9823function getAllocations(address[] memory operators, OperatorSet memory operatorSet, address strategy) external view returns (IAllocationManagerTypes.Allocation[] memory);
9824```*/
9825    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9826    #[derive(Clone)]
9827    pub struct getAllocationsCall {
9828        #[allow(missing_docs)]
9829        pub operators: alloy::sol_types::private::Vec<
9830            alloy::sol_types::private::Address,
9831        >,
9832        #[allow(missing_docs)]
9833        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
9834        #[allow(missing_docs)]
9835        pub strategy: alloy::sol_types::private::Address,
9836    }
9837    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9838    ///Container type for the return parameters of the [`getAllocations(address[],(address,uint32),address)`](getAllocationsCall) function.
9839    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9840    #[derive(Clone)]
9841    pub struct getAllocationsReturn {
9842        #[allow(missing_docs)]
9843        pub _0: alloy::sol_types::private::Vec<
9844            <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
9845        >,
9846    }
9847    #[allow(
9848        non_camel_case_types,
9849        non_snake_case,
9850        clippy::pub_underscore_fields,
9851        clippy::style
9852    )]
9853    const _: () = {
9854        use alloy::sol_types as alloy_sol_types;
9855        {
9856            #[doc(hidden)]
9857            type UnderlyingSolTuple<'a> = (
9858                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9859                OperatorSet,
9860                alloy::sol_types::sol_data::Address,
9861            );
9862            #[doc(hidden)]
9863            type UnderlyingRustTuple<'a> = (
9864                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9865                <OperatorSet as alloy::sol_types::SolType>::RustType,
9866                alloy::sol_types::private::Address,
9867            );
9868            #[cfg(test)]
9869            #[allow(dead_code, unreachable_patterns)]
9870            fn _type_assertion(
9871                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9872            ) {
9873                match _t {
9874                    alloy_sol_types::private::AssertTypeEq::<
9875                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9876                    >(_) => {}
9877                }
9878            }
9879            #[automatically_derived]
9880            #[doc(hidden)]
9881            impl ::core::convert::From<getAllocationsCall> for UnderlyingRustTuple<'_> {
9882                fn from(value: getAllocationsCall) -> Self {
9883                    (value.operators, value.operatorSet, value.strategy)
9884                }
9885            }
9886            #[automatically_derived]
9887            #[doc(hidden)]
9888            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getAllocationsCall {
9889                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9890                    Self {
9891                        operators: tuple.0,
9892                        operatorSet: tuple.1,
9893                        strategy: tuple.2,
9894                    }
9895                }
9896            }
9897        }
9898        {
9899            #[doc(hidden)]
9900            type UnderlyingSolTuple<'a> = (
9901                alloy::sol_types::sol_data::Array<IAllocationManagerTypes::Allocation>,
9902            );
9903            #[doc(hidden)]
9904            type UnderlyingRustTuple<'a> = (
9905                alloy::sol_types::private::Vec<
9906                    <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
9907                >,
9908            );
9909            #[cfg(test)]
9910            #[allow(dead_code, unreachable_patterns)]
9911            fn _type_assertion(
9912                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9913            ) {
9914                match _t {
9915                    alloy_sol_types::private::AssertTypeEq::<
9916                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9917                    >(_) => {}
9918                }
9919            }
9920            #[automatically_derived]
9921            #[doc(hidden)]
9922            impl ::core::convert::From<getAllocationsReturn>
9923            for UnderlyingRustTuple<'_> {
9924                fn from(value: getAllocationsReturn) -> Self {
9925                    (value._0,)
9926                }
9927            }
9928            #[automatically_derived]
9929            #[doc(hidden)]
9930            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9931            for getAllocationsReturn {
9932                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9933                    Self { _0: tuple.0 }
9934                }
9935            }
9936        }
9937        #[automatically_derived]
9938        impl alloy_sol_types::SolCall for getAllocationsCall {
9939            type Parameters<'a> = (
9940                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9941                OperatorSet,
9942                alloy::sol_types::sol_data::Address,
9943            );
9944            type Token<'a> = <Self::Parameters<
9945                'a,
9946            > as alloy_sol_types::SolType>::Token<'a>;
9947            type Return = getAllocationsReturn;
9948            type ReturnTuple<'a> = (
9949                alloy::sol_types::sol_data::Array<IAllocationManagerTypes::Allocation>,
9950            );
9951            type ReturnToken<'a> = <Self::ReturnTuple<
9952                'a,
9953            > as alloy_sol_types::SolType>::Token<'a>;
9954            const SIGNATURE: &'static str = "getAllocations(address[],(address,uint32),address)";
9955            const SELECTOR: [u8; 4] = [140u8, 230u8, 72u8, 84u8];
9956            #[inline]
9957            fn new<'a>(
9958                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9959            ) -> Self {
9960                tuple.into()
9961            }
9962            #[inline]
9963            fn tokenize(&self) -> Self::Token<'_> {
9964                (
9965                    <alloy::sol_types::sol_data::Array<
9966                        alloy::sol_types::sol_data::Address,
9967                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
9968                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
9969                        &self.operatorSet,
9970                    ),
9971                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9972                        &self.strategy,
9973                    ),
9974                )
9975            }
9976            #[inline]
9977            fn abi_decode_returns(
9978                data: &[u8],
9979                validate: bool,
9980            ) -> alloy_sol_types::Result<Self::Return> {
9981                <Self::ReturnTuple<
9982                    '_,
9983                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9984                    .map(Into::into)
9985            }
9986        }
9987    };
9988    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9989    /**Function with signature `getEncumberedMagnitude(address,address)` and selector `0xf605ce08`.
9990```solidity
9991function getEncumberedMagnitude(address operator, address strategy) external view returns (uint64);
9992```*/
9993    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9994    #[derive(Clone)]
9995    pub struct getEncumberedMagnitudeCall {
9996        #[allow(missing_docs)]
9997        pub operator: alloy::sol_types::private::Address,
9998        #[allow(missing_docs)]
9999        pub strategy: alloy::sol_types::private::Address,
10000    }
10001    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10002    ///Container type for the return parameters of the [`getEncumberedMagnitude(address,address)`](getEncumberedMagnitudeCall) function.
10003    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10004    #[derive(Clone)]
10005    pub struct getEncumberedMagnitudeReturn {
10006        #[allow(missing_docs)]
10007        pub _0: u64,
10008    }
10009    #[allow(
10010        non_camel_case_types,
10011        non_snake_case,
10012        clippy::pub_underscore_fields,
10013        clippy::style
10014    )]
10015    const _: () = {
10016        use alloy::sol_types as alloy_sol_types;
10017        {
10018            #[doc(hidden)]
10019            type UnderlyingSolTuple<'a> = (
10020                alloy::sol_types::sol_data::Address,
10021                alloy::sol_types::sol_data::Address,
10022            );
10023            #[doc(hidden)]
10024            type UnderlyingRustTuple<'a> = (
10025                alloy::sol_types::private::Address,
10026                alloy::sol_types::private::Address,
10027            );
10028            #[cfg(test)]
10029            #[allow(dead_code, unreachable_patterns)]
10030            fn _type_assertion(
10031                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10032            ) {
10033                match _t {
10034                    alloy_sol_types::private::AssertTypeEq::<
10035                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10036                    >(_) => {}
10037                }
10038            }
10039            #[automatically_derived]
10040            #[doc(hidden)]
10041            impl ::core::convert::From<getEncumberedMagnitudeCall>
10042            for UnderlyingRustTuple<'_> {
10043                fn from(value: getEncumberedMagnitudeCall) -> Self {
10044                    (value.operator, value.strategy)
10045                }
10046            }
10047            #[automatically_derived]
10048            #[doc(hidden)]
10049            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10050            for getEncumberedMagnitudeCall {
10051                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10052                    Self {
10053                        operator: tuple.0,
10054                        strategy: tuple.1,
10055                    }
10056                }
10057            }
10058        }
10059        {
10060            #[doc(hidden)]
10061            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
10062            #[doc(hidden)]
10063            type UnderlyingRustTuple<'a> = (u64,);
10064            #[cfg(test)]
10065            #[allow(dead_code, unreachable_patterns)]
10066            fn _type_assertion(
10067                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10068            ) {
10069                match _t {
10070                    alloy_sol_types::private::AssertTypeEq::<
10071                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10072                    >(_) => {}
10073                }
10074            }
10075            #[automatically_derived]
10076            #[doc(hidden)]
10077            impl ::core::convert::From<getEncumberedMagnitudeReturn>
10078            for UnderlyingRustTuple<'_> {
10079                fn from(value: getEncumberedMagnitudeReturn) -> Self {
10080                    (value._0,)
10081                }
10082            }
10083            #[automatically_derived]
10084            #[doc(hidden)]
10085            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10086            for getEncumberedMagnitudeReturn {
10087                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10088                    Self { _0: tuple.0 }
10089                }
10090            }
10091        }
10092        #[automatically_derived]
10093        impl alloy_sol_types::SolCall for getEncumberedMagnitudeCall {
10094            type Parameters<'a> = (
10095                alloy::sol_types::sol_data::Address,
10096                alloy::sol_types::sol_data::Address,
10097            );
10098            type Token<'a> = <Self::Parameters<
10099                'a,
10100            > as alloy_sol_types::SolType>::Token<'a>;
10101            type Return = getEncumberedMagnitudeReturn;
10102            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
10103            type ReturnToken<'a> = <Self::ReturnTuple<
10104                'a,
10105            > as alloy_sol_types::SolType>::Token<'a>;
10106            const SIGNATURE: &'static str = "getEncumberedMagnitude(address,address)";
10107            const SELECTOR: [u8; 4] = [246u8, 5u8, 206u8, 8u8];
10108            #[inline]
10109            fn new<'a>(
10110                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10111            ) -> Self {
10112                tuple.into()
10113            }
10114            #[inline]
10115            fn tokenize(&self) -> Self::Token<'_> {
10116                (
10117                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10118                        &self.operator,
10119                    ),
10120                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10121                        &self.strategy,
10122                    ),
10123                )
10124            }
10125            #[inline]
10126            fn abi_decode_returns(
10127                data: &[u8],
10128                validate: bool,
10129            ) -> alloy_sol_types::Result<Self::Return> {
10130                <Self::ReturnTuple<
10131                    '_,
10132                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10133                    .map(Into::into)
10134            }
10135        }
10136    };
10137    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10138    /**Function with signature `getMaxMagnitude(address,address)` and selector `0xa9333ec8`.
10139```solidity
10140function getMaxMagnitude(address operator, address strategy) external view returns (uint64);
10141```*/
10142    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10143    #[derive(Clone)]
10144    pub struct getMaxMagnitudeCall {
10145        #[allow(missing_docs)]
10146        pub operator: alloy::sol_types::private::Address,
10147        #[allow(missing_docs)]
10148        pub strategy: alloy::sol_types::private::Address,
10149    }
10150    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10151    ///Container type for the return parameters of the [`getMaxMagnitude(address,address)`](getMaxMagnitudeCall) function.
10152    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10153    #[derive(Clone)]
10154    pub struct getMaxMagnitudeReturn {
10155        #[allow(missing_docs)]
10156        pub _0: u64,
10157    }
10158    #[allow(
10159        non_camel_case_types,
10160        non_snake_case,
10161        clippy::pub_underscore_fields,
10162        clippy::style
10163    )]
10164    const _: () = {
10165        use alloy::sol_types as alloy_sol_types;
10166        {
10167            #[doc(hidden)]
10168            type UnderlyingSolTuple<'a> = (
10169                alloy::sol_types::sol_data::Address,
10170                alloy::sol_types::sol_data::Address,
10171            );
10172            #[doc(hidden)]
10173            type UnderlyingRustTuple<'a> = (
10174                alloy::sol_types::private::Address,
10175                alloy::sol_types::private::Address,
10176            );
10177            #[cfg(test)]
10178            #[allow(dead_code, unreachable_patterns)]
10179            fn _type_assertion(
10180                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10181            ) {
10182                match _t {
10183                    alloy_sol_types::private::AssertTypeEq::<
10184                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10185                    >(_) => {}
10186                }
10187            }
10188            #[automatically_derived]
10189            #[doc(hidden)]
10190            impl ::core::convert::From<getMaxMagnitudeCall> for UnderlyingRustTuple<'_> {
10191                fn from(value: getMaxMagnitudeCall) -> Self {
10192                    (value.operator, value.strategy)
10193                }
10194            }
10195            #[automatically_derived]
10196            #[doc(hidden)]
10197            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getMaxMagnitudeCall {
10198                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10199                    Self {
10200                        operator: tuple.0,
10201                        strategy: tuple.1,
10202                    }
10203                }
10204            }
10205        }
10206        {
10207            #[doc(hidden)]
10208            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
10209            #[doc(hidden)]
10210            type UnderlyingRustTuple<'a> = (u64,);
10211            #[cfg(test)]
10212            #[allow(dead_code, unreachable_patterns)]
10213            fn _type_assertion(
10214                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10215            ) {
10216                match _t {
10217                    alloy_sol_types::private::AssertTypeEq::<
10218                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10219                    >(_) => {}
10220                }
10221            }
10222            #[automatically_derived]
10223            #[doc(hidden)]
10224            impl ::core::convert::From<getMaxMagnitudeReturn>
10225            for UnderlyingRustTuple<'_> {
10226                fn from(value: getMaxMagnitudeReturn) -> Self {
10227                    (value._0,)
10228                }
10229            }
10230            #[automatically_derived]
10231            #[doc(hidden)]
10232            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10233            for getMaxMagnitudeReturn {
10234                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10235                    Self { _0: tuple.0 }
10236                }
10237            }
10238        }
10239        #[automatically_derived]
10240        impl alloy_sol_types::SolCall for getMaxMagnitudeCall {
10241            type Parameters<'a> = (
10242                alloy::sol_types::sol_data::Address,
10243                alloy::sol_types::sol_data::Address,
10244            );
10245            type Token<'a> = <Self::Parameters<
10246                'a,
10247            > as alloy_sol_types::SolType>::Token<'a>;
10248            type Return = getMaxMagnitudeReturn;
10249            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
10250            type ReturnToken<'a> = <Self::ReturnTuple<
10251                'a,
10252            > as alloy_sol_types::SolType>::Token<'a>;
10253            const SIGNATURE: &'static str = "getMaxMagnitude(address,address)";
10254            const SELECTOR: [u8; 4] = [169u8, 51u8, 62u8, 200u8];
10255            #[inline]
10256            fn new<'a>(
10257                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10258            ) -> Self {
10259                tuple.into()
10260            }
10261            #[inline]
10262            fn tokenize(&self) -> Self::Token<'_> {
10263                (
10264                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10265                        &self.operator,
10266                    ),
10267                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10268                        &self.strategy,
10269                    ),
10270                )
10271            }
10272            #[inline]
10273            fn abi_decode_returns(
10274                data: &[u8],
10275                validate: bool,
10276            ) -> alloy_sol_types::Result<Self::Return> {
10277                <Self::ReturnTuple<
10278                    '_,
10279                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10280                    .map(Into::into)
10281            }
10282        }
10283    };
10284    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10285    /**Function with signature `getMaxMagnitudes(address[],address)` and selector `0x4a10ffe5`.
10286```solidity
10287function getMaxMagnitudes(address[] memory operators, address strategy) external view returns (uint64[] memory);
10288```*/
10289    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10290    #[derive(Clone)]
10291    pub struct getMaxMagnitudes_0Call {
10292        #[allow(missing_docs)]
10293        pub operators: alloy::sol_types::private::Vec<
10294            alloy::sol_types::private::Address,
10295        >,
10296        #[allow(missing_docs)]
10297        pub strategy: alloy::sol_types::private::Address,
10298    }
10299    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10300    ///Container type for the return parameters of the [`getMaxMagnitudes(address[],address)`](getMaxMagnitudes_0Call) function.
10301    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10302    #[derive(Clone)]
10303    pub struct getMaxMagnitudes_0Return {
10304        #[allow(missing_docs)]
10305        pub _0: alloy::sol_types::private::Vec<u64>,
10306    }
10307    #[allow(
10308        non_camel_case_types,
10309        non_snake_case,
10310        clippy::pub_underscore_fields,
10311        clippy::style
10312    )]
10313    const _: () = {
10314        use alloy::sol_types as alloy_sol_types;
10315        {
10316            #[doc(hidden)]
10317            type UnderlyingSolTuple<'a> = (
10318                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10319                alloy::sol_types::sol_data::Address,
10320            );
10321            #[doc(hidden)]
10322            type UnderlyingRustTuple<'a> = (
10323                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
10324                alloy::sol_types::private::Address,
10325            );
10326            #[cfg(test)]
10327            #[allow(dead_code, unreachable_patterns)]
10328            fn _type_assertion(
10329                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10330            ) {
10331                match _t {
10332                    alloy_sol_types::private::AssertTypeEq::<
10333                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10334                    >(_) => {}
10335                }
10336            }
10337            #[automatically_derived]
10338            #[doc(hidden)]
10339            impl ::core::convert::From<getMaxMagnitudes_0Call>
10340            for UnderlyingRustTuple<'_> {
10341                fn from(value: getMaxMagnitudes_0Call) -> Self {
10342                    (value.operators, value.strategy)
10343                }
10344            }
10345            #[automatically_derived]
10346            #[doc(hidden)]
10347            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10348            for getMaxMagnitudes_0Call {
10349                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10350                    Self {
10351                        operators: tuple.0,
10352                        strategy: tuple.1,
10353                    }
10354                }
10355            }
10356        }
10357        {
10358            #[doc(hidden)]
10359            type UnderlyingSolTuple<'a> = (
10360                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
10361            );
10362            #[doc(hidden)]
10363            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec<u64>,);
10364            #[cfg(test)]
10365            #[allow(dead_code, unreachable_patterns)]
10366            fn _type_assertion(
10367                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10368            ) {
10369                match _t {
10370                    alloy_sol_types::private::AssertTypeEq::<
10371                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10372                    >(_) => {}
10373                }
10374            }
10375            #[automatically_derived]
10376            #[doc(hidden)]
10377            impl ::core::convert::From<getMaxMagnitudes_0Return>
10378            for UnderlyingRustTuple<'_> {
10379                fn from(value: getMaxMagnitudes_0Return) -> Self {
10380                    (value._0,)
10381                }
10382            }
10383            #[automatically_derived]
10384            #[doc(hidden)]
10385            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10386            for getMaxMagnitudes_0Return {
10387                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10388                    Self { _0: tuple.0 }
10389                }
10390            }
10391        }
10392        #[automatically_derived]
10393        impl alloy_sol_types::SolCall for getMaxMagnitudes_0Call {
10394            type Parameters<'a> = (
10395                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10396                alloy::sol_types::sol_data::Address,
10397            );
10398            type Token<'a> = <Self::Parameters<
10399                'a,
10400            > as alloy_sol_types::SolType>::Token<'a>;
10401            type Return = getMaxMagnitudes_0Return;
10402            type ReturnTuple<'a> = (
10403                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
10404            );
10405            type ReturnToken<'a> = <Self::ReturnTuple<
10406                'a,
10407            > as alloy_sol_types::SolType>::Token<'a>;
10408            const SIGNATURE: &'static str = "getMaxMagnitudes(address[],address)";
10409            const SELECTOR: [u8; 4] = [74u8, 16u8, 255u8, 229u8];
10410            #[inline]
10411            fn new<'a>(
10412                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10413            ) -> Self {
10414                tuple.into()
10415            }
10416            #[inline]
10417            fn tokenize(&self) -> Self::Token<'_> {
10418                (
10419                    <alloy::sol_types::sol_data::Array<
10420                        alloy::sol_types::sol_data::Address,
10421                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
10422                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10423                        &self.strategy,
10424                    ),
10425                )
10426            }
10427            #[inline]
10428            fn abi_decode_returns(
10429                data: &[u8],
10430                validate: bool,
10431            ) -> alloy_sol_types::Result<Self::Return> {
10432                <Self::ReturnTuple<
10433                    '_,
10434                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10435                    .map(Into::into)
10436            }
10437        }
10438    };
10439    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10440    /**Function with signature `getMaxMagnitudes(address,address[])` and selector `0x547afb87`.
10441```solidity
10442function getMaxMagnitudes(address operator, address[] memory strategies) external view returns (uint64[] memory);
10443```*/
10444    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10445    #[derive(Clone)]
10446    pub struct getMaxMagnitudes_1Call {
10447        #[allow(missing_docs)]
10448        pub operator: alloy::sol_types::private::Address,
10449        #[allow(missing_docs)]
10450        pub strategies: alloy::sol_types::private::Vec<
10451            alloy::sol_types::private::Address,
10452        >,
10453    }
10454    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10455    ///Container type for the return parameters of the [`getMaxMagnitudes(address,address[])`](getMaxMagnitudes_1Call) function.
10456    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10457    #[derive(Clone)]
10458    pub struct getMaxMagnitudes_1Return {
10459        #[allow(missing_docs)]
10460        pub _0: alloy::sol_types::private::Vec<u64>,
10461    }
10462    #[allow(
10463        non_camel_case_types,
10464        non_snake_case,
10465        clippy::pub_underscore_fields,
10466        clippy::style
10467    )]
10468    const _: () = {
10469        use alloy::sol_types as alloy_sol_types;
10470        {
10471            #[doc(hidden)]
10472            type UnderlyingSolTuple<'a> = (
10473                alloy::sol_types::sol_data::Address,
10474                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10475            );
10476            #[doc(hidden)]
10477            type UnderlyingRustTuple<'a> = (
10478                alloy::sol_types::private::Address,
10479                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
10480            );
10481            #[cfg(test)]
10482            #[allow(dead_code, unreachable_patterns)]
10483            fn _type_assertion(
10484                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10485            ) {
10486                match _t {
10487                    alloy_sol_types::private::AssertTypeEq::<
10488                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10489                    >(_) => {}
10490                }
10491            }
10492            #[automatically_derived]
10493            #[doc(hidden)]
10494            impl ::core::convert::From<getMaxMagnitudes_1Call>
10495            for UnderlyingRustTuple<'_> {
10496                fn from(value: getMaxMagnitudes_1Call) -> Self {
10497                    (value.operator, value.strategies)
10498                }
10499            }
10500            #[automatically_derived]
10501            #[doc(hidden)]
10502            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10503            for getMaxMagnitudes_1Call {
10504                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10505                    Self {
10506                        operator: tuple.0,
10507                        strategies: tuple.1,
10508                    }
10509                }
10510            }
10511        }
10512        {
10513            #[doc(hidden)]
10514            type UnderlyingSolTuple<'a> = (
10515                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
10516            );
10517            #[doc(hidden)]
10518            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec<u64>,);
10519            #[cfg(test)]
10520            #[allow(dead_code, unreachable_patterns)]
10521            fn _type_assertion(
10522                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10523            ) {
10524                match _t {
10525                    alloy_sol_types::private::AssertTypeEq::<
10526                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10527                    >(_) => {}
10528                }
10529            }
10530            #[automatically_derived]
10531            #[doc(hidden)]
10532            impl ::core::convert::From<getMaxMagnitudes_1Return>
10533            for UnderlyingRustTuple<'_> {
10534                fn from(value: getMaxMagnitudes_1Return) -> Self {
10535                    (value._0,)
10536                }
10537            }
10538            #[automatically_derived]
10539            #[doc(hidden)]
10540            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10541            for getMaxMagnitudes_1Return {
10542                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10543                    Self { _0: tuple.0 }
10544                }
10545            }
10546        }
10547        #[automatically_derived]
10548        impl alloy_sol_types::SolCall for getMaxMagnitudes_1Call {
10549            type Parameters<'a> = (
10550                alloy::sol_types::sol_data::Address,
10551                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10552            );
10553            type Token<'a> = <Self::Parameters<
10554                'a,
10555            > as alloy_sol_types::SolType>::Token<'a>;
10556            type Return = getMaxMagnitudes_1Return;
10557            type ReturnTuple<'a> = (
10558                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
10559            );
10560            type ReturnToken<'a> = <Self::ReturnTuple<
10561                'a,
10562            > as alloy_sol_types::SolType>::Token<'a>;
10563            const SIGNATURE: &'static str = "getMaxMagnitudes(address,address[])";
10564            const SELECTOR: [u8; 4] = [84u8, 122u8, 251u8, 135u8];
10565            #[inline]
10566            fn new<'a>(
10567                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10568            ) -> Self {
10569                tuple.into()
10570            }
10571            #[inline]
10572            fn tokenize(&self) -> Self::Token<'_> {
10573                (
10574                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10575                        &self.operator,
10576                    ),
10577                    <alloy::sol_types::sol_data::Array<
10578                        alloy::sol_types::sol_data::Address,
10579                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
10580                )
10581            }
10582            #[inline]
10583            fn abi_decode_returns(
10584                data: &[u8],
10585                validate: bool,
10586            ) -> alloy_sol_types::Result<Self::Return> {
10587                <Self::ReturnTuple<
10588                    '_,
10589                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10590                    .map(Into::into)
10591            }
10592        }
10593    };
10594    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10595    /**Function with signature `getMaxMagnitudesAtBlock(address,address[],uint32)` and selector `0x94d7d00c`.
10596```solidity
10597function getMaxMagnitudesAtBlock(address operator, address[] memory strategies, uint32 blockNumber) external view returns (uint64[] memory);
10598```*/
10599    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10600    #[derive(Clone)]
10601    pub struct getMaxMagnitudesAtBlockCall {
10602        #[allow(missing_docs)]
10603        pub operator: alloy::sol_types::private::Address,
10604        #[allow(missing_docs)]
10605        pub strategies: alloy::sol_types::private::Vec<
10606            alloy::sol_types::private::Address,
10607        >,
10608        #[allow(missing_docs)]
10609        pub blockNumber: u32,
10610    }
10611    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10612    ///Container type for the return parameters of the [`getMaxMagnitudesAtBlock(address,address[],uint32)`](getMaxMagnitudesAtBlockCall) function.
10613    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10614    #[derive(Clone)]
10615    pub struct getMaxMagnitudesAtBlockReturn {
10616        #[allow(missing_docs)]
10617        pub _0: alloy::sol_types::private::Vec<u64>,
10618    }
10619    #[allow(
10620        non_camel_case_types,
10621        non_snake_case,
10622        clippy::pub_underscore_fields,
10623        clippy::style
10624    )]
10625    const _: () = {
10626        use alloy::sol_types as alloy_sol_types;
10627        {
10628            #[doc(hidden)]
10629            type UnderlyingSolTuple<'a> = (
10630                alloy::sol_types::sol_data::Address,
10631                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10632                alloy::sol_types::sol_data::Uint<32>,
10633            );
10634            #[doc(hidden)]
10635            type UnderlyingRustTuple<'a> = (
10636                alloy::sol_types::private::Address,
10637                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
10638                u32,
10639            );
10640            #[cfg(test)]
10641            #[allow(dead_code, unreachable_patterns)]
10642            fn _type_assertion(
10643                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10644            ) {
10645                match _t {
10646                    alloy_sol_types::private::AssertTypeEq::<
10647                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10648                    >(_) => {}
10649                }
10650            }
10651            #[automatically_derived]
10652            #[doc(hidden)]
10653            impl ::core::convert::From<getMaxMagnitudesAtBlockCall>
10654            for UnderlyingRustTuple<'_> {
10655                fn from(value: getMaxMagnitudesAtBlockCall) -> Self {
10656                    (value.operator, value.strategies, value.blockNumber)
10657                }
10658            }
10659            #[automatically_derived]
10660            #[doc(hidden)]
10661            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10662            for getMaxMagnitudesAtBlockCall {
10663                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10664                    Self {
10665                        operator: tuple.0,
10666                        strategies: tuple.1,
10667                        blockNumber: tuple.2,
10668                    }
10669                }
10670            }
10671        }
10672        {
10673            #[doc(hidden)]
10674            type UnderlyingSolTuple<'a> = (
10675                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
10676            );
10677            #[doc(hidden)]
10678            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec<u64>,);
10679            #[cfg(test)]
10680            #[allow(dead_code, unreachable_patterns)]
10681            fn _type_assertion(
10682                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10683            ) {
10684                match _t {
10685                    alloy_sol_types::private::AssertTypeEq::<
10686                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10687                    >(_) => {}
10688                }
10689            }
10690            #[automatically_derived]
10691            #[doc(hidden)]
10692            impl ::core::convert::From<getMaxMagnitudesAtBlockReturn>
10693            for UnderlyingRustTuple<'_> {
10694                fn from(value: getMaxMagnitudesAtBlockReturn) -> Self {
10695                    (value._0,)
10696                }
10697            }
10698            #[automatically_derived]
10699            #[doc(hidden)]
10700            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10701            for getMaxMagnitudesAtBlockReturn {
10702                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10703                    Self { _0: tuple.0 }
10704                }
10705            }
10706        }
10707        #[automatically_derived]
10708        impl alloy_sol_types::SolCall for getMaxMagnitudesAtBlockCall {
10709            type Parameters<'a> = (
10710                alloy::sol_types::sol_data::Address,
10711                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10712                alloy::sol_types::sol_data::Uint<32>,
10713            );
10714            type Token<'a> = <Self::Parameters<
10715                'a,
10716            > as alloy_sol_types::SolType>::Token<'a>;
10717            type Return = getMaxMagnitudesAtBlockReturn;
10718            type ReturnTuple<'a> = (
10719                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
10720            );
10721            type ReturnToken<'a> = <Self::ReturnTuple<
10722                'a,
10723            > as alloy_sol_types::SolType>::Token<'a>;
10724            const SIGNATURE: &'static str = "getMaxMagnitudesAtBlock(address,address[],uint32)";
10725            const SELECTOR: [u8; 4] = [148u8, 215u8, 208u8, 12u8];
10726            #[inline]
10727            fn new<'a>(
10728                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10729            ) -> Self {
10730                tuple.into()
10731            }
10732            #[inline]
10733            fn tokenize(&self) -> Self::Token<'_> {
10734                (
10735                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10736                        &self.operator,
10737                    ),
10738                    <alloy::sol_types::sol_data::Array<
10739                        alloy::sol_types::sol_data::Address,
10740                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
10741                    <alloy::sol_types::sol_data::Uint<
10742                        32,
10743                    > as alloy_sol_types::SolType>::tokenize(&self.blockNumber),
10744                )
10745            }
10746            #[inline]
10747            fn abi_decode_returns(
10748                data: &[u8],
10749                validate: bool,
10750            ) -> alloy_sol_types::Result<Self::Return> {
10751                <Self::ReturnTuple<
10752                    '_,
10753                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10754                    .map(Into::into)
10755            }
10756        }
10757    };
10758    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10759    /**Function with signature `getMemberCount((address,uint32))` and selector `0xb2447af7`.
10760```solidity
10761function getMemberCount(OperatorSet memory operatorSet) external view returns (uint256);
10762```*/
10763    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10764    #[derive(Clone)]
10765    pub struct getMemberCountCall {
10766        #[allow(missing_docs)]
10767        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
10768    }
10769    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10770    ///Container type for the return parameters of the [`getMemberCount((address,uint32))`](getMemberCountCall) function.
10771    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10772    #[derive(Clone)]
10773    pub struct getMemberCountReturn {
10774        #[allow(missing_docs)]
10775        pub _0: alloy::sol_types::private::primitives::aliases::U256,
10776    }
10777    #[allow(
10778        non_camel_case_types,
10779        non_snake_case,
10780        clippy::pub_underscore_fields,
10781        clippy::style
10782    )]
10783    const _: () = {
10784        use alloy::sol_types as alloy_sol_types;
10785        {
10786            #[doc(hidden)]
10787            type UnderlyingSolTuple<'a> = (OperatorSet,);
10788            #[doc(hidden)]
10789            type UnderlyingRustTuple<'a> = (
10790                <OperatorSet as alloy::sol_types::SolType>::RustType,
10791            );
10792            #[cfg(test)]
10793            #[allow(dead_code, unreachable_patterns)]
10794            fn _type_assertion(
10795                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10796            ) {
10797                match _t {
10798                    alloy_sol_types::private::AssertTypeEq::<
10799                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10800                    >(_) => {}
10801                }
10802            }
10803            #[automatically_derived]
10804            #[doc(hidden)]
10805            impl ::core::convert::From<getMemberCountCall> for UnderlyingRustTuple<'_> {
10806                fn from(value: getMemberCountCall) -> Self {
10807                    (value.operatorSet,)
10808                }
10809            }
10810            #[automatically_derived]
10811            #[doc(hidden)]
10812            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getMemberCountCall {
10813                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10814                    Self { operatorSet: tuple.0 }
10815                }
10816            }
10817        }
10818        {
10819            #[doc(hidden)]
10820            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
10821            #[doc(hidden)]
10822            type UnderlyingRustTuple<'a> = (
10823                alloy::sol_types::private::primitives::aliases::U256,
10824            );
10825            #[cfg(test)]
10826            #[allow(dead_code, unreachable_patterns)]
10827            fn _type_assertion(
10828                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10829            ) {
10830                match _t {
10831                    alloy_sol_types::private::AssertTypeEq::<
10832                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10833                    >(_) => {}
10834                }
10835            }
10836            #[automatically_derived]
10837            #[doc(hidden)]
10838            impl ::core::convert::From<getMemberCountReturn>
10839            for UnderlyingRustTuple<'_> {
10840                fn from(value: getMemberCountReturn) -> Self {
10841                    (value._0,)
10842                }
10843            }
10844            #[automatically_derived]
10845            #[doc(hidden)]
10846            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10847            for getMemberCountReturn {
10848                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10849                    Self { _0: tuple.0 }
10850                }
10851            }
10852        }
10853        #[automatically_derived]
10854        impl alloy_sol_types::SolCall for getMemberCountCall {
10855            type Parameters<'a> = (OperatorSet,);
10856            type Token<'a> = <Self::Parameters<
10857                'a,
10858            > as alloy_sol_types::SolType>::Token<'a>;
10859            type Return = getMemberCountReturn;
10860            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
10861            type ReturnToken<'a> = <Self::ReturnTuple<
10862                'a,
10863            > as alloy_sol_types::SolType>::Token<'a>;
10864            const SIGNATURE: &'static str = "getMemberCount((address,uint32))";
10865            const SELECTOR: [u8; 4] = [178u8, 68u8, 122u8, 247u8];
10866            #[inline]
10867            fn new<'a>(
10868                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10869            ) -> Self {
10870                tuple.into()
10871            }
10872            #[inline]
10873            fn tokenize(&self) -> Self::Token<'_> {
10874                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
10875            }
10876            #[inline]
10877            fn abi_decode_returns(
10878                data: &[u8],
10879                validate: bool,
10880            ) -> alloy_sol_types::Result<Self::Return> {
10881                <Self::ReturnTuple<
10882                    '_,
10883                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10884                    .map(Into::into)
10885            }
10886        }
10887    };
10888    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10889    /**Function with signature `getMembers((address,uint32))` and selector `0x6e875dba`.
10890```solidity
10891function getMembers(OperatorSet memory operatorSet) external view returns (address[] memory);
10892```*/
10893    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10894    #[derive(Clone)]
10895    pub struct getMembersCall {
10896        #[allow(missing_docs)]
10897        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
10898    }
10899    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10900    ///Container type for the return parameters of the [`getMembers((address,uint32))`](getMembersCall) function.
10901    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10902    #[derive(Clone)]
10903    pub struct getMembersReturn {
10904        #[allow(missing_docs)]
10905        pub _0: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
10906    }
10907    #[allow(
10908        non_camel_case_types,
10909        non_snake_case,
10910        clippy::pub_underscore_fields,
10911        clippy::style
10912    )]
10913    const _: () = {
10914        use alloy::sol_types as alloy_sol_types;
10915        {
10916            #[doc(hidden)]
10917            type UnderlyingSolTuple<'a> = (OperatorSet,);
10918            #[doc(hidden)]
10919            type UnderlyingRustTuple<'a> = (
10920                <OperatorSet as alloy::sol_types::SolType>::RustType,
10921            );
10922            #[cfg(test)]
10923            #[allow(dead_code, unreachable_patterns)]
10924            fn _type_assertion(
10925                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10926            ) {
10927                match _t {
10928                    alloy_sol_types::private::AssertTypeEq::<
10929                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10930                    >(_) => {}
10931                }
10932            }
10933            #[automatically_derived]
10934            #[doc(hidden)]
10935            impl ::core::convert::From<getMembersCall> for UnderlyingRustTuple<'_> {
10936                fn from(value: getMembersCall) -> Self {
10937                    (value.operatorSet,)
10938                }
10939            }
10940            #[automatically_derived]
10941            #[doc(hidden)]
10942            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getMembersCall {
10943                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10944                    Self { operatorSet: tuple.0 }
10945                }
10946            }
10947        }
10948        {
10949            #[doc(hidden)]
10950            type UnderlyingSolTuple<'a> = (
10951                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10952            );
10953            #[doc(hidden)]
10954            type UnderlyingRustTuple<'a> = (
10955                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
10956            );
10957            #[cfg(test)]
10958            #[allow(dead_code, unreachable_patterns)]
10959            fn _type_assertion(
10960                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10961            ) {
10962                match _t {
10963                    alloy_sol_types::private::AssertTypeEq::<
10964                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10965                    >(_) => {}
10966                }
10967            }
10968            #[automatically_derived]
10969            #[doc(hidden)]
10970            impl ::core::convert::From<getMembersReturn> for UnderlyingRustTuple<'_> {
10971                fn from(value: getMembersReturn) -> Self {
10972                    (value._0,)
10973                }
10974            }
10975            #[automatically_derived]
10976            #[doc(hidden)]
10977            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getMembersReturn {
10978                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10979                    Self { _0: tuple.0 }
10980                }
10981            }
10982        }
10983        #[automatically_derived]
10984        impl alloy_sol_types::SolCall for getMembersCall {
10985            type Parameters<'a> = (OperatorSet,);
10986            type Token<'a> = <Self::Parameters<
10987                'a,
10988            > as alloy_sol_types::SolType>::Token<'a>;
10989            type Return = getMembersReturn;
10990            type ReturnTuple<'a> = (
10991                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10992            );
10993            type ReturnToken<'a> = <Self::ReturnTuple<
10994                'a,
10995            > as alloy_sol_types::SolType>::Token<'a>;
10996            const SIGNATURE: &'static str = "getMembers((address,uint32))";
10997            const SELECTOR: [u8; 4] = [110u8, 135u8, 93u8, 186u8];
10998            #[inline]
10999            fn new<'a>(
11000                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11001            ) -> Self {
11002                tuple.into()
11003            }
11004            #[inline]
11005            fn tokenize(&self) -> Self::Token<'_> {
11006                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
11007            }
11008            #[inline]
11009            fn abi_decode_returns(
11010                data: &[u8],
11011                validate: bool,
11012            ) -> alloy_sol_types::Result<Self::Return> {
11013                <Self::ReturnTuple<
11014                    '_,
11015                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11016                    .map(Into::into)
11017            }
11018        }
11019    };
11020    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11021    /**Function with signature `getMinimumSlashableStake((address,uint32),address[],address[],uint32)` and selector `0x2bab2c4a`.
11022```solidity
11023function getMinimumSlashableStake(OperatorSet memory operatorSet, address[] memory operators, address[] memory strategies, uint32 futureBlock) external view returns (uint256[][] memory slashableStake);
11024```*/
11025    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11026    #[derive(Clone)]
11027    pub struct getMinimumSlashableStakeCall {
11028        #[allow(missing_docs)]
11029        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
11030        #[allow(missing_docs)]
11031        pub operators: alloy::sol_types::private::Vec<
11032            alloy::sol_types::private::Address,
11033        >,
11034        #[allow(missing_docs)]
11035        pub strategies: alloy::sol_types::private::Vec<
11036            alloy::sol_types::private::Address,
11037        >,
11038        #[allow(missing_docs)]
11039        pub futureBlock: u32,
11040    }
11041    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11042    ///Container type for the return parameters of the [`getMinimumSlashableStake((address,uint32),address[],address[],uint32)`](getMinimumSlashableStakeCall) function.
11043    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11044    #[derive(Clone)]
11045    pub struct getMinimumSlashableStakeReturn {
11046        #[allow(missing_docs)]
11047        pub slashableStake: alloy::sol_types::private::Vec<
11048            alloy::sol_types::private::Vec<
11049                alloy::sol_types::private::primitives::aliases::U256,
11050            >,
11051        >,
11052    }
11053    #[allow(
11054        non_camel_case_types,
11055        non_snake_case,
11056        clippy::pub_underscore_fields,
11057        clippy::style
11058    )]
11059    const _: () = {
11060        use alloy::sol_types as alloy_sol_types;
11061        {
11062            #[doc(hidden)]
11063            type UnderlyingSolTuple<'a> = (
11064                OperatorSet,
11065                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11066                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11067                alloy::sol_types::sol_data::Uint<32>,
11068            );
11069            #[doc(hidden)]
11070            type UnderlyingRustTuple<'a> = (
11071                <OperatorSet as alloy::sol_types::SolType>::RustType,
11072                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11073                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11074                u32,
11075            );
11076            #[cfg(test)]
11077            #[allow(dead_code, unreachable_patterns)]
11078            fn _type_assertion(
11079                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11080            ) {
11081                match _t {
11082                    alloy_sol_types::private::AssertTypeEq::<
11083                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11084                    >(_) => {}
11085                }
11086            }
11087            #[automatically_derived]
11088            #[doc(hidden)]
11089            impl ::core::convert::From<getMinimumSlashableStakeCall>
11090            for UnderlyingRustTuple<'_> {
11091                fn from(value: getMinimumSlashableStakeCall) -> Self {
11092                    (
11093                        value.operatorSet,
11094                        value.operators,
11095                        value.strategies,
11096                        value.futureBlock,
11097                    )
11098                }
11099            }
11100            #[automatically_derived]
11101            #[doc(hidden)]
11102            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11103            for getMinimumSlashableStakeCall {
11104                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11105                    Self {
11106                        operatorSet: tuple.0,
11107                        operators: tuple.1,
11108                        strategies: tuple.2,
11109                        futureBlock: tuple.3,
11110                    }
11111                }
11112            }
11113        }
11114        {
11115            #[doc(hidden)]
11116            type UnderlyingSolTuple<'a> = (
11117                alloy::sol_types::sol_data::Array<
11118                    alloy::sol_types::sol_data::Array<
11119                        alloy::sol_types::sol_data::Uint<256>,
11120                    >,
11121                >,
11122            );
11123            #[doc(hidden)]
11124            type UnderlyingRustTuple<'a> = (
11125                alloy::sol_types::private::Vec<
11126                    alloy::sol_types::private::Vec<
11127                        alloy::sol_types::private::primitives::aliases::U256,
11128                    >,
11129                >,
11130            );
11131            #[cfg(test)]
11132            #[allow(dead_code, unreachable_patterns)]
11133            fn _type_assertion(
11134                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11135            ) {
11136                match _t {
11137                    alloy_sol_types::private::AssertTypeEq::<
11138                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11139                    >(_) => {}
11140                }
11141            }
11142            #[automatically_derived]
11143            #[doc(hidden)]
11144            impl ::core::convert::From<getMinimumSlashableStakeReturn>
11145            for UnderlyingRustTuple<'_> {
11146                fn from(value: getMinimumSlashableStakeReturn) -> Self {
11147                    (value.slashableStake,)
11148                }
11149            }
11150            #[automatically_derived]
11151            #[doc(hidden)]
11152            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11153            for getMinimumSlashableStakeReturn {
11154                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11155                    Self { slashableStake: tuple.0 }
11156                }
11157            }
11158        }
11159        #[automatically_derived]
11160        impl alloy_sol_types::SolCall for getMinimumSlashableStakeCall {
11161            type Parameters<'a> = (
11162                OperatorSet,
11163                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11164                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11165                alloy::sol_types::sol_data::Uint<32>,
11166            );
11167            type Token<'a> = <Self::Parameters<
11168                'a,
11169            > as alloy_sol_types::SolType>::Token<'a>;
11170            type Return = getMinimumSlashableStakeReturn;
11171            type ReturnTuple<'a> = (
11172                alloy::sol_types::sol_data::Array<
11173                    alloy::sol_types::sol_data::Array<
11174                        alloy::sol_types::sol_data::Uint<256>,
11175                    >,
11176                >,
11177            );
11178            type ReturnToken<'a> = <Self::ReturnTuple<
11179                'a,
11180            > as alloy_sol_types::SolType>::Token<'a>;
11181            const SIGNATURE: &'static str = "getMinimumSlashableStake((address,uint32),address[],address[],uint32)";
11182            const SELECTOR: [u8; 4] = [43u8, 171u8, 44u8, 74u8];
11183            #[inline]
11184            fn new<'a>(
11185                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11186            ) -> Self {
11187                tuple.into()
11188            }
11189            #[inline]
11190            fn tokenize(&self) -> Self::Token<'_> {
11191                (
11192                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
11193                        &self.operatorSet,
11194                    ),
11195                    <alloy::sol_types::sol_data::Array<
11196                        alloy::sol_types::sol_data::Address,
11197                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
11198                    <alloy::sol_types::sol_data::Array<
11199                        alloy::sol_types::sol_data::Address,
11200                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
11201                    <alloy::sol_types::sol_data::Uint<
11202                        32,
11203                    > as alloy_sol_types::SolType>::tokenize(&self.futureBlock),
11204                )
11205            }
11206            #[inline]
11207            fn abi_decode_returns(
11208                data: &[u8],
11209                validate: bool,
11210            ) -> alloy_sol_types::Result<Self::Return> {
11211                <Self::ReturnTuple<
11212                    '_,
11213                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11214                    .map(Into::into)
11215            }
11216        }
11217    };
11218    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11219    /**Function with signature `getOperatorSetCount(address)` and selector `0xba1a84e5`.
11220```solidity
11221function getOperatorSetCount(address avs) external view returns (uint256);
11222```*/
11223    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11224    #[derive(Clone)]
11225    pub struct getOperatorSetCountCall {
11226        #[allow(missing_docs)]
11227        pub avs: alloy::sol_types::private::Address,
11228    }
11229    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11230    ///Container type for the return parameters of the [`getOperatorSetCount(address)`](getOperatorSetCountCall) function.
11231    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11232    #[derive(Clone)]
11233    pub struct getOperatorSetCountReturn {
11234        #[allow(missing_docs)]
11235        pub _0: alloy::sol_types::private::primitives::aliases::U256,
11236    }
11237    #[allow(
11238        non_camel_case_types,
11239        non_snake_case,
11240        clippy::pub_underscore_fields,
11241        clippy::style
11242    )]
11243    const _: () = {
11244        use alloy::sol_types as alloy_sol_types;
11245        {
11246            #[doc(hidden)]
11247            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
11248            #[doc(hidden)]
11249            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
11250            #[cfg(test)]
11251            #[allow(dead_code, unreachable_patterns)]
11252            fn _type_assertion(
11253                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11254            ) {
11255                match _t {
11256                    alloy_sol_types::private::AssertTypeEq::<
11257                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11258                    >(_) => {}
11259                }
11260            }
11261            #[automatically_derived]
11262            #[doc(hidden)]
11263            impl ::core::convert::From<getOperatorSetCountCall>
11264            for UnderlyingRustTuple<'_> {
11265                fn from(value: getOperatorSetCountCall) -> Self {
11266                    (value.avs,)
11267                }
11268            }
11269            #[automatically_derived]
11270            #[doc(hidden)]
11271            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11272            for getOperatorSetCountCall {
11273                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11274                    Self { avs: tuple.0 }
11275                }
11276            }
11277        }
11278        {
11279            #[doc(hidden)]
11280            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
11281            #[doc(hidden)]
11282            type UnderlyingRustTuple<'a> = (
11283                alloy::sol_types::private::primitives::aliases::U256,
11284            );
11285            #[cfg(test)]
11286            #[allow(dead_code, unreachable_patterns)]
11287            fn _type_assertion(
11288                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11289            ) {
11290                match _t {
11291                    alloy_sol_types::private::AssertTypeEq::<
11292                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11293                    >(_) => {}
11294                }
11295            }
11296            #[automatically_derived]
11297            #[doc(hidden)]
11298            impl ::core::convert::From<getOperatorSetCountReturn>
11299            for UnderlyingRustTuple<'_> {
11300                fn from(value: getOperatorSetCountReturn) -> Self {
11301                    (value._0,)
11302                }
11303            }
11304            #[automatically_derived]
11305            #[doc(hidden)]
11306            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11307            for getOperatorSetCountReturn {
11308                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11309                    Self { _0: tuple.0 }
11310                }
11311            }
11312        }
11313        #[automatically_derived]
11314        impl alloy_sol_types::SolCall for getOperatorSetCountCall {
11315            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
11316            type Token<'a> = <Self::Parameters<
11317                'a,
11318            > as alloy_sol_types::SolType>::Token<'a>;
11319            type Return = getOperatorSetCountReturn;
11320            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
11321            type ReturnToken<'a> = <Self::ReturnTuple<
11322                'a,
11323            > as alloy_sol_types::SolType>::Token<'a>;
11324            const SIGNATURE: &'static str = "getOperatorSetCount(address)";
11325            const SELECTOR: [u8; 4] = [186u8, 26u8, 132u8, 229u8];
11326            #[inline]
11327            fn new<'a>(
11328                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11329            ) -> Self {
11330                tuple.into()
11331            }
11332            #[inline]
11333            fn tokenize(&self) -> Self::Token<'_> {
11334                (
11335                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11336                        &self.avs,
11337                    ),
11338                )
11339            }
11340            #[inline]
11341            fn abi_decode_returns(
11342                data: &[u8],
11343                validate: bool,
11344            ) -> alloy_sol_types::Result<Self::Return> {
11345                <Self::ReturnTuple<
11346                    '_,
11347                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11348                    .map(Into::into)
11349            }
11350        }
11351    };
11352    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11353    /**Function with signature `getRegisteredSets(address)` and selector `0x79ae50cd`.
11354```solidity
11355function getRegisteredSets(address operator) external view returns (OperatorSet[] memory);
11356```*/
11357    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11358    #[derive(Clone)]
11359    pub struct getRegisteredSetsCall {
11360        #[allow(missing_docs)]
11361        pub operator: alloy::sol_types::private::Address,
11362    }
11363    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11364    ///Container type for the return parameters of the [`getRegisteredSets(address)`](getRegisteredSetsCall) function.
11365    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11366    #[derive(Clone)]
11367    pub struct getRegisteredSetsReturn {
11368        #[allow(missing_docs)]
11369        pub _0: alloy::sol_types::private::Vec<
11370            <OperatorSet as alloy::sol_types::SolType>::RustType,
11371        >,
11372    }
11373    #[allow(
11374        non_camel_case_types,
11375        non_snake_case,
11376        clippy::pub_underscore_fields,
11377        clippy::style
11378    )]
11379    const _: () = {
11380        use alloy::sol_types as alloy_sol_types;
11381        {
11382            #[doc(hidden)]
11383            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
11384            #[doc(hidden)]
11385            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
11386            #[cfg(test)]
11387            #[allow(dead_code, unreachable_patterns)]
11388            fn _type_assertion(
11389                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11390            ) {
11391                match _t {
11392                    alloy_sol_types::private::AssertTypeEq::<
11393                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11394                    >(_) => {}
11395                }
11396            }
11397            #[automatically_derived]
11398            #[doc(hidden)]
11399            impl ::core::convert::From<getRegisteredSetsCall>
11400            for UnderlyingRustTuple<'_> {
11401                fn from(value: getRegisteredSetsCall) -> Self {
11402                    (value.operator,)
11403                }
11404            }
11405            #[automatically_derived]
11406            #[doc(hidden)]
11407            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11408            for getRegisteredSetsCall {
11409                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11410                    Self { operator: tuple.0 }
11411                }
11412            }
11413        }
11414        {
11415            #[doc(hidden)]
11416            type UnderlyingSolTuple<'a> = (
11417                alloy::sol_types::sol_data::Array<OperatorSet>,
11418            );
11419            #[doc(hidden)]
11420            type UnderlyingRustTuple<'a> = (
11421                alloy::sol_types::private::Vec<
11422                    <OperatorSet as alloy::sol_types::SolType>::RustType,
11423                >,
11424            );
11425            #[cfg(test)]
11426            #[allow(dead_code, unreachable_patterns)]
11427            fn _type_assertion(
11428                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11429            ) {
11430                match _t {
11431                    alloy_sol_types::private::AssertTypeEq::<
11432                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11433                    >(_) => {}
11434                }
11435            }
11436            #[automatically_derived]
11437            #[doc(hidden)]
11438            impl ::core::convert::From<getRegisteredSetsReturn>
11439            for UnderlyingRustTuple<'_> {
11440                fn from(value: getRegisteredSetsReturn) -> Self {
11441                    (value._0,)
11442                }
11443            }
11444            #[automatically_derived]
11445            #[doc(hidden)]
11446            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11447            for getRegisteredSetsReturn {
11448                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11449                    Self { _0: tuple.0 }
11450                }
11451            }
11452        }
11453        #[automatically_derived]
11454        impl alloy_sol_types::SolCall for getRegisteredSetsCall {
11455            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
11456            type Token<'a> = <Self::Parameters<
11457                'a,
11458            > as alloy_sol_types::SolType>::Token<'a>;
11459            type Return = getRegisteredSetsReturn;
11460            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array<OperatorSet>,);
11461            type ReturnToken<'a> = <Self::ReturnTuple<
11462                'a,
11463            > as alloy_sol_types::SolType>::Token<'a>;
11464            const SIGNATURE: &'static str = "getRegisteredSets(address)";
11465            const SELECTOR: [u8; 4] = [121u8, 174u8, 80u8, 205u8];
11466            #[inline]
11467            fn new<'a>(
11468                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11469            ) -> Self {
11470                tuple.into()
11471            }
11472            #[inline]
11473            fn tokenize(&self) -> Self::Token<'_> {
11474                (
11475                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11476                        &self.operator,
11477                    ),
11478                )
11479            }
11480            #[inline]
11481            fn abi_decode_returns(
11482                data: &[u8],
11483                validate: bool,
11484            ) -> alloy_sol_types::Result<Self::Return> {
11485                <Self::ReturnTuple<
11486                    '_,
11487                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11488                    .map(Into::into)
11489            }
11490        }
11491    };
11492    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11493    /**Function with signature `getStrategiesInOperatorSet((address,uint32))` and selector `0x4177a87c`.
11494```solidity
11495function getStrategiesInOperatorSet(OperatorSet memory operatorSet) external view returns (address[] memory);
11496```*/
11497    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11498    #[derive(Clone)]
11499    pub struct getStrategiesInOperatorSetCall {
11500        #[allow(missing_docs)]
11501        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
11502    }
11503    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11504    ///Container type for the return parameters of the [`getStrategiesInOperatorSet((address,uint32))`](getStrategiesInOperatorSetCall) function.
11505    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11506    #[derive(Clone)]
11507    pub struct getStrategiesInOperatorSetReturn {
11508        #[allow(missing_docs)]
11509        pub _0: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11510    }
11511    #[allow(
11512        non_camel_case_types,
11513        non_snake_case,
11514        clippy::pub_underscore_fields,
11515        clippy::style
11516    )]
11517    const _: () = {
11518        use alloy::sol_types as alloy_sol_types;
11519        {
11520            #[doc(hidden)]
11521            type UnderlyingSolTuple<'a> = (OperatorSet,);
11522            #[doc(hidden)]
11523            type UnderlyingRustTuple<'a> = (
11524                <OperatorSet as alloy::sol_types::SolType>::RustType,
11525            );
11526            #[cfg(test)]
11527            #[allow(dead_code, unreachable_patterns)]
11528            fn _type_assertion(
11529                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11530            ) {
11531                match _t {
11532                    alloy_sol_types::private::AssertTypeEq::<
11533                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11534                    >(_) => {}
11535                }
11536            }
11537            #[automatically_derived]
11538            #[doc(hidden)]
11539            impl ::core::convert::From<getStrategiesInOperatorSetCall>
11540            for UnderlyingRustTuple<'_> {
11541                fn from(value: getStrategiesInOperatorSetCall) -> Self {
11542                    (value.operatorSet,)
11543                }
11544            }
11545            #[automatically_derived]
11546            #[doc(hidden)]
11547            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11548            for getStrategiesInOperatorSetCall {
11549                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11550                    Self { operatorSet: tuple.0 }
11551                }
11552            }
11553        }
11554        {
11555            #[doc(hidden)]
11556            type UnderlyingSolTuple<'a> = (
11557                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11558            );
11559            #[doc(hidden)]
11560            type UnderlyingRustTuple<'a> = (
11561                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11562            );
11563            #[cfg(test)]
11564            #[allow(dead_code, unreachable_patterns)]
11565            fn _type_assertion(
11566                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11567            ) {
11568                match _t {
11569                    alloy_sol_types::private::AssertTypeEq::<
11570                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11571                    >(_) => {}
11572                }
11573            }
11574            #[automatically_derived]
11575            #[doc(hidden)]
11576            impl ::core::convert::From<getStrategiesInOperatorSetReturn>
11577            for UnderlyingRustTuple<'_> {
11578                fn from(value: getStrategiesInOperatorSetReturn) -> Self {
11579                    (value._0,)
11580                }
11581            }
11582            #[automatically_derived]
11583            #[doc(hidden)]
11584            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11585            for getStrategiesInOperatorSetReturn {
11586                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11587                    Self { _0: tuple.0 }
11588                }
11589            }
11590        }
11591        #[automatically_derived]
11592        impl alloy_sol_types::SolCall for getStrategiesInOperatorSetCall {
11593            type Parameters<'a> = (OperatorSet,);
11594            type Token<'a> = <Self::Parameters<
11595                'a,
11596            > as alloy_sol_types::SolType>::Token<'a>;
11597            type Return = getStrategiesInOperatorSetReturn;
11598            type ReturnTuple<'a> = (
11599                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11600            );
11601            type ReturnToken<'a> = <Self::ReturnTuple<
11602                'a,
11603            > as alloy_sol_types::SolType>::Token<'a>;
11604            const SIGNATURE: &'static str = "getStrategiesInOperatorSet((address,uint32))";
11605            const SELECTOR: [u8; 4] = [65u8, 119u8, 168u8, 124u8];
11606            #[inline]
11607            fn new<'a>(
11608                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11609            ) -> Self {
11610                tuple.into()
11611            }
11612            #[inline]
11613            fn tokenize(&self) -> Self::Token<'_> {
11614                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
11615            }
11616            #[inline]
11617            fn abi_decode_returns(
11618                data: &[u8],
11619                validate: bool,
11620            ) -> alloy_sol_types::Result<Self::Return> {
11621                <Self::ReturnTuple<
11622                    '_,
11623                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11624                    .map(Into::into)
11625            }
11626        }
11627    };
11628    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11629    /**Function with signature `getStrategyAllocations(address,address)` and selector `0x40120dab`.
11630```solidity
11631function getStrategyAllocations(address operator, address strategy) external view returns (OperatorSet[] memory, IAllocationManagerTypes.Allocation[] memory);
11632```*/
11633    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11634    #[derive(Clone)]
11635    pub struct getStrategyAllocationsCall {
11636        #[allow(missing_docs)]
11637        pub operator: alloy::sol_types::private::Address,
11638        #[allow(missing_docs)]
11639        pub strategy: alloy::sol_types::private::Address,
11640    }
11641    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11642    ///Container type for the return parameters of the [`getStrategyAllocations(address,address)`](getStrategyAllocationsCall) function.
11643    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11644    #[derive(Clone)]
11645    pub struct getStrategyAllocationsReturn {
11646        #[allow(missing_docs)]
11647        pub _0: alloy::sol_types::private::Vec<
11648            <OperatorSet as alloy::sol_types::SolType>::RustType,
11649        >,
11650        #[allow(missing_docs)]
11651        pub _1: alloy::sol_types::private::Vec<
11652            <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
11653        >,
11654    }
11655    #[allow(
11656        non_camel_case_types,
11657        non_snake_case,
11658        clippy::pub_underscore_fields,
11659        clippy::style
11660    )]
11661    const _: () = {
11662        use alloy::sol_types as alloy_sol_types;
11663        {
11664            #[doc(hidden)]
11665            type UnderlyingSolTuple<'a> = (
11666                alloy::sol_types::sol_data::Address,
11667                alloy::sol_types::sol_data::Address,
11668            );
11669            #[doc(hidden)]
11670            type UnderlyingRustTuple<'a> = (
11671                alloy::sol_types::private::Address,
11672                alloy::sol_types::private::Address,
11673            );
11674            #[cfg(test)]
11675            #[allow(dead_code, unreachable_patterns)]
11676            fn _type_assertion(
11677                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11678            ) {
11679                match _t {
11680                    alloy_sol_types::private::AssertTypeEq::<
11681                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11682                    >(_) => {}
11683                }
11684            }
11685            #[automatically_derived]
11686            #[doc(hidden)]
11687            impl ::core::convert::From<getStrategyAllocationsCall>
11688            for UnderlyingRustTuple<'_> {
11689                fn from(value: getStrategyAllocationsCall) -> Self {
11690                    (value.operator, value.strategy)
11691                }
11692            }
11693            #[automatically_derived]
11694            #[doc(hidden)]
11695            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11696            for getStrategyAllocationsCall {
11697                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11698                    Self {
11699                        operator: tuple.0,
11700                        strategy: tuple.1,
11701                    }
11702                }
11703            }
11704        }
11705        {
11706            #[doc(hidden)]
11707            type UnderlyingSolTuple<'a> = (
11708                alloy::sol_types::sol_data::Array<OperatorSet>,
11709                alloy::sol_types::sol_data::Array<IAllocationManagerTypes::Allocation>,
11710            );
11711            #[doc(hidden)]
11712            type UnderlyingRustTuple<'a> = (
11713                alloy::sol_types::private::Vec<
11714                    <OperatorSet as alloy::sol_types::SolType>::RustType,
11715                >,
11716                alloy::sol_types::private::Vec<
11717                    <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
11718                >,
11719            );
11720            #[cfg(test)]
11721            #[allow(dead_code, unreachable_patterns)]
11722            fn _type_assertion(
11723                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11724            ) {
11725                match _t {
11726                    alloy_sol_types::private::AssertTypeEq::<
11727                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11728                    >(_) => {}
11729                }
11730            }
11731            #[automatically_derived]
11732            #[doc(hidden)]
11733            impl ::core::convert::From<getStrategyAllocationsReturn>
11734            for UnderlyingRustTuple<'_> {
11735                fn from(value: getStrategyAllocationsReturn) -> Self {
11736                    (value._0, value._1)
11737                }
11738            }
11739            #[automatically_derived]
11740            #[doc(hidden)]
11741            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11742            for getStrategyAllocationsReturn {
11743                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11744                    Self { _0: tuple.0, _1: tuple.1 }
11745                }
11746            }
11747        }
11748        #[automatically_derived]
11749        impl alloy_sol_types::SolCall for getStrategyAllocationsCall {
11750            type Parameters<'a> = (
11751                alloy::sol_types::sol_data::Address,
11752                alloy::sol_types::sol_data::Address,
11753            );
11754            type Token<'a> = <Self::Parameters<
11755                'a,
11756            > as alloy_sol_types::SolType>::Token<'a>;
11757            type Return = getStrategyAllocationsReturn;
11758            type ReturnTuple<'a> = (
11759                alloy::sol_types::sol_data::Array<OperatorSet>,
11760                alloy::sol_types::sol_data::Array<IAllocationManagerTypes::Allocation>,
11761            );
11762            type ReturnToken<'a> = <Self::ReturnTuple<
11763                'a,
11764            > as alloy_sol_types::SolType>::Token<'a>;
11765            const SIGNATURE: &'static str = "getStrategyAllocations(address,address)";
11766            const SELECTOR: [u8; 4] = [64u8, 18u8, 13u8, 171u8];
11767            #[inline]
11768            fn new<'a>(
11769                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11770            ) -> Self {
11771                tuple.into()
11772            }
11773            #[inline]
11774            fn tokenize(&self) -> Self::Token<'_> {
11775                (
11776                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11777                        &self.operator,
11778                    ),
11779                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11780                        &self.strategy,
11781                    ),
11782                )
11783            }
11784            #[inline]
11785            fn abi_decode_returns(
11786                data: &[u8],
11787                validate: bool,
11788            ) -> alloy_sol_types::Result<Self::Return> {
11789                <Self::ReturnTuple<
11790                    '_,
11791                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11792                    .map(Into::into)
11793            }
11794        }
11795    };
11796    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11797    /**Function with signature `initialize(address,uint256)` and selector `0xcd6dc687`.
11798```solidity
11799function initialize(address initialOwner, uint256 initialPausedStatus) external;
11800```*/
11801    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11802    #[derive(Clone)]
11803    pub struct initializeCall {
11804        #[allow(missing_docs)]
11805        pub initialOwner: alloy::sol_types::private::Address,
11806        #[allow(missing_docs)]
11807        pub initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
11808    }
11809    ///Container type for the return parameters of the [`initialize(address,uint256)`](initializeCall) function.
11810    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11811    #[derive(Clone)]
11812    pub struct initializeReturn {}
11813    #[allow(
11814        non_camel_case_types,
11815        non_snake_case,
11816        clippy::pub_underscore_fields,
11817        clippy::style
11818    )]
11819    const _: () = {
11820        use alloy::sol_types as alloy_sol_types;
11821        {
11822            #[doc(hidden)]
11823            type UnderlyingSolTuple<'a> = (
11824                alloy::sol_types::sol_data::Address,
11825                alloy::sol_types::sol_data::Uint<256>,
11826            );
11827            #[doc(hidden)]
11828            type UnderlyingRustTuple<'a> = (
11829                alloy::sol_types::private::Address,
11830                alloy::sol_types::private::primitives::aliases::U256,
11831            );
11832            #[cfg(test)]
11833            #[allow(dead_code, unreachable_patterns)]
11834            fn _type_assertion(
11835                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11836            ) {
11837                match _t {
11838                    alloy_sol_types::private::AssertTypeEq::<
11839                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11840                    >(_) => {}
11841                }
11842            }
11843            #[automatically_derived]
11844            #[doc(hidden)]
11845            impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
11846                fn from(value: initializeCall) -> Self {
11847                    (value.initialOwner, value.initialPausedStatus)
11848                }
11849            }
11850            #[automatically_derived]
11851            #[doc(hidden)]
11852            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
11853                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11854                    Self {
11855                        initialOwner: tuple.0,
11856                        initialPausedStatus: tuple.1,
11857                    }
11858                }
11859            }
11860        }
11861        {
11862            #[doc(hidden)]
11863            type UnderlyingSolTuple<'a> = ();
11864            #[doc(hidden)]
11865            type UnderlyingRustTuple<'a> = ();
11866            #[cfg(test)]
11867            #[allow(dead_code, unreachable_patterns)]
11868            fn _type_assertion(
11869                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11870            ) {
11871                match _t {
11872                    alloy_sol_types::private::AssertTypeEq::<
11873                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11874                    >(_) => {}
11875                }
11876            }
11877            #[automatically_derived]
11878            #[doc(hidden)]
11879            impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
11880                fn from(value: initializeReturn) -> Self {
11881                    ()
11882                }
11883            }
11884            #[automatically_derived]
11885            #[doc(hidden)]
11886            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
11887                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11888                    Self {}
11889                }
11890            }
11891        }
11892        #[automatically_derived]
11893        impl alloy_sol_types::SolCall for initializeCall {
11894            type Parameters<'a> = (
11895                alloy::sol_types::sol_data::Address,
11896                alloy::sol_types::sol_data::Uint<256>,
11897            );
11898            type Token<'a> = <Self::Parameters<
11899                'a,
11900            > as alloy_sol_types::SolType>::Token<'a>;
11901            type Return = initializeReturn;
11902            type ReturnTuple<'a> = ();
11903            type ReturnToken<'a> = <Self::ReturnTuple<
11904                'a,
11905            > as alloy_sol_types::SolType>::Token<'a>;
11906            const SIGNATURE: &'static str = "initialize(address,uint256)";
11907            const SELECTOR: [u8; 4] = [205u8, 109u8, 198u8, 135u8];
11908            #[inline]
11909            fn new<'a>(
11910                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11911            ) -> Self {
11912                tuple.into()
11913            }
11914            #[inline]
11915            fn tokenize(&self) -> Self::Token<'_> {
11916                (
11917                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11918                        &self.initialOwner,
11919                    ),
11920                    <alloy::sol_types::sol_data::Uint<
11921                        256,
11922                    > as alloy_sol_types::SolType>::tokenize(&self.initialPausedStatus),
11923                )
11924            }
11925            #[inline]
11926            fn abi_decode_returns(
11927                data: &[u8],
11928                validate: bool,
11929            ) -> alloy_sol_types::Result<Self::Return> {
11930                <Self::ReturnTuple<
11931                    '_,
11932                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11933                    .map(Into::into)
11934            }
11935        }
11936    };
11937    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11938    /**Function with signature `isMemberOfOperatorSet(address,(address,uint32))` and selector `0x670d3ba2`.
11939```solidity
11940function isMemberOfOperatorSet(address operator, OperatorSet memory operatorSet) external view returns (bool);
11941```*/
11942    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11943    #[derive(Clone)]
11944    pub struct isMemberOfOperatorSetCall {
11945        #[allow(missing_docs)]
11946        pub operator: alloy::sol_types::private::Address,
11947        #[allow(missing_docs)]
11948        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
11949    }
11950    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11951    ///Container type for the return parameters of the [`isMemberOfOperatorSet(address,(address,uint32))`](isMemberOfOperatorSetCall) function.
11952    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11953    #[derive(Clone)]
11954    pub struct isMemberOfOperatorSetReturn {
11955        #[allow(missing_docs)]
11956        pub _0: bool,
11957    }
11958    #[allow(
11959        non_camel_case_types,
11960        non_snake_case,
11961        clippy::pub_underscore_fields,
11962        clippy::style
11963    )]
11964    const _: () = {
11965        use alloy::sol_types as alloy_sol_types;
11966        {
11967            #[doc(hidden)]
11968            type UnderlyingSolTuple<'a> = (
11969                alloy::sol_types::sol_data::Address,
11970                OperatorSet,
11971            );
11972            #[doc(hidden)]
11973            type UnderlyingRustTuple<'a> = (
11974                alloy::sol_types::private::Address,
11975                <OperatorSet as alloy::sol_types::SolType>::RustType,
11976            );
11977            #[cfg(test)]
11978            #[allow(dead_code, unreachable_patterns)]
11979            fn _type_assertion(
11980                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11981            ) {
11982                match _t {
11983                    alloy_sol_types::private::AssertTypeEq::<
11984                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11985                    >(_) => {}
11986                }
11987            }
11988            #[automatically_derived]
11989            #[doc(hidden)]
11990            impl ::core::convert::From<isMemberOfOperatorSetCall>
11991            for UnderlyingRustTuple<'_> {
11992                fn from(value: isMemberOfOperatorSetCall) -> Self {
11993                    (value.operator, value.operatorSet)
11994                }
11995            }
11996            #[automatically_derived]
11997            #[doc(hidden)]
11998            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11999            for isMemberOfOperatorSetCall {
12000                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12001                    Self {
12002                        operator: tuple.0,
12003                        operatorSet: tuple.1,
12004                    }
12005                }
12006            }
12007        }
12008        {
12009            #[doc(hidden)]
12010            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12011            #[doc(hidden)]
12012            type UnderlyingRustTuple<'a> = (bool,);
12013            #[cfg(test)]
12014            #[allow(dead_code, unreachable_patterns)]
12015            fn _type_assertion(
12016                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12017            ) {
12018                match _t {
12019                    alloy_sol_types::private::AssertTypeEq::<
12020                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12021                    >(_) => {}
12022                }
12023            }
12024            #[automatically_derived]
12025            #[doc(hidden)]
12026            impl ::core::convert::From<isMemberOfOperatorSetReturn>
12027            for UnderlyingRustTuple<'_> {
12028                fn from(value: isMemberOfOperatorSetReturn) -> Self {
12029                    (value._0,)
12030                }
12031            }
12032            #[automatically_derived]
12033            #[doc(hidden)]
12034            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12035            for isMemberOfOperatorSetReturn {
12036                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12037                    Self { _0: tuple.0 }
12038                }
12039            }
12040        }
12041        #[automatically_derived]
12042        impl alloy_sol_types::SolCall for isMemberOfOperatorSetCall {
12043            type Parameters<'a> = (alloy::sol_types::sol_data::Address, OperatorSet);
12044            type Token<'a> = <Self::Parameters<
12045                'a,
12046            > as alloy_sol_types::SolType>::Token<'a>;
12047            type Return = isMemberOfOperatorSetReturn;
12048            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12049            type ReturnToken<'a> = <Self::ReturnTuple<
12050                'a,
12051            > as alloy_sol_types::SolType>::Token<'a>;
12052            const SIGNATURE: &'static str = "isMemberOfOperatorSet(address,(address,uint32))";
12053            const SELECTOR: [u8; 4] = [103u8, 13u8, 59u8, 162u8];
12054            #[inline]
12055            fn new<'a>(
12056                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12057            ) -> Self {
12058                tuple.into()
12059            }
12060            #[inline]
12061            fn tokenize(&self) -> Self::Token<'_> {
12062                (
12063                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12064                        &self.operator,
12065                    ),
12066                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
12067                        &self.operatorSet,
12068                    ),
12069                )
12070            }
12071            #[inline]
12072            fn abi_decode_returns(
12073                data: &[u8],
12074                validate: bool,
12075            ) -> alloy_sol_types::Result<Self::Return> {
12076                <Self::ReturnTuple<
12077                    '_,
12078                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12079                    .map(Into::into)
12080            }
12081        }
12082    };
12083    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12084    /**Function with signature `isOperatorSet((address,uint32))` and selector `0x260dc758`.
12085```solidity
12086function isOperatorSet(OperatorSet memory operatorSet) external view returns (bool);
12087```*/
12088    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12089    #[derive(Clone)]
12090    pub struct isOperatorSetCall {
12091        #[allow(missing_docs)]
12092        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
12093    }
12094    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12095    ///Container type for the return parameters of the [`isOperatorSet((address,uint32))`](isOperatorSetCall) function.
12096    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12097    #[derive(Clone)]
12098    pub struct isOperatorSetReturn {
12099        #[allow(missing_docs)]
12100        pub _0: bool,
12101    }
12102    #[allow(
12103        non_camel_case_types,
12104        non_snake_case,
12105        clippy::pub_underscore_fields,
12106        clippy::style
12107    )]
12108    const _: () = {
12109        use alloy::sol_types as alloy_sol_types;
12110        {
12111            #[doc(hidden)]
12112            type UnderlyingSolTuple<'a> = (OperatorSet,);
12113            #[doc(hidden)]
12114            type UnderlyingRustTuple<'a> = (
12115                <OperatorSet as alloy::sol_types::SolType>::RustType,
12116            );
12117            #[cfg(test)]
12118            #[allow(dead_code, unreachable_patterns)]
12119            fn _type_assertion(
12120                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12121            ) {
12122                match _t {
12123                    alloy_sol_types::private::AssertTypeEq::<
12124                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12125                    >(_) => {}
12126                }
12127            }
12128            #[automatically_derived]
12129            #[doc(hidden)]
12130            impl ::core::convert::From<isOperatorSetCall> for UnderlyingRustTuple<'_> {
12131                fn from(value: isOperatorSetCall) -> Self {
12132                    (value.operatorSet,)
12133                }
12134            }
12135            #[automatically_derived]
12136            #[doc(hidden)]
12137            impl ::core::convert::From<UnderlyingRustTuple<'_>> for isOperatorSetCall {
12138                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12139                    Self { operatorSet: tuple.0 }
12140                }
12141            }
12142        }
12143        {
12144            #[doc(hidden)]
12145            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12146            #[doc(hidden)]
12147            type UnderlyingRustTuple<'a> = (bool,);
12148            #[cfg(test)]
12149            #[allow(dead_code, unreachable_patterns)]
12150            fn _type_assertion(
12151                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12152            ) {
12153                match _t {
12154                    alloy_sol_types::private::AssertTypeEq::<
12155                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12156                    >(_) => {}
12157                }
12158            }
12159            #[automatically_derived]
12160            #[doc(hidden)]
12161            impl ::core::convert::From<isOperatorSetReturn> for UnderlyingRustTuple<'_> {
12162                fn from(value: isOperatorSetReturn) -> Self {
12163                    (value._0,)
12164                }
12165            }
12166            #[automatically_derived]
12167            #[doc(hidden)]
12168            impl ::core::convert::From<UnderlyingRustTuple<'_>> for isOperatorSetReturn {
12169                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12170                    Self { _0: tuple.0 }
12171                }
12172            }
12173        }
12174        #[automatically_derived]
12175        impl alloy_sol_types::SolCall for isOperatorSetCall {
12176            type Parameters<'a> = (OperatorSet,);
12177            type Token<'a> = <Self::Parameters<
12178                'a,
12179            > as alloy_sol_types::SolType>::Token<'a>;
12180            type Return = isOperatorSetReturn;
12181            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12182            type ReturnToken<'a> = <Self::ReturnTuple<
12183                'a,
12184            > as alloy_sol_types::SolType>::Token<'a>;
12185            const SIGNATURE: &'static str = "isOperatorSet((address,uint32))";
12186            const SELECTOR: [u8; 4] = [38u8, 13u8, 199u8, 88u8];
12187            #[inline]
12188            fn new<'a>(
12189                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12190            ) -> Self {
12191                tuple.into()
12192            }
12193            #[inline]
12194            fn tokenize(&self) -> Self::Token<'_> {
12195                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
12196            }
12197            #[inline]
12198            fn abi_decode_returns(
12199                data: &[u8],
12200                validate: bool,
12201            ) -> alloy_sol_types::Result<Self::Return> {
12202                <Self::ReturnTuple<
12203                    '_,
12204                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12205                    .map(Into::into)
12206            }
12207        }
12208    };
12209    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12210    /**Function with signature `isOperatorSlashable(address,(address,uint32))` and selector `0x1352c3e6`.
12211```solidity
12212function isOperatorSlashable(address operator, OperatorSet memory operatorSet) external view returns (bool);
12213```*/
12214    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12215    #[derive(Clone)]
12216    pub struct isOperatorSlashableCall {
12217        #[allow(missing_docs)]
12218        pub operator: alloy::sol_types::private::Address,
12219        #[allow(missing_docs)]
12220        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
12221    }
12222    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12223    ///Container type for the return parameters of the [`isOperatorSlashable(address,(address,uint32))`](isOperatorSlashableCall) function.
12224    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12225    #[derive(Clone)]
12226    pub struct isOperatorSlashableReturn {
12227        #[allow(missing_docs)]
12228        pub _0: bool,
12229    }
12230    #[allow(
12231        non_camel_case_types,
12232        non_snake_case,
12233        clippy::pub_underscore_fields,
12234        clippy::style
12235    )]
12236    const _: () = {
12237        use alloy::sol_types as alloy_sol_types;
12238        {
12239            #[doc(hidden)]
12240            type UnderlyingSolTuple<'a> = (
12241                alloy::sol_types::sol_data::Address,
12242                OperatorSet,
12243            );
12244            #[doc(hidden)]
12245            type UnderlyingRustTuple<'a> = (
12246                alloy::sol_types::private::Address,
12247                <OperatorSet as alloy::sol_types::SolType>::RustType,
12248            );
12249            #[cfg(test)]
12250            #[allow(dead_code, unreachable_patterns)]
12251            fn _type_assertion(
12252                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12253            ) {
12254                match _t {
12255                    alloy_sol_types::private::AssertTypeEq::<
12256                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12257                    >(_) => {}
12258                }
12259            }
12260            #[automatically_derived]
12261            #[doc(hidden)]
12262            impl ::core::convert::From<isOperatorSlashableCall>
12263            for UnderlyingRustTuple<'_> {
12264                fn from(value: isOperatorSlashableCall) -> Self {
12265                    (value.operator, value.operatorSet)
12266                }
12267            }
12268            #[automatically_derived]
12269            #[doc(hidden)]
12270            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12271            for isOperatorSlashableCall {
12272                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12273                    Self {
12274                        operator: tuple.0,
12275                        operatorSet: tuple.1,
12276                    }
12277                }
12278            }
12279        }
12280        {
12281            #[doc(hidden)]
12282            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12283            #[doc(hidden)]
12284            type UnderlyingRustTuple<'a> = (bool,);
12285            #[cfg(test)]
12286            #[allow(dead_code, unreachable_patterns)]
12287            fn _type_assertion(
12288                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12289            ) {
12290                match _t {
12291                    alloy_sol_types::private::AssertTypeEq::<
12292                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12293                    >(_) => {}
12294                }
12295            }
12296            #[automatically_derived]
12297            #[doc(hidden)]
12298            impl ::core::convert::From<isOperatorSlashableReturn>
12299            for UnderlyingRustTuple<'_> {
12300                fn from(value: isOperatorSlashableReturn) -> Self {
12301                    (value._0,)
12302                }
12303            }
12304            #[automatically_derived]
12305            #[doc(hidden)]
12306            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12307            for isOperatorSlashableReturn {
12308                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12309                    Self { _0: tuple.0 }
12310                }
12311            }
12312        }
12313        #[automatically_derived]
12314        impl alloy_sol_types::SolCall for isOperatorSlashableCall {
12315            type Parameters<'a> = (alloy::sol_types::sol_data::Address, OperatorSet);
12316            type Token<'a> = <Self::Parameters<
12317                'a,
12318            > as alloy_sol_types::SolType>::Token<'a>;
12319            type Return = isOperatorSlashableReturn;
12320            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12321            type ReturnToken<'a> = <Self::ReturnTuple<
12322                'a,
12323            > as alloy_sol_types::SolType>::Token<'a>;
12324            const SIGNATURE: &'static str = "isOperatorSlashable(address,(address,uint32))";
12325            const SELECTOR: [u8; 4] = [19u8, 82u8, 195u8, 230u8];
12326            #[inline]
12327            fn new<'a>(
12328                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12329            ) -> Self {
12330                tuple.into()
12331            }
12332            #[inline]
12333            fn tokenize(&self) -> Self::Token<'_> {
12334                (
12335                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12336                        &self.operator,
12337                    ),
12338                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
12339                        &self.operatorSet,
12340                    ),
12341                )
12342            }
12343            #[inline]
12344            fn abi_decode_returns(
12345                data: &[u8],
12346                validate: bool,
12347            ) -> alloy_sol_types::Result<Self::Return> {
12348                <Self::ReturnTuple<
12349                    '_,
12350                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12351                    .map(Into::into)
12352            }
12353        }
12354    };
12355    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12356    /**Function with signature `modifyAllocations(address,((address,uint32),address[],uint64[])[])` and selector `0x952899ee`.
12357```solidity
12358function modifyAllocations(address operator, IAllocationManagerTypes.AllocateParams[] memory params) external;
12359```*/
12360    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12361    #[derive(Clone)]
12362    pub struct modifyAllocationsCall {
12363        #[allow(missing_docs)]
12364        pub operator: alloy::sol_types::private::Address,
12365        #[allow(missing_docs)]
12366        pub params: alloy::sol_types::private::Vec<
12367            <IAllocationManagerTypes::AllocateParams as alloy::sol_types::SolType>::RustType,
12368        >,
12369    }
12370    ///Container type for the return parameters of the [`modifyAllocations(address,((address,uint32),address[],uint64[])[])`](modifyAllocationsCall) function.
12371    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12372    #[derive(Clone)]
12373    pub struct modifyAllocationsReturn {}
12374    #[allow(
12375        non_camel_case_types,
12376        non_snake_case,
12377        clippy::pub_underscore_fields,
12378        clippy::style
12379    )]
12380    const _: () = {
12381        use alloy::sol_types as alloy_sol_types;
12382        {
12383            #[doc(hidden)]
12384            type UnderlyingSolTuple<'a> = (
12385                alloy::sol_types::sol_data::Address,
12386                alloy::sol_types::sol_data::Array<
12387                    IAllocationManagerTypes::AllocateParams,
12388                >,
12389            );
12390            #[doc(hidden)]
12391            type UnderlyingRustTuple<'a> = (
12392                alloy::sol_types::private::Address,
12393                alloy::sol_types::private::Vec<
12394                    <IAllocationManagerTypes::AllocateParams as alloy::sol_types::SolType>::RustType,
12395                >,
12396            );
12397            #[cfg(test)]
12398            #[allow(dead_code, unreachable_patterns)]
12399            fn _type_assertion(
12400                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12401            ) {
12402                match _t {
12403                    alloy_sol_types::private::AssertTypeEq::<
12404                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12405                    >(_) => {}
12406                }
12407            }
12408            #[automatically_derived]
12409            #[doc(hidden)]
12410            impl ::core::convert::From<modifyAllocationsCall>
12411            for UnderlyingRustTuple<'_> {
12412                fn from(value: modifyAllocationsCall) -> Self {
12413                    (value.operator, value.params)
12414                }
12415            }
12416            #[automatically_derived]
12417            #[doc(hidden)]
12418            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12419            for modifyAllocationsCall {
12420                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12421                    Self {
12422                        operator: tuple.0,
12423                        params: tuple.1,
12424                    }
12425                }
12426            }
12427        }
12428        {
12429            #[doc(hidden)]
12430            type UnderlyingSolTuple<'a> = ();
12431            #[doc(hidden)]
12432            type UnderlyingRustTuple<'a> = ();
12433            #[cfg(test)]
12434            #[allow(dead_code, unreachable_patterns)]
12435            fn _type_assertion(
12436                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12437            ) {
12438                match _t {
12439                    alloy_sol_types::private::AssertTypeEq::<
12440                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12441                    >(_) => {}
12442                }
12443            }
12444            #[automatically_derived]
12445            #[doc(hidden)]
12446            impl ::core::convert::From<modifyAllocationsReturn>
12447            for UnderlyingRustTuple<'_> {
12448                fn from(value: modifyAllocationsReturn) -> Self {
12449                    ()
12450                }
12451            }
12452            #[automatically_derived]
12453            #[doc(hidden)]
12454            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12455            for modifyAllocationsReturn {
12456                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12457                    Self {}
12458                }
12459            }
12460        }
12461        #[automatically_derived]
12462        impl alloy_sol_types::SolCall for modifyAllocationsCall {
12463            type Parameters<'a> = (
12464                alloy::sol_types::sol_data::Address,
12465                alloy::sol_types::sol_data::Array<
12466                    IAllocationManagerTypes::AllocateParams,
12467                >,
12468            );
12469            type Token<'a> = <Self::Parameters<
12470                'a,
12471            > as alloy_sol_types::SolType>::Token<'a>;
12472            type Return = modifyAllocationsReturn;
12473            type ReturnTuple<'a> = ();
12474            type ReturnToken<'a> = <Self::ReturnTuple<
12475                'a,
12476            > as alloy_sol_types::SolType>::Token<'a>;
12477            const SIGNATURE: &'static str = "modifyAllocations(address,((address,uint32),address[],uint64[])[])";
12478            const SELECTOR: [u8; 4] = [149u8, 40u8, 153u8, 238u8];
12479            #[inline]
12480            fn new<'a>(
12481                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12482            ) -> Self {
12483                tuple.into()
12484            }
12485            #[inline]
12486            fn tokenize(&self) -> Self::Token<'_> {
12487                (
12488                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12489                        &self.operator,
12490                    ),
12491                    <alloy::sol_types::sol_data::Array<
12492                        IAllocationManagerTypes::AllocateParams,
12493                    > as alloy_sol_types::SolType>::tokenize(&self.params),
12494                )
12495            }
12496            #[inline]
12497            fn abi_decode_returns(
12498                data: &[u8],
12499                validate: bool,
12500            ) -> alloy_sol_types::Result<Self::Return> {
12501                <Self::ReturnTuple<
12502                    '_,
12503                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12504                    .map(Into::into)
12505            }
12506        }
12507    };
12508    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12509    /**Function with signature `owner()` and selector `0x8da5cb5b`.
12510```solidity
12511function owner() external view returns (address);
12512```*/
12513    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12514    #[derive(Clone)]
12515    pub struct ownerCall {}
12516    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12517    ///Container type for the return parameters of the [`owner()`](ownerCall) function.
12518    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12519    #[derive(Clone)]
12520    pub struct ownerReturn {
12521        #[allow(missing_docs)]
12522        pub _0: alloy::sol_types::private::Address,
12523    }
12524    #[allow(
12525        non_camel_case_types,
12526        non_snake_case,
12527        clippy::pub_underscore_fields,
12528        clippy::style
12529    )]
12530    const _: () = {
12531        use alloy::sol_types as alloy_sol_types;
12532        {
12533            #[doc(hidden)]
12534            type UnderlyingSolTuple<'a> = ();
12535            #[doc(hidden)]
12536            type UnderlyingRustTuple<'a> = ();
12537            #[cfg(test)]
12538            #[allow(dead_code, unreachable_patterns)]
12539            fn _type_assertion(
12540                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12541            ) {
12542                match _t {
12543                    alloy_sol_types::private::AssertTypeEq::<
12544                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12545                    >(_) => {}
12546                }
12547            }
12548            #[automatically_derived]
12549            #[doc(hidden)]
12550            impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
12551                fn from(value: ownerCall) -> Self {
12552                    ()
12553                }
12554            }
12555            #[automatically_derived]
12556            #[doc(hidden)]
12557            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
12558                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12559                    Self {}
12560                }
12561            }
12562        }
12563        {
12564            #[doc(hidden)]
12565            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
12566            #[doc(hidden)]
12567            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
12568            #[cfg(test)]
12569            #[allow(dead_code, unreachable_patterns)]
12570            fn _type_assertion(
12571                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12572            ) {
12573                match _t {
12574                    alloy_sol_types::private::AssertTypeEq::<
12575                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12576                    >(_) => {}
12577                }
12578            }
12579            #[automatically_derived]
12580            #[doc(hidden)]
12581            impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
12582                fn from(value: ownerReturn) -> Self {
12583                    (value._0,)
12584                }
12585            }
12586            #[automatically_derived]
12587            #[doc(hidden)]
12588            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
12589                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12590                    Self { _0: tuple.0 }
12591                }
12592            }
12593        }
12594        #[automatically_derived]
12595        impl alloy_sol_types::SolCall for ownerCall {
12596            type Parameters<'a> = ();
12597            type Token<'a> = <Self::Parameters<
12598                'a,
12599            > as alloy_sol_types::SolType>::Token<'a>;
12600            type Return = ownerReturn;
12601            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
12602            type ReturnToken<'a> = <Self::ReturnTuple<
12603                'a,
12604            > as alloy_sol_types::SolType>::Token<'a>;
12605            const SIGNATURE: &'static str = "owner()";
12606            const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
12607            #[inline]
12608            fn new<'a>(
12609                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12610            ) -> Self {
12611                tuple.into()
12612            }
12613            #[inline]
12614            fn tokenize(&self) -> Self::Token<'_> {
12615                ()
12616            }
12617            #[inline]
12618            fn abi_decode_returns(
12619                data: &[u8],
12620                validate: bool,
12621            ) -> alloy_sol_types::Result<Self::Return> {
12622                <Self::ReturnTuple<
12623                    '_,
12624                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12625                    .map(Into::into)
12626            }
12627        }
12628    };
12629    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12630    /**Function with signature `pause(uint256)` and selector `0x136439dd`.
12631```solidity
12632function pause(uint256 newPausedStatus) external;
12633```*/
12634    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12635    #[derive(Clone)]
12636    pub struct pauseCall {
12637        #[allow(missing_docs)]
12638        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
12639    }
12640    ///Container type for the return parameters of the [`pause(uint256)`](pauseCall) function.
12641    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12642    #[derive(Clone)]
12643    pub struct pauseReturn {}
12644    #[allow(
12645        non_camel_case_types,
12646        non_snake_case,
12647        clippy::pub_underscore_fields,
12648        clippy::style
12649    )]
12650    const _: () = {
12651        use alloy::sol_types as alloy_sol_types;
12652        {
12653            #[doc(hidden)]
12654            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
12655            #[doc(hidden)]
12656            type UnderlyingRustTuple<'a> = (
12657                alloy::sol_types::private::primitives::aliases::U256,
12658            );
12659            #[cfg(test)]
12660            #[allow(dead_code, unreachable_patterns)]
12661            fn _type_assertion(
12662                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12663            ) {
12664                match _t {
12665                    alloy_sol_types::private::AssertTypeEq::<
12666                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12667                    >(_) => {}
12668                }
12669            }
12670            #[automatically_derived]
12671            #[doc(hidden)]
12672            impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
12673                fn from(value: pauseCall) -> Self {
12674                    (value.newPausedStatus,)
12675                }
12676            }
12677            #[automatically_derived]
12678            #[doc(hidden)]
12679            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
12680                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12681                    Self { newPausedStatus: tuple.0 }
12682                }
12683            }
12684        }
12685        {
12686            #[doc(hidden)]
12687            type UnderlyingSolTuple<'a> = ();
12688            #[doc(hidden)]
12689            type UnderlyingRustTuple<'a> = ();
12690            #[cfg(test)]
12691            #[allow(dead_code, unreachable_patterns)]
12692            fn _type_assertion(
12693                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12694            ) {
12695                match _t {
12696                    alloy_sol_types::private::AssertTypeEq::<
12697                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12698                    >(_) => {}
12699                }
12700            }
12701            #[automatically_derived]
12702            #[doc(hidden)]
12703            impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
12704                fn from(value: pauseReturn) -> Self {
12705                    ()
12706                }
12707            }
12708            #[automatically_derived]
12709            #[doc(hidden)]
12710            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
12711                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12712                    Self {}
12713                }
12714            }
12715        }
12716        #[automatically_derived]
12717        impl alloy_sol_types::SolCall for pauseCall {
12718            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
12719            type Token<'a> = <Self::Parameters<
12720                'a,
12721            > as alloy_sol_types::SolType>::Token<'a>;
12722            type Return = pauseReturn;
12723            type ReturnTuple<'a> = ();
12724            type ReturnToken<'a> = <Self::ReturnTuple<
12725                'a,
12726            > as alloy_sol_types::SolType>::Token<'a>;
12727            const SIGNATURE: &'static str = "pause(uint256)";
12728            const SELECTOR: [u8; 4] = [19u8, 100u8, 57u8, 221u8];
12729            #[inline]
12730            fn new<'a>(
12731                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12732            ) -> Self {
12733                tuple.into()
12734            }
12735            #[inline]
12736            fn tokenize(&self) -> Self::Token<'_> {
12737                (
12738                    <alloy::sol_types::sol_data::Uint<
12739                        256,
12740                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
12741                )
12742            }
12743            #[inline]
12744            fn abi_decode_returns(
12745                data: &[u8],
12746                validate: bool,
12747            ) -> alloy_sol_types::Result<Self::Return> {
12748                <Self::ReturnTuple<
12749                    '_,
12750                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12751                    .map(Into::into)
12752            }
12753        }
12754    };
12755    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12756    /**Function with signature `pauseAll()` and selector `0x595c6a67`.
12757```solidity
12758function pauseAll() external;
12759```*/
12760    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12761    #[derive(Clone)]
12762    pub struct pauseAllCall {}
12763    ///Container type for the return parameters of the [`pauseAll()`](pauseAllCall) function.
12764    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12765    #[derive(Clone)]
12766    pub struct pauseAllReturn {}
12767    #[allow(
12768        non_camel_case_types,
12769        non_snake_case,
12770        clippy::pub_underscore_fields,
12771        clippy::style
12772    )]
12773    const _: () = {
12774        use alloy::sol_types as alloy_sol_types;
12775        {
12776            #[doc(hidden)]
12777            type UnderlyingSolTuple<'a> = ();
12778            #[doc(hidden)]
12779            type UnderlyingRustTuple<'a> = ();
12780            #[cfg(test)]
12781            #[allow(dead_code, unreachable_patterns)]
12782            fn _type_assertion(
12783                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12784            ) {
12785                match _t {
12786                    alloy_sol_types::private::AssertTypeEq::<
12787                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12788                    >(_) => {}
12789                }
12790            }
12791            #[automatically_derived]
12792            #[doc(hidden)]
12793            impl ::core::convert::From<pauseAllCall> for UnderlyingRustTuple<'_> {
12794                fn from(value: pauseAllCall) -> Self {
12795                    ()
12796                }
12797            }
12798            #[automatically_derived]
12799            #[doc(hidden)]
12800            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllCall {
12801                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12802                    Self {}
12803                }
12804            }
12805        }
12806        {
12807            #[doc(hidden)]
12808            type UnderlyingSolTuple<'a> = ();
12809            #[doc(hidden)]
12810            type UnderlyingRustTuple<'a> = ();
12811            #[cfg(test)]
12812            #[allow(dead_code, unreachable_patterns)]
12813            fn _type_assertion(
12814                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12815            ) {
12816                match _t {
12817                    alloy_sol_types::private::AssertTypeEq::<
12818                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12819                    >(_) => {}
12820                }
12821            }
12822            #[automatically_derived]
12823            #[doc(hidden)]
12824            impl ::core::convert::From<pauseAllReturn> for UnderlyingRustTuple<'_> {
12825                fn from(value: pauseAllReturn) -> Self {
12826                    ()
12827                }
12828            }
12829            #[automatically_derived]
12830            #[doc(hidden)]
12831            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllReturn {
12832                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12833                    Self {}
12834                }
12835            }
12836        }
12837        #[automatically_derived]
12838        impl alloy_sol_types::SolCall for pauseAllCall {
12839            type Parameters<'a> = ();
12840            type Token<'a> = <Self::Parameters<
12841                'a,
12842            > as alloy_sol_types::SolType>::Token<'a>;
12843            type Return = pauseAllReturn;
12844            type ReturnTuple<'a> = ();
12845            type ReturnToken<'a> = <Self::ReturnTuple<
12846                'a,
12847            > as alloy_sol_types::SolType>::Token<'a>;
12848            const SIGNATURE: &'static str = "pauseAll()";
12849            const SELECTOR: [u8; 4] = [89u8, 92u8, 106u8, 103u8];
12850            #[inline]
12851            fn new<'a>(
12852                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12853            ) -> Self {
12854                tuple.into()
12855            }
12856            #[inline]
12857            fn tokenize(&self) -> Self::Token<'_> {
12858                ()
12859            }
12860            #[inline]
12861            fn abi_decode_returns(
12862                data: &[u8],
12863                validate: bool,
12864            ) -> alloy_sol_types::Result<Self::Return> {
12865                <Self::ReturnTuple<
12866                    '_,
12867                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12868                    .map(Into::into)
12869            }
12870        }
12871    };
12872    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12873    /**Function with signature `paused(uint8)` and selector `0x5ac86ab7`.
12874```solidity
12875function paused(uint8 index) external view returns (bool);
12876```*/
12877    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12878    #[derive(Clone)]
12879    pub struct paused_0Call {
12880        #[allow(missing_docs)]
12881        pub index: u8,
12882    }
12883    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12884    ///Container type for the return parameters of the [`paused(uint8)`](paused_0Call) function.
12885    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12886    #[derive(Clone)]
12887    pub struct paused_0Return {
12888        #[allow(missing_docs)]
12889        pub _0: bool,
12890    }
12891    #[allow(
12892        non_camel_case_types,
12893        non_snake_case,
12894        clippy::pub_underscore_fields,
12895        clippy::style
12896    )]
12897    const _: () = {
12898        use alloy::sol_types as alloy_sol_types;
12899        {
12900            #[doc(hidden)]
12901            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
12902            #[doc(hidden)]
12903            type UnderlyingRustTuple<'a> = (u8,);
12904            #[cfg(test)]
12905            #[allow(dead_code, unreachable_patterns)]
12906            fn _type_assertion(
12907                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12908            ) {
12909                match _t {
12910                    alloy_sol_types::private::AssertTypeEq::<
12911                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12912                    >(_) => {}
12913                }
12914            }
12915            #[automatically_derived]
12916            #[doc(hidden)]
12917            impl ::core::convert::From<paused_0Call> for UnderlyingRustTuple<'_> {
12918                fn from(value: paused_0Call) -> Self {
12919                    (value.index,)
12920                }
12921            }
12922            #[automatically_derived]
12923            #[doc(hidden)]
12924            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Call {
12925                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12926                    Self { index: tuple.0 }
12927                }
12928            }
12929        }
12930        {
12931            #[doc(hidden)]
12932            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12933            #[doc(hidden)]
12934            type UnderlyingRustTuple<'a> = (bool,);
12935            #[cfg(test)]
12936            #[allow(dead_code, unreachable_patterns)]
12937            fn _type_assertion(
12938                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12939            ) {
12940                match _t {
12941                    alloy_sol_types::private::AssertTypeEq::<
12942                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12943                    >(_) => {}
12944                }
12945            }
12946            #[automatically_derived]
12947            #[doc(hidden)]
12948            impl ::core::convert::From<paused_0Return> for UnderlyingRustTuple<'_> {
12949                fn from(value: paused_0Return) -> Self {
12950                    (value._0,)
12951                }
12952            }
12953            #[automatically_derived]
12954            #[doc(hidden)]
12955            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Return {
12956                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12957                    Self { _0: tuple.0 }
12958                }
12959            }
12960        }
12961        #[automatically_derived]
12962        impl alloy_sol_types::SolCall for paused_0Call {
12963            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
12964            type Token<'a> = <Self::Parameters<
12965                'a,
12966            > as alloy_sol_types::SolType>::Token<'a>;
12967            type Return = paused_0Return;
12968            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12969            type ReturnToken<'a> = <Self::ReturnTuple<
12970                'a,
12971            > as alloy_sol_types::SolType>::Token<'a>;
12972            const SIGNATURE: &'static str = "paused(uint8)";
12973            const SELECTOR: [u8; 4] = [90u8, 200u8, 106u8, 183u8];
12974            #[inline]
12975            fn new<'a>(
12976                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12977            ) -> Self {
12978                tuple.into()
12979            }
12980            #[inline]
12981            fn tokenize(&self) -> Self::Token<'_> {
12982                (
12983                    <alloy::sol_types::sol_data::Uint<
12984                        8,
12985                    > as alloy_sol_types::SolType>::tokenize(&self.index),
12986                )
12987            }
12988            #[inline]
12989            fn abi_decode_returns(
12990                data: &[u8],
12991                validate: bool,
12992            ) -> alloy_sol_types::Result<Self::Return> {
12993                <Self::ReturnTuple<
12994                    '_,
12995                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12996                    .map(Into::into)
12997            }
12998        }
12999    };
13000    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13001    /**Function with signature `paused()` and selector `0x5c975abb`.
13002```solidity
13003function paused() external view returns (uint256);
13004```*/
13005    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13006    #[derive(Clone)]
13007    pub struct paused_1Call {}
13008    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13009    ///Container type for the return parameters of the [`paused()`](paused_1Call) function.
13010    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13011    #[derive(Clone)]
13012    pub struct paused_1Return {
13013        #[allow(missing_docs)]
13014        pub _0: alloy::sol_types::private::primitives::aliases::U256,
13015    }
13016    #[allow(
13017        non_camel_case_types,
13018        non_snake_case,
13019        clippy::pub_underscore_fields,
13020        clippy::style
13021    )]
13022    const _: () = {
13023        use alloy::sol_types as alloy_sol_types;
13024        {
13025            #[doc(hidden)]
13026            type UnderlyingSolTuple<'a> = ();
13027            #[doc(hidden)]
13028            type UnderlyingRustTuple<'a> = ();
13029            #[cfg(test)]
13030            #[allow(dead_code, unreachable_patterns)]
13031            fn _type_assertion(
13032                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13033            ) {
13034                match _t {
13035                    alloy_sol_types::private::AssertTypeEq::<
13036                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13037                    >(_) => {}
13038                }
13039            }
13040            #[automatically_derived]
13041            #[doc(hidden)]
13042            impl ::core::convert::From<paused_1Call> for UnderlyingRustTuple<'_> {
13043                fn from(value: paused_1Call) -> Self {
13044                    ()
13045                }
13046            }
13047            #[automatically_derived]
13048            #[doc(hidden)]
13049            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Call {
13050                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13051                    Self {}
13052                }
13053            }
13054        }
13055        {
13056            #[doc(hidden)]
13057            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
13058            #[doc(hidden)]
13059            type UnderlyingRustTuple<'a> = (
13060                alloy::sol_types::private::primitives::aliases::U256,
13061            );
13062            #[cfg(test)]
13063            #[allow(dead_code, unreachable_patterns)]
13064            fn _type_assertion(
13065                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13066            ) {
13067                match _t {
13068                    alloy_sol_types::private::AssertTypeEq::<
13069                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13070                    >(_) => {}
13071                }
13072            }
13073            #[automatically_derived]
13074            #[doc(hidden)]
13075            impl ::core::convert::From<paused_1Return> for UnderlyingRustTuple<'_> {
13076                fn from(value: paused_1Return) -> Self {
13077                    (value._0,)
13078                }
13079            }
13080            #[automatically_derived]
13081            #[doc(hidden)]
13082            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Return {
13083                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13084                    Self { _0: tuple.0 }
13085                }
13086            }
13087        }
13088        #[automatically_derived]
13089        impl alloy_sol_types::SolCall for paused_1Call {
13090            type Parameters<'a> = ();
13091            type Token<'a> = <Self::Parameters<
13092                'a,
13093            > as alloy_sol_types::SolType>::Token<'a>;
13094            type Return = paused_1Return;
13095            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
13096            type ReturnToken<'a> = <Self::ReturnTuple<
13097                'a,
13098            > as alloy_sol_types::SolType>::Token<'a>;
13099            const SIGNATURE: &'static str = "paused()";
13100            const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
13101            #[inline]
13102            fn new<'a>(
13103                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13104            ) -> Self {
13105                tuple.into()
13106            }
13107            #[inline]
13108            fn tokenize(&self) -> Self::Token<'_> {
13109                ()
13110            }
13111            #[inline]
13112            fn abi_decode_returns(
13113                data: &[u8],
13114                validate: bool,
13115            ) -> alloy_sol_types::Result<Self::Return> {
13116                <Self::ReturnTuple<
13117                    '_,
13118                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13119                    .map(Into::into)
13120            }
13121        }
13122    };
13123    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13124    /**Function with signature `pauserRegistry()` and selector `0x886f1195`.
13125```solidity
13126function pauserRegistry() external view returns (address);
13127```*/
13128    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13129    #[derive(Clone)]
13130    pub struct pauserRegistryCall {}
13131    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13132    ///Container type for the return parameters of the [`pauserRegistry()`](pauserRegistryCall) function.
13133    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13134    #[derive(Clone)]
13135    pub struct pauserRegistryReturn {
13136        #[allow(missing_docs)]
13137        pub _0: alloy::sol_types::private::Address,
13138    }
13139    #[allow(
13140        non_camel_case_types,
13141        non_snake_case,
13142        clippy::pub_underscore_fields,
13143        clippy::style
13144    )]
13145    const _: () = {
13146        use alloy::sol_types as alloy_sol_types;
13147        {
13148            #[doc(hidden)]
13149            type UnderlyingSolTuple<'a> = ();
13150            #[doc(hidden)]
13151            type UnderlyingRustTuple<'a> = ();
13152            #[cfg(test)]
13153            #[allow(dead_code, unreachable_patterns)]
13154            fn _type_assertion(
13155                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13156            ) {
13157                match _t {
13158                    alloy_sol_types::private::AssertTypeEq::<
13159                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13160                    >(_) => {}
13161                }
13162            }
13163            #[automatically_derived]
13164            #[doc(hidden)]
13165            impl ::core::convert::From<pauserRegistryCall> for UnderlyingRustTuple<'_> {
13166                fn from(value: pauserRegistryCall) -> Self {
13167                    ()
13168                }
13169            }
13170            #[automatically_derived]
13171            #[doc(hidden)]
13172            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryCall {
13173                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13174                    Self {}
13175                }
13176            }
13177        }
13178        {
13179            #[doc(hidden)]
13180            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
13181            #[doc(hidden)]
13182            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
13183            #[cfg(test)]
13184            #[allow(dead_code, unreachable_patterns)]
13185            fn _type_assertion(
13186                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13187            ) {
13188                match _t {
13189                    alloy_sol_types::private::AssertTypeEq::<
13190                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13191                    >(_) => {}
13192                }
13193            }
13194            #[automatically_derived]
13195            #[doc(hidden)]
13196            impl ::core::convert::From<pauserRegistryReturn>
13197            for UnderlyingRustTuple<'_> {
13198                fn from(value: pauserRegistryReturn) -> Self {
13199                    (value._0,)
13200                }
13201            }
13202            #[automatically_derived]
13203            #[doc(hidden)]
13204            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13205            for pauserRegistryReturn {
13206                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13207                    Self { _0: tuple.0 }
13208                }
13209            }
13210        }
13211        #[automatically_derived]
13212        impl alloy_sol_types::SolCall for pauserRegistryCall {
13213            type Parameters<'a> = ();
13214            type Token<'a> = <Self::Parameters<
13215                'a,
13216            > as alloy_sol_types::SolType>::Token<'a>;
13217            type Return = pauserRegistryReturn;
13218            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
13219            type ReturnToken<'a> = <Self::ReturnTuple<
13220                'a,
13221            > as alloy_sol_types::SolType>::Token<'a>;
13222            const SIGNATURE: &'static str = "pauserRegistry()";
13223            const SELECTOR: [u8; 4] = [136u8, 111u8, 17u8, 149u8];
13224            #[inline]
13225            fn new<'a>(
13226                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13227            ) -> Self {
13228                tuple.into()
13229            }
13230            #[inline]
13231            fn tokenize(&self) -> Self::Token<'_> {
13232                ()
13233            }
13234            #[inline]
13235            fn abi_decode_returns(
13236                data: &[u8],
13237                validate: bool,
13238            ) -> alloy_sol_types::Result<Self::Return> {
13239                <Self::ReturnTuple<
13240                    '_,
13241                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13242                    .map(Into::into)
13243            }
13244        }
13245    };
13246    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13247    /**Function with signature `permissionController()` and selector `0x4657e26a`.
13248```solidity
13249function permissionController() external view returns (address);
13250```*/
13251    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13252    #[derive(Clone)]
13253    pub struct permissionControllerCall {}
13254    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13255    ///Container type for the return parameters of the [`permissionController()`](permissionControllerCall) function.
13256    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13257    #[derive(Clone)]
13258    pub struct permissionControllerReturn {
13259        #[allow(missing_docs)]
13260        pub _0: alloy::sol_types::private::Address,
13261    }
13262    #[allow(
13263        non_camel_case_types,
13264        non_snake_case,
13265        clippy::pub_underscore_fields,
13266        clippy::style
13267    )]
13268    const _: () = {
13269        use alloy::sol_types as alloy_sol_types;
13270        {
13271            #[doc(hidden)]
13272            type UnderlyingSolTuple<'a> = ();
13273            #[doc(hidden)]
13274            type UnderlyingRustTuple<'a> = ();
13275            #[cfg(test)]
13276            #[allow(dead_code, unreachable_patterns)]
13277            fn _type_assertion(
13278                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13279            ) {
13280                match _t {
13281                    alloy_sol_types::private::AssertTypeEq::<
13282                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13283                    >(_) => {}
13284                }
13285            }
13286            #[automatically_derived]
13287            #[doc(hidden)]
13288            impl ::core::convert::From<permissionControllerCall>
13289            for UnderlyingRustTuple<'_> {
13290                fn from(value: permissionControllerCall) -> Self {
13291                    ()
13292                }
13293            }
13294            #[automatically_derived]
13295            #[doc(hidden)]
13296            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13297            for permissionControllerCall {
13298                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13299                    Self {}
13300                }
13301            }
13302        }
13303        {
13304            #[doc(hidden)]
13305            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
13306            #[doc(hidden)]
13307            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
13308            #[cfg(test)]
13309            #[allow(dead_code, unreachable_patterns)]
13310            fn _type_assertion(
13311                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13312            ) {
13313                match _t {
13314                    alloy_sol_types::private::AssertTypeEq::<
13315                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13316                    >(_) => {}
13317                }
13318            }
13319            #[automatically_derived]
13320            #[doc(hidden)]
13321            impl ::core::convert::From<permissionControllerReturn>
13322            for UnderlyingRustTuple<'_> {
13323                fn from(value: permissionControllerReturn) -> Self {
13324                    (value._0,)
13325                }
13326            }
13327            #[automatically_derived]
13328            #[doc(hidden)]
13329            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13330            for permissionControllerReturn {
13331                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13332                    Self { _0: tuple.0 }
13333                }
13334            }
13335        }
13336        #[automatically_derived]
13337        impl alloy_sol_types::SolCall for permissionControllerCall {
13338            type Parameters<'a> = ();
13339            type Token<'a> = <Self::Parameters<
13340                'a,
13341            > as alloy_sol_types::SolType>::Token<'a>;
13342            type Return = permissionControllerReturn;
13343            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
13344            type ReturnToken<'a> = <Self::ReturnTuple<
13345                'a,
13346            > as alloy_sol_types::SolType>::Token<'a>;
13347            const SIGNATURE: &'static str = "permissionController()";
13348            const SELECTOR: [u8; 4] = [70u8, 87u8, 226u8, 106u8];
13349            #[inline]
13350            fn new<'a>(
13351                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13352            ) -> Self {
13353                tuple.into()
13354            }
13355            #[inline]
13356            fn tokenize(&self) -> Self::Token<'_> {
13357                ()
13358            }
13359            #[inline]
13360            fn abi_decode_returns(
13361                data: &[u8],
13362                validate: bool,
13363            ) -> alloy_sol_types::Result<Self::Return> {
13364                <Self::ReturnTuple<
13365                    '_,
13366                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13367                    .map(Into::into)
13368            }
13369        }
13370    };
13371    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13372    /**Function with signature `registerForOperatorSets(address,(address,uint32[],bytes))` and selector `0xadc2e3d9`.
13373```solidity
13374function registerForOperatorSets(address operator, IAllocationManagerTypes.RegisterParams memory params) external;
13375```*/
13376    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13377    #[derive(Clone)]
13378    pub struct registerForOperatorSetsCall {
13379        #[allow(missing_docs)]
13380        pub operator: alloy::sol_types::private::Address,
13381        #[allow(missing_docs)]
13382        pub params: <IAllocationManagerTypes::RegisterParams as alloy::sol_types::SolType>::RustType,
13383    }
13384    ///Container type for the return parameters of the [`registerForOperatorSets(address,(address,uint32[],bytes))`](registerForOperatorSetsCall) function.
13385    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13386    #[derive(Clone)]
13387    pub struct registerForOperatorSetsReturn {}
13388    #[allow(
13389        non_camel_case_types,
13390        non_snake_case,
13391        clippy::pub_underscore_fields,
13392        clippy::style
13393    )]
13394    const _: () = {
13395        use alloy::sol_types as alloy_sol_types;
13396        {
13397            #[doc(hidden)]
13398            type UnderlyingSolTuple<'a> = (
13399                alloy::sol_types::sol_data::Address,
13400                IAllocationManagerTypes::RegisterParams,
13401            );
13402            #[doc(hidden)]
13403            type UnderlyingRustTuple<'a> = (
13404                alloy::sol_types::private::Address,
13405                <IAllocationManagerTypes::RegisterParams as alloy::sol_types::SolType>::RustType,
13406            );
13407            #[cfg(test)]
13408            #[allow(dead_code, unreachable_patterns)]
13409            fn _type_assertion(
13410                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13411            ) {
13412                match _t {
13413                    alloy_sol_types::private::AssertTypeEq::<
13414                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13415                    >(_) => {}
13416                }
13417            }
13418            #[automatically_derived]
13419            #[doc(hidden)]
13420            impl ::core::convert::From<registerForOperatorSetsCall>
13421            for UnderlyingRustTuple<'_> {
13422                fn from(value: registerForOperatorSetsCall) -> Self {
13423                    (value.operator, value.params)
13424                }
13425            }
13426            #[automatically_derived]
13427            #[doc(hidden)]
13428            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13429            for registerForOperatorSetsCall {
13430                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13431                    Self {
13432                        operator: tuple.0,
13433                        params: tuple.1,
13434                    }
13435                }
13436            }
13437        }
13438        {
13439            #[doc(hidden)]
13440            type UnderlyingSolTuple<'a> = ();
13441            #[doc(hidden)]
13442            type UnderlyingRustTuple<'a> = ();
13443            #[cfg(test)]
13444            #[allow(dead_code, unreachable_patterns)]
13445            fn _type_assertion(
13446                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13447            ) {
13448                match _t {
13449                    alloy_sol_types::private::AssertTypeEq::<
13450                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13451                    >(_) => {}
13452                }
13453            }
13454            #[automatically_derived]
13455            #[doc(hidden)]
13456            impl ::core::convert::From<registerForOperatorSetsReturn>
13457            for UnderlyingRustTuple<'_> {
13458                fn from(value: registerForOperatorSetsReturn) -> Self {
13459                    ()
13460                }
13461            }
13462            #[automatically_derived]
13463            #[doc(hidden)]
13464            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13465            for registerForOperatorSetsReturn {
13466                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13467                    Self {}
13468                }
13469            }
13470        }
13471        #[automatically_derived]
13472        impl alloy_sol_types::SolCall for registerForOperatorSetsCall {
13473            type Parameters<'a> = (
13474                alloy::sol_types::sol_data::Address,
13475                IAllocationManagerTypes::RegisterParams,
13476            );
13477            type Token<'a> = <Self::Parameters<
13478                'a,
13479            > as alloy_sol_types::SolType>::Token<'a>;
13480            type Return = registerForOperatorSetsReturn;
13481            type ReturnTuple<'a> = ();
13482            type ReturnToken<'a> = <Self::ReturnTuple<
13483                'a,
13484            > as alloy_sol_types::SolType>::Token<'a>;
13485            const SIGNATURE: &'static str = "registerForOperatorSets(address,(address,uint32[],bytes))";
13486            const SELECTOR: [u8; 4] = [173u8, 194u8, 227u8, 217u8];
13487            #[inline]
13488            fn new<'a>(
13489                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13490            ) -> Self {
13491                tuple.into()
13492            }
13493            #[inline]
13494            fn tokenize(&self) -> Self::Token<'_> {
13495                (
13496                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13497                        &self.operator,
13498                    ),
13499                    <IAllocationManagerTypes::RegisterParams as alloy_sol_types::SolType>::tokenize(
13500                        &self.params,
13501                    ),
13502                )
13503            }
13504            #[inline]
13505            fn abi_decode_returns(
13506                data: &[u8],
13507                validate: bool,
13508            ) -> alloy_sol_types::Result<Self::Return> {
13509                <Self::ReturnTuple<
13510                    '_,
13511                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13512                    .map(Into::into)
13513            }
13514        }
13515    };
13516    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13517    /**Function with signature `removeStrategiesFromOperatorSet(address,uint32,address[])` and selector `0xb66bd989`.
13518```solidity
13519function removeStrategiesFromOperatorSet(address avs, uint32 operatorSetId, address[] memory strategies) external;
13520```*/
13521    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13522    #[derive(Clone)]
13523    pub struct removeStrategiesFromOperatorSetCall {
13524        #[allow(missing_docs)]
13525        pub avs: alloy::sol_types::private::Address,
13526        #[allow(missing_docs)]
13527        pub operatorSetId: u32,
13528        #[allow(missing_docs)]
13529        pub strategies: alloy::sol_types::private::Vec<
13530            alloy::sol_types::private::Address,
13531        >,
13532    }
13533    ///Container type for the return parameters of the [`removeStrategiesFromOperatorSet(address,uint32,address[])`](removeStrategiesFromOperatorSetCall) function.
13534    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13535    #[derive(Clone)]
13536    pub struct removeStrategiesFromOperatorSetReturn {}
13537    #[allow(
13538        non_camel_case_types,
13539        non_snake_case,
13540        clippy::pub_underscore_fields,
13541        clippy::style
13542    )]
13543    const _: () = {
13544        use alloy::sol_types as alloy_sol_types;
13545        {
13546            #[doc(hidden)]
13547            type UnderlyingSolTuple<'a> = (
13548                alloy::sol_types::sol_data::Address,
13549                alloy::sol_types::sol_data::Uint<32>,
13550                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
13551            );
13552            #[doc(hidden)]
13553            type UnderlyingRustTuple<'a> = (
13554                alloy::sol_types::private::Address,
13555                u32,
13556                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
13557            );
13558            #[cfg(test)]
13559            #[allow(dead_code, unreachable_patterns)]
13560            fn _type_assertion(
13561                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13562            ) {
13563                match _t {
13564                    alloy_sol_types::private::AssertTypeEq::<
13565                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13566                    >(_) => {}
13567                }
13568            }
13569            #[automatically_derived]
13570            #[doc(hidden)]
13571            impl ::core::convert::From<removeStrategiesFromOperatorSetCall>
13572            for UnderlyingRustTuple<'_> {
13573                fn from(value: removeStrategiesFromOperatorSetCall) -> Self {
13574                    (value.avs, value.operatorSetId, value.strategies)
13575                }
13576            }
13577            #[automatically_derived]
13578            #[doc(hidden)]
13579            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13580            for removeStrategiesFromOperatorSetCall {
13581                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13582                    Self {
13583                        avs: tuple.0,
13584                        operatorSetId: tuple.1,
13585                        strategies: tuple.2,
13586                    }
13587                }
13588            }
13589        }
13590        {
13591            #[doc(hidden)]
13592            type UnderlyingSolTuple<'a> = ();
13593            #[doc(hidden)]
13594            type UnderlyingRustTuple<'a> = ();
13595            #[cfg(test)]
13596            #[allow(dead_code, unreachable_patterns)]
13597            fn _type_assertion(
13598                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13599            ) {
13600                match _t {
13601                    alloy_sol_types::private::AssertTypeEq::<
13602                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13603                    >(_) => {}
13604                }
13605            }
13606            #[automatically_derived]
13607            #[doc(hidden)]
13608            impl ::core::convert::From<removeStrategiesFromOperatorSetReturn>
13609            for UnderlyingRustTuple<'_> {
13610                fn from(value: removeStrategiesFromOperatorSetReturn) -> Self {
13611                    ()
13612                }
13613            }
13614            #[automatically_derived]
13615            #[doc(hidden)]
13616            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13617            for removeStrategiesFromOperatorSetReturn {
13618                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13619                    Self {}
13620                }
13621            }
13622        }
13623        #[automatically_derived]
13624        impl alloy_sol_types::SolCall for removeStrategiesFromOperatorSetCall {
13625            type Parameters<'a> = (
13626                alloy::sol_types::sol_data::Address,
13627                alloy::sol_types::sol_data::Uint<32>,
13628                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
13629            );
13630            type Token<'a> = <Self::Parameters<
13631                'a,
13632            > as alloy_sol_types::SolType>::Token<'a>;
13633            type Return = removeStrategiesFromOperatorSetReturn;
13634            type ReturnTuple<'a> = ();
13635            type ReturnToken<'a> = <Self::ReturnTuple<
13636                'a,
13637            > as alloy_sol_types::SolType>::Token<'a>;
13638            const SIGNATURE: &'static str = "removeStrategiesFromOperatorSet(address,uint32,address[])";
13639            const SELECTOR: [u8; 4] = [182u8, 107u8, 217u8, 137u8];
13640            #[inline]
13641            fn new<'a>(
13642                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13643            ) -> Self {
13644                tuple.into()
13645            }
13646            #[inline]
13647            fn tokenize(&self) -> Self::Token<'_> {
13648                (
13649                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13650                        &self.avs,
13651                    ),
13652                    <alloy::sol_types::sol_data::Uint<
13653                        32,
13654                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetId),
13655                    <alloy::sol_types::sol_data::Array<
13656                        alloy::sol_types::sol_data::Address,
13657                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
13658                )
13659            }
13660            #[inline]
13661            fn abi_decode_returns(
13662                data: &[u8],
13663                validate: bool,
13664            ) -> alloy_sol_types::Result<Self::Return> {
13665                <Self::ReturnTuple<
13666                    '_,
13667                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13668                    .map(Into::into)
13669            }
13670        }
13671    };
13672    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13673    /**Function with signature `renounceOwnership()` and selector `0x715018a6`.
13674```solidity
13675function renounceOwnership() external;
13676```*/
13677    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13678    #[derive(Clone)]
13679    pub struct renounceOwnershipCall {}
13680    ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function.
13681    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13682    #[derive(Clone)]
13683    pub struct renounceOwnershipReturn {}
13684    #[allow(
13685        non_camel_case_types,
13686        non_snake_case,
13687        clippy::pub_underscore_fields,
13688        clippy::style
13689    )]
13690    const _: () = {
13691        use alloy::sol_types as alloy_sol_types;
13692        {
13693            #[doc(hidden)]
13694            type UnderlyingSolTuple<'a> = ();
13695            #[doc(hidden)]
13696            type UnderlyingRustTuple<'a> = ();
13697            #[cfg(test)]
13698            #[allow(dead_code, unreachable_patterns)]
13699            fn _type_assertion(
13700                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13701            ) {
13702                match _t {
13703                    alloy_sol_types::private::AssertTypeEq::<
13704                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13705                    >(_) => {}
13706                }
13707            }
13708            #[automatically_derived]
13709            #[doc(hidden)]
13710            impl ::core::convert::From<renounceOwnershipCall>
13711            for UnderlyingRustTuple<'_> {
13712                fn from(value: renounceOwnershipCall) -> Self {
13713                    ()
13714                }
13715            }
13716            #[automatically_derived]
13717            #[doc(hidden)]
13718            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13719            for renounceOwnershipCall {
13720                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13721                    Self {}
13722                }
13723            }
13724        }
13725        {
13726            #[doc(hidden)]
13727            type UnderlyingSolTuple<'a> = ();
13728            #[doc(hidden)]
13729            type UnderlyingRustTuple<'a> = ();
13730            #[cfg(test)]
13731            #[allow(dead_code, unreachable_patterns)]
13732            fn _type_assertion(
13733                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13734            ) {
13735                match _t {
13736                    alloy_sol_types::private::AssertTypeEq::<
13737                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13738                    >(_) => {}
13739                }
13740            }
13741            #[automatically_derived]
13742            #[doc(hidden)]
13743            impl ::core::convert::From<renounceOwnershipReturn>
13744            for UnderlyingRustTuple<'_> {
13745                fn from(value: renounceOwnershipReturn) -> Self {
13746                    ()
13747                }
13748            }
13749            #[automatically_derived]
13750            #[doc(hidden)]
13751            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13752            for renounceOwnershipReturn {
13753                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13754                    Self {}
13755                }
13756            }
13757        }
13758        #[automatically_derived]
13759        impl alloy_sol_types::SolCall for renounceOwnershipCall {
13760            type Parameters<'a> = ();
13761            type Token<'a> = <Self::Parameters<
13762                'a,
13763            > as alloy_sol_types::SolType>::Token<'a>;
13764            type Return = renounceOwnershipReturn;
13765            type ReturnTuple<'a> = ();
13766            type ReturnToken<'a> = <Self::ReturnTuple<
13767                'a,
13768            > as alloy_sol_types::SolType>::Token<'a>;
13769            const SIGNATURE: &'static str = "renounceOwnership()";
13770            const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
13771            #[inline]
13772            fn new<'a>(
13773                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13774            ) -> Self {
13775                tuple.into()
13776            }
13777            #[inline]
13778            fn tokenize(&self) -> Self::Token<'_> {
13779                ()
13780            }
13781            #[inline]
13782            fn abi_decode_returns(
13783                data: &[u8],
13784                validate: bool,
13785            ) -> alloy_sol_types::Result<Self::Return> {
13786                <Self::ReturnTuple<
13787                    '_,
13788                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13789                    .map(Into::into)
13790            }
13791        }
13792    };
13793    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13794    /**Function with signature `setAVSRegistrar(address,address)` and selector `0xd3d96ff4`.
13795```solidity
13796function setAVSRegistrar(address avs, address registrar) external;
13797```*/
13798    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13799    #[derive(Clone)]
13800    pub struct setAVSRegistrarCall {
13801        #[allow(missing_docs)]
13802        pub avs: alloy::sol_types::private::Address,
13803        #[allow(missing_docs)]
13804        pub registrar: alloy::sol_types::private::Address,
13805    }
13806    ///Container type for the return parameters of the [`setAVSRegistrar(address,address)`](setAVSRegistrarCall) function.
13807    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13808    #[derive(Clone)]
13809    pub struct setAVSRegistrarReturn {}
13810    #[allow(
13811        non_camel_case_types,
13812        non_snake_case,
13813        clippy::pub_underscore_fields,
13814        clippy::style
13815    )]
13816    const _: () = {
13817        use alloy::sol_types as alloy_sol_types;
13818        {
13819            #[doc(hidden)]
13820            type UnderlyingSolTuple<'a> = (
13821                alloy::sol_types::sol_data::Address,
13822                alloy::sol_types::sol_data::Address,
13823            );
13824            #[doc(hidden)]
13825            type UnderlyingRustTuple<'a> = (
13826                alloy::sol_types::private::Address,
13827                alloy::sol_types::private::Address,
13828            );
13829            #[cfg(test)]
13830            #[allow(dead_code, unreachable_patterns)]
13831            fn _type_assertion(
13832                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13833            ) {
13834                match _t {
13835                    alloy_sol_types::private::AssertTypeEq::<
13836                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13837                    >(_) => {}
13838                }
13839            }
13840            #[automatically_derived]
13841            #[doc(hidden)]
13842            impl ::core::convert::From<setAVSRegistrarCall> for UnderlyingRustTuple<'_> {
13843                fn from(value: setAVSRegistrarCall) -> Self {
13844                    (value.avs, value.registrar)
13845                }
13846            }
13847            #[automatically_derived]
13848            #[doc(hidden)]
13849            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setAVSRegistrarCall {
13850                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13851                    Self {
13852                        avs: tuple.0,
13853                        registrar: tuple.1,
13854                    }
13855                }
13856            }
13857        }
13858        {
13859            #[doc(hidden)]
13860            type UnderlyingSolTuple<'a> = ();
13861            #[doc(hidden)]
13862            type UnderlyingRustTuple<'a> = ();
13863            #[cfg(test)]
13864            #[allow(dead_code, unreachable_patterns)]
13865            fn _type_assertion(
13866                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13867            ) {
13868                match _t {
13869                    alloy_sol_types::private::AssertTypeEq::<
13870                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13871                    >(_) => {}
13872                }
13873            }
13874            #[automatically_derived]
13875            #[doc(hidden)]
13876            impl ::core::convert::From<setAVSRegistrarReturn>
13877            for UnderlyingRustTuple<'_> {
13878                fn from(value: setAVSRegistrarReturn) -> Self {
13879                    ()
13880                }
13881            }
13882            #[automatically_derived]
13883            #[doc(hidden)]
13884            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13885            for setAVSRegistrarReturn {
13886                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13887                    Self {}
13888                }
13889            }
13890        }
13891        #[automatically_derived]
13892        impl alloy_sol_types::SolCall for setAVSRegistrarCall {
13893            type Parameters<'a> = (
13894                alloy::sol_types::sol_data::Address,
13895                alloy::sol_types::sol_data::Address,
13896            );
13897            type Token<'a> = <Self::Parameters<
13898                'a,
13899            > as alloy_sol_types::SolType>::Token<'a>;
13900            type Return = setAVSRegistrarReturn;
13901            type ReturnTuple<'a> = ();
13902            type ReturnToken<'a> = <Self::ReturnTuple<
13903                'a,
13904            > as alloy_sol_types::SolType>::Token<'a>;
13905            const SIGNATURE: &'static str = "setAVSRegistrar(address,address)";
13906            const SELECTOR: [u8; 4] = [211u8, 217u8, 111u8, 244u8];
13907            #[inline]
13908            fn new<'a>(
13909                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13910            ) -> Self {
13911                tuple.into()
13912            }
13913            #[inline]
13914            fn tokenize(&self) -> Self::Token<'_> {
13915                (
13916                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13917                        &self.avs,
13918                    ),
13919                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13920                        &self.registrar,
13921                    ),
13922                )
13923            }
13924            #[inline]
13925            fn abi_decode_returns(
13926                data: &[u8],
13927                validate: bool,
13928            ) -> alloy_sol_types::Result<Self::Return> {
13929                <Self::ReturnTuple<
13930                    '_,
13931                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13932                    .map(Into::into)
13933            }
13934        }
13935    };
13936    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13937    /**Function with signature `setAllocationDelay(address,uint32)` and selector `0x56c483e6`.
13938```solidity
13939function setAllocationDelay(address operator, uint32 delay) external;
13940```*/
13941    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13942    #[derive(Clone)]
13943    pub struct setAllocationDelayCall {
13944        #[allow(missing_docs)]
13945        pub operator: alloy::sol_types::private::Address,
13946        #[allow(missing_docs)]
13947        pub delay: u32,
13948    }
13949    ///Container type for the return parameters of the [`setAllocationDelay(address,uint32)`](setAllocationDelayCall) function.
13950    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13951    #[derive(Clone)]
13952    pub struct setAllocationDelayReturn {}
13953    #[allow(
13954        non_camel_case_types,
13955        non_snake_case,
13956        clippy::pub_underscore_fields,
13957        clippy::style
13958    )]
13959    const _: () = {
13960        use alloy::sol_types as alloy_sol_types;
13961        {
13962            #[doc(hidden)]
13963            type UnderlyingSolTuple<'a> = (
13964                alloy::sol_types::sol_data::Address,
13965                alloy::sol_types::sol_data::Uint<32>,
13966            );
13967            #[doc(hidden)]
13968            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u32);
13969            #[cfg(test)]
13970            #[allow(dead_code, unreachable_patterns)]
13971            fn _type_assertion(
13972                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13973            ) {
13974                match _t {
13975                    alloy_sol_types::private::AssertTypeEq::<
13976                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13977                    >(_) => {}
13978                }
13979            }
13980            #[automatically_derived]
13981            #[doc(hidden)]
13982            impl ::core::convert::From<setAllocationDelayCall>
13983            for UnderlyingRustTuple<'_> {
13984                fn from(value: setAllocationDelayCall) -> Self {
13985                    (value.operator, value.delay)
13986                }
13987            }
13988            #[automatically_derived]
13989            #[doc(hidden)]
13990            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13991            for setAllocationDelayCall {
13992                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13993                    Self {
13994                        operator: tuple.0,
13995                        delay: tuple.1,
13996                    }
13997                }
13998            }
13999        }
14000        {
14001            #[doc(hidden)]
14002            type UnderlyingSolTuple<'a> = ();
14003            #[doc(hidden)]
14004            type UnderlyingRustTuple<'a> = ();
14005            #[cfg(test)]
14006            #[allow(dead_code, unreachable_patterns)]
14007            fn _type_assertion(
14008                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14009            ) {
14010                match _t {
14011                    alloy_sol_types::private::AssertTypeEq::<
14012                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14013                    >(_) => {}
14014                }
14015            }
14016            #[automatically_derived]
14017            #[doc(hidden)]
14018            impl ::core::convert::From<setAllocationDelayReturn>
14019            for UnderlyingRustTuple<'_> {
14020                fn from(value: setAllocationDelayReturn) -> Self {
14021                    ()
14022                }
14023            }
14024            #[automatically_derived]
14025            #[doc(hidden)]
14026            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14027            for setAllocationDelayReturn {
14028                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14029                    Self {}
14030                }
14031            }
14032        }
14033        #[automatically_derived]
14034        impl alloy_sol_types::SolCall for setAllocationDelayCall {
14035            type Parameters<'a> = (
14036                alloy::sol_types::sol_data::Address,
14037                alloy::sol_types::sol_data::Uint<32>,
14038            );
14039            type Token<'a> = <Self::Parameters<
14040                'a,
14041            > as alloy_sol_types::SolType>::Token<'a>;
14042            type Return = setAllocationDelayReturn;
14043            type ReturnTuple<'a> = ();
14044            type ReturnToken<'a> = <Self::ReturnTuple<
14045                'a,
14046            > as alloy_sol_types::SolType>::Token<'a>;
14047            const SIGNATURE: &'static str = "setAllocationDelay(address,uint32)";
14048            const SELECTOR: [u8; 4] = [86u8, 196u8, 131u8, 230u8];
14049            #[inline]
14050            fn new<'a>(
14051                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14052            ) -> Self {
14053                tuple.into()
14054            }
14055            #[inline]
14056            fn tokenize(&self) -> Self::Token<'_> {
14057                (
14058                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14059                        &self.operator,
14060                    ),
14061                    <alloy::sol_types::sol_data::Uint<
14062                        32,
14063                    > as alloy_sol_types::SolType>::tokenize(&self.delay),
14064                )
14065            }
14066            #[inline]
14067            fn abi_decode_returns(
14068                data: &[u8],
14069                validate: bool,
14070            ) -> alloy_sol_types::Result<Self::Return> {
14071                <Self::ReturnTuple<
14072                    '_,
14073                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14074                    .map(Into::into)
14075            }
14076        }
14077    };
14078    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14079    /**Function with signature `slashOperator(address,(address,uint32,address[],uint256[],string))` and selector `0x36352057`.
14080```solidity
14081function slashOperator(address avs, IAllocationManagerTypes.SlashingParams memory params) external;
14082```*/
14083    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14084    #[derive(Clone)]
14085    pub struct slashOperatorCall {
14086        #[allow(missing_docs)]
14087        pub avs: alloy::sol_types::private::Address,
14088        #[allow(missing_docs)]
14089        pub params: <IAllocationManagerTypes::SlashingParams as alloy::sol_types::SolType>::RustType,
14090    }
14091    ///Container type for the return parameters of the [`slashOperator(address,(address,uint32,address[],uint256[],string))`](slashOperatorCall) function.
14092    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14093    #[derive(Clone)]
14094    pub struct slashOperatorReturn {}
14095    #[allow(
14096        non_camel_case_types,
14097        non_snake_case,
14098        clippy::pub_underscore_fields,
14099        clippy::style
14100    )]
14101    const _: () = {
14102        use alloy::sol_types as alloy_sol_types;
14103        {
14104            #[doc(hidden)]
14105            type UnderlyingSolTuple<'a> = (
14106                alloy::sol_types::sol_data::Address,
14107                IAllocationManagerTypes::SlashingParams,
14108            );
14109            #[doc(hidden)]
14110            type UnderlyingRustTuple<'a> = (
14111                alloy::sol_types::private::Address,
14112                <IAllocationManagerTypes::SlashingParams as alloy::sol_types::SolType>::RustType,
14113            );
14114            #[cfg(test)]
14115            #[allow(dead_code, unreachable_patterns)]
14116            fn _type_assertion(
14117                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14118            ) {
14119                match _t {
14120                    alloy_sol_types::private::AssertTypeEq::<
14121                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14122                    >(_) => {}
14123                }
14124            }
14125            #[automatically_derived]
14126            #[doc(hidden)]
14127            impl ::core::convert::From<slashOperatorCall> for UnderlyingRustTuple<'_> {
14128                fn from(value: slashOperatorCall) -> Self {
14129                    (value.avs, value.params)
14130                }
14131            }
14132            #[automatically_derived]
14133            #[doc(hidden)]
14134            impl ::core::convert::From<UnderlyingRustTuple<'_>> for slashOperatorCall {
14135                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14136                    Self {
14137                        avs: tuple.0,
14138                        params: tuple.1,
14139                    }
14140                }
14141            }
14142        }
14143        {
14144            #[doc(hidden)]
14145            type UnderlyingSolTuple<'a> = ();
14146            #[doc(hidden)]
14147            type UnderlyingRustTuple<'a> = ();
14148            #[cfg(test)]
14149            #[allow(dead_code, unreachable_patterns)]
14150            fn _type_assertion(
14151                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14152            ) {
14153                match _t {
14154                    alloy_sol_types::private::AssertTypeEq::<
14155                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14156                    >(_) => {}
14157                }
14158            }
14159            #[automatically_derived]
14160            #[doc(hidden)]
14161            impl ::core::convert::From<slashOperatorReturn> for UnderlyingRustTuple<'_> {
14162                fn from(value: slashOperatorReturn) -> Self {
14163                    ()
14164                }
14165            }
14166            #[automatically_derived]
14167            #[doc(hidden)]
14168            impl ::core::convert::From<UnderlyingRustTuple<'_>> for slashOperatorReturn {
14169                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14170                    Self {}
14171                }
14172            }
14173        }
14174        #[automatically_derived]
14175        impl alloy_sol_types::SolCall for slashOperatorCall {
14176            type Parameters<'a> = (
14177                alloy::sol_types::sol_data::Address,
14178                IAllocationManagerTypes::SlashingParams,
14179            );
14180            type Token<'a> = <Self::Parameters<
14181                'a,
14182            > as alloy_sol_types::SolType>::Token<'a>;
14183            type Return = slashOperatorReturn;
14184            type ReturnTuple<'a> = ();
14185            type ReturnToken<'a> = <Self::ReturnTuple<
14186                'a,
14187            > as alloy_sol_types::SolType>::Token<'a>;
14188            const SIGNATURE: &'static str = "slashOperator(address,(address,uint32,address[],uint256[],string))";
14189            const SELECTOR: [u8; 4] = [54u8, 53u8, 32u8, 87u8];
14190            #[inline]
14191            fn new<'a>(
14192                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14193            ) -> Self {
14194                tuple.into()
14195            }
14196            #[inline]
14197            fn tokenize(&self) -> Self::Token<'_> {
14198                (
14199                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14200                        &self.avs,
14201                    ),
14202                    <IAllocationManagerTypes::SlashingParams as alloy_sol_types::SolType>::tokenize(
14203                        &self.params,
14204                    ),
14205                )
14206            }
14207            #[inline]
14208            fn abi_decode_returns(
14209                data: &[u8],
14210                validate: bool,
14211            ) -> alloy_sol_types::Result<Self::Return> {
14212                <Self::ReturnTuple<
14213                    '_,
14214                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14215                    .map(Into::into)
14216            }
14217        }
14218    };
14219    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14220    /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`.
14221```solidity
14222function transferOwnership(address newOwner) external;
14223```*/
14224    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14225    #[derive(Clone)]
14226    pub struct transferOwnershipCall {
14227        #[allow(missing_docs)]
14228        pub newOwner: alloy::sol_types::private::Address,
14229    }
14230    ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function.
14231    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14232    #[derive(Clone)]
14233    pub struct transferOwnershipReturn {}
14234    #[allow(
14235        non_camel_case_types,
14236        non_snake_case,
14237        clippy::pub_underscore_fields,
14238        clippy::style
14239    )]
14240    const _: () = {
14241        use alloy::sol_types as alloy_sol_types;
14242        {
14243            #[doc(hidden)]
14244            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14245            #[doc(hidden)]
14246            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14247            #[cfg(test)]
14248            #[allow(dead_code, unreachable_patterns)]
14249            fn _type_assertion(
14250                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14251            ) {
14252                match _t {
14253                    alloy_sol_types::private::AssertTypeEq::<
14254                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14255                    >(_) => {}
14256                }
14257            }
14258            #[automatically_derived]
14259            #[doc(hidden)]
14260            impl ::core::convert::From<transferOwnershipCall>
14261            for UnderlyingRustTuple<'_> {
14262                fn from(value: transferOwnershipCall) -> Self {
14263                    (value.newOwner,)
14264                }
14265            }
14266            #[automatically_derived]
14267            #[doc(hidden)]
14268            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14269            for transferOwnershipCall {
14270                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14271                    Self { newOwner: tuple.0 }
14272                }
14273            }
14274        }
14275        {
14276            #[doc(hidden)]
14277            type UnderlyingSolTuple<'a> = ();
14278            #[doc(hidden)]
14279            type UnderlyingRustTuple<'a> = ();
14280            #[cfg(test)]
14281            #[allow(dead_code, unreachable_patterns)]
14282            fn _type_assertion(
14283                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14284            ) {
14285                match _t {
14286                    alloy_sol_types::private::AssertTypeEq::<
14287                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14288                    >(_) => {}
14289                }
14290            }
14291            #[automatically_derived]
14292            #[doc(hidden)]
14293            impl ::core::convert::From<transferOwnershipReturn>
14294            for UnderlyingRustTuple<'_> {
14295                fn from(value: transferOwnershipReturn) -> Self {
14296                    ()
14297                }
14298            }
14299            #[automatically_derived]
14300            #[doc(hidden)]
14301            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14302            for transferOwnershipReturn {
14303                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14304                    Self {}
14305                }
14306            }
14307        }
14308        #[automatically_derived]
14309        impl alloy_sol_types::SolCall for transferOwnershipCall {
14310            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
14311            type Token<'a> = <Self::Parameters<
14312                'a,
14313            > as alloy_sol_types::SolType>::Token<'a>;
14314            type Return = transferOwnershipReturn;
14315            type ReturnTuple<'a> = ();
14316            type ReturnToken<'a> = <Self::ReturnTuple<
14317                'a,
14318            > as alloy_sol_types::SolType>::Token<'a>;
14319            const SIGNATURE: &'static str = "transferOwnership(address)";
14320            const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
14321            #[inline]
14322            fn new<'a>(
14323                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14324            ) -> Self {
14325                tuple.into()
14326            }
14327            #[inline]
14328            fn tokenize(&self) -> Self::Token<'_> {
14329                (
14330                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14331                        &self.newOwner,
14332                    ),
14333                )
14334            }
14335            #[inline]
14336            fn abi_decode_returns(
14337                data: &[u8],
14338                validate: bool,
14339            ) -> alloy_sol_types::Result<Self::Return> {
14340                <Self::ReturnTuple<
14341                    '_,
14342                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14343                    .map(Into::into)
14344            }
14345        }
14346    };
14347    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14348    /**Function with signature `unpause(uint256)` and selector `0xfabc1cbc`.
14349```solidity
14350function unpause(uint256 newPausedStatus) external;
14351```*/
14352    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14353    #[derive(Clone)]
14354    pub struct unpauseCall {
14355        #[allow(missing_docs)]
14356        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
14357    }
14358    ///Container type for the return parameters of the [`unpause(uint256)`](unpauseCall) function.
14359    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14360    #[derive(Clone)]
14361    pub struct unpauseReturn {}
14362    #[allow(
14363        non_camel_case_types,
14364        non_snake_case,
14365        clippy::pub_underscore_fields,
14366        clippy::style
14367    )]
14368    const _: () = {
14369        use alloy::sol_types as alloy_sol_types;
14370        {
14371            #[doc(hidden)]
14372            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
14373            #[doc(hidden)]
14374            type UnderlyingRustTuple<'a> = (
14375                alloy::sol_types::private::primitives::aliases::U256,
14376            );
14377            #[cfg(test)]
14378            #[allow(dead_code, unreachable_patterns)]
14379            fn _type_assertion(
14380                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14381            ) {
14382                match _t {
14383                    alloy_sol_types::private::AssertTypeEq::<
14384                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14385                    >(_) => {}
14386                }
14387            }
14388            #[automatically_derived]
14389            #[doc(hidden)]
14390            impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
14391                fn from(value: unpauseCall) -> Self {
14392                    (value.newPausedStatus,)
14393                }
14394            }
14395            #[automatically_derived]
14396            #[doc(hidden)]
14397            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
14398                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14399                    Self { newPausedStatus: tuple.0 }
14400                }
14401            }
14402        }
14403        {
14404            #[doc(hidden)]
14405            type UnderlyingSolTuple<'a> = ();
14406            #[doc(hidden)]
14407            type UnderlyingRustTuple<'a> = ();
14408            #[cfg(test)]
14409            #[allow(dead_code, unreachable_patterns)]
14410            fn _type_assertion(
14411                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14412            ) {
14413                match _t {
14414                    alloy_sol_types::private::AssertTypeEq::<
14415                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14416                    >(_) => {}
14417                }
14418            }
14419            #[automatically_derived]
14420            #[doc(hidden)]
14421            impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
14422                fn from(value: unpauseReturn) -> Self {
14423                    ()
14424                }
14425            }
14426            #[automatically_derived]
14427            #[doc(hidden)]
14428            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
14429                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14430                    Self {}
14431                }
14432            }
14433        }
14434        #[automatically_derived]
14435        impl alloy_sol_types::SolCall for unpauseCall {
14436            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
14437            type Token<'a> = <Self::Parameters<
14438                'a,
14439            > as alloy_sol_types::SolType>::Token<'a>;
14440            type Return = unpauseReturn;
14441            type ReturnTuple<'a> = ();
14442            type ReturnToken<'a> = <Self::ReturnTuple<
14443                'a,
14444            > as alloy_sol_types::SolType>::Token<'a>;
14445            const SIGNATURE: &'static str = "unpause(uint256)";
14446            const SELECTOR: [u8; 4] = [250u8, 188u8, 28u8, 188u8];
14447            #[inline]
14448            fn new<'a>(
14449                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14450            ) -> Self {
14451                tuple.into()
14452            }
14453            #[inline]
14454            fn tokenize(&self) -> Self::Token<'_> {
14455                (
14456                    <alloy::sol_types::sol_data::Uint<
14457                        256,
14458                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
14459                )
14460            }
14461            #[inline]
14462            fn abi_decode_returns(
14463                data: &[u8],
14464                validate: bool,
14465            ) -> alloy_sol_types::Result<Self::Return> {
14466                <Self::ReturnTuple<
14467                    '_,
14468                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14469                    .map(Into::into)
14470            }
14471        }
14472    };
14473    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14474    /**Function with signature `updateAVSMetadataURI(address,string)` and selector `0xa9821821`.
14475```solidity
14476function updateAVSMetadataURI(address avs, string memory metadataURI) external;
14477```*/
14478    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14479    #[derive(Clone)]
14480    pub struct updateAVSMetadataURICall {
14481        #[allow(missing_docs)]
14482        pub avs: alloy::sol_types::private::Address,
14483        #[allow(missing_docs)]
14484        pub metadataURI: alloy::sol_types::private::String,
14485    }
14486    ///Container type for the return parameters of the [`updateAVSMetadataURI(address,string)`](updateAVSMetadataURICall) function.
14487    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14488    #[derive(Clone)]
14489    pub struct updateAVSMetadataURIReturn {}
14490    #[allow(
14491        non_camel_case_types,
14492        non_snake_case,
14493        clippy::pub_underscore_fields,
14494        clippy::style
14495    )]
14496    const _: () = {
14497        use alloy::sol_types as alloy_sol_types;
14498        {
14499            #[doc(hidden)]
14500            type UnderlyingSolTuple<'a> = (
14501                alloy::sol_types::sol_data::Address,
14502                alloy::sol_types::sol_data::String,
14503            );
14504            #[doc(hidden)]
14505            type UnderlyingRustTuple<'a> = (
14506                alloy::sol_types::private::Address,
14507                alloy::sol_types::private::String,
14508            );
14509            #[cfg(test)]
14510            #[allow(dead_code, unreachable_patterns)]
14511            fn _type_assertion(
14512                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14513            ) {
14514                match _t {
14515                    alloy_sol_types::private::AssertTypeEq::<
14516                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14517                    >(_) => {}
14518                }
14519            }
14520            #[automatically_derived]
14521            #[doc(hidden)]
14522            impl ::core::convert::From<updateAVSMetadataURICall>
14523            for UnderlyingRustTuple<'_> {
14524                fn from(value: updateAVSMetadataURICall) -> Self {
14525                    (value.avs, value.metadataURI)
14526                }
14527            }
14528            #[automatically_derived]
14529            #[doc(hidden)]
14530            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14531            for updateAVSMetadataURICall {
14532                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14533                    Self {
14534                        avs: tuple.0,
14535                        metadataURI: tuple.1,
14536                    }
14537                }
14538            }
14539        }
14540        {
14541            #[doc(hidden)]
14542            type UnderlyingSolTuple<'a> = ();
14543            #[doc(hidden)]
14544            type UnderlyingRustTuple<'a> = ();
14545            #[cfg(test)]
14546            #[allow(dead_code, unreachable_patterns)]
14547            fn _type_assertion(
14548                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14549            ) {
14550                match _t {
14551                    alloy_sol_types::private::AssertTypeEq::<
14552                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14553                    >(_) => {}
14554                }
14555            }
14556            #[automatically_derived]
14557            #[doc(hidden)]
14558            impl ::core::convert::From<updateAVSMetadataURIReturn>
14559            for UnderlyingRustTuple<'_> {
14560                fn from(value: updateAVSMetadataURIReturn) -> Self {
14561                    ()
14562                }
14563            }
14564            #[automatically_derived]
14565            #[doc(hidden)]
14566            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14567            for updateAVSMetadataURIReturn {
14568                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14569                    Self {}
14570                }
14571            }
14572        }
14573        #[automatically_derived]
14574        impl alloy_sol_types::SolCall for updateAVSMetadataURICall {
14575            type Parameters<'a> = (
14576                alloy::sol_types::sol_data::Address,
14577                alloy::sol_types::sol_data::String,
14578            );
14579            type Token<'a> = <Self::Parameters<
14580                'a,
14581            > as alloy_sol_types::SolType>::Token<'a>;
14582            type Return = updateAVSMetadataURIReturn;
14583            type ReturnTuple<'a> = ();
14584            type ReturnToken<'a> = <Self::ReturnTuple<
14585                'a,
14586            > as alloy_sol_types::SolType>::Token<'a>;
14587            const SIGNATURE: &'static str = "updateAVSMetadataURI(address,string)";
14588            const SELECTOR: [u8; 4] = [169u8, 130u8, 24u8, 33u8];
14589            #[inline]
14590            fn new<'a>(
14591                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14592            ) -> Self {
14593                tuple.into()
14594            }
14595            #[inline]
14596            fn tokenize(&self) -> Self::Token<'_> {
14597                (
14598                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14599                        &self.avs,
14600                    ),
14601                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
14602                        &self.metadataURI,
14603                    ),
14604                )
14605            }
14606            #[inline]
14607            fn abi_decode_returns(
14608                data: &[u8],
14609                validate: bool,
14610            ) -> alloy_sol_types::Result<Self::Return> {
14611                <Self::ReturnTuple<
14612                    '_,
14613                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14614                    .map(Into::into)
14615            }
14616        }
14617    };
14618    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14619    /**Function with signature `version()` and selector `0x54fd4d50`.
14620```solidity
14621function version() external view returns (string memory);
14622```*/
14623    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14624    #[derive(Clone)]
14625    pub struct versionCall {}
14626    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14627    ///Container type for the return parameters of the [`version()`](versionCall) function.
14628    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14629    #[derive(Clone)]
14630    pub struct versionReturn {
14631        #[allow(missing_docs)]
14632        pub _0: alloy::sol_types::private::String,
14633    }
14634    #[allow(
14635        non_camel_case_types,
14636        non_snake_case,
14637        clippy::pub_underscore_fields,
14638        clippy::style
14639    )]
14640    const _: () = {
14641        use alloy::sol_types as alloy_sol_types;
14642        {
14643            #[doc(hidden)]
14644            type UnderlyingSolTuple<'a> = ();
14645            #[doc(hidden)]
14646            type UnderlyingRustTuple<'a> = ();
14647            #[cfg(test)]
14648            #[allow(dead_code, unreachable_patterns)]
14649            fn _type_assertion(
14650                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14651            ) {
14652                match _t {
14653                    alloy_sol_types::private::AssertTypeEq::<
14654                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14655                    >(_) => {}
14656                }
14657            }
14658            #[automatically_derived]
14659            #[doc(hidden)]
14660            impl ::core::convert::From<versionCall> for UnderlyingRustTuple<'_> {
14661                fn from(value: versionCall) -> Self {
14662                    ()
14663                }
14664            }
14665            #[automatically_derived]
14666            #[doc(hidden)]
14667            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionCall {
14668                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14669                    Self {}
14670                }
14671            }
14672        }
14673        {
14674            #[doc(hidden)]
14675            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
14676            #[doc(hidden)]
14677            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
14678            #[cfg(test)]
14679            #[allow(dead_code, unreachable_patterns)]
14680            fn _type_assertion(
14681                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14682            ) {
14683                match _t {
14684                    alloy_sol_types::private::AssertTypeEq::<
14685                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14686                    >(_) => {}
14687                }
14688            }
14689            #[automatically_derived]
14690            #[doc(hidden)]
14691            impl ::core::convert::From<versionReturn> for UnderlyingRustTuple<'_> {
14692                fn from(value: versionReturn) -> Self {
14693                    (value._0,)
14694                }
14695            }
14696            #[automatically_derived]
14697            #[doc(hidden)]
14698            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionReturn {
14699                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14700                    Self { _0: tuple.0 }
14701                }
14702            }
14703        }
14704        #[automatically_derived]
14705        impl alloy_sol_types::SolCall for versionCall {
14706            type Parameters<'a> = ();
14707            type Token<'a> = <Self::Parameters<
14708                'a,
14709            > as alloy_sol_types::SolType>::Token<'a>;
14710            type Return = versionReturn;
14711            type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,);
14712            type ReturnToken<'a> = <Self::ReturnTuple<
14713                'a,
14714            > as alloy_sol_types::SolType>::Token<'a>;
14715            const SIGNATURE: &'static str = "version()";
14716            const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8];
14717            #[inline]
14718            fn new<'a>(
14719                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14720            ) -> Self {
14721                tuple.into()
14722            }
14723            #[inline]
14724            fn tokenize(&self) -> Self::Token<'_> {
14725                ()
14726            }
14727            #[inline]
14728            fn abi_decode_returns(
14729                data: &[u8],
14730                validate: bool,
14731            ) -> alloy_sol_types::Result<Self::Return> {
14732                <Self::ReturnTuple<
14733                    '_,
14734                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14735                    .map(Into::into)
14736            }
14737        }
14738    };
14739    ///Container for all the [`AllocationManager`](self) function calls.
14740    #[derive()]
14741    pub enum AllocationManagerCalls {
14742        #[allow(missing_docs)]
14743        ALLOCATION_CONFIGURATION_DELAY(ALLOCATION_CONFIGURATION_DELAYCall),
14744        #[allow(missing_docs)]
14745        DEALLOCATION_DELAY(DEALLOCATION_DELAYCall),
14746        #[allow(missing_docs)]
14747        addStrategiesToOperatorSet(addStrategiesToOperatorSetCall),
14748        #[allow(missing_docs)]
14749        clearDeallocationQueue(clearDeallocationQueueCall),
14750        #[allow(missing_docs)]
14751        createOperatorSets(createOperatorSetsCall),
14752        #[allow(missing_docs)]
14753        delegation(delegationCall),
14754        #[allow(missing_docs)]
14755        deregisterFromOperatorSets(deregisterFromOperatorSetsCall),
14756        #[allow(missing_docs)]
14757        getAVSRegistrar(getAVSRegistrarCall),
14758        #[allow(missing_docs)]
14759        getAllocatableMagnitude(getAllocatableMagnitudeCall),
14760        #[allow(missing_docs)]
14761        getAllocatedSets(getAllocatedSetsCall),
14762        #[allow(missing_docs)]
14763        getAllocatedStake(getAllocatedStakeCall),
14764        #[allow(missing_docs)]
14765        getAllocatedStrategies(getAllocatedStrategiesCall),
14766        #[allow(missing_docs)]
14767        getAllocation(getAllocationCall),
14768        #[allow(missing_docs)]
14769        getAllocationDelay(getAllocationDelayCall),
14770        #[allow(missing_docs)]
14771        getAllocations(getAllocationsCall),
14772        #[allow(missing_docs)]
14773        getEncumberedMagnitude(getEncumberedMagnitudeCall),
14774        #[allow(missing_docs)]
14775        getMaxMagnitude(getMaxMagnitudeCall),
14776        #[allow(missing_docs)]
14777        getMaxMagnitudes_0(getMaxMagnitudes_0Call),
14778        #[allow(missing_docs)]
14779        getMaxMagnitudes_1(getMaxMagnitudes_1Call),
14780        #[allow(missing_docs)]
14781        getMaxMagnitudesAtBlock(getMaxMagnitudesAtBlockCall),
14782        #[allow(missing_docs)]
14783        getMemberCount(getMemberCountCall),
14784        #[allow(missing_docs)]
14785        getMembers(getMembersCall),
14786        #[allow(missing_docs)]
14787        getMinimumSlashableStake(getMinimumSlashableStakeCall),
14788        #[allow(missing_docs)]
14789        getOperatorSetCount(getOperatorSetCountCall),
14790        #[allow(missing_docs)]
14791        getRegisteredSets(getRegisteredSetsCall),
14792        #[allow(missing_docs)]
14793        getStrategiesInOperatorSet(getStrategiesInOperatorSetCall),
14794        #[allow(missing_docs)]
14795        getStrategyAllocations(getStrategyAllocationsCall),
14796        #[allow(missing_docs)]
14797        initialize(initializeCall),
14798        #[allow(missing_docs)]
14799        isMemberOfOperatorSet(isMemberOfOperatorSetCall),
14800        #[allow(missing_docs)]
14801        isOperatorSet(isOperatorSetCall),
14802        #[allow(missing_docs)]
14803        isOperatorSlashable(isOperatorSlashableCall),
14804        #[allow(missing_docs)]
14805        modifyAllocations(modifyAllocationsCall),
14806        #[allow(missing_docs)]
14807        owner(ownerCall),
14808        #[allow(missing_docs)]
14809        pause(pauseCall),
14810        #[allow(missing_docs)]
14811        pauseAll(pauseAllCall),
14812        #[allow(missing_docs)]
14813        paused_0(paused_0Call),
14814        #[allow(missing_docs)]
14815        paused_1(paused_1Call),
14816        #[allow(missing_docs)]
14817        pauserRegistry(pauserRegistryCall),
14818        #[allow(missing_docs)]
14819        permissionController(permissionControllerCall),
14820        #[allow(missing_docs)]
14821        registerForOperatorSets(registerForOperatorSetsCall),
14822        #[allow(missing_docs)]
14823        removeStrategiesFromOperatorSet(removeStrategiesFromOperatorSetCall),
14824        #[allow(missing_docs)]
14825        renounceOwnership(renounceOwnershipCall),
14826        #[allow(missing_docs)]
14827        setAVSRegistrar(setAVSRegistrarCall),
14828        #[allow(missing_docs)]
14829        setAllocationDelay(setAllocationDelayCall),
14830        #[allow(missing_docs)]
14831        slashOperator(slashOperatorCall),
14832        #[allow(missing_docs)]
14833        transferOwnership(transferOwnershipCall),
14834        #[allow(missing_docs)]
14835        unpause(unpauseCall),
14836        #[allow(missing_docs)]
14837        updateAVSMetadataURI(updateAVSMetadataURICall),
14838        #[allow(missing_docs)]
14839        version(versionCall),
14840    }
14841    #[automatically_derived]
14842    impl AllocationManagerCalls {
14843        /// All the selectors of this enum.
14844        ///
14845        /// Note that the selectors might not be in the same order as the variants.
14846        /// No guarantees are made about the order of the selectors.
14847        ///
14848        /// Prefer using `SolInterface` methods instead.
14849        pub const SELECTORS: &'static [[u8; 4usize]] = &[
14850            [16u8, 225u8, 185u8, 184u8],
14851            [19u8, 82u8, 195u8, 230u8],
14852            [19u8, 100u8, 57u8, 221u8],
14853            [21u8, 254u8, 80u8, 40u8],
14854            [38u8, 13u8, 199u8, 88u8],
14855            [38u8, 31u8, 132u8, 224u8],
14856            [41u8, 129u8, 235u8, 119u8],
14857            [43u8, 69u8, 58u8, 154u8],
14858            [43u8, 171u8, 44u8, 74u8],
14859            [48u8, 76u8, 16u8, 205u8],
14860            [54u8, 53u8, 32u8, 87u8],
14861            [64u8, 18u8, 13u8, 171u8],
14862            [65u8, 119u8, 168u8, 124u8],
14863            [70u8, 87u8, 226u8, 106u8],
14864            [74u8, 16u8, 255u8, 229u8],
14865            [75u8, 80u8, 70u8, 239u8],
14866            [80u8, 254u8, 234u8, 32u8],
14867            [84u8, 122u8, 251u8, 135u8],
14868            [84u8, 253u8, 77u8, 80u8],
14869            [86u8, 196u8, 131u8, 230u8],
14870            [89u8, 92u8, 106u8, 103u8],
14871            [90u8, 200u8, 106u8, 183u8],
14872            [92u8, 151u8, 90u8, 187u8],
14873            [103u8, 13u8, 59u8, 162u8],
14874            [108u8, 251u8, 68u8, 129u8],
14875            [110u8, 52u8, 146u8, 181u8],
14876            [110u8, 135u8, 93u8, 186u8],
14877            [113u8, 80u8, 24u8, 166u8],
14878            [121u8, 174u8, 80u8, 205u8],
14879            [123u8, 193u8, 239u8, 97u8],
14880            [136u8, 111u8, 17u8, 149u8],
14881            [140u8, 230u8, 72u8, 84u8],
14882            [141u8, 165u8, 203u8, 91u8],
14883            [148u8, 215u8, 208u8, 12u8],
14884            [149u8, 40u8, 153u8, 238u8],
14885            [169u8, 51u8, 62u8, 200u8],
14886            [169u8, 130u8, 24u8, 33u8],
14887            [173u8, 194u8, 227u8, 217u8],
14888            [178u8, 68u8, 122u8, 247u8],
14889            [182u8, 107u8, 217u8, 137u8],
14890            [185u8, 251u8, 174u8, 209u8],
14891            [186u8, 26u8, 132u8, 229u8],
14892            [194u8, 33u8, 216u8, 174u8],
14893            [205u8, 109u8, 198u8, 135u8],
14894            [211u8, 217u8, 111u8, 244u8],
14895            [223u8, 92u8, 247u8, 35u8],
14896            [242u8, 253u8, 227u8, 139u8],
14897            [246u8, 5u8, 206u8, 8u8],
14898            [250u8, 188u8, 28u8, 188u8],
14899        ];
14900    }
14901    #[automatically_derived]
14902    impl alloy_sol_types::SolInterface for AllocationManagerCalls {
14903        const NAME: &'static str = "AllocationManagerCalls";
14904        const MIN_DATA_LENGTH: usize = 0usize;
14905        const COUNT: usize = 49usize;
14906        #[inline]
14907        fn selector(&self) -> [u8; 4] {
14908            match self {
14909                Self::ALLOCATION_CONFIGURATION_DELAY(_) => {
14910                    <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::SELECTOR
14911                }
14912                Self::DEALLOCATION_DELAY(_) => {
14913                    <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::SELECTOR
14914                }
14915                Self::addStrategiesToOperatorSet(_) => {
14916                    <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
14917                }
14918                Self::clearDeallocationQueue(_) => {
14919                    <clearDeallocationQueueCall as alloy_sol_types::SolCall>::SELECTOR
14920                }
14921                Self::createOperatorSets(_) => {
14922                    <createOperatorSetsCall as alloy_sol_types::SolCall>::SELECTOR
14923                }
14924                Self::delegation(_) => {
14925                    <delegationCall as alloy_sol_types::SolCall>::SELECTOR
14926                }
14927                Self::deregisterFromOperatorSets(_) => {
14928                    <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::SELECTOR
14929                }
14930                Self::getAVSRegistrar(_) => {
14931                    <getAVSRegistrarCall as alloy_sol_types::SolCall>::SELECTOR
14932                }
14933                Self::getAllocatableMagnitude(_) => {
14934                    <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::SELECTOR
14935                }
14936                Self::getAllocatedSets(_) => {
14937                    <getAllocatedSetsCall as alloy_sol_types::SolCall>::SELECTOR
14938                }
14939                Self::getAllocatedStake(_) => {
14940                    <getAllocatedStakeCall as alloy_sol_types::SolCall>::SELECTOR
14941                }
14942                Self::getAllocatedStrategies(_) => {
14943                    <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::SELECTOR
14944                }
14945                Self::getAllocation(_) => {
14946                    <getAllocationCall as alloy_sol_types::SolCall>::SELECTOR
14947                }
14948                Self::getAllocationDelay(_) => {
14949                    <getAllocationDelayCall as alloy_sol_types::SolCall>::SELECTOR
14950                }
14951                Self::getAllocations(_) => {
14952                    <getAllocationsCall as alloy_sol_types::SolCall>::SELECTOR
14953                }
14954                Self::getEncumberedMagnitude(_) => {
14955                    <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::SELECTOR
14956                }
14957                Self::getMaxMagnitude(_) => {
14958                    <getMaxMagnitudeCall as alloy_sol_types::SolCall>::SELECTOR
14959                }
14960                Self::getMaxMagnitudes_0(_) => {
14961                    <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::SELECTOR
14962                }
14963                Self::getMaxMagnitudes_1(_) => {
14964                    <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::SELECTOR
14965                }
14966                Self::getMaxMagnitudesAtBlock(_) => {
14967                    <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::SELECTOR
14968                }
14969                Self::getMemberCount(_) => {
14970                    <getMemberCountCall as alloy_sol_types::SolCall>::SELECTOR
14971                }
14972                Self::getMembers(_) => {
14973                    <getMembersCall as alloy_sol_types::SolCall>::SELECTOR
14974                }
14975                Self::getMinimumSlashableStake(_) => {
14976                    <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::SELECTOR
14977                }
14978                Self::getOperatorSetCount(_) => {
14979                    <getOperatorSetCountCall as alloy_sol_types::SolCall>::SELECTOR
14980                }
14981                Self::getRegisteredSets(_) => {
14982                    <getRegisteredSetsCall as alloy_sol_types::SolCall>::SELECTOR
14983                }
14984                Self::getStrategiesInOperatorSet(_) => {
14985                    <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
14986                }
14987                Self::getStrategyAllocations(_) => {
14988                    <getStrategyAllocationsCall as alloy_sol_types::SolCall>::SELECTOR
14989                }
14990                Self::initialize(_) => {
14991                    <initializeCall as alloy_sol_types::SolCall>::SELECTOR
14992                }
14993                Self::isMemberOfOperatorSet(_) => {
14994                    <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
14995                }
14996                Self::isOperatorSet(_) => {
14997                    <isOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
14998                }
14999                Self::isOperatorSlashable(_) => {
15000                    <isOperatorSlashableCall as alloy_sol_types::SolCall>::SELECTOR
15001                }
15002                Self::modifyAllocations(_) => {
15003                    <modifyAllocationsCall as alloy_sol_types::SolCall>::SELECTOR
15004                }
15005                Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
15006                Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
15007                Self::pauseAll(_) => <pauseAllCall as alloy_sol_types::SolCall>::SELECTOR,
15008                Self::paused_0(_) => <paused_0Call as alloy_sol_types::SolCall>::SELECTOR,
15009                Self::paused_1(_) => <paused_1Call as alloy_sol_types::SolCall>::SELECTOR,
15010                Self::pauserRegistry(_) => {
15011                    <pauserRegistryCall as alloy_sol_types::SolCall>::SELECTOR
15012                }
15013                Self::permissionController(_) => {
15014                    <permissionControllerCall as alloy_sol_types::SolCall>::SELECTOR
15015                }
15016                Self::registerForOperatorSets(_) => {
15017                    <registerForOperatorSetsCall as alloy_sol_types::SolCall>::SELECTOR
15018                }
15019                Self::removeStrategiesFromOperatorSet(_) => {
15020                    <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
15021                }
15022                Self::renounceOwnership(_) => {
15023                    <renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
15024                }
15025                Self::setAVSRegistrar(_) => {
15026                    <setAVSRegistrarCall as alloy_sol_types::SolCall>::SELECTOR
15027                }
15028                Self::setAllocationDelay(_) => {
15029                    <setAllocationDelayCall as alloy_sol_types::SolCall>::SELECTOR
15030                }
15031                Self::slashOperator(_) => {
15032                    <slashOperatorCall as alloy_sol_types::SolCall>::SELECTOR
15033                }
15034                Self::transferOwnership(_) => {
15035                    <transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
15036                }
15037                Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
15038                Self::updateAVSMetadataURI(_) => {
15039                    <updateAVSMetadataURICall as alloy_sol_types::SolCall>::SELECTOR
15040                }
15041                Self::version(_) => <versionCall as alloy_sol_types::SolCall>::SELECTOR,
15042            }
15043        }
15044        #[inline]
15045        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
15046            Self::SELECTORS.get(i).copied()
15047        }
15048        #[inline]
15049        fn valid_selector(selector: [u8; 4]) -> bool {
15050            Self::SELECTORS.binary_search(&selector).is_ok()
15051        }
15052        #[inline]
15053        #[allow(non_snake_case)]
15054        fn abi_decode_raw(
15055            selector: [u8; 4],
15056            data: &[u8],
15057            validate: bool,
15058        ) -> alloy_sol_types::Result<Self> {
15059            static DECODE_SHIMS: &[fn(
15060                &[u8],
15061                bool,
15062            ) -> alloy_sol_types::Result<AllocationManagerCalls>] = &[
15063                {
15064                    fn getAllocation(
15065                        data: &[u8],
15066                        validate: bool,
15067                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15068                        <getAllocationCall as alloy_sol_types::SolCall>::abi_decode_raw(
15069                                data,
15070                                validate,
15071                            )
15072                            .map(AllocationManagerCalls::getAllocation)
15073                    }
15074                    getAllocation
15075                },
15076                {
15077                    fn isOperatorSlashable(
15078                        data: &[u8],
15079                        validate: bool,
15080                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15081                        <isOperatorSlashableCall as alloy_sol_types::SolCall>::abi_decode_raw(
15082                                data,
15083                                validate,
15084                            )
15085                            .map(AllocationManagerCalls::isOperatorSlashable)
15086                    }
15087                    isOperatorSlashable
15088                },
15089                {
15090                    fn pause(
15091                        data: &[u8],
15092                        validate: bool,
15093                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15094                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw(
15095                                data,
15096                                validate,
15097                            )
15098                            .map(AllocationManagerCalls::pause)
15099                    }
15100                    pause
15101                },
15102                {
15103                    fn getAllocatedSets(
15104                        data: &[u8],
15105                        validate: bool,
15106                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15107                        <getAllocatedSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
15108                                data,
15109                                validate,
15110                            )
15111                            .map(AllocationManagerCalls::getAllocatedSets)
15112                    }
15113                    getAllocatedSets
15114                },
15115                {
15116                    fn isOperatorSet(
15117                        data: &[u8],
15118                        validate: bool,
15119                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15120                        <isOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
15121                                data,
15122                                validate,
15123                            )
15124                            .map(AllocationManagerCalls::isOperatorSet)
15125                    }
15126                    isOperatorSet
15127                },
15128                {
15129                    fn createOperatorSets(
15130                        data: &[u8],
15131                        validate: bool,
15132                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15133                        <createOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
15134                                data,
15135                                validate,
15136                            )
15137                            .map(AllocationManagerCalls::createOperatorSets)
15138                    }
15139                    createOperatorSets
15140                },
15141                {
15142                    fn DEALLOCATION_DELAY(
15143                        data: &[u8],
15144                        validate: bool,
15145                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15146                        <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::abi_decode_raw(
15147                                data,
15148                                validate,
15149                            )
15150                            .map(AllocationManagerCalls::DEALLOCATION_DELAY)
15151                    }
15152                    DEALLOCATION_DELAY
15153                },
15154                {
15155                    fn getAllocatedStake(
15156                        data: &[u8],
15157                        validate: bool,
15158                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15159                        <getAllocatedStakeCall as alloy_sol_types::SolCall>::abi_decode_raw(
15160                                data,
15161                                validate,
15162                            )
15163                            .map(AllocationManagerCalls::getAllocatedStake)
15164                    }
15165                    getAllocatedStake
15166                },
15167                {
15168                    fn getMinimumSlashableStake(
15169                        data: &[u8],
15170                        validate: bool,
15171                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15172                        <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::abi_decode_raw(
15173                                data,
15174                                validate,
15175                            )
15176                            .map(AllocationManagerCalls::getMinimumSlashableStake)
15177                    }
15178                    getMinimumSlashableStake
15179                },
15180                {
15181                    fn getAVSRegistrar(
15182                        data: &[u8],
15183                        validate: bool,
15184                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15185                        <getAVSRegistrarCall as alloy_sol_types::SolCall>::abi_decode_raw(
15186                                data,
15187                                validate,
15188                            )
15189                            .map(AllocationManagerCalls::getAVSRegistrar)
15190                    }
15191                    getAVSRegistrar
15192                },
15193                {
15194                    fn slashOperator(
15195                        data: &[u8],
15196                        validate: bool,
15197                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15198                        <slashOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
15199                                data,
15200                                validate,
15201                            )
15202                            .map(AllocationManagerCalls::slashOperator)
15203                    }
15204                    slashOperator
15205                },
15206                {
15207                    fn getStrategyAllocations(
15208                        data: &[u8],
15209                        validate: bool,
15210                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15211                        <getStrategyAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw(
15212                                data,
15213                                validate,
15214                            )
15215                            .map(AllocationManagerCalls::getStrategyAllocations)
15216                    }
15217                    getStrategyAllocations
15218                },
15219                {
15220                    fn getStrategiesInOperatorSet(
15221                        data: &[u8],
15222                        validate: bool,
15223                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15224                        <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
15225                                data,
15226                                validate,
15227                            )
15228                            .map(AllocationManagerCalls::getStrategiesInOperatorSet)
15229                    }
15230                    getStrategiesInOperatorSet
15231                },
15232                {
15233                    fn permissionController(
15234                        data: &[u8],
15235                        validate: bool,
15236                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15237                        <permissionControllerCall as alloy_sol_types::SolCall>::abi_decode_raw(
15238                                data,
15239                                validate,
15240                            )
15241                            .map(AllocationManagerCalls::permissionController)
15242                    }
15243                    permissionController
15244                },
15245                {
15246                    fn getMaxMagnitudes_0(
15247                        data: &[u8],
15248                        validate: bool,
15249                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15250                        <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::abi_decode_raw(
15251                                data,
15252                                validate,
15253                            )
15254                            .map(AllocationManagerCalls::getMaxMagnitudes_0)
15255                    }
15256                    getMaxMagnitudes_0
15257                },
15258                {
15259                    fn clearDeallocationQueue(
15260                        data: &[u8],
15261                        validate: bool,
15262                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15263                        <clearDeallocationQueueCall as alloy_sol_types::SolCall>::abi_decode_raw(
15264                                data,
15265                                validate,
15266                            )
15267                            .map(AllocationManagerCalls::clearDeallocationQueue)
15268                    }
15269                    clearDeallocationQueue
15270                },
15271                {
15272                    fn addStrategiesToOperatorSet(
15273                        data: &[u8],
15274                        validate: bool,
15275                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15276                        <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
15277                                data,
15278                                validate,
15279                            )
15280                            .map(AllocationManagerCalls::addStrategiesToOperatorSet)
15281                    }
15282                    addStrategiesToOperatorSet
15283                },
15284                {
15285                    fn getMaxMagnitudes_1(
15286                        data: &[u8],
15287                        validate: bool,
15288                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15289                        <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::abi_decode_raw(
15290                                data,
15291                                validate,
15292                            )
15293                            .map(AllocationManagerCalls::getMaxMagnitudes_1)
15294                    }
15295                    getMaxMagnitudes_1
15296                },
15297                {
15298                    fn version(
15299                        data: &[u8],
15300                        validate: bool,
15301                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15302                        <versionCall as alloy_sol_types::SolCall>::abi_decode_raw(
15303                                data,
15304                                validate,
15305                            )
15306                            .map(AllocationManagerCalls::version)
15307                    }
15308                    version
15309                },
15310                {
15311                    fn setAllocationDelay(
15312                        data: &[u8],
15313                        validate: bool,
15314                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15315                        <setAllocationDelayCall as alloy_sol_types::SolCall>::abi_decode_raw(
15316                                data,
15317                                validate,
15318                            )
15319                            .map(AllocationManagerCalls::setAllocationDelay)
15320                    }
15321                    setAllocationDelay
15322                },
15323                {
15324                    fn pauseAll(
15325                        data: &[u8],
15326                        validate: bool,
15327                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15328                        <pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw(
15329                                data,
15330                                validate,
15331                            )
15332                            .map(AllocationManagerCalls::pauseAll)
15333                    }
15334                    pauseAll
15335                },
15336                {
15337                    fn paused_0(
15338                        data: &[u8],
15339                        validate: bool,
15340                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15341                        <paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw(
15342                                data,
15343                                validate,
15344                            )
15345                            .map(AllocationManagerCalls::paused_0)
15346                    }
15347                    paused_0
15348                },
15349                {
15350                    fn paused_1(
15351                        data: &[u8],
15352                        validate: bool,
15353                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15354                        <paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw(
15355                                data,
15356                                validate,
15357                            )
15358                            .map(AllocationManagerCalls::paused_1)
15359                    }
15360                    paused_1
15361                },
15362                {
15363                    fn isMemberOfOperatorSet(
15364                        data: &[u8],
15365                        validate: bool,
15366                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15367                        <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
15368                                data,
15369                                validate,
15370                            )
15371                            .map(AllocationManagerCalls::isMemberOfOperatorSet)
15372                    }
15373                    isMemberOfOperatorSet
15374                },
15375                {
15376                    fn getAllocatableMagnitude(
15377                        data: &[u8],
15378                        validate: bool,
15379                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15380                        <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw(
15381                                data,
15382                                validate,
15383                            )
15384                            .map(AllocationManagerCalls::getAllocatableMagnitude)
15385                    }
15386                    getAllocatableMagnitude
15387                },
15388                {
15389                    fn deregisterFromOperatorSets(
15390                        data: &[u8],
15391                        validate: bool,
15392                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15393                        <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
15394                                data,
15395                                validate,
15396                            )
15397                            .map(AllocationManagerCalls::deregisterFromOperatorSets)
15398                    }
15399                    deregisterFromOperatorSets
15400                },
15401                {
15402                    fn getMembers(
15403                        data: &[u8],
15404                        validate: bool,
15405                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15406                        <getMembersCall as alloy_sol_types::SolCall>::abi_decode_raw(
15407                                data,
15408                                validate,
15409                            )
15410                            .map(AllocationManagerCalls::getMembers)
15411                    }
15412                    getMembers
15413                },
15414                {
15415                    fn renounceOwnership(
15416                        data: &[u8],
15417                        validate: bool,
15418                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15419                        <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
15420                                data,
15421                                validate,
15422                            )
15423                            .map(AllocationManagerCalls::renounceOwnership)
15424                    }
15425                    renounceOwnership
15426                },
15427                {
15428                    fn getRegisteredSets(
15429                        data: &[u8],
15430                        validate: bool,
15431                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15432                        <getRegisteredSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
15433                                data,
15434                                validate,
15435                            )
15436                            .map(AllocationManagerCalls::getRegisteredSets)
15437                    }
15438                    getRegisteredSets
15439                },
15440                {
15441                    fn ALLOCATION_CONFIGURATION_DELAY(
15442                        data: &[u8],
15443                        validate: bool,
15444                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15445                        <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::abi_decode_raw(
15446                                data,
15447                                validate,
15448                            )
15449                            .map(AllocationManagerCalls::ALLOCATION_CONFIGURATION_DELAY)
15450                    }
15451                    ALLOCATION_CONFIGURATION_DELAY
15452                },
15453                {
15454                    fn pauserRegistry(
15455                        data: &[u8],
15456                        validate: bool,
15457                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15458                        <pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
15459                                data,
15460                                validate,
15461                            )
15462                            .map(AllocationManagerCalls::pauserRegistry)
15463                    }
15464                    pauserRegistry
15465                },
15466                {
15467                    fn getAllocations(
15468                        data: &[u8],
15469                        validate: bool,
15470                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15471                        <getAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw(
15472                                data,
15473                                validate,
15474                            )
15475                            .map(AllocationManagerCalls::getAllocations)
15476                    }
15477                    getAllocations
15478                },
15479                {
15480                    fn owner(
15481                        data: &[u8],
15482                        validate: bool,
15483                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15484                        <ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(
15485                                data,
15486                                validate,
15487                            )
15488                            .map(AllocationManagerCalls::owner)
15489                    }
15490                    owner
15491                },
15492                {
15493                    fn getMaxMagnitudesAtBlock(
15494                        data: &[u8],
15495                        validate: bool,
15496                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15497                        <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::abi_decode_raw(
15498                                data,
15499                                validate,
15500                            )
15501                            .map(AllocationManagerCalls::getMaxMagnitudesAtBlock)
15502                    }
15503                    getMaxMagnitudesAtBlock
15504                },
15505                {
15506                    fn modifyAllocations(
15507                        data: &[u8],
15508                        validate: bool,
15509                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15510                        <modifyAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw(
15511                                data,
15512                                validate,
15513                            )
15514                            .map(AllocationManagerCalls::modifyAllocations)
15515                    }
15516                    modifyAllocations
15517                },
15518                {
15519                    fn getMaxMagnitude(
15520                        data: &[u8],
15521                        validate: bool,
15522                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15523                        <getMaxMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw(
15524                                data,
15525                                validate,
15526                            )
15527                            .map(AllocationManagerCalls::getMaxMagnitude)
15528                    }
15529                    getMaxMagnitude
15530                },
15531                {
15532                    fn updateAVSMetadataURI(
15533                        data: &[u8],
15534                        validate: bool,
15535                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15536                        <updateAVSMetadataURICall as alloy_sol_types::SolCall>::abi_decode_raw(
15537                                data,
15538                                validate,
15539                            )
15540                            .map(AllocationManagerCalls::updateAVSMetadataURI)
15541                    }
15542                    updateAVSMetadataURI
15543                },
15544                {
15545                    fn registerForOperatorSets(
15546                        data: &[u8],
15547                        validate: bool,
15548                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15549                        <registerForOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
15550                                data,
15551                                validate,
15552                            )
15553                            .map(AllocationManagerCalls::registerForOperatorSets)
15554                    }
15555                    registerForOperatorSets
15556                },
15557                {
15558                    fn getMemberCount(
15559                        data: &[u8],
15560                        validate: bool,
15561                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15562                        <getMemberCountCall as alloy_sol_types::SolCall>::abi_decode_raw(
15563                                data,
15564                                validate,
15565                            )
15566                            .map(AllocationManagerCalls::getMemberCount)
15567                    }
15568                    getMemberCount
15569                },
15570                {
15571                    fn removeStrategiesFromOperatorSet(
15572                        data: &[u8],
15573                        validate: bool,
15574                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15575                        <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
15576                                data,
15577                                validate,
15578                            )
15579                            .map(AllocationManagerCalls::removeStrategiesFromOperatorSet)
15580                    }
15581                    removeStrategiesFromOperatorSet
15582                },
15583                {
15584                    fn getAllocationDelay(
15585                        data: &[u8],
15586                        validate: bool,
15587                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15588                        <getAllocationDelayCall as alloy_sol_types::SolCall>::abi_decode_raw(
15589                                data,
15590                                validate,
15591                            )
15592                            .map(AllocationManagerCalls::getAllocationDelay)
15593                    }
15594                    getAllocationDelay
15595                },
15596                {
15597                    fn getOperatorSetCount(
15598                        data: &[u8],
15599                        validate: bool,
15600                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15601                        <getOperatorSetCountCall as alloy_sol_types::SolCall>::abi_decode_raw(
15602                                data,
15603                                validate,
15604                            )
15605                            .map(AllocationManagerCalls::getOperatorSetCount)
15606                    }
15607                    getOperatorSetCount
15608                },
15609                {
15610                    fn getAllocatedStrategies(
15611                        data: &[u8],
15612                        validate: bool,
15613                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15614                        <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::abi_decode_raw(
15615                                data,
15616                                validate,
15617                            )
15618                            .map(AllocationManagerCalls::getAllocatedStrategies)
15619                    }
15620                    getAllocatedStrategies
15621                },
15622                {
15623                    fn initialize(
15624                        data: &[u8],
15625                        validate: bool,
15626                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15627                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw(
15628                                data,
15629                                validate,
15630                            )
15631                            .map(AllocationManagerCalls::initialize)
15632                    }
15633                    initialize
15634                },
15635                {
15636                    fn setAVSRegistrar(
15637                        data: &[u8],
15638                        validate: bool,
15639                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15640                        <setAVSRegistrarCall as alloy_sol_types::SolCall>::abi_decode_raw(
15641                                data,
15642                                validate,
15643                            )
15644                            .map(AllocationManagerCalls::setAVSRegistrar)
15645                    }
15646                    setAVSRegistrar
15647                },
15648                {
15649                    fn delegation(
15650                        data: &[u8],
15651                        validate: bool,
15652                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15653                        <delegationCall as alloy_sol_types::SolCall>::abi_decode_raw(
15654                                data,
15655                                validate,
15656                            )
15657                            .map(AllocationManagerCalls::delegation)
15658                    }
15659                    delegation
15660                },
15661                {
15662                    fn transferOwnership(
15663                        data: &[u8],
15664                        validate: bool,
15665                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15666                        <transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
15667                                data,
15668                                validate,
15669                            )
15670                            .map(AllocationManagerCalls::transferOwnership)
15671                    }
15672                    transferOwnership
15673                },
15674                {
15675                    fn getEncumberedMagnitude(
15676                        data: &[u8],
15677                        validate: bool,
15678                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15679                        <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw(
15680                                data,
15681                                validate,
15682                            )
15683                            .map(AllocationManagerCalls::getEncumberedMagnitude)
15684                    }
15685                    getEncumberedMagnitude
15686                },
15687                {
15688                    fn unpause(
15689                        data: &[u8],
15690                        validate: bool,
15691                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
15692                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw(
15693                                data,
15694                                validate,
15695                            )
15696                            .map(AllocationManagerCalls::unpause)
15697                    }
15698                    unpause
15699                },
15700            ];
15701            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
15702                return Err(
15703                    alloy_sol_types::Error::unknown_selector(
15704                        <Self as alloy_sol_types::SolInterface>::NAME,
15705                        selector,
15706                    ),
15707                );
15708            };
15709            DECODE_SHIMS[idx](data, validate)
15710        }
15711        #[inline]
15712        fn abi_encoded_size(&self) -> usize {
15713            match self {
15714                Self::ALLOCATION_CONFIGURATION_DELAY(inner) => {
15715                    <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::abi_encoded_size(
15716                        inner,
15717                    )
15718                }
15719                Self::DEALLOCATION_DELAY(inner) => {
15720                    <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::abi_encoded_size(
15721                        inner,
15722                    )
15723                }
15724                Self::addStrategiesToOperatorSet(inner) => {
15725                    <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
15726                        inner,
15727                    )
15728                }
15729                Self::clearDeallocationQueue(inner) => {
15730                    <clearDeallocationQueueCall as alloy_sol_types::SolCall>::abi_encoded_size(
15731                        inner,
15732                    )
15733                }
15734                Self::createOperatorSets(inner) => {
15735                    <createOperatorSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
15736                        inner,
15737                    )
15738                }
15739                Self::delegation(inner) => {
15740                    <delegationCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15741                }
15742                Self::deregisterFromOperatorSets(inner) => {
15743                    <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
15744                        inner,
15745                    )
15746                }
15747                Self::getAVSRegistrar(inner) => {
15748                    <getAVSRegistrarCall as alloy_sol_types::SolCall>::abi_encoded_size(
15749                        inner,
15750                    )
15751                }
15752                Self::getAllocatableMagnitude(inner) => {
15753                    <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::abi_encoded_size(
15754                        inner,
15755                    )
15756                }
15757                Self::getAllocatedSets(inner) => {
15758                    <getAllocatedSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
15759                        inner,
15760                    )
15761                }
15762                Self::getAllocatedStake(inner) => {
15763                    <getAllocatedStakeCall as alloy_sol_types::SolCall>::abi_encoded_size(
15764                        inner,
15765                    )
15766                }
15767                Self::getAllocatedStrategies(inner) => {
15768                    <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::abi_encoded_size(
15769                        inner,
15770                    )
15771                }
15772                Self::getAllocation(inner) => {
15773                    <getAllocationCall as alloy_sol_types::SolCall>::abi_encoded_size(
15774                        inner,
15775                    )
15776                }
15777                Self::getAllocationDelay(inner) => {
15778                    <getAllocationDelayCall as alloy_sol_types::SolCall>::abi_encoded_size(
15779                        inner,
15780                    )
15781                }
15782                Self::getAllocations(inner) => {
15783                    <getAllocationsCall as alloy_sol_types::SolCall>::abi_encoded_size(
15784                        inner,
15785                    )
15786                }
15787                Self::getEncumberedMagnitude(inner) => {
15788                    <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::abi_encoded_size(
15789                        inner,
15790                    )
15791                }
15792                Self::getMaxMagnitude(inner) => {
15793                    <getMaxMagnitudeCall as alloy_sol_types::SolCall>::abi_encoded_size(
15794                        inner,
15795                    )
15796                }
15797                Self::getMaxMagnitudes_0(inner) => {
15798                    <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::abi_encoded_size(
15799                        inner,
15800                    )
15801                }
15802                Self::getMaxMagnitudes_1(inner) => {
15803                    <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::abi_encoded_size(
15804                        inner,
15805                    )
15806                }
15807                Self::getMaxMagnitudesAtBlock(inner) => {
15808                    <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::abi_encoded_size(
15809                        inner,
15810                    )
15811                }
15812                Self::getMemberCount(inner) => {
15813                    <getMemberCountCall as alloy_sol_types::SolCall>::abi_encoded_size(
15814                        inner,
15815                    )
15816                }
15817                Self::getMembers(inner) => {
15818                    <getMembersCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15819                }
15820                Self::getMinimumSlashableStake(inner) => {
15821                    <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::abi_encoded_size(
15822                        inner,
15823                    )
15824                }
15825                Self::getOperatorSetCount(inner) => {
15826                    <getOperatorSetCountCall as alloy_sol_types::SolCall>::abi_encoded_size(
15827                        inner,
15828                    )
15829                }
15830                Self::getRegisteredSets(inner) => {
15831                    <getRegisteredSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
15832                        inner,
15833                    )
15834                }
15835                Self::getStrategiesInOperatorSet(inner) => {
15836                    <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
15837                        inner,
15838                    )
15839                }
15840                Self::getStrategyAllocations(inner) => {
15841                    <getStrategyAllocationsCall as alloy_sol_types::SolCall>::abi_encoded_size(
15842                        inner,
15843                    )
15844                }
15845                Self::initialize(inner) => {
15846                    <initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15847                }
15848                Self::isMemberOfOperatorSet(inner) => {
15849                    <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
15850                        inner,
15851                    )
15852                }
15853                Self::isOperatorSet(inner) => {
15854                    <isOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
15855                        inner,
15856                    )
15857                }
15858                Self::isOperatorSlashable(inner) => {
15859                    <isOperatorSlashableCall as alloy_sol_types::SolCall>::abi_encoded_size(
15860                        inner,
15861                    )
15862                }
15863                Self::modifyAllocations(inner) => {
15864                    <modifyAllocationsCall as alloy_sol_types::SolCall>::abi_encoded_size(
15865                        inner,
15866                    )
15867                }
15868                Self::owner(inner) => {
15869                    <ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15870                }
15871                Self::pause(inner) => {
15872                    <pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15873                }
15874                Self::pauseAll(inner) => {
15875                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15876                }
15877                Self::paused_0(inner) => {
15878                    <paused_0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15879                }
15880                Self::paused_1(inner) => {
15881                    <paused_1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15882                }
15883                Self::pauserRegistry(inner) => {
15884                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
15885                        inner,
15886                    )
15887                }
15888                Self::permissionController(inner) => {
15889                    <permissionControllerCall as alloy_sol_types::SolCall>::abi_encoded_size(
15890                        inner,
15891                    )
15892                }
15893                Self::registerForOperatorSets(inner) => {
15894                    <registerForOperatorSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
15895                        inner,
15896                    )
15897                }
15898                Self::removeStrategiesFromOperatorSet(inner) => {
15899                    <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
15900                        inner,
15901                    )
15902                }
15903                Self::renounceOwnership(inner) => {
15904                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
15905                        inner,
15906                    )
15907                }
15908                Self::setAVSRegistrar(inner) => {
15909                    <setAVSRegistrarCall as alloy_sol_types::SolCall>::abi_encoded_size(
15910                        inner,
15911                    )
15912                }
15913                Self::setAllocationDelay(inner) => {
15914                    <setAllocationDelayCall as alloy_sol_types::SolCall>::abi_encoded_size(
15915                        inner,
15916                    )
15917                }
15918                Self::slashOperator(inner) => {
15919                    <slashOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
15920                        inner,
15921                    )
15922                }
15923                Self::transferOwnership(inner) => {
15924                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
15925                        inner,
15926                    )
15927                }
15928                Self::unpause(inner) => {
15929                    <unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15930                }
15931                Self::updateAVSMetadataURI(inner) => {
15932                    <updateAVSMetadataURICall as alloy_sol_types::SolCall>::abi_encoded_size(
15933                        inner,
15934                    )
15935                }
15936                Self::version(inner) => {
15937                    <versionCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
15938                }
15939            }
15940        }
15941        #[inline]
15942        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
15943            match self {
15944                Self::ALLOCATION_CONFIGURATION_DELAY(inner) => {
15945                    <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::abi_encode_raw(
15946                        inner,
15947                        out,
15948                    )
15949                }
15950                Self::DEALLOCATION_DELAY(inner) => {
15951                    <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::abi_encode_raw(
15952                        inner,
15953                        out,
15954                    )
15955                }
15956                Self::addStrategiesToOperatorSet(inner) => {
15957                    <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
15958                        inner,
15959                        out,
15960                    )
15961                }
15962                Self::clearDeallocationQueue(inner) => {
15963                    <clearDeallocationQueueCall as alloy_sol_types::SolCall>::abi_encode_raw(
15964                        inner,
15965                        out,
15966                    )
15967                }
15968                Self::createOperatorSets(inner) => {
15969                    <createOperatorSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
15970                        inner,
15971                        out,
15972                    )
15973                }
15974                Self::delegation(inner) => {
15975                    <delegationCall as alloy_sol_types::SolCall>::abi_encode_raw(
15976                        inner,
15977                        out,
15978                    )
15979                }
15980                Self::deregisterFromOperatorSets(inner) => {
15981                    <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
15982                        inner,
15983                        out,
15984                    )
15985                }
15986                Self::getAVSRegistrar(inner) => {
15987                    <getAVSRegistrarCall as alloy_sol_types::SolCall>::abi_encode_raw(
15988                        inner,
15989                        out,
15990                    )
15991                }
15992                Self::getAllocatableMagnitude(inner) => {
15993                    <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::abi_encode_raw(
15994                        inner,
15995                        out,
15996                    )
15997                }
15998                Self::getAllocatedSets(inner) => {
15999                    <getAllocatedSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
16000                        inner,
16001                        out,
16002                    )
16003                }
16004                Self::getAllocatedStake(inner) => {
16005                    <getAllocatedStakeCall as alloy_sol_types::SolCall>::abi_encode_raw(
16006                        inner,
16007                        out,
16008                    )
16009                }
16010                Self::getAllocatedStrategies(inner) => {
16011                    <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::abi_encode_raw(
16012                        inner,
16013                        out,
16014                    )
16015                }
16016                Self::getAllocation(inner) => {
16017                    <getAllocationCall as alloy_sol_types::SolCall>::abi_encode_raw(
16018                        inner,
16019                        out,
16020                    )
16021                }
16022                Self::getAllocationDelay(inner) => {
16023                    <getAllocationDelayCall as alloy_sol_types::SolCall>::abi_encode_raw(
16024                        inner,
16025                        out,
16026                    )
16027                }
16028                Self::getAllocations(inner) => {
16029                    <getAllocationsCall as alloy_sol_types::SolCall>::abi_encode_raw(
16030                        inner,
16031                        out,
16032                    )
16033                }
16034                Self::getEncumberedMagnitude(inner) => {
16035                    <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::abi_encode_raw(
16036                        inner,
16037                        out,
16038                    )
16039                }
16040                Self::getMaxMagnitude(inner) => {
16041                    <getMaxMagnitudeCall as alloy_sol_types::SolCall>::abi_encode_raw(
16042                        inner,
16043                        out,
16044                    )
16045                }
16046                Self::getMaxMagnitudes_0(inner) => {
16047                    <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
16048                        inner,
16049                        out,
16050                    )
16051                }
16052                Self::getMaxMagnitudes_1(inner) => {
16053                    <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
16054                        inner,
16055                        out,
16056                    )
16057                }
16058                Self::getMaxMagnitudesAtBlock(inner) => {
16059                    <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::abi_encode_raw(
16060                        inner,
16061                        out,
16062                    )
16063                }
16064                Self::getMemberCount(inner) => {
16065                    <getMemberCountCall as alloy_sol_types::SolCall>::abi_encode_raw(
16066                        inner,
16067                        out,
16068                    )
16069                }
16070                Self::getMembers(inner) => {
16071                    <getMembersCall as alloy_sol_types::SolCall>::abi_encode_raw(
16072                        inner,
16073                        out,
16074                    )
16075                }
16076                Self::getMinimumSlashableStake(inner) => {
16077                    <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::abi_encode_raw(
16078                        inner,
16079                        out,
16080                    )
16081                }
16082                Self::getOperatorSetCount(inner) => {
16083                    <getOperatorSetCountCall as alloy_sol_types::SolCall>::abi_encode_raw(
16084                        inner,
16085                        out,
16086                    )
16087                }
16088                Self::getRegisteredSets(inner) => {
16089                    <getRegisteredSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
16090                        inner,
16091                        out,
16092                    )
16093                }
16094                Self::getStrategiesInOperatorSet(inner) => {
16095                    <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
16096                        inner,
16097                        out,
16098                    )
16099                }
16100                Self::getStrategyAllocations(inner) => {
16101                    <getStrategyAllocationsCall as alloy_sol_types::SolCall>::abi_encode_raw(
16102                        inner,
16103                        out,
16104                    )
16105                }
16106                Self::initialize(inner) => {
16107                    <initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
16108                        inner,
16109                        out,
16110                    )
16111                }
16112                Self::isMemberOfOperatorSet(inner) => {
16113                    <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
16114                        inner,
16115                        out,
16116                    )
16117                }
16118                Self::isOperatorSet(inner) => {
16119                    <isOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
16120                        inner,
16121                        out,
16122                    )
16123                }
16124                Self::isOperatorSlashable(inner) => {
16125                    <isOperatorSlashableCall as alloy_sol_types::SolCall>::abi_encode_raw(
16126                        inner,
16127                        out,
16128                    )
16129                }
16130                Self::modifyAllocations(inner) => {
16131                    <modifyAllocationsCall as alloy_sol_types::SolCall>::abi_encode_raw(
16132                        inner,
16133                        out,
16134                    )
16135                }
16136                Self::owner(inner) => {
16137                    <ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
16138                }
16139                Self::pause(inner) => {
16140                    <pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
16141                }
16142                Self::pauseAll(inner) => {
16143                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
16144                        inner,
16145                        out,
16146                    )
16147                }
16148                Self::paused_0(inner) => {
16149                    <paused_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
16150                        inner,
16151                        out,
16152                    )
16153                }
16154                Self::paused_1(inner) => {
16155                    <paused_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
16156                        inner,
16157                        out,
16158                    )
16159                }
16160                Self::pauserRegistry(inner) => {
16161                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
16162                        inner,
16163                        out,
16164                    )
16165                }
16166                Self::permissionController(inner) => {
16167                    <permissionControllerCall as alloy_sol_types::SolCall>::abi_encode_raw(
16168                        inner,
16169                        out,
16170                    )
16171                }
16172                Self::registerForOperatorSets(inner) => {
16173                    <registerForOperatorSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
16174                        inner,
16175                        out,
16176                    )
16177                }
16178                Self::removeStrategiesFromOperatorSet(inner) => {
16179                    <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
16180                        inner,
16181                        out,
16182                    )
16183                }
16184                Self::renounceOwnership(inner) => {
16185                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
16186                        inner,
16187                        out,
16188                    )
16189                }
16190                Self::setAVSRegistrar(inner) => {
16191                    <setAVSRegistrarCall as alloy_sol_types::SolCall>::abi_encode_raw(
16192                        inner,
16193                        out,
16194                    )
16195                }
16196                Self::setAllocationDelay(inner) => {
16197                    <setAllocationDelayCall as alloy_sol_types::SolCall>::abi_encode_raw(
16198                        inner,
16199                        out,
16200                    )
16201                }
16202                Self::slashOperator(inner) => {
16203                    <slashOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
16204                        inner,
16205                        out,
16206                    )
16207                }
16208                Self::transferOwnership(inner) => {
16209                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
16210                        inner,
16211                        out,
16212                    )
16213                }
16214                Self::unpause(inner) => {
16215                    <unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
16216                }
16217                Self::updateAVSMetadataURI(inner) => {
16218                    <updateAVSMetadataURICall as alloy_sol_types::SolCall>::abi_encode_raw(
16219                        inner,
16220                        out,
16221                    )
16222                }
16223                Self::version(inner) => {
16224                    <versionCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
16225                }
16226            }
16227        }
16228    }
16229    ///Container for all the [`AllocationManager`](self) custom errors.
16230    #[derive(Debug, PartialEq, Eq, Hash)]
16231    pub enum AllocationManagerErrors {
16232        #[allow(missing_docs)]
16233        AlreadyMemberOfSet(AlreadyMemberOfSet),
16234        #[allow(missing_docs)]
16235        CurrentlyPaused(CurrentlyPaused),
16236        #[allow(missing_docs)]
16237        Empty(Empty),
16238        #[allow(missing_docs)]
16239        InputAddressZero(InputAddressZero),
16240        #[allow(missing_docs)]
16241        InputArrayLengthMismatch(InputArrayLengthMismatch),
16242        #[allow(missing_docs)]
16243        InsufficientMagnitude(InsufficientMagnitude),
16244        #[allow(missing_docs)]
16245        InvalidAVSRegistrar(InvalidAVSRegistrar),
16246        #[allow(missing_docs)]
16247        InvalidCaller(InvalidCaller),
16248        #[allow(missing_docs)]
16249        InvalidNewPausedStatus(InvalidNewPausedStatus),
16250        #[allow(missing_docs)]
16251        InvalidOperator(InvalidOperator),
16252        #[allow(missing_docs)]
16253        InvalidOperatorSet(InvalidOperatorSet),
16254        #[allow(missing_docs)]
16255        InvalidPermissions(InvalidPermissions),
16256        #[allow(missing_docs)]
16257        InvalidShortString(InvalidShortString),
16258        #[allow(missing_docs)]
16259        InvalidSnapshotOrdering(InvalidSnapshotOrdering),
16260        #[allow(missing_docs)]
16261        InvalidWadToSlash(InvalidWadToSlash),
16262        #[allow(missing_docs)]
16263        ModificationAlreadyPending(ModificationAlreadyPending),
16264        #[allow(missing_docs)]
16265        NonexistentAVSMetadata(NonexistentAVSMetadata),
16266        #[allow(missing_docs)]
16267        NotMemberOfSet(NotMemberOfSet),
16268        #[allow(missing_docs)]
16269        OnlyPauser(OnlyPauser),
16270        #[allow(missing_docs)]
16271        OnlyUnpauser(OnlyUnpauser),
16272        #[allow(missing_docs)]
16273        OperatorNotSlashable(OperatorNotSlashable),
16274        #[allow(missing_docs)]
16275        OutOfBounds(OutOfBounds),
16276        #[allow(missing_docs)]
16277        SameMagnitude(SameMagnitude),
16278        #[allow(missing_docs)]
16279        StrategiesMustBeInAscendingOrder(StrategiesMustBeInAscendingOrder),
16280        #[allow(missing_docs)]
16281        StrategyAlreadyInOperatorSet(StrategyAlreadyInOperatorSet),
16282        #[allow(missing_docs)]
16283        StrategyNotInOperatorSet(StrategyNotInOperatorSet),
16284        #[allow(missing_docs)]
16285        StringTooLong(StringTooLong),
16286        #[allow(missing_docs)]
16287        UninitializedAllocationDelay(UninitializedAllocationDelay),
16288    }
16289    #[automatically_derived]
16290    impl AllocationManagerErrors {
16291        /// All the selectors of this enum.
16292        ///
16293        /// Note that the selectors might not be in the same order as the variants.
16294        /// No guarantees are made about the order of the selectors.
16295        ///
16296        /// Prefer using `SolInterface` methods instead.
16297        pub const SELECTORS: &'static [[u8; 4usize]] = &[
16298            [19u8, 83u8, 96u8, 49u8],
16299            [37u8, 19u8, 29u8, 79u8],
16300            [42u8, 55u8, 28u8, 126u8],
16301            [48u8, 90u8, 39u8, 169u8],
16302            [61u8, 178u8, 161u8, 42u8],
16303            [67u8, 113u8, 74u8, 253u8],
16304            [72u8, 245u8, 195u8, 237u8],
16305            [72u8, 247u8, 219u8, 185u8],
16306            [88u8, 92u8, 251u8, 47u8],
16307            [99u8, 120u8, 104u8, 78u8],
16308            [108u8, 155u8, 224u8, 191u8],
16309            [115u8, 99u8, 33u8, 118u8],
16310            [117u8, 223u8, 81u8, 220u8],
16311            [121u8, 72u8, 33u8, 255u8],
16312            [126u8, 197u8, 193u8, 84u8],
16313            [132u8, 10u8, 72u8, 213u8],
16314            [140u8, 12u8, 47u8, 38u8],
16315            [147u8, 45u8, 148u8, 247u8],
16316            [159u8, 28u8, 128u8, 83u8],
16317            [179u8, 81u8, 43u8, 12u8],
16318            [180u8, 18u8, 15u8, 20u8],
16319            [198u8, 29u8, 202u8, 93u8],
16320            [204u8, 234u8, 158u8, 111u8],
16321            [216u8, 216u8, 220u8, 78u8],
16322            [216u8, 252u8, 190u8, 48u8],
16323            [232u8, 88u8, 158u8, 8u8],
16324            [235u8, 191u8, 244u8, 151u8],
16325            [250u8, 85u8, 252u8, 129u8],
16326        ];
16327    }
16328    #[automatically_derived]
16329    impl alloy_sol_types::SolInterface for AllocationManagerErrors {
16330        const NAME: &'static str = "AllocationManagerErrors";
16331        const MIN_DATA_LENGTH: usize = 0usize;
16332        const COUNT: usize = 28usize;
16333        #[inline]
16334        fn selector(&self) -> [u8; 4] {
16335            match self {
16336                Self::AlreadyMemberOfSet(_) => {
16337                    <AlreadyMemberOfSet as alloy_sol_types::SolError>::SELECTOR
16338                }
16339                Self::CurrentlyPaused(_) => {
16340                    <CurrentlyPaused as alloy_sol_types::SolError>::SELECTOR
16341                }
16342                Self::Empty(_) => <Empty as alloy_sol_types::SolError>::SELECTOR,
16343                Self::InputAddressZero(_) => {
16344                    <InputAddressZero as alloy_sol_types::SolError>::SELECTOR
16345                }
16346                Self::InputArrayLengthMismatch(_) => {
16347                    <InputArrayLengthMismatch as alloy_sol_types::SolError>::SELECTOR
16348                }
16349                Self::InsufficientMagnitude(_) => {
16350                    <InsufficientMagnitude as alloy_sol_types::SolError>::SELECTOR
16351                }
16352                Self::InvalidAVSRegistrar(_) => {
16353                    <InvalidAVSRegistrar as alloy_sol_types::SolError>::SELECTOR
16354                }
16355                Self::InvalidCaller(_) => {
16356                    <InvalidCaller as alloy_sol_types::SolError>::SELECTOR
16357                }
16358                Self::InvalidNewPausedStatus(_) => {
16359                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::SELECTOR
16360                }
16361                Self::InvalidOperator(_) => {
16362                    <InvalidOperator as alloy_sol_types::SolError>::SELECTOR
16363                }
16364                Self::InvalidOperatorSet(_) => {
16365                    <InvalidOperatorSet as alloy_sol_types::SolError>::SELECTOR
16366                }
16367                Self::InvalidPermissions(_) => {
16368                    <InvalidPermissions as alloy_sol_types::SolError>::SELECTOR
16369                }
16370                Self::InvalidShortString(_) => {
16371                    <InvalidShortString as alloy_sol_types::SolError>::SELECTOR
16372                }
16373                Self::InvalidSnapshotOrdering(_) => {
16374                    <InvalidSnapshotOrdering as alloy_sol_types::SolError>::SELECTOR
16375                }
16376                Self::InvalidWadToSlash(_) => {
16377                    <InvalidWadToSlash as alloy_sol_types::SolError>::SELECTOR
16378                }
16379                Self::ModificationAlreadyPending(_) => {
16380                    <ModificationAlreadyPending as alloy_sol_types::SolError>::SELECTOR
16381                }
16382                Self::NonexistentAVSMetadata(_) => {
16383                    <NonexistentAVSMetadata as alloy_sol_types::SolError>::SELECTOR
16384                }
16385                Self::NotMemberOfSet(_) => {
16386                    <NotMemberOfSet as alloy_sol_types::SolError>::SELECTOR
16387                }
16388                Self::OnlyPauser(_) => {
16389                    <OnlyPauser as alloy_sol_types::SolError>::SELECTOR
16390                }
16391                Self::OnlyUnpauser(_) => {
16392                    <OnlyUnpauser as alloy_sol_types::SolError>::SELECTOR
16393                }
16394                Self::OperatorNotSlashable(_) => {
16395                    <OperatorNotSlashable as alloy_sol_types::SolError>::SELECTOR
16396                }
16397                Self::OutOfBounds(_) => {
16398                    <OutOfBounds as alloy_sol_types::SolError>::SELECTOR
16399                }
16400                Self::SameMagnitude(_) => {
16401                    <SameMagnitude as alloy_sol_types::SolError>::SELECTOR
16402                }
16403                Self::StrategiesMustBeInAscendingOrder(_) => {
16404                    <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::SELECTOR
16405                }
16406                Self::StrategyAlreadyInOperatorSet(_) => {
16407                    <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::SELECTOR
16408                }
16409                Self::StrategyNotInOperatorSet(_) => {
16410                    <StrategyNotInOperatorSet as alloy_sol_types::SolError>::SELECTOR
16411                }
16412                Self::StringTooLong(_) => {
16413                    <StringTooLong as alloy_sol_types::SolError>::SELECTOR
16414                }
16415                Self::UninitializedAllocationDelay(_) => {
16416                    <UninitializedAllocationDelay as alloy_sol_types::SolError>::SELECTOR
16417                }
16418            }
16419        }
16420        #[inline]
16421        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
16422            Self::SELECTORS.get(i).copied()
16423        }
16424        #[inline]
16425        fn valid_selector(selector: [u8; 4]) -> bool {
16426            Self::SELECTORS.binary_search(&selector).is_ok()
16427        }
16428        #[inline]
16429        #[allow(non_snake_case)]
16430        fn abi_decode_raw(
16431            selector: [u8; 4],
16432            data: &[u8],
16433            validate: bool,
16434        ) -> alloy_sol_types::Result<Self> {
16435            static DECODE_SHIMS: &[fn(
16436                &[u8],
16437                bool,
16438            ) -> alloy_sol_types::Result<AllocationManagerErrors>] = &[
16439                {
16440                    fn InvalidWadToSlash(
16441                        data: &[u8],
16442                        validate: bool,
16443                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16444                        <InvalidWadToSlash as alloy_sol_types::SolError>::abi_decode_raw(
16445                                data,
16446                                validate,
16447                            )
16448                            .map(AllocationManagerErrors::InvalidWadToSlash)
16449                    }
16450                    InvalidWadToSlash
16451                },
16452                {
16453                    fn NotMemberOfSet(
16454                        data: &[u8],
16455                        validate: bool,
16456                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16457                        <NotMemberOfSet as alloy_sol_types::SolError>::abi_decode_raw(
16458                                data,
16459                                validate,
16460                            )
16461                            .map(AllocationManagerErrors::NotMemberOfSet)
16462                    }
16463                    NotMemberOfSet
16464                },
16465                {
16466                    fn InvalidSnapshotOrdering(
16467                        data: &[u8],
16468                        validate: bool,
16469                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16470                        <InvalidSnapshotOrdering as alloy_sol_types::SolError>::abi_decode_raw(
16471                                data,
16472                                validate,
16473                            )
16474                            .map(AllocationManagerErrors::InvalidSnapshotOrdering)
16475                    }
16476                    InvalidSnapshotOrdering
16477                },
16478                {
16479                    fn StringTooLong(
16480                        data: &[u8],
16481                        validate: bool,
16482                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16483                        <StringTooLong as alloy_sol_types::SolError>::abi_decode_raw(
16484                                data,
16485                                validate,
16486                            )
16487                            .map(AllocationManagerErrors::StringTooLong)
16488                    }
16489                    StringTooLong
16490                },
16491                {
16492                    fn Empty(
16493                        data: &[u8],
16494                        validate: bool,
16495                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16496                        <Empty as alloy_sol_types::SolError>::abi_decode_raw(
16497                                data,
16498                                validate,
16499                            )
16500                            .map(AllocationManagerErrors::Empty)
16501                    }
16502                    Empty
16503                },
16504                {
16505                    fn InputArrayLengthMismatch(
16506                        data: &[u8],
16507                        validate: bool,
16508                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16509                        <InputArrayLengthMismatch as alloy_sol_types::SolError>::abi_decode_raw(
16510                                data,
16511                                validate,
16512                            )
16513                            .map(AllocationManagerErrors::InputArrayLengthMismatch)
16514                    }
16515                    InputArrayLengthMismatch
16516                },
16517                {
16518                    fn InvalidCaller(
16519                        data: &[u8],
16520                        validate: bool,
16521                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16522                        <InvalidCaller as alloy_sol_types::SolError>::abi_decode_raw(
16523                                data,
16524                                validate,
16525                            )
16526                            .map(AllocationManagerErrors::InvalidCaller)
16527                    }
16528                    InvalidCaller
16529                },
16530                {
16531                    fn NonexistentAVSMetadata(
16532                        data: &[u8],
16533                        validate: bool,
16534                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16535                        <NonexistentAVSMetadata as alloy_sol_types::SolError>::abi_decode_raw(
16536                                data,
16537                                validate,
16538                            )
16539                            .map(AllocationManagerErrors::NonexistentAVSMetadata)
16540                    }
16541                    NonexistentAVSMetadata
16542                },
16543                {
16544                    fn StrategyAlreadyInOperatorSet(
16545                        data: &[u8],
16546                        validate: bool,
16547                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16548                        <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::abi_decode_raw(
16549                                data,
16550                                validate,
16551                            )
16552                            .map(AllocationManagerErrors::StrategyAlreadyInOperatorSet)
16553                    }
16554                    StrategyAlreadyInOperatorSet
16555                },
16556                {
16557                    fn StrategyNotInOperatorSet(
16558                        data: &[u8],
16559                        validate: bool,
16560                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16561                        <StrategyNotInOperatorSet as alloy_sol_types::SolError>::abi_decode_raw(
16562                                data,
16563                                validate,
16564                            )
16565                            .map(AllocationManagerErrors::StrategyNotInOperatorSet)
16566                    }
16567                    StrategyNotInOperatorSet
16568                },
16569                {
16570                    fn InsufficientMagnitude(
16571                        data: &[u8],
16572                        validate: bool,
16573                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16574                        <InsufficientMagnitude as alloy_sol_types::SolError>::abi_decode_raw(
16575                                data,
16576                                validate,
16577                            )
16578                            .map(AllocationManagerErrors::InsufficientMagnitude)
16579                    }
16580                    InsufficientMagnitude
16581                },
16582                {
16583                    fn InputAddressZero(
16584                        data: &[u8],
16585                        validate: bool,
16586                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16587                        <InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw(
16588                                data,
16589                                validate,
16590                            )
16591                            .map(AllocationManagerErrors::InputAddressZero)
16592                    }
16593                    InputAddressZero
16594                },
16595                {
16596                    fn OnlyPauser(
16597                        data: &[u8],
16598                        validate: bool,
16599                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16600                        <OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw(
16601                                data,
16602                                validate,
16603                            )
16604                            .map(AllocationManagerErrors::OnlyPauser)
16605                    }
16606                    OnlyPauser
16607                },
16608                {
16609                    fn OnlyUnpauser(
16610                        data: &[u8],
16611                        validate: bool,
16612                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16613                        <OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw(
16614                                data,
16615                                validate,
16616                            )
16617                            .map(AllocationManagerErrors::OnlyUnpauser)
16618                    }
16619                    OnlyUnpauser
16620                },
16621                {
16622                    fn InvalidOperatorSet(
16623                        data: &[u8],
16624                        validate: bool,
16625                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16626                        <InvalidOperatorSet as alloy_sol_types::SolError>::abi_decode_raw(
16627                                data,
16628                                validate,
16629                            )
16630                            .map(AllocationManagerErrors::InvalidOperatorSet)
16631                    }
16632                    InvalidOperatorSet
16633                },
16634                {
16635                    fn CurrentlyPaused(
16636                        data: &[u8],
16637                        validate: bool,
16638                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16639                        <CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw(
16640                                data,
16641                                validate,
16642                            )
16643                            .map(AllocationManagerErrors::CurrentlyPaused)
16644                    }
16645                    CurrentlyPaused
16646                },
16647                {
16648                    fn SameMagnitude(
16649                        data: &[u8],
16650                        validate: bool,
16651                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16652                        <SameMagnitude as alloy_sol_types::SolError>::abi_decode_raw(
16653                                data,
16654                                validate,
16655                            )
16656                            .map(AllocationManagerErrors::SameMagnitude)
16657                    }
16658                    SameMagnitude
16659                },
16660                {
16661                    fn InvalidPermissions(
16662                        data: &[u8],
16663                        validate: bool,
16664                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16665                        <InvalidPermissions as alloy_sol_types::SolError>::abi_decode_raw(
16666                                data,
16667                                validate,
16668                            )
16669                            .map(AllocationManagerErrors::InvalidPermissions)
16670                    }
16671                    InvalidPermissions
16672                },
16673                {
16674                    fn StrategiesMustBeInAscendingOrder(
16675                        data: &[u8],
16676                        validate: bool,
16677                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16678                        <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::abi_decode_raw(
16679                                data,
16680                                validate,
16681                            )
16682                            .map(
16683                                AllocationManagerErrors::StrategiesMustBeInAscendingOrder,
16684                            )
16685                    }
16686                    StrategiesMustBeInAscendingOrder
16687                },
16688                {
16689                    fn InvalidShortString(
16690                        data: &[u8],
16691                        validate: bool,
16692                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16693                        <InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw(
16694                                data,
16695                                validate,
16696                            )
16697                            .map(AllocationManagerErrors::InvalidShortString)
16698                    }
16699                    InvalidShortString
16700                },
16701                {
16702                    fn OutOfBounds(
16703                        data: &[u8],
16704                        validate: bool,
16705                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16706                        <OutOfBounds as alloy_sol_types::SolError>::abi_decode_raw(
16707                                data,
16708                                validate,
16709                            )
16710                            .map(AllocationManagerErrors::OutOfBounds)
16711                    }
16712                    OutOfBounds
16713                },
16714                {
16715                    fn InvalidNewPausedStatus(
16716                        data: &[u8],
16717                        validate: bool,
16718                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16719                        <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw(
16720                                data,
16721                                validate,
16722                            )
16723                            .map(AllocationManagerErrors::InvalidNewPausedStatus)
16724                    }
16725                    InvalidNewPausedStatus
16726                },
16727                {
16728                    fn InvalidOperator(
16729                        data: &[u8],
16730                        validate: bool,
16731                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16732                        <InvalidOperator as alloy_sol_types::SolError>::abi_decode_raw(
16733                                data,
16734                                validate,
16735                            )
16736                            .map(AllocationManagerErrors::InvalidOperator)
16737                    }
16738                    InvalidOperator
16739                },
16740                {
16741                    fn AlreadyMemberOfSet(
16742                        data: &[u8],
16743                        validate: bool,
16744                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16745                        <AlreadyMemberOfSet as alloy_sol_types::SolError>::abi_decode_raw(
16746                                data,
16747                                validate,
16748                            )
16749                            .map(AllocationManagerErrors::AlreadyMemberOfSet)
16750                    }
16751                    AlreadyMemberOfSet
16752                },
16753                {
16754                    fn ModificationAlreadyPending(
16755                        data: &[u8],
16756                        validate: bool,
16757                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16758                        <ModificationAlreadyPending as alloy_sol_types::SolError>::abi_decode_raw(
16759                                data,
16760                                validate,
16761                            )
16762                            .map(AllocationManagerErrors::ModificationAlreadyPending)
16763                    }
16764                    ModificationAlreadyPending
16765                },
16766                {
16767                    fn InvalidAVSRegistrar(
16768                        data: &[u8],
16769                        validate: bool,
16770                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16771                        <InvalidAVSRegistrar as alloy_sol_types::SolError>::abi_decode_raw(
16772                                data,
16773                                validate,
16774                            )
16775                            .map(AllocationManagerErrors::InvalidAVSRegistrar)
16776                    }
16777                    InvalidAVSRegistrar
16778                },
16779                {
16780                    fn OperatorNotSlashable(
16781                        data: &[u8],
16782                        validate: bool,
16783                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16784                        <OperatorNotSlashable as alloy_sol_types::SolError>::abi_decode_raw(
16785                                data,
16786                                validate,
16787                            )
16788                            .map(AllocationManagerErrors::OperatorNotSlashable)
16789                    }
16790                    OperatorNotSlashable
16791                },
16792                {
16793                    fn UninitializedAllocationDelay(
16794                        data: &[u8],
16795                        validate: bool,
16796                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
16797                        <UninitializedAllocationDelay as alloy_sol_types::SolError>::abi_decode_raw(
16798                                data,
16799                                validate,
16800                            )
16801                            .map(AllocationManagerErrors::UninitializedAllocationDelay)
16802                    }
16803                    UninitializedAllocationDelay
16804                },
16805            ];
16806            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
16807                return Err(
16808                    alloy_sol_types::Error::unknown_selector(
16809                        <Self as alloy_sol_types::SolInterface>::NAME,
16810                        selector,
16811                    ),
16812                );
16813            };
16814            DECODE_SHIMS[idx](data, validate)
16815        }
16816        #[inline]
16817        fn abi_encoded_size(&self) -> usize {
16818            match self {
16819                Self::AlreadyMemberOfSet(inner) => {
16820                    <AlreadyMemberOfSet as alloy_sol_types::SolError>::abi_encoded_size(
16821                        inner,
16822                    )
16823                }
16824                Self::CurrentlyPaused(inner) => {
16825                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encoded_size(
16826                        inner,
16827                    )
16828                }
16829                Self::Empty(inner) => {
16830                    <Empty as alloy_sol_types::SolError>::abi_encoded_size(inner)
16831                }
16832                Self::InputAddressZero(inner) => {
16833                    <InputAddressZero as alloy_sol_types::SolError>::abi_encoded_size(
16834                        inner,
16835                    )
16836                }
16837                Self::InputArrayLengthMismatch(inner) => {
16838                    <InputArrayLengthMismatch as alloy_sol_types::SolError>::abi_encoded_size(
16839                        inner,
16840                    )
16841                }
16842                Self::InsufficientMagnitude(inner) => {
16843                    <InsufficientMagnitude as alloy_sol_types::SolError>::abi_encoded_size(
16844                        inner,
16845                    )
16846                }
16847                Self::InvalidAVSRegistrar(inner) => {
16848                    <InvalidAVSRegistrar as alloy_sol_types::SolError>::abi_encoded_size(
16849                        inner,
16850                    )
16851                }
16852                Self::InvalidCaller(inner) => {
16853                    <InvalidCaller as alloy_sol_types::SolError>::abi_encoded_size(inner)
16854                }
16855                Self::InvalidNewPausedStatus(inner) => {
16856                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encoded_size(
16857                        inner,
16858                    )
16859                }
16860                Self::InvalidOperator(inner) => {
16861                    <InvalidOperator as alloy_sol_types::SolError>::abi_encoded_size(
16862                        inner,
16863                    )
16864                }
16865                Self::InvalidOperatorSet(inner) => {
16866                    <InvalidOperatorSet as alloy_sol_types::SolError>::abi_encoded_size(
16867                        inner,
16868                    )
16869                }
16870                Self::InvalidPermissions(inner) => {
16871                    <InvalidPermissions as alloy_sol_types::SolError>::abi_encoded_size(
16872                        inner,
16873                    )
16874                }
16875                Self::InvalidShortString(inner) => {
16876                    <InvalidShortString as alloy_sol_types::SolError>::abi_encoded_size(
16877                        inner,
16878                    )
16879                }
16880                Self::InvalidSnapshotOrdering(inner) => {
16881                    <InvalidSnapshotOrdering as alloy_sol_types::SolError>::abi_encoded_size(
16882                        inner,
16883                    )
16884                }
16885                Self::InvalidWadToSlash(inner) => {
16886                    <InvalidWadToSlash as alloy_sol_types::SolError>::abi_encoded_size(
16887                        inner,
16888                    )
16889                }
16890                Self::ModificationAlreadyPending(inner) => {
16891                    <ModificationAlreadyPending as alloy_sol_types::SolError>::abi_encoded_size(
16892                        inner,
16893                    )
16894                }
16895                Self::NonexistentAVSMetadata(inner) => {
16896                    <NonexistentAVSMetadata as alloy_sol_types::SolError>::abi_encoded_size(
16897                        inner,
16898                    )
16899                }
16900                Self::NotMemberOfSet(inner) => {
16901                    <NotMemberOfSet as alloy_sol_types::SolError>::abi_encoded_size(
16902                        inner,
16903                    )
16904                }
16905                Self::OnlyPauser(inner) => {
16906                    <OnlyPauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
16907                }
16908                Self::OnlyUnpauser(inner) => {
16909                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
16910                }
16911                Self::OperatorNotSlashable(inner) => {
16912                    <OperatorNotSlashable as alloy_sol_types::SolError>::abi_encoded_size(
16913                        inner,
16914                    )
16915                }
16916                Self::OutOfBounds(inner) => {
16917                    <OutOfBounds as alloy_sol_types::SolError>::abi_encoded_size(inner)
16918                }
16919                Self::SameMagnitude(inner) => {
16920                    <SameMagnitude as alloy_sol_types::SolError>::abi_encoded_size(inner)
16921                }
16922                Self::StrategiesMustBeInAscendingOrder(inner) => {
16923                    <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::abi_encoded_size(
16924                        inner,
16925                    )
16926                }
16927                Self::StrategyAlreadyInOperatorSet(inner) => {
16928                    <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::abi_encoded_size(
16929                        inner,
16930                    )
16931                }
16932                Self::StrategyNotInOperatorSet(inner) => {
16933                    <StrategyNotInOperatorSet as alloy_sol_types::SolError>::abi_encoded_size(
16934                        inner,
16935                    )
16936                }
16937                Self::StringTooLong(inner) => {
16938                    <StringTooLong as alloy_sol_types::SolError>::abi_encoded_size(inner)
16939                }
16940                Self::UninitializedAllocationDelay(inner) => {
16941                    <UninitializedAllocationDelay as alloy_sol_types::SolError>::abi_encoded_size(
16942                        inner,
16943                    )
16944                }
16945            }
16946        }
16947        #[inline]
16948        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
16949            match self {
16950                Self::AlreadyMemberOfSet(inner) => {
16951                    <AlreadyMemberOfSet as alloy_sol_types::SolError>::abi_encode_raw(
16952                        inner,
16953                        out,
16954                    )
16955                }
16956                Self::CurrentlyPaused(inner) => {
16957                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encode_raw(
16958                        inner,
16959                        out,
16960                    )
16961                }
16962                Self::Empty(inner) => {
16963                    <Empty as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
16964                }
16965                Self::InputAddressZero(inner) => {
16966                    <InputAddressZero as alloy_sol_types::SolError>::abi_encode_raw(
16967                        inner,
16968                        out,
16969                    )
16970                }
16971                Self::InputArrayLengthMismatch(inner) => {
16972                    <InputArrayLengthMismatch as alloy_sol_types::SolError>::abi_encode_raw(
16973                        inner,
16974                        out,
16975                    )
16976                }
16977                Self::InsufficientMagnitude(inner) => {
16978                    <InsufficientMagnitude as alloy_sol_types::SolError>::abi_encode_raw(
16979                        inner,
16980                        out,
16981                    )
16982                }
16983                Self::InvalidAVSRegistrar(inner) => {
16984                    <InvalidAVSRegistrar as alloy_sol_types::SolError>::abi_encode_raw(
16985                        inner,
16986                        out,
16987                    )
16988                }
16989                Self::InvalidCaller(inner) => {
16990                    <InvalidCaller as alloy_sol_types::SolError>::abi_encode_raw(
16991                        inner,
16992                        out,
16993                    )
16994                }
16995                Self::InvalidNewPausedStatus(inner) => {
16996                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encode_raw(
16997                        inner,
16998                        out,
16999                    )
17000                }
17001                Self::InvalidOperator(inner) => {
17002                    <InvalidOperator as alloy_sol_types::SolError>::abi_encode_raw(
17003                        inner,
17004                        out,
17005                    )
17006                }
17007                Self::InvalidOperatorSet(inner) => {
17008                    <InvalidOperatorSet as alloy_sol_types::SolError>::abi_encode_raw(
17009                        inner,
17010                        out,
17011                    )
17012                }
17013                Self::InvalidPermissions(inner) => {
17014                    <InvalidPermissions as alloy_sol_types::SolError>::abi_encode_raw(
17015                        inner,
17016                        out,
17017                    )
17018                }
17019                Self::InvalidShortString(inner) => {
17020                    <InvalidShortString as alloy_sol_types::SolError>::abi_encode_raw(
17021                        inner,
17022                        out,
17023                    )
17024                }
17025                Self::InvalidSnapshotOrdering(inner) => {
17026                    <InvalidSnapshotOrdering as alloy_sol_types::SolError>::abi_encode_raw(
17027                        inner,
17028                        out,
17029                    )
17030                }
17031                Self::InvalidWadToSlash(inner) => {
17032                    <InvalidWadToSlash as alloy_sol_types::SolError>::abi_encode_raw(
17033                        inner,
17034                        out,
17035                    )
17036                }
17037                Self::ModificationAlreadyPending(inner) => {
17038                    <ModificationAlreadyPending as alloy_sol_types::SolError>::abi_encode_raw(
17039                        inner,
17040                        out,
17041                    )
17042                }
17043                Self::NonexistentAVSMetadata(inner) => {
17044                    <NonexistentAVSMetadata as alloy_sol_types::SolError>::abi_encode_raw(
17045                        inner,
17046                        out,
17047                    )
17048                }
17049                Self::NotMemberOfSet(inner) => {
17050                    <NotMemberOfSet as alloy_sol_types::SolError>::abi_encode_raw(
17051                        inner,
17052                        out,
17053                    )
17054                }
17055                Self::OnlyPauser(inner) => {
17056                    <OnlyPauser as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
17057                }
17058                Self::OnlyUnpauser(inner) => {
17059                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encode_raw(
17060                        inner,
17061                        out,
17062                    )
17063                }
17064                Self::OperatorNotSlashable(inner) => {
17065                    <OperatorNotSlashable as alloy_sol_types::SolError>::abi_encode_raw(
17066                        inner,
17067                        out,
17068                    )
17069                }
17070                Self::OutOfBounds(inner) => {
17071                    <OutOfBounds as alloy_sol_types::SolError>::abi_encode_raw(
17072                        inner,
17073                        out,
17074                    )
17075                }
17076                Self::SameMagnitude(inner) => {
17077                    <SameMagnitude as alloy_sol_types::SolError>::abi_encode_raw(
17078                        inner,
17079                        out,
17080                    )
17081                }
17082                Self::StrategiesMustBeInAscendingOrder(inner) => {
17083                    <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::abi_encode_raw(
17084                        inner,
17085                        out,
17086                    )
17087                }
17088                Self::StrategyAlreadyInOperatorSet(inner) => {
17089                    <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::abi_encode_raw(
17090                        inner,
17091                        out,
17092                    )
17093                }
17094                Self::StrategyNotInOperatorSet(inner) => {
17095                    <StrategyNotInOperatorSet as alloy_sol_types::SolError>::abi_encode_raw(
17096                        inner,
17097                        out,
17098                    )
17099                }
17100                Self::StringTooLong(inner) => {
17101                    <StringTooLong as alloy_sol_types::SolError>::abi_encode_raw(
17102                        inner,
17103                        out,
17104                    )
17105                }
17106                Self::UninitializedAllocationDelay(inner) => {
17107                    <UninitializedAllocationDelay as alloy_sol_types::SolError>::abi_encode_raw(
17108                        inner,
17109                        out,
17110                    )
17111                }
17112            }
17113        }
17114    }
17115    ///Container for all the [`AllocationManager`](self) events.
17116    #[derive(Debug, PartialEq, Eq, Hash)]
17117    pub enum AllocationManagerEvents {
17118        #[allow(missing_docs)]
17119        AVSMetadataURIUpdated(AVSMetadataURIUpdated),
17120        #[allow(missing_docs)]
17121        AVSRegistrarSet(AVSRegistrarSet),
17122        #[allow(missing_docs)]
17123        AllocationDelaySet(AllocationDelaySet),
17124        #[allow(missing_docs)]
17125        AllocationUpdated(AllocationUpdated),
17126        #[allow(missing_docs)]
17127        EncumberedMagnitudeUpdated(EncumberedMagnitudeUpdated),
17128        #[allow(missing_docs)]
17129        Initialized(Initialized),
17130        #[allow(missing_docs)]
17131        MaxMagnitudeUpdated(MaxMagnitudeUpdated),
17132        #[allow(missing_docs)]
17133        OperatorAddedToOperatorSet(OperatorAddedToOperatorSet),
17134        #[allow(missing_docs)]
17135        OperatorRemovedFromOperatorSet(OperatorRemovedFromOperatorSet),
17136        #[allow(missing_docs)]
17137        OperatorSetCreated(OperatorSetCreated),
17138        #[allow(missing_docs)]
17139        OperatorSlashed(OperatorSlashed),
17140        #[allow(missing_docs)]
17141        OwnershipTransferred(OwnershipTransferred),
17142        #[allow(missing_docs)]
17143        Paused(Paused),
17144        #[allow(missing_docs)]
17145        StrategyAddedToOperatorSet(StrategyAddedToOperatorSet),
17146        #[allow(missing_docs)]
17147        StrategyRemovedFromOperatorSet(StrategyRemovedFromOperatorSet),
17148        #[allow(missing_docs)]
17149        Unpaused(Unpaused),
17150    }
17151    #[automatically_derived]
17152    impl AllocationManagerEvents {
17153        /// All the selectors of this enum.
17154        ///
17155        /// Note that the selectors might not be in the same order as the variants.
17156        /// No guarantees are made about the order of the selectors.
17157        ///
17158        /// Prefer using `SolInterface` methods instead.
17159        pub const SELECTORS: &'static [[u8; 32usize]] = &[
17160            [
17161                20u8, 135u8, 175u8, 84u8, 24u8, 196u8, 126u8, 229u8, 234u8, 69u8, 239u8,
17162                74u8, 147u8, 57u8, 134u8, 104u8, 18u8, 8u8, 144u8, 119u8, 74u8, 158u8,
17163                19u8, 72u8, 126u8, 97u8, 233u8, 220u8, 59u8, 175u8, 118u8, 221u8,
17164            ],
17165            [
17166                28u8, 100u8, 88u8, 7u8, 154u8, 65u8, 7u8, 125u8, 0u8, 60u8, 17u8, 250u8,
17167                249u8, 191u8, 9u8, 126u8, 105u8, 59u8, 214u8, 121u8, 121u8, 228u8, 230u8,
17168                80u8, 11u8, 172u8, 123u8, 41u8, 219u8, 119u8, 155u8, 92u8,
17169            ],
17170            [
17171                42u8, 233u8, 69u8, 196u8, 12u8, 68u8, 220u8, 14u8, 194u8, 99u8, 249u8,
17172                86u8, 9u8, 195u8, 253u8, 198u8, 149u8, 46u8, 10u8, 239u8, 162u8, 45u8,
17173                99u8, 116u8, 228u8, 79u8, 44u8, 153u8, 122u8, 206u8, 223u8, 133u8,
17174            ],
17175            [
17176                49u8, 98u8, 146u8, 133u8, 234u8, 210u8, 51u8, 90u8, 224u8, 147u8, 63u8,
17177                134u8, 237u8, 42u8, 230u8, 51u8, 33u8, 247u8, 175u8, 119u8, 180u8, 230u8,
17178                234u8, 171u8, 196u8, 44u8, 5u8, 120u8, 128u8, 151u8, 126u8, 108u8,
17179            ],
17180            [
17181                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
17182                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
17183                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
17184            ],
17185            [
17186                67u8, 35u8, 46u8, 223u8, 144u8, 113u8, 117u8, 61u8, 35u8, 33u8, 229u8,
17187                250u8, 126u8, 1u8, 131u8, 99u8, 238u8, 36u8, 142u8, 95u8, 33u8, 66u8,
17188                230u8, 192u8, 142u8, 221u8, 50u8, 101u8, 191u8, 180u8, 137u8, 94u8,
17189            ],
17190            [
17191                78u8, 133u8, 117u8, 29u8, 99u8, 49u8, 80u8, 108u8, 108u8, 98u8, 51u8,
17192                95u8, 32u8, 126u8, 179u8, 31u8, 18u8, 166u8, 30u8, 87u8, 15u8, 52u8,
17193                245u8, 193u8, 118u8, 64u8, 48u8, 135u8, 133u8, 198u8, 212u8, 219u8,
17194            ],
17195            [
17196                122u8, 178u8, 96u8, 254u8, 10u8, 241u8, 147u8, 219u8, 95u8, 73u8, 134u8,
17197                119u8, 13u8, 131u8, 27u8, 218u8, 78u8, 164u8, 96u8, 153u8, 220u8, 129u8,
17198                126u8, 139u8, 103u8, 22u8, 220u8, 174u8, 138u8, 248u8, 232u8, 139u8,
17199            ],
17200            [
17201                123u8, 75u8, 7u8, 61u8, 128u8, 220u8, 172u8, 85u8, 161u8, 17u8, 119u8,
17202                216u8, 69u8, 154u8, 217u8, 246u8, 100u8, 206u8, 235u8, 145u8, 247u8,
17203                31u8, 39u8, 22u8, 123u8, 177u8, 79u8, 129u8, 82u8, 167u8, 238u8, 238u8,
17204            ],
17205            [
17206                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
17207                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
17208                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
17209            ],
17210            [
17211                128u8, 150u8, 154u8, 210u8, 148u8, 40u8, 214u8, 121u8, 126u8, 231u8,
17212                170u8, 208u8, 132u8, 249u8, 228u8, 164u8, 42u8, 130u8, 252u8, 80u8,
17213                109u8, 205u8, 44u8, 163u8, 182u8, 251u8, 67u8, 31u8, 133u8, 204u8, 235u8,
17214                229u8,
17215            ],
17216            [
17217                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
17218                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
17219                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
17220            ],
17221            [
17222                168u8, 156u8, 29u8, 194u8, 67u8, 216u8, 144u8, 138u8, 150u8, 221u8,
17223                132u8, 148u8, 75u8, 204u8, 151u8, 214u8, 188u8, 106u8, 192u8, 13u8,
17224                215u8, 142u8, 32u8, 98u8, 21u8, 118u8, 190u8, 106u8, 60u8, 148u8, 55u8,
17225                19u8,
17226            ],
17227            [
17228                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
17229                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
17230                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
17231            ],
17232            [
17233                172u8, 249u8, 9u8, 95u8, 235u8, 58u8, 55u8, 12u8, 156u8, 246u8, 146u8,
17234                66u8, 28u8, 105u8, 239u8, 50u8, 13u8, 77u8, 181u8, 198u8, 110u8, 106u8,
17235                125u8, 41u8, 199u8, 105u8, 78u8, 176u8, 35u8, 100u8, 252u8, 85u8,
17236            ],
17237            [
17238                173u8, 52u8, 195u8, 7u8, 11u8, 225u8, 223u8, 251u8, 202u8, 164u8, 153u8,
17239                208u8, 0u8, 186u8, 43u8, 141u8, 152u8, 72u8, 174u8, 252u8, 172u8, 48u8,
17240                89u8, 223u8, 36u8, 93u8, 217u8, 92u8, 78u8, 206u8, 20u8, 254u8,
17241            ],
17242        ];
17243    }
17244    #[automatically_derived]
17245    impl alloy_sol_types::SolEventInterface for AllocationManagerEvents {
17246        const NAME: &'static str = "AllocationManagerEvents";
17247        const COUNT: usize = 16usize;
17248        fn decode_raw_log(
17249            topics: &[alloy_sol_types::Word],
17250            data: &[u8],
17251            validate: bool,
17252        ) -> alloy_sol_types::Result<Self> {
17253            match topics.first().copied() {
17254                Some(
17255                    <AVSMetadataURIUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17256                ) => {
17257                    <AVSMetadataURIUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
17258                            topics,
17259                            data,
17260                            validate,
17261                        )
17262                        .map(Self::AVSMetadataURIUpdated)
17263                }
17264                Some(<AVSRegistrarSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
17265                    <AVSRegistrarSet as alloy_sol_types::SolEvent>::decode_raw_log(
17266                            topics,
17267                            data,
17268                            validate,
17269                        )
17270                        .map(Self::AVSRegistrarSet)
17271                }
17272                Some(
17273                    <AllocationDelaySet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17274                ) => {
17275                    <AllocationDelaySet as alloy_sol_types::SolEvent>::decode_raw_log(
17276                            topics,
17277                            data,
17278                            validate,
17279                        )
17280                        .map(Self::AllocationDelaySet)
17281                }
17282                Some(
17283                    <AllocationUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17284                ) => {
17285                    <AllocationUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
17286                            topics,
17287                            data,
17288                            validate,
17289                        )
17290                        .map(Self::AllocationUpdated)
17291                }
17292                Some(
17293                    <EncumberedMagnitudeUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17294                ) => {
17295                    <EncumberedMagnitudeUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
17296                            topics,
17297                            data,
17298                            validate,
17299                        )
17300                        .map(Self::EncumberedMagnitudeUpdated)
17301                }
17302                Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
17303                    <Initialized as alloy_sol_types::SolEvent>::decode_raw_log(
17304                            topics,
17305                            data,
17306                            validate,
17307                        )
17308                        .map(Self::Initialized)
17309                }
17310                Some(
17311                    <MaxMagnitudeUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17312                ) => {
17313                    <MaxMagnitudeUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
17314                            topics,
17315                            data,
17316                            validate,
17317                        )
17318                        .map(Self::MaxMagnitudeUpdated)
17319                }
17320                Some(
17321                    <OperatorAddedToOperatorSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17322                ) => {
17323                    <OperatorAddedToOperatorSet as alloy_sol_types::SolEvent>::decode_raw_log(
17324                            topics,
17325                            data,
17326                            validate,
17327                        )
17328                        .map(Self::OperatorAddedToOperatorSet)
17329                }
17330                Some(
17331                    <OperatorRemovedFromOperatorSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17332                ) => {
17333                    <OperatorRemovedFromOperatorSet as alloy_sol_types::SolEvent>::decode_raw_log(
17334                            topics,
17335                            data,
17336                            validate,
17337                        )
17338                        .map(Self::OperatorRemovedFromOperatorSet)
17339                }
17340                Some(
17341                    <OperatorSetCreated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17342                ) => {
17343                    <OperatorSetCreated as alloy_sol_types::SolEvent>::decode_raw_log(
17344                            topics,
17345                            data,
17346                            validate,
17347                        )
17348                        .map(Self::OperatorSetCreated)
17349                }
17350                Some(<OperatorSlashed as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
17351                    <OperatorSlashed as alloy_sol_types::SolEvent>::decode_raw_log(
17352                            topics,
17353                            data,
17354                            validate,
17355                        )
17356                        .map(Self::OperatorSlashed)
17357                }
17358                Some(
17359                    <OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17360                ) => {
17361                    <OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
17362                            topics,
17363                            data,
17364                            validate,
17365                        )
17366                        .map(Self::OwnershipTransferred)
17367                }
17368                Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
17369                    <Paused as alloy_sol_types::SolEvent>::decode_raw_log(
17370                            topics,
17371                            data,
17372                            validate,
17373                        )
17374                        .map(Self::Paused)
17375                }
17376                Some(
17377                    <StrategyAddedToOperatorSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17378                ) => {
17379                    <StrategyAddedToOperatorSet as alloy_sol_types::SolEvent>::decode_raw_log(
17380                            topics,
17381                            data,
17382                            validate,
17383                        )
17384                        .map(Self::StrategyAddedToOperatorSet)
17385                }
17386                Some(
17387                    <StrategyRemovedFromOperatorSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
17388                ) => {
17389                    <StrategyRemovedFromOperatorSet as alloy_sol_types::SolEvent>::decode_raw_log(
17390                            topics,
17391                            data,
17392                            validate,
17393                        )
17394                        .map(Self::StrategyRemovedFromOperatorSet)
17395                }
17396                Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
17397                    <Unpaused as alloy_sol_types::SolEvent>::decode_raw_log(
17398                            topics,
17399                            data,
17400                            validate,
17401                        )
17402                        .map(Self::Unpaused)
17403                }
17404                _ => {
17405                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
17406                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
17407                        log: alloy_sol_types::private::Box::new(
17408                            alloy_sol_types::private::LogData::new_unchecked(
17409                                topics.to_vec(),
17410                                data.to_vec().into(),
17411                            ),
17412                        ),
17413                    })
17414                }
17415            }
17416        }
17417    }
17418    #[automatically_derived]
17419    impl alloy_sol_types::private::IntoLogData for AllocationManagerEvents {
17420        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
17421            match self {
17422                Self::AVSMetadataURIUpdated(inner) => {
17423                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17424                }
17425                Self::AVSRegistrarSet(inner) => {
17426                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17427                }
17428                Self::AllocationDelaySet(inner) => {
17429                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17430                }
17431                Self::AllocationUpdated(inner) => {
17432                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17433                }
17434                Self::EncumberedMagnitudeUpdated(inner) => {
17435                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17436                }
17437                Self::Initialized(inner) => {
17438                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17439                }
17440                Self::MaxMagnitudeUpdated(inner) => {
17441                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17442                }
17443                Self::OperatorAddedToOperatorSet(inner) => {
17444                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17445                }
17446                Self::OperatorRemovedFromOperatorSet(inner) => {
17447                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17448                }
17449                Self::OperatorSetCreated(inner) => {
17450                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17451                }
17452                Self::OperatorSlashed(inner) => {
17453                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17454                }
17455                Self::OwnershipTransferred(inner) => {
17456                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17457                }
17458                Self::Paused(inner) => {
17459                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17460                }
17461                Self::StrategyAddedToOperatorSet(inner) => {
17462                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17463                }
17464                Self::StrategyRemovedFromOperatorSet(inner) => {
17465                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17466                }
17467                Self::Unpaused(inner) => {
17468                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
17469                }
17470            }
17471        }
17472        fn into_log_data(self) -> alloy_sol_types::private::LogData {
17473            match self {
17474                Self::AVSMetadataURIUpdated(inner) => {
17475                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17476                }
17477                Self::AVSRegistrarSet(inner) => {
17478                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17479                }
17480                Self::AllocationDelaySet(inner) => {
17481                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17482                }
17483                Self::AllocationUpdated(inner) => {
17484                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17485                }
17486                Self::EncumberedMagnitudeUpdated(inner) => {
17487                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17488                }
17489                Self::Initialized(inner) => {
17490                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17491                }
17492                Self::MaxMagnitudeUpdated(inner) => {
17493                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17494                }
17495                Self::OperatorAddedToOperatorSet(inner) => {
17496                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17497                }
17498                Self::OperatorRemovedFromOperatorSet(inner) => {
17499                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17500                }
17501                Self::OperatorSetCreated(inner) => {
17502                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17503                }
17504                Self::OperatorSlashed(inner) => {
17505                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17506                }
17507                Self::OwnershipTransferred(inner) => {
17508                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17509                }
17510                Self::Paused(inner) => {
17511                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17512                }
17513                Self::StrategyAddedToOperatorSet(inner) => {
17514                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17515                }
17516                Self::StrategyRemovedFromOperatorSet(inner) => {
17517                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17518                }
17519                Self::Unpaused(inner) => {
17520                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
17521                }
17522            }
17523        }
17524    }
17525    use alloy::contract as alloy_contract;
17526    /**Creates a new wrapper around an on-chain [`AllocationManager`](self) contract instance.
17527
17528See the [wrapper's documentation](`AllocationManagerInstance`) for more details.*/
17529    #[inline]
17530    pub const fn new<
17531        T: alloy_contract::private::Transport + ::core::clone::Clone,
17532        P: alloy_contract::private::Provider<T, N>,
17533        N: alloy_contract::private::Network,
17534    >(
17535        address: alloy_sol_types::private::Address,
17536        provider: P,
17537    ) -> AllocationManagerInstance<T, P, N> {
17538        AllocationManagerInstance::<T, P, N>::new(address, provider)
17539    }
17540    /**Deploys this contract using the given `provider` and constructor arguments, if any.
17541
17542Returns a new instance of the contract, if the deployment was successful.
17543
17544For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
17545    #[inline]
17546    pub fn deploy<
17547        T: alloy_contract::private::Transport + ::core::clone::Clone,
17548        P: alloy_contract::private::Provider<T, N>,
17549        N: alloy_contract::private::Network,
17550    >(
17551        provider: P,
17552        _delegation: alloy::sol_types::private::Address,
17553        _pauserRegistry: alloy::sol_types::private::Address,
17554        _permissionController: alloy::sol_types::private::Address,
17555        _DEALLOCATION_DELAY: u32,
17556        _ALLOCATION_CONFIGURATION_DELAY: u32,
17557        _version: alloy::sol_types::private::String,
17558    ) -> impl ::core::future::Future<
17559        Output = alloy_contract::Result<AllocationManagerInstance<T, P, N>>,
17560    > {
17561        AllocationManagerInstance::<
17562            T,
17563            P,
17564            N,
17565        >::deploy(
17566            provider,
17567            _delegation,
17568            _pauserRegistry,
17569            _permissionController,
17570            _DEALLOCATION_DELAY,
17571            _ALLOCATION_CONFIGURATION_DELAY,
17572            _version,
17573        )
17574    }
17575    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
17576and constructor arguments, if any.
17577
17578This is a simple wrapper around creating a `RawCallBuilder` with the data set to
17579the bytecode concatenated with the constructor's ABI-encoded arguments.*/
17580    #[inline]
17581    pub fn deploy_builder<
17582        T: alloy_contract::private::Transport + ::core::clone::Clone,
17583        P: alloy_contract::private::Provider<T, N>,
17584        N: alloy_contract::private::Network,
17585    >(
17586        provider: P,
17587        _delegation: alloy::sol_types::private::Address,
17588        _pauserRegistry: alloy::sol_types::private::Address,
17589        _permissionController: alloy::sol_types::private::Address,
17590        _DEALLOCATION_DELAY: u32,
17591        _ALLOCATION_CONFIGURATION_DELAY: u32,
17592        _version: alloy::sol_types::private::String,
17593    ) -> alloy_contract::RawCallBuilder<T, P, N> {
17594        AllocationManagerInstance::<
17595            T,
17596            P,
17597            N,
17598        >::deploy_builder(
17599            provider,
17600            _delegation,
17601            _pauserRegistry,
17602            _permissionController,
17603            _DEALLOCATION_DELAY,
17604            _ALLOCATION_CONFIGURATION_DELAY,
17605            _version,
17606        )
17607    }
17608    /**A [`AllocationManager`](self) instance.
17609
17610Contains type-safe methods for interacting with an on-chain instance of the
17611[`AllocationManager`](self) contract located at a given `address`, using a given
17612provider `P`.
17613
17614If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
17615documentation on how to provide it), the `deploy` and `deploy_builder` methods can
17616be used to deploy a new instance of the contract.
17617
17618See the [module-level documentation](self) for all the available methods.*/
17619    #[derive(Clone)]
17620    pub struct AllocationManagerInstance<T, P, N = alloy_contract::private::Ethereum> {
17621        address: alloy_sol_types::private::Address,
17622        provider: P,
17623        _network_transport: ::core::marker::PhantomData<(N, T)>,
17624    }
17625    #[automatically_derived]
17626    impl<T, P, N> ::core::fmt::Debug for AllocationManagerInstance<T, P, N> {
17627        #[inline]
17628        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17629            f.debug_tuple("AllocationManagerInstance").field(&self.address).finish()
17630        }
17631    }
17632    /// Instantiation and getters/setters.
17633    #[automatically_derived]
17634    impl<
17635        T: alloy_contract::private::Transport + ::core::clone::Clone,
17636        P: alloy_contract::private::Provider<T, N>,
17637        N: alloy_contract::private::Network,
17638    > AllocationManagerInstance<T, P, N> {
17639        /**Creates a new wrapper around an on-chain [`AllocationManager`](self) contract instance.
17640
17641See the [wrapper's documentation](`AllocationManagerInstance`) for more details.*/
17642        #[inline]
17643        pub const fn new(
17644            address: alloy_sol_types::private::Address,
17645            provider: P,
17646        ) -> Self {
17647            Self {
17648                address,
17649                provider,
17650                _network_transport: ::core::marker::PhantomData,
17651            }
17652        }
17653        /**Deploys this contract using the given `provider` and constructor arguments, if any.
17654
17655Returns a new instance of the contract, if the deployment was successful.
17656
17657For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
17658        #[inline]
17659        pub async fn deploy(
17660            provider: P,
17661            _delegation: alloy::sol_types::private::Address,
17662            _pauserRegistry: alloy::sol_types::private::Address,
17663            _permissionController: alloy::sol_types::private::Address,
17664            _DEALLOCATION_DELAY: u32,
17665            _ALLOCATION_CONFIGURATION_DELAY: u32,
17666            _version: alloy::sol_types::private::String,
17667        ) -> alloy_contract::Result<AllocationManagerInstance<T, P, N>> {
17668            let call_builder = Self::deploy_builder(
17669                provider,
17670                _delegation,
17671                _pauserRegistry,
17672                _permissionController,
17673                _DEALLOCATION_DELAY,
17674                _ALLOCATION_CONFIGURATION_DELAY,
17675                _version,
17676            );
17677            let contract_address = call_builder.deploy().await?;
17678            Ok(Self::new(contract_address, call_builder.provider))
17679        }
17680        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
17681and constructor arguments, if any.
17682
17683This is a simple wrapper around creating a `RawCallBuilder` with the data set to
17684the bytecode concatenated with the constructor's ABI-encoded arguments.*/
17685        #[inline]
17686        pub fn deploy_builder(
17687            provider: P,
17688            _delegation: alloy::sol_types::private::Address,
17689            _pauserRegistry: alloy::sol_types::private::Address,
17690            _permissionController: alloy::sol_types::private::Address,
17691            _DEALLOCATION_DELAY: u32,
17692            _ALLOCATION_CONFIGURATION_DELAY: u32,
17693            _version: alloy::sol_types::private::String,
17694        ) -> alloy_contract::RawCallBuilder<T, P, N> {
17695            alloy_contract::RawCallBuilder::new_raw_deploy(
17696                provider,
17697                [
17698                    &BYTECODE[..],
17699                    &alloy_sol_types::SolConstructor::abi_encode(
17700                        &constructorCall {
17701                            _delegation,
17702                            _pauserRegistry,
17703                            _permissionController,
17704                            _DEALLOCATION_DELAY,
17705                            _ALLOCATION_CONFIGURATION_DELAY,
17706                            _version,
17707                        },
17708                    )[..],
17709                ]
17710                    .concat()
17711                    .into(),
17712            )
17713        }
17714        /// Returns a reference to the address.
17715        #[inline]
17716        pub const fn address(&self) -> &alloy_sol_types::private::Address {
17717            &self.address
17718        }
17719        /// Sets the address.
17720        #[inline]
17721        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
17722            self.address = address;
17723        }
17724        /// Sets the address and returns `self`.
17725        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
17726            self.set_address(address);
17727            self
17728        }
17729        /// Returns a reference to the provider.
17730        #[inline]
17731        pub const fn provider(&self) -> &P {
17732            &self.provider
17733        }
17734    }
17735    impl<T, P: ::core::clone::Clone, N> AllocationManagerInstance<T, &P, N> {
17736        /// Clones the provider and returns a new instance with the cloned provider.
17737        #[inline]
17738        pub fn with_cloned_provider(self) -> AllocationManagerInstance<T, P, N> {
17739            AllocationManagerInstance {
17740                address: self.address,
17741                provider: ::core::clone::Clone::clone(&self.provider),
17742                _network_transport: ::core::marker::PhantomData,
17743            }
17744        }
17745    }
17746    /// Function calls.
17747    #[automatically_derived]
17748    impl<
17749        T: alloy_contract::private::Transport + ::core::clone::Clone,
17750        P: alloy_contract::private::Provider<T, N>,
17751        N: alloy_contract::private::Network,
17752    > AllocationManagerInstance<T, P, N> {
17753        /// Creates a new call builder using this contract instance's provider and address.
17754        ///
17755        /// Note that the call can be any function call, not just those defined in this
17756        /// contract. Prefer using the other methods for building type-safe contract calls.
17757        pub fn call_builder<C: alloy_sol_types::SolCall>(
17758            &self,
17759            call: &C,
17760        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
17761            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
17762        }
17763        ///Creates a new call builder for the [`ALLOCATION_CONFIGURATION_DELAY`] function.
17764        pub fn ALLOCATION_CONFIGURATION_DELAY(
17765            &self,
17766        ) -> alloy_contract::SolCallBuilder<
17767            T,
17768            &P,
17769            ALLOCATION_CONFIGURATION_DELAYCall,
17770            N,
17771        > {
17772            self.call_builder(
17773                &ALLOCATION_CONFIGURATION_DELAYCall {
17774                },
17775            )
17776        }
17777        ///Creates a new call builder for the [`DEALLOCATION_DELAY`] function.
17778        pub fn DEALLOCATION_DELAY(
17779            &self,
17780        ) -> alloy_contract::SolCallBuilder<T, &P, DEALLOCATION_DELAYCall, N> {
17781            self.call_builder(&DEALLOCATION_DELAYCall {})
17782        }
17783        ///Creates a new call builder for the [`addStrategiesToOperatorSet`] function.
17784        pub fn addStrategiesToOperatorSet(
17785            &self,
17786            avs: alloy::sol_types::private::Address,
17787            operatorSetId: u32,
17788            strategies: alloy::sol_types::private::Vec<
17789                alloy::sol_types::private::Address,
17790            >,
17791        ) -> alloy_contract::SolCallBuilder<T, &P, addStrategiesToOperatorSetCall, N> {
17792            self.call_builder(
17793                &addStrategiesToOperatorSetCall {
17794                    avs,
17795                    operatorSetId,
17796                    strategies,
17797                },
17798            )
17799        }
17800        ///Creates a new call builder for the [`clearDeallocationQueue`] function.
17801        pub fn clearDeallocationQueue(
17802            &self,
17803            operator: alloy::sol_types::private::Address,
17804            strategies: alloy::sol_types::private::Vec<
17805                alloy::sol_types::private::Address,
17806            >,
17807            numToClear: alloy::sol_types::private::Vec<u16>,
17808        ) -> alloy_contract::SolCallBuilder<T, &P, clearDeallocationQueueCall, N> {
17809            self.call_builder(
17810                &clearDeallocationQueueCall {
17811                    operator,
17812                    strategies,
17813                    numToClear,
17814                },
17815            )
17816        }
17817        ///Creates a new call builder for the [`createOperatorSets`] function.
17818        pub fn createOperatorSets(
17819            &self,
17820            avs: alloy::sol_types::private::Address,
17821            params: alloy::sol_types::private::Vec<
17822                <IAllocationManagerTypes::CreateSetParams as alloy::sol_types::SolType>::RustType,
17823            >,
17824        ) -> alloy_contract::SolCallBuilder<T, &P, createOperatorSetsCall, N> {
17825            self.call_builder(
17826                &createOperatorSetsCall {
17827                    avs,
17828                    params,
17829                },
17830            )
17831        }
17832        ///Creates a new call builder for the [`delegation`] function.
17833        pub fn delegation(
17834            &self,
17835        ) -> alloy_contract::SolCallBuilder<T, &P, delegationCall, N> {
17836            self.call_builder(&delegationCall {})
17837        }
17838        ///Creates a new call builder for the [`deregisterFromOperatorSets`] function.
17839        pub fn deregisterFromOperatorSets(
17840            &self,
17841            params: <IAllocationManagerTypes::DeregisterParams as alloy::sol_types::SolType>::RustType,
17842        ) -> alloy_contract::SolCallBuilder<T, &P, deregisterFromOperatorSetsCall, N> {
17843            self.call_builder(
17844                &deregisterFromOperatorSetsCall {
17845                    params,
17846                },
17847            )
17848        }
17849        ///Creates a new call builder for the [`getAVSRegistrar`] function.
17850        pub fn getAVSRegistrar(
17851            &self,
17852            avs: alloy::sol_types::private::Address,
17853        ) -> alloy_contract::SolCallBuilder<T, &P, getAVSRegistrarCall, N> {
17854            self.call_builder(&getAVSRegistrarCall { avs })
17855        }
17856        ///Creates a new call builder for the [`getAllocatableMagnitude`] function.
17857        pub fn getAllocatableMagnitude(
17858            &self,
17859            operator: alloy::sol_types::private::Address,
17860            strategy: alloy::sol_types::private::Address,
17861        ) -> alloy_contract::SolCallBuilder<T, &P, getAllocatableMagnitudeCall, N> {
17862            self.call_builder(
17863                &getAllocatableMagnitudeCall {
17864                    operator,
17865                    strategy,
17866                },
17867            )
17868        }
17869        ///Creates a new call builder for the [`getAllocatedSets`] function.
17870        pub fn getAllocatedSets(
17871            &self,
17872            operator: alloy::sol_types::private::Address,
17873        ) -> alloy_contract::SolCallBuilder<T, &P, getAllocatedSetsCall, N> {
17874            self.call_builder(&getAllocatedSetsCall { operator })
17875        }
17876        ///Creates a new call builder for the [`getAllocatedStake`] function.
17877        pub fn getAllocatedStake(
17878            &self,
17879            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
17880            operators: alloy::sol_types::private::Vec<
17881                alloy::sol_types::private::Address,
17882            >,
17883            strategies: alloy::sol_types::private::Vec<
17884                alloy::sol_types::private::Address,
17885            >,
17886        ) -> alloy_contract::SolCallBuilder<T, &P, getAllocatedStakeCall, N> {
17887            self.call_builder(
17888                &getAllocatedStakeCall {
17889                    operatorSet,
17890                    operators,
17891                    strategies,
17892                },
17893            )
17894        }
17895        ///Creates a new call builder for the [`getAllocatedStrategies`] function.
17896        pub fn getAllocatedStrategies(
17897            &self,
17898            operator: alloy::sol_types::private::Address,
17899            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
17900        ) -> alloy_contract::SolCallBuilder<T, &P, getAllocatedStrategiesCall, N> {
17901            self.call_builder(
17902                &getAllocatedStrategiesCall {
17903                    operator,
17904                    operatorSet,
17905                },
17906            )
17907        }
17908        ///Creates a new call builder for the [`getAllocation`] function.
17909        pub fn getAllocation(
17910            &self,
17911            operator: alloy::sol_types::private::Address,
17912            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
17913            strategy: alloy::sol_types::private::Address,
17914        ) -> alloy_contract::SolCallBuilder<T, &P, getAllocationCall, N> {
17915            self.call_builder(
17916                &getAllocationCall {
17917                    operator,
17918                    operatorSet,
17919                    strategy,
17920                },
17921            )
17922        }
17923        ///Creates a new call builder for the [`getAllocationDelay`] function.
17924        pub fn getAllocationDelay(
17925            &self,
17926            operator: alloy::sol_types::private::Address,
17927        ) -> alloy_contract::SolCallBuilder<T, &P, getAllocationDelayCall, N> {
17928            self.call_builder(&getAllocationDelayCall { operator })
17929        }
17930        ///Creates a new call builder for the [`getAllocations`] function.
17931        pub fn getAllocations(
17932            &self,
17933            operators: alloy::sol_types::private::Vec<
17934                alloy::sol_types::private::Address,
17935            >,
17936            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
17937            strategy: alloy::sol_types::private::Address,
17938        ) -> alloy_contract::SolCallBuilder<T, &P, getAllocationsCall, N> {
17939            self.call_builder(
17940                &getAllocationsCall {
17941                    operators,
17942                    operatorSet,
17943                    strategy,
17944                },
17945            )
17946        }
17947        ///Creates a new call builder for the [`getEncumberedMagnitude`] function.
17948        pub fn getEncumberedMagnitude(
17949            &self,
17950            operator: alloy::sol_types::private::Address,
17951            strategy: alloy::sol_types::private::Address,
17952        ) -> alloy_contract::SolCallBuilder<T, &P, getEncumberedMagnitudeCall, N> {
17953            self.call_builder(
17954                &getEncumberedMagnitudeCall {
17955                    operator,
17956                    strategy,
17957                },
17958            )
17959        }
17960        ///Creates a new call builder for the [`getMaxMagnitude`] function.
17961        pub fn getMaxMagnitude(
17962            &self,
17963            operator: alloy::sol_types::private::Address,
17964            strategy: alloy::sol_types::private::Address,
17965        ) -> alloy_contract::SolCallBuilder<T, &P, getMaxMagnitudeCall, N> {
17966            self.call_builder(
17967                &getMaxMagnitudeCall {
17968                    operator,
17969                    strategy,
17970                },
17971            )
17972        }
17973        ///Creates a new call builder for the [`getMaxMagnitudes_0`] function.
17974        pub fn getMaxMagnitudes_0(
17975            &self,
17976            operators: alloy::sol_types::private::Vec<
17977                alloy::sol_types::private::Address,
17978            >,
17979            strategy: alloy::sol_types::private::Address,
17980        ) -> alloy_contract::SolCallBuilder<T, &P, getMaxMagnitudes_0Call, N> {
17981            self.call_builder(
17982                &getMaxMagnitudes_0Call {
17983                    operators,
17984                    strategy,
17985                },
17986            )
17987        }
17988        ///Creates a new call builder for the [`getMaxMagnitudes_1`] function.
17989        pub fn getMaxMagnitudes_1(
17990            &self,
17991            operator: alloy::sol_types::private::Address,
17992            strategies: alloy::sol_types::private::Vec<
17993                alloy::sol_types::private::Address,
17994            >,
17995        ) -> alloy_contract::SolCallBuilder<T, &P, getMaxMagnitudes_1Call, N> {
17996            self.call_builder(
17997                &getMaxMagnitudes_1Call {
17998                    operator,
17999                    strategies,
18000                },
18001            )
18002        }
18003        ///Creates a new call builder for the [`getMaxMagnitudesAtBlock`] function.
18004        pub fn getMaxMagnitudesAtBlock(
18005            &self,
18006            operator: alloy::sol_types::private::Address,
18007            strategies: alloy::sol_types::private::Vec<
18008                alloy::sol_types::private::Address,
18009            >,
18010            blockNumber: u32,
18011        ) -> alloy_contract::SolCallBuilder<T, &P, getMaxMagnitudesAtBlockCall, N> {
18012            self.call_builder(
18013                &getMaxMagnitudesAtBlockCall {
18014                    operator,
18015                    strategies,
18016                    blockNumber,
18017                },
18018            )
18019        }
18020        ///Creates a new call builder for the [`getMemberCount`] function.
18021        pub fn getMemberCount(
18022            &self,
18023            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
18024        ) -> alloy_contract::SolCallBuilder<T, &P, getMemberCountCall, N> {
18025            self.call_builder(&getMemberCountCall { operatorSet })
18026        }
18027        ///Creates a new call builder for the [`getMembers`] function.
18028        pub fn getMembers(
18029            &self,
18030            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
18031        ) -> alloy_contract::SolCallBuilder<T, &P, getMembersCall, N> {
18032            self.call_builder(&getMembersCall { operatorSet })
18033        }
18034        ///Creates a new call builder for the [`getMinimumSlashableStake`] function.
18035        pub fn getMinimumSlashableStake(
18036            &self,
18037            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
18038            operators: alloy::sol_types::private::Vec<
18039                alloy::sol_types::private::Address,
18040            >,
18041            strategies: alloy::sol_types::private::Vec<
18042                alloy::sol_types::private::Address,
18043            >,
18044            futureBlock: u32,
18045        ) -> alloy_contract::SolCallBuilder<T, &P, getMinimumSlashableStakeCall, N> {
18046            self.call_builder(
18047                &getMinimumSlashableStakeCall {
18048                    operatorSet,
18049                    operators,
18050                    strategies,
18051                    futureBlock,
18052                },
18053            )
18054        }
18055        ///Creates a new call builder for the [`getOperatorSetCount`] function.
18056        pub fn getOperatorSetCount(
18057            &self,
18058            avs: alloy::sol_types::private::Address,
18059        ) -> alloy_contract::SolCallBuilder<T, &P, getOperatorSetCountCall, N> {
18060            self.call_builder(&getOperatorSetCountCall { avs })
18061        }
18062        ///Creates a new call builder for the [`getRegisteredSets`] function.
18063        pub fn getRegisteredSets(
18064            &self,
18065            operator: alloy::sol_types::private::Address,
18066        ) -> alloy_contract::SolCallBuilder<T, &P, getRegisteredSetsCall, N> {
18067            self.call_builder(&getRegisteredSetsCall { operator })
18068        }
18069        ///Creates a new call builder for the [`getStrategiesInOperatorSet`] function.
18070        pub fn getStrategiesInOperatorSet(
18071            &self,
18072            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
18073        ) -> alloy_contract::SolCallBuilder<T, &P, getStrategiesInOperatorSetCall, N> {
18074            self.call_builder(
18075                &getStrategiesInOperatorSetCall {
18076                    operatorSet,
18077                },
18078            )
18079        }
18080        ///Creates a new call builder for the [`getStrategyAllocations`] function.
18081        pub fn getStrategyAllocations(
18082            &self,
18083            operator: alloy::sol_types::private::Address,
18084            strategy: alloy::sol_types::private::Address,
18085        ) -> alloy_contract::SolCallBuilder<T, &P, getStrategyAllocationsCall, N> {
18086            self.call_builder(
18087                &getStrategyAllocationsCall {
18088                    operator,
18089                    strategy,
18090                },
18091            )
18092        }
18093        ///Creates a new call builder for the [`initialize`] function.
18094        pub fn initialize(
18095            &self,
18096            initialOwner: alloy::sol_types::private::Address,
18097            initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
18098        ) -> alloy_contract::SolCallBuilder<T, &P, initializeCall, N> {
18099            self.call_builder(
18100                &initializeCall {
18101                    initialOwner,
18102                    initialPausedStatus,
18103                },
18104            )
18105        }
18106        ///Creates a new call builder for the [`isMemberOfOperatorSet`] function.
18107        pub fn isMemberOfOperatorSet(
18108            &self,
18109            operator: alloy::sol_types::private::Address,
18110            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
18111        ) -> alloy_contract::SolCallBuilder<T, &P, isMemberOfOperatorSetCall, N> {
18112            self.call_builder(
18113                &isMemberOfOperatorSetCall {
18114                    operator,
18115                    operatorSet,
18116                },
18117            )
18118        }
18119        ///Creates a new call builder for the [`isOperatorSet`] function.
18120        pub fn isOperatorSet(
18121            &self,
18122            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
18123        ) -> alloy_contract::SolCallBuilder<T, &P, isOperatorSetCall, N> {
18124            self.call_builder(&isOperatorSetCall { operatorSet })
18125        }
18126        ///Creates a new call builder for the [`isOperatorSlashable`] function.
18127        pub fn isOperatorSlashable(
18128            &self,
18129            operator: alloy::sol_types::private::Address,
18130            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
18131        ) -> alloy_contract::SolCallBuilder<T, &P, isOperatorSlashableCall, N> {
18132            self.call_builder(
18133                &isOperatorSlashableCall {
18134                    operator,
18135                    operatorSet,
18136                },
18137            )
18138        }
18139        ///Creates a new call builder for the [`modifyAllocations`] function.
18140        pub fn modifyAllocations(
18141            &self,
18142            operator: alloy::sol_types::private::Address,
18143            params: alloy::sol_types::private::Vec<
18144                <IAllocationManagerTypes::AllocateParams as alloy::sol_types::SolType>::RustType,
18145            >,
18146        ) -> alloy_contract::SolCallBuilder<T, &P, modifyAllocationsCall, N> {
18147            self.call_builder(
18148                &modifyAllocationsCall {
18149                    operator,
18150                    params,
18151                },
18152            )
18153        }
18154        ///Creates a new call builder for the [`owner`] function.
18155        pub fn owner(&self) -> alloy_contract::SolCallBuilder<T, &P, ownerCall, N> {
18156            self.call_builder(&ownerCall {})
18157        }
18158        ///Creates a new call builder for the [`pause`] function.
18159        pub fn pause(
18160            &self,
18161            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
18162        ) -> alloy_contract::SolCallBuilder<T, &P, pauseCall, N> {
18163            self.call_builder(&pauseCall { newPausedStatus })
18164        }
18165        ///Creates a new call builder for the [`pauseAll`] function.
18166        pub fn pauseAll(
18167            &self,
18168        ) -> alloy_contract::SolCallBuilder<T, &P, pauseAllCall, N> {
18169            self.call_builder(&pauseAllCall {})
18170        }
18171        ///Creates a new call builder for the [`paused_0`] function.
18172        pub fn paused_0(
18173            &self,
18174            index: u8,
18175        ) -> alloy_contract::SolCallBuilder<T, &P, paused_0Call, N> {
18176            self.call_builder(&paused_0Call { index })
18177        }
18178        ///Creates a new call builder for the [`paused_1`] function.
18179        pub fn paused_1(
18180            &self,
18181        ) -> alloy_contract::SolCallBuilder<T, &P, paused_1Call, N> {
18182            self.call_builder(&paused_1Call {})
18183        }
18184        ///Creates a new call builder for the [`pauserRegistry`] function.
18185        pub fn pauserRegistry(
18186            &self,
18187        ) -> alloy_contract::SolCallBuilder<T, &P, pauserRegistryCall, N> {
18188            self.call_builder(&pauserRegistryCall {})
18189        }
18190        ///Creates a new call builder for the [`permissionController`] function.
18191        pub fn permissionController(
18192            &self,
18193        ) -> alloy_contract::SolCallBuilder<T, &P, permissionControllerCall, N> {
18194            self.call_builder(&permissionControllerCall {})
18195        }
18196        ///Creates a new call builder for the [`registerForOperatorSets`] function.
18197        pub fn registerForOperatorSets(
18198            &self,
18199            operator: alloy::sol_types::private::Address,
18200            params: <IAllocationManagerTypes::RegisterParams as alloy::sol_types::SolType>::RustType,
18201        ) -> alloy_contract::SolCallBuilder<T, &P, registerForOperatorSetsCall, N> {
18202            self.call_builder(
18203                &registerForOperatorSetsCall {
18204                    operator,
18205                    params,
18206                },
18207            )
18208        }
18209        ///Creates a new call builder for the [`removeStrategiesFromOperatorSet`] function.
18210        pub fn removeStrategiesFromOperatorSet(
18211            &self,
18212            avs: alloy::sol_types::private::Address,
18213            operatorSetId: u32,
18214            strategies: alloy::sol_types::private::Vec<
18215                alloy::sol_types::private::Address,
18216            >,
18217        ) -> alloy_contract::SolCallBuilder<
18218            T,
18219            &P,
18220            removeStrategiesFromOperatorSetCall,
18221            N,
18222        > {
18223            self.call_builder(
18224                &removeStrategiesFromOperatorSetCall {
18225                    avs,
18226                    operatorSetId,
18227                    strategies,
18228                },
18229            )
18230        }
18231        ///Creates a new call builder for the [`renounceOwnership`] function.
18232        pub fn renounceOwnership(
18233            &self,
18234        ) -> alloy_contract::SolCallBuilder<T, &P, renounceOwnershipCall, N> {
18235            self.call_builder(&renounceOwnershipCall {})
18236        }
18237        ///Creates a new call builder for the [`setAVSRegistrar`] function.
18238        pub fn setAVSRegistrar(
18239            &self,
18240            avs: alloy::sol_types::private::Address,
18241            registrar: alloy::sol_types::private::Address,
18242        ) -> alloy_contract::SolCallBuilder<T, &P, setAVSRegistrarCall, N> {
18243            self.call_builder(
18244                &setAVSRegistrarCall {
18245                    avs,
18246                    registrar,
18247                },
18248            )
18249        }
18250        ///Creates a new call builder for the [`setAllocationDelay`] function.
18251        pub fn setAllocationDelay(
18252            &self,
18253            operator: alloy::sol_types::private::Address,
18254            delay: u32,
18255        ) -> alloy_contract::SolCallBuilder<T, &P, setAllocationDelayCall, N> {
18256            self.call_builder(
18257                &setAllocationDelayCall {
18258                    operator,
18259                    delay,
18260                },
18261            )
18262        }
18263        ///Creates a new call builder for the [`slashOperator`] function.
18264        pub fn slashOperator(
18265            &self,
18266            avs: alloy::sol_types::private::Address,
18267            params: <IAllocationManagerTypes::SlashingParams as alloy::sol_types::SolType>::RustType,
18268        ) -> alloy_contract::SolCallBuilder<T, &P, slashOperatorCall, N> {
18269            self.call_builder(&slashOperatorCall { avs, params })
18270        }
18271        ///Creates a new call builder for the [`transferOwnership`] function.
18272        pub fn transferOwnership(
18273            &self,
18274            newOwner: alloy::sol_types::private::Address,
18275        ) -> alloy_contract::SolCallBuilder<T, &P, transferOwnershipCall, N> {
18276            self.call_builder(&transferOwnershipCall { newOwner })
18277        }
18278        ///Creates a new call builder for the [`unpause`] function.
18279        pub fn unpause(
18280            &self,
18281            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
18282        ) -> alloy_contract::SolCallBuilder<T, &P, unpauseCall, N> {
18283            self.call_builder(&unpauseCall { newPausedStatus })
18284        }
18285        ///Creates a new call builder for the [`updateAVSMetadataURI`] function.
18286        pub fn updateAVSMetadataURI(
18287            &self,
18288            avs: alloy::sol_types::private::Address,
18289            metadataURI: alloy::sol_types::private::String,
18290        ) -> alloy_contract::SolCallBuilder<T, &P, updateAVSMetadataURICall, N> {
18291            self.call_builder(
18292                &updateAVSMetadataURICall {
18293                    avs,
18294                    metadataURI,
18295                },
18296            )
18297        }
18298        ///Creates a new call builder for the [`version`] function.
18299        pub fn version(&self) -> alloy_contract::SolCallBuilder<T, &P, versionCall, N> {
18300            self.call_builder(&versionCall {})
18301        }
18302    }
18303    /// Event filters.
18304    #[automatically_derived]
18305    impl<
18306        T: alloy_contract::private::Transport + ::core::clone::Clone,
18307        P: alloy_contract::private::Provider<T, N>,
18308        N: alloy_contract::private::Network,
18309    > AllocationManagerInstance<T, P, N> {
18310        /// Creates a new event filter using this contract instance's provider and address.
18311        ///
18312        /// Note that the type can be any event, not just those defined in this contract.
18313        /// Prefer using the other methods for building type-safe event filters.
18314        pub fn event_filter<E: alloy_sol_types::SolEvent>(
18315            &self,
18316        ) -> alloy_contract::Event<T, &P, E, N> {
18317            alloy_contract::Event::new_sol(&self.provider, &self.address)
18318        }
18319        ///Creates a new event filter for the [`AVSMetadataURIUpdated`] event.
18320        pub fn AVSMetadataURIUpdated_filter(
18321            &self,
18322        ) -> alloy_contract::Event<T, &P, AVSMetadataURIUpdated, N> {
18323            self.event_filter::<AVSMetadataURIUpdated>()
18324        }
18325        ///Creates a new event filter for the [`AVSRegistrarSet`] event.
18326        pub fn AVSRegistrarSet_filter(
18327            &self,
18328        ) -> alloy_contract::Event<T, &P, AVSRegistrarSet, N> {
18329            self.event_filter::<AVSRegistrarSet>()
18330        }
18331        ///Creates a new event filter for the [`AllocationDelaySet`] event.
18332        pub fn AllocationDelaySet_filter(
18333            &self,
18334        ) -> alloy_contract::Event<T, &P, AllocationDelaySet, N> {
18335            self.event_filter::<AllocationDelaySet>()
18336        }
18337        ///Creates a new event filter for the [`AllocationUpdated`] event.
18338        pub fn AllocationUpdated_filter(
18339            &self,
18340        ) -> alloy_contract::Event<T, &P, AllocationUpdated, N> {
18341            self.event_filter::<AllocationUpdated>()
18342        }
18343        ///Creates a new event filter for the [`EncumberedMagnitudeUpdated`] event.
18344        pub fn EncumberedMagnitudeUpdated_filter(
18345            &self,
18346        ) -> alloy_contract::Event<T, &P, EncumberedMagnitudeUpdated, N> {
18347            self.event_filter::<EncumberedMagnitudeUpdated>()
18348        }
18349        ///Creates a new event filter for the [`Initialized`] event.
18350        pub fn Initialized_filter(
18351            &self,
18352        ) -> alloy_contract::Event<T, &P, Initialized, N> {
18353            self.event_filter::<Initialized>()
18354        }
18355        ///Creates a new event filter for the [`MaxMagnitudeUpdated`] event.
18356        pub fn MaxMagnitudeUpdated_filter(
18357            &self,
18358        ) -> alloy_contract::Event<T, &P, MaxMagnitudeUpdated, N> {
18359            self.event_filter::<MaxMagnitudeUpdated>()
18360        }
18361        ///Creates a new event filter for the [`OperatorAddedToOperatorSet`] event.
18362        pub fn OperatorAddedToOperatorSet_filter(
18363            &self,
18364        ) -> alloy_contract::Event<T, &P, OperatorAddedToOperatorSet, N> {
18365            self.event_filter::<OperatorAddedToOperatorSet>()
18366        }
18367        ///Creates a new event filter for the [`OperatorRemovedFromOperatorSet`] event.
18368        pub fn OperatorRemovedFromOperatorSet_filter(
18369            &self,
18370        ) -> alloy_contract::Event<T, &P, OperatorRemovedFromOperatorSet, N> {
18371            self.event_filter::<OperatorRemovedFromOperatorSet>()
18372        }
18373        ///Creates a new event filter for the [`OperatorSetCreated`] event.
18374        pub fn OperatorSetCreated_filter(
18375            &self,
18376        ) -> alloy_contract::Event<T, &P, OperatorSetCreated, N> {
18377            self.event_filter::<OperatorSetCreated>()
18378        }
18379        ///Creates a new event filter for the [`OperatorSlashed`] event.
18380        pub fn OperatorSlashed_filter(
18381            &self,
18382        ) -> alloy_contract::Event<T, &P, OperatorSlashed, N> {
18383            self.event_filter::<OperatorSlashed>()
18384        }
18385        ///Creates a new event filter for the [`OwnershipTransferred`] event.
18386        pub fn OwnershipTransferred_filter(
18387            &self,
18388        ) -> alloy_contract::Event<T, &P, OwnershipTransferred, N> {
18389            self.event_filter::<OwnershipTransferred>()
18390        }
18391        ///Creates a new event filter for the [`Paused`] event.
18392        pub fn Paused_filter(&self) -> alloy_contract::Event<T, &P, Paused, N> {
18393            self.event_filter::<Paused>()
18394        }
18395        ///Creates a new event filter for the [`StrategyAddedToOperatorSet`] event.
18396        pub fn StrategyAddedToOperatorSet_filter(
18397            &self,
18398        ) -> alloy_contract::Event<T, &P, StrategyAddedToOperatorSet, N> {
18399            self.event_filter::<StrategyAddedToOperatorSet>()
18400        }
18401        ///Creates a new event filter for the [`StrategyRemovedFromOperatorSet`] event.
18402        pub fn StrategyRemovedFromOperatorSet_filter(
18403            &self,
18404        ) -> alloy_contract::Event<T, &P, StrategyRemovedFromOperatorSet, N> {
18405            self.event_filter::<StrategyRemovedFromOperatorSet>()
18406        }
18407        ///Creates a new event filter for the [`Unpaused`] event.
18408        pub fn Unpaused_filter(&self) -> alloy_contract::Event<T, &P, Unpaused, N> {
18409            self.event_filter::<Unpaused>()
18410        }
18411    }
18412}