eigenlayer_contract_deployer/bindings/core/
allocation_manager.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(serde::Serialize, serde::Deserialize)]
28    #[derive()]
29    /**```solidity
30struct AllocateParams { OperatorSet operatorSet; address[] strategies; uint64[] newMagnitudes; }
31```*/
32    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
33    #[derive(Clone, Hash, Debug, Eq, PartialEq)]
34    pub struct AllocateParams {
35        #[allow(missing_docs)]
36        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
37        #[allow(missing_docs)]
38        pub strategies: alloy::sol_types::private::Vec<
39            alloy::sol_types::private::Address,
40        >,
41        #[allow(missing_docs)]
42        pub newMagnitudes: alloy::sol_types::private::Vec<u64>,
43    }
44    #[allow(
45        non_camel_case_types,
46        non_snake_case,
47        clippy::pub_underscore_fields,
48        clippy::style
49    )]
50    const _: () = {
51        use alloy::sol_types as alloy_sol_types;
52        #[doc(hidden)]
53        type UnderlyingSolTuple<'a> = (
54            OperatorSet,
55            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
56            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
57        );
58        #[doc(hidden)]
59        type UnderlyingRustTuple<'a> = (
60            <OperatorSet as alloy::sol_types::SolType>::RustType,
61            alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
62            alloy::sol_types::private::Vec<u64>,
63        );
64        #[cfg(test)]
65        #[allow(dead_code, unreachable_patterns)]
66        fn _type_assertion(
67            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
68        ) {
69            match _t {
70                alloy_sol_types::private::AssertTypeEq::<
71                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
72                >(_) => {}
73            }
74        }
75        #[automatically_derived]
76        #[doc(hidden)]
77        impl ::core::convert::From<AllocateParams> for UnderlyingRustTuple<'_> {
78            fn from(value: AllocateParams) -> Self {
79                (value.operatorSet, value.strategies, value.newMagnitudes)
80            }
81        }
82        #[automatically_derived]
83        #[doc(hidden)]
84        impl ::core::convert::From<UnderlyingRustTuple<'_>> for AllocateParams {
85            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
86                Self {
87                    operatorSet: tuple.0,
88                    strategies: tuple.1,
89                    newMagnitudes: tuple.2,
90                }
91            }
92        }
93        #[automatically_derived]
94        impl alloy_sol_types::SolValue for AllocateParams {
95            type SolType = Self;
96        }
97        #[automatically_derived]
98        impl alloy_sol_types::private::SolTypeValue<Self> for AllocateParams {
99            #[inline]
100            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
101                (
102                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
103                        &self.operatorSet,
104                    ),
105                    <alloy::sol_types::sol_data::Array<
106                        alloy::sol_types::sol_data::Address,
107                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
108                    <alloy::sol_types::sol_data::Array<
109                        alloy::sol_types::sol_data::Uint<64>,
110                    > as alloy_sol_types::SolType>::tokenize(&self.newMagnitudes),
111                )
112            }
113            #[inline]
114            fn stv_abi_encoded_size(&self) -> usize {
115                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
116                    return size;
117                }
118                let tuple = <UnderlyingRustTuple<
119                    '_,
120                > as ::core::convert::From<Self>>::from(self.clone());
121                <UnderlyingSolTuple<
122                    '_,
123                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
124            }
125            #[inline]
126            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
127                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
128            }
129            #[inline]
130            fn stv_abi_encode_packed_to(
131                &self,
132                out: &mut alloy_sol_types::private::Vec<u8>,
133            ) {
134                let tuple = <UnderlyingRustTuple<
135                    '_,
136                > as ::core::convert::From<Self>>::from(self.clone());
137                <UnderlyingSolTuple<
138                    '_,
139                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
140            }
141            #[inline]
142            fn stv_abi_packed_encoded_size(&self) -> usize {
143                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
144                    return size;
145                }
146                let tuple = <UnderlyingRustTuple<
147                    '_,
148                > as ::core::convert::From<Self>>::from(self.clone());
149                <UnderlyingSolTuple<
150                    '_,
151                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
152            }
153        }
154        #[automatically_derived]
155        impl alloy_sol_types::SolType for AllocateParams {
156            type RustType = Self;
157            type Token<'a> = <UnderlyingSolTuple<
158                'a,
159            > as alloy_sol_types::SolType>::Token<'a>;
160            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
161            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
162                '_,
163            > as alloy_sol_types::SolType>::ENCODED_SIZE;
164            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
165                '_,
166            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
167            #[inline]
168            fn valid_token(token: &Self::Token<'_>) -> bool {
169                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
170            }
171            #[inline]
172            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
173                let tuple = <UnderlyingSolTuple<
174                    '_,
175                > as alloy_sol_types::SolType>::detokenize(token);
176                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
177            }
178        }
179        #[automatically_derived]
180        impl alloy_sol_types::SolStruct for AllocateParams {
181            const NAME: &'static str = "AllocateParams";
182            #[inline]
183            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
184                alloy_sol_types::private::Cow::Borrowed(
185                    "AllocateParams(OperatorSet operatorSet,address[] strategies,uint64[] newMagnitudes)",
186                )
187            }
188            #[inline]
189            fn eip712_components() -> alloy_sol_types::private::Vec<
190                alloy_sol_types::private::Cow<'static, str>,
191            > {
192                let mut components = alloy_sol_types::private::Vec::with_capacity(1);
193                components
194                    .push(
195                        <OperatorSet as alloy_sol_types::SolStruct>::eip712_root_type(),
196                    );
197                components
198                    .extend(
199                        <OperatorSet as alloy_sol_types::SolStruct>::eip712_components(),
200                    );
201                components
202            }
203            #[inline]
204            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
205                [
206                    <OperatorSet as alloy_sol_types::SolType>::eip712_data_word(
207                            &self.operatorSet,
208                        )
209                        .0,
210                    <alloy::sol_types::sol_data::Array<
211                        alloy::sol_types::sol_data::Address,
212                    > as alloy_sol_types::SolType>::eip712_data_word(&self.strategies)
213                        .0,
214                    <alloy::sol_types::sol_data::Array<
215                        alloy::sol_types::sol_data::Uint<64>,
216                    > as alloy_sol_types::SolType>::eip712_data_word(&self.newMagnitudes)
217                        .0,
218                ]
219                    .concat()
220            }
221        }
222        #[automatically_derived]
223        impl alloy_sol_types::EventTopic for AllocateParams {
224            #[inline]
225            fn topic_preimage_length(rust: &Self::RustType) -> usize {
226                0usize
227                    + <OperatorSet as alloy_sol_types::EventTopic>::topic_preimage_length(
228                        &rust.operatorSet,
229                    )
230                    + <alloy::sol_types::sol_data::Array<
231                        alloy::sol_types::sol_data::Address,
232                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
233                        &rust.strategies,
234                    )
235                    + <alloy::sol_types::sol_data::Array<
236                        alloy::sol_types::sol_data::Uint<64>,
237                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
238                        &rust.newMagnitudes,
239                    )
240            }
241            #[inline]
242            fn encode_topic_preimage(
243                rust: &Self::RustType,
244                out: &mut alloy_sol_types::private::Vec<u8>,
245            ) {
246                out.reserve(
247                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
248                );
249                <OperatorSet as alloy_sol_types::EventTopic>::encode_topic_preimage(
250                    &rust.operatorSet,
251                    out,
252                );
253                <alloy::sol_types::sol_data::Array<
254                    alloy::sol_types::sol_data::Address,
255                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
256                    &rust.strategies,
257                    out,
258                );
259                <alloy::sol_types::sol_data::Array<
260                    alloy::sol_types::sol_data::Uint<64>,
261                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
262                    &rust.newMagnitudes,
263                    out,
264                );
265            }
266            #[inline]
267            fn encode_topic(
268                rust: &Self::RustType,
269            ) -> alloy_sol_types::abi::token::WordToken {
270                let mut out = alloy_sol_types::private::Vec::new();
271                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
272                    rust,
273                    &mut out,
274                );
275                alloy_sol_types::abi::token::WordToken(
276                    alloy_sol_types::private::keccak256(out),
277                )
278            }
279        }
280    };
281    #[derive(serde::Serialize, serde::Deserialize)]
282    #[derive(Default, Debug, PartialEq, Eq, Hash)]
283    /**```solidity
284struct Allocation { uint64 currentMagnitude; int128 pendingDiff; uint32 effectBlock; }
285```*/
286    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
287    #[derive(Clone)]
288    pub struct Allocation {
289        #[allow(missing_docs)]
290        pub currentMagnitude: u64,
291        #[allow(missing_docs)]
292        pub pendingDiff: i128,
293        #[allow(missing_docs)]
294        pub effectBlock: u32,
295    }
296    #[allow(
297        non_camel_case_types,
298        non_snake_case,
299        clippy::pub_underscore_fields,
300        clippy::style
301    )]
302    const _: () = {
303        use alloy::sol_types as alloy_sol_types;
304        #[doc(hidden)]
305        type UnderlyingSolTuple<'a> = (
306            alloy::sol_types::sol_data::Uint<64>,
307            alloy::sol_types::sol_data::Int<128>,
308            alloy::sol_types::sol_data::Uint<32>,
309        );
310        #[doc(hidden)]
311        type UnderlyingRustTuple<'a> = (u64, i128, u32);
312        #[cfg(test)]
313        #[allow(dead_code, unreachable_patterns)]
314        fn _type_assertion(
315            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
316        ) {
317            match _t {
318                alloy_sol_types::private::AssertTypeEq::<
319                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
320                >(_) => {}
321            }
322        }
323        #[automatically_derived]
324        #[doc(hidden)]
325        impl ::core::convert::From<Allocation> for UnderlyingRustTuple<'_> {
326            fn from(value: Allocation) -> Self {
327                (value.currentMagnitude, value.pendingDiff, value.effectBlock)
328            }
329        }
330        #[automatically_derived]
331        #[doc(hidden)]
332        impl ::core::convert::From<UnderlyingRustTuple<'_>> for Allocation {
333            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
334                Self {
335                    currentMagnitude: tuple.0,
336                    pendingDiff: tuple.1,
337                    effectBlock: tuple.2,
338                }
339            }
340        }
341        #[automatically_derived]
342        impl alloy_sol_types::SolValue for Allocation {
343            type SolType = Self;
344        }
345        #[automatically_derived]
346        impl alloy_sol_types::private::SolTypeValue<Self> for Allocation {
347            #[inline]
348            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
349                (
350                    <alloy::sol_types::sol_data::Uint<
351                        64,
352                    > as alloy_sol_types::SolType>::tokenize(&self.currentMagnitude),
353                    <alloy::sol_types::sol_data::Int<
354                        128,
355                    > as alloy_sol_types::SolType>::tokenize(&self.pendingDiff),
356                    <alloy::sol_types::sol_data::Uint<
357                        32,
358                    > as alloy_sol_types::SolType>::tokenize(&self.effectBlock),
359                )
360            }
361            #[inline]
362            fn stv_abi_encoded_size(&self) -> usize {
363                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
364                    return size;
365                }
366                let tuple = <UnderlyingRustTuple<
367                    '_,
368                > as ::core::convert::From<Self>>::from(self.clone());
369                <UnderlyingSolTuple<
370                    '_,
371                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
372            }
373            #[inline]
374            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
375                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
376            }
377            #[inline]
378            fn stv_abi_encode_packed_to(
379                &self,
380                out: &mut alloy_sol_types::private::Vec<u8>,
381            ) {
382                let tuple = <UnderlyingRustTuple<
383                    '_,
384                > as ::core::convert::From<Self>>::from(self.clone());
385                <UnderlyingSolTuple<
386                    '_,
387                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
388            }
389            #[inline]
390            fn stv_abi_packed_encoded_size(&self) -> usize {
391                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
392                    return size;
393                }
394                let tuple = <UnderlyingRustTuple<
395                    '_,
396                > as ::core::convert::From<Self>>::from(self.clone());
397                <UnderlyingSolTuple<
398                    '_,
399                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
400            }
401        }
402        #[automatically_derived]
403        impl alloy_sol_types::SolType for Allocation {
404            type RustType = Self;
405            type Token<'a> = <UnderlyingSolTuple<
406                'a,
407            > as alloy_sol_types::SolType>::Token<'a>;
408            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
409            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
410                '_,
411            > as alloy_sol_types::SolType>::ENCODED_SIZE;
412            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
413                '_,
414            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
415            #[inline]
416            fn valid_token(token: &Self::Token<'_>) -> bool {
417                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
418            }
419            #[inline]
420            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
421                let tuple = <UnderlyingSolTuple<
422                    '_,
423                > as alloy_sol_types::SolType>::detokenize(token);
424                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
425            }
426        }
427        #[automatically_derived]
428        impl alloy_sol_types::SolStruct for Allocation {
429            const NAME: &'static str = "Allocation";
430            #[inline]
431            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
432                alloy_sol_types::private::Cow::Borrowed(
433                    "Allocation(uint64 currentMagnitude,int128 pendingDiff,uint32 effectBlock)",
434                )
435            }
436            #[inline]
437            fn eip712_components() -> alloy_sol_types::private::Vec<
438                alloy_sol_types::private::Cow<'static, str>,
439            > {
440                alloy_sol_types::private::Vec::new()
441            }
442            #[inline]
443            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
444                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
445            }
446            #[inline]
447            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
448                [
449                    <alloy::sol_types::sol_data::Uint<
450                        64,
451                    > as alloy_sol_types::SolType>::eip712_data_word(
452                            &self.currentMagnitude,
453                        )
454                        .0,
455                    <alloy::sol_types::sol_data::Int<
456                        128,
457                    > as alloy_sol_types::SolType>::eip712_data_word(&self.pendingDiff)
458                        .0,
459                    <alloy::sol_types::sol_data::Uint<
460                        32,
461                    > as alloy_sol_types::SolType>::eip712_data_word(&self.effectBlock)
462                        .0,
463                ]
464                    .concat()
465            }
466        }
467        #[automatically_derived]
468        impl alloy_sol_types::EventTopic for Allocation {
469            #[inline]
470            fn topic_preimage_length(rust: &Self::RustType) -> usize {
471                0usize
472                    + <alloy::sol_types::sol_data::Uint<
473                        64,
474                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
475                        &rust.currentMagnitude,
476                    )
477                    + <alloy::sol_types::sol_data::Int<
478                        128,
479                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
480                        &rust.pendingDiff,
481                    )
482                    + <alloy::sol_types::sol_data::Uint<
483                        32,
484                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
485                        &rust.effectBlock,
486                    )
487            }
488            #[inline]
489            fn encode_topic_preimage(
490                rust: &Self::RustType,
491                out: &mut alloy_sol_types::private::Vec<u8>,
492            ) {
493                out.reserve(
494                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
495                );
496                <alloy::sol_types::sol_data::Uint<
497                    64,
498                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
499                    &rust.currentMagnitude,
500                    out,
501                );
502                <alloy::sol_types::sol_data::Int<
503                    128,
504                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
505                    &rust.pendingDiff,
506                    out,
507                );
508                <alloy::sol_types::sol_data::Uint<
509                    32,
510                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
511                    &rust.effectBlock,
512                    out,
513                );
514            }
515            #[inline]
516            fn encode_topic(
517                rust: &Self::RustType,
518            ) -> alloy_sol_types::abi::token::WordToken {
519                let mut out = alloy_sol_types::private::Vec::new();
520                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
521                    rust,
522                    &mut out,
523                );
524                alloy_sol_types::abi::token::WordToken(
525                    alloy_sol_types::private::keccak256(out),
526                )
527            }
528        }
529    };
530    #[derive(serde::Serialize, serde::Deserialize)]
531    #[derive(Default, Debug, PartialEq, Eq, Hash)]
532    /**```solidity
533struct CreateSetParams { uint32 operatorSetId; address[] strategies; }
534```*/
535    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
536    #[derive(Clone)]
537    pub struct CreateSetParams {
538        #[allow(missing_docs)]
539        pub operatorSetId: u32,
540        #[allow(missing_docs)]
541        pub strategies: alloy::sol_types::private::Vec<
542            alloy::sol_types::private::Address,
543        >,
544    }
545    #[allow(
546        non_camel_case_types,
547        non_snake_case,
548        clippy::pub_underscore_fields,
549        clippy::style
550    )]
551    const _: () = {
552        use alloy::sol_types as alloy_sol_types;
553        #[doc(hidden)]
554        type UnderlyingSolTuple<'a> = (
555            alloy::sol_types::sol_data::Uint<32>,
556            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
557        );
558        #[doc(hidden)]
559        type UnderlyingRustTuple<'a> = (
560            u32,
561            alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
562        );
563        #[cfg(test)]
564        #[allow(dead_code, unreachable_patterns)]
565        fn _type_assertion(
566            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
567        ) {
568            match _t {
569                alloy_sol_types::private::AssertTypeEq::<
570                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
571                >(_) => {}
572            }
573        }
574        #[automatically_derived]
575        #[doc(hidden)]
576        impl ::core::convert::From<CreateSetParams> for UnderlyingRustTuple<'_> {
577            fn from(value: CreateSetParams) -> Self {
578                (value.operatorSetId, value.strategies)
579            }
580        }
581        #[automatically_derived]
582        #[doc(hidden)]
583        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CreateSetParams {
584            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
585                Self {
586                    operatorSetId: tuple.0,
587                    strategies: tuple.1,
588                }
589            }
590        }
591        #[automatically_derived]
592        impl alloy_sol_types::SolValue for CreateSetParams {
593            type SolType = Self;
594        }
595        #[automatically_derived]
596        impl alloy_sol_types::private::SolTypeValue<Self> for CreateSetParams {
597            #[inline]
598            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
599                (
600                    <alloy::sol_types::sol_data::Uint<
601                        32,
602                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetId),
603                    <alloy::sol_types::sol_data::Array<
604                        alloy::sol_types::sol_data::Address,
605                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
606                )
607            }
608            #[inline]
609            fn stv_abi_encoded_size(&self) -> usize {
610                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
611                    return size;
612                }
613                let tuple = <UnderlyingRustTuple<
614                    '_,
615                > as ::core::convert::From<Self>>::from(self.clone());
616                <UnderlyingSolTuple<
617                    '_,
618                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
619            }
620            #[inline]
621            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
622                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
623            }
624            #[inline]
625            fn stv_abi_encode_packed_to(
626                &self,
627                out: &mut alloy_sol_types::private::Vec<u8>,
628            ) {
629                let tuple = <UnderlyingRustTuple<
630                    '_,
631                > as ::core::convert::From<Self>>::from(self.clone());
632                <UnderlyingSolTuple<
633                    '_,
634                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
635            }
636            #[inline]
637            fn stv_abi_packed_encoded_size(&self) -> usize {
638                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
639                    return size;
640                }
641                let tuple = <UnderlyingRustTuple<
642                    '_,
643                > as ::core::convert::From<Self>>::from(self.clone());
644                <UnderlyingSolTuple<
645                    '_,
646                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
647            }
648        }
649        #[automatically_derived]
650        impl alloy_sol_types::SolType for CreateSetParams {
651            type RustType = Self;
652            type Token<'a> = <UnderlyingSolTuple<
653                'a,
654            > as alloy_sol_types::SolType>::Token<'a>;
655            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
656            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
657                '_,
658            > as alloy_sol_types::SolType>::ENCODED_SIZE;
659            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
660                '_,
661            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
662            #[inline]
663            fn valid_token(token: &Self::Token<'_>) -> bool {
664                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
665            }
666            #[inline]
667            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
668                let tuple = <UnderlyingSolTuple<
669                    '_,
670                > as alloy_sol_types::SolType>::detokenize(token);
671                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
672            }
673        }
674        #[automatically_derived]
675        impl alloy_sol_types::SolStruct for CreateSetParams {
676            const NAME: &'static str = "CreateSetParams";
677            #[inline]
678            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
679                alloy_sol_types::private::Cow::Borrowed(
680                    "CreateSetParams(uint32 operatorSetId,address[] strategies)",
681                )
682            }
683            #[inline]
684            fn eip712_components() -> alloy_sol_types::private::Vec<
685                alloy_sol_types::private::Cow<'static, str>,
686            > {
687                alloy_sol_types::private::Vec::new()
688            }
689            #[inline]
690            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
691                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
692            }
693            #[inline]
694            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
695                [
696                    <alloy::sol_types::sol_data::Uint<
697                        32,
698                    > as alloy_sol_types::SolType>::eip712_data_word(&self.operatorSetId)
699                        .0,
700                    <alloy::sol_types::sol_data::Array<
701                        alloy::sol_types::sol_data::Address,
702                    > as alloy_sol_types::SolType>::eip712_data_word(&self.strategies)
703                        .0,
704                ]
705                    .concat()
706            }
707        }
708        #[automatically_derived]
709        impl alloy_sol_types::EventTopic for CreateSetParams {
710            #[inline]
711            fn topic_preimage_length(rust: &Self::RustType) -> usize {
712                0usize
713                    + <alloy::sol_types::sol_data::Uint<
714                        32,
715                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
716                        &rust.operatorSetId,
717                    )
718                    + <alloy::sol_types::sol_data::Array<
719                        alloy::sol_types::sol_data::Address,
720                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
721                        &rust.strategies,
722                    )
723            }
724            #[inline]
725            fn encode_topic_preimage(
726                rust: &Self::RustType,
727                out: &mut alloy_sol_types::private::Vec<u8>,
728            ) {
729                out.reserve(
730                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
731                );
732                <alloy::sol_types::sol_data::Uint<
733                    32,
734                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
735                    &rust.operatorSetId,
736                    out,
737                );
738                <alloy::sol_types::sol_data::Array<
739                    alloy::sol_types::sol_data::Address,
740                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
741                    &rust.strategies,
742                    out,
743                );
744            }
745            #[inline]
746            fn encode_topic(
747                rust: &Self::RustType,
748            ) -> alloy_sol_types::abi::token::WordToken {
749                let mut out = alloy_sol_types::private::Vec::new();
750                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
751                    rust,
752                    &mut out,
753                );
754                alloy_sol_types::abi::token::WordToken(
755                    alloy_sol_types::private::keccak256(out),
756                )
757            }
758        }
759    };
760    #[derive(serde::Serialize, serde::Deserialize)]
761    #[derive(Default, Debug, PartialEq, Eq, Hash)]
762    /**```solidity
763struct DeregisterParams { address operator; address avs; uint32[] operatorSetIds; }
764```*/
765    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
766    #[derive(Clone)]
767    pub struct DeregisterParams {
768        #[allow(missing_docs)]
769        pub operator: alloy::sol_types::private::Address,
770        #[allow(missing_docs)]
771        pub avs: alloy::sol_types::private::Address,
772        #[allow(missing_docs)]
773        pub operatorSetIds: alloy::sol_types::private::Vec<u32>,
774    }
775    #[allow(
776        non_camel_case_types,
777        non_snake_case,
778        clippy::pub_underscore_fields,
779        clippy::style
780    )]
781    const _: () = {
782        use alloy::sol_types as alloy_sol_types;
783        #[doc(hidden)]
784        type UnderlyingSolTuple<'a> = (
785            alloy::sol_types::sol_data::Address,
786            alloy::sol_types::sol_data::Address,
787            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
788        );
789        #[doc(hidden)]
790        type UnderlyingRustTuple<'a> = (
791            alloy::sol_types::private::Address,
792            alloy::sol_types::private::Address,
793            alloy::sol_types::private::Vec<u32>,
794        );
795        #[cfg(test)]
796        #[allow(dead_code, unreachable_patterns)]
797        fn _type_assertion(
798            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
799        ) {
800            match _t {
801                alloy_sol_types::private::AssertTypeEq::<
802                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
803                >(_) => {}
804            }
805        }
806        #[automatically_derived]
807        #[doc(hidden)]
808        impl ::core::convert::From<DeregisterParams> for UnderlyingRustTuple<'_> {
809            fn from(value: DeregisterParams) -> Self {
810                (value.operator, value.avs, value.operatorSetIds)
811            }
812        }
813        #[automatically_derived]
814        #[doc(hidden)]
815        impl ::core::convert::From<UnderlyingRustTuple<'_>> for DeregisterParams {
816            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
817                Self {
818                    operator: tuple.0,
819                    avs: tuple.1,
820                    operatorSetIds: tuple.2,
821                }
822            }
823        }
824        #[automatically_derived]
825        impl alloy_sol_types::SolValue for DeregisterParams {
826            type SolType = Self;
827        }
828        #[automatically_derived]
829        impl alloy_sol_types::private::SolTypeValue<Self> for DeregisterParams {
830            #[inline]
831            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
832                (
833                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
834                        &self.operator,
835                    ),
836                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
837                        &self.avs,
838                    ),
839                    <alloy::sol_types::sol_data::Array<
840                        alloy::sol_types::sol_data::Uint<32>,
841                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetIds),
842                )
843            }
844            #[inline]
845            fn stv_abi_encoded_size(&self) -> usize {
846                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
847                    return size;
848                }
849                let tuple = <UnderlyingRustTuple<
850                    '_,
851                > as ::core::convert::From<Self>>::from(self.clone());
852                <UnderlyingSolTuple<
853                    '_,
854                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
855            }
856            #[inline]
857            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
858                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
859            }
860            #[inline]
861            fn stv_abi_encode_packed_to(
862                &self,
863                out: &mut alloy_sol_types::private::Vec<u8>,
864            ) {
865                let tuple = <UnderlyingRustTuple<
866                    '_,
867                > as ::core::convert::From<Self>>::from(self.clone());
868                <UnderlyingSolTuple<
869                    '_,
870                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
871            }
872            #[inline]
873            fn stv_abi_packed_encoded_size(&self) -> usize {
874                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
875                    return size;
876                }
877                let tuple = <UnderlyingRustTuple<
878                    '_,
879                > as ::core::convert::From<Self>>::from(self.clone());
880                <UnderlyingSolTuple<
881                    '_,
882                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
883            }
884        }
885        #[automatically_derived]
886        impl alloy_sol_types::SolType for DeregisterParams {
887            type RustType = Self;
888            type Token<'a> = <UnderlyingSolTuple<
889                'a,
890            > as alloy_sol_types::SolType>::Token<'a>;
891            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
892            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
893                '_,
894            > as alloy_sol_types::SolType>::ENCODED_SIZE;
895            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
896                '_,
897            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
898            #[inline]
899            fn valid_token(token: &Self::Token<'_>) -> bool {
900                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
901            }
902            #[inline]
903            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
904                let tuple = <UnderlyingSolTuple<
905                    '_,
906                > as alloy_sol_types::SolType>::detokenize(token);
907                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
908            }
909        }
910        #[automatically_derived]
911        impl alloy_sol_types::SolStruct for DeregisterParams {
912            const NAME: &'static str = "DeregisterParams";
913            #[inline]
914            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
915                alloy_sol_types::private::Cow::Borrowed(
916                    "DeregisterParams(address operator,address avs,uint32[] operatorSetIds)",
917                )
918            }
919            #[inline]
920            fn eip712_components() -> alloy_sol_types::private::Vec<
921                alloy_sol_types::private::Cow<'static, str>,
922            > {
923                alloy_sol_types::private::Vec::new()
924            }
925            #[inline]
926            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
927                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
928            }
929            #[inline]
930            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
931                [
932                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
933                            &self.operator,
934                        )
935                        .0,
936                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
937                            &self.avs,
938                        )
939                        .0,
940                    <alloy::sol_types::sol_data::Array<
941                        alloy::sol_types::sol_data::Uint<32>,
942                    > as alloy_sol_types::SolType>::eip712_data_word(
943                            &self.operatorSetIds,
944                        )
945                        .0,
946                ]
947                    .concat()
948            }
949        }
950        #[automatically_derived]
951        impl alloy_sol_types::EventTopic for DeregisterParams {
952            #[inline]
953            fn topic_preimage_length(rust: &Self::RustType) -> usize {
954                0usize
955                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
956                        &rust.operator,
957                    )
958                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
959                        &rust.avs,
960                    )
961                    + <alloy::sol_types::sol_data::Array<
962                        alloy::sol_types::sol_data::Uint<32>,
963                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
964                        &rust.operatorSetIds,
965                    )
966            }
967            #[inline]
968            fn encode_topic_preimage(
969                rust: &Self::RustType,
970                out: &mut alloy_sol_types::private::Vec<u8>,
971            ) {
972                out.reserve(
973                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
974                );
975                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
976                    &rust.operator,
977                    out,
978                );
979                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
980                    &rust.avs,
981                    out,
982                );
983                <alloy::sol_types::sol_data::Array<
984                    alloy::sol_types::sol_data::Uint<32>,
985                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
986                    &rust.operatorSetIds,
987                    out,
988                );
989            }
990            #[inline]
991            fn encode_topic(
992                rust: &Self::RustType,
993            ) -> alloy_sol_types::abi::token::WordToken {
994                let mut out = alloy_sol_types::private::Vec::new();
995                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
996                    rust,
997                    &mut out,
998                );
999                alloy_sol_types::abi::token::WordToken(
1000                    alloy_sol_types::private::keccak256(out),
1001                )
1002            }
1003        }
1004    };
1005    #[derive(serde::Serialize, serde::Deserialize)]
1006    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1007    /**```solidity
1008struct RegisterParams { address avs; uint32[] operatorSetIds; bytes data; }
1009```*/
1010    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1011    #[derive(Clone)]
1012    pub struct RegisterParams {
1013        #[allow(missing_docs)]
1014        pub avs: alloy::sol_types::private::Address,
1015        #[allow(missing_docs)]
1016        pub operatorSetIds: alloy::sol_types::private::Vec<u32>,
1017        #[allow(missing_docs)]
1018        pub data: alloy::sol_types::private::Bytes,
1019    }
1020    #[allow(
1021        non_camel_case_types,
1022        non_snake_case,
1023        clippy::pub_underscore_fields,
1024        clippy::style
1025    )]
1026    const _: () = {
1027        use alloy::sol_types as alloy_sol_types;
1028        #[doc(hidden)]
1029        type UnderlyingSolTuple<'a> = (
1030            alloy::sol_types::sol_data::Address,
1031            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
1032            alloy::sol_types::sol_data::Bytes,
1033        );
1034        #[doc(hidden)]
1035        type UnderlyingRustTuple<'a> = (
1036            alloy::sol_types::private::Address,
1037            alloy::sol_types::private::Vec<u32>,
1038            alloy::sol_types::private::Bytes,
1039        );
1040        #[cfg(test)]
1041        #[allow(dead_code, unreachable_patterns)]
1042        fn _type_assertion(
1043            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1044        ) {
1045            match _t {
1046                alloy_sol_types::private::AssertTypeEq::<
1047                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1048                >(_) => {}
1049            }
1050        }
1051        #[automatically_derived]
1052        #[doc(hidden)]
1053        impl ::core::convert::From<RegisterParams> for UnderlyingRustTuple<'_> {
1054            fn from(value: RegisterParams) -> Self {
1055                (value.avs, value.operatorSetIds, value.data)
1056            }
1057        }
1058        #[automatically_derived]
1059        #[doc(hidden)]
1060        impl ::core::convert::From<UnderlyingRustTuple<'_>> for RegisterParams {
1061            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1062                Self {
1063                    avs: tuple.0,
1064                    operatorSetIds: tuple.1,
1065                    data: tuple.2,
1066                }
1067            }
1068        }
1069        #[automatically_derived]
1070        impl alloy_sol_types::SolValue for RegisterParams {
1071            type SolType = Self;
1072        }
1073        #[automatically_derived]
1074        impl alloy_sol_types::private::SolTypeValue<Self> for RegisterParams {
1075            #[inline]
1076            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1077                (
1078                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1079                        &self.avs,
1080                    ),
1081                    <alloy::sol_types::sol_data::Array<
1082                        alloy::sol_types::sol_data::Uint<32>,
1083                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetIds),
1084                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
1085                        &self.data,
1086                    ),
1087                )
1088            }
1089            #[inline]
1090            fn stv_abi_encoded_size(&self) -> usize {
1091                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1092                    return size;
1093                }
1094                let tuple = <UnderlyingRustTuple<
1095                    '_,
1096                > as ::core::convert::From<Self>>::from(self.clone());
1097                <UnderlyingSolTuple<
1098                    '_,
1099                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1100            }
1101            #[inline]
1102            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1103                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1104            }
1105            #[inline]
1106            fn stv_abi_encode_packed_to(
1107                &self,
1108                out: &mut alloy_sol_types::private::Vec<u8>,
1109            ) {
1110                let tuple = <UnderlyingRustTuple<
1111                    '_,
1112                > as ::core::convert::From<Self>>::from(self.clone());
1113                <UnderlyingSolTuple<
1114                    '_,
1115                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1116            }
1117            #[inline]
1118            fn stv_abi_packed_encoded_size(&self) -> usize {
1119                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1120                    return size;
1121                }
1122                let tuple = <UnderlyingRustTuple<
1123                    '_,
1124                > as ::core::convert::From<Self>>::from(self.clone());
1125                <UnderlyingSolTuple<
1126                    '_,
1127                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1128            }
1129        }
1130        #[automatically_derived]
1131        impl alloy_sol_types::SolType for RegisterParams {
1132            type RustType = Self;
1133            type Token<'a> = <UnderlyingSolTuple<
1134                'a,
1135            > as alloy_sol_types::SolType>::Token<'a>;
1136            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1137            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1138                '_,
1139            > as alloy_sol_types::SolType>::ENCODED_SIZE;
1140            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1141                '_,
1142            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1143            #[inline]
1144            fn valid_token(token: &Self::Token<'_>) -> bool {
1145                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1146            }
1147            #[inline]
1148            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1149                let tuple = <UnderlyingSolTuple<
1150                    '_,
1151                > as alloy_sol_types::SolType>::detokenize(token);
1152                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1153            }
1154        }
1155        #[automatically_derived]
1156        impl alloy_sol_types::SolStruct for RegisterParams {
1157            const NAME: &'static str = "RegisterParams";
1158            #[inline]
1159            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1160                alloy_sol_types::private::Cow::Borrowed(
1161                    "RegisterParams(address avs,uint32[] operatorSetIds,bytes data)",
1162                )
1163            }
1164            #[inline]
1165            fn eip712_components() -> alloy_sol_types::private::Vec<
1166                alloy_sol_types::private::Cow<'static, str>,
1167            > {
1168                alloy_sol_types::private::Vec::new()
1169            }
1170            #[inline]
1171            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
1172                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
1173            }
1174            #[inline]
1175            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1176                [
1177                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
1178                            &self.avs,
1179                        )
1180                        .0,
1181                    <alloy::sol_types::sol_data::Array<
1182                        alloy::sol_types::sol_data::Uint<32>,
1183                    > as alloy_sol_types::SolType>::eip712_data_word(
1184                            &self.operatorSetIds,
1185                        )
1186                        .0,
1187                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::eip712_data_word(
1188                            &self.data,
1189                        )
1190                        .0,
1191                ]
1192                    .concat()
1193            }
1194        }
1195        #[automatically_derived]
1196        impl alloy_sol_types::EventTopic for RegisterParams {
1197            #[inline]
1198            fn topic_preimage_length(rust: &Self::RustType) -> usize {
1199                0usize
1200                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
1201                        &rust.avs,
1202                    )
1203                    + <alloy::sol_types::sol_data::Array<
1204                        alloy::sol_types::sol_data::Uint<32>,
1205                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1206                        &rust.operatorSetIds,
1207                    )
1208                    + <alloy::sol_types::sol_data::Bytes as alloy_sol_types::EventTopic>::topic_preimage_length(
1209                        &rust.data,
1210                    )
1211            }
1212            #[inline]
1213            fn encode_topic_preimage(
1214                rust: &Self::RustType,
1215                out: &mut alloy_sol_types::private::Vec<u8>,
1216            ) {
1217                out.reserve(
1218                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1219                );
1220                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
1221                    &rust.avs,
1222                    out,
1223                );
1224                <alloy::sol_types::sol_data::Array<
1225                    alloy::sol_types::sol_data::Uint<32>,
1226                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1227                    &rust.operatorSetIds,
1228                    out,
1229                );
1230                <alloy::sol_types::sol_data::Bytes as alloy_sol_types::EventTopic>::encode_topic_preimage(
1231                    &rust.data,
1232                    out,
1233                );
1234            }
1235            #[inline]
1236            fn encode_topic(
1237                rust: &Self::RustType,
1238            ) -> alloy_sol_types::abi::token::WordToken {
1239                let mut out = alloy_sol_types::private::Vec::new();
1240                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1241                    rust,
1242                    &mut out,
1243                );
1244                alloy_sol_types::abi::token::WordToken(
1245                    alloy_sol_types::private::keccak256(out),
1246                )
1247            }
1248        }
1249    };
1250    #[derive(serde::Serialize, serde::Deserialize)]
1251    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1252    /**```solidity
1253struct SlashingParams { address operator; uint32 operatorSetId; address[] strategies; uint256[] wadsToSlash; string description; }
1254```*/
1255    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1256    #[derive(Clone)]
1257    pub struct SlashingParams {
1258        #[allow(missing_docs)]
1259        pub operator: alloy::sol_types::private::Address,
1260        #[allow(missing_docs)]
1261        pub operatorSetId: u32,
1262        #[allow(missing_docs)]
1263        pub strategies: alloy::sol_types::private::Vec<
1264            alloy::sol_types::private::Address,
1265        >,
1266        #[allow(missing_docs)]
1267        pub wadsToSlash: alloy::sol_types::private::Vec<
1268            alloy::sol_types::private::primitives::aliases::U256,
1269        >,
1270        #[allow(missing_docs)]
1271        pub description: alloy::sol_types::private::String,
1272    }
1273    #[allow(
1274        non_camel_case_types,
1275        non_snake_case,
1276        clippy::pub_underscore_fields,
1277        clippy::style
1278    )]
1279    const _: () = {
1280        use alloy::sol_types as alloy_sol_types;
1281        #[doc(hidden)]
1282        type UnderlyingSolTuple<'a> = (
1283            alloy::sol_types::sol_data::Address,
1284            alloy::sol_types::sol_data::Uint<32>,
1285            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
1286            alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
1287            alloy::sol_types::sol_data::String,
1288        );
1289        #[doc(hidden)]
1290        type UnderlyingRustTuple<'a> = (
1291            alloy::sol_types::private::Address,
1292            u32,
1293            alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
1294            alloy::sol_types::private::Vec<
1295                alloy::sol_types::private::primitives::aliases::U256,
1296            >,
1297            alloy::sol_types::private::String,
1298        );
1299        #[cfg(test)]
1300        #[allow(dead_code, unreachable_patterns)]
1301        fn _type_assertion(
1302            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1303        ) {
1304            match _t {
1305                alloy_sol_types::private::AssertTypeEq::<
1306                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1307                >(_) => {}
1308            }
1309        }
1310        #[automatically_derived]
1311        #[doc(hidden)]
1312        impl ::core::convert::From<SlashingParams> for UnderlyingRustTuple<'_> {
1313            fn from(value: SlashingParams) -> Self {
1314                (
1315                    value.operator,
1316                    value.operatorSetId,
1317                    value.strategies,
1318                    value.wadsToSlash,
1319                    value.description,
1320                )
1321            }
1322        }
1323        #[automatically_derived]
1324        #[doc(hidden)]
1325        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SlashingParams {
1326            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1327                Self {
1328                    operator: tuple.0,
1329                    operatorSetId: tuple.1,
1330                    strategies: tuple.2,
1331                    wadsToSlash: tuple.3,
1332                    description: tuple.4,
1333                }
1334            }
1335        }
1336        #[automatically_derived]
1337        impl alloy_sol_types::SolValue for SlashingParams {
1338            type SolType = Self;
1339        }
1340        #[automatically_derived]
1341        impl alloy_sol_types::private::SolTypeValue<Self> for SlashingParams {
1342            #[inline]
1343            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1344                (
1345                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1346                        &self.operator,
1347                    ),
1348                    <alloy::sol_types::sol_data::Uint<
1349                        32,
1350                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetId),
1351                    <alloy::sol_types::sol_data::Array<
1352                        alloy::sol_types::sol_data::Address,
1353                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
1354                    <alloy::sol_types::sol_data::Array<
1355                        alloy::sol_types::sol_data::Uint<256>,
1356                    > as alloy_sol_types::SolType>::tokenize(&self.wadsToSlash),
1357                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
1358                        &self.description,
1359                    ),
1360                )
1361            }
1362            #[inline]
1363            fn stv_abi_encoded_size(&self) -> usize {
1364                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1365                    return size;
1366                }
1367                let tuple = <UnderlyingRustTuple<
1368                    '_,
1369                > as ::core::convert::From<Self>>::from(self.clone());
1370                <UnderlyingSolTuple<
1371                    '_,
1372                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1373            }
1374            #[inline]
1375            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1376                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1377            }
1378            #[inline]
1379            fn stv_abi_encode_packed_to(
1380                &self,
1381                out: &mut alloy_sol_types::private::Vec<u8>,
1382            ) {
1383                let tuple = <UnderlyingRustTuple<
1384                    '_,
1385                > as ::core::convert::From<Self>>::from(self.clone());
1386                <UnderlyingSolTuple<
1387                    '_,
1388                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1389            }
1390            #[inline]
1391            fn stv_abi_packed_encoded_size(&self) -> usize {
1392                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1393                    return size;
1394                }
1395                let tuple = <UnderlyingRustTuple<
1396                    '_,
1397                > as ::core::convert::From<Self>>::from(self.clone());
1398                <UnderlyingSolTuple<
1399                    '_,
1400                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1401            }
1402        }
1403        #[automatically_derived]
1404        impl alloy_sol_types::SolType for SlashingParams {
1405            type RustType = Self;
1406            type Token<'a> = <UnderlyingSolTuple<
1407                'a,
1408            > as alloy_sol_types::SolType>::Token<'a>;
1409            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1410            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1411                '_,
1412            > as alloy_sol_types::SolType>::ENCODED_SIZE;
1413            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1414                '_,
1415            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1416            #[inline]
1417            fn valid_token(token: &Self::Token<'_>) -> bool {
1418                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1419            }
1420            #[inline]
1421            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1422                let tuple = <UnderlyingSolTuple<
1423                    '_,
1424                > as alloy_sol_types::SolType>::detokenize(token);
1425                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1426            }
1427        }
1428        #[automatically_derived]
1429        impl alloy_sol_types::SolStruct for SlashingParams {
1430            const NAME: &'static str = "SlashingParams";
1431            #[inline]
1432            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1433                alloy_sol_types::private::Cow::Borrowed(
1434                    "SlashingParams(address operator,uint32 operatorSetId,address[] strategies,uint256[] wadsToSlash,string description)",
1435                )
1436            }
1437            #[inline]
1438            fn eip712_components() -> alloy_sol_types::private::Vec<
1439                alloy_sol_types::private::Cow<'static, str>,
1440            > {
1441                alloy_sol_types::private::Vec::new()
1442            }
1443            #[inline]
1444            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
1445                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
1446            }
1447            #[inline]
1448            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1449                [
1450                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
1451                            &self.operator,
1452                        )
1453                        .0,
1454                    <alloy::sol_types::sol_data::Uint<
1455                        32,
1456                    > as alloy_sol_types::SolType>::eip712_data_word(&self.operatorSetId)
1457                        .0,
1458                    <alloy::sol_types::sol_data::Array<
1459                        alloy::sol_types::sol_data::Address,
1460                    > as alloy_sol_types::SolType>::eip712_data_word(&self.strategies)
1461                        .0,
1462                    <alloy::sol_types::sol_data::Array<
1463                        alloy::sol_types::sol_data::Uint<256>,
1464                    > as alloy_sol_types::SolType>::eip712_data_word(&self.wadsToSlash)
1465                        .0,
1466                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::eip712_data_word(
1467                            &self.description,
1468                        )
1469                        .0,
1470                ]
1471                    .concat()
1472            }
1473        }
1474        #[automatically_derived]
1475        impl alloy_sol_types::EventTopic for SlashingParams {
1476            #[inline]
1477            fn topic_preimage_length(rust: &Self::RustType) -> usize {
1478                0usize
1479                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
1480                        &rust.operator,
1481                    )
1482                    + <alloy::sol_types::sol_data::Uint<
1483                        32,
1484                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1485                        &rust.operatorSetId,
1486                    )
1487                    + <alloy::sol_types::sol_data::Array<
1488                        alloy::sol_types::sol_data::Address,
1489                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1490                        &rust.strategies,
1491                    )
1492                    + <alloy::sol_types::sol_data::Array<
1493                        alloy::sol_types::sol_data::Uint<256>,
1494                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1495                        &rust.wadsToSlash,
1496                    )
1497                    + <alloy::sol_types::sol_data::String as alloy_sol_types::EventTopic>::topic_preimage_length(
1498                        &rust.description,
1499                    )
1500            }
1501            #[inline]
1502            fn encode_topic_preimage(
1503                rust: &Self::RustType,
1504                out: &mut alloy_sol_types::private::Vec<u8>,
1505            ) {
1506                out.reserve(
1507                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1508                );
1509                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
1510                    &rust.operator,
1511                    out,
1512                );
1513                <alloy::sol_types::sol_data::Uint<
1514                    32,
1515                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1516                    &rust.operatorSetId,
1517                    out,
1518                );
1519                <alloy::sol_types::sol_data::Array<
1520                    alloy::sol_types::sol_data::Address,
1521                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1522                    &rust.strategies,
1523                    out,
1524                );
1525                <alloy::sol_types::sol_data::Array<
1526                    alloy::sol_types::sol_data::Uint<256>,
1527                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1528                    &rust.wadsToSlash,
1529                    out,
1530                );
1531                <alloy::sol_types::sol_data::String as alloy_sol_types::EventTopic>::encode_topic_preimage(
1532                    &rust.description,
1533                    out,
1534                );
1535            }
1536            #[inline]
1537            fn encode_topic(
1538                rust: &Self::RustType,
1539            ) -> alloy_sol_types::abi::token::WordToken {
1540                let mut out = alloy_sol_types::private::Vec::new();
1541                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1542                    rust,
1543                    &mut out,
1544                );
1545                alloy_sol_types::abi::token::WordToken(
1546                    alloy_sol_types::private::keccak256(out),
1547                )
1548            }
1549        }
1550    };
1551    use alloy::contract as alloy_contract;
1552    /**Creates a new wrapper around an on-chain [`IAllocationManagerTypes`](self) contract instance.
1553
1554See the [wrapper's documentation](`IAllocationManagerTypesInstance`) for more details.*/
1555    #[inline]
1556    pub const fn new<
1557        P: alloy_contract::private::Provider<N>,
1558        N: alloy_contract::private::Network,
1559    >(
1560        address: alloy_sol_types::private::Address,
1561        provider: P,
1562    ) -> IAllocationManagerTypesInstance<P, N> {
1563        IAllocationManagerTypesInstance::<P, N>::new(address, provider)
1564    }
1565    /**A [`IAllocationManagerTypes`](self) instance.
1566
1567Contains type-safe methods for interacting with an on-chain instance of the
1568[`IAllocationManagerTypes`](self) contract located at a given `address`, using a given
1569provider `P`.
1570
1571If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
1572documentation on how to provide it), the `deploy` and `deploy_builder` methods can
1573be used to deploy a new instance of the contract.
1574
1575See the [module-level documentation](self) for all the available methods.*/
1576    #[derive(Clone)]
1577    pub struct IAllocationManagerTypesInstance<
1578        P,
1579        N = alloy_contract::private::Ethereum,
1580    > {
1581        address: alloy_sol_types::private::Address,
1582        provider: P,
1583        _network: ::core::marker::PhantomData<N>,
1584    }
1585    #[automatically_derived]
1586    impl<P, N> ::core::fmt::Debug for IAllocationManagerTypesInstance<P, N> {
1587        #[inline]
1588        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1589            f.debug_tuple("IAllocationManagerTypesInstance")
1590                .field(&self.address)
1591                .finish()
1592        }
1593    }
1594    /// Instantiation and getters/setters.
1595    #[automatically_derived]
1596    impl<
1597        P: alloy_contract::private::Provider<N>,
1598        N: alloy_contract::private::Network,
1599    > IAllocationManagerTypesInstance<P, N> {
1600        /**Creates a new wrapper around an on-chain [`IAllocationManagerTypes`](self) contract instance.
1601
1602See the [wrapper's documentation](`IAllocationManagerTypesInstance`) for more details.*/
1603        #[inline]
1604        pub const fn new(
1605            address: alloy_sol_types::private::Address,
1606            provider: P,
1607        ) -> Self {
1608            Self {
1609                address,
1610                provider,
1611                _network: ::core::marker::PhantomData,
1612            }
1613        }
1614        /// Returns a reference to the address.
1615        #[inline]
1616        pub const fn address(&self) -> &alloy_sol_types::private::Address {
1617            &self.address
1618        }
1619        /// Sets the address.
1620        #[inline]
1621        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1622            self.address = address;
1623        }
1624        /// Sets the address and returns `self`.
1625        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1626            self.set_address(address);
1627            self
1628        }
1629        /// Returns a reference to the provider.
1630        #[inline]
1631        pub const fn provider(&self) -> &P {
1632            &self.provider
1633        }
1634    }
1635    impl<P: ::core::clone::Clone, N> IAllocationManagerTypesInstance<&P, N> {
1636        /// Clones the provider and returns a new instance with the cloned provider.
1637        #[inline]
1638        pub fn with_cloned_provider(self) -> IAllocationManagerTypesInstance<P, N> {
1639            IAllocationManagerTypesInstance {
1640                address: self.address,
1641                provider: ::core::clone::Clone::clone(&self.provider),
1642                _network: ::core::marker::PhantomData,
1643            }
1644        }
1645    }
1646    /// Function calls.
1647    #[automatically_derived]
1648    impl<
1649        P: alloy_contract::private::Provider<N>,
1650        N: alloy_contract::private::Network,
1651    > IAllocationManagerTypesInstance<P, N> {
1652        /// Creates a new call builder using this contract instance's provider and address.
1653        ///
1654        /// Note that the call can be any function call, not just those defined in this
1655        /// contract. Prefer using the other methods for building type-safe contract calls.
1656        pub fn call_builder<C: alloy_sol_types::SolCall>(
1657            &self,
1658            call: &C,
1659        ) -> alloy_contract::SolCallBuilder<&P, C, N> {
1660            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1661        }
1662    }
1663    /// Event filters.
1664    #[automatically_derived]
1665    impl<
1666        P: alloy_contract::private::Provider<N>,
1667        N: alloy_contract::private::Network,
1668    > IAllocationManagerTypesInstance<P, N> {
1669        /// Creates a new event filter using this contract instance's provider and address.
1670        ///
1671        /// Note that the type can be any event, not just those defined in this contract.
1672        /// Prefer using the other methods for building type-safe event filters.
1673        pub fn event_filter<E: alloy_sol_types::SolEvent>(
1674            &self,
1675        ) -> alloy_contract::Event<&P, E, N> {
1676            alloy_contract::Event::new_sol(&self.provider, &self.address)
1677        }
1678    }
1679}
1680/**
1681
1682Generated by the following Solidity interface...
1683```solidity
1684library IAllocationManagerTypes {
1685    struct AllocateParams {
1686        OperatorSet operatorSet;
1687        address[] strategies;
1688        uint64[] newMagnitudes;
1689    }
1690    struct Allocation {
1691        uint64 currentMagnitude;
1692        int128 pendingDiff;
1693        uint32 effectBlock;
1694    }
1695    struct CreateSetParams {
1696        uint32 operatorSetId;
1697        address[] strategies;
1698    }
1699    struct DeregisterParams {
1700        address operator;
1701        address avs;
1702        uint32[] operatorSetIds;
1703    }
1704    struct RegisterParams {
1705        address avs;
1706        uint32[] operatorSetIds;
1707        bytes data;
1708    }
1709    struct SlashingParams {
1710        address operator;
1711        uint32 operatorSetId;
1712        address[] strategies;
1713        uint256[] wadsToSlash;
1714        string description;
1715    }
1716}
1717
1718interface AllocationManager {
1719    struct OperatorSet {
1720        address avs;
1721        uint32 id;
1722    }
1723
1724    error AlreadyMemberOfSet();
1725    error CurrentlyPaused();
1726    error Empty();
1727    error InputAddressZero();
1728    error InputArrayLengthMismatch();
1729    error InsufficientMagnitude();
1730    error InvalidAVSRegistrar();
1731    error InvalidCaller();
1732    error InvalidNewPausedStatus();
1733    error InvalidOperator();
1734    error InvalidOperatorSet();
1735    error InvalidPermissions();
1736    error InvalidShortString();
1737    error InvalidSnapshotOrdering();
1738    error InvalidWadToSlash();
1739    error ModificationAlreadyPending();
1740    error NonexistentAVSMetadata();
1741    error NotMemberOfSet();
1742    error OnlyPauser();
1743    error OnlyUnpauser();
1744    error OperatorNotSlashable();
1745    error OutOfBounds();
1746    error SameMagnitude();
1747    error StrategiesMustBeInAscendingOrder();
1748    error StrategyAlreadyInOperatorSet();
1749    error StrategyNotInOperatorSet();
1750    error StringTooLong(string str);
1751    error UninitializedAllocationDelay();
1752
1753    event AVSMetadataURIUpdated(address indexed avs, string metadataURI);
1754    event AVSRegistrarSet(address avs, address registrar);
1755    event AllocationDelaySet(address operator, uint32 delay, uint32 effectBlock);
1756    event AllocationUpdated(address operator, OperatorSet operatorSet, address strategy, uint64 magnitude, uint32 effectBlock);
1757    event EncumberedMagnitudeUpdated(address operator, address strategy, uint64 encumberedMagnitude);
1758    event Initialized(uint8 version);
1759    event MaxMagnitudeUpdated(address operator, address strategy, uint64 maxMagnitude);
1760    event OperatorAddedToOperatorSet(address indexed operator, OperatorSet operatorSet);
1761    event OperatorRemovedFromOperatorSet(address indexed operator, OperatorSet operatorSet);
1762    event OperatorSetCreated(OperatorSet operatorSet);
1763    event OperatorSlashed(address operator, OperatorSet operatorSet, address[] strategies, uint256[] wadSlashed, string description);
1764    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
1765    event Paused(address indexed account, uint256 newPausedStatus);
1766    event StrategyAddedToOperatorSet(OperatorSet operatorSet, address strategy);
1767    event StrategyRemovedFromOperatorSet(OperatorSet operatorSet, address strategy);
1768    event Unpaused(address indexed account, uint256 newPausedStatus);
1769
1770    constructor(address _delegation, address _pauserRegistry, address _permissionController, uint32 _DEALLOCATION_DELAY, uint32 _ALLOCATION_CONFIGURATION_DELAY, string _version);
1771
1772    function ALLOCATION_CONFIGURATION_DELAY() external view returns (uint32);
1773    function DEALLOCATION_DELAY() external view returns (uint32);
1774    function addStrategiesToOperatorSet(address avs, uint32 operatorSetId, address[] memory strategies) external;
1775    function clearDeallocationQueue(address operator, address[] memory strategies, uint16[] memory numToClear) external;
1776    function createOperatorSets(address avs, IAllocationManagerTypes.CreateSetParams[] memory params) external;
1777    function delegation() external view returns (address);
1778    function deregisterFromOperatorSets(IAllocationManagerTypes.DeregisterParams memory params) external;
1779    function getAVSRegistrar(address avs) external view returns (address);
1780    function getAllocatableMagnitude(address operator, address strategy) external view returns (uint64);
1781    function getAllocatedSets(address operator) external view returns (OperatorSet[] memory);
1782    function getAllocatedStake(OperatorSet memory operatorSet, address[] memory operators, address[] memory strategies) external view returns (uint256[][] memory);
1783    function getAllocatedStrategies(address operator, OperatorSet memory operatorSet) external view returns (address[] memory);
1784    function getAllocation(address operator, OperatorSet memory operatorSet, address strategy) external view returns (IAllocationManagerTypes.Allocation memory);
1785    function getAllocationDelay(address operator) external view returns (bool, uint32);
1786    function getAllocations(address[] memory operators, OperatorSet memory operatorSet, address strategy) external view returns (IAllocationManagerTypes.Allocation[] memory);
1787    function getEncumberedMagnitude(address operator, address strategy) external view returns (uint64);
1788    function getMaxMagnitude(address operator, address strategy) external view returns (uint64);
1789    function getMaxMagnitudes(address[] memory operators, address strategy) external view returns (uint64[] memory);
1790    function getMaxMagnitudes(address operator, address[] memory strategies) external view returns (uint64[] memory);
1791    function getMaxMagnitudesAtBlock(address operator, address[] memory strategies, uint32 blockNumber) external view returns (uint64[] memory);
1792    function getMemberCount(OperatorSet memory operatorSet) external view returns (uint256);
1793    function getMembers(OperatorSet memory operatorSet) external view returns (address[] memory);
1794    function getMinimumSlashableStake(OperatorSet memory operatorSet, address[] memory operators, address[] memory strategies, uint32 futureBlock) external view returns (uint256[][] memory slashableStake);
1795    function getOperatorSetCount(address avs) external view returns (uint256);
1796    function getRegisteredSets(address operator) external view returns (OperatorSet[] memory);
1797    function getStrategiesInOperatorSet(OperatorSet memory operatorSet) external view returns (address[] memory);
1798    function getStrategyAllocations(address operator, address strategy) external view returns (OperatorSet[] memory, IAllocationManagerTypes.Allocation[] memory);
1799    function initialize(address initialOwner, uint256 initialPausedStatus) external;
1800    function isMemberOfOperatorSet(address operator, OperatorSet memory operatorSet) external view returns (bool);
1801    function isOperatorSet(OperatorSet memory operatorSet) external view returns (bool);
1802    function isOperatorSlashable(address operator, OperatorSet memory operatorSet) external view returns (bool);
1803    function modifyAllocations(address operator, IAllocationManagerTypes.AllocateParams[] memory params) external;
1804    function owner() external view returns (address);
1805    function pause(uint256 newPausedStatus) external;
1806    function pauseAll() external;
1807    function paused(uint8 index) external view returns (bool);
1808    function paused() external view returns (uint256);
1809    function pauserRegistry() external view returns (address);
1810    function permissionController() external view returns (address);
1811    function registerForOperatorSets(address operator, IAllocationManagerTypes.RegisterParams memory params) external;
1812    function removeStrategiesFromOperatorSet(address avs, uint32 operatorSetId, address[] memory strategies) external;
1813    function renounceOwnership() external;
1814    function setAVSRegistrar(address avs, address registrar) external;
1815    function setAllocationDelay(address operator, uint32 delay) external;
1816    function slashOperator(address avs, IAllocationManagerTypes.SlashingParams memory params) external;
1817    function transferOwnership(address newOwner) external;
1818    function unpause(uint256 newPausedStatus) external;
1819    function updateAVSMetadataURI(address avs, string memory metadataURI) external;
1820    function version() external view returns (string memory);
1821}
1822```
1823
1824...which was generated by the following JSON ABI:
1825```json
1826[
1827  {
1828    "type": "constructor",
1829    "inputs": [
1830      {
1831        "name": "_delegation",
1832        "type": "address",
1833        "internalType": "contract IDelegationManager"
1834      },
1835      {
1836        "name": "_pauserRegistry",
1837        "type": "address",
1838        "internalType": "contract IPauserRegistry"
1839      },
1840      {
1841        "name": "_permissionController",
1842        "type": "address",
1843        "internalType": "contract IPermissionController"
1844      },
1845      {
1846        "name": "_DEALLOCATION_DELAY",
1847        "type": "uint32",
1848        "internalType": "uint32"
1849      },
1850      {
1851        "name": "_ALLOCATION_CONFIGURATION_DELAY",
1852        "type": "uint32",
1853        "internalType": "uint32"
1854      },
1855      {
1856        "name": "_version",
1857        "type": "string",
1858        "internalType": "string"
1859      }
1860    ],
1861    "stateMutability": "nonpayable"
1862  },
1863  {
1864    "type": "function",
1865    "name": "ALLOCATION_CONFIGURATION_DELAY",
1866    "inputs": [],
1867    "outputs": [
1868      {
1869        "name": "",
1870        "type": "uint32",
1871        "internalType": "uint32"
1872      }
1873    ],
1874    "stateMutability": "view"
1875  },
1876  {
1877    "type": "function",
1878    "name": "DEALLOCATION_DELAY",
1879    "inputs": [],
1880    "outputs": [
1881      {
1882        "name": "",
1883        "type": "uint32",
1884        "internalType": "uint32"
1885      }
1886    ],
1887    "stateMutability": "view"
1888  },
1889  {
1890    "type": "function",
1891    "name": "addStrategiesToOperatorSet",
1892    "inputs": [
1893      {
1894        "name": "avs",
1895        "type": "address",
1896        "internalType": "address"
1897      },
1898      {
1899        "name": "operatorSetId",
1900        "type": "uint32",
1901        "internalType": "uint32"
1902      },
1903      {
1904        "name": "strategies",
1905        "type": "address[]",
1906        "internalType": "contract IStrategy[]"
1907      }
1908    ],
1909    "outputs": [],
1910    "stateMutability": "nonpayable"
1911  },
1912  {
1913    "type": "function",
1914    "name": "clearDeallocationQueue",
1915    "inputs": [
1916      {
1917        "name": "operator",
1918        "type": "address",
1919        "internalType": "address"
1920      },
1921      {
1922        "name": "strategies",
1923        "type": "address[]",
1924        "internalType": "contract IStrategy[]"
1925      },
1926      {
1927        "name": "numToClear",
1928        "type": "uint16[]",
1929        "internalType": "uint16[]"
1930      }
1931    ],
1932    "outputs": [],
1933    "stateMutability": "nonpayable"
1934  },
1935  {
1936    "type": "function",
1937    "name": "createOperatorSets",
1938    "inputs": [
1939      {
1940        "name": "avs",
1941        "type": "address",
1942        "internalType": "address"
1943      },
1944      {
1945        "name": "params",
1946        "type": "tuple[]",
1947        "internalType": "struct IAllocationManagerTypes.CreateSetParams[]",
1948        "components": [
1949          {
1950            "name": "operatorSetId",
1951            "type": "uint32",
1952            "internalType": "uint32"
1953          },
1954          {
1955            "name": "strategies",
1956            "type": "address[]",
1957            "internalType": "contract IStrategy[]"
1958          }
1959        ]
1960      }
1961    ],
1962    "outputs": [],
1963    "stateMutability": "nonpayable"
1964  },
1965  {
1966    "type": "function",
1967    "name": "delegation",
1968    "inputs": [],
1969    "outputs": [
1970      {
1971        "name": "",
1972        "type": "address",
1973        "internalType": "contract IDelegationManager"
1974      }
1975    ],
1976    "stateMutability": "view"
1977  },
1978  {
1979    "type": "function",
1980    "name": "deregisterFromOperatorSets",
1981    "inputs": [
1982      {
1983        "name": "params",
1984        "type": "tuple",
1985        "internalType": "struct IAllocationManagerTypes.DeregisterParams",
1986        "components": [
1987          {
1988            "name": "operator",
1989            "type": "address",
1990            "internalType": "address"
1991          },
1992          {
1993            "name": "avs",
1994            "type": "address",
1995            "internalType": "address"
1996          },
1997          {
1998            "name": "operatorSetIds",
1999            "type": "uint32[]",
2000            "internalType": "uint32[]"
2001          }
2002        ]
2003      }
2004    ],
2005    "outputs": [],
2006    "stateMutability": "nonpayable"
2007  },
2008  {
2009    "type": "function",
2010    "name": "getAVSRegistrar",
2011    "inputs": [
2012      {
2013        "name": "avs",
2014        "type": "address",
2015        "internalType": "address"
2016      }
2017    ],
2018    "outputs": [
2019      {
2020        "name": "",
2021        "type": "address",
2022        "internalType": "contract IAVSRegistrar"
2023      }
2024    ],
2025    "stateMutability": "view"
2026  },
2027  {
2028    "type": "function",
2029    "name": "getAllocatableMagnitude",
2030    "inputs": [
2031      {
2032        "name": "operator",
2033        "type": "address",
2034        "internalType": "address"
2035      },
2036      {
2037        "name": "strategy",
2038        "type": "address",
2039        "internalType": "contract IStrategy"
2040      }
2041    ],
2042    "outputs": [
2043      {
2044        "name": "",
2045        "type": "uint64",
2046        "internalType": "uint64"
2047      }
2048    ],
2049    "stateMutability": "view"
2050  },
2051  {
2052    "type": "function",
2053    "name": "getAllocatedSets",
2054    "inputs": [
2055      {
2056        "name": "operator",
2057        "type": "address",
2058        "internalType": "address"
2059      }
2060    ],
2061    "outputs": [
2062      {
2063        "name": "",
2064        "type": "tuple[]",
2065        "internalType": "struct OperatorSet[]",
2066        "components": [
2067          {
2068            "name": "avs",
2069            "type": "address",
2070            "internalType": "address"
2071          },
2072          {
2073            "name": "id",
2074            "type": "uint32",
2075            "internalType": "uint32"
2076          }
2077        ]
2078      }
2079    ],
2080    "stateMutability": "view"
2081  },
2082  {
2083    "type": "function",
2084    "name": "getAllocatedStake",
2085    "inputs": [
2086      {
2087        "name": "operatorSet",
2088        "type": "tuple",
2089        "internalType": "struct OperatorSet",
2090        "components": [
2091          {
2092            "name": "avs",
2093            "type": "address",
2094            "internalType": "address"
2095          },
2096          {
2097            "name": "id",
2098            "type": "uint32",
2099            "internalType": "uint32"
2100          }
2101        ]
2102      },
2103      {
2104        "name": "operators",
2105        "type": "address[]",
2106        "internalType": "address[]"
2107      },
2108      {
2109        "name": "strategies",
2110        "type": "address[]",
2111        "internalType": "contract IStrategy[]"
2112      }
2113    ],
2114    "outputs": [
2115      {
2116        "name": "",
2117        "type": "uint256[][]",
2118        "internalType": "uint256[][]"
2119      }
2120    ],
2121    "stateMutability": "view"
2122  },
2123  {
2124    "type": "function",
2125    "name": "getAllocatedStrategies",
2126    "inputs": [
2127      {
2128        "name": "operator",
2129        "type": "address",
2130        "internalType": "address"
2131      },
2132      {
2133        "name": "operatorSet",
2134        "type": "tuple",
2135        "internalType": "struct OperatorSet",
2136        "components": [
2137          {
2138            "name": "avs",
2139            "type": "address",
2140            "internalType": "address"
2141          },
2142          {
2143            "name": "id",
2144            "type": "uint32",
2145            "internalType": "uint32"
2146          }
2147        ]
2148      }
2149    ],
2150    "outputs": [
2151      {
2152        "name": "",
2153        "type": "address[]",
2154        "internalType": "contract IStrategy[]"
2155      }
2156    ],
2157    "stateMutability": "view"
2158  },
2159  {
2160    "type": "function",
2161    "name": "getAllocation",
2162    "inputs": [
2163      {
2164        "name": "operator",
2165        "type": "address",
2166        "internalType": "address"
2167      },
2168      {
2169        "name": "operatorSet",
2170        "type": "tuple",
2171        "internalType": "struct OperatorSet",
2172        "components": [
2173          {
2174            "name": "avs",
2175            "type": "address",
2176            "internalType": "address"
2177          },
2178          {
2179            "name": "id",
2180            "type": "uint32",
2181            "internalType": "uint32"
2182          }
2183        ]
2184      },
2185      {
2186        "name": "strategy",
2187        "type": "address",
2188        "internalType": "contract IStrategy"
2189      }
2190    ],
2191    "outputs": [
2192      {
2193        "name": "",
2194        "type": "tuple",
2195        "internalType": "struct IAllocationManagerTypes.Allocation",
2196        "components": [
2197          {
2198            "name": "currentMagnitude",
2199            "type": "uint64",
2200            "internalType": "uint64"
2201          },
2202          {
2203            "name": "pendingDiff",
2204            "type": "int128",
2205            "internalType": "int128"
2206          },
2207          {
2208            "name": "effectBlock",
2209            "type": "uint32",
2210            "internalType": "uint32"
2211          }
2212        ]
2213      }
2214    ],
2215    "stateMutability": "view"
2216  },
2217  {
2218    "type": "function",
2219    "name": "getAllocationDelay",
2220    "inputs": [
2221      {
2222        "name": "operator",
2223        "type": "address",
2224        "internalType": "address"
2225      }
2226    ],
2227    "outputs": [
2228      {
2229        "name": "",
2230        "type": "bool",
2231        "internalType": "bool"
2232      },
2233      {
2234        "name": "",
2235        "type": "uint32",
2236        "internalType": "uint32"
2237      }
2238    ],
2239    "stateMutability": "view"
2240  },
2241  {
2242    "type": "function",
2243    "name": "getAllocations",
2244    "inputs": [
2245      {
2246        "name": "operators",
2247        "type": "address[]",
2248        "internalType": "address[]"
2249      },
2250      {
2251        "name": "operatorSet",
2252        "type": "tuple",
2253        "internalType": "struct OperatorSet",
2254        "components": [
2255          {
2256            "name": "avs",
2257            "type": "address",
2258            "internalType": "address"
2259          },
2260          {
2261            "name": "id",
2262            "type": "uint32",
2263            "internalType": "uint32"
2264          }
2265        ]
2266      },
2267      {
2268        "name": "strategy",
2269        "type": "address",
2270        "internalType": "contract IStrategy"
2271      }
2272    ],
2273    "outputs": [
2274      {
2275        "name": "",
2276        "type": "tuple[]",
2277        "internalType": "struct IAllocationManagerTypes.Allocation[]",
2278        "components": [
2279          {
2280            "name": "currentMagnitude",
2281            "type": "uint64",
2282            "internalType": "uint64"
2283          },
2284          {
2285            "name": "pendingDiff",
2286            "type": "int128",
2287            "internalType": "int128"
2288          },
2289          {
2290            "name": "effectBlock",
2291            "type": "uint32",
2292            "internalType": "uint32"
2293          }
2294        ]
2295      }
2296    ],
2297    "stateMutability": "view"
2298  },
2299  {
2300    "type": "function",
2301    "name": "getEncumberedMagnitude",
2302    "inputs": [
2303      {
2304        "name": "operator",
2305        "type": "address",
2306        "internalType": "address"
2307      },
2308      {
2309        "name": "strategy",
2310        "type": "address",
2311        "internalType": "contract IStrategy"
2312      }
2313    ],
2314    "outputs": [
2315      {
2316        "name": "",
2317        "type": "uint64",
2318        "internalType": "uint64"
2319      }
2320    ],
2321    "stateMutability": "view"
2322  },
2323  {
2324    "type": "function",
2325    "name": "getMaxMagnitude",
2326    "inputs": [
2327      {
2328        "name": "operator",
2329        "type": "address",
2330        "internalType": "address"
2331      },
2332      {
2333        "name": "strategy",
2334        "type": "address",
2335        "internalType": "contract IStrategy"
2336      }
2337    ],
2338    "outputs": [
2339      {
2340        "name": "",
2341        "type": "uint64",
2342        "internalType": "uint64"
2343      }
2344    ],
2345    "stateMutability": "view"
2346  },
2347  {
2348    "type": "function",
2349    "name": "getMaxMagnitudes",
2350    "inputs": [
2351      {
2352        "name": "operators",
2353        "type": "address[]",
2354        "internalType": "address[]"
2355      },
2356      {
2357        "name": "strategy",
2358        "type": "address",
2359        "internalType": "contract IStrategy"
2360      }
2361    ],
2362    "outputs": [
2363      {
2364        "name": "",
2365        "type": "uint64[]",
2366        "internalType": "uint64[]"
2367      }
2368    ],
2369    "stateMutability": "view"
2370  },
2371  {
2372    "type": "function",
2373    "name": "getMaxMagnitudes",
2374    "inputs": [
2375      {
2376        "name": "operator",
2377        "type": "address",
2378        "internalType": "address"
2379      },
2380      {
2381        "name": "strategies",
2382        "type": "address[]",
2383        "internalType": "contract IStrategy[]"
2384      }
2385    ],
2386    "outputs": [
2387      {
2388        "name": "",
2389        "type": "uint64[]",
2390        "internalType": "uint64[]"
2391      }
2392    ],
2393    "stateMutability": "view"
2394  },
2395  {
2396    "type": "function",
2397    "name": "getMaxMagnitudesAtBlock",
2398    "inputs": [
2399      {
2400        "name": "operator",
2401        "type": "address",
2402        "internalType": "address"
2403      },
2404      {
2405        "name": "strategies",
2406        "type": "address[]",
2407        "internalType": "contract IStrategy[]"
2408      },
2409      {
2410        "name": "blockNumber",
2411        "type": "uint32",
2412        "internalType": "uint32"
2413      }
2414    ],
2415    "outputs": [
2416      {
2417        "name": "",
2418        "type": "uint64[]",
2419        "internalType": "uint64[]"
2420      }
2421    ],
2422    "stateMutability": "view"
2423  },
2424  {
2425    "type": "function",
2426    "name": "getMemberCount",
2427    "inputs": [
2428      {
2429        "name": "operatorSet",
2430        "type": "tuple",
2431        "internalType": "struct OperatorSet",
2432        "components": [
2433          {
2434            "name": "avs",
2435            "type": "address",
2436            "internalType": "address"
2437          },
2438          {
2439            "name": "id",
2440            "type": "uint32",
2441            "internalType": "uint32"
2442          }
2443        ]
2444      }
2445    ],
2446    "outputs": [
2447      {
2448        "name": "",
2449        "type": "uint256",
2450        "internalType": "uint256"
2451      }
2452    ],
2453    "stateMutability": "view"
2454  },
2455  {
2456    "type": "function",
2457    "name": "getMembers",
2458    "inputs": [
2459      {
2460        "name": "operatorSet",
2461        "type": "tuple",
2462        "internalType": "struct OperatorSet",
2463        "components": [
2464          {
2465            "name": "avs",
2466            "type": "address",
2467            "internalType": "address"
2468          },
2469          {
2470            "name": "id",
2471            "type": "uint32",
2472            "internalType": "uint32"
2473          }
2474        ]
2475      }
2476    ],
2477    "outputs": [
2478      {
2479        "name": "",
2480        "type": "address[]",
2481        "internalType": "address[]"
2482      }
2483    ],
2484    "stateMutability": "view"
2485  },
2486  {
2487    "type": "function",
2488    "name": "getMinimumSlashableStake",
2489    "inputs": [
2490      {
2491        "name": "operatorSet",
2492        "type": "tuple",
2493        "internalType": "struct OperatorSet",
2494        "components": [
2495          {
2496            "name": "avs",
2497            "type": "address",
2498            "internalType": "address"
2499          },
2500          {
2501            "name": "id",
2502            "type": "uint32",
2503            "internalType": "uint32"
2504          }
2505        ]
2506      },
2507      {
2508        "name": "operators",
2509        "type": "address[]",
2510        "internalType": "address[]"
2511      },
2512      {
2513        "name": "strategies",
2514        "type": "address[]",
2515        "internalType": "contract IStrategy[]"
2516      },
2517      {
2518        "name": "futureBlock",
2519        "type": "uint32",
2520        "internalType": "uint32"
2521      }
2522    ],
2523    "outputs": [
2524      {
2525        "name": "slashableStake",
2526        "type": "uint256[][]",
2527        "internalType": "uint256[][]"
2528      }
2529    ],
2530    "stateMutability": "view"
2531  },
2532  {
2533    "type": "function",
2534    "name": "getOperatorSetCount",
2535    "inputs": [
2536      {
2537        "name": "avs",
2538        "type": "address",
2539        "internalType": "address"
2540      }
2541    ],
2542    "outputs": [
2543      {
2544        "name": "",
2545        "type": "uint256",
2546        "internalType": "uint256"
2547      }
2548    ],
2549    "stateMutability": "view"
2550  },
2551  {
2552    "type": "function",
2553    "name": "getRegisteredSets",
2554    "inputs": [
2555      {
2556        "name": "operator",
2557        "type": "address",
2558        "internalType": "address"
2559      }
2560    ],
2561    "outputs": [
2562      {
2563        "name": "",
2564        "type": "tuple[]",
2565        "internalType": "struct OperatorSet[]",
2566        "components": [
2567          {
2568            "name": "avs",
2569            "type": "address",
2570            "internalType": "address"
2571          },
2572          {
2573            "name": "id",
2574            "type": "uint32",
2575            "internalType": "uint32"
2576          }
2577        ]
2578      }
2579    ],
2580    "stateMutability": "view"
2581  },
2582  {
2583    "type": "function",
2584    "name": "getStrategiesInOperatorSet",
2585    "inputs": [
2586      {
2587        "name": "operatorSet",
2588        "type": "tuple",
2589        "internalType": "struct OperatorSet",
2590        "components": [
2591          {
2592            "name": "avs",
2593            "type": "address",
2594            "internalType": "address"
2595          },
2596          {
2597            "name": "id",
2598            "type": "uint32",
2599            "internalType": "uint32"
2600          }
2601        ]
2602      }
2603    ],
2604    "outputs": [
2605      {
2606        "name": "",
2607        "type": "address[]",
2608        "internalType": "contract IStrategy[]"
2609      }
2610    ],
2611    "stateMutability": "view"
2612  },
2613  {
2614    "type": "function",
2615    "name": "getStrategyAllocations",
2616    "inputs": [
2617      {
2618        "name": "operator",
2619        "type": "address",
2620        "internalType": "address"
2621      },
2622      {
2623        "name": "strategy",
2624        "type": "address",
2625        "internalType": "contract IStrategy"
2626      }
2627    ],
2628    "outputs": [
2629      {
2630        "name": "",
2631        "type": "tuple[]",
2632        "internalType": "struct OperatorSet[]",
2633        "components": [
2634          {
2635            "name": "avs",
2636            "type": "address",
2637            "internalType": "address"
2638          },
2639          {
2640            "name": "id",
2641            "type": "uint32",
2642            "internalType": "uint32"
2643          }
2644        ]
2645      },
2646      {
2647        "name": "",
2648        "type": "tuple[]",
2649        "internalType": "struct IAllocationManagerTypes.Allocation[]",
2650        "components": [
2651          {
2652            "name": "currentMagnitude",
2653            "type": "uint64",
2654            "internalType": "uint64"
2655          },
2656          {
2657            "name": "pendingDiff",
2658            "type": "int128",
2659            "internalType": "int128"
2660          },
2661          {
2662            "name": "effectBlock",
2663            "type": "uint32",
2664            "internalType": "uint32"
2665          }
2666        ]
2667      }
2668    ],
2669    "stateMutability": "view"
2670  },
2671  {
2672    "type": "function",
2673    "name": "initialize",
2674    "inputs": [
2675      {
2676        "name": "initialOwner",
2677        "type": "address",
2678        "internalType": "address"
2679      },
2680      {
2681        "name": "initialPausedStatus",
2682        "type": "uint256",
2683        "internalType": "uint256"
2684      }
2685    ],
2686    "outputs": [],
2687    "stateMutability": "nonpayable"
2688  },
2689  {
2690    "type": "function",
2691    "name": "isMemberOfOperatorSet",
2692    "inputs": [
2693      {
2694        "name": "operator",
2695        "type": "address",
2696        "internalType": "address"
2697      },
2698      {
2699        "name": "operatorSet",
2700        "type": "tuple",
2701        "internalType": "struct OperatorSet",
2702        "components": [
2703          {
2704            "name": "avs",
2705            "type": "address",
2706            "internalType": "address"
2707          },
2708          {
2709            "name": "id",
2710            "type": "uint32",
2711            "internalType": "uint32"
2712          }
2713        ]
2714      }
2715    ],
2716    "outputs": [
2717      {
2718        "name": "",
2719        "type": "bool",
2720        "internalType": "bool"
2721      }
2722    ],
2723    "stateMutability": "view"
2724  },
2725  {
2726    "type": "function",
2727    "name": "isOperatorSet",
2728    "inputs": [
2729      {
2730        "name": "operatorSet",
2731        "type": "tuple",
2732        "internalType": "struct OperatorSet",
2733        "components": [
2734          {
2735            "name": "avs",
2736            "type": "address",
2737            "internalType": "address"
2738          },
2739          {
2740            "name": "id",
2741            "type": "uint32",
2742            "internalType": "uint32"
2743          }
2744        ]
2745      }
2746    ],
2747    "outputs": [
2748      {
2749        "name": "",
2750        "type": "bool",
2751        "internalType": "bool"
2752      }
2753    ],
2754    "stateMutability": "view"
2755  },
2756  {
2757    "type": "function",
2758    "name": "isOperatorSlashable",
2759    "inputs": [
2760      {
2761        "name": "operator",
2762        "type": "address",
2763        "internalType": "address"
2764      },
2765      {
2766        "name": "operatorSet",
2767        "type": "tuple",
2768        "internalType": "struct OperatorSet",
2769        "components": [
2770          {
2771            "name": "avs",
2772            "type": "address",
2773            "internalType": "address"
2774          },
2775          {
2776            "name": "id",
2777            "type": "uint32",
2778            "internalType": "uint32"
2779          }
2780        ]
2781      }
2782    ],
2783    "outputs": [
2784      {
2785        "name": "",
2786        "type": "bool",
2787        "internalType": "bool"
2788      }
2789    ],
2790    "stateMutability": "view"
2791  },
2792  {
2793    "type": "function",
2794    "name": "modifyAllocations",
2795    "inputs": [
2796      {
2797        "name": "operator",
2798        "type": "address",
2799        "internalType": "address"
2800      },
2801      {
2802        "name": "params",
2803        "type": "tuple[]",
2804        "internalType": "struct IAllocationManagerTypes.AllocateParams[]",
2805        "components": [
2806          {
2807            "name": "operatorSet",
2808            "type": "tuple",
2809            "internalType": "struct OperatorSet",
2810            "components": [
2811              {
2812                "name": "avs",
2813                "type": "address",
2814                "internalType": "address"
2815              },
2816              {
2817                "name": "id",
2818                "type": "uint32",
2819                "internalType": "uint32"
2820              }
2821            ]
2822          },
2823          {
2824            "name": "strategies",
2825            "type": "address[]",
2826            "internalType": "contract IStrategy[]"
2827          },
2828          {
2829            "name": "newMagnitudes",
2830            "type": "uint64[]",
2831            "internalType": "uint64[]"
2832          }
2833        ]
2834      }
2835    ],
2836    "outputs": [],
2837    "stateMutability": "nonpayable"
2838  },
2839  {
2840    "type": "function",
2841    "name": "owner",
2842    "inputs": [],
2843    "outputs": [
2844      {
2845        "name": "",
2846        "type": "address",
2847        "internalType": "address"
2848      }
2849    ],
2850    "stateMutability": "view"
2851  },
2852  {
2853    "type": "function",
2854    "name": "pause",
2855    "inputs": [
2856      {
2857        "name": "newPausedStatus",
2858        "type": "uint256",
2859        "internalType": "uint256"
2860      }
2861    ],
2862    "outputs": [],
2863    "stateMutability": "nonpayable"
2864  },
2865  {
2866    "type": "function",
2867    "name": "pauseAll",
2868    "inputs": [],
2869    "outputs": [],
2870    "stateMutability": "nonpayable"
2871  },
2872  {
2873    "type": "function",
2874    "name": "paused",
2875    "inputs": [
2876      {
2877        "name": "index",
2878        "type": "uint8",
2879        "internalType": "uint8"
2880      }
2881    ],
2882    "outputs": [
2883      {
2884        "name": "",
2885        "type": "bool",
2886        "internalType": "bool"
2887      }
2888    ],
2889    "stateMutability": "view"
2890  },
2891  {
2892    "type": "function",
2893    "name": "paused",
2894    "inputs": [],
2895    "outputs": [
2896      {
2897        "name": "",
2898        "type": "uint256",
2899        "internalType": "uint256"
2900      }
2901    ],
2902    "stateMutability": "view"
2903  },
2904  {
2905    "type": "function",
2906    "name": "pauserRegistry",
2907    "inputs": [],
2908    "outputs": [
2909      {
2910        "name": "",
2911        "type": "address",
2912        "internalType": "contract IPauserRegistry"
2913      }
2914    ],
2915    "stateMutability": "view"
2916  },
2917  {
2918    "type": "function",
2919    "name": "permissionController",
2920    "inputs": [],
2921    "outputs": [
2922      {
2923        "name": "",
2924        "type": "address",
2925        "internalType": "contract IPermissionController"
2926      }
2927    ],
2928    "stateMutability": "view"
2929  },
2930  {
2931    "type": "function",
2932    "name": "registerForOperatorSets",
2933    "inputs": [
2934      {
2935        "name": "operator",
2936        "type": "address",
2937        "internalType": "address"
2938      },
2939      {
2940        "name": "params",
2941        "type": "tuple",
2942        "internalType": "struct IAllocationManagerTypes.RegisterParams",
2943        "components": [
2944          {
2945            "name": "avs",
2946            "type": "address",
2947            "internalType": "address"
2948          },
2949          {
2950            "name": "operatorSetIds",
2951            "type": "uint32[]",
2952            "internalType": "uint32[]"
2953          },
2954          {
2955            "name": "data",
2956            "type": "bytes",
2957            "internalType": "bytes"
2958          }
2959        ]
2960      }
2961    ],
2962    "outputs": [],
2963    "stateMutability": "nonpayable"
2964  },
2965  {
2966    "type": "function",
2967    "name": "removeStrategiesFromOperatorSet",
2968    "inputs": [
2969      {
2970        "name": "avs",
2971        "type": "address",
2972        "internalType": "address"
2973      },
2974      {
2975        "name": "operatorSetId",
2976        "type": "uint32",
2977        "internalType": "uint32"
2978      },
2979      {
2980        "name": "strategies",
2981        "type": "address[]",
2982        "internalType": "contract IStrategy[]"
2983      }
2984    ],
2985    "outputs": [],
2986    "stateMutability": "nonpayable"
2987  },
2988  {
2989    "type": "function",
2990    "name": "renounceOwnership",
2991    "inputs": [],
2992    "outputs": [],
2993    "stateMutability": "nonpayable"
2994  },
2995  {
2996    "type": "function",
2997    "name": "setAVSRegistrar",
2998    "inputs": [
2999      {
3000        "name": "avs",
3001        "type": "address",
3002        "internalType": "address"
3003      },
3004      {
3005        "name": "registrar",
3006        "type": "address",
3007        "internalType": "contract IAVSRegistrar"
3008      }
3009    ],
3010    "outputs": [],
3011    "stateMutability": "nonpayable"
3012  },
3013  {
3014    "type": "function",
3015    "name": "setAllocationDelay",
3016    "inputs": [
3017      {
3018        "name": "operator",
3019        "type": "address",
3020        "internalType": "address"
3021      },
3022      {
3023        "name": "delay",
3024        "type": "uint32",
3025        "internalType": "uint32"
3026      }
3027    ],
3028    "outputs": [],
3029    "stateMutability": "nonpayable"
3030  },
3031  {
3032    "type": "function",
3033    "name": "slashOperator",
3034    "inputs": [
3035      {
3036        "name": "avs",
3037        "type": "address",
3038        "internalType": "address"
3039      },
3040      {
3041        "name": "params",
3042        "type": "tuple",
3043        "internalType": "struct IAllocationManagerTypes.SlashingParams",
3044        "components": [
3045          {
3046            "name": "operator",
3047            "type": "address",
3048            "internalType": "address"
3049          },
3050          {
3051            "name": "operatorSetId",
3052            "type": "uint32",
3053            "internalType": "uint32"
3054          },
3055          {
3056            "name": "strategies",
3057            "type": "address[]",
3058            "internalType": "contract IStrategy[]"
3059          },
3060          {
3061            "name": "wadsToSlash",
3062            "type": "uint256[]",
3063            "internalType": "uint256[]"
3064          },
3065          {
3066            "name": "description",
3067            "type": "string",
3068            "internalType": "string"
3069          }
3070        ]
3071      }
3072    ],
3073    "outputs": [],
3074    "stateMutability": "nonpayable"
3075  },
3076  {
3077    "type": "function",
3078    "name": "transferOwnership",
3079    "inputs": [
3080      {
3081        "name": "newOwner",
3082        "type": "address",
3083        "internalType": "address"
3084      }
3085    ],
3086    "outputs": [],
3087    "stateMutability": "nonpayable"
3088  },
3089  {
3090    "type": "function",
3091    "name": "unpause",
3092    "inputs": [
3093      {
3094        "name": "newPausedStatus",
3095        "type": "uint256",
3096        "internalType": "uint256"
3097      }
3098    ],
3099    "outputs": [],
3100    "stateMutability": "nonpayable"
3101  },
3102  {
3103    "type": "function",
3104    "name": "updateAVSMetadataURI",
3105    "inputs": [
3106      {
3107        "name": "avs",
3108        "type": "address",
3109        "internalType": "address"
3110      },
3111      {
3112        "name": "metadataURI",
3113        "type": "string",
3114        "internalType": "string"
3115      }
3116    ],
3117    "outputs": [],
3118    "stateMutability": "nonpayable"
3119  },
3120  {
3121    "type": "function",
3122    "name": "version",
3123    "inputs": [],
3124    "outputs": [
3125      {
3126        "name": "",
3127        "type": "string",
3128        "internalType": "string"
3129      }
3130    ],
3131    "stateMutability": "view"
3132  },
3133  {
3134    "type": "event",
3135    "name": "AVSMetadataURIUpdated",
3136    "inputs": [
3137      {
3138        "name": "avs",
3139        "type": "address",
3140        "indexed": true,
3141        "internalType": "address"
3142      },
3143      {
3144        "name": "metadataURI",
3145        "type": "string",
3146        "indexed": false,
3147        "internalType": "string"
3148      }
3149    ],
3150    "anonymous": false
3151  },
3152  {
3153    "type": "event",
3154    "name": "AVSRegistrarSet",
3155    "inputs": [
3156      {
3157        "name": "avs",
3158        "type": "address",
3159        "indexed": false,
3160        "internalType": "address"
3161      },
3162      {
3163        "name": "registrar",
3164        "type": "address",
3165        "indexed": false,
3166        "internalType": "contract IAVSRegistrar"
3167      }
3168    ],
3169    "anonymous": false
3170  },
3171  {
3172    "type": "event",
3173    "name": "AllocationDelaySet",
3174    "inputs": [
3175      {
3176        "name": "operator",
3177        "type": "address",
3178        "indexed": false,
3179        "internalType": "address"
3180      },
3181      {
3182        "name": "delay",
3183        "type": "uint32",
3184        "indexed": false,
3185        "internalType": "uint32"
3186      },
3187      {
3188        "name": "effectBlock",
3189        "type": "uint32",
3190        "indexed": false,
3191        "internalType": "uint32"
3192      }
3193    ],
3194    "anonymous": false
3195  },
3196  {
3197    "type": "event",
3198    "name": "AllocationUpdated",
3199    "inputs": [
3200      {
3201        "name": "operator",
3202        "type": "address",
3203        "indexed": false,
3204        "internalType": "address"
3205      },
3206      {
3207        "name": "operatorSet",
3208        "type": "tuple",
3209        "indexed": false,
3210        "internalType": "struct OperatorSet",
3211        "components": [
3212          {
3213            "name": "avs",
3214            "type": "address",
3215            "internalType": "address"
3216          },
3217          {
3218            "name": "id",
3219            "type": "uint32",
3220            "internalType": "uint32"
3221          }
3222        ]
3223      },
3224      {
3225        "name": "strategy",
3226        "type": "address",
3227        "indexed": false,
3228        "internalType": "contract IStrategy"
3229      },
3230      {
3231        "name": "magnitude",
3232        "type": "uint64",
3233        "indexed": false,
3234        "internalType": "uint64"
3235      },
3236      {
3237        "name": "effectBlock",
3238        "type": "uint32",
3239        "indexed": false,
3240        "internalType": "uint32"
3241      }
3242    ],
3243    "anonymous": false
3244  },
3245  {
3246    "type": "event",
3247    "name": "EncumberedMagnitudeUpdated",
3248    "inputs": [
3249      {
3250        "name": "operator",
3251        "type": "address",
3252        "indexed": false,
3253        "internalType": "address"
3254      },
3255      {
3256        "name": "strategy",
3257        "type": "address",
3258        "indexed": false,
3259        "internalType": "contract IStrategy"
3260      },
3261      {
3262        "name": "encumberedMagnitude",
3263        "type": "uint64",
3264        "indexed": false,
3265        "internalType": "uint64"
3266      }
3267    ],
3268    "anonymous": false
3269  },
3270  {
3271    "type": "event",
3272    "name": "Initialized",
3273    "inputs": [
3274      {
3275        "name": "version",
3276        "type": "uint8",
3277        "indexed": false,
3278        "internalType": "uint8"
3279      }
3280    ],
3281    "anonymous": false
3282  },
3283  {
3284    "type": "event",
3285    "name": "MaxMagnitudeUpdated",
3286    "inputs": [
3287      {
3288        "name": "operator",
3289        "type": "address",
3290        "indexed": false,
3291        "internalType": "address"
3292      },
3293      {
3294        "name": "strategy",
3295        "type": "address",
3296        "indexed": false,
3297        "internalType": "contract IStrategy"
3298      },
3299      {
3300        "name": "maxMagnitude",
3301        "type": "uint64",
3302        "indexed": false,
3303        "internalType": "uint64"
3304      }
3305    ],
3306    "anonymous": false
3307  },
3308  {
3309    "type": "event",
3310    "name": "OperatorAddedToOperatorSet",
3311    "inputs": [
3312      {
3313        "name": "operator",
3314        "type": "address",
3315        "indexed": true,
3316        "internalType": "address"
3317      },
3318      {
3319        "name": "operatorSet",
3320        "type": "tuple",
3321        "indexed": false,
3322        "internalType": "struct OperatorSet",
3323        "components": [
3324          {
3325            "name": "avs",
3326            "type": "address",
3327            "internalType": "address"
3328          },
3329          {
3330            "name": "id",
3331            "type": "uint32",
3332            "internalType": "uint32"
3333          }
3334        ]
3335      }
3336    ],
3337    "anonymous": false
3338  },
3339  {
3340    "type": "event",
3341    "name": "OperatorRemovedFromOperatorSet",
3342    "inputs": [
3343      {
3344        "name": "operator",
3345        "type": "address",
3346        "indexed": true,
3347        "internalType": "address"
3348      },
3349      {
3350        "name": "operatorSet",
3351        "type": "tuple",
3352        "indexed": false,
3353        "internalType": "struct OperatorSet",
3354        "components": [
3355          {
3356            "name": "avs",
3357            "type": "address",
3358            "internalType": "address"
3359          },
3360          {
3361            "name": "id",
3362            "type": "uint32",
3363            "internalType": "uint32"
3364          }
3365        ]
3366      }
3367    ],
3368    "anonymous": false
3369  },
3370  {
3371    "type": "event",
3372    "name": "OperatorSetCreated",
3373    "inputs": [
3374      {
3375        "name": "operatorSet",
3376        "type": "tuple",
3377        "indexed": false,
3378        "internalType": "struct OperatorSet",
3379        "components": [
3380          {
3381            "name": "avs",
3382            "type": "address",
3383            "internalType": "address"
3384          },
3385          {
3386            "name": "id",
3387            "type": "uint32",
3388            "internalType": "uint32"
3389          }
3390        ]
3391      }
3392    ],
3393    "anonymous": false
3394  },
3395  {
3396    "type": "event",
3397    "name": "OperatorSlashed",
3398    "inputs": [
3399      {
3400        "name": "operator",
3401        "type": "address",
3402        "indexed": false,
3403        "internalType": "address"
3404      },
3405      {
3406        "name": "operatorSet",
3407        "type": "tuple",
3408        "indexed": false,
3409        "internalType": "struct OperatorSet",
3410        "components": [
3411          {
3412            "name": "avs",
3413            "type": "address",
3414            "internalType": "address"
3415          },
3416          {
3417            "name": "id",
3418            "type": "uint32",
3419            "internalType": "uint32"
3420          }
3421        ]
3422      },
3423      {
3424        "name": "strategies",
3425        "type": "address[]",
3426        "indexed": false,
3427        "internalType": "contract IStrategy[]"
3428      },
3429      {
3430        "name": "wadSlashed",
3431        "type": "uint256[]",
3432        "indexed": false,
3433        "internalType": "uint256[]"
3434      },
3435      {
3436        "name": "description",
3437        "type": "string",
3438        "indexed": false,
3439        "internalType": "string"
3440      }
3441    ],
3442    "anonymous": false
3443  },
3444  {
3445    "type": "event",
3446    "name": "OwnershipTransferred",
3447    "inputs": [
3448      {
3449        "name": "previousOwner",
3450        "type": "address",
3451        "indexed": true,
3452        "internalType": "address"
3453      },
3454      {
3455        "name": "newOwner",
3456        "type": "address",
3457        "indexed": true,
3458        "internalType": "address"
3459      }
3460    ],
3461    "anonymous": false
3462  },
3463  {
3464    "type": "event",
3465    "name": "Paused",
3466    "inputs": [
3467      {
3468        "name": "account",
3469        "type": "address",
3470        "indexed": true,
3471        "internalType": "address"
3472      },
3473      {
3474        "name": "newPausedStatus",
3475        "type": "uint256",
3476        "indexed": false,
3477        "internalType": "uint256"
3478      }
3479    ],
3480    "anonymous": false
3481  },
3482  {
3483    "type": "event",
3484    "name": "StrategyAddedToOperatorSet",
3485    "inputs": [
3486      {
3487        "name": "operatorSet",
3488        "type": "tuple",
3489        "indexed": false,
3490        "internalType": "struct OperatorSet",
3491        "components": [
3492          {
3493            "name": "avs",
3494            "type": "address",
3495            "internalType": "address"
3496          },
3497          {
3498            "name": "id",
3499            "type": "uint32",
3500            "internalType": "uint32"
3501          }
3502        ]
3503      },
3504      {
3505        "name": "strategy",
3506        "type": "address",
3507        "indexed": false,
3508        "internalType": "contract IStrategy"
3509      }
3510    ],
3511    "anonymous": false
3512  },
3513  {
3514    "type": "event",
3515    "name": "StrategyRemovedFromOperatorSet",
3516    "inputs": [
3517      {
3518        "name": "operatorSet",
3519        "type": "tuple",
3520        "indexed": false,
3521        "internalType": "struct OperatorSet",
3522        "components": [
3523          {
3524            "name": "avs",
3525            "type": "address",
3526            "internalType": "address"
3527          },
3528          {
3529            "name": "id",
3530            "type": "uint32",
3531            "internalType": "uint32"
3532          }
3533        ]
3534      },
3535      {
3536        "name": "strategy",
3537        "type": "address",
3538        "indexed": false,
3539        "internalType": "contract IStrategy"
3540      }
3541    ],
3542    "anonymous": false
3543  },
3544  {
3545    "type": "event",
3546    "name": "Unpaused",
3547    "inputs": [
3548      {
3549        "name": "account",
3550        "type": "address",
3551        "indexed": true,
3552        "internalType": "address"
3553      },
3554      {
3555        "name": "newPausedStatus",
3556        "type": "uint256",
3557        "indexed": false,
3558        "internalType": "uint256"
3559      }
3560    ],
3561    "anonymous": false
3562  },
3563  {
3564    "type": "error",
3565    "name": "AlreadyMemberOfSet",
3566    "inputs": []
3567  },
3568  {
3569    "type": "error",
3570    "name": "CurrentlyPaused",
3571    "inputs": []
3572  },
3573  {
3574    "type": "error",
3575    "name": "Empty",
3576    "inputs": []
3577  },
3578  {
3579    "type": "error",
3580    "name": "InputAddressZero",
3581    "inputs": []
3582  },
3583  {
3584    "type": "error",
3585    "name": "InputArrayLengthMismatch",
3586    "inputs": []
3587  },
3588  {
3589    "type": "error",
3590    "name": "InsufficientMagnitude",
3591    "inputs": []
3592  },
3593  {
3594    "type": "error",
3595    "name": "InvalidAVSRegistrar",
3596    "inputs": []
3597  },
3598  {
3599    "type": "error",
3600    "name": "InvalidCaller",
3601    "inputs": []
3602  },
3603  {
3604    "type": "error",
3605    "name": "InvalidNewPausedStatus",
3606    "inputs": []
3607  },
3608  {
3609    "type": "error",
3610    "name": "InvalidOperator",
3611    "inputs": []
3612  },
3613  {
3614    "type": "error",
3615    "name": "InvalidOperatorSet",
3616    "inputs": []
3617  },
3618  {
3619    "type": "error",
3620    "name": "InvalidPermissions",
3621    "inputs": []
3622  },
3623  {
3624    "type": "error",
3625    "name": "InvalidShortString",
3626    "inputs": []
3627  },
3628  {
3629    "type": "error",
3630    "name": "InvalidSnapshotOrdering",
3631    "inputs": []
3632  },
3633  {
3634    "type": "error",
3635    "name": "InvalidWadToSlash",
3636    "inputs": []
3637  },
3638  {
3639    "type": "error",
3640    "name": "ModificationAlreadyPending",
3641    "inputs": []
3642  },
3643  {
3644    "type": "error",
3645    "name": "NonexistentAVSMetadata",
3646    "inputs": []
3647  },
3648  {
3649    "type": "error",
3650    "name": "NotMemberOfSet",
3651    "inputs": []
3652  },
3653  {
3654    "type": "error",
3655    "name": "OnlyPauser",
3656    "inputs": []
3657  },
3658  {
3659    "type": "error",
3660    "name": "OnlyUnpauser",
3661    "inputs": []
3662  },
3663  {
3664    "type": "error",
3665    "name": "OperatorNotSlashable",
3666    "inputs": []
3667  },
3668  {
3669    "type": "error",
3670    "name": "OutOfBounds",
3671    "inputs": []
3672  },
3673  {
3674    "type": "error",
3675    "name": "SameMagnitude",
3676    "inputs": []
3677  },
3678  {
3679    "type": "error",
3680    "name": "StrategiesMustBeInAscendingOrder",
3681    "inputs": []
3682  },
3683  {
3684    "type": "error",
3685    "name": "StrategyAlreadyInOperatorSet",
3686    "inputs": []
3687  },
3688  {
3689    "type": "error",
3690    "name": "StrategyNotInOperatorSet",
3691    "inputs": []
3692  },
3693  {
3694    "type": "error",
3695    "name": "StringTooLong",
3696    "inputs": [
3697      {
3698        "name": "str",
3699        "type": "string",
3700        "internalType": "string"
3701      }
3702    ]
3703  },
3704  {
3705    "type": "error",
3706    "name": "UninitializedAllocationDelay",
3707    "inputs": []
3708  }
3709]
3710```*/
3711#[allow(
3712    non_camel_case_types,
3713    non_snake_case,
3714    clippy::pub_underscore_fields,
3715    clippy::style,
3716    clippy::empty_structs_with_brackets
3717)]
3718pub mod AllocationManager {
3719    use super::*;
3720    use alloy::sol_types as alloy_sol_types;
3721    /// The creation / init bytecode of the contract.
3722    ///
3723    /// ```text
3724    ///0x610140604052348015610010575f5ffd5b50604051615feb380380615feb83398101604081905261002f91610208565b8084878585896001600160a01b03811661005c576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05263ffffffff91821660c0521660e052166101005261008d816100a5565b610120525061009a6100eb565b505050505050610368565b5f5f829050601f815111156100d8578260405163305a27a960e01b81526004016100cf9190610310565b60405180910390fd5b80516100e382610342565b179392505050565b5f54610100900460ff16156101525760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100cf565b5f5460ff908116146101a1575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101b7575f5ffd5b50565b805163ffffffff811681146101cd575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102005781810151838201526020016101e8565b50505f910152565b5f5f5f5f5f5f60c0878903121561021d575f5ffd5b8651610228816101a3565b6020880151909650610239816101a3565b604088015190955061024a816101a3565b9350610258606088016101ba565b9250610266608088016101ba565b60a08801519092506001600160401b03811115610281575f5ffd5b8701601f81018913610291575f5ffd5b80516001600160401b038111156102aa576102aa6101d2565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102d8576102d86101d2565b6040528181528282016020018b10156102ef575f5ffd5b6103008260208301602086016101e6565b8093505050509295509295509295565b602081525f825180602084015261032e8160408501602087016101e6565b601f01601f19169190910160400192915050565b80516020808301519190811015610362575f198160200360031b1b821691505b50919050565b60805160a05160c05160e0516101005161012051615be86104035f395f611b3701525f818161044f015261356c01525f81816105b30152613dfc01525f818161036101528181611fce01526126d001525f8181610732015281816114d501528181611b6b01528181611bd5015281816129ce015261364b01525f81816105da0152818161085801528181611c7a01526131e30152615be85ff3fe608060405234801561000f575f5ffd5b50600436106102b1575f3560e01c80636cfb44811161017b578063a9821821116100e4578063c221d8ae1161009e578063df5cf72311610079578063df5cf7231461072d578063f2fde38b14610754578063f605ce0814610767578063fabc1cbc1461077a575f5ffd5b8063c221d8ae146106f4578063cd6dc68714610707578063d3d96ff41461071a575f5ffd5b8063a982182114610666578063adc2e3d914610679578063b2447af71461068c578063b66bd9891461069f578063b9fbaed1146106b2578063ba1a84e5146106e1575f5ffd5b8063886f119511610135578063886f1195146105d55780638ce64854146105fc5780638da5cb5b1461061c57806394d7d00c1461062d578063952899ee14610640578063a9333ec814610653575f5ffd5b80636cfb4481146105425780636e3492b51461056d5780636e875dba14610580578063715018a61461059357806379ae50cd1461059b5780637bc1ef61146105ae575f5ffd5b80634177a87c1161021d57806354fd4d50116101d757806354fd4d50146104ca57806356c483e6146104df578063595c6a67146104f25780635ac86ab7146104fa5780635c975abb1461051d578063670d3ba21461052f575f5ffd5b80634177a87c1461042a5780634657e26a1461044a5780634a10ffe5146104715780634b5046ef1461049157806350feea20146104a4578063547afb87146104b7575f5ffd5b80632981eb771161026e5780632981eb771461035c5780632b453a9a146103985780632bab2c4a146103b8578063304c10cd146103cb57806336352057146103f657806340120dab14610409575f5ffd5b806310e1b9b8146102b55780631352c3e6146102de578063136439dd1461030157806315fe502814610316578063260dc75814610336578063261f84e014610349575b5f5ffd5b6102c86102c3366004614a50565b61078d565b6040516102d59190614a97565b60405180910390f35b6102f16102ec366004614aca565b6107c8565b60405190151581526020016102d5565b61031461030f366004614afe565b610843565b005b610329610324366004614b15565b610918565b6040516102d59190614b93565b6102f1610344366004614ba5565b610a2f565b610314610357366004614bff565b610a60565b6103837f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102d5565b6103ab6103a6366004614ce4565b610d3b565b6040516102d59190614d87565b6103ab6103c6366004614dea565b610d51565b6103de6103d9366004614b15565b610df0565b6040516001600160a01b0390911681526020016102d5565b610314610404366004614e6e565b610e1f565b61041c610417366004614ec0565b611629565b6040516102d5929190614f4d565b61043d610438366004614ba5565b6117a4565b6040516102d59190614faa565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b61048461047f366004614fbc565b6117c8565b6040516102d59190614fff565b61031461049f36600461504a565b611870565b6103146104b23660046150ca565b61192a565b6104846104c5366004615128565b611a88565b6104d2611b30565b6040516102d5919061516a565b6103146104ed3660046151b5565b611b60565b610314611c65565b6102f16105083660046151df565b606654600160ff9092169190911b9081161490565b6066545b6040519081526020016102d5565b6102f161053d366004614aca565b611d14565b610555610550366004614ec0565b611d25565b6040516001600160401b0390911681526020016102d5565b61031461057b366004615215565b611d3a565b61043d61058e366004614ba5565b61211b565b61031461212c565b6103296105a9366004614b15565b61213d565b6103837f000000000000000000000000000000000000000000000000000000000000000081565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b61060f61060a366004615246565b612217565b6040516102d59190615289565b6033546001600160a01b03166103de565b61048461063b36600461529b565b6122d3565b61031461064e3660046152f6565b6123bf565b610555610661366004614ec0565b61287e565b61031461067436600461549f565b6128ad565b61031461068736600461551d565b61295f565b61052161069a366004614ba5565b612cbc565b6103146106ad3660046150ca565b612cde565b6106c56106c0366004614b15565b612e38565b60408051921515835263ffffffff9091166020830152016102d5565b6105216106ef366004614b15565b612ed2565b61043d610702366004614aca565b612ef2565b61031461071536600461555f565b612f1b565b610314610728366004614ec0565b613038565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b610314610762366004614b15565b61315c565b610555610775366004614ec0565b6131d5565b610314610788366004614afe565b6131e1565b604080516060810182525f80825260208201819052918101829052906107bc856107b6866132f7565b8561335a565b925050505b9392505050565b6001600160a01b0382165f908152609e602052604081208190816107eb856132f7565b815260208082019290925260409081015f2081518083019092525460ff8116151580835261010090910463ffffffff16928201929092529150806108395750806020015163ffffffff164311155b9150505b92915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156108a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c99190615589565b6108e657604051631d77d47760e21b815260040160405180910390fd5b606654818116811461090b5760405163c61dca5d60e01b815260040160405180910390fd5b610914826134c6565b5050565b6001600160a01b0381165f908152609d602052604081206060919061093c90613503565b90505f816001600160401b0381111561095757610957614974565b60405190808252806020026020018201604052801561099b57816020015b604080518082019091525f80825260208201528152602001906001900390816109755790505b5090505f5b82811015610a27576001600160a01b0385165f908152609d60205260409020610a02906109cd908361350c565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b828281518110610a1457610a146155a8565b60209081029190910101526001016109a0565b509392505050565b60208082015182516001600160a01b03165f90815260989092526040822061083d9163ffffffff9081169061351716565b82610a6a8161352e565b610a875760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff16610abf576040516348f7dbb960e01b815260040160405180910390fd5b5f5b82811015610d34575f6040518060400160405280876001600160a01b03168152602001868685818110610af657610af66155a8565b9050602002810190610b0891906155bc565b610b169060208101906155da565b63ffffffff168152509050610b60816020015163ffffffff1660985f896001600160a01b03166001600160a01b031681526020019081526020015f206135d890919063ffffffff16565b610b7d57604051631fb1705560e21b815260040160405180910390fd5b7f31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c6040518060400160405280886001600160a01b03168152602001836020015163ffffffff16815250604051610bd391906155f3565b60405180910390a15f610be5826132f7565b90505f5b868685818110610bfb57610bfb6155a8565b9050602002810190610c0d91906155bc565b610c1b906020810190615601565b9050811015610d2957610c91878786818110610c3957610c396155a8565b9050602002810190610c4b91906155bc565b610c59906020810190615601565b83818110610c6957610c696155a8565b9050602002016020810190610c7e9190614b15565b5f848152609960205260409020906135e3565b507f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83888887818110610cc657610cc66155a8565b9050602002810190610cd891906155bc565b610ce6906020810190615601565b84818110610cf657610cf66155a8565b9050602002016020810190610d0b9190614b15565b604051610d19929190615646565b60405180910390a1600101610be9565b505050600101610ac1565b5050505050565b6060610d49848484436135f7565b949350505050565b6060610d5f858585856135f7565b90505f5b8451811015610de757610d8f858281518110610d8157610d816155a8565b6020026020010151876107c8565b610ddf575f5b8451811015610ddd575f838381518110610db157610db16155a8565b60200260200101518281518110610dca57610dca6155a8565b6020908102919091010152600101610d95565b505b600101610d63565b50949350505050565b6001600160a01b038082165f908152609760205260408120549091168015610e1857806107c1565b5090919050565b606654600190600290811603610e485760405163840a48d560e01b815260040160405180910390fd5b82610e528161352e565b610e6f5760405163932d94f760e01b815260040160405180910390fd5b5f6040518060400160405280866001600160a01b03168152602001856020016020810190610e9d91906155da565b63ffffffff1690529050610eb46060850185615601565b9050610ec36040860186615601565b905014610ee3576040516343714afd60e01b815260040160405180910390fd5b60208082015182516001600160a01b03165f90815260989092526040909120610f159163ffffffff9081169061351716565b610f3257604051631fb1705560e21b815260040160405180910390fd5b610f48610f426020860186614b15565b826107c8565b610f655760405163ebbff49760e01b815260040160405180910390fd5b5f610f736040860186615601565b90506001600160401b03811115610f8c57610f8c614974565b604051908082528060200260200182016040528015610fb5578160200160208202803683370190505b5090505f5b610fc76040870187615601565b90508110156115bb5780158061105a5750610fe56040870187615601565b610ff0600184615680565b818110610fff57610fff6155a8565b90506020020160208101906110149190614b15565b6001600160a01b031661102a6040880188615601565b8381811061103a5761103a6155a8565b905060200201602081019061104f9190614b15565b6001600160a01b0316115b61107757604051639f1c805360e01b815260040160405180910390fd5b6110846060870187615601565b82818110611094576110946155a8565b905060200201355f1080156110d45750670de0b6b3a76400006110ba6060880188615601565b838181106110ca576110ca6155a8565b9050602002013511155b6110f157604051631353603160e01b815260040160405180910390fd5b61114d6111016040880188615601565b83818110611111576111116155a8565b90506020020160208101906111269190614b15565b60995f611132876132f7565b81526020019081526020015f206138e490919063ffffffff16565b61116a576040516331bc342760e11b815260040160405180910390fd5b5f806111bc61117c60208a018a614b15565b611185876132f7565b61119260408c018c615601565b878181106111a2576111a26155a8565b90506020020160208101906111b79190614b15565b61335a565b805191935091506001600160401b03165f036111d95750506115b3565b5f6112146111ea60608b018b615601565b868181106111fa576111fa6155a8565b85516001600160401b031692602090910201359050613905565b835190915061122f6001600160401b0380841690831661391b565b868681518110611241576112416155a8565b60200260200101818152505081835f0181815161125e9190615693565b6001600160401b031690525083518290859061127b908390615693565b6001600160401b031690525060208401805183919061129b908390615693565b6001600160401b031690525060208301515f600f9190910b12156113b3575f6112fe6112ca60608d018d615601565b888181106112da576112da6155a8565b9050602002013585602001516112ef906156b2565b6001600160801b031690613905565b9050806001600160401b03168460200181815161131b91906156d6565b600f0b9052507f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61134f60208d018d614b15565b8961135d60408f018f615601565b8a81811061136d5761136d6155a8565b90506020020160208101906113829190614b15565b611393885f0151896020015161392f565b88604001516040516113a9959493929190615703565b60405180910390a1505b6114056113c360208c018c614b15565b6113cc896132f7565b6113d960408e018e615601565b898181106113e9576113e96155a8565b90506020020160208101906113fe9190614b15565b878761394e565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61143360208c018c614b15565b8861144160408e018e615601565b89818110611451576114516155a8565b90506020020160208101906114669190614b15565b865160405161147a94939291904390615703565b60405180910390a16114cb61149260208c018c614b15565b61149f60408d018d615601565b888181106114af576114af6155a8565b90506020020160208101906114c49190614b15565b8651613b86565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663601bb36f61150760208d018d614b15565b61151460408e018e615601565b89818110611524576115246155a8565b90506020020160208101906115399190614b15565b875160405160e085901b6001600160e01b03191681526001600160a01b0393841660048201529290911660248301526001600160401b0380861660448401521660648201526084015f604051808303815f87803b158015611598575f5ffd5b505af11580156115aa573d5f5f3e3d5ffd5b50505050505050505b600101610fba565b507f80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe56115ea6020870187614b15565b836115f86040890189615601565b8561160660808c018c615754565b60405161161997969594939291906157be565b60405180910390a1505050505050565b6001600160a01b0382165f908152609d60205260408120606091829161164e90613503565b90505f816001600160401b0381111561166957611669614974565b6040519080825280602002602001820160405280156116ad57816020015b604080518082019091525f80825260208201528152602001906001900390816116875790505b5090505f826001600160401b038111156116c9576116c9614974565b60405190808252806020026020018201604052801561171257816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816116e75790505b5090505f5b83811015611795576001600160a01b0388165f908152609d60205260408120611744906109cd908461350c565b905080848381518110611759576117596155a8565b602002602001018190525061176f89828a61078d565b838381518110611781576117816155a8565b602090810291909101015250600101611717565b509093509150505b9250929050565b60605f6107c160995f6117b6866132f7565b81526020019081526020015f20613c08565b60605f83516001600160401b038111156117e4576117e4614974565b60405190808252806020026020018201604052801561180d578160200160208202803683370190505b5090505f5b8451811015610a275761183e858281518110611830576118306155a8565b60200260200101518561287e565b828281518110611850576118506155a8565b6001600160401b0390921660209283029190910190910152600101611812565b6066545f906001908116036118985760405163840a48d560e01b815260040160405180910390fd5b8382146118b8576040516343714afd60e01b815260040160405180910390fd5b5f5b8481101561192157611919878787848181106118d8576118d86155a8565b90506020020160208101906118ed9190614b15565b8686858181106118ff576118ff6155a8565b90506020020160208101906119149190615854565b613c14565b6001016118ba565b50505050505050565b836119348161352e565b6119515760405163932d94f760e01b815260040160405180910390fd5b604080518082019091526001600160a01b038616815263ffffffff851660208201525f61197d826132f7565b90506119be826020015163ffffffff1660985f8a6001600160a01b03166001600160a01b031681526020019081526020015f2061351790919063ffffffff16565b6119db57604051631fb1705560e21b815260040160405180910390fd5b5f5b84811015611a7e576119fa868683818110610c6957610c696155a8565b611a175760405163585cfb2f60e01b815260040160405180910390fd5b7f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83878784818110611a4b57611a4b6155a8565b9050602002016020810190611a609190614b15565b604051611a6e929190615646565b60405180910390a16001016119dd565b5050505050505050565b60605f82516001600160401b03811115611aa457611aa4614974565b604051908082528060200260200182016040528015611acd578160200160208202803683370190505b5090505f5b8351811015610a2757611afe85858381518110611af157611af16155a8565b602002602001015161287e565b828281518110611b1057611b106155a8565b6001600160401b0390921660209283029190910190910152600101611ad2565b6060611b5b7f0000000000000000000000000000000000000000000000000000000000000000613d18565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c5b57611b998261352e565b611bb6576040516348f5c3ed60e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611c1a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3e9190615589565b611c5b5760405163ccea9e6f60e01b815260040160405180910390fd5b6109148282613d55565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611cc7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ceb9190615589565b611d0857604051631d77d47760e21b815260040160405180910390fd5b611d125f196134c6565b565b5f6107c183609a5f611132866132f7565b5f5f611d318484613f01565b95945050505050565b606654600290600490811603611d635760405163840a48d560e01b815260040160405180910390fd5b611d78611d736020840184614b15565b61352e565b80611d915750611d91611d736040840160208501614b15565b611dae576040516348f5c3ed60e01b815260040160405180910390fd5b5f5b611dbd6040840184615601565b905081101561207f575f6040518060400160405280856020016020810190611de59190614b15565b6001600160a01b03168152602001611e006040870187615601565b85818110611e1057611e106155a8565b9050602002016020810190611e2591906155da565b63ffffffff168152509050611e72816020015163ffffffff1660985f876020016020810190611e549190614b15565b6001600160a01b0316815260208101919091526040015f2090613517565b611e8f57604051631fb1705560e21b815260040160405180910390fd5b609e5f611e9f6020870187614b15565b6001600160a01b03166001600160a01b031681526020019081526020015f205f611ec8836132f7565b815260208101919091526040015f205460ff16611ef8576040516325131d4f60e01b815260040160405180910390fd5b611f32611f04826132f7565b609c5f611f146020890189614b15565b6001600160a01b0316815260208101919091526040015f2090614070565b50611f6a611f436020860186614b15565b609a5f611f4f856132f7565b81526020019081526020015f2061407b90919063ffffffff16565b50611f786020850185614b15565b6001600160a01b03167fad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe82604051611fb091906155f3565b60405180910390a2604080518082019091525f815260208101611ff37f000000000000000000000000000000000000000000000000000000000000000043615875565b63ffffffff169052609e5f61200b6020880188614b15565b6001600160a01b03166001600160a01b031681526020019081526020015f205f612034846132f7565b81526020808201929092526040015f2082518154939092015163ffffffff166101000264ffffffff00199215159290921664ffffffffff199093169290921717905550600101611db0565b506120936103d96040840160208501614b15565b6001600160a01b031663303ca9566120ae6020850185614b15565b6120be6040860160208701614b15565b6120cb6040870187615601565b6040518563ffffffff1660e01b81526004016120ea94939291906158ca565b5f604051808303815f87803b158015612101575f5ffd5b505af1158015612113573d5f5f3e3d5ffd5b505050505050565b606061083d609a5f6117b6856132f7565b61213461408f565b611d125f6140e9565b6001600160a01b0381165f908152609c602052604081206060919061216190613503565b90505f816001600160401b0381111561217c5761217c614974565b6040519080825280602002602001820160405280156121c057816020015b604080518082019091525f808252602082015281526020019060019003908161219a5790505b5090505f5b82811015610a27576001600160a01b0385165f908152609c602052604090206121f2906109cd908361350c565b828281518110612204576122046155a8565b60209081029190910101526001016121c5565b60605f84516001600160401b0381111561223357612233614974565b60405190808252806020026020018201604052801561227c57816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816122515790505b5090505f5b8551811015610de7576122ae86828151811061229f5761229f6155a8565b6020026020010151868661078d565b8282815181106122c0576122c06155a8565b6020908102919091010152600101612281565b60605f83516001600160401b038111156122ef576122ef614974565b604051908082528060200260200182016040528015612318578160200160208202803683370190505b5090505f5b8451811015610de7576001600160a01b0386165f90815260a160205260408120865161238d92879291899086908110612358576123586155a8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2061413a90919063ffffffff16565b82828151811061239f5761239f6155a8565b6001600160401b039092166020928302919091019091015260010161231d565b6066545f906001908116036123e75760405163840a48d560e01b815260040160405180910390fd5b6123f08361352e565b61240d576040516348f5c3ed60e01b815260040160405180910390fd5b5f5f5f61241986612e38565b915091508161243b5760405163fa55fc8160e01b815260040160405180910390fd5b91505f90505b8351811015610d345783818151811061245c5761245c6155a8565b6020026020010151604001515184828151811061247b5761247b6155a8565b60200260200101516020015151146124a6576040516343714afd60e01b815260040160405180910390fd5b5f8482815181106124b9576124b96155a8565b602090810291909101810151518082015181516001600160a01b03165f908152609890935260409092209092506124f99163ffffffff9081169061351716565b61251657604051631fb1705560e21b815260040160405180910390fd5b5f61252187836107c8565b90505f5b868481518110612537576125376155a8565b60200260200101516020015151811015612873575f87858151811061255e5761255e6155a8565b602002602001015160200151828151811061257b5761257b6155a8565b60200260200101519050612592898261ffff613c14565b5f5f6125a18b6107b6886132f7565b91509150806040015163ffffffff165f146125cf57604051630d8fcbe360e41b815260040160405180910390fd5b5f6125dc8785848961414e565b9050612621825f01518c8a815181106125f7576125f76155a8565b6020026020010151604001518781518110612614576126146155a8565b6020026020010151614184565b600f0b602083018190525f0361264a57604051634606179360e11b815260040160405180910390fd5b5f8260200151600f0b121561278e578015612710576126cb61266b886132f7565b6001600160a01b03808f165f90815260a360209081526040808320938a16835292905220908154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b6126f57f000000000000000000000000000000000000000000000000000000000000000043615875565b612700906001615875565b63ffffffff1660408301526127fb565b6127228360200151836020015161392f565b6001600160401b031660208401528a518b9089908110612744576127446155a8565b6020026020010151604001518581518110612761576127616155a8565b6020908102919091018101516001600160401b031683525f9083015263ffffffff431660408301526127fb565b5f8260200151600f0b13156127fb576127af8360200151836020015161392f565b6001600160401b0390811660208501819052845190911610156127e557604051636c9be0bf60e01b815260040160405180910390fd5b6127ef8943615875565b63ffffffff1660408301525b6128108c612808896132f7565b86868661394e565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd8c8886612845865f0151876020015161392f565b866040015160405161285b959493929190615703565b60405180910390a15050600190920191506125259050565b505050600101612441565b6001600160a01b038083165f90815260a16020908152604080832093851683529290529081206107c19061419b565b826128b78161352e565b6128d45760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff16612916576001600160a01b0384165f90815260a460205260409020805460ff191660011790555b836001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371384846040516129519291906158f6565b60405180910390a250505050565b6066546002906004908116036129885760405163840a48d560e01b815260040160405180910390fd5b826129928161352e565b6129af5760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0385811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015612a13573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a379190615589565b612a545760405163ccea9e6f60e01b815260040160405180910390fd5b5f5b612a636020850185615601565b9050811015612c2b57604080518082019091525f9080612a866020880188614b15565b6001600160a01b03168152602001868060200190612aa49190615601565b85818110612ab457612ab46155a8565b9050602002016020810190612ac991906155da565b63ffffffff90811690915260208083015183516001600160a01b03165f90815260989092526040909120929350612b0592919081169061351716565b612b2257604051631fb1705560e21b815260040160405180910390fd5b612b2c86826107c8565b15612b4a57604051636c6c6e2760e11b815260040160405180910390fd5b612b73612b56826132f7565b6001600160a01b0388165f908152609c60205260409020906135d8565b50612b9f86609a5f612b84856132f7565b81526020019081526020015f206135e390919063ffffffff16565b50856001600160a01b03167f43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e82604051612bd991906155f3565b60405180910390a26001600160a01b0386165f908152609e60205260408120600191612c04846132f7565b815260208101919091526040015f20805460ff191691151591909117905550600101612a56565b50612c3c6103d96020850185614b15565b6001600160a01b031663c63fd50285612c586020870187614b15565b612c656020880188615601565b612c7260408a018a615754565b6040518763ffffffff1660e01b8152600401612c9396959493929190615909565b5f604051808303815f87803b158015612caa575f5ffd5b505af1158015611a7e573d5f5f3e3d5ffd5b5f61083d609a5f612ccc856132f7565b81526020019081526020015f20613503565b83612ce88161352e565b612d055760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f93845260989052939091209192612d44929161351716565b612d6157604051631fb1705560e21b815260040160405180910390fd5b5f612d6b826132f7565b90505f5b84811015611a7e57612db4868683818110612d8c57612d8c6155a8565b9050602002016020810190612da19190614b15565b5f8481526099602052604090209061407b565b612dd1576040516331bc342760e11b815260040160405180910390fd5b7f7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee83878784818110612e0557612e056155a8565b9050602002016020810190612e1a9190614b15565b604051612e28929190615646565b60405180910390a1600101612d6f565b6001600160a01b0381165f908152609b602090815260408083208151608081018352905463ffffffff80821680845260ff600160201b8404161515958401869052650100000000008304821694840194909452600160481b909104166060820181905284939192919015801590612eb95750826060015163ffffffff164310155b15612ec8575050604081015160015b9590945092505050565b6001600160a01b0381165f90815260986020526040812061083d90613503565b6001600160a01b0382165f908152609f602052604081206060919061083990826117b6866132f7565b5f54610100900460ff1615808015612f3957505f54600160ff909116105b80612f525750303b158015612f5257505f5460ff166001145b612fba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015612fdb575f805461ff0019166101001790555b612fe4826134c6565b612fed836140e9565b8015613033575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050565b816130428161352e565b61305f5760405163932d94f760e01b815260040160405180910390fd5b60405163b526578760e01b81526001600160a01b03848116600483015283169063b526578790602401602060405180830381865afa1580156130a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130c79190615589565b6130e457604051631d0b13c160e31b815260040160405180910390fd5b6001600160a01b038381165f90815260976020526040902080546001600160a01b0319169184169190911790557f2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf858361313c81610df0565b604080516001600160a01b0393841681529290911660208301520161302a565b61316461408f565b6001600160a01b0381166131c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401612fb1565b6131d2816140e9565b50565b5f5f610de78484613f01565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561323d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132619190615955565b6001600160a01b0316336001600160a01b0316146132925760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146132b95760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f815f0151826020015163ffffffff1660405160200161334292919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261083d90615970565b6040805180820182525f80825260208083018290528351606081018552828152808201839052808501839052845180860186526001600160a01b03898116855260a18452868520908816855290925293822092939281906133ba9061419b565b6001600160401b0390811682526001600160a01b038981165f81815260a260209081526040808320948c168084529482528083205486169682019690965291815260a082528481208b8252825284812092815291815290839020835160608101855290549283168152600160401b8304600f0b91810191909152600160c01b90910463ffffffff1691810182905291925043101561345c5790925090506134be565b61346d815f0151826020015161392f565b6001600160401b0316815260208101515f600f9190910b12156134ab5761349c8260200151826020015161392f565b6001600160401b031660208301525b5f60408201819052602082015290925090505b935093915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f61083d825490565b5f6107c183836141ae565b5f81815260018301602052604081205415156107c1565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156135b4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083d9190615589565b5f6107c183836141d4565b5f6107c1836001600160a01b0384166141d4565b606083516001600160401b0381111561361257613612614974565b60405190808252806020026020018201604052801561364557816020015b60608152602001906001900390816136305790505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0e0e67686866040518363ffffffff1660e01b8152600401613697929190615993565b5f60405180830381865afa1580156136b1573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526136d891908101906159b7565b90505f5b85518110156138da575f8682815181106136f8576136f86155a8565b6020026020010151905085516001600160401b0381111561371b5761371b614974565b604051908082528060200260200182016040528015613744578160200160208202803683370190505b50848381518110613757576137576155a8565b60209081029190910101525f5b86518110156138d0575f878281518110613780576137806155a8565b6020908102919091018101516001600160a01b038086165f90815260a18452604080822092841682529190935282209092506137bb9061419b565b9050806001600160401b03165f036137d45750506138c8565b5f6137e0858d8561078d565b90508863ffffffff16816040015163ffffffff161115801561380857505f8160200151600f0b125b1561382a5761381e815f0151826020015161392f565b6001600160401b031681525b80515f90613845906001600160401b0390811690851661391b565b905061388c8189898151811061385d5761385d6155a8565b60200260200101518781518110613876576138766155a8565b602002602001015161422090919063ffffffff16565b89888151811061389e5761389e6155a8565b602002602001015186815181106138b7576138b76155a8565b602002602001018181525050505050505b600101613764565b50506001016136dc565b5050949350505050565b6001600160a01b0381165f90815260018301602052604081205415156107c1565b5f6107c18383670de0b6b3a76400006001614234565b5f6107c183670de0b6b3a76400008461428d565b5f6107c1613946836001600160401b0386166156d6565b600f0b614372565b6020808301516001600160a01b038088165f90815260a284526040808220928816825291909352909120546001600160401b03908116911614613a1457602082810180516001600160a01b038881165f81815260a286526040808220938a1680835293875290819020805467ffffffffffffffff19166001600160401b0395861617905593518451918252948101919091529216908201527facf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc559060600160405180910390a15b6001600160a01b038086165f90815260a060209081526040808320888452825280832093871683529281529082902083518154928501519385015163ffffffff16600160c01b0263ffffffff60c01b196001600160801b038616600160401b026001600160c01b03199095166001600160401b03909316929092179390931716919091179055600f0b15613af6576001600160a01b0385165f908152609f602090815260408083208784529091529020613ace90846135e3565b506001600160a01b0385165f908152609d60205260409020613af090856135d8565b50610d34565b80516001600160401b03165f03610d34576001600160a01b0385165f908152609f602090815260408083208784529091529020613b33908461407b565b506001600160a01b0385165f908152609f602090815260408083208784529091529020613b5f90613503565b5f03610d34576001600160a01b0385165f908152609d602052604090206121139085614070565b6001600160a01b038084165f90815260a160209081526040808320938616835292905220613bb59043836143dd565b604080516001600160a01b038086168252841660208201526001600160401b038316918101919091527f1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c9060600161302a565b60605f6107c1836143f1565b6001600160a01b038381165f90815260a360209081526040808320938616835292905290812054600f81810b600160801b909204900b035b5f81118015613c5e57508261ffff1682105b15610d34576001600160a01b038086165f90815260a3602090815260408083209388168352929052908120613c929061444a565b90505f5f613ca188848961335a565b91509150806040015163ffffffff16431015613cbf57505050610d34565b613ccc888489858561394e565b6001600160a01b038089165f90815260a360209081526040808320938b16835292905220613cf99061449c565b50613d0385615ac3565b9450613d0e84615adb565b9350505050613c4c565b60605f613d2483614519565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b0382165f908152609b60209081526040918290208251608081018452905463ffffffff808216835260ff600160201b830416151593830193909352650100000000008104831693820193909352600160481b909204166060820181905215801590613dd15750806060015163ffffffff164310155b15613deb57604081015163ffffffff168152600160208201525b63ffffffff82166040820152613e217f000000000000000000000000000000000000000000000000000000000000000043615875565b613e2c906001615875565b63ffffffff90811660608381019182526001600160a01b0386165f818152609b602090815260409182902087518154838a0151858b01519851928a1664ffffffffff1990921691909117600160201b91151591909102176cffffffffffffffff0000000000191665010000000000978916979097026cffffffff000000000000000000191696909617600160481b968816968702179055815192835294871694820194909452928301919091527f4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db910161302a565b6001600160a01b038281165f81815260a2602090815260408083209486168084529482528083205493835260a38252808320948352939052918220546001600160401b039091169190600f81810b600160801b909204900b03815b8181101561402c576001600160a01b038087165f90815260a3602090815260408083209389168352929052908120613f949083614540565b6001600160a01b038881165f90815260a0602090815260408083208584528252808320938b16835292815290829020825160608101845290546001600160401b0381168252600160401b8104600f0b92820192909252600160c01b90910463ffffffff1691810182905291925043101561400f57505061402c565b61401d86826020015161392f565b95505050806001019050613f5c565b506001600160a01b038086165f90815260a160209081526040808320938816835292905220839061405c9061419b565b6140669190615693565b9150509250929050565b5f6107c183836145af565b5f6107c1836001600160a01b0384166145af565b6033546001600160a01b03163314611d125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612fb1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6107c18383670de0b6b3a7640000614692565b5f61415f8460995f611132896132f7565b80156141685750815b8015611d3157505090516001600160401b031615159392505050565b5f6107c16001600160401b03808516908416615af0565b5f61083d82670de0b6b3a76400006146e7565b5f825f0182815481106141c3576141c36155a8565b905f5260205f200154905092915050565b5f81815260018301602052604081205461421957508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561083d565b505f61083d565b5f6107c18383670de0b6b3a764000061428d565b5f5f61424186868661428d565b9050600183600281111561425757614257615b1d565b14801561427357505f848061426e5761426e615b31565b868809115b15611d3157614283600182615b45565b9695505050505050565b5f80805f19858709858702925082811083820303915050805f036142c4578382816142ba576142ba615b31565b04925050506107c1565b80841161430b5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401612fb1565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f6001600160401b038211156143d95760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401612fb1565b5090565b61303383836001600160401b03841661471e565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561443e57602002820191905f5260205f20905b81548152602001906001019080831161442a575b50505050509050919050565b5f6144648254600f81810b600160801b909204900b131590565b1561448257604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f9081526001909101602052604090205490565b5f6144b68254600f81810b600160801b909204900b131590565b156144d457604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b5f60ff8216601f81111561083d57604051632cd44ac360e21b815260040160405180910390fd5b5f5f61456261454e84614821565b855461455d9190600f0b615b58565b61488a565b8454909150600160801b9004600f90810b9082900b1261459557604051632d0483c560e21b815260040160405180910390fd5b600f0b5f9081526001939093016020525050604090205490565b5f8181526001830160205260408120548015614689575f6145d1600183615680565b85549091505f906145e490600190615680565b9050818114614643575f865f018281548110614602576146026155a8565b905f5260205f200154905080875f018481548110614622576146226155a8565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061465457614654615b7f565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061083d565b5f91505061083d565b82545f90816146a3868683856148f3565b905080156146dd576146c7866146ba600184615680565b5f91825260209091200190565b54600160201b90046001600160e01b03166107bc565b5091949350505050565b81545f90801561471657614700846146ba600184615680565b54600160201b90046001600160e01b0316610839565b509092915050565b825480156147d4575f614736856146ba600185615680565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090851610156147885760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff8086169116036147d257826147a9866146ba600186615680565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216600160201b029190921617910155565b5f6001600160ff1b038211156143d95760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401612fb1565b80600f81900b81146148ee5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401612fb1565b919050565b5f5b81831015610a27575f6149088484614946565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561493257809250614940565b61493d816001615b45565b93505b506148f5565b5f6149546002848418615b93565b6107c190848416615b45565b6001600160a01b03811681146131d2575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156149aa576149aa614974565b60405290565b604051601f8201601f191681016001600160401b03811182821017156149d8576149d8614974565b604052919050565b803563ffffffff811681146148ee575f5ffd5b5f60408284031215614a03575f5ffd5b604080519081016001600160401b0381118282101715614a2557614a25614974565b6040529050808235614a3681614960565b8152614a44602084016149e0565b60208201525092915050565b5f5f5f60808486031215614a62575f5ffd5b8335614a6d81614960565b9250614a7c85602086016149f3565b91506060840135614a8c81614960565b809150509250925092565b81516001600160401b03168152602080830151600f0b9082015260408083015163ffffffff16908201526060810161083d565b5f5f60608385031215614adb575f5ffd5b8235614ae681614960565b9150614af584602085016149f3565b90509250929050565b5f60208284031215614b0e575f5ffd5b5035919050565b5f60208284031215614b25575f5ffd5b81356107c181614960565b80516001600160a01b0316825260209081015163ffffffff16910152565b5f8151808452602084019350602083015f5b82811015614b8957614b73868351614b30565b6040959095019460209190910190600101614b60565b5093949350505050565b602081525f6107c16020830184614b4e565b5f60408284031215614bb5575f5ffd5b6107c183836149f3565b5f5f83601f840112614bcf575f5ffd5b5081356001600160401b03811115614be5575f5ffd5b6020830191508360208260051b850101111561179d575f5ffd5b5f5f5f60408486031215614c11575f5ffd5b8335614c1c81614960565b925060208401356001600160401b03811115614c36575f5ffd5b614c4286828701614bbf565b9497909650939450505050565b5f6001600160401b03821115614c6757614c67614974565b5060051b60200190565b5f82601f830112614c80575f5ffd5b8135614c93614c8e82614c4f565b6149b0565b8082825260208201915060208360051b860101925085831115614cb4575f5ffd5b602085015b83811015614cda578035614ccc81614960565b835260209283019201614cb9565b5095945050505050565b5f5f5f60808486031215614cf6575f5ffd5b614d0085856149f3565b925060408401356001600160401b03811115614d1a575f5ffd5b614d2686828701614c71565b92505060608401356001600160401b03811115614d41575f5ffd5b614d4d86828701614c71565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614b89578151865260209586019590910190600101614d69565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614dde57603f19878603018452614dc9858351614d57565b94506020938401939190910190600101614dad565b50929695505050505050565b5f5f5f5f60a08587031215614dfd575f5ffd5b614e0786866149f3565b935060408501356001600160401b03811115614e21575f5ffd5b614e2d87828801614c71565b93505060608501356001600160401b03811115614e48575f5ffd5b614e5487828801614c71565b925050614e63608086016149e0565b905092959194509250565b5f5f60408385031215614e7f575f5ffd5b8235614e8a81614960565b915060208301356001600160401b03811115614ea4575f5ffd5b830160a08186031215614eb5575f5ffd5b809150509250929050565b5f5f60408385031215614ed1575f5ffd5b8235614edc81614960565b91506020830135614eb581614960565b5f8151808452602084019350602083015f5b82811015614b8957614f3786835180516001600160401b03168252602080820151600f0b9083015260409081015163ffffffff16910152565b6060959095019460209190910190600101614efe565b604081525f614f5f6040830185614b4e565b8281036020840152611d318185614eec565b5f8151808452602084019350602083015f5b82811015614b895781516001600160a01b0316865260209586019590910190600101614f83565b602081525f6107c16020830184614f71565b5f5f60408385031215614fcd575f5ffd5b82356001600160401b03811115614fe2575f5ffd5b614fee85828601614c71565b9250506020830135614eb581614960565b602080825282518282018190525f918401906040840190835b8181101561503f5783516001600160401b0316835260209384019390920191600101615018565b509095945050505050565b5f5f5f5f5f6060868803121561505e575f5ffd5b853561506981614960565b945060208601356001600160401b03811115615083575f5ffd5b61508f88828901614bbf565b90955093505060408601356001600160401b038111156150ad575f5ffd5b6150b988828901614bbf565b969995985093965092949392505050565b5f5f5f5f606085870312156150dd575f5ffd5b84356150e881614960565b93506150f6602086016149e0565b925060408501356001600160401b03811115615110575f5ffd5b61511c87828801614bbf565b95989497509550505050565b5f5f60408385031215615139575f5ffd5b823561514481614960565b915060208301356001600160401b0381111561515e575f5ffd5b61406685828601614c71565b602081525f82518060208401525f5b818110156151965760208186018101516040868401015201615179565b505f604082850101526040601f19601f83011684010191505092915050565b5f5f604083850312156151c6575f5ffd5b82356151d181614960565b9150614af5602084016149e0565b5f602082840312156151ef575f5ffd5b813560ff811681146107c1575f5ffd5b5f6060828403121561520f575f5ffd5b50919050565b5f60208284031215615225575f5ffd5b81356001600160401b0381111561523a575f5ffd5b610839848285016151ff565b5f5f5f60808486031215615258575f5ffd5b83356001600160401b0381111561526d575f5ffd5b61527986828701614c71565b935050614a7c85602086016149f3565b602081525f6107c16020830184614eec565b5f5f5f606084860312156152ad575f5ffd5b83356152b881614960565b925060208401356001600160401b038111156152d2575f5ffd5b6152de86828701614c71565b9250506152ed604085016149e0565b90509250925092565b5f5f60408385031215615307575f5ffd5b823561531281614960565b915060208301356001600160401b0381111561532c575f5ffd5b8301601f8101851361533c575f5ffd5b803561534a614c8e82614c4f565b8082825260208201915060208360051b85010192508783111561536b575f5ffd5b602084015b838110156154905780356001600160401b0381111561538d575f5ffd5b85016080818b03601f190112156153a2575f5ffd5b6153aa614988565b6153b78b602084016149f3565b815260608201356001600160401b038111156153d1575f5ffd5b6153e08c602083860101614c71565b60208301525060808201356001600160401b038111156153fe575f5ffd5b6020818401019250508a601f830112615415575f5ffd5b8135615423614c8e82614c4f565b8082825260208201915060208360051b86010192508d831115615444575f5ffd5b6020850194505b8285101561547a5784356001600160401b0381168114615469575f5ffd5b82526020948501949091019061544b565b6040840152505084525060209283019201615370565b50809450505050509250929050565b5f5f5f604084860312156154b1575f5ffd5b83356154bc81614960565b925060208401356001600160401b038111156154d6575f5ffd5b8401601f810186136154e6575f5ffd5b80356001600160401b038111156154fb575f5ffd5b86602082840101111561550c575f5ffd5b939660209190910195509293505050565b5f5f6040838503121561552e575f5ffd5b823561553981614960565b915060208301356001600160401b03811115615553575f5ffd5b614066858286016151ff565b5f5f60408385031215615570575f5ffd5b823561557b81614960565b946020939093013593505050565b5f60208284031215615599575f5ffd5b815180151581146107c1575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235603e198336030181126155d0575f5ffd5b9190910192915050565b5f602082840312156155ea575f5ffd5b6107c1826149e0565b6040810161083d8284614b30565b5f5f8335601e19843603018112615616575f5ffd5b8301803591506001600160401b0382111561562f575f5ffd5b6020019150600581901b360382131561179d575f5ffd5b606081016156548285614b30565b6001600160a01b039290921660409190910152919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561083d5761083d61566c565b6001600160401b03828116828216039081111561083d5761083d61566c565b5f81600f0b60016001607f1b031981036156ce576156ce61566c565b5f0392915050565b600f81810b9083900b0160016001607f1b03811360016001607f1b03198212171561083d5761083d61566c565b6001600160a01b038616815260c081016157206020830187614b30565b6001600160a01b039490941660608201526001600160401b0392909216608083015263ffffffff1660a09091015292915050565b5f5f8335601e19843603018112615769575f5ffd5b8301803591506001600160401b03821115615782575f5ffd5b60200191503681900382131561179d575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b03881681525f60c082016157dc602084018a614b30565b60c060608401528690528660e083015f5b8881101561581d57823561580081614960565b6001600160a01b03168252602092830192909101906001016157ed565b5083810360808501526158308188614d57565b91505082810360a0840152615846818587615796565b9a9950505050505050505050565b5f60208284031215615864575f5ffd5b813561ffff811681146107c1575f5ffd5b63ffffffff818116838216019081111561083d5761083d61566c565b8183526020830192505f815f5b84811015614b895763ffffffff6158b4836149e0565b168652602095860195919091019060010161589e565b6001600160a01b038581168252841660208201526060604082018190525f906142839083018486615891565b602081525f610d49602083018486615796565b6001600160a01b038781168252861660208201526080604082018190525f906159359083018688615891565b8281036060840152615948818587615796565b9998505050505050505050565b5f60208284031215615965575f5ffd5b81516107c181614960565b8051602080830151919081101561520f575f1960209190910360031b1b16919050565b604081525f6159a56040830185614f71565b8281036020840152611d318185614f71565b5f602082840312156159c7575f5ffd5b81516001600160401b038111156159dc575f5ffd5b8201601f810184136159ec575f5ffd5b80516159fa614c8e82614c4f565b8082825260208201915060208360051b850101925086831115615a1b575f5ffd5b602084015b83811015615ab85780516001600160401b03811115615a3d575f5ffd5b8501603f81018913615a4d575f5ffd5b6020810151615a5e614c8e82614c4f565b808282526020820191506020808460051b8601010192508b831115615a81575f5ffd5b6040840193505b82841015615aa3578351825260209384019390910190615a88565b86525050602093840193919091019050615a20565b509695505050505050565b5f60018201615ad457615ad461566c565b5060010190565b5f81615ae957615ae961566c565b505f190190565b600f82810b9082900b0360016001607f1b0319811260016001607f1b038213171561083d5761083d61566c565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b8082018082111561083d5761083d61566c565b8082018281125f831280158216821582161715615b7757615b7761566c565b505092915050565b634e487b7160e01b5f52603160045260245ffd5b5f82615bad57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220ba4081e0997ae37b1bc8c99d6fdc42e5ac9d0999f5c98777049947777843ebc164736f6c634300081b0033
3725    /// ```
3726    #[rustfmt::skip]
3727    #[allow(clippy::all)]
3728    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3729        b"a\x01@`@R4\x80\x15a\0\x10W__\xFD[P`@Qa_\xEB8\x03\x80a_\xEB\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[\xE8a\x04\x03_9_a\x1B7\x01R_\x81\x81a\x04O\x01Ra5l\x01R_\x81\x81a\x05\xB3\x01Ra=\xFC\x01R_\x81\x81a\x03a\x01R\x81\x81a\x1F\xCE\x01Ra&\xD0\x01R_\x81\x81a\x072\x01R\x81\x81a\x14\xD5\x01R\x81\x81a\x1Bk\x01R\x81\x81a\x1B\xD5\x01R\x81\x81a)\xCE\x01Ra6K\x01R_\x81\x81a\x05\xDA\x01R\x81\x81a\x08X\x01R\x81\x81a\x1Cz\x01Ra1\xE3\x01Ra[\xE8_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x02\xB1W_5`\xE0\x1C\x80cl\xFBD\x81\x11a\x01{W\x80c\xA9\x82\x18!\x11a\0\xE4W\x80c\xC2!\xD8\xAE\x11a\0\x9EW\x80c\xDF\\\xF7#\x11a\0yW\x80c\xDF\\\xF7#\x14a\x07-W\x80c\xF2\xFD\xE3\x8B\x14a\x07TW\x80c\xF6\x05\xCE\x08\x14a\x07gW\x80c\xFA\xBC\x1C\xBC\x14a\x07zW__\xFD[\x80c\xC2!\xD8\xAE\x14a\x06\xF4W\x80c\xCDm\xC6\x87\x14a\x07\x07W\x80c\xD3\xD9o\xF4\x14a\x07\x1AW__\xFD[\x80c\xA9\x82\x18!\x14a\x06fW\x80c\xAD\xC2\xE3\xD9\x14a\x06yW\x80c\xB2Dz\xF7\x14a\x06\x8CW\x80c\xB6k\xD9\x89\x14a\x06\x9FW\x80c\xB9\xFB\xAE\xD1\x14a\x06\xB2W\x80c\xBA\x1A\x84\xE5\x14a\x06\xE1W__\xFD[\x80c\x88o\x11\x95\x11a\x015W\x80c\x88o\x11\x95\x14a\x05\xD5W\x80c\x8C\xE6HT\x14a\x05\xFCW\x80c\x8D\xA5\xCB[\x14a\x06\x1CW\x80c\x94\xD7\xD0\x0C\x14a\x06-W\x80c\x95(\x99\xEE\x14a\x06@W\x80c\xA93>\xC8\x14a\x06SW__\xFD[\x80cl\xFBD\x81\x14a\x05BW\x80cn4\x92\xB5\x14a\x05mW\x80cn\x87]\xBA\x14a\x05\x80W\x80cqP\x18\xA6\x14a\x05\x93W\x80cy\xAEP\xCD\x14a\x05\x9BW\x80c{\xC1\xEFa\x14a\x05\xAEW__\xFD[\x80cAw\xA8|\x11a\x02\x1DW\x80cT\xFDMP\x11a\x01\xD7W\x80cT\xFDMP\x14a\x04\xCAW\x80cV\xC4\x83\xE6\x14a\x04\xDFW\x80cY\\jg\x14a\x04\xF2W\x80cZ\xC8j\xB7\x14a\x04\xFAW\x80c\\\x97Z\xBB\x14a\x05\x1DW\x80cg\r;\xA2\x14a\x05/W__\xFD[\x80cAw\xA8|\x14a\x04*W\x80cFW\xE2j\x14a\x04JW\x80cJ\x10\xFF\xE5\x14a\x04qW\x80cKPF\xEF\x14a\x04\x91W\x80cP\xFE\xEA \x14a\x04\xA4W\x80cTz\xFB\x87\x14a\x04\xB7W__\xFD[\x80c)\x81\xEBw\x11a\x02nW\x80c)\x81\xEBw\x14a\x03\\W\x80c+E:\x9A\x14a\x03\x98W\x80c+\xAB,J\x14a\x03\xB8W\x80c0L\x10\xCD\x14a\x03\xCBW\x80c65 W\x14a\x03\xF6W\x80c@\x12\r\xAB\x14a\x04\tW__\xFD[\x80c\x10\xE1\xB9\xB8\x14a\x02\xB5W\x80c\x13R\xC3\xE6\x14a\x02\xDEW\x80c\x13d9\xDD\x14a\x03\x01W\x80c\x15\xFEP(\x14a\x03\x16W\x80c&\r\xC7X\x14a\x036W\x80c&\x1F\x84\xE0\x14a\x03IW[__\xFD[a\x02\xC8a\x02\xC36`\x04aJPV[a\x07\x8DV[`@Qa\x02\xD5\x91\x90aJ\x97V[`@Q\x80\x91\x03\x90\xF3[a\x02\xF1a\x02\xEC6`\x04aJ\xCAV[a\x07\xC8V[`@Q\x90\x15\x15\x81R` \x01a\x02\xD5V[a\x03\x14a\x03\x0F6`\x04aJ\xFEV[a\x08CV[\0[a\x03)a\x03$6`\x04aK\x15V[a\t\x18V[`@Qa\x02\xD5\x91\x90aK\x93V[a\x02\xF1a\x03D6`\x04aK\xA5V[a\n/V[a\x03\x14a\x03W6`\x04aK\xFFV[a\n`V[a\x03\x83\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\xD5V[a\x03\xABa\x03\xA66`\x04aL\xE4V[a\r;V[`@Qa\x02\xD5\x91\x90aM\x87V[a\x03\xABa\x03\xC66`\x04aM\xEAV[a\rQV[a\x03\xDEa\x03\xD96`\x04aK\x15V[a\r\xF0V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02\xD5V[a\x03\x14a\x04\x046`\x04aNnV[a\x0E\x1FV[a\x04\x1Ca\x04\x176`\x04aN\xC0V[a\x16)V[`@Qa\x02\xD5\x92\x91\x90aOMV[a\x04=a\x0486`\x04aK\xA5V[a\x17\xA4V[`@Qa\x02\xD5\x91\x90aO\xAAV[a\x03\xDE\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\x04\x84a\x04\x7F6`\x04aO\xBCV[a\x17\xC8V[`@Qa\x02\xD5\x91\x90aO\xFFV[a\x03\x14a\x04\x9F6`\x04aPJV[a\x18pV[a\x03\x14a\x04\xB26`\x04aP\xCAV[a\x19*V[a\x04\x84a\x04\xC56`\x04aQ(V[a\x1A\x88V[a\x04\xD2a\x1B0V[`@Qa\x02\xD5\x91\x90aQjV[a\x03\x14a\x04\xED6`\x04aQ\xB5V[a\x1B`V[a\x03\x14a\x1CeV[a\x02\xF1a\x05\x086`\x04aQ\xDFV[`fT`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`fT[`@Q\x90\x81R` \x01a\x02\xD5V[a\x02\xF1a\x05=6`\x04aJ\xCAV[a\x1D\x14V[a\x05Ua\x05P6`\x04aN\xC0V[a\x1D%V[`@Q`\x01`\x01`@\x1B\x03\x90\x91\x16\x81R` \x01a\x02\xD5V[a\x03\x14a\x05{6`\x04aR\x15V[a\x1D:V[a\x04=a\x05\x8E6`\x04aK\xA5V[a!\x1BV[a\x03\x14a!,V[a\x03)a\x05\xA96`\x04aK\x15V[a!=V[a\x03\x83\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\xDE\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\x06\x0Fa\x06\n6`\x04aRFV[a\"\x17V[`@Qa\x02\xD5\x91\x90aR\x89V[`3T`\x01`\x01`\xA0\x1B\x03\x16a\x03\xDEV[a\x04\x84a\x06;6`\x04aR\x9BV[a\"\xD3V[a\x03\x14a\x06N6`\x04aR\xF6V[a#\xBFV[a\x05Ua\x06a6`\x04aN\xC0V[a(~V[a\x03\x14a\x06t6`\x04aT\x9FV[a(\xADV[a\x03\x14a\x06\x876`\x04aU\x1DV[a)_V[a\x05!a\x06\x9A6`\x04aK\xA5V[a,\xBCV[a\x03\x14a\x06\xAD6`\x04aP\xCAV[a,\xDEV[a\x06\xC5a\x06\xC06`\x04aK\x15V[a.8V[`@\x80Q\x92\x15\x15\x83Rc\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x02\xD5V[a\x05!a\x06\xEF6`\x04aK\x15V[a.\xD2V[a\x04=a\x07\x026`\x04aJ\xCAV[a.\xF2V[a\x03\x14a\x07\x156`\x04aU_V[a/\x1BV[a\x03\x14a\x07(6`\x04aN\xC0V[a08V[a\x03\xDE\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\x14a\x07b6`\x04aK\x15V[a1\\V[a\x05Ua\x07u6`\x04aN\xC0V[a1\xD5V[a\x03\x14a\x07\x886`\x04aJ\xFEV[a1\xE1V[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R\x90a\x07\xBC\x85a\x07\xB6\x86a2\xF7V[\x85a3ZV[\x92PPP[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9E` R`@\x81 \x81\x90\x81a\x07\xEB\x85a2\xF7V[\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\x089WP\x80` \x01Qc\xFF\xFF\xFF\xFF\x16C\x11\x15[\x91PP[\x92\x91PPV[`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01R\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\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xA5W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xC9\x91\x90aU\x89V[a\x08\xE6W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x81\x81\x16\x81\x14a\t\x0BW`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\x14\x82a4\xC6V[PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9D` R`@\x81 ``\x91\x90a\t<\x90a5\x03V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\tWWa\tWaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t\x9BW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\tuW\x90P[P\x90P_[\x82\x81\x10\x15a\n'W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a\n\x02\x90a\t\xCD\x90\x83a5\x0CV[`@\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\n\x14Wa\n\x14aU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\t\xA0V[P\x93\x92PPPV[` \x80\x82\x01Q\x82Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x92R`@\x82 a\x08=\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a5\x17\x16V[\x82a\nj\x81a5.V[a\n\x87W`@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\xBFW`@QcH\xF7\xDB\xB9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x82\x81\x10\x15a\r4W_`@Q\x80`@\x01`@R\x80\x87`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86\x86\x85\x81\x81\x10a\n\xF6Wa\n\xF6aU\xA8V[\x90P` \x02\x81\x01\x90a\x0B\x08\x91\x90aU\xBCV[a\x0B\x16\x90` \x81\x01\x90aU\xDAV[c\xFF\xFF\xFF\xFF\x16\x81RP\x90Pa\x0B`\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_ a5\xD8\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x0B}W`@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\xD3\x91\x90aU\xF3V[`@Q\x80\x91\x03\x90\xA1_a\x0B\xE5\x82a2\xF7V[\x90P_[\x86\x86\x85\x81\x81\x10a\x0B\xFBWa\x0B\xFBaU\xA8V[\x90P` \x02\x81\x01\x90a\x0C\r\x91\x90aU\xBCV[a\x0C\x1B\x90` \x81\x01\x90aV\x01V[\x90P\x81\x10\x15a\r)Wa\x0C\x91\x87\x87\x86\x81\x81\x10a\x0C9Wa\x0C9aU\xA8V[\x90P` \x02\x81\x01\x90a\x0CK\x91\x90aU\xBCV[a\x0CY\x90` \x81\x01\x90aV\x01V[\x83\x81\x81\x10a\x0CiWa\x0CiaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x0C~\x91\x90aK\x15V[_\x84\x81R`\x99` R`@\x90 \x90a5\xE3V[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\xC6Wa\x0C\xC6aU\xA8V[\x90P` \x02\x81\x01\x90a\x0C\xD8\x91\x90aU\xBCV[a\x0C\xE6\x90` \x81\x01\x90aV\x01V[\x84\x81\x81\x10a\x0C\xF6Wa\x0C\xF6aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\r\x0B\x91\x90aK\x15V[`@Qa\r\x19\x92\x91\x90aVFV[`@Q\x80\x91\x03\x90\xA1`\x01\x01a\x0B\xE9V[PPP`\x01\x01a\n\xC1V[PPPPPV[``a\rI\x84\x84\x84Ca5\xF7V[\x94\x93PPPPV[``a\r_\x85\x85\x85\x85a5\xF7V[\x90P_[\x84Q\x81\x10\x15a\r\xE7Wa\r\x8F\x85\x82\x81Q\x81\x10a\r\x81Wa\r\x81aU\xA8V[` \x02` \x01\x01Q\x87a\x07\xC8V[a\r\xDFW_[\x84Q\x81\x10\x15a\r\xDDW_\x83\x83\x81Q\x81\x10a\r\xB1Wa\r\xB1aU\xA8V[` \x02` \x01\x01Q\x82\x81Q\x81\x10a\r\xCAWa\r\xCAaU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\r\x95V[P[`\x01\x01a\rcV[P\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x90\x81R`\x97` R`@\x81 T\x90\x91\x16\x80\x15a\x0E\x18W\x80a\x07\xC1V[P\x90\x91\x90PV[`fT`\x01\x90`\x02\x90\x81\x16\x03a\x0EHW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a\x0ER\x81a5.V[a\x0EoW`@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\x0E\x9D\x91\x90aU\xDAV[c\xFF\xFF\xFF\xFF\x16\x90R\x90Pa\x0E\xB4``\x85\x01\x85aV\x01V[\x90Pa\x0E\xC3`@\x86\x01\x86aV\x01V[\x90P\x14a\x0E\xE3W`@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\x0F\x15\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a5\x17\x16V[a\x0F2W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0FHa\x0FB` \x86\x01\x86aK\x15V[\x82a\x07\xC8V[a\x0FeW`@Qc\xEB\xBF\xF4\x97`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x0Fs`@\x86\x01\x86aV\x01V[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0F\x8CWa\x0F\x8CaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0F\xB5W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[a\x0F\xC7`@\x87\x01\x87aV\x01V[\x90P\x81\x10\x15a\x15\xBBW\x80\x15\x80a\x10ZWPa\x0F\xE5`@\x87\x01\x87aV\x01V[a\x0F\xF0`\x01\x84aV\x80V[\x81\x81\x10a\x0F\xFFWa\x0F\xFFaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x10\x14\x91\x90aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16a\x10*`@\x88\x01\x88aV\x01V[\x83\x81\x81\x10a\x10:Wa\x10:aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x10O\x91\x90aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x11[a\x10wW`@Qc\x9F\x1C\x80S`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x10\x84``\x87\x01\x87aV\x01V[\x82\x81\x81\x10a\x10\x94Wa\x10\x94aU\xA8V[\x90P` \x02\x015_\x10\x80\x15a\x10\xD4WPg\r\xE0\xB6\xB3\xA7d\0\0a\x10\xBA``\x88\x01\x88aV\x01V[\x83\x81\x81\x10a\x10\xCAWa\x10\xCAaU\xA8V[\x90P` \x02\x015\x11\x15[a\x10\xF1W`@Qc\x13S`1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11Ma\x11\x01`@\x88\x01\x88aV\x01V[\x83\x81\x81\x10a\x11\x11Wa\x11\x11aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x11&\x91\x90aK\x15V[`\x99_a\x112\x87a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a8\xE4\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x11jW`@Qc1\xBC4'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80a\x11\xBCa\x11|` \x8A\x01\x8AaK\x15V[a\x11\x85\x87a2\xF7V[a\x11\x92`@\x8C\x01\x8CaV\x01V[\x87\x81\x81\x10a\x11\xA2Wa\x11\xA2aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x11\xB7\x91\x90aK\x15V[a3ZV[\x80Q\x91\x93P\x91P`\x01`\x01`@\x1B\x03\x16_\x03a\x11\xD9WPPa\x15\xB3V[_a\x12\x14a\x11\xEA``\x8B\x01\x8BaV\x01V[\x86\x81\x81\x10a\x11\xFAWa\x11\xFAaU\xA8V[\x85Q`\x01`\x01`@\x1B\x03\x16\x92` \x90\x91\x02\x015\x90Pa9\x05V[\x83Q\x90\x91Pa\x12/`\x01`\x01`@\x1B\x03\x80\x84\x16\x90\x83\x16a9\x1BV[\x86\x86\x81Q\x81\x10a\x12AWa\x12AaU\xA8V[` \x02` \x01\x01\x81\x81RPP\x81\x83_\x01\x81\x81Qa\x12^\x91\x90aV\x93V[`\x01`\x01`@\x1B\x03\x16\x90RP\x83Q\x82\x90\x85\x90a\x12{\x90\x83\x90aV\x93V[`\x01`\x01`@\x1B\x03\x16\x90RP` \x84\x01\x80Q\x83\x91\x90a\x12\x9B\x90\x83\x90aV\x93V[`\x01`\x01`@\x1B\x03\x16\x90RP` \x83\x01Q_`\x0F\x91\x90\x91\x0B\x12\x15a\x13\xB3W_a\x12\xFEa\x12\xCA``\x8D\x01\x8DaV\x01V[\x88\x81\x81\x10a\x12\xDAWa\x12\xDAaU\xA8V[\x90P` \x02\x015\x85` \x01Qa\x12\xEF\x90aV\xB2V[`\x01`\x01`\x80\x1B\x03\x16\x90a9\x05V[\x90P\x80`\x01`\x01`@\x1B\x03\x16\x84` \x01\x81\x81Qa\x13\x1B\x91\x90aV\xD6V[`\x0F\x0B\x90RP\x7F\x14\x87\xAFT\x18\xC4~\xE5\xEAE\xEFJ\x939\x86h\x12\x08\x90wJ\x9E\x13H~a\xE9\xDC;\xAFv\xDDa\x13O` \x8D\x01\x8DaK\x15V[\x89a\x13]`@\x8F\x01\x8FaV\x01V[\x8A\x81\x81\x10a\x13mWa\x13maU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x13\x82\x91\x90aK\x15V[a\x13\x93\x88_\x01Q\x89` \x01Qa9/V[\x88`@\x01Q`@Qa\x13\xA9\x95\x94\x93\x92\x91\x90aW\x03V[`@Q\x80\x91\x03\x90\xA1P[a\x14\x05a\x13\xC3` \x8C\x01\x8CaK\x15V[a\x13\xCC\x89a2\xF7V[a\x13\xD9`@\x8E\x01\x8EaV\x01V[\x89\x81\x81\x10a\x13\xE9Wa\x13\xE9aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x13\xFE\x91\x90aK\x15V[\x87\x87a9NV[\x7F\x14\x87\xAFT\x18\xC4~\xE5\xEAE\xEFJ\x939\x86h\x12\x08\x90wJ\x9E\x13H~a\xE9\xDC;\xAFv\xDDa\x143` \x8C\x01\x8CaK\x15V[\x88a\x14A`@\x8E\x01\x8EaV\x01V[\x89\x81\x81\x10a\x14QWa\x14QaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x14f\x91\x90aK\x15V[\x86Q`@Qa\x14z\x94\x93\x92\x91\x90C\x90aW\x03V[`@Q\x80\x91\x03\x90\xA1a\x14\xCBa\x14\x92` \x8C\x01\x8CaK\x15V[a\x14\x9F`@\x8D\x01\x8DaV\x01V[\x88\x81\x81\x10a\x14\xAFWa\x14\xAFaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x14\xC4\x91\x90aK\x15V[\x86Qa;\x86V[`\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\x15\x07` \x8D\x01\x8DaK\x15V[a\x15\x14`@\x8E\x01\x8EaV\x01V[\x89\x81\x81\x10a\x15$Wa\x15$aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x159\x91\x90aK\x15V[\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\x15\x98W__\xFD[PZ\xF1\x15\x80\x15a\x15\xAAW=__>=_\xFD[PPPPPPPP[`\x01\x01a\x0F\xBAV[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\xEA` \x87\x01\x87aK\x15V[\x83a\x15\xF8`@\x89\x01\x89aV\x01V[\x85a\x16\x06`\x80\x8C\x01\x8CaWTV[`@Qa\x16\x19\x97\x96\x95\x94\x93\x92\x91\x90aW\xBEV[`@Q\x80\x91\x03\x90\xA1PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9D` R`@\x81 ``\x91\x82\x91a\x16N\x90a5\x03V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16iWa\x16iaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16\xADW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x16\x87W\x90P[P\x90P_\x82`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\xC9Wa\x16\xC9aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x17\x12W\x81` \x01[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01R\x82R_\x19\x90\x92\x01\x91\x01\x81a\x16\xE7W\x90P[P\x90P_[\x83\x81\x10\x15a\x17\x95W`\x01`\x01`\xA0\x1B\x03\x88\x16_\x90\x81R`\x9D` R`@\x81 a\x17D\x90a\t\xCD\x90\x84a5\x0CV[\x90P\x80\x84\x83\x81Q\x81\x10a\x17YWa\x17YaU\xA8V[` \x02` \x01\x01\x81\x90RPa\x17o\x89\x82\x8Aa\x07\x8DV[\x83\x83\x81Q\x81\x10a\x17\x81Wa\x17\x81aU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01RP`\x01\x01a\x17\x17V[P\x90\x93P\x91PP[\x92P\x92\x90PV[``_a\x07\xC1`\x99_a\x17\xB6\x86a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a<\x08V[``_\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x17\xE4Wa\x17\xE4aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x18\rW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x84Q\x81\x10\x15a\n'Wa\x18>\x85\x82\x81Q\x81\x10a\x180Wa\x180aU\xA8V[` \x02` \x01\x01Q\x85a(~V[\x82\x82\x81Q\x81\x10a\x18PWa\x18PaU\xA8V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x18\x12V[`fT_\x90`\x01\x90\x81\x16\x03a\x18\x98W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83\x82\x14a\x18\xB8W`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x84\x81\x10\x15a\x19!Wa\x19\x19\x87\x87\x87\x84\x81\x81\x10a\x18\xD8Wa\x18\xD8aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x18\xED\x91\x90aK\x15V[\x86\x86\x85\x81\x81\x10a\x18\xFFWa\x18\xFFaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x19\x14\x91\x90aXTV[a<\x14V[`\x01\x01a\x18\xBAV[PPPPPPPV[\x83a\x194\x81a5.V[a\x19QW`@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}\x82a2\xF7V[\x90Pa\x19\xBE\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_ a5\x17\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x19\xDBW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x84\x81\x10\x15a\x1A~Wa\x19\xFA\x86\x86\x83\x81\x81\x10a\x0CiWa\x0CiaU\xA8V[a\x1A\x17W`@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\x1AKWa\x1AKaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x1A`\x91\x90aK\x15V[`@Qa\x1An\x92\x91\x90aVFV[`@Q\x80\x91\x03\x90\xA1`\x01\x01a\x19\xDDV[PPPPPPPPV[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1A\xA4Wa\x1A\xA4aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1A\xCDW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a\n'Wa\x1A\xFE\x85\x85\x83\x81Q\x81\x10a\x1A\xF1Wa\x1A\xF1aU\xA8V[` \x02` \x01\x01Qa(~V[\x82\x82\x81Q\x81\x10a\x1B\x10Wa\x1B\x10aU\xA8V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x1A\xD2V[``a\x1B[\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=\x18V[\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[Wa\x1B\x99\x82a5.V[a\x1B\xB6W`@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\x83\x81\x16`\x04\x83\x01R\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\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\x1AW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C>\x91\x90aU\x89V[a\x1C[W`@Qc\xCC\xEA\x9Eo`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\x14\x82\x82a=UV[`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01R\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\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\xC7W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xEB\x91\x90aU\x89V[a\x1D\x08W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1D\x12_\x19a4\xC6V[V[_a\x07\xC1\x83`\x9A_a\x112\x86a2\xF7V[__a\x1D1\x84\x84a?\x01V[\x95\x94PPPPPV[`fT`\x02\x90`\x04\x90\x81\x16\x03a\x1DcW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1Dxa\x1Ds` \x84\x01\x84aK\x15V[a5.V[\x80a\x1D\x91WPa\x1D\x91a\x1Ds`@\x84\x01` \x85\x01aK\x15V[a\x1D\xAEW`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[a\x1D\xBD`@\x84\x01\x84aV\x01V[\x90P\x81\x10\x15a \x7FW_`@Q\x80`@\x01`@R\x80\x85` \x01` \x81\x01\x90a\x1D\xE5\x91\x90aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x1E\0`@\x87\x01\x87aV\x01V[\x85\x81\x81\x10a\x1E\x10Wa\x1E\x10aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x1E%\x91\x90aU\xDAV[c\xFF\xFF\xFF\xFF\x16\x81RP\x90Pa\x1Er\x81` \x01Qc\xFF\xFF\xFF\xFF\x16`\x98_\x87` \x01` \x81\x01\x90a\x1ET\x91\x90aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x90a5\x17V[a\x1E\x8FW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x9E_a\x1E\x9F` \x87\x01\x87aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _a\x1E\xC8\x83a2\xF7V[\x81R` \x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16a\x1E\xF8W`@Qc%\x13\x1DO`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1F2a\x1F\x04\x82a2\xF7V[`\x9C_a\x1F\x14` \x89\x01\x89aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x90a@pV[Pa\x1Fja\x1FC` \x86\x01\x86aK\x15V[`\x9A_a\x1FO\x85a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a@{\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[Pa\x1Fx` \x85\x01\x85aK\x15V[`\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\x1F\xB0\x91\x90aU\xF3V[`@Q\x80\x91\x03\x90\xA2`@\x80Q\x80\x82\x01\x90\x91R_\x81R` \x81\x01a\x1F\xF3\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\0CaXuV[c\xFF\xFF\xFF\xFF\x16\x90R`\x9E_a \x0B` \x88\x01\x88aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _a 4\x84a2\xF7V[\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\x1D\xB0V[Pa \x93a\x03\xD9`@\x84\x01` \x85\x01aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16c0<\xA9Va \xAE` \x85\x01\x85aK\x15V[a \xBE`@\x86\x01` \x87\x01aK\x15V[a \xCB`@\x87\x01\x87aV\x01V[`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a \xEA\x94\x93\x92\x91\x90aX\xCAV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a!\x01W__\xFD[PZ\xF1\x15\x80\x15a!\x13W=__>=_\xFD[PPPPPPV[``a\x08=`\x9A_a\x17\xB6\x85a2\xF7V[a!4a@\x8FV[a\x1D\x12_a@\xE9V[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9C` R`@\x81 ``\x91\x90a!a\x90a5\x03V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a!|Wa!|aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a!\xC0W\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a!\x9AW\x90P[P\x90P_[\x82\x81\x10\x15a\n'W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9C` R`@\x90 a!\xF2\x90a\t\xCD\x90\x83a5\x0CV[\x82\x82\x81Q\x81\x10a\"\x04Wa\"\x04aU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a!\xC5V[``_\x84Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\"3Wa\"3aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\"|W\x81` \x01[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01R\x82R_\x19\x90\x92\x01\x91\x01\x81a\"QW\x90P[P\x90P_[\x85Q\x81\x10\x15a\r\xE7Wa\"\xAE\x86\x82\x81Q\x81\x10a\"\x9FWa\"\x9FaU\xA8V[` \x02` \x01\x01Q\x86\x86a\x07\x8DV[\x82\x82\x81Q\x81\x10a\"\xC0Wa\"\xC0aU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\"\x81V[``_\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\"\xEFWa\"\xEFaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a#\x18W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x84Q\x81\x10\x15a\r\xE7W`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xA1` R`@\x81 \x86Qa#\x8D\x92\x87\x92\x91\x89\x90\x86\x90\x81\x10a#XWa#XaU\xA8V[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ aA:\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82\x82\x81Q\x81\x10a#\x9FWa#\x9FaU\xA8V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a#\x1DV[`fT_\x90`\x01\x90\x81\x16\x03a#\xE7W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a#\xF0\x83a5.V[a$\rW`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___a$\x19\x86a.8V[\x91P\x91P\x81a$;W`@Qc\xFAU\xFC\x81`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x91P_\x90P[\x83Q\x81\x10\x15a\r4W\x83\x81\x81Q\x81\x10a$\\Wa$\\aU\xA8V[` \x02` \x01\x01Q`@\x01QQ\x84\x82\x81Q\x81\x10a${Wa${aU\xA8V[` \x02` \x01\x01Q` \x01QQ\x14a$\xA6W`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x84\x82\x81Q\x81\x10a$\xB9Wa$\xB9aU\xA8V[` \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$\xF9\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a5\x17\x16V[a%\x16W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a%!\x87\x83a\x07\xC8V[\x90P_[\x86\x84\x81Q\x81\x10a%7Wa%7aU\xA8V[` \x02` \x01\x01Q` \x01QQ\x81\x10\x15a(sW_\x87\x85\x81Q\x81\x10a%^Wa%^aU\xA8V[` \x02` \x01\x01Q` \x01Q\x82\x81Q\x81\x10a%{Wa%{aU\xA8V[` \x02` \x01\x01Q\x90Pa%\x92\x89\x82a\xFF\xFFa<\x14V[__a%\xA1\x8Ba\x07\xB6\x88a2\xF7V[\x91P\x91P\x80`@\x01Qc\xFF\xFF\xFF\xFF\x16_\x14a%\xCFW`@Qc\r\x8F\xCB\xE3`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a%\xDC\x87\x85\x84\x89aANV[\x90Pa&!\x82_\x01Q\x8C\x8A\x81Q\x81\x10a%\xF7Wa%\xF7aU\xA8V[` \x02` \x01\x01Q`@\x01Q\x87\x81Q\x81\x10a&\x14Wa&\x14aU\xA8V[` \x02` \x01\x01QaA\x84V[`\x0F\x0B` \x83\x01\x81\x90R_\x03a&JW`@QcF\x06\x17\x93`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x82` \x01Q`\x0F\x0B\x12\x15a'\x8EW\x80\x15a'\x10Wa&\xCBa&k\x88a2\xF7V[`\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&\xF5\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\0CaXuV[a'\0\x90`\x01aXuV[c\xFF\xFF\xFF\xFF\x16`@\x83\x01Ra'\xFBV[a'\"\x83` \x01Q\x83` \x01Qa9/V[`\x01`\x01`@\x1B\x03\x16` \x84\x01R\x8AQ\x8B\x90\x89\x90\x81\x10a'DWa'DaU\xA8V[` \x02` \x01\x01Q`@\x01Q\x85\x81Q\x81\x10a'aWa'aaU\xA8V[` \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'\xFBV[_\x82` \x01Q`\x0F\x0B\x13\x15a'\xFBWa'\xAF\x83` \x01Q\x83` \x01Qa9/V[`\x01`\x01`@\x1B\x03\x90\x81\x16` \x85\x01\x81\x90R\x84Q\x90\x91\x16\x10\x15a'\xE5W`@Qcl\x9B\xE0\xBF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a'\xEF\x89CaXuV[c\xFF\xFF\xFF\xFF\x16`@\x83\x01R[a(\x10\x8Ca(\x08\x89a2\xF7V[\x86\x86\x86a9NV[\x7F\x14\x87\xAFT\x18\xC4~\xE5\xEAE\xEFJ\x939\x86h\x12\x08\x90wJ\x9E\x13H~a\xE9\xDC;\xAFv\xDD\x8C\x88\x86a(E\x86_\x01Q\x87` \x01Qa9/V[\x86`@\x01Q`@Qa([\x95\x94\x93\x92\x91\x90aW\x03V[`@Q\x80\x91\x03\x90\xA1PP`\x01\x90\x92\x01\x91Pa%%\x90PV[PPP`\x01\x01a$AV[`\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\xC1\x90aA\x9BV[\x82a(\xB7\x81a5.V[a(\xD4W`@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)\x16W`\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)Q\x92\x91\x90aX\xF6V[`@Q\x80\x91\x03\x90\xA2PPPPV[`fT`\x02\x90`\x04\x90\x81\x16\x03a)\x88W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a)\x92\x81a5.V[a)\xAFW`@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\x85\x81\x16`\x04\x83\x01R\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\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\x13W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*7\x91\x90aU\x89V[a*TW`@Qc\xCC\xEA\x9Eo`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[a*c` \x85\x01\x85aV\x01V[\x90P\x81\x10\x15a,+W`@\x80Q\x80\x82\x01\x90\x91R_\x90\x80a*\x86` \x88\x01\x88aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86\x80` \x01\x90a*\xA4\x91\x90aV\x01V[\x85\x81\x81\x10a*\xB4Wa*\xB4aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a*\xC9\x91\x90aU\xDAV[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+\x05\x92\x91\x90\x81\x16\x90a5\x17\x16V[a+\"W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a+,\x86\x82a\x07\xC8V[\x15a+JW`@Qclln'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a+sa+V\x82a2\xF7V[`\x01`\x01`\xA0\x1B\x03\x88\x16_\x90\x81R`\x9C` R`@\x90 \x90a5\xD8V[Pa+\x9F\x86`\x9A_a+\x84\x85a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a5\xE3\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+\xD9\x91\x90aU\xF3V[`@Q\x80\x91\x03\x90\xA2`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\x9E` R`@\x81 `\x01\x91a,\x04\x84a2\xF7V[\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90UP`\x01\x01a*VV[Pa,<a\x03\xD9` \x85\x01\x85aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16c\xC6?\xD5\x02\x85a,X` \x87\x01\x87aK\x15V[a,e` \x88\x01\x88aV\x01V[a,r`@\x8A\x01\x8AaWTV[`@Q\x87c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a,\x93\x96\x95\x94\x93\x92\x91\x90aY\tV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a,\xAAW__\xFD[PZ\xF1\x15\x80\x15a\x1A~W=__>=_\xFD[_a\x08=`\x9A_a,\xCC\x85a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a5\x03V[\x83a,\xE8\x81a5.V[a-\x05W`@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-D\x92\x91a5\x17\x16V[a-aW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a-k\x82a2\xF7V[\x90P_[\x84\x81\x10\x15a\x1A~Wa-\xB4\x86\x86\x83\x81\x81\x10a-\x8CWa-\x8CaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a-\xA1\x91\x90aK\x15V[_\x84\x81R`\x99` R`@\x90 \x90a@{V[a-\xD1W`@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.\x05Wa.\x05aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a.\x1A\x91\x90aK\x15V[`@Qa.(\x92\x91\x90aVFV[`@Q\x80\x91\x03\x90\xA1`\x01\x01a-oV[`\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\x90Re\x01\0\0\0\0\0\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.\xB9WP\x82``\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15[\x15a.\xC8WPP`@\x81\x01Q`\x01[\x95\x90\x94P\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x98` R`@\x81 a\x08=\x90a5\x03V[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9F` R`@\x81 ``\x91\x90a\x089\x90\x82a\x17\xB6\x86a2\xF7V[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a/9WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a/RWP0;\x15\x80\x15a/RWP_T`\xFF\x16`\x01\x14[a/\xBAW`@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/\xDBW_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a/\xE4\x82a4\xC6V[a/\xED\x83a@\xE9V[\x80\x15a03W_\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[\x81a0B\x81a5.V[a0_W`@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\x84\x81\x16`\x04\x83\x01R\x83\x16\x90c\xB5&W\x87\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0\xA3W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\xC7\x91\x90aU\x89V[a0\xE4W`@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\x83a1<\x81a\r\xF0V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x91\x16` \x83\x01R\x01a0*V[a1da@\x8FV[`\x01`\x01`\xA0\x1B\x03\x81\x16a1\xC9W`@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/\xB1V[a1\xD2\x81a@\xE9V[PV[__a\r\xE7\x84\x84a?\x01V[\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\x15a2=W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a2a\x91\x90aYUV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a2\x92W`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x80\x19\x82\x19\x81\x16\x14a2\xB9W`@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` \x01a3B\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=\x90aYpV[`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x80\x83\x01\x82\x90R\x83Q``\x81\x01\x85R\x82\x81R\x80\x82\x01\x83\x90R\x80\x85\x01\x83\x90R\x84Q\x80\x86\x01\x86R`\x01`\x01`\xA0\x1B\x03\x89\x81\x16\x85R`\xA1\x84R\x86\x85 \x90\x88\x16\x85R\x90\x92R\x93\x82 \x92\x93\x92\x81\x90a3\xBA\x90aA\x9BV[`\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\x15a4\\W\x90\x92P\x90Pa4\xBEV[a4m\x81_\x01Q\x82` \x01Qa9/V[`\x01`\x01`@\x1B\x03\x16\x81R` \x81\x01Q_`\x0F\x91\x90\x91\x0B\x12\x15a4\xABWa4\x9C\x82` \x01Q\x82` \x01Qa9/V[`\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=\x82T\x90V[_a\x07\xC1\x83\x83aA\xAEV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x07\xC1V[`@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\x15a5\xB4W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08=\x91\x90aU\x89V[_a\x07\xC1\x83\x83aA\xD4V[_a\x07\xC1\x83`\x01`\x01`\xA0\x1B\x03\x84\x16aA\xD4V[``\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a6\x12Wa6\x12aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a6EW\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a60W\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\x97\x92\x91\x90aY\x93V[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6\xB1W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra6\xD8\x91\x90\x81\x01\x90aY\xB7V[\x90P_[\x85Q\x81\x10\x15a8\xDAW_\x86\x82\x81Q\x81\x10a6\xF8Wa6\xF8aU\xA8V[` \x02` \x01\x01Q\x90P\x85Q`\x01`\x01`@\x1B\x03\x81\x11\x15a7\x1BWa7\x1BaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a7DW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x84\x83\x81Q\x81\x10a7WWa7WaU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R_[\x86Q\x81\x10\x15a8\xD0W_\x87\x82\x81Q\x81\x10a7\x80Wa7\x80aU\xA8V[` \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\xBB\x90aA\x9BV[\x90P\x80`\x01`\x01`@\x1B\x03\x16_\x03a7\xD4WPPa8\xC8V[_a7\xE0\x85\x8D\x85a\x07\x8DV[\x90P\x88c\xFF\xFF\xFF\xFF\x16\x81`@\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15\x80\x15a8\x08WP_\x81` \x01Q`\x0F\x0B\x12[\x15a8*Wa8\x1E\x81_\x01Q\x82` \x01Qa9/V[`\x01`\x01`@\x1B\x03\x16\x81R[\x80Q_\x90a8E\x90`\x01`\x01`@\x1B\x03\x90\x81\x16\x90\x85\x16a9\x1BV[\x90Pa8\x8C\x81\x89\x89\x81Q\x81\x10a8]Wa8]aU\xA8V[` \x02` \x01\x01Q\x87\x81Q\x81\x10a8vWa8vaU\xA8V[` \x02` \x01\x01QaB \x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x89\x88\x81Q\x81\x10a8\x9EWa8\x9EaU\xA8V[` \x02` \x01\x01Q\x86\x81Q\x81\x10a8\xB7Wa8\xB7aU\xA8V[` \x02` \x01\x01\x81\x81RPPPPPP[`\x01\x01a7dV[PP`\x01\x01a6\xDCV[PP\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x07\xC1V[_a\x07\xC1\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0`\x01aB4V[_a\x07\xC1\x83g\r\xE0\xB6\xB3\xA7d\0\0\x84aB\x8DV[_a\x07\xC1a9F\x83`\x01`\x01`@\x1B\x03\x86\x16aV\xD6V[`\x0F\x0BaCrV[` \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\x14a:\x14W` \x82\x81\x01\x80Q`\x01`\x01`\xA0\x1B\x03\x88\x81\x16_\x81\x81R`\xA2\x86R`@\x80\x82 \x93\x8A\x16\x80\x83R\x93\x87R\x90\x81\x90 \x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01`\x01`@\x1B\x03\x95\x86\x16\x17\x90U\x93Q\x84Q\x91\x82R\x94\x81\x01\x91\x90\x91R\x92\x16\x90\x82\x01R\x7F\xAC\xF9\t_\xEB:7\x0C\x9C\xF6\x92B\x1Ci\xEF2\rM\xB5\xC6nj})\xC7iN\xB0#d\xFCU\x90``\x01`@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:\xF6W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a:\xCE\x90\x84a5\xE3V[P`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a:\xF0\x90\x85a5\xD8V[Pa\r4V[\x80Q`\x01`\x01`@\x1B\x03\x16_\x03a\r4W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a;3\x90\x84a@{V[P`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a;_\x90a5\x03V[_\x03a\r4W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a!\x13\x90\x85a@pV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R a;\xB5\x90C\x83aC\xDDV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x80\x86\x16\x82R\x84\x16` \x82\x01R`\x01`\x01`@\x1B\x03\x83\x16\x91\x81\x01\x91\x90\x91R\x7F\x1CdX\x07\x9AA\x07}\0<\x11\xFA\xF9\xBF\t~i;\xD6yy\xE4\xE6P\x0B\xAC{)\xDBw\x9B\\\x90``\x01a0*V[``_a\x07\xC1\x83aC\xF1V[`\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<^WP\x82a\xFF\xFF\x16\x82\x10[\x15a\r4W`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R\x90\x81 a<\x92\x90aDJV[\x90P__a<\xA1\x88\x84\x89a3ZV[\x91P\x91P\x80`@\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15a<\xBFWPPPa\r4V[a<\xCC\x88\x84\x89\x85\x85a9NV[`\x01`\x01`\xA0\x1B\x03\x80\x89\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R a<\xF9\x90aD\x9CV[Pa=\x03\x85aZ\xC3V[\x94Pa=\x0E\x84aZ\xDBV[\x93PPPPa<LV[``_a=$\x83aE\x19V[`@\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\x93Re\x01\0\0\0\0\0\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=\xD1WP\x80``\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15[\x15a=\xEBW`@\x81\x01Qc\xFF\xFF\xFF\xFF\x16\x81R`\x01` \x82\x01R[c\xFF\xFF\xFF\xFF\x82\x16`@\x82\x01Ra>!\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\0CaXuV[a>,\x90`\x01aXuV[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\x16e\x01\0\0\0\0\0\x97\x89\x16\x97\x90\x97\x02l\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\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\x01a0*V[`\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?\x94\x90\x83aE@V[`\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@\x0FWPPa@,V[a@\x1D\x86\x82` \x01Qa9/V[\x95PPP\x80`\x01\x01\x90Pa?\\V[P`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R \x83\x90a@\\\x90aA\x9BV[a@f\x91\x90aV\x93V[\x91PP\x92P\x92\x90PV[_a\x07\xC1\x83\x83aE\xAFV[_a\x07\xC1\x83`\x01`\x01`\xA0\x1B\x03\x84\x16aE\xAFV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x1D\x12W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a/\xB1V[`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\xC1\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0aF\x92V[_aA_\x84`\x99_a\x112\x89a2\xF7V[\x80\x15aAhWP\x81[\x80\x15a\x1D1WPP\x90Q`\x01`\x01`@\x1B\x03\x16\x15\x15\x93\x92PPPV[_a\x07\xC1`\x01`\x01`@\x1B\x03\x80\x85\x16\x90\x84\x16aZ\xF0V[_a\x08=\x82g\r\xE0\xB6\xB3\xA7d\0\0aF\xE7V[_\x82_\x01\x82\x81T\x81\x10aA\xC3WaA\xC3aU\xA8V[\x90_R` _ \x01T\x90P\x92\x91PPV[_\x81\x81R`\x01\x83\x01` R`@\x81 TaB\x19WP\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=V[P_a\x08=V[_a\x07\xC1\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0aB\x8DV[__aBA\x86\x86\x86aB\x8DV[\x90P`\x01\x83`\x02\x81\x11\x15aBWWaBWa[\x1DV[\x14\x80\x15aBsWP_\x84\x80aBnWaBna[1V[\x86\x88\t\x11[\x15a\x1D1WaB\x83`\x01\x82a[EV[\x96\x95PPPPPPV[_\x80\x80_\x19\x85\x87\t\x85\x87\x02\x92P\x82\x81\x10\x83\x82\x03\x03\x91PP\x80_\x03aB\xC4W\x83\x82\x81aB\xBAWaB\xBAa[1V[\x04\x92PPPa\x07\xC1V[\x80\x84\x11aC\x0BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01RtMath: mulDiv overflow`X\x1B`D\x82\x01R`d\x01a/\xB1V[_\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\xD9W`@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/\xB1V[P\x90V[a03\x83\x83`\x01`\x01`@\x1B\x03\x84\x16aG\x1EV[``\x81_\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15aD>W` \x02\x82\x01\x91\x90_R` _ \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11aD*W[PPPPP\x90P\x91\x90PV[_aDd\x82T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x13\x15\x90V[\x15aD\x82W`@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\xB6\x82T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x13\x15\x90V[\x15aD\xD4W`@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\x83To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\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=W`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[__aEbaEN\x84aH!V[\x85TaE]\x91\x90`\x0F\x0Ba[XV[aH\x8AV[\x84T\x90\x91P`\x01`\x80\x1B\x90\x04`\x0F\x90\x81\x0B\x90\x82\x90\x0B\x12aE\x95W`@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\x15aF\x89W_aE\xD1`\x01\x83aV\x80V[\x85T\x90\x91P_\x90aE\xE4\x90`\x01\x90aV\x80V[\x90P\x81\x81\x14aFCW_\x86_\x01\x82\x81T\x81\x10aF\x02WaF\x02aU\xA8V[\x90_R` _ \x01T\x90P\x80\x87_\x01\x84\x81T\x81\x10aF\"WaF\"aU\xA8V[_\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80aFTWaFTa[\x7FV[`\x01\x90\x03\x81\x81\x90_R` _ \x01_\x90U\x90U\x85`\x01\x01_\x86\x81R` \x01\x90\x81R` \x01_ _\x90U`\x01\x93PPPPa\x08=V[_\x91PPa\x08=V[\x82T_\x90\x81aF\xA3\x86\x86\x83\x85aH\xF3V[\x90P\x80\x15aF\xDDWaF\xC7\x86aF\xBA`\x01\x84aV\x80V[_\x91\x82R` \x90\x91 \x01\x90V[T`\x01` \x1B\x90\x04`\x01`\x01`\xE0\x1B\x03\x16a\x07\xBCV[P\x91\x94\x93PPPPV[\x81T_\x90\x80\x15aG\x16WaG\0\x84aF\xBA`\x01\x84aV\x80V[T`\x01` \x1B\x90\x04`\x01`\x01`\xE0\x1B\x03\x16a\x089V[P\x90\x92\x91PPV[\x82T\x80\x15aG\xD4W_aG6\x85aF\xBA`\x01\x85aV\x80V[`@\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\x15aG\x88W`@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\xD2W\x82aG\xA9\x86aF\xBA`\x01\x86aV\x80V[\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\xD9W`@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/\xB1V[\x80`\x0F\x81\x90\x0B\x81\x14aH\xEEW`@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/\xB1V[\x91\x90PV[_[\x81\x83\x10\x15a\n'W_aI\x08\x84\x84aIFV[_\x87\x81R` \x90 \x90\x91Pc\xFF\xFF\xFF\xFF\x86\x16\x90\x82\x01Tc\xFF\xFF\xFF\xFF\x16\x11\x15aI2W\x80\x92PaI@V[aI=\x81`\x01a[EV[\x93P[PaH\xF5V[_aIT`\x02\x84\x84\x18a[\x93V[a\x07\xC1\x90\x84\x84\x16a[EV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a1\xD2W__\xFD[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q``\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI\xAAWaI\xAAaItV[`@R\x90V[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI\xD8WaI\xD8aItV[`@R\x91\x90PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14aH\xEEW__\xFD[_`@\x82\x84\x03\x12\x15aJ\x03W__\xFD[`@\x80Q\x90\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aJ%WaJ%aItV[`@R\x90P\x80\x825aJ6\x81aI`V[\x81RaJD` \x84\x01aI\xE0V[` \x82\x01RP\x92\x91PPV[___`\x80\x84\x86\x03\x12\x15aJbW__\xFD[\x835aJm\x81aI`V[\x92PaJ|\x85` \x86\x01aI\xF3V[\x91P``\x84\x015aJ\x8C\x81aI`V[\x80\x91PP\x92P\x92P\x92V[\x81Q`\x01`\x01`@\x1B\x03\x16\x81R` \x80\x83\x01Q`\x0F\x0B\x90\x82\x01R`@\x80\x83\x01Qc\xFF\xFF\xFF\xFF\x16\x90\x82\x01R``\x81\x01a\x08=V[__``\x83\x85\x03\x12\x15aJ\xDBW__\xFD[\x825aJ\xE6\x81aI`V[\x91PaJ\xF5\x84` \x85\x01aI\xF3V[\x90P\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15aK\x0EW__\xFD[P5\x91\x90PV[_` \x82\x84\x03\x12\x15aK%W__\xFD[\x815a\x07\xC1\x81aI`V[\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\x15aK\x89WaKs\x86\x83QaK0V[`@\x95\x90\x95\x01\x94` \x91\x90\x91\x01\x90`\x01\x01aK`V[P\x93\x94\x93PPPPV[` \x81R_a\x07\xC1` \x83\x01\x84aKNV[_`@\x82\x84\x03\x12\x15aK\xB5W__\xFD[a\x07\xC1\x83\x83aI\xF3V[__\x83`\x1F\x84\x01\x12aK\xCFW__\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aK\xE5W__\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x17\x9DW__\xFD[___`@\x84\x86\x03\x12\x15aL\x11W__\xFD[\x835aL\x1C\x81aI`V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aL6W__\xFD[aLB\x86\x82\x87\x01aK\xBFV[\x94\x97\x90\x96P\x93\x94PPPPV[_`\x01`\x01`@\x1B\x03\x82\x11\x15aLgWaLgaItV[P`\x05\x1B` \x01\x90V[_\x82`\x1F\x83\x01\x12aL\x80W__\xFD[\x815aL\x93aL\x8E\x82aLOV[aI\xB0V[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aL\xB4W__\xFD[` \x85\x01[\x83\x81\x10\x15aL\xDAW\x805aL\xCC\x81aI`V[\x83R` \x92\x83\x01\x92\x01aL\xB9V[P\x95\x94PPPPPV[___`\x80\x84\x86\x03\x12\x15aL\xF6W__\xFD[aM\0\x85\x85aI\xF3V[\x92P`@\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\x1AW__\xFD[aM&\x86\x82\x87\x01aLqV[\x92PP``\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aMAW__\xFD[aMM\x86\x82\x87\x01aLqV[\x91PP\x92P\x92P\x92V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aK\x89W\x81Q\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aMiV[_` \x82\x01` \x83R\x80\x84Q\x80\x83R`@\x85\x01\x91P`@\x81`\x05\x1B\x86\x01\x01\x92P` \x86\x01_[\x82\x81\x10\x15aM\xDEW`?\x19\x87\x86\x03\x01\x84RaM\xC9\x85\x83QaMWV[\x94P` \x93\x84\x01\x93\x91\x90\x91\x01\x90`\x01\x01aM\xADV[P\x92\x96\x95PPPPPPV[____`\xA0\x85\x87\x03\x12\x15aM\xFDW__\xFD[aN\x07\x86\x86aI\xF3V[\x93P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN!W__\xFD[aN-\x87\x82\x88\x01aLqV[\x93PP``\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aNHW__\xFD[aNT\x87\x82\x88\x01aLqV[\x92PPaNc`\x80\x86\x01aI\xE0V[\x90P\x92\x95\x91\x94P\x92PV[__`@\x83\x85\x03\x12\x15aN\x7FW__\xFD[\x825aN\x8A\x81aI`V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN\xA4W__\xFD[\x83\x01`\xA0\x81\x86\x03\x12\x15aN\xB5W__\xFD[\x80\x91PP\x92P\x92\x90PV[__`@\x83\x85\x03\x12\x15aN\xD1W__\xFD[\x825aN\xDC\x81aI`V[\x91P` \x83\x015aN\xB5\x81aI`V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aK\x89WaO7\x86\x83Q\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[``\x95\x90\x95\x01\x94` \x91\x90\x91\x01\x90`\x01\x01aN\xFEV[`@\x81R_aO_`@\x83\x01\x85aKNV[\x82\x81\x03` \x84\x01Ra\x1D1\x81\x85aN\xECV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aK\x89W\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aO\x83V[` \x81R_a\x07\xC1` \x83\x01\x84aOqV[__`@\x83\x85\x03\x12\x15aO\xCDW__\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15aO\xE2W__\xFD[aO\xEE\x85\x82\x86\x01aLqV[\x92PP` \x83\x015aN\xB5\x81aI`V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x84\x01\x90`@\x84\x01\x90\x83[\x81\x81\x10\x15aP?W\x83Q`\x01`\x01`@\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aP\x18V[P\x90\x95\x94PPPPPV[_____``\x86\x88\x03\x12\x15aP^W__\xFD[\x855aPi\x81aI`V[\x94P` \x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aP\x83W__\xFD[aP\x8F\x88\x82\x89\x01aK\xBFV[\x90\x95P\x93PP`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aP\xADW__\xFD[aP\xB9\x88\x82\x89\x01aK\xBFV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[____``\x85\x87\x03\x12\x15aP\xDDW__\xFD[\x845aP\xE8\x81aI`V[\x93PaP\xF6` \x86\x01aI\xE0V[\x92P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aQ\x10W__\xFD[aQ\x1C\x87\x82\x88\x01aK\xBFV[\x95\x98\x94\x97P\x95PPPPV[__`@\x83\x85\x03\x12\x15aQ9W__\xFD[\x825aQD\x81aI`V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aQ^W__\xFD[a@f\x85\x82\x86\x01aLqV[` \x81R_\x82Q\x80` \x84\x01R_[\x81\x81\x10\x15aQ\x96W` \x81\x86\x01\x81\x01Q`@\x86\x84\x01\x01R\x01aQyV[P_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[__`@\x83\x85\x03\x12\x15aQ\xC6W__\xFD[\x825aQ\xD1\x81aI`V[\x91PaJ\xF5` \x84\x01aI\xE0V[_` \x82\x84\x03\x12\x15aQ\xEFW__\xFD[\x815`\xFF\x81\x16\x81\x14a\x07\xC1W__\xFD[_``\x82\x84\x03\x12\x15aR\x0FW__\xFD[P\x91\x90PV[_` \x82\x84\x03\x12\x15aR%W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aR:W__\xFD[a\x089\x84\x82\x85\x01aQ\xFFV[___`\x80\x84\x86\x03\x12\x15aRXW__\xFD[\x835`\x01`\x01`@\x1B\x03\x81\x11\x15aRmW__\xFD[aRy\x86\x82\x87\x01aLqV[\x93PPaJ|\x85` \x86\x01aI\xF3V[` \x81R_a\x07\xC1` \x83\x01\x84aN\xECV[___``\x84\x86\x03\x12\x15aR\xADW__\xFD[\x835aR\xB8\x81aI`V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aR\xD2W__\xFD[aR\xDE\x86\x82\x87\x01aLqV[\x92PPaR\xED`@\x85\x01aI\xE0V[\x90P\x92P\x92P\x92V[__`@\x83\x85\x03\x12\x15aS\x07W__\xFD[\x825aS\x12\x81aI`V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aS,W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13aS<W__\xFD[\x805aSJaL\x8E\x82aLOV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x87\x83\x11\x15aSkW__\xFD[` \x84\x01[\x83\x81\x10\x15aT\x90W\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aS\x8DW__\xFD[\x85\x01`\x80\x81\x8B\x03`\x1F\x19\x01\x12\x15aS\xA2W__\xFD[aS\xAAaI\x88V[aS\xB7\x8B` \x84\x01aI\xF3V[\x81R``\x82\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aS\xD1W__\xFD[aS\xE0\x8C` \x83\x86\x01\x01aLqV[` \x83\x01RP`\x80\x82\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aS\xFEW__\xFD[` \x81\x84\x01\x01\x92PP\x8A`\x1F\x83\x01\x12aT\x15W__\xFD[\x815aT#aL\x8E\x82aLOV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x8D\x83\x11\x15aTDW__\xFD[` \x85\x01\x94P[\x82\x85\x10\x15aTzW\x845`\x01`\x01`@\x1B\x03\x81\x16\x81\x14aTiW__\xFD[\x82R` \x94\x85\x01\x94\x90\x91\x01\x90aTKV[`@\x84\x01RPP\x84RP` \x92\x83\x01\x92\x01aSpV[P\x80\x94PPPPP\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15aT\xB1W__\xFD[\x835aT\xBC\x81aI`V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aT\xD6W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13aT\xE6W__\xFD[\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aT\xFBW__\xFD[\x86` \x82\x84\x01\x01\x11\x15aU\x0CW__\xFD[\x93\x96` \x91\x90\x91\x01\x95P\x92\x93PPPV[__`@\x83\x85\x03\x12\x15aU.W__\xFD[\x825aU9\x81aI`V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aUSW__\xFD[a@f\x85\x82\x86\x01aQ\xFFV[__`@\x83\x85\x03\x12\x15aUpW__\xFD[\x825aU{\x81aI`V[\x94` \x93\x90\x93\x015\x93PPPV[_` \x82\x84\x03\x12\x15aU\x99W__\xFD[\x81Q\x80\x15\x15\x81\x14a\x07\xC1W__\xFD[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_\x825`>\x19\x836\x03\x01\x81\x12aU\xD0W__\xFD[\x91\x90\x91\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15aU\xEAW__\xFD[a\x07\xC1\x82aI\xE0V[`@\x81\x01a\x08=\x82\x84aK0V[__\x835`\x1E\x19\x846\x03\x01\x81\x12aV\x16W__\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aV/W__\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a\x17\x9DW__\xFD[``\x81\x01aVT\x82\x85aK0V[`\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=Wa\x08=aVlV[`\x01`\x01`@\x1B\x03\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x08=Wa\x08=aVlV[_\x81`\x0F\x0B`\x01`\x01`\x7F\x1B\x03\x19\x81\x03aV\xCEWaV\xCEaVlV[_\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=Wa\x08=aVlV[`\x01`\x01`\xA0\x1B\x03\x86\x16\x81R`\xC0\x81\x01aW ` \x83\x01\x87aK0V[`\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\x12aWiW__\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aW\x82W__\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a\x17\x9DW__\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\x01aW\xDC` \x84\x01\x8AaK0V[`\xC0``\x84\x01R\x86\x90R\x86`\xE0\x83\x01_[\x88\x81\x10\x15aX\x1DW\x825aX\0\x81aI`V[`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x92\x83\x01\x92\x90\x91\x01\x90`\x01\x01aW\xEDV[P\x83\x81\x03`\x80\x85\x01RaX0\x81\x88aMWV[\x91PP\x82\x81\x03`\xA0\x84\x01RaXF\x81\x85\x87aW\x96V[\x9A\x99PPPPPPPPPPV[_` \x82\x84\x03\x12\x15aXdW__\xFD[\x815a\xFF\xFF\x81\x16\x81\x14a\x07\xC1W__\xFD[c\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x81\x11\x15a\x08=Wa\x08=aVlV[\x81\x83R` \x83\x01\x92P_\x81_[\x84\x81\x10\x15aK\x89Wc\xFF\xFF\xFF\xFFaX\xB4\x83aI\xE0V[\x16\x86R` \x95\x86\x01\x95\x91\x90\x91\x01\x90`\x01\x01aX\x9EV[`\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x82R\x84\x16` \x82\x01R```@\x82\x01\x81\x90R_\x90aB\x83\x90\x83\x01\x84\x86aX\x91V[` \x81R_a\rI` \x83\x01\x84\x86aW\x96V[`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x82R\x86\x16` \x82\x01R`\x80`@\x82\x01\x81\x90R_\x90aY5\x90\x83\x01\x86\x88aX\x91V[\x82\x81\x03``\x84\x01RaYH\x81\x85\x87aW\x96V[\x99\x98PPPPPPPPPV[_` \x82\x84\x03\x12\x15aYeW__\xFD[\x81Qa\x07\xC1\x81aI`V[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15aR\x0FW_\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[`@\x81R_aY\xA5`@\x83\x01\x85aOqV[\x82\x81\x03` \x84\x01Ra\x1D1\x81\x85aOqV[_` \x82\x84\x03\x12\x15aY\xC7W__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aY\xDCW__\xFD[\x82\x01`\x1F\x81\x01\x84\x13aY\xECW__\xFD[\x80QaY\xFAaL\x8E\x82aLOV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15aZ\x1BW__\xFD[` \x84\x01[\x83\x81\x10\x15aZ\xB8W\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15aZ=W__\xFD[\x85\x01`?\x81\x01\x89\x13aZMW__\xFD[` \x81\x01QaZ^aL\x8E\x82aLOV[\x80\x82\x82R` \x82\x01\x91P` \x80\x84`\x05\x1B\x86\x01\x01\x01\x92P\x8B\x83\x11\x15aZ\x81W__\xFD[`@\x84\x01\x93P[\x82\x84\x10\x15aZ\xA3W\x83Q\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aZ\x88V[\x86RPP` \x93\x84\x01\x93\x91\x90\x91\x01\x90PaZ V[P\x96\x95PPPPPPV[_`\x01\x82\x01aZ\xD4WaZ\xD4aVlV[P`\x01\x01\x90V[_\x81aZ\xE9WaZ\xE9aVlV[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=Wa\x08=aVlV[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x08=Wa\x08=aVlV[\x80\x82\x01\x82\x81\x12_\x83\x12\x80\x15\x82\x16\x82\x15\x82\x16\x17\x15a[wWa[waVlV[PP\x92\x91PPV[cNH{q`\xE0\x1B_R`1`\x04R`$_\xFD[_\x82a[\xADWcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x04\x90V\xFE\xA2dipfsX\"\x12 \xBA@\x81\xE0\x99z\xE3{\x1B\xC8\xC9\x9Do\xDCB\xE5\xAC\x9D\t\x99\xF5\xC9\x87w\x04\x99GwxC\xEB\xC1dsolcC\0\x08\x1B\x003",
3730    );
3731    /// The runtime bytecode of the contract, as deployed on the network.
3732    ///
3733    /// ```text
3734    ///0x608060405234801561000f575f5ffd5b50600436106102b1575f3560e01c80636cfb44811161017b578063a9821821116100e4578063c221d8ae1161009e578063df5cf72311610079578063df5cf7231461072d578063f2fde38b14610754578063f605ce0814610767578063fabc1cbc1461077a575f5ffd5b8063c221d8ae146106f4578063cd6dc68714610707578063d3d96ff41461071a575f5ffd5b8063a982182114610666578063adc2e3d914610679578063b2447af71461068c578063b66bd9891461069f578063b9fbaed1146106b2578063ba1a84e5146106e1575f5ffd5b8063886f119511610135578063886f1195146105d55780638ce64854146105fc5780638da5cb5b1461061c57806394d7d00c1461062d578063952899ee14610640578063a9333ec814610653575f5ffd5b80636cfb4481146105425780636e3492b51461056d5780636e875dba14610580578063715018a61461059357806379ae50cd1461059b5780637bc1ef61146105ae575f5ffd5b80634177a87c1161021d57806354fd4d50116101d757806354fd4d50146104ca57806356c483e6146104df578063595c6a67146104f25780635ac86ab7146104fa5780635c975abb1461051d578063670d3ba21461052f575f5ffd5b80634177a87c1461042a5780634657e26a1461044a5780634a10ffe5146104715780634b5046ef1461049157806350feea20146104a4578063547afb87146104b7575f5ffd5b80632981eb771161026e5780632981eb771461035c5780632b453a9a146103985780632bab2c4a146103b8578063304c10cd146103cb57806336352057146103f657806340120dab14610409575f5ffd5b806310e1b9b8146102b55780631352c3e6146102de578063136439dd1461030157806315fe502814610316578063260dc75814610336578063261f84e014610349575b5f5ffd5b6102c86102c3366004614a50565b61078d565b6040516102d59190614a97565b60405180910390f35b6102f16102ec366004614aca565b6107c8565b60405190151581526020016102d5565b61031461030f366004614afe565b610843565b005b610329610324366004614b15565b610918565b6040516102d59190614b93565b6102f1610344366004614ba5565b610a2f565b610314610357366004614bff565b610a60565b6103837f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102d5565b6103ab6103a6366004614ce4565b610d3b565b6040516102d59190614d87565b6103ab6103c6366004614dea565b610d51565b6103de6103d9366004614b15565b610df0565b6040516001600160a01b0390911681526020016102d5565b610314610404366004614e6e565b610e1f565b61041c610417366004614ec0565b611629565b6040516102d5929190614f4d565b61043d610438366004614ba5565b6117a4565b6040516102d59190614faa565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b61048461047f366004614fbc565b6117c8565b6040516102d59190614fff565b61031461049f36600461504a565b611870565b6103146104b23660046150ca565b61192a565b6104846104c5366004615128565b611a88565b6104d2611b30565b6040516102d5919061516a565b6103146104ed3660046151b5565b611b60565b610314611c65565b6102f16105083660046151df565b606654600160ff9092169190911b9081161490565b6066545b6040519081526020016102d5565b6102f161053d366004614aca565b611d14565b610555610550366004614ec0565b611d25565b6040516001600160401b0390911681526020016102d5565b61031461057b366004615215565b611d3a565b61043d61058e366004614ba5565b61211b565b61031461212c565b6103296105a9366004614b15565b61213d565b6103837f000000000000000000000000000000000000000000000000000000000000000081565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b61060f61060a366004615246565b612217565b6040516102d59190615289565b6033546001600160a01b03166103de565b61048461063b36600461529b565b6122d3565b61031461064e3660046152f6565b6123bf565b610555610661366004614ec0565b61287e565b61031461067436600461549f565b6128ad565b61031461068736600461551d565b61295f565b61052161069a366004614ba5565b612cbc565b6103146106ad3660046150ca565b612cde565b6106c56106c0366004614b15565b612e38565b60408051921515835263ffffffff9091166020830152016102d5565b6105216106ef366004614b15565b612ed2565b61043d610702366004614aca565b612ef2565b61031461071536600461555f565b612f1b565b610314610728366004614ec0565b613038565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b610314610762366004614b15565b61315c565b610555610775366004614ec0565b6131d5565b610314610788366004614afe565b6131e1565b604080516060810182525f80825260208201819052918101829052906107bc856107b6866132f7565b8561335a565b925050505b9392505050565b6001600160a01b0382165f908152609e602052604081208190816107eb856132f7565b815260208082019290925260409081015f2081518083019092525460ff8116151580835261010090910463ffffffff16928201929092529150806108395750806020015163ffffffff164311155b9150505b92915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156108a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c99190615589565b6108e657604051631d77d47760e21b815260040160405180910390fd5b606654818116811461090b5760405163c61dca5d60e01b815260040160405180910390fd5b610914826134c6565b5050565b6001600160a01b0381165f908152609d602052604081206060919061093c90613503565b90505f816001600160401b0381111561095757610957614974565b60405190808252806020026020018201604052801561099b57816020015b604080518082019091525f80825260208201528152602001906001900390816109755790505b5090505f5b82811015610a27576001600160a01b0385165f908152609d60205260409020610a02906109cd908361350c565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b828281518110610a1457610a146155a8565b60209081029190910101526001016109a0565b509392505050565b60208082015182516001600160a01b03165f90815260989092526040822061083d9163ffffffff9081169061351716565b82610a6a8161352e565b610a875760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff16610abf576040516348f7dbb960e01b815260040160405180910390fd5b5f5b82811015610d34575f6040518060400160405280876001600160a01b03168152602001868685818110610af657610af66155a8565b9050602002810190610b0891906155bc565b610b169060208101906155da565b63ffffffff168152509050610b60816020015163ffffffff1660985f896001600160a01b03166001600160a01b031681526020019081526020015f206135d890919063ffffffff16565b610b7d57604051631fb1705560e21b815260040160405180910390fd5b7f31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c6040518060400160405280886001600160a01b03168152602001836020015163ffffffff16815250604051610bd391906155f3565b60405180910390a15f610be5826132f7565b90505f5b868685818110610bfb57610bfb6155a8565b9050602002810190610c0d91906155bc565b610c1b906020810190615601565b9050811015610d2957610c91878786818110610c3957610c396155a8565b9050602002810190610c4b91906155bc565b610c59906020810190615601565b83818110610c6957610c696155a8565b9050602002016020810190610c7e9190614b15565b5f848152609960205260409020906135e3565b507f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83888887818110610cc657610cc66155a8565b9050602002810190610cd891906155bc565b610ce6906020810190615601565b84818110610cf657610cf66155a8565b9050602002016020810190610d0b9190614b15565b604051610d19929190615646565b60405180910390a1600101610be9565b505050600101610ac1565b5050505050565b6060610d49848484436135f7565b949350505050565b6060610d5f858585856135f7565b90505f5b8451811015610de757610d8f858281518110610d8157610d816155a8565b6020026020010151876107c8565b610ddf575f5b8451811015610ddd575f838381518110610db157610db16155a8565b60200260200101518281518110610dca57610dca6155a8565b6020908102919091010152600101610d95565b505b600101610d63565b50949350505050565b6001600160a01b038082165f908152609760205260408120549091168015610e1857806107c1565b5090919050565b606654600190600290811603610e485760405163840a48d560e01b815260040160405180910390fd5b82610e528161352e565b610e6f5760405163932d94f760e01b815260040160405180910390fd5b5f6040518060400160405280866001600160a01b03168152602001856020016020810190610e9d91906155da565b63ffffffff1690529050610eb46060850185615601565b9050610ec36040860186615601565b905014610ee3576040516343714afd60e01b815260040160405180910390fd5b60208082015182516001600160a01b03165f90815260989092526040909120610f159163ffffffff9081169061351716565b610f3257604051631fb1705560e21b815260040160405180910390fd5b610f48610f426020860186614b15565b826107c8565b610f655760405163ebbff49760e01b815260040160405180910390fd5b5f610f736040860186615601565b90506001600160401b03811115610f8c57610f8c614974565b604051908082528060200260200182016040528015610fb5578160200160208202803683370190505b5090505f5b610fc76040870187615601565b90508110156115bb5780158061105a5750610fe56040870187615601565b610ff0600184615680565b818110610fff57610fff6155a8565b90506020020160208101906110149190614b15565b6001600160a01b031661102a6040880188615601565b8381811061103a5761103a6155a8565b905060200201602081019061104f9190614b15565b6001600160a01b0316115b61107757604051639f1c805360e01b815260040160405180910390fd5b6110846060870187615601565b82818110611094576110946155a8565b905060200201355f1080156110d45750670de0b6b3a76400006110ba6060880188615601565b838181106110ca576110ca6155a8565b9050602002013511155b6110f157604051631353603160e01b815260040160405180910390fd5b61114d6111016040880188615601565b83818110611111576111116155a8565b90506020020160208101906111269190614b15565b60995f611132876132f7565b81526020019081526020015f206138e490919063ffffffff16565b61116a576040516331bc342760e11b815260040160405180910390fd5b5f806111bc61117c60208a018a614b15565b611185876132f7565b61119260408c018c615601565b878181106111a2576111a26155a8565b90506020020160208101906111b79190614b15565b61335a565b805191935091506001600160401b03165f036111d95750506115b3565b5f6112146111ea60608b018b615601565b868181106111fa576111fa6155a8565b85516001600160401b031692602090910201359050613905565b835190915061122f6001600160401b0380841690831661391b565b868681518110611241576112416155a8565b60200260200101818152505081835f0181815161125e9190615693565b6001600160401b031690525083518290859061127b908390615693565b6001600160401b031690525060208401805183919061129b908390615693565b6001600160401b031690525060208301515f600f9190910b12156113b3575f6112fe6112ca60608d018d615601565b888181106112da576112da6155a8565b9050602002013585602001516112ef906156b2565b6001600160801b031690613905565b9050806001600160401b03168460200181815161131b91906156d6565b600f0b9052507f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61134f60208d018d614b15565b8961135d60408f018f615601565b8a81811061136d5761136d6155a8565b90506020020160208101906113829190614b15565b611393885f0151896020015161392f565b88604001516040516113a9959493929190615703565b60405180910390a1505b6114056113c360208c018c614b15565b6113cc896132f7565b6113d960408e018e615601565b898181106113e9576113e96155a8565b90506020020160208101906113fe9190614b15565b878761394e565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61143360208c018c614b15565b8861144160408e018e615601565b89818110611451576114516155a8565b90506020020160208101906114669190614b15565b865160405161147a94939291904390615703565b60405180910390a16114cb61149260208c018c614b15565b61149f60408d018d615601565b888181106114af576114af6155a8565b90506020020160208101906114c49190614b15565b8651613b86565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663601bb36f61150760208d018d614b15565b61151460408e018e615601565b89818110611524576115246155a8565b90506020020160208101906115399190614b15565b875160405160e085901b6001600160e01b03191681526001600160a01b0393841660048201529290911660248301526001600160401b0380861660448401521660648201526084015f604051808303815f87803b158015611598575f5ffd5b505af11580156115aa573d5f5f3e3d5ffd5b50505050505050505b600101610fba565b507f80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe56115ea6020870187614b15565b836115f86040890189615601565b8561160660808c018c615754565b60405161161997969594939291906157be565b60405180910390a1505050505050565b6001600160a01b0382165f908152609d60205260408120606091829161164e90613503565b90505f816001600160401b0381111561166957611669614974565b6040519080825280602002602001820160405280156116ad57816020015b604080518082019091525f80825260208201528152602001906001900390816116875790505b5090505f826001600160401b038111156116c9576116c9614974565b60405190808252806020026020018201604052801561171257816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816116e75790505b5090505f5b83811015611795576001600160a01b0388165f908152609d60205260408120611744906109cd908461350c565b905080848381518110611759576117596155a8565b602002602001018190525061176f89828a61078d565b838381518110611781576117816155a8565b602090810291909101015250600101611717565b509093509150505b9250929050565b60605f6107c160995f6117b6866132f7565b81526020019081526020015f20613c08565b60605f83516001600160401b038111156117e4576117e4614974565b60405190808252806020026020018201604052801561180d578160200160208202803683370190505b5090505f5b8451811015610a275761183e858281518110611830576118306155a8565b60200260200101518561287e565b828281518110611850576118506155a8565b6001600160401b0390921660209283029190910190910152600101611812565b6066545f906001908116036118985760405163840a48d560e01b815260040160405180910390fd5b8382146118b8576040516343714afd60e01b815260040160405180910390fd5b5f5b8481101561192157611919878787848181106118d8576118d86155a8565b90506020020160208101906118ed9190614b15565b8686858181106118ff576118ff6155a8565b90506020020160208101906119149190615854565b613c14565b6001016118ba565b50505050505050565b836119348161352e565b6119515760405163932d94f760e01b815260040160405180910390fd5b604080518082019091526001600160a01b038616815263ffffffff851660208201525f61197d826132f7565b90506119be826020015163ffffffff1660985f8a6001600160a01b03166001600160a01b031681526020019081526020015f2061351790919063ffffffff16565b6119db57604051631fb1705560e21b815260040160405180910390fd5b5f5b84811015611a7e576119fa868683818110610c6957610c696155a8565b611a175760405163585cfb2f60e01b815260040160405180910390fd5b7f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83878784818110611a4b57611a4b6155a8565b9050602002016020810190611a609190614b15565b604051611a6e929190615646565b60405180910390a16001016119dd565b5050505050505050565b60605f82516001600160401b03811115611aa457611aa4614974565b604051908082528060200260200182016040528015611acd578160200160208202803683370190505b5090505f5b8351811015610a2757611afe85858381518110611af157611af16155a8565b602002602001015161287e565b828281518110611b1057611b106155a8565b6001600160401b0390921660209283029190910190910152600101611ad2565b6060611b5b7f0000000000000000000000000000000000000000000000000000000000000000613d18565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c5b57611b998261352e565b611bb6576040516348f5c3ed60e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611c1a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3e9190615589565b611c5b5760405163ccea9e6f60e01b815260040160405180910390fd5b6109148282613d55565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611cc7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ceb9190615589565b611d0857604051631d77d47760e21b815260040160405180910390fd5b611d125f196134c6565b565b5f6107c183609a5f611132866132f7565b5f5f611d318484613f01565b95945050505050565b606654600290600490811603611d635760405163840a48d560e01b815260040160405180910390fd5b611d78611d736020840184614b15565b61352e565b80611d915750611d91611d736040840160208501614b15565b611dae576040516348f5c3ed60e01b815260040160405180910390fd5b5f5b611dbd6040840184615601565b905081101561207f575f6040518060400160405280856020016020810190611de59190614b15565b6001600160a01b03168152602001611e006040870187615601565b85818110611e1057611e106155a8565b9050602002016020810190611e2591906155da565b63ffffffff168152509050611e72816020015163ffffffff1660985f876020016020810190611e549190614b15565b6001600160a01b0316815260208101919091526040015f2090613517565b611e8f57604051631fb1705560e21b815260040160405180910390fd5b609e5f611e9f6020870187614b15565b6001600160a01b03166001600160a01b031681526020019081526020015f205f611ec8836132f7565b815260208101919091526040015f205460ff16611ef8576040516325131d4f60e01b815260040160405180910390fd5b611f32611f04826132f7565b609c5f611f146020890189614b15565b6001600160a01b0316815260208101919091526040015f2090614070565b50611f6a611f436020860186614b15565b609a5f611f4f856132f7565b81526020019081526020015f2061407b90919063ffffffff16565b50611f786020850185614b15565b6001600160a01b03167fad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe82604051611fb091906155f3565b60405180910390a2604080518082019091525f815260208101611ff37f000000000000000000000000000000000000000000000000000000000000000043615875565b63ffffffff169052609e5f61200b6020880188614b15565b6001600160a01b03166001600160a01b031681526020019081526020015f205f612034846132f7565b81526020808201929092526040015f2082518154939092015163ffffffff166101000264ffffffff00199215159290921664ffffffffff199093169290921717905550600101611db0565b506120936103d96040840160208501614b15565b6001600160a01b031663303ca9566120ae6020850185614b15565b6120be6040860160208701614b15565b6120cb6040870187615601565b6040518563ffffffff1660e01b81526004016120ea94939291906158ca565b5f604051808303815f87803b158015612101575f5ffd5b505af1158015612113573d5f5f3e3d5ffd5b505050505050565b606061083d609a5f6117b6856132f7565b61213461408f565b611d125f6140e9565b6001600160a01b0381165f908152609c602052604081206060919061216190613503565b90505f816001600160401b0381111561217c5761217c614974565b6040519080825280602002602001820160405280156121c057816020015b604080518082019091525f808252602082015281526020019060019003908161219a5790505b5090505f5b82811015610a27576001600160a01b0385165f908152609c602052604090206121f2906109cd908361350c565b828281518110612204576122046155a8565b60209081029190910101526001016121c5565b60605f84516001600160401b0381111561223357612233614974565b60405190808252806020026020018201604052801561227c57816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816122515790505b5090505f5b8551811015610de7576122ae86828151811061229f5761229f6155a8565b6020026020010151868661078d565b8282815181106122c0576122c06155a8565b6020908102919091010152600101612281565b60605f83516001600160401b038111156122ef576122ef614974565b604051908082528060200260200182016040528015612318578160200160208202803683370190505b5090505f5b8451811015610de7576001600160a01b0386165f90815260a160205260408120865161238d92879291899086908110612358576123586155a8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2061413a90919063ffffffff16565b82828151811061239f5761239f6155a8565b6001600160401b039092166020928302919091019091015260010161231d565b6066545f906001908116036123e75760405163840a48d560e01b815260040160405180910390fd5b6123f08361352e565b61240d576040516348f5c3ed60e01b815260040160405180910390fd5b5f5f5f61241986612e38565b915091508161243b5760405163fa55fc8160e01b815260040160405180910390fd5b91505f90505b8351811015610d345783818151811061245c5761245c6155a8565b6020026020010151604001515184828151811061247b5761247b6155a8565b60200260200101516020015151146124a6576040516343714afd60e01b815260040160405180910390fd5b5f8482815181106124b9576124b96155a8565b602090810291909101810151518082015181516001600160a01b03165f908152609890935260409092209092506124f99163ffffffff9081169061351716565b61251657604051631fb1705560e21b815260040160405180910390fd5b5f61252187836107c8565b90505f5b868481518110612537576125376155a8565b60200260200101516020015151811015612873575f87858151811061255e5761255e6155a8565b602002602001015160200151828151811061257b5761257b6155a8565b60200260200101519050612592898261ffff613c14565b5f5f6125a18b6107b6886132f7565b91509150806040015163ffffffff165f146125cf57604051630d8fcbe360e41b815260040160405180910390fd5b5f6125dc8785848961414e565b9050612621825f01518c8a815181106125f7576125f76155a8565b6020026020010151604001518781518110612614576126146155a8565b6020026020010151614184565b600f0b602083018190525f0361264a57604051634606179360e11b815260040160405180910390fd5b5f8260200151600f0b121561278e578015612710576126cb61266b886132f7565b6001600160a01b03808f165f90815260a360209081526040808320938a16835292905220908154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b6126f57f000000000000000000000000000000000000000000000000000000000000000043615875565b612700906001615875565b63ffffffff1660408301526127fb565b6127228360200151836020015161392f565b6001600160401b031660208401528a518b9089908110612744576127446155a8565b6020026020010151604001518581518110612761576127616155a8565b6020908102919091018101516001600160401b031683525f9083015263ffffffff431660408301526127fb565b5f8260200151600f0b13156127fb576127af8360200151836020015161392f565b6001600160401b0390811660208501819052845190911610156127e557604051636c9be0bf60e01b815260040160405180910390fd5b6127ef8943615875565b63ffffffff1660408301525b6128108c612808896132f7565b86868661394e565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd8c8886612845865f0151876020015161392f565b866040015160405161285b959493929190615703565b60405180910390a15050600190920191506125259050565b505050600101612441565b6001600160a01b038083165f90815260a16020908152604080832093851683529290529081206107c19061419b565b826128b78161352e565b6128d45760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff16612916576001600160a01b0384165f90815260a460205260409020805460ff191660011790555b836001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371384846040516129519291906158f6565b60405180910390a250505050565b6066546002906004908116036129885760405163840a48d560e01b815260040160405180910390fd5b826129928161352e565b6129af5760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0385811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015612a13573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a379190615589565b612a545760405163ccea9e6f60e01b815260040160405180910390fd5b5f5b612a636020850185615601565b9050811015612c2b57604080518082019091525f9080612a866020880188614b15565b6001600160a01b03168152602001868060200190612aa49190615601565b85818110612ab457612ab46155a8565b9050602002016020810190612ac991906155da565b63ffffffff90811690915260208083015183516001600160a01b03165f90815260989092526040909120929350612b0592919081169061351716565b612b2257604051631fb1705560e21b815260040160405180910390fd5b612b2c86826107c8565b15612b4a57604051636c6c6e2760e11b815260040160405180910390fd5b612b73612b56826132f7565b6001600160a01b0388165f908152609c60205260409020906135d8565b50612b9f86609a5f612b84856132f7565b81526020019081526020015f206135e390919063ffffffff16565b50856001600160a01b03167f43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e82604051612bd991906155f3565b60405180910390a26001600160a01b0386165f908152609e60205260408120600191612c04846132f7565b815260208101919091526040015f20805460ff191691151591909117905550600101612a56565b50612c3c6103d96020850185614b15565b6001600160a01b031663c63fd50285612c586020870187614b15565b612c656020880188615601565b612c7260408a018a615754565b6040518763ffffffff1660e01b8152600401612c9396959493929190615909565b5f604051808303815f87803b158015612caa575f5ffd5b505af1158015611a7e573d5f5f3e3d5ffd5b5f61083d609a5f612ccc856132f7565b81526020019081526020015f20613503565b83612ce88161352e565b612d055760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f93845260989052939091209192612d44929161351716565b612d6157604051631fb1705560e21b815260040160405180910390fd5b5f612d6b826132f7565b90505f5b84811015611a7e57612db4868683818110612d8c57612d8c6155a8565b9050602002016020810190612da19190614b15565b5f8481526099602052604090209061407b565b612dd1576040516331bc342760e11b815260040160405180910390fd5b7f7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee83878784818110612e0557612e056155a8565b9050602002016020810190612e1a9190614b15565b604051612e28929190615646565b60405180910390a1600101612d6f565b6001600160a01b0381165f908152609b602090815260408083208151608081018352905463ffffffff80821680845260ff600160201b8404161515958401869052650100000000008304821694840194909452600160481b909104166060820181905284939192919015801590612eb95750826060015163ffffffff164310155b15612ec8575050604081015160015b9590945092505050565b6001600160a01b0381165f90815260986020526040812061083d90613503565b6001600160a01b0382165f908152609f602052604081206060919061083990826117b6866132f7565b5f54610100900460ff1615808015612f3957505f54600160ff909116105b80612f525750303b158015612f5257505f5460ff166001145b612fba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015612fdb575f805461ff0019166101001790555b612fe4826134c6565b612fed836140e9565b8015613033575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050565b816130428161352e565b61305f5760405163932d94f760e01b815260040160405180910390fd5b60405163b526578760e01b81526001600160a01b03848116600483015283169063b526578790602401602060405180830381865afa1580156130a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130c79190615589565b6130e457604051631d0b13c160e31b815260040160405180910390fd5b6001600160a01b038381165f90815260976020526040902080546001600160a01b0319169184169190911790557f2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf858361313c81610df0565b604080516001600160a01b0393841681529290911660208301520161302a565b61316461408f565b6001600160a01b0381166131c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401612fb1565b6131d2816140e9565b50565b5f5f610de78484613f01565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561323d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132619190615955565b6001600160a01b0316336001600160a01b0316146132925760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146132b95760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f815f0151826020015163ffffffff1660405160200161334292919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261083d90615970565b6040805180820182525f80825260208083018290528351606081018552828152808201839052808501839052845180860186526001600160a01b03898116855260a18452868520908816855290925293822092939281906133ba9061419b565b6001600160401b0390811682526001600160a01b038981165f81815260a260209081526040808320948c168084529482528083205486169682019690965291815260a082528481208b8252825284812092815291815290839020835160608101855290549283168152600160401b8304600f0b91810191909152600160c01b90910463ffffffff1691810182905291925043101561345c5790925090506134be565b61346d815f0151826020015161392f565b6001600160401b0316815260208101515f600f9190910b12156134ab5761349c8260200151826020015161392f565b6001600160401b031660208301525b5f60408201819052602082015290925090505b935093915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f61083d825490565b5f6107c183836141ae565b5f81815260018301602052604081205415156107c1565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156135b4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083d9190615589565b5f6107c183836141d4565b5f6107c1836001600160a01b0384166141d4565b606083516001600160401b0381111561361257613612614974565b60405190808252806020026020018201604052801561364557816020015b60608152602001906001900390816136305790505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0e0e67686866040518363ffffffff1660e01b8152600401613697929190615993565b5f60405180830381865afa1580156136b1573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526136d891908101906159b7565b90505f5b85518110156138da575f8682815181106136f8576136f86155a8565b6020026020010151905085516001600160401b0381111561371b5761371b614974565b604051908082528060200260200182016040528015613744578160200160208202803683370190505b50848381518110613757576137576155a8565b60209081029190910101525f5b86518110156138d0575f878281518110613780576137806155a8565b6020908102919091018101516001600160a01b038086165f90815260a18452604080822092841682529190935282209092506137bb9061419b565b9050806001600160401b03165f036137d45750506138c8565b5f6137e0858d8561078d565b90508863ffffffff16816040015163ffffffff161115801561380857505f8160200151600f0b125b1561382a5761381e815f0151826020015161392f565b6001600160401b031681525b80515f90613845906001600160401b0390811690851661391b565b905061388c8189898151811061385d5761385d6155a8565b60200260200101518781518110613876576138766155a8565b602002602001015161422090919063ffffffff16565b89888151811061389e5761389e6155a8565b602002602001015186815181106138b7576138b76155a8565b602002602001018181525050505050505b600101613764565b50506001016136dc565b5050949350505050565b6001600160a01b0381165f90815260018301602052604081205415156107c1565b5f6107c18383670de0b6b3a76400006001614234565b5f6107c183670de0b6b3a76400008461428d565b5f6107c1613946836001600160401b0386166156d6565b600f0b614372565b6020808301516001600160a01b038088165f90815260a284526040808220928816825291909352909120546001600160401b03908116911614613a1457602082810180516001600160a01b038881165f81815260a286526040808220938a1680835293875290819020805467ffffffffffffffff19166001600160401b0395861617905593518451918252948101919091529216908201527facf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc559060600160405180910390a15b6001600160a01b038086165f90815260a060209081526040808320888452825280832093871683529281529082902083518154928501519385015163ffffffff16600160c01b0263ffffffff60c01b196001600160801b038616600160401b026001600160c01b03199095166001600160401b03909316929092179390931716919091179055600f0b15613af6576001600160a01b0385165f908152609f602090815260408083208784529091529020613ace90846135e3565b506001600160a01b0385165f908152609d60205260409020613af090856135d8565b50610d34565b80516001600160401b03165f03610d34576001600160a01b0385165f908152609f602090815260408083208784529091529020613b33908461407b565b506001600160a01b0385165f908152609f602090815260408083208784529091529020613b5f90613503565b5f03610d34576001600160a01b0385165f908152609d602052604090206121139085614070565b6001600160a01b038084165f90815260a160209081526040808320938616835292905220613bb59043836143dd565b604080516001600160a01b038086168252841660208201526001600160401b038316918101919091527f1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c9060600161302a565b60605f6107c1836143f1565b6001600160a01b038381165f90815260a360209081526040808320938616835292905290812054600f81810b600160801b909204900b035b5f81118015613c5e57508261ffff1682105b15610d34576001600160a01b038086165f90815260a3602090815260408083209388168352929052908120613c929061444a565b90505f5f613ca188848961335a565b91509150806040015163ffffffff16431015613cbf57505050610d34565b613ccc888489858561394e565b6001600160a01b038089165f90815260a360209081526040808320938b16835292905220613cf99061449c565b50613d0385615ac3565b9450613d0e84615adb565b9350505050613c4c565b60605f613d2483614519565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b0382165f908152609b60209081526040918290208251608081018452905463ffffffff808216835260ff600160201b830416151593830193909352650100000000008104831693820193909352600160481b909204166060820181905215801590613dd15750806060015163ffffffff164310155b15613deb57604081015163ffffffff168152600160208201525b63ffffffff82166040820152613e217f000000000000000000000000000000000000000000000000000000000000000043615875565b613e2c906001615875565b63ffffffff90811660608381019182526001600160a01b0386165f818152609b602090815260409182902087518154838a0151858b01519851928a1664ffffffffff1990921691909117600160201b91151591909102176cffffffffffffffff0000000000191665010000000000978916979097026cffffffff000000000000000000191696909617600160481b968816968702179055815192835294871694820194909452928301919091527f4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db910161302a565b6001600160a01b038281165f81815260a2602090815260408083209486168084529482528083205493835260a38252808320948352939052918220546001600160401b039091169190600f81810b600160801b909204900b03815b8181101561402c576001600160a01b038087165f90815260a3602090815260408083209389168352929052908120613f949083614540565b6001600160a01b038881165f90815260a0602090815260408083208584528252808320938b16835292815290829020825160608101845290546001600160401b0381168252600160401b8104600f0b92820192909252600160c01b90910463ffffffff1691810182905291925043101561400f57505061402c565b61401d86826020015161392f565b95505050806001019050613f5c565b506001600160a01b038086165f90815260a160209081526040808320938816835292905220839061405c9061419b565b6140669190615693565b9150509250929050565b5f6107c183836145af565b5f6107c1836001600160a01b0384166145af565b6033546001600160a01b03163314611d125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612fb1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6107c18383670de0b6b3a7640000614692565b5f61415f8460995f611132896132f7565b80156141685750815b8015611d3157505090516001600160401b031615159392505050565b5f6107c16001600160401b03808516908416615af0565b5f61083d82670de0b6b3a76400006146e7565b5f825f0182815481106141c3576141c36155a8565b905f5260205f200154905092915050565b5f81815260018301602052604081205461421957508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561083d565b505f61083d565b5f6107c18383670de0b6b3a764000061428d565b5f5f61424186868661428d565b9050600183600281111561425757614257615b1d565b14801561427357505f848061426e5761426e615b31565b868809115b15611d3157614283600182615b45565b9695505050505050565b5f80805f19858709858702925082811083820303915050805f036142c4578382816142ba576142ba615b31565b04925050506107c1565b80841161430b5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401612fb1565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f6001600160401b038211156143d95760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401612fb1565b5090565b61303383836001600160401b03841661471e565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561443e57602002820191905f5260205f20905b81548152602001906001019080831161442a575b50505050509050919050565b5f6144648254600f81810b600160801b909204900b131590565b1561448257604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f9081526001909101602052604090205490565b5f6144b68254600f81810b600160801b909204900b131590565b156144d457604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b5f60ff8216601f81111561083d57604051632cd44ac360e21b815260040160405180910390fd5b5f5f61456261454e84614821565b855461455d9190600f0b615b58565b61488a565b8454909150600160801b9004600f90810b9082900b1261459557604051632d0483c560e21b815260040160405180910390fd5b600f0b5f9081526001939093016020525050604090205490565b5f8181526001830160205260408120548015614689575f6145d1600183615680565b85549091505f906145e490600190615680565b9050818114614643575f865f018281548110614602576146026155a8565b905f5260205f200154905080875f018481548110614622576146226155a8565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061465457614654615b7f565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061083d565b5f91505061083d565b82545f90816146a3868683856148f3565b905080156146dd576146c7866146ba600184615680565b5f91825260209091200190565b54600160201b90046001600160e01b03166107bc565b5091949350505050565b81545f90801561471657614700846146ba600184615680565b54600160201b90046001600160e01b0316610839565b509092915050565b825480156147d4575f614736856146ba600185615680565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090851610156147885760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff8086169116036147d257826147a9866146ba600186615680565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216600160201b029190921617910155565b5f6001600160ff1b038211156143d95760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401612fb1565b80600f81900b81146148ee5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401612fb1565b919050565b5f5b81831015610a27575f6149088484614946565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561493257809250614940565b61493d816001615b45565b93505b506148f5565b5f6149546002848418615b93565b6107c190848416615b45565b6001600160a01b03811681146131d2575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156149aa576149aa614974565b60405290565b604051601f8201601f191681016001600160401b03811182821017156149d8576149d8614974565b604052919050565b803563ffffffff811681146148ee575f5ffd5b5f60408284031215614a03575f5ffd5b604080519081016001600160401b0381118282101715614a2557614a25614974565b6040529050808235614a3681614960565b8152614a44602084016149e0565b60208201525092915050565b5f5f5f60808486031215614a62575f5ffd5b8335614a6d81614960565b9250614a7c85602086016149f3565b91506060840135614a8c81614960565b809150509250925092565b81516001600160401b03168152602080830151600f0b9082015260408083015163ffffffff16908201526060810161083d565b5f5f60608385031215614adb575f5ffd5b8235614ae681614960565b9150614af584602085016149f3565b90509250929050565b5f60208284031215614b0e575f5ffd5b5035919050565b5f60208284031215614b25575f5ffd5b81356107c181614960565b80516001600160a01b0316825260209081015163ffffffff16910152565b5f8151808452602084019350602083015f5b82811015614b8957614b73868351614b30565b6040959095019460209190910190600101614b60565b5093949350505050565b602081525f6107c16020830184614b4e565b5f60408284031215614bb5575f5ffd5b6107c183836149f3565b5f5f83601f840112614bcf575f5ffd5b5081356001600160401b03811115614be5575f5ffd5b6020830191508360208260051b850101111561179d575f5ffd5b5f5f5f60408486031215614c11575f5ffd5b8335614c1c81614960565b925060208401356001600160401b03811115614c36575f5ffd5b614c4286828701614bbf565b9497909650939450505050565b5f6001600160401b03821115614c6757614c67614974565b5060051b60200190565b5f82601f830112614c80575f5ffd5b8135614c93614c8e82614c4f565b6149b0565b8082825260208201915060208360051b860101925085831115614cb4575f5ffd5b602085015b83811015614cda578035614ccc81614960565b835260209283019201614cb9565b5095945050505050565b5f5f5f60808486031215614cf6575f5ffd5b614d0085856149f3565b925060408401356001600160401b03811115614d1a575f5ffd5b614d2686828701614c71565b92505060608401356001600160401b03811115614d41575f5ffd5b614d4d86828701614c71565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614b89578151865260209586019590910190600101614d69565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614dde57603f19878603018452614dc9858351614d57565b94506020938401939190910190600101614dad565b50929695505050505050565b5f5f5f5f60a08587031215614dfd575f5ffd5b614e0786866149f3565b935060408501356001600160401b03811115614e21575f5ffd5b614e2d87828801614c71565b93505060608501356001600160401b03811115614e48575f5ffd5b614e5487828801614c71565b925050614e63608086016149e0565b905092959194509250565b5f5f60408385031215614e7f575f5ffd5b8235614e8a81614960565b915060208301356001600160401b03811115614ea4575f5ffd5b830160a08186031215614eb5575f5ffd5b809150509250929050565b5f5f60408385031215614ed1575f5ffd5b8235614edc81614960565b91506020830135614eb581614960565b5f8151808452602084019350602083015f5b82811015614b8957614f3786835180516001600160401b03168252602080820151600f0b9083015260409081015163ffffffff16910152565b6060959095019460209190910190600101614efe565b604081525f614f5f6040830185614b4e565b8281036020840152611d318185614eec565b5f8151808452602084019350602083015f5b82811015614b895781516001600160a01b0316865260209586019590910190600101614f83565b602081525f6107c16020830184614f71565b5f5f60408385031215614fcd575f5ffd5b82356001600160401b03811115614fe2575f5ffd5b614fee85828601614c71565b9250506020830135614eb581614960565b602080825282518282018190525f918401906040840190835b8181101561503f5783516001600160401b0316835260209384019390920191600101615018565b509095945050505050565b5f5f5f5f5f6060868803121561505e575f5ffd5b853561506981614960565b945060208601356001600160401b03811115615083575f5ffd5b61508f88828901614bbf565b90955093505060408601356001600160401b038111156150ad575f5ffd5b6150b988828901614bbf565b969995985093965092949392505050565b5f5f5f5f606085870312156150dd575f5ffd5b84356150e881614960565b93506150f6602086016149e0565b925060408501356001600160401b03811115615110575f5ffd5b61511c87828801614bbf565b95989497509550505050565b5f5f60408385031215615139575f5ffd5b823561514481614960565b915060208301356001600160401b0381111561515e575f5ffd5b61406685828601614c71565b602081525f82518060208401525f5b818110156151965760208186018101516040868401015201615179565b505f604082850101526040601f19601f83011684010191505092915050565b5f5f604083850312156151c6575f5ffd5b82356151d181614960565b9150614af5602084016149e0565b5f602082840312156151ef575f5ffd5b813560ff811681146107c1575f5ffd5b5f6060828403121561520f575f5ffd5b50919050565b5f60208284031215615225575f5ffd5b81356001600160401b0381111561523a575f5ffd5b610839848285016151ff565b5f5f5f60808486031215615258575f5ffd5b83356001600160401b0381111561526d575f5ffd5b61527986828701614c71565b935050614a7c85602086016149f3565b602081525f6107c16020830184614eec565b5f5f5f606084860312156152ad575f5ffd5b83356152b881614960565b925060208401356001600160401b038111156152d2575f5ffd5b6152de86828701614c71565b9250506152ed604085016149e0565b90509250925092565b5f5f60408385031215615307575f5ffd5b823561531281614960565b915060208301356001600160401b0381111561532c575f5ffd5b8301601f8101851361533c575f5ffd5b803561534a614c8e82614c4f565b8082825260208201915060208360051b85010192508783111561536b575f5ffd5b602084015b838110156154905780356001600160401b0381111561538d575f5ffd5b85016080818b03601f190112156153a2575f5ffd5b6153aa614988565b6153b78b602084016149f3565b815260608201356001600160401b038111156153d1575f5ffd5b6153e08c602083860101614c71565b60208301525060808201356001600160401b038111156153fe575f5ffd5b6020818401019250508a601f830112615415575f5ffd5b8135615423614c8e82614c4f565b8082825260208201915060208360051b86010192508d831115615444575f5ffd5b6020850194505b8285101561547a5784356001600160401b0381168114615469575f5ffd5b82526020948501949091019061544b565b6040840152505084525060209283019201615370565b50809450505050509250929050565b5f5f5f604084860312156154b1575f5ffd5b83356154bc81614960565b925060208401356001600160401b038111156154d6575f5ffd5b8401601f810186136154e6575f5ffd5b80356001600160401b038111156154fb575f5ffd5b86602082840101111561550c575f5ffd5b939660209190910195509293505050565b5f5f6040838503121561552e575f5ffd5b823561553981614960565b915060208301356001600160401b03811115615553575f5ffd5b614066858286016151ff565b5f5f60408385031215615570575f5ffd5b823561557b81614960565b946020939093013593505050565b5f60208284031215615599575f5ffd5b815180151581146107c1575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235603e198336030181126155d0575f5ffd5b9190910192915050565b5f602082840312156155ea575f5ffd5b6107c1826149e0565b6040810161083d8284614b30565b5f5f8335601e19843603018112615616575f5ffd5b8301803591506001600160401b0382111561562f575f5ffd5b6020019150600581901b360382131561179d575f5ffd5b606081016156548285614b30565b6001600160a01b039290921660409190910152919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561083d5761083d61566c565b6001600160401b03828116828216039081111561083d5761083d61566c565b5f81600f0b60016001607f1b031981036156ce576156ce61566c565b5f0392915050565b600f81810b9083900b0160016001607f1b03811360016001607f1b03198212171561083d5761083d61566c565b6001600160a01b038616815260c081016157206020830187614b30565b6001600160a01b039490941660608201526001600160401b0392909216608083015263ffffffff1660a09091015292915050565b5f5f8335601e19843603018112615769575f5ffd5b8301803591506001600160401b03821115615782575f5ffd5b60200191503681900382131561179d575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b03881681525f60c082016157dc602084018a614b30565b60c060608401528690528660e083015f5b8881101561581d57823561580081614960565b6001600160a01b03168252602092830192909101906001016157ed565b5083810360808501526158308188614d57565b91505082810360a0840152615846818587615796565b9a9950505050505050505050565b5f60208284031215615864575f5ffd5b813561ffff811681146107c1575f5ffd5b63ffffffff818116838216019081111561083d5761083d61566c565b8183526020830192505f815f5b84811015614b895763ffffffff6158b4836149e0565b168652602095860195919091019060010161589e565b6001600160a01b038581168252841660208201526060604082018190525f906142839083018486615891565b602081525f610d49602083018486615796565b6001600160a01b038781168252861660208201526080604082018190525f906159359083018688615891565b8281036060840152615948818587615796565b9998505050505050505050565b5f60208284031215615965575f5ffd5b81516107c181614960565b8051602080830151919081101561520f575f1960209190910360031b1b16919050565b604081525f6159a56040830185614f71565b8281036020840152611d318185614f71565b5f602082840312156159c7575f5ffd5b81516001600160401b038111156159dc575f5ffd5b8201601f810184136159ec575f5ffd5b80516159fa614c8e82614c4f565b8082825260208201915060208360051b850101925086831115615a1b575f5ffd5b602084015b83811015615ab85780516001600160401b03811115615a3d575f5ffd5b8501603f81018913615a4d575f5ffd5b6020810151615a5e614c8e82614c4f565b808282526020820191506020808460051b8601010192508b831115615a81575f5ffd5b6040840193505b82841015615aa3578351825260209384019390910190615a88565b86525050602093840193919091019050615a20565b509695505050505050565b5f60018201615ad457615ad461566c565b5060010190565b5f81615ae957615ae961566c565b505f190190565b600f82810b9082900b0360016001607f1b0319811260016001607f1b038213171561083d5761083d61566c565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b8082018082111561083d5761083d61566c565b8082018281125f831280158216821582161715615b7757615b7761566c565b505092915050565b634e487b7160e01b5f52603160045260245ffd5b5f82615bad57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220ba4081e0997ae37b1bc8c99d6fdc42e5ac9d0999f5c98777049947777843ebc164736f6c634300081b0033
3735    /// ```
3736    #[rustfmt::skip]
3737    #[allow(clippy::all)]
3738    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3739        b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x02\xB1W_5`\xE0\x1C\x80cl\xFBD\x81\x11a\x01{W\x80c\xA9\x82\x18!\x11a\0\xE4W\x80c\xC2!\xD8\xAE\x11a\0\x9EW\x80c\xDF\\\xF7#\x11a\0yW\x80c\xDF\\\xF7#\x14a\x07-W\x80c\xF2\xFD\xE3\x8B\x14a\x07TW\x80c\xF6\x05\xCE\x08\x14a\x07gW\x80c\xFA\xBC\x1C\xBC\x14a\x07zW__\xFD[\x80c\xC2!\xD8\xAE\x14a\x06\xF4W\x80c\xCDm\xC6\x87\x14a\x07\x07W\x80c\xD3\xD9o\xF4\x14a\x07\x1AW__\xFD[\x80c\xA9\x82\x18!\x14a\x06fW\x80c\xAD\xC2\xE3\xD9\x14a\x06yW\x80c\xB2Dz\xF7\x14a\x06\x8CW\x80c\xB6k\xD9\x89\x14a\x06\x9FW\x80c\xB9\xFB\xAE\xD1\x14a\x06\xB2W\x80c\xBA\x1A\x84\xE5\x14a\x06\xE1W__\xFD[\x80c\x88o\x11\x95\x11a\x015W\x80c\x88o\x11\x95\x14a\x05\xD5W\x80c\x8C\xE6HT\x14a\x05\xFCW\x80c\x8D\xA5\xCB[\x14a\x06\x1CW\x80c\x94\xD7\xD0\x0C\x14a\x06-W\x80c\x95(\x99\xEE\x14a\x06@W\x80c\xA93>\xC8\x14a\x06SW__\xFD[\x80cl\xFBD\x81\x14a\x05BW\x80cn4\x92\xB5\x14a\x05mW\x80cn\x87]\xBA\x14a\x05\x80W\x80cqP\x18\xA6\x14a\x05\x93W\x80cy\xAEP\xCD\x14a\x05\x9BW\x80c{\xC1\xEFa\x14a\x05\xAEW__\xFD[\x80cAw\xA8|\x11a\x02\x1DW\x80cT\xFDMP\x11a\x01\xD7W\x80cT\xFDMP\x14a\x04\xCAW\x80cV\xC4\x83\xE6\x14a\x04\xDFW\x80cY\\jg\x14a\x04\xF2W\x80cZ\xC8j\xB7\x14a\x04\xFAW\x80c\\\x97Z\xBB\x14a\x05\x1DW\x80cg\r;\xA2\x14a\x05/W__\xFD[\x80cAw\xA8|\x14a\x04*W\x80cFW\xE2j\x14a\x04JW\x80cJ\x10\xFF\xE5\x14a\x04qW\x80cKPF\xEF\x14a\x04\x91W\x80cP\xFE\xEA \x14a\x04\xA4W\x80cTz\xFB\x87\x14a\x04\xB7W__\xFD[\x80c)\x81\xEBw\x11a\x02nW\x80c)\x81\xEBw\x14a\x03\\W\x80c+E:\x9A\x14a\x03\x98W\x80c+\xAB,J\x14a\x03\xB8W\x80c0L\x10\xCD\x14a\x03\xCBW\x80c65 W\x14a\x03\xF6W\x80c@\x12\r\xAB\x14a\x04\tW__\xFD[\x80c\x10\xE1\xB9\xB8\x14a\x02\xB5W\x80c\x13R\xC3\xE6\x14a\x02\xDEW\x80c\x13d9\xDD\x14a\x03\x01W\x80c\x15\xFEP(\x14a\x03\x16W\x80c&\r\xC7X\x14a\x036W\x80c&\x1F\x84\xE0\x14a\x03IW[__\xFD[a\x02\xC8a\x02\xC36`\x04aJPV[a\x07\x8DV[`@Qa\x02\xD5\x91\x90aJ\x97V[`@Q\x80\x91\x03\x90\xF3[a\x02\xF1a\x02\xEC6`\x04aJ\xCAV[a\x07\xC8V[`@Q\x90\x15\x15\x81R` \x01a\x02\xD5V[a\x03\x14a\x03\x0F6`\x04aJ\xFEV[a\x08CV[\0[a\x03)a\x03$6`\x04aK\x15V[a\t\x18V[`@Qa\x02\xD5\x91\x90aK\x93V[a\x02\xF1a\x03D6`\x04aK\xA5V[a\n/V[a\x03\x14a\x03W6`\x04aK\xFFV[a\n`V[a\x03\x83\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\xD5V[a\x03\xABa\x03\xA66`\x04aL\xE4V[a\r;V[`@Qa\x02\xD5\x91\x90aM\x87V[a\x03\xABa\x03\xC66`\x04aM\xEAV[a\rQV[a\x03\xDEa\x03\xD96`\x04aK\x15V[a\r\xF0V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02\xD5V[a\x03\x14a\x04\x046`\x04aNnV[a\x0E\x1FV[a\x04\x1Ca\x04\x176`\x04aN\xC0V[a\x16)V[`@Qa\x02\xD5\x92\x91\x90aOMV[a\x04=a\x0486`\x04aK\xA5V[a\x17\xA4V[`@Qa\x02\xD5\x91\x90aO\xAAV[a\x03\xDE\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\x04\x84a\x04\x7F6`\x04aO\xBCV[a\x17\xC8V[`@Qa\x02\xD5\x91\x90aO\xFFV[a\x03\x14a\x04\x9F6`\x04aPJV[a\x18pV[a\x03\x14a\x04\xB26`\x04aP\xCAV[a\x19*V[a\x04\x84a\x04\xC56`\x04aQ(V[a\x1A\x88V[a\x04\xD2a\x1B0V[`@Qa\x02\xD5\x91\x90aQjV[a\x03\x14a\x04\xED6`\x04aQ\xB5V[a\x1B`V[a\x03\x14a\x1CeV[a\x02\xF1a\x05\x086`\x04aQ\xDFV[`fT`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`fT[`@Q\x90\x81R` \x01a\x02\xD5V[a\x02\xF1a\x05=6`\x04aJ\xCAV[a\x1D\x14V[a\x05Ua\x05P6`\x04aN\xC0V[a\x1D%V[`@Q`\x01`\x01`@\x1B\x03\x90\x91\x16\x81R` \x01a\x02\xD5V[a\x03\x14a\x05{6`\x04aR\x15V[a\x1D:V[a\x04=a\x05\x8E6`\x04aK\xA5V[a!\x1BV[a\x03\x14a!,V[a\x03)a\x05\xA96`\x04aK\x15V[a!=V[a\x03\x83\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\xDE\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\x06\x0Fa\x06\n6`\x04aRFV[a\"\x17V[`@Qa\x02\xD5\x91\x90aR\x89V[`3T`\x01`\x01`\xA0\x1B\x03\x16a\x03\xDEV[a\x04\x84a\x06;6`\x04aR\x9BV[a\"\xD3V[a\x03\x14a\x06N6`\x04aR\xF6V[a#\xBFV[a\x05Ua\x06a6`\x04aN\xC0V[a(~V[a\x03\x14a\x06t6`\x04aT\x9FV[a(\xADV[a\x03\x14a\x06\x876`\x04aU\x1DV[a)_V[a\x05!a\x06\x9A6`\x04aK\xA5V[a,\xBCV[a\x03\x14a\x06\xAD6`\x04aP\xCAV[a,\xDEV[a\x06\xC5a\x06\xC06`\x04aK\x15V[a.8V[`@\x80Q\x92\x15\x15\x83Rc\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x02\xD5V[a\x05!a\x06\xEF6`\x04aK\x15V[a.\xD2V[a\x04=a\x07\x026`\x04aJ\xCAV[a.\xF2V[a\x03\x14a\x07\x156`\x04aU_V[a/\x1BV[a\x03\x14a\x07(6`\x04aN\xC0V[a08V[a\x03\xDE\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\x14a\x07b6`\x04aK\x15V[a1\\V[a\x05Ua\x07u6`\x04aN\xC0V[a1\xD5V[a\x03\x14a\x07\x886`\x04aJ\xFEV[a1\xE1V[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R\x90a\x07\xBC\x85a\x07\xB6\x86a2\xF7V[\x85a3ZV[\x92PPP[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9E` R`@\x81 \x81\x90\x81a\x07\xEB\x85a2\xF7V[\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\x089WP\x80` \x01Qc\xFF\xFF\xFF\xFF\x16C\x11\x15[\x91PP[\x92\x91PPV[`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01R\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\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xA5W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xC9\x91\x90aU\x89V[a\x08\xE6W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x81\x81\x16\x81\x14a\t\x0BW`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\x14\x82a4\xC6V[PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9D` R`@\x81 ``\x91\x90a\t<\x90a5\x03V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\tWWa\tWaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t\x9BW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\tuW\x90P[P\x90P_[\x82\x81\x10\x15a\n'W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a\n\x02\x90a\t\xCD\x90\x83a5\x0CV[`@\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\n\x14Wa\n\x14aU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\t\xA0V[P\x93\x92PPPV[` \x80\x82\x01Q\x82Q`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x98\x90\x92R`@\x82 a\x08=\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a5\x17\x16V[\x82a\nj\x81a5.V[a\n\x87W`@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\xBFW`@QcH\xF7\xDB\xB9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x82\x81\x10\x15a\r4W_`@Q\x80`@\x01`@R\x80\x87`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86\x86\x85\x81\x81\x10a\n\xF6Wa\n\xF6aU\xA8V[\x90P` \x02\x81\x01\x90a\x0B\x08\x91\x90aU\xBCV[a\x0B\x16\x90` \x81\x01\x90aU\xDAV[c\xFF\xFF\xFF\xFF\x16\x81RP\x90Pa\x0B`\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_ a5\xD8\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x0B}W`@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\xD3\x91\x90aU\xF3V[`@Q\x80\x91\x03\x90\xA1_a\x0B\xE5\x82a2\xF7V[\x90P_[\x86\x86\x85\x81\x81\x10a\x0B\xFBWa\x0B\xFBaU\xA8V[\x90P` \x02\x81\x01\x90a\x0C\r\x91\x90aU\xBCV[a\x0C\x1B\x90` \x81\x01\x90aV\x01V[\x90P\x81\x10\x15a\r)Wa\x0C\x91\x87\x87\x86\x81\x81\x10a\x0C9Wa\x0C9aU\xA8V[\x90P` \x02\x81\x01\x90a\x0CK\x91\x90aU\xBCV[a\x0CY\x90` \x81\x01\x90aV\x01V[\x83\x81\x81\x10a\x0CiWa\x0CiaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x0C~\x91\x90aK\x15V[_\x84\x81R`\x99` R`@\x90 \x90a5\xE3V[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\xC6Wa\x0C\xC6aU\xA8V[\x90P` \x02\x81\x01\x90a\x0C\xD8\x91\x90aU\xBCV[a\x0C\xE6\x90` \x81\x01\x90aV\x01V[\x84\x81\x81\x10a\x0C\xF6Wa\x0C\xF6aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\r\x0B\x91\x90aK\x15V[`@Qa\r\x19\x92\x91\x90aVFV[`@Q\x80\x91\x03\x90\xA1`\x01\x01a\x0B\xE9V[PPP`\x01\x01a\n\xC1V[PPPPPV[``a\rI\x84\x84\x84Ca5\xF7V[\x94\x93PPPPV[``a\r_\x85\x85\x85\x85a5\xF7V[\x90P_[\x84Q\x81\x10\x15a\r\xE7Wa\r\x8F\x85\x82\x81Q\x81\x10a\r\x81Wa\r\x81aU\xA8V[` \x02` \x01\x01Q\x87a\x07\xC8V[a\r\xDFW_[\x84Q\x81\x10\x15a\r\xDDW_\x83\x83\x81Q\x81\x10a\r\xB1Wa\r\xB1aU\xA8V[` \x02` \x01\x01Q\x82\x81Q\x81\x10a\r\xCAWa\r\xCAaU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\r\x95V[P[`\x01\x01a\rcV[P\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x90\x81R`\x97` R`@\x81 T\x90\x91\x16\x80\x15a\x0E\x18W\x80a\x07\xC1V[P\x90\x91\x90PV[`fT`\x01\x90`\x02\x90\x81\x16\x03a\x0EHW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a\x0ER\x81a5.V[a\x0EoW`@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\x0E\x9D\x91\x90aU\xDAV[c\xFF\xFF\xFF\xFF\x16\x90R\x90Pa\x0E\xB4``\x85\x01\x85aV\x01V[\x90Pa\x0E\xC3`@\x86\x01\x86aV\x01V[\x90P\x14a\x0E\xE3W`@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\x0F\x15\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a5\x17\x16V[a\x0F2W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0FHa\x0FB` \x86\x01\x86aK\x15V[\x82a\x07\xC8V[a\x0FeW`@Qc\xEB\xBF\xF4\x97`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x0Fs`@\x86\x01\x86aV\x01V[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0F\x8CWa\x0F\x8CaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0F\xB5W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[a\x0F\xC7`@\x87\x01\x87aV\x01V[\x90P\x81\x10\x15a\x15\xBBW\x80\x15\x80a\x10ZWPa\x0F\xE5`@\x87\x01\x87aV\x01V[a\x0F\xF0`\x01\x84aV\x80V[\x81\x81\x10a\x0F\xFFWa\x0F\xFFaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x10\x14\x91\x90aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16a\x10*`@\x88\x01\x88aV\x01V[\x83\x81\x81\x10a\x10:Wa\x10:aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x10O\x91\x90aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x11[a\x10wW`@Qc\x9F\x1C\x80S`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x10\x84``\x87\x01\x87aV\x01V[\x82\x81\x81\x10a\x10\x94Wa\x10\x94aU\xA8V[\x90P` \x02\x015_\x10\x80\x15a\x10\xD4WPg\r\xE0\xB6\xB3\xA7d\0\0a\x10\xBA``\x88\x01\x88aV\x01V[\x83\x81\x81\x10a\x10\xCAWa\x10\xCAaU\xA8V[\x90P` \x02\x015\x11\x15[a\x10\xF1W`@Qc\x13S`1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11Ma\x11\x01`@\x88\x01\x88aV\x01V[\x83\x81\x81\x10a\x11\x11Wa\x11\x11aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x11&\x91\x90aK\x15V[`\x99_a\x112\x87a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a8\xE4\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x11jW`@Qc1\xBC4'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80a\x11\xBCa\x11|` \x8A\x01\x8AaK\x15V[a\x11\x85\x87a2\xF7V[a\x11\x92`@\x8C\x01\x8CaV\x01V[\x87\x81\x81\x10a\x11\xA2Wa\x11\xA2aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x11\xB7\x91\x90aK\x15V[a3ZV[\x80Q\x91\x93P\x91P`\x01`\x01`@\x1B\x03\x16_\x03a\x11\xD9WPPa\x15\xB3V[_a\x12\x14a\x11\xEA``\x8B\x01\x8BaV\x01V[\x86\x81\x81\x10a\x11\xFAWa\x11\xFAaU\xA8V[\x85Q`\x01`\x01`@\x1B\x03\x16\x92` \x90\x91\x02\x015\x90Pa9\x05V[\x83Q\x90\x91Pa\x12/`\x01`\x01`@\x1B\x03\x80\x84\x16\x90\x83\x16a9\x1BV[\x86\x86\x81Q\x81\x10a\x12AWa\x12AaU\xA8V[` \x02` \x01\x01\x81\x81RPP\x81\x83_\x01\x81\x81Qa\x12^\x91\x90aV\x93V[`\x01`\x01`@\x1B\x03\x16\x90RP\x83Q\x82\x90\x85\x90a\x12{\x90\x83\x90aV\x93V[`\x01`\x01`@\x1B\x03\x16\x90RP` \x84\x01\x80Q\x83\x91\x90a\x12\x9B\x90\x83\x90aV\x93V[`\x01`\x01`@\x1B\x03\x16\x90RP` \x83\x01Q_`\x0F\x91\x90\x91\x0B\x12\x15a\x13\xB3W_a\x12\xFEa\x12\xCA``\x8D\x01\x8DaV\x01V[\x88\x81\x81\x10a\x12\xDAWa\x12\xDAaU\xA8V[\x90P` \x02\x015\x85` \x01Qa\x12\xEF\x90aV\xB2V[`\x01`\x01`\x80\x1B\x03\x16\x90a9\x05V[\x90P\x80`\x01`\x01`@\x1B\x03\x16\x84` \x01\x81\x81Qa\x13\x1B\x91\x90aV\xD6V[`\x0F\x0B\x90RP\x7F\x14\x87\xAFT\x18\xC4~\xE5\xEAE\xEFJ\x939\x86h\x12\x08\x90wJ\x9E\x13H~a\xE9\xDC;\xAFv\xDDa\x13O` \x8D\x01\x8DaK\x15V[\x89a\x13]`@\x8F\x01\x8FaV\x01V[\x8A\x81\x81\x10a\x13mWa\x13maU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x13\x82\x91\x90aK\x15V[a\x13\x93\x88_\x01Q\x89` \x01Qa9/V[\x88`@\x01Q`@Qa\x13\xA9\x95\x94\x93\x92\x91\x90aW\x03V[`@Q\x80\x91\x03\x90\xA1P[a\x14\x05a\x13\xC3` \x8C\x01\x8CaK\x15V[a\x13\xCC\x89a2\xF7V[a\x13\xD9`@\x8E\x01\x8EaV\x01V[\x89\x81\x81\x10a\x13\xE9Wa\x13\xE9aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x13\xFE\x91\x90aK\x15V[\x87\x87a9NV[\x7F\x14\x87\xAFT\x18\xC4~\xE5\xEAE\xEFJ\x939\x86h\x12\x08\x90wJ\x9E\x13H~a\xE9\xDC;\xAFv\xDDa\x143` \x8C\x01\x8CaK\x15V[\x88a\x14A`@\x8E\x01\x8EaV\x01V[\x89\x81\x81\x10a\x14QWa\x14QaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x14f\x91\x90aK\x15V[\x86Q`@Qa\x14z\x94\x93\x92\x91\x90C\x90aW\x03V[`@Q\x80\x91\x03\x90\xA1a\x14\xCBa\x14\x92` \x8C\x01\x8CaK\x15V[a\x14\x9F`@\x8D\x01\x8DaV\x01V[\x88\x81\x81\x10a\x14\xAFWa\x14\xAFaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x14\xC4\x91\x90aK\x15V[\x86Qa;\x86V[`\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\x15\x07` \x8D\x01\x8DaK\x15V[a\x15\x14`@\x8E\x01\x8EaV\x01V[\x89\x81\x81\x10a\x15$Wa\x15$aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x159\x91\x90aK\x15V[\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\x15\x98W__\xFD[PZ\xF1\x15\x80\x15a\x15\xAAW=__>=_\xFD[PPPPPPPP[`\x01\x01a\x0F\xBAV[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\xEA` \x87\x01\x87aK\x15V[\x83a\x15\xF8`@\x89\x01\x89aV\x01V[\x85a\x16\x06`\x80\x8C\x01\x8CaWTV[`@Qa\x16\x19\x97\x96\x95\x94\x93\x92\x91\x90aW\xBEV[`@Q\x80\x91\x03\x90\xA1PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9D` R`@\x81 ``\x91\x82\x91a\x16N\x90a5\x03V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16iWa\x16iaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16\xADW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x16\x87W\x90P[P\x90P_\x82`\x01`\x01`@\x1B\x03\x81\x11\x15a\x16\xC9Wa\x16\xC9aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x17\x12W\x81` \x01[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01R\x82R_\x19\x90\x92\x01\x91\x01\x81a\x16\xE7W\x90P[P\x90P_[\x83\x81\x10\x15a\x17\x95W`\x01`\x01`\xA0\x1B\x03\x88\x16_\x90\x81R`\x9D` R`@\x81 a\x17D\x90a\t\xCD\x90\x84a5\x0CV[\x90P\x80\x84\x83\x81Q\x81\x10a\x17YWa\x17YaU\xA8V[` \x02` \x01\x01\x81\x90RPa\x17o\x89\x82\x8Aa\x07\x8DV[\x83\x83\x81Q\x81\x10a\x17\x81Wa\x17\x81aU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01RP`\x01\x01a\x17\x17V[P\x90\x93P\x91PP[\x92P\x92\x90PV[``_a\x07\xC1`\x99_a\x17\xB6\x86a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a<\x08V[``_\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x17\xE4Wa\x17\xE4aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x18\rW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x84Q\x81\x10\x15a\n'Wa\x18>\x85\x82\x81Q\x81\x10a\x180Wa\x180aU\xA8V[` \x02` \x01\x01Q\x85a(~V[\x82\x82\x81Q\x81\x10a\x18PWa\x18PaU\xA8V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x18\x12V[`fT_\x90`\x01\x90\x81\x16\x03a\x18\x98W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83\x82\x14a\x18\xB8W`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x84\x81\x10\x15a\x19!Wa\x19\x19\x87\x87\x87\x84\x81\x81\x10a\x18\xD8Wa\x18\xD8aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x18\xED\x91\x90aK\x15V[\x86\x86\x85\x81\x81\x10a\x18\xFFWa\x18\xFFaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x19\x14\x91\x90aXTV[a<\x14V[`\x01\x01a\x18\xBAV[PPPPPPPV[\x83a\x194\x81a5.V[a\x19QW`@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}\x82a2\xF7V[\x90Pa\x19\xBE\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_ a5\x17\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x19\xDBW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x84\x81\x10\x15a\x1A~Wa\x19\xFA\x86\x86\x83\x81\x81\x10a\x0CiWa\x0CiaU\xA8V[a\x1A\x17W`@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\x1AKWa\x1AKaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x1A`\x91\x90aK\x15V[`@Qa\x1An\x92\x91\x90aVFV[`@Q\x80\x91\x03\x90\xA1`\x01\x01a\x19\xDDV[PPPPPPPPV[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1A\xA4Wa\x1A\xA4aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1A\xCDW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a\n'Wa\x1A\xFE\x85\x85\x83\x81Q\x81\x10a\x1A\xF1Wa\x1A\xF1aU\xA8V[` \x02` \x01\x01Qa(~V[\x82\x82\x81Q\x81\x10a\x1B\x10Wa\x1B\x10aU\xA8V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a\x1A\xD2V[``a\x1B[\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=\x18V[\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[Wa\x1B\x99\x82a5.V[a\x1B\xB6W`@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\x83\x81\x16`\x04\x83\x01R\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\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\x1AW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C>\x91\x90aU\x89V[a\x1C[W`@Qc\xCC\xEA\x9Eo`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\x14\x82\x82a=UV[`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01R\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\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\xC7W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xEB\x91\x90aU\x89V[a\x1D\x08W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1D\x12_\x19a4\xC6V[V[_a\x07\xC1\x83`\x9A_a\x112\x86a2\xF7V[__a\x1D1\x84\x84a?\x01V[\x95\x94PPPPPV[`fT`\x02\x90`\x04\x90\x81\x16\x03a\x1DcW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1Dxa\x1Ds` \x84\x01\x84aK\x15V[a5.V[\x80a\x1D\x91WPa\x1D\x91a\x1Ds`@\x84\x01` \x85\x01aK\x15V[a\x1D\xAEW`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[a\x1D\xBD`@\x84\x01\x84aV\x01V[\x90P\x81\x10\x15a \x7FW_`@Q\x80`@\x01`@R\x80\x85` \x01` \x81\x01\x90a\x1D\xE5\x91\x90aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x1E\0`@\x87\x01\x87aV\x01V[\x85\x81\x81\x10a\x1E\x10Wa\x1E\x10aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a\x1E%\x91\x90aU\xDAV[c\xFF\xFF\xFF\xFF\x16\x81RP\x90Pa\x1Er\x81` \x01Qc\xFF\xFF\xFF\xFF\x16`\x98_\x87` \x01` \x81\x01\x90a\x1ET\x91\x90aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x90a5\x17V[a\x1E\x8FW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x9E_a\x1E\x9F` \x87\x01\x87aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _a\x1E\xC8\x83a2\xF7V[\x81R` \x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16a\x1E\xF8W`@Qc%\x13\x1DO`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1F2a\x1F\x04\x82a2\xF7V[`\x9C_a\x1F\x14` \x89\x01\x89aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x90a@pV[Pa\x1Fja\x1FC` \x86\x01\x86aK\x15V[`\x9A_a\x1FO\x85a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a@{\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[Pa\x1Fx` \x85\x01\x85aK\x15V[`\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\x1F\xB0\x91\x90aU\xF3V[`@Q\x80\x91\x03\x90\xA2`@\x80Q\x80\x82\x01\x90\x91R_\x81R` \x81\x01a\x1F\xF3\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\0CaXuV[c\xFF\xFF\xFF\xFF\x16\x90R`\x9E_a \x0B` \x88\x01\x88aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _a 4\x84a2\xF7V[\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\x1D\xB0V[Pa \x93a\x03\xD9`@\x84\x01` \x85\x01aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16c0<\xA9Va \xAE` \x85\x01\x85aK\x15V[a \xBE`@\x86\x01` \x87\x01aK\x15V[a \xCB`@\x87\x01\x87aV\x01V[`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a \xEA\x94\x93\x92\x91\x90aX\xCAV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a!\x01W__\xFD[PZ\xF1\x15\x80\x15a!\x13W=__>=_\xFD[PPPPPPV[``a\x08=`\x9A_a\x17\xB6\x85a2\xF7V[a!4a@\x8FV[a\x1D\x12_a@\xE9V[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9C` R`@\x81 ``\x91\x90a!a\x90a5\x03V[\x90P_\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a!|Wa!|aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a!\xC0W\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a!\x9AW\x90P[P\x90P_[\x82\x81\x10\x15a\n'W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9C` R`@\x90 a!\xF2\x90a\t\xCD\x90\x83a5\x0CV[\x82\x82\x81Q\x81\x10a\"\x04Wa\"\x04aU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a!\xC5V[``_\x84Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\"3Wa\"3aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\"|W\x81` \x01[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01R\x82R_\x19\x90\x92\x01\x91\x01\x81a\"QW\x90P[P\x90P_[\x85Q\x81\x10\x15a\r\xE7Wa\"\xAE\x86\x82\x81Q\x81\x10a\"\x9FWa\"\x9FaU\xA8V[` \x02` \x01\x01Q\x86\x86a\x07\x8DV[\x82\x82\x81Q\x81\x10a\"\xC0Wa\"\xC0aU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\"\x81V[``_\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\"\xEFWa\"\xEFaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a#\x18W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x84Q\x81\x10\x15a\r\xE7W`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xA1` R`@\x81 \x86Qa#\x8D\x92\x87\x92\x91\x89\x90\x86\x90\x81\x10a#XWa#XaU\xA8V[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ aA:\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82\x82\x81Q\x81\x10a#\x9FWa#\x9FaU\xA8V[`\x01`\x01`@\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a#\x1DV[`fT_\x90`\x01\x90\x81\x16\x03a#\xE7W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a#\xF0\x83a5.V[a$\rW`@QcH\xF5\xC3\xED`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___a$\x19\x86a.8V[\x91P\x91P\x81a$;W`@Qc\xFAU\xFC\x81`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x91P_\x90P[\x83Q\x81\x10\x15a\r4W\x83\x81\x81Q\x81\x10a$\\Wa$\\aU\xA8V[` \x02` \x01\x01Q`@\x01QQ\x84\x82\x81Q\x81\x10a${Wa${aU\xA8V[` \x02` \x01\x01Q` \x01QQ\x14a$\xA6W`@QcCqJ\xFD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x84\x82\x81Q\x81\x10a$\xB9Wa$\xB9aU\xA8V[` \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$\xF9\x91c\xFF\xFF\xFF\xFF\x90\x81\x16\x90a5\x17\x16V[a%\x16W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a%!\x87\x83a\x07\xC8V[\x90P_[\x86\x84\x81Q\x81\x10a%7Wa%7aU\xA8V[` \x02` \x01\x01Q` \x01QQ\x81\x10\x15a(sW_\x87\x85\x81Q\x81\x10a%^Wa%^aU\xA8V[` \x02` \x01\x01Q` \x01Q\x82\x81Q\x81\x10a%{Wa%{aU\xA8V[` \x02` \x01\x01Q\x90Pa%\x92\x89\x82a\xFF\xFFa<\x14V[__a%\xA1\x8Ba\x07\xB6\x88a2\xF7V[\x91P\x91P\x80`@\x01Qc\xFF\xFF\xFF\xFF\x16_\x14a%\xCFW`@Qc\r\x8F\xCB\xE3`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a%\xDC\x87\x85\x84\x89aANV[\x90Pa&!\x82_\x01Q\x8C\x8A\x81Q\x81\x10a%\xF7Wa%\xF7aU\xA8V[` \x02` \x01\x01Q`@\x01Q\x87\x81Q\x81\x10a&\x14Wa&\x14aU\xA8V[` \x02` \x01\x01QaA\x84V[`\x0F\x0B` \x83\x01\x81\x90R_\x03a&JW`@QcF\x06\x17\x93`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x82` \x01Q`\x0F\x0B\x12\x15a'\x8EW\x80\x15a'\x10Wa&\xCBa&k\x88a2\xF7V[`\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&\xF5\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\0CaXuV[a'\0\x90`\x01aXuV[c\xFF\xFF\xFF\xFF\x16`@\x83\x01Ra'\xFBV[a'\"\x83` \x01Q\x83` \x01Qa9/V[`\x01`\x01`@\x1B\x03\x16` \x84\x01R\x8AQ\x8B\x90\x89\x90\x81\x10a'DWa'DaU\xA8V[` \x02` \x01\x01Q`@\x01Q\x85\x81Q\x81\x10a'aWa'aaU\xA8V[` \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'\xFBV[_\x82` \x01Q`\x0F\x0B\x13\x15a'\xFBWa'\xAF\x83` \x01Q\x83` \x01Qa9/V[`\x01`\x01`@\x1B\x03\x90\x81\x16` \x85\x01\x81\x90R\x84Q\x90\x91\x16\x10\x15a'\xE5W`@Qcl\x9B\xE0\xBF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a'\xEF\x89CaXuV[c\xFF\xFF\xFF\xFF\x16`@\x83\x01R[a(\x10\x8Ca(\x08\x89a2\xF7V[\x86\x86\x86a9NV[\x7F\x14\x87\xAFT\x18\xC4~\xE5\xEAE\xEFJ\x939\x86h\x12\x08\x90wJ\x9E\x13H~a\xE9\xDC;\xAFv\xDD\x8C\x88\x86a(E\x86_\x01Q\x87` \x01Qa9/V[\x86`@\x01Q`@Qa([\x95\x94\x93\x92\x91\x90aW\x03V[`@Q\x80\x91\x03\x90\xA1PP`\x01\x90\x92\x01\x91Pa%%\x90PV[PPP`\x01\x01a$AV[`\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\xC1\x90aA\x9BV[\x82a(\xB7\x81a5.V[a(\xD4W`@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)\x16W`\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)Q\x92\x91\x90aX\xF6V[`@Q\x80\x91\x03\x90\xA2PPPPV[`fT`\x02\x90`\x04\x90\x81\x16\x03a)\x88W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a)\x92\x81a5.V[a)\xAFW`@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\x85\x81\x16`\x04\x83\x01R\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\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\x13W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*7\x91\x90aU\x89V[a*TW`@Qc\xCC\xEA\x9Eo`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[a*c` \x85\x01\x85aV\x01V[\x90P\x81\x10\x15a,+W`@\x80Q\x80\x82\x01\x90\x91R_\x90\x80a*\x86` \x88\x01\x88aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86\x80` \x01\x90a*\xA4\x91\x90aV\x01V[\x85\x81\x81\x10a*\xB4Wa*\xB4aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a*\xC9\x91\x90aU\xDAV[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+\x05\x92\x91\x90\x81\x16\x90a5\x17\x16V[a+\"W`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a+,\x86\x82a\x07\xC8V[\x15a+JW`@Qclln'`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a+sa+V\x82a2\xF7V[`\x01`\x01`\xA0\x1B\x03\x88\x16_\x90\x81R`\x9C` R`@\x90 \x90a5\xD8V[Pa+\x9F\x86`\x9A_a+\x84\x85a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a5\xE3\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+\xD9\x91\x90aU\xF3V[`@Q\x80\x91\x03\x90\xA2`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\x9E` R`@\x81 `\x01\x91a,\x04\x84a2\xF7V[\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90UP`\x01\x01a*VV[Pa,<a\x03\xD9` \x85\x01\x85aK\x15V[`\x01`\x01`\xA0\x1B\x03\x16c\xC6?\xD5\x02\x85a,X` \x87\x01\x87aK\x15V[a,e` \x88\x01\x88aV\x01V[a,r`@\x8A\x01\x8AaWTV[`@Q\x87c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a,\x93\x96\x95\x94\x93\x92\x91\x90aY\tV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a,\xAAW__\xFD[PZ\xF1\x15\x80\x15a\x1A~W=__>=_\xFD[_a\x08=`\x9A_a,\xCC\x85a2\xF7V[\x81R` \x01\x90\x81R` \x01_ a5\x03V[\x83a,\xE8\x81a5.V[a-\x05W`@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-D\x92\x91a5\x17\x16V[a-aW`@Qc\x1F\xB1pU`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a-k\x82a2\xF7V[\x90P_[\x84\x81\x10\x15a\x1A~Wa-\xB4\x86\x86\x83\x81\x81\x10a-\x8CWa-\x8CaU\xA8V[\x90P` \x02\x01` \x81\x01\x90a-\xA1\x91\x90aK\x15V[_\x84\x81R`\x99` R`@\x90 \x90a@{V[a-\xD1W`@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.\x05Wa.\x05aU\xA8V[\x90P` \x02\x01` \x81\x01\x90a.\x1A\x91\x90aK\x15V[`@Qa.(\x92\x91\x90aVFV[`@Q\x80\x91\x03\x90\xA1`\x01\x01a-oV[`\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\x90Re\x01\0\0\0\0\0\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.\xB9WP\x82``\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15[\x15a.\xC8WPP`@\x81\x01Q`\x01[\x95\x90\x94P\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x98` R`@\x81 a\x08=\x90a5\x03V[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x9F` R`@\x81 ``\x91\x90a\x089\x90\x82a\x17\xB6\x86a2\xF7V[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a/9WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a/RWP0;\x15\x80\x15a/RWP_T`\xFF\x16`\x01\x14[a/\xBAW`@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/\xDBW_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a/\xE4\x82a4\xC6V[a/\xED\x83a@\xE9V[\x80\x15a03W_\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[\x81a0B\x81a5.V[a0_W`@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\x84\x81\x16`\x04\x83\x01R\x83\x16\x90c\xB5&W\x87\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0\xA3W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\xC7\x91\x90aU\x89V[a0\xE4W`@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\x83a1<\x81a\r\xF0V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x91\x16` \x83\x01R\x01a0*V[a1da@\x8FV[`\x01`\x01`\xA0\x1B\x03\x81\x16a1\xC9W`@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/\xB1V[a1\xD2\x81a@\xE9V[PV[__a\r\xE7\x84\x84a?\x01V[\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\x15a2=W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a2a\x91\x90aYUV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a2\x92W`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x80\x19\x82\x19\x81\x16\x14a2\xB9W`@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` \x01a3B\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=\x90aYpV[`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x80\x83\x01\x82\x90R\x83Q``\x81\x01\x85R\x82\x81R\x80\x82\x01\x83\x90R\x80\x85\x01\x83\x90R\x84Q\x80\x86\x01\x86R`\x01`\x01`\xA0\x1B\x03\x89\x81\x16\x85R`\xA1\x84R\x86\x85 \x90\x88\x16\x85R\x90\x92R\x93\x82 \x92\x93\x92\x81\x90a3\xBA\x90aA\x9BV[`\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\x15a4\\W\x90\x92P\x90Pa4\xBEV[a4m\x81_\x01Q\x82` \x01Qa9/V[`\x01`\x01`@\x1B\x03\x16\x81R` \x81\x01Q_`\x0F\x91\x90\x91\x0B\x12\x15a4\xABWa4\x9C\x82` \x01Q\x82` \x01Qa9/V[`\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=\x82T\x90V[_a\x07\xC1\x83\x83aA\xAEV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x07\xC1V[`@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\x15a5\xB4W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08=\x91\x90aU\x89V[_a\x07\xC1\x83\x83aA\xD4V[_a\x07\xC1\x83`\x01`\x01`\xA0\x1B\x03\x84\x16aA\xD4V[``\x83Q`\x01`\x01`@\x1B\x03\x81\x11\x15a6\x12Wa6\x12aItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a6EW\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a60W\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\x97\x92\x91\x90aY\x93V[_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6\xB1W=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra6\xD8\x91\x90\x81\x01\x90aY\xB7V[\x90P_[\x85Q\x81\x10\x15a8\xDAW_\x86\x82\x81Q\x81\x10a6\xF8Wa6\xF8aU\xA8V[` \x02` \x01\x01Q\x90P\x85Q`\x01`\x01`@\x1B\x03\x81\x11\x15a7\x1BWa7\x1BaItV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a7DW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x84\x83\x81Q\x81\x10a7WWa7WaU\xA8V[` \x90\x81\x02\x91\x90\x91\x01\x01R_[\x86Q\x81\x10\x15a8\xD0W_\x87\x82\x81Q\x81\x10a7\x80Wa7\x80aU\xA8V[` \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\xBB\x90aA\x9BV[\x90P\x80`\x01`\x01`@\x1B\x03\x16_\x03a7\xD4WPPa8\xC8V[_a7\xE0\x85\x8D\x85a\x07\x8DV[\x90P\x88c\xFF\xFF\xFF\xFF\x16\x81`@\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15\x80\x15a8\x08WP_\x81` \x01Q`\x0F\x0B\x12[\x15a8*Wa8\x1E\x81_\x01Q\x82` \x01Qa9/V[`\x01`\x01`@\x1B\x03\x16\x81R[\x80Q_\x90a8E\x90`\x01`\x01`@\x1B\x03\x90\x81\x16\x90\x85\x16a9\x1BV[\x90Pa8\x8C\x81\x89\x89\x81Q\x81\x10a8]Wa8]aU\xA8V[` \x02` \x01\x01Q\x87\x81Q\x81\x10a8vWa8vaU\xA8V[` \x02` \x01\x01QaB \x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x89\x88\x81Q\x81\x10a8\x9EWa8\x9EaU\xA8V[` \x02` \x01\x01Q\x86\x81Q\x81\x10a8\xB7Wa8\xB7aU\xA8V[` \x02` \x01\x01\x81\x81RPPPPPP[`\x01\x01a7dV[PP`\x01\x01a6\xDCV[PP\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x07\xC1V[_a\x07\xC1\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0`\x01aB4V[_a\x07\xC1\x83g\r\xE0\xB6\xB3\xA7d\0\0\x84aB\x8DV[_a\x07\xC1a9F\x83`\x01`\x01`@\x1B\x03\x86\x16aV\xD6V[`\x0F\x0BaCrV[` \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\x14a:\x14W` \x82\x81\x01\x80Q`\x01`\x01`\xA0\x1B\x03\x88\x81\x16_\x81\x81R`\xA2\x86R`@\x80\x82 \x93\x8A\x16\x80\x83R\x93\x87R\x90\x81\x90 \x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01`\x01`@\x1B\x03\x95\x86\x16\x17\x90U\x93Q\x84Q\x91\x82R\x94\x81\x01\x91\x90\x91R\x92\x16\x90\x82\x01R\x7F\xAC\xF9\t_\xEB:7\x0C\x9C\xF6\x92B\x1Ci\xEF2\rM\xB5\xC6nj})\xC7iN\xB0#d\xFCU\x90``\x01`@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:\xF6W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a:\xCE\x90\x84a5\xE3V[P`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a:\xF0\x90\x85a5\xD8V[Pa\r4V[\x80Q`\x01`\x01`@\x1B\x03\x16_\x03a\r4W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a;3\x90\x84a@{V[P`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9F` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 a;_\x90a5\x03V[_\x03a\r4W`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\x9D` R`@\x90 a!\x13\x90\x85a@pV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R a;\xB5\x90C\x83aC\xDDV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x80\x86\x16\x82R\x84\x16` \x82\x01R`\x01`\x01`@\x1B\x03\x83\x16\x91\x81\x01\x91\x90\x91R\x7F\x1CdX\x07\x9AA\x07}\0<\x11\xFA\xF9\xBF\t~i;\xD6yy\xE4\xE6P\x0B\xAC{)\xDBw\x9B\\\x90``\x01a0*V[``_a\x07\xC1\x83aC\xF1V[`\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<^WP\x82a\xFF\xFF\x16\x82\x10[\x15a\r4W`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R\x90\x81 a<\x92\x90aDJV[\x90P__a<\xA1\x88\x84\x89a3ZV[\x91P\x91P\x80`@\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15a<\xBFWPPPa\r4V[a<\xCC\x88\x84\x89\x85\x85a9NV[`\x01`\x01`\xA0\x1B\x03\x80\x89\x16_\x90\x81R`\xA3` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R a<\xF9\x90aD\x9CV[Pa=\x03\x85aZ\xC3V[\x94Pa=\x0E\x84aZ\xDBV[\x93PPPPa<LV[``_a=$\x83aE\x19V[`@\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\x93Re\x01\0\0\0\0\0\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=\xD1WP\x80``\x01Qc\xFF\xFF\xFF\xFF\x16C\x10\x15[\x15a=\xEBW`@\x81\x01Qc\xFF\xFF\xFF\xFF\x16\x81R`\x01` \x82\x01R[c\xFF\xFF\xFF\xFF\x82\x16`@\x82\x01Ra>!\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\0CaXuV[a>,\x90`\x01aXuV[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\x16e\x01\0\0\0\0\0\x97\x89\x16\x97\x90\x97\x02l\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\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\x01a0*V[`\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?\x94\x90\x83aE@V[`\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@\x0FWPPa@,V[a@\x1D\x86\x82` \x01Qa9/V[\x95PPP\x80`\x01\x01\x90Pa?\\V[P`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xA1` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R \x83\x90a@\\\x90aA\x9BV[a@f\x91\x90aV\x93V[\x91PP\x92P\x92\x90PV[_a\x07\xC1\x83\x83aE\xAFV[_a\x07\xC1\x83`\x01`\x01`\xA0\x1B\x03\x84\x16aE\xAFV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x1D\x12W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a/\xB1V[`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\xC1\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0aF\x92V[_aA_\x84`\x99_a\x112\x89a2\xF7V[\x80\x15aAhWP\x81[\x80\x15a\x1D1WPP\x90Q`\x01`\x01`@\x1B\x03\x16\x15\x15\x93\x92PPPV[_a\x07\xC1`\x01`\x01`@\x1B\x03\x80\x85\x16\x90\x84\x16aZ\xF0V[_a\x08=\x82g\r\xE0\xB6\xB3\xA7d\0\0aF\xE7V[_\x82_\x01\x82\x81T\x81\x10aA\xC3WaA\xC3aU\xA8V[\x90_R` _ \x01T\x90P\x92\x91PPV[_\x81\x81R`\x01\x83\x01` R`@\x81 TaB\x19WP\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=V[P_a\x08=V[_a\x07\xC1\x83\x83g\r\xE0\xB6\xB3\xA7d\0\0aB\x8DV[__aBA\x86\x86\x86aB\x8DV[\x90P`\x01\x83`\x02\x81\x11\x15aBWWaBWa[\x1DV[\x14\x80\x15aBsWP_\x84\x80aBnWaBna[1V[\x86\x88\t\x11[\x15a\x1D1WaB\x83`\x01\x82a[EV[\x96\x95PPPPPPV[_\x80\x80_\x19\x85\x87\t\x85\x87\x02\x92P\x82\x81\x10\x83\x82\x03\x03\x91PP\x80_\x03aB\xC4W\x83\x82\x81aB\xBAWaB\xBAa[1V[\x04\x92PPPa\x07\xC1V[\x80\x84\x11aC\x0BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01RtMath: mulDiv overflow`X\x1B`D\x82\x01R`d\x01a/\xB1V[_\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\xD9W`@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/\xB1V[P\x90V[a03\x83\x83`\x01`\x01`@\x1B\x03\x84\x16aG\x1EV[``\x81_\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15aD>W` \x02\x82\x01\x91\x90_R` _ \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11aD*W[PPPPP\x90P\x91\x90PV[_aDd\x82T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x13\x15\x90V[\x15aD\x82W`@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\xB6\x82T`\x0F\x81\x81\x0B`\x01`\x80\x1B\x90\x92\x04\x90\x0B\x13\x15\x90V[\x15aD\xD4W`@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\x83To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\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=W`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[__aEbaEN\x84aH!V[\x85TaE]\x91\x90`\x0F\x0Ba[XV[aH\x8AV[\x84T\x90\x91P`\x01`\x80\x1B\x90\x04`\x0F\x90\x81\x0B\x90\x82\x90\x0B\x12aE\x95W`@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\x15aF\x89W_aE\xD1`\x01\x83aV\x80V[\x85T\x90\x91P_\x90aE\xE4\x90`\x01\x90aV\x80V[\x90P\x81\x81\x14aFCW_\x86_\x01\x82\x81T\x81\x10aF\x02WaF\x02aU\xA8V[\x90_R` _ \x01T\x90P\x80\x87_\x01\x84\x81T\x81\x10aF\"WaF\"aU\xA8V[_\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80aFTWaFTa[\x7FV[`\x01\x90\x03\x81\x81\x90_R` _ \x01_\x90U\x90U\x85`\x01\x01_\x86\x81R` \x01\x90\x81R` \x01_ _\x90U`\x01\x93PPPPa\x08=V[_\x91PPa\x08=V[\x82T_\x90\x81aF\xA3\x86\x86\x83\x85aH\xF3V[\x90P\x80\x15aF\xDDWaF\xC7\x86aF\xBA`\x01\x84aV\x80V[_\x91\x82R` \x90\x91 \x01\x90V[T`\x01` \x1B\x90\x04`\x01`\x01`\xE0\x1B\x03\x16a\x07\xBCV[P\x91\x94\x93PPPPV[\x81T_\x90\x80\x15aG\x16WaG\0\x84aF\xBA`\x01\x84aV\x80V[T`\x01` \x1B\x90\x04`\x01`\x01`\xE0\x1B\x03\x16a\x089V[P\x90\x92\x91PPV[\x82T\x80\x15aG\xD4W_aG6\x85aF\xBA`\x01\x85aV\x80V[`@\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\x15aG\x88W`@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\xD2W\x82aG\xA9\x86aF\xBA`\x01\x86aV\x80V[\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\xD9W`@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/\xB1V[\x80`\x0F\x81\x90\x0B\x81\x14aH\xEEW`@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/\xB1V[\x91\x90PV[_[\x81\x83\x10\x15a\n'W_aI\x08\x84\x84aIFV[_\x87\x81R` \x90 \x90\x91Pc\xFF\xFF\xFF\xFF\x86\x16\x90\x82\x01Tc\xFF\xFF\xFF\xFF\x16\x11\x15aI2W\x80\x92PaI@V[aI=\x81`\x01a[EV[\x93P[PaH\xF5V[_aIT`\x02\x84\x84\x18a[\x93V[a\x07\xC1\x90\x84\x84\x16a[EV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a1\xD2W__\xFD[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q``\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI\xAAWaI\xAAaItV[`@R\x90V[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aI\xD8WaI\xD8aItV[`@R\x91\x90PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14aH\xEEW__\xFD[_`@\x82\x84\x03\x12\x15aJ\x03W__\xFD[`@\x80Q\x90\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aJ%WaJ%aItV[`@R\x90P\x80\x825aJ6\x81aI`V[\x81RaJD` \x84\x01aI\xE0V[` \x82\x01RP\x92\x91PPV[___`\x80\x84\x86\x03\x12\x15aJbW__\xFD[\x835aJm\x81aI`V[\x92PaJ|\x85` \x86\x01aI\xF3V[\x91P``\x84\x015aJ\x8C\x81aI`V[\x80\x91PP\x92P\x92P\x92V[\x81Q`\x01`\x01`@\x1B\x03\x16\x81R` \x80\x83\x01Q`\x0F\x0B\x90\x82\x01R`@\x80\x83\x01Qc\xFF\xFF\xFF\xFF\x16\x90\x82\x01R``\x81\x01a\x08=V[__``\x83\x85\x03\x12\x15aJ\xDBW__\xFD[\x825aJ\xE6\x81aI`V[\x91PaJ\xF5\x84` \x85\x01aI\xF3V[\x90P\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15aK\x0EW__\xFD[P5\x91\x90PV[_` \x82\x84\x03\x12\x15aK%W__\xFD[\x815a\x07\xC1\x81aI`V[\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\x15aK\x89WaKs\x86\x83QaK0V[`@\x95\x90\x95\x01\x94` \x91\x90\x91\x01\x90`\x01\x01aK`V[P\x93\x94\x93PPPPV[` \x81R_a\x07\xC1` \x83\x01\x84aKNV[_`@\x82\x84\x03\x12\x15aK\xB5W__\xFD[a\x07\xC1\x83\x83aI\xF3V[__\x83`\x1F\x84\x01\x12aK\xCFW__\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aK\xE5W__\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x17\x9DW__\xFD[___`@\x84\x86\x03\x12\x15aL\x11W__\xFD[\x835aL\x1C\x81aI`V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aL6W__\xFD[aLB\x86\x82\x87\x01aK\xBFV[\x94\x97\x90\x96P\x93\x94PPPPV[_`\x01`\x01`@\x1B\x03\x82\x11\x15aLgWaLgaItV[P`\x05\x1B` \x01\x90V[_\x82`\x1F\x83\x01\x12aL\x80W__\xFD[\x815aL\x93aL\x8E\x82aLOV[aI\xB0V[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aL\xB4W__\xFD[` \x85\x01[\x83\x81\x10\x15aL\xDAW\x805aL\xCC\x81aI`V[\x83R` \x92\x83\x01\x92\x01aL\xB9V[P\x95\x94PPPPPV[___`\x80\x84\x86\x03\x12\x15aL\xF6W__\xFD[aM\0\x85\x85aI\xF3V[\x92P`@\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\x1AW__\xFD[aM&\x86\x82\x87\x01aLqV[\x92PP``\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aMAW__\xFD[aMM\x86\x82\x87\x01aLqV[\x91PP\x92P\x92P\x92V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aK\x89W\x81Q\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aMiV[_` \x82\x01` \x83R\x80\x84Q\x80\x83R`@\x85\x01\x91P`@\x81`\x05\x1B\x86\x01\x01\x92P` \x86\x01_[\x82\x81\x10\x15aM\xDEW`?\x19\x87\x86\x03\x01\x84RaM\xC9\x85\x83QaMWV[\x94P` \x93\x84\x01\x93\x91\x90\x91\x01\x90`\x01\x01aM\xADV[P\x92\x96\x95PPPPPPV[____`\xA0\x85\x87\x03\x12\x15aM\xFDW__\xFD[aN\x07\x86\x86aI\xF3V[\x93P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN!W__\xFD[aN-\x87\x82\x88\x01aLqV[\x93PP``\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aNHW__\xFD[aNT\x87\x82\x88\x01aLqV[\x92PPaNc`\x80\x86\x01aI\xE0V[\x90P\x92\x95\x91\x94P\x92PV[__`@\x83\x85\x03\x12\x15aN\x7FW__\xFD[\x825aN\x8A\x81aI`V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN\xA4W__\xFD[\x83\x01`\xA0\x81\x86\x03\x12\x15aN\xB5W__\xFD[\x80\x91PP\x92P\x92\x90PV[__`@\x83\x85\x03\x12\x15aN\xD1W__\xFD[\x825aN\xDC\x81aI`V[\x91P` \x83\x015aN\xB5\x81aI`V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aK\x89WaO7\x86\x83Q\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[``\x95\x90\x95\x01\x94` \x91\x90\x91\x01\x90`\x01\x01aN\xFEV[`@\x81R_aO_`@\x83\x01\x85aKNV[\x82\x81\x03` \x84\x01Ra\x1D1\x81\x85aN\xECV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aK\x89W\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aO\x83V[` \x81R_a\x07\xC1` \x83\x01\x84aOqV[__`@\x83\x85\x03\x12\x15aO\xCDW__\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15aO\xE2W__\xFD[aO\xEE\x85\x82\x86\x01aLqV[\x92PP` \x83\x015aN\xB5\x81aI`V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x84\x01\x90`@\x84\x01\x90\x83[\x81\x81\x10\x15aP?W\x83Q`\x01`\x01`@\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aP\x18V[P\x90\x95\x94PPPPPV[_____``\x86\x88\x03\x12\x15aP^W__\xFD[\x855aPi\x81aI`V[\x94P` \x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aP\x83W__\xFD[aP\x8F\x88\x82\x89\x01aK\xBFV[\x90\x95P\x93PP`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aP\xADW__\xFD[aP\xB9\x88\x82\x89\x01aK\xBFV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[____``\x85\x87\x03\x12\x15aP\xDDW__\xFD[\x845aP\xE8\x81aI`V[\x93PaP\xF6` \x86\x01aI\xE0V[\x92P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aQ\x10W__\xFD[aQ\x1C\x87\x82\x88\x01aK\xBFV[\x95\x98\x94\x97P\x95PPPPV[__`@\x83\x85\x03\x12\x15aQ9W__\xFD[\x825aQD\x81aI`V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aQ^W__\xFD[a@f\x85\x82\x86\x01aLqV[` \x81R_\x82Q\x80` \x84\x01R_[\x81\x81\x10\x15aQ\x96W` \x81\x86\x01\x81\x01Q`@\x86\x84\x01\x01R\x01aQyV[P_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[__`@\x83\x85\x03\x12\x15aQ\xC6W__\xFD[\x825aQ\xD1\x81aI`V[\x91PaJ\xF5` \x84\x01aI\xE0V[_` \x82\x84\x03\x12\x15aQ\xEFW__\xFD[\x815`\xFF\x81\x16\x81\x14a\x07\xC1W__\xFD[_``\x82\x84\x03\x12\x15aR\x0FW__\xFD[P\x91\x90PV[_` \x82\x84\x03\x12\x15aR%W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aR:W__\xFD[a\x089\x84\x82\x85\x01aQ\xFFV[___`\x80\x84\x86\x03\x12\x15aRXW__\xFD[\x835`\x01`\x01`@\x1B\x03\x81\x11\x15aRmW__\xFD[aRy\x86\x82\x87\x01aLqV[\x93PPaJ|\x85` \x86\x01aI\xF3V[` \x81R_a\x07\xC1` \x83\x01\x84aN\xECV[___``\x84\x86\x03\x12\x15aR\xADW__\xFD[\x835aR\xB8\x81aI`V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aR\xD2W__\xFD[aR\xDE\x86\x82\x87\x01aLqV[\x92PPaR\xED`@\x85\x01aI\xE0V[\x90P\x92P\x92P\x92V[__`@\x83\x85\x03\x12\x15aS\x07W__\xFD[\x825aS\x12\x81aI`V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aS,W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13aS<W__\xFD[\x805aSJaL\x8E\x82aLOV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x87\x83\x11\x15aSkW__\xFD[` \x84\x01[\x83\x81\x10\x15aT\x90W\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aS\x8DW__\xFD[\x85\x01`\x80\x81\x8B\x03`\x1F\x19\x01\x12\x15aS\xA2W__\xFD[aS\xAAaI\x88V[aS\xB7\x8B` \x84\x01aI\xF3V[\x81R``\x82\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aS\xD1W__\xFD[aS\xE0\x8C` \x83\x86\x01\x01aLqV[` \x83\x01RP`\x80\x82\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aS\xFEW__\xFD[` \x81\x84\x01\x01\x92PP\x8A`\x1F\x83\x01\x12aT\x15W__\xFD[\x815aT#aL\x8E\x82aLOV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x8D\x83\x11\x15aTDW__\xFD[` \x85\x01\x94P[\x82\x85\x10\x15aTzW\x845`\x01`\x01`@\x1B\x03\x81\x16\x81\x14aTiW__\xFD[\x82R` \x94\x85\x01\x94\x90\x91\x01\x90aTKV[`@\x84\x01RPP\x84RP` \x92\x83\x01\x92\x01aSpV[P\x80\x94PPPPP\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15aT\xB1W__\xFD[\x835aT\xBC\x81aI`V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aT\xD6W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13aT\xE6W__\xFD[\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aT\xFBW__\xFD[\x86` \x82\x84\x01\x01\x11\x15aU\x0CW__\xFD[\x93\x96` \x91\x90\x91\x01\x95P\x92\x93PPPV[__`@\x83\x85\x03\x12\x15aU.W__\xFD[\x825aU9\x81aI`V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aUSW__\xFD[a@f\x85\x82\x86\x01aQ\xFFV[__`@\x83\x85\x03\x12\x15aUpW__\xFD[\x825aU{\x81aI`V[\x94` \x93\x90\x93\x015\x93PPPV[_` \x82\x84\x03\x12\x15aU\x99W__\xFD[\x81Q\x80\x15\x15\x81\x14a\x07\xC1W__\xFD[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_\x825`>\x19\x836\x03\x01\x81\x12aU\xD0W__\xFD[\x91\x90\x91\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15aU\xEAW__\xFD[a\x07\xC1\x82aI\xE0V[`@\x81\x01a\x08=\x82\x84aK0V[__\x835`\x1E\x19\x846\x03\x01\x81\x12aV\x16W__\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aV/W__\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a\x17\x9DW__\xFD[``\x81\x01aVT\x82\x85aK0V[`\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=Wa\x08=aVlV[`\x01`\x01`@\x1B\x03\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x08=Wa\x08=aVlV[_\x81`\x0F\x0B`\x01`\x01`\x7F\x1B\x03\x19\x81\x03aV\xCEWaV\xCEaVlV[_\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=Wa\x08=aVlV[`\x01`\x01`\xA0\x1B\x03\x86\x16\x81R`\xC0\x81\x01aW ` \x83\x01\x87aK0V[`\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\x12aWiW__\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aW\x82W__\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a\x17\x9DW__\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\x01aW\xDC` \x84\x01\x8AaK0V[`\xC0``\x84\x01R\x86\x90R\x86`\xE0\x83\x01_[\x88\x81\x10\x15aX\x1DW\x825aX\0\x81aI`V[`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x92\x83\x01\x92\x90\x91\x01\x90`\x01\x01aW\xEDV[P\x83\x81\x03`\x80\x85\x01RaX0\x81\x88aMWV[\x91PP\x82\x81\x03`\xA0\x84\x01RaXF\x81\x85\x87aW\x96V[\x9A\x99PPPPPPPPPPV[_` \x82\x84\x03\x12\x15aXdW__\xFD[\x815a\xFF\xFF\x81\x16\x81\x14a\x07\xC1W__\xFD[c\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x81\x11\x15a\x08=Wa\x08=aVlV[\x81\x83R` \x83\x01\x92P_\x81_[\x84\x81\x10\x15aK\x89Wc\xFF\xFF\xFF\xFFaX\xB4\x83aI\xE0V[\x16\x86R` \x95\x86\x01\x95\x91\x90\x91\x01\x90`\x01\x01aX\x9EV[`\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x82R\x84\x16` \x82\x01R```@\x82\x01\x81\x90R_\x90aB\x83\x90\x83\x01\x84\x86aX\x91V[` \x81R_a\rI` \x83\x01\x84\x86aW\x96V[`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x82R\x86\x16` \x82\x01R`\x80`@\x82\x01\x81\x90R_\x90aY5\x90\x83\x01\x86\x88aX\x91V[\x82\x81\x03``\x84\x01RaYH\x81\x85\x87aW\x96V[\x99\x98PPPPPPPPPV[_` \x82\x84\x03\x12\x15aYeW__\xFD[\x81Qa\x07\xC1\x81aI`V[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15aR\x0FW_\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[`@\x81R_aY\xA5`@\x83\x01\x85aOqV[\x82\x81\x03` \x84\x01Ra\x1D1\x81\x85aOqV[_` \x82\x84\x03\x12\x15aY\xC7W__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aY\xDCW__\xFD[\x82\x01`\x1F\x81\x01\x84\x13aY\xECW__\xFD[\x80QaY\xFAaL\x8E\x82aLOV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15aZ\x1BW__\xFD[` \x84\x01[\x83\x81\x10\x15aZ\xB8W\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15aZ=W__\xFD[\x85\x01`?\x81\x01\x89\x13aZMW__\xFD[` \x81\x01QaZ^aL\x8E\x82aLOV[\x80\x82\x82R` \x82\x01\x91P` \x80\x84`\x05\x1B\x86\x01\x01\x01\x92P\x8B\x83\x11\x15aZ\x81W__\xFD[`@\x84\x01\x93P[\x82\x84\x10\x15aZ\xA3W\x83Q\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aZ\x88V[\x86RPP` \x93\x84\x01\x93\x91\x90\x91\x01\x90PaZ V[P\x96\x95PPPPPPV[_`\x01\x82\x01aZ\xD4WaZ\xD4aVlV[P`\x01\x01\x90V[_\x81aZ\xE9WaZ\xE9aVlV[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=Wa\x08=aVlV[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x08=Wa\x08=aVlV[\x80\x82\x01\x82\x81\x12_\x83\x12\x80\x15\x82\x16\x82\x15\x82\x16\x17\x15a[wWa[waVlV[PP\x92\x91PPV[cNH{q`\xE0\x1B_R`1`\x04R`$_\xFD[_\x82a[\xADWcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x04\x90V\xFE\xA2dipfsX\"\x12 \xBA@\x81\xE0\x99z\xE3{\x1B\xC8\xC9\x9Do\xDCB\xE5\xAC\x9D\t\x99\xF5\xC9\x87w\x04\x99GwxC\xEB\xC1dsolcC\0\x08\x1B\x003",
3740    );
3741    #[derive(serde::Serialize, serde::Deserialize)]
3742    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3743    /**```solidity
3744struct OperatorSet { address avs; uint32 id; }
3745```*/
3746    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3747    #[derive(Clone)]
3748    pub struct OperatorSet {
3749        #[allow(missing_docs)]
3750        pub avs: alloy::sol_types::private::Address,
3751        #[allow(missing_docs)]
3752        pub id: u32,
3753    }
3754    #[allow(
3755        non_camel_case_types,
3756        non_snake_case,
3757        clippy::pub_underscore_fields,
3758        clippy::style
3759    )]
3760    const _: () = {
3761        use alloy::sol_types as alloy_sol_types;
3762        #[doc(hidden)]
3763        type UnderlyingSolTuple<'a> = (
3764            alloy::sol_types::sol_data::Address,
3765            alloy::sol_types::sol_data::Uint<32>,
3766        );
3767        #[doc(hidden)]
3768        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u32);
3769        #[cfg(test)]
3770        #[allow(dead_code, unreachable_patterns)]
3771        fn _type_assertion(
3772            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3773        ) {
3774            match _t {
3775                alloy_sol_types::private::AssertTypeEq::<
3776                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3777                >(_) => {}
3778            }
3779        }
3780        #[automatically_derived]
3781        #[doc(hidden)]
3782        impl ::core::convert::From<OperatorSet> for UnderlyingRustTuple<'_> {
3783            fn from(value: OperatorSet) -> Self {
3784                (value.avs, value.id)
3785            }
3786        }
3787        #[automatically_derived]
3788        #[doc(hidden)]
3789        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorSet {
3790            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3791                Self { avs: tuple.0, id: tuple.1 }
3792            }
3793        }
3794        #[automatically_derived]
3795        impl alloy_sol_types::SolValue for OperatorSet {
3796            type SolType = Self;
3797        }
3798        #[automatically_derived]
3799        impl alloy_sol_types::private::SolTypeValue<Self> for OperatorSet {
3800            #[inline]
3801            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
3802                (
3803                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3804                        &self.avs,
3805                    ),
3806                    <alloy::sol_types::sol_data::Uint<
3807                        32,
3808                    > as alloy_sol_types::SolType>::tokenize(&self.id),
3809                )
3810            }
3811            #[inline]
3812            fn stv_abi_encoded_size(&self) -> usize {
3813                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
3814                    return size;
3815                }
3816                let tuple = <UnderlyingRustTuple<
3817                    '_,
3818                > as ::core::convert::From<Self>>::from(self.clone());
3819                <UnderlyingSolTuple<
3820                    '_,
3821                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
3822            }
3823            #[inline]
3824            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
3825                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
3826            }
3827            #[inline]
3828            fn stv_abi_encode_packed_to(
3829                &self,
3830                out: &mut alloy_sol_types::private::Vec<u8>,
3831            ) {
3832                let tuple = <UnderlyingRustTuple<
3833                    '_,
3834                > as ::core::convert::From<Self>>::from(self.clone());
3835                <UnderlyingSolTuple<
3836                    '_,
3837                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
3838            }
3839            #[inline]
3840            fn stv_abi_packed_encoded_size(&self) -> usize {
3841                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
3842                    return size;
3843                }
3844                let tuple = <UnderlyingRustTuple<
3845                    '_,
3846                > as ::core::convert::From<Self>>::from(self.clone());
3847                <UnderlyingSolTuple<
3848                    '_,
3849                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
3850            }
3851        }
3852        #[automatically_derived]
3853        impl alloy_sol_types::SolType for OperatorSet {
3854            type RustType = Self;
3855            type Token<'a> = <UnderlyingSolTuple<
3856                'a,
3857            > as alloy_sol_types::SolType>::Token<'a>;
3858            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
3859            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
3860                '_,
3861            > as alloy_sol_types::SolType>::ENCODED_SIZE;
3862            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
3863                '_,
3864            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
3865            #[inline]
3866            fn valid_token(token: &Self::Token<'_>) -> bool {
3867                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
3868            }
3869            #[inline]
3870            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
3871                let tuple = <UnderlyingSolTuple<
3872                    '_,
3873                > as alloy_sol_types::SolType>::detokenize(token);
3874                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
3875            }
3876        }
3877        #[automatically_derived]
3878        impl alloy_sol_types::SolStruct for OperatorSet {
3879            const NAME: &'static str = "OperatorSet";
3880            #[inline]
3881            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
3882                alloy_sol_types::private::Cow::Borrowed(
3883                    "OperatorSet(address avs,uint32 id)",
3884                )
3885            }
3886            #[inline]
3887            fn eip712_components() -> alloy_sol_types::private::Vec<
3888                alloy_sol_types::private::Cow<'static, str>,
3889            > {
3890                alloy_sol_types::private::Vec::new()
3891            }
3892            #[inline]
3893            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
3894                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
3895            }
3896            #[inline]
3897            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
3898                [
3899                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
3900                            &self.avs,
3901                        )
3902                        .0,
3903                    <alloy::sol_types::sol_data::Uint<
3904                        32,
3905                    > as alloy_sol_types::SolType>::eip712_data_word(&self.id)
3906                        .0,
3907                ]
3908                    .concat()
3909            }
3910        }
3911        #[automatically_derived]
3912        impl alloy_sol_types::EventTopic for OperatorSet {
3913            #[inline]
3914            fn topic_preimage_length(rust: &Self::RustType) -> usize {
3915                0usize
3916                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
3917                        &rust.avs,
3918                    )
3919                    + <alloy::sol_types::sol_data::Uint<
3920                        32,
3921                    > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.id)
3922            }
3923            #[inline]
3924            fn encode_topic_preimage(
3925                rust: &Self::RustType,
3926                out: &mut alloy_sol_types::private::Vec<u8>,
3927            ) {
3928                out.reserve(
3929                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
3930                );
3931                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
3932                    &rust.avs,
3933                    out,
3934                );
3935                <alloy::sol_types::sol_data::Uint<
3936                    32,
3937                > as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.id, out);
3938            }
3939            #[inline]
3940            fn encode_topic(
3941                rust: &Self::RustType,
3942            ) -> alloy_sol_types::abi::token::WordToken {
3943                let mut out = alloy_sol_types::private::Vec::new();
3944                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
3945                    rust,
3946                    &mut out,
3947                );
3948                alloy_sol_types::abi::token::WordToken(
3949                    alloy_sol_types::private::keccak256(out),
3950                )
3951            }
3952        }
3953    };
3954    #[derive(serde::Serialize, serde::Deserialize)]
3955    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3956    /**Custom error with signature `AlreadyMemberOfSet()` and selector `0xd8d8dc4e`.
3957```solidity
3958error AlreadyMemberOfSet();
3959```*/
3960    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3961    #[derive(Clone)]
3962    pub struct AlreadyMemberOfSet;
3963    #[allow(
3964        non_camel_case_types,
3965        non_snake_case,
3966        clippy::pub_underscore_fields,
3967        clippy::style
3968    )]
3969    const _: () = {
3970        use alloy::sol_types as alloy_sol_types;
3971        #[doc(hidden)]
3972        type UnderlyingSolTuple<'a> = ();
3973        #[doc(hidden)]
3974        type UnderlyingRustTuple<'a> = ();
3975        #[cfg(test)]
3976        #[allow(dead_code, unreachable_patterns)]
3977        fn _type_assertion(
3978            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3979        ) {
3980            match _t {
3981                alloy_sol_types::private::AssertTypeEq::<
3982                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3983                >(_) => {}
3984            }
3985        }
3986        #[automatically_derived]
3987        #[doc(hidden)]
3988        impl ::core::convert::From<AlreadyMemberOfSet> for UnderlyingRustTuple<'_> {
3989            fn from(value: AlreadyMemberOfSet) -> Self {
3990                ()
3991            }
3992        }
3993        #[automatically_derived]
3994        #[doc(hidden)]
3995        impl ::core::convert::From<UnderlyingRustTuple<'_>> for AlreadyMemberOfSet {
3996            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3997                Self
3998            }
3999        }
4000        #[automatically_derived]
4001        impl alloy_sol_types::SolError for AlreadyMemberOfSet {
4002            type Parameters<'a> = UnderlyingSolTuple<'a>;
4003            type Token<'a> = <Self::Parameters<
4004                'a,
4005            > as alloy_sol_types::SolType>::Token<'a>;
4006            const SIGNATURE: &'static str = "AlreadyMemberOfSet()";
4007            const SELECTOR: [u8; 4] = [216u8, 216u8, 220u8, 78u8];
4008            #[inline]
4009            fn new<'a>(
4010                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4011            ) -> Self {
4012                tuple.into()
4013            }
4014            #[inline]
4015            fn tokenize(&self) -> Self::Token<'_> {
4016                ()
4017            }
4018            #[inline]
4019            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4020                <Self::Parameters<
4021                    '_,
4022                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4023                    .map(Self::new)
4024            }
4025        }
4026    };
4027    #[derive(serde::Serialize, serde::Deserialize)]
4028    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4029    /**Custom error with signature `CurrentlyPaused()` and selector `0x840a48d5`.
4030```solidity
4031error CurrentlyPaused();
4032```*/
4033    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4034    #[derive(Clone)]
4035    pub struct CurrentlyPaused;
4036    #[allow(
4037        non_camel_case_types,
4038        non_snake_case,
4039        clippy::pub_underscore_fields,
4040        clippy::style
4041    )]
4042    const _: () = {
4043        use alloy::sol_types as alloy_sol_types;
4044        #[doc(hidden)]
4045        type UnderlyingSolTuple<'a> = ();
4046        #[doc(hidden)]
4047        type UnderlyingRustTuple<'a> = ();
4048        #[cfg(test)]
4049        #[allow(dead_code, unreachable_patterns)]
4050        fn _type_assertion(
4051            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4052        ) {
4053            match _t {
4054                alloy_sol_types::private::AssertTypeEq::<
4055                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4056                >(_) => {}
4057            }
4058        }
4059        #[automatically_derived]
4060        #[doc(hidden)]
4061        impl ::core::convert::From<CurrentlyPaused> for UnderlyingRustTuple<'_> {
4062            fn from(value: CurrentlyPaused) -> Self {
4063                ()
4064            }
4065        }
4066        #[automatically_derived]
4067        #[doc(hidden)]
4068        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CurrentlyPaused {
4069            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4070                Self
4071            }
4072        }
4073        #[automatically_derived]
4074        impl alloy_sol_types::SolError for CurrentlyPaused {
4075            type Parameters<'a> = UnderlyingSolTuple<'a>;
4076            type Token<'a> = <Self::Parameters<
4077                'a,
4078            > as alloy_sol_types::SolType>::Token<'a>;
4079            const SIGNATURE: &'static str = "CurrentlyPaused()";
4080            const SELECTOR: [u8; 4] = [132u8, 10u8, 72u8, 213u8];
4081            #[inline]
4082            fn new<'a>(
4083                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4084            ) -> Self {
4085                tuple.into()
4086            }
4087            #[inline]
4088            fn tokenize(&self) -> Self::Token<'_> {
4089                ()
4090            }
4091            #[inline]
4092            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4093                <Self::Parameters<
4094                    '_,
4095                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4096                    .map(Self::new)
4097            }
4098        }
4099    };
4100    #[derive(serde::Serialize, serde::Deserialize)]
4101    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4102    /**Custom error with signature `Empty()` and selector `0x3db2a12a`.
4103```solidity
4104error Empty();
4105```*/
4106    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4107    #[derive(Clone)]
4108    pub struct Empty;
4109    #[allow(
4110        non_camel_case_types,
4111        non_snake_case,
4112        clippy::pub_underscore_fields,
4113        clippy::style
4114    )]
4115    const _: () = {
4116        use alloy::sol_types as alloy_sol_types;
4117        #[doc(hidden)]
4118        type UnderlyingSolTuple<'a> = ();
4119        #[doc(hidden)]
4120        type UnderlyingRustTuple<'a> = ();
4121        #[cfg(test)]
4122        #[allow(dead_code, unreachable_patterns)]
4123        fn _type_assertion(
4124            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4125        ) {
4126            match _t {
4127                alloy_sol_types::private::AssertTypeEq::<
4128                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4129                >(_) => {}
4130            }
4131        }
4132        #[automatically_derived]
4133        #[doc(hidden)]
4134        impl ::core::convert::From<Empty> for UnderlyingRustTuple<'_> {
4135            fn from(value: Empty) -> Self {
4136                ()
4137            }
4138        }
4139        #[automatically_derived]
4140        #[doc(hidden)]
4141        impl ::core::convert::From<UnderlyingRustTuple<'_>> for Empty {
4142            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4143                Self
4144            }
4145        }
4146        #[automatically_derived]
4147        impl alloy_sol_types::SolError for Empty {
4148            type Parameters<'a> = UnderlyingSolTuple<'a>;
4149            type Token<'a> = <Self::Parameters<
4150                'a,
4151            > as alloy_sol_types::SolType>::Token<'a>;
4152            const SIGNATURE: &'static str = "Empty()";
4153            const SELECTOR: [u8; 4] = [61u8, 178u8, 161u8, 42u8];
4154            #[inline]
4155            fn new<'a>(
4156                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4157            ) -> Self {
4158                tuple.into()
4159            }
4160            #[inline]
4161            fn tokenize(&self) -> Self::Token<'_> {
4162                ()
4163            }
4164            #[inline]
4165            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4166                <Self::Parameters<
4167                    '_,
4168                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4169                    .map(Self::new)
4170            }
4171        }
4172    };
4173    #[derive(serde::Serialize, serde::Deserialize)]
4174    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4175    /**Custom error with signature `InputAddressZero()` and selector `0x73632176`.
4176```solidity
4177error InputAddressZero();
4178```*/
4179    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4180    #[derive(Clone)]
4181    pub struct InputAddressZero;
4182    #[allow(
4183        non_camel_case_types,
4184        non_snake_case,
4185        clippy::pub_underscore_fields,
4186        clippy::style
4187    )]
4188    const _: () = {
4189        use alloy::sol_types as alloy_sol_types;
4190        #[doc(hidden)]
4191        type UnderlyingSolTuple<'a> = ();
4192        #[doc(hidden)]
4193        type UnderlyingRustTuple<'a> = ();
4194        #[cfg(test)]
4195        #[allow(dead_code, unreachable_patterns)]
4196        fn _type_assertion(
4197            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4198        ) {
4199            match _t {
4200                alloy_sol_types::private::AssertTypeEq::<
4201                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4202                >(_) => {}
4203            }
4204        }
4205        #[automatically_derived]
4206        #[doc(hidden)]
4207        impl ::core::convert::From<InputAddressZero> for UnderlyingRustTuple<'_> {
4208            fn from(value: InputAddressZero) -> Self {
4209                ()
4210            }
4211        }
4212        #[automatically_derived]
4213        #[doc(hidden)]
4214        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InputAddressZero {
4215            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4216                Self
4217            }
4218        }
4219        #[automatically_derived]
4220        impl alloy_sol_types::SolError for InputAddressZero {
4221            type Parameters<'a> = UnderlyingSolTuple<'a>;
4222            type Token<'a> = <Self::Parameters<
4223                'a,
4224            > as alloy_sol_types::SolType>::Token<'a>;
4225            const SIGNATURE: &'static str = "InputAddressZero()";
4226            const SELECTOR: [u8; 4] = [115u8, 99u8, 33u8, 118u8];
4227            #[inline]
4228            fn new<'a>(
4229                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4230            ) -> Self {
4231                tuple.into()
4232            }
4233            #[inline]
4234            fn tokenize(&self) -> Self::Token<'_> {
4235                ()
4236            }
4237            #[inline]
4238            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4239                <Self::Parameters<
4240                    '_,
4241                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4242                    .map(Self::new)
4243            }
4244        }
4245    };
4246    #[derive(serde::Serialize, serde::Deserialize)]
4247    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4248    /**Custom error with signature `InputArrayLengthMismatch()` and selector `0x43714afd`.
4249```solidity
4250error InputArrayLengthMismatch();
4251```*/
4252    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4253    #[derive(Clone)]
4254    pub struct InputArrayLengthMismatch;
4255    #[allow(
4256        non_camel_case_types,
4257        non_snake_case,
4258        clippy::pub_underscore_fields,
4259        clippy::style
4260    )]
4261    const _: () = {
4262        use alloy::sol_types as alloy_sol_types;
4263        #[doc(hidden)]
4264        type UnderlyingSolTuple<'a> = ();
4265        #[doc(hidden)]
4266        type UnderlyingRustTuple<'a> = ();
4267        #[cfg(test)]
4268        #[allow(dead_code, unreachable_patterns)]
4269        fn _type_assertion(
4270            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4271        ) {
4272            match _t {
4273                alloy_sol_types::private::AssertTypeEq::<
4274                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4275                >(_) => {}
4276            }
4277        }
4278        #[automatically_derived]
4279        #[doc(hidden)]
4280        impl ::core::convert::From<InputArrayLengthMismatch>
4281        for UnderlyingRustTuple<'_> {
4282            fn from(value: InputArrayLengthMismatch) -> Self {
4283                ()
4284            }
4285        }
4286        #[automatically_derived]
4287        #[doc(hidden)]
4288        impl ::core::convert::From<UnderlyingRustTuple<'_>>
4289        for InputArrayLengthMismatch {
4290            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4291                Self
4292            }
4293        }
4294        #[automatically_derived]
4295        impl alloy_sol_types::SolError for InputArrayLengthMismatch {
4296            type Parameters<'a> = UnderlyingSolTuple<'a>;
4297            type Token<'a> = <Self::Parameters<
4298                'a,
4299            > as alloy_sol_types::SolType>::Token<'a>;
4300            const SIGNATURE: &'static str = "InputArrayLengthMismatch()";
4301            const SELECTOR: [u8; 4] = [67u8, 113u8, 74u8, 253u8];
4302            #[inline]
4303            fn new<'a>(
4304                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4305            ) -> Self {
4306                tuple.into()
4307            }
4308            #[inline]
4309            fn tokenize(&self) -> Self::Token<'_> {
4310                ()
4311            }
4312            #[inline]
4313            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4314                <Self::Parameters<
4315                    '_,
4316                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4317                    .map(Self::new)
4318            }
4319        }
4320    };
4321    #[derive(serde::Serialize, serde::Deserialize)]
4322    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4323    /**Custom error with signature `InsufficientMagnitude()` and selector `0x6c9be0bf`.
4324```solidity
4325error InsufficientMagnitude();
4326```*/
4327    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4328    #[derive(Clone)]
4329    pub struct InsufficientMagnitude;
4330    #[allow(
4331        non_camel_case_types,
4332        non_snake_case,
4333        clippy::pub_underscore_fields,
4334        clippy::style
4335    )]
4336    const _: () = {
4337        use alloy::sol_types as alloy_sol_types;
4338        #[doc(hidden)]
4339        type UnderlyingSolTuple<'a> = ();
4340        #[doc(hidden)]
4341        type UnderlyingRustTuple<'a> = ();
4342        #[cfg(test)]
4343        #[allow(dead_code, unreachable_patterns)]
4344        fn _type_assertion(
4345            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4346        ) {
4347            match _t {
4348                alloy_sol_types::private::AssertTypeEq::<
4349                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4350                >(_) => {}
4351            }
4352        }
4353        #[automatically_derived]
4354        #[doc(hidden)]
4355        impl ::core::convert::From<InsufficientMagnitude> for UnderlyingRustTuple<'_> {
4356            fn from(value: InsufficientMagnitude) -> Self {
4357                ()
4358            }
4359        }
4360        #[automatically_derived]
4361        #[doc(hidden)]
4362        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InsufficientMagnitude {
4363            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4364                Self
4365            }
4366        }
4367        #[automatically_derived]
4368        impl alloy_sol_types::SolError for InsufficientMagnitude {
4369            type Parameters<'a> = UnderlyingSolTuple<'a>;
4370            type Token<'a> = <Self::Parameters<
4371                'a,
4372            > as alloy_sol_types::SolType>::Token<'a>;
4373            const SIGNATURE: &'static str = "InsufficientMagnitude()";
4374            const SELECTOR: [u8; 4] = [108u8, 155u8, 224u8, 191u8];
4375            #[inline]
4376            fn new<'a>(
4377                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4378            ) -> Self {
4379                tuple.into()
4380            }
4381            #[inline]
4382            fn tokenize(&self) -> Self::Token<'_> {
4383                ()
4384            }
4385            #[inline]
4386            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4387                <Self::Parameters<
4388                    '_,
4389                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4390                    .map(Self::new)
4391            }
4392        }
4393    };
4394    #[derive(serde::Serialize, serde::Deserialize)]
4395    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4396    /**Custom error with signature `InvalidAVSRegistrar()` and selector `0xe8589e08`.
4397```solidity
4398error InvalidAVSRegistrar();
4399```*/
4400    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4401    #[derive(Clone)]
4402    pub struct InvalidAVSRegistrar;
4403    #[allow(
4404        non_camel_case_types,
4405        non_snake_case,
4406        clippy::pub_underscore_fields,
4407        clippy::style
4408    )]
4409    const _: () = {
4410        use alloy::sol_types as alloy_sol_types;
4411        #[doc(hidden)]
4412        type UnderlyingSolTuple<'a> = ();
4413        #[doc(hidden)]
4414        type UnderlyingRustTuple<'a> = ();
4415        #[cfg(test)]
4416        #[allow(dead_code, unreachable_patterns)]
4417        fn _type_assertion(
4418            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4419        ) {
4420            match _t {
4421                alloy_sol_types::private::AssertTypeEq::<
4422                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4423                >(_) => {}
4424            }
4425        }
4426        #[automatically_derived]
4427        #[doc(hidden)]
4428        impl ::core::convert::From<InvalidAVSRegistrar> for UnderlyingRustTuple<'_> {
4429            fn from(value: InvalidAVSRegistrar) -> Self {
4430                ()
4431            }
4432        }
4433        #[automatically_derived]
4434        #[doc(hidden)]
4435        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidAVSRegistrar {
4436            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4437                Self
4438            }
4439        }
4440        #[automatically_derived]
4441        impl alloy_sol_types::SolError for InvalidAVSRegistrar {
4442            type Parameters<'a> = UnderlyingSolTuple<'a>;
4443            type Token<'a> = <Self::Parameters<
4444                'a,
4445            > as alloy_sol_types::SolType>::Token<'a>;
4446            const SIGNATURE: &'static str = "InvalidAVSRegistrar()";
4447            const SELECTOR: [u8; 4] = [232u8, 88u8, 158u8, 8u8];
4448            #[inline]
4449            fn new<'a>(
4450                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4451            ) -> Self {
4452                tuple.into()
4453            }
4454            #[inline]
4455            fn tokenize(&self) -> Self::Token<'_> {
4456                ()
4457            }
4458            #[inline]
4459            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4460                <Self::Parameters<
4461                    '_,
4462                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4463                    .map(Self::new)
4464            }
4465        }
4466    };
4467    #[derive(serde::Serialize, serde::Deserialize)]
4468    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4469    /**Custom error with signature `InvalidCaller()` and selector `0x48f5c3ed`.
4470```solidity
4471error InvalidCaller();
4472```*/
4473    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4474    #[derive(Clone)]
4475    pub struct InvalidCaller;
4476    #[allow(
4477        non_camel_case_types,
4478        non_snake_case,
4479        clippy::pub_underscore_fields,
4480        clippy::style
4481    )]
4482    const _: () = {
4483        use alloy::sol_types as alloy_sol_types;
4484        #[doc(hidden)]
4485        type UnderlyingSolTuple<'a> = ();
4486        #[doc(hidden)]
4487        type UnderlyingRustTuple<'a> = ();
4488        #[cfg(test)]
4489        #[allow(dead_code, unreachable_patterns)]
4490        fn _type_assertion(
4491            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4492        ) {
4493            match _t {
4494                alloy_sol_types::private::AssertTypeEq::<
4495                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4496                >(_) => {}
4497            }
4498        }
4499        #[automatically_derived]
4500        #[doc(hidden)]
4501        impl ::core::convert::From<InvalidCaller> for UnderlyingRustTuple<'_> {
4502            fn from(value: InvalidCaller) -> Self {
4503                ()
4504            }
4505        }
4506        #[automatically_derived]
4507        #[doc(hidden)]
4508        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidCaller {
4509            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4510                Self
4511            }
4512        }
4513        #[automatically_derived]
4514        impl alloy_sol_types::SolError for InvalidCaller {
4515            type Parameters<'a> = UnderlyingSolTuple<'a>;
4516            type Token<'a> = <Self::Parameters<
4517                'a,
4518            > as alloy_sol_types::SolType>::Token<'a>;
4519            const SIGNATURE: &'static str = "InvalidCaller()";
4520            const SELECTOR: [u8; 4] = [72u8, 245u8, 195u8, 237u8];
4521            #[inline]
4522            fn new<'a>(
4523                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4524            ) -> Self {
4525                tuple.into()
4526            }
4527            #[inline]
4528            fn tokenize(&self) -> Self::Token<'_> {
4529                ()
4530            }
4531            #[inline]
4532            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4533                <Self::Parameters<
4534                    '_,
4535                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4536                    .map(Self::new)
4537            }
4538        }
4539    };
4540    #[derive(serde::Serialize, serde::Deserialize)]
4541    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4542    /**Custom error with signature `InvalidNewPausedStatus()` and selector `0xc61dca5d`.
4543```solidity
4544error InvalidNewPausedStatus();
4545```*/
4546    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4547    #[derive(Clone)]
4548    pub struct InvalidNewPausedStatus;
4549    #[allow(
4550        non_camel_case_types,
4551        non_snake_case,
4552        clippy::pub_underscore_fields,
4553        clippy::style
4554    )]
4555    const _: () = {
4556        use alloy::sol_types as alloy_sol_types;
4557        #[doc(hidden)]
4558        type UnderlyingSolTuple<'a> = ();
4559        #[doc(hidden)]
4560        type UnderlyingRustTuple<'a> = ();
4561        #[cfg(test)]
4562        #[allow(dead_code, unreachable_patterns)]
4563        fn _type_assertion(
4564            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4565        ) {
4566            match _t {
4567                alloy_sol_types::private::AssertTypeEq::<
4568                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4569                >(_) => {}
4570            }
4571        }
4572        #[automatically_derived]
4573        #[doc(hidden)]
4574        impl ::core::convert::From<InvalidNewPausedStatus> for UnderlyingRustTuple<'_> {
4575            fn from(value: InvalidNewPausedStatus) -> Self {
4576                ()
4577            }
4578        }
4579        #[automatically_derived]
4580        #[doc(hidden)]
4581        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidNewPausedStatus {
4582            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4583                Self
4584            }
4585        }
4586        #[automatically_derived]
4587        impl alloy_sol_types::SolError for InvalidNewPausedStatus {
4588            type Parameters<'a> = UnderlyingSolTuple<'a>;
4589            type Token<'a> = <Self::Parameters<
4590                'a,
4591            > as alloy_sol_types::SolType>::Token<'a>;
4592            const SIGNATURE: &'static str = "InvalidNewPausedStatus()";
4593            const SELECTOR: [u8; 4] = [198u8, 29u8, 202u8, 93u8];
4594            #[inline]
4595            fn new<'a>(
4596                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4597            ) -> Self {
4598                tuple.into()
4599            }
4600            #[inline]
4601            fn tokenize(&self) -> Self::Token<'_> {
4602                ()
4603            }
4604            #[inline]
4605            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4606                <Self::Parameters<
4607                    '_,
4608                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4609                    .map(Self::new)
4610            }
4611        }
4612    };
4613    #[derive(serde::Serialize, serde::Deserialize)]
4614    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4615    /**Custom error with signature `InvalidOperator()` and selector `0xccea9e6f`.
4616```solidity
4617error InvalidOperator();
4618```*/
4619    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4620    #[derive(Clone)]
4621    pub struct InvalidOperator;
4622    #[allow(
4623        non_camel_case_types,
4624        non_snake_case,
4625        clippy::pub_underscore_fields,
4626        clippy::style
4627    )]
4628    const _: () = {
4629        use alloy::sol_types as alloy_sol_types;
4630        #[doc(hidden)]
4631        type UnderlyingSolTuple<'a> = ();
4632        #[doc(hidden)]
4633        type UnderlyingRustTuple<'a> = ();
4634        #[cfg(test)]
4635        #[allow(dead_code, unreachable_patterns)]
4636        fn _type_assertion(
4637            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4638        ) {
4639            match _t {
4640                alloy_sol_types::private::AssertTypeEq::<
4641                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4642                >(_) => {}
4643            }
4644        }
4645        #[automatically_derived]
4646        #[doc(hidden)]
4647        impl ::core::convert::From<InvalidOperator> for UnderlyingRustTuple<'_> {
4648            fn from(value: InvalidOperator) -> Self {
4649                ()
4650            }
4651        }
4652        #[automatically_derived]
4653        #[doc(hidden)]
4654        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidOperator {
4655            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4656                Self
4657            }
4658        }
4659        #[automatically_derived]
4660        impl alloy_sol_types::SolError for InvalidOperator {
4661            type Parameters<'a> = UnderlyingSolTuple<'a>;
4662            type Token<'a> = <Self::Parameters<
4663                'a,
4664            > as alloy_sol_types::SolType>::Token<'a>;
4665            const SIGNATURE: &'static str = "InvalidOperator()";
4666            const SELECTOR: [u8; 4] = [204u8, 234u8, 158u8, 111u8];
4667            #[inline]
4668            fn new<'a>(
4669                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4670            ) -> Self {
4671                tuple.into()
4672            }
4673            #[inline]
4674            fn tokenize(&self) -> Self::Token<'_> {
4675                ()
4676            }
4677            #[inline]
4678            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4679                <Self::Parameters<
4680                    '_,
4681                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4682                    .map(Self::new)
4683            }
4684        }
4685    };
4686    #[derive(serde::Serialize, serde::Deserialize)]
4687    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4688    /**Custom error with signature `InvalidOperatorSet()` and selector `0x7ec5c154`.
4689```solidity
4690error InvalidOperatorSet();
4691```*/
4692    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4693    #[derive(Clone)]
4694    pub struct InvalidOperatorSet;
4695    #[allow(
4696        non_camel_case_types,
4697        non_snake_case,
4698        clippy::pub_underscore_fields,
4699        clippy::style
4700    )]
4701    const _: () = {
4702        use alloy::sol_types as alloy_sol_types;
4703        #[doc(hidden)]
4704        type UnderlyingSolTuple<'a> = ();
4705        #[doc(hidden)]
4706        type UnderlyingRustTuple<'a> = ();
4707        #[cfg(test)]
4708        #[allow(dead_code, unreachable_patterns)]
4709        fn _type_assertion(
4710            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4711        ) {
4712            match _t {
4713                alloy_sol_types::private::AssertTypeEq::<
4714                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4715                >(_) => {}
4716            }
4717        }
4718        #[automatically_derived]
4719        #[doc(hidden)]
4720        impl ::core::convert::From<InvalidOperatorSet> for UnderlyingRustTuple<'_> {
4721            fn from(value: InvalidOperatorSet) -> Self {
4722                ()
4723            }
4724        }
4725        #[automatically_derived]
4726        #[doc(hidden)]
4727        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidOperatorSet {
4728            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4729                Self
4730            }
4731        }
4732        #[automatically_derived]
4733        impl alloy_sol_types::SolError for InvalidOperatorSet {
4734            type Parameters<'a> = UnderlyingSolTuple<'a>;
4735            type Token<'a> = <Self::Parameters<
4736                'a,
4737            > as alloy_sol_types::SolType>::Token<'a>;
4738            const SIGNATURE: &'static str = "InvalidOperatorSet()";
4739            const SELECTOR: [u8; 4] = [126u8, 197u8, 193u8, 84u8];
4740            #[inline]
4741            fn new<'a>(
4742                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4743            ) -> Self {
4744                tuple.into()
4745            }
4746            #[inline]
4747            fn tokenize(&self) -> Self::Token<'_> {
4748                ()
4749            }
4750            #[inline]
4751            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4752                <Self::Parameters<
4753                    '_,
4754                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4755                    .map(Self::new)
4756            }
4757        }
4758    };
4759    #[derive(serde::Serialize, serde::Deserialize)]
4760    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4761    /**Custom error with signature `InvalidPermissions()` and selector `0x932d94f7`.
4762```solidity
4763error InvalidPermissions();
4764```*/
4765    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4766    #[derive(Clone)]
4767    pub struct InvalidPermissions;
4768    #[allow(
4769        non_camel_case_types,
4770        non_snake_case,
4771        clippy::pub_underscore_fields,
4772        clippy::style
4773    )]
4774    const _: () = {
4775        use alloy::sol_types as alloy_sol_types;
4776        #[doc(hidden)]
4777        type UnderlyingSolTuple<'a> = ();
4778        #[doc(hidden)]
4779        type UnderlyingRustTuple<'a> = ();
4780        #[cfg(test)]
4781        #[allow(dead_code, unreachable_patterns)]
4782        fn _type_assertion(
4783            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4784        ) {
4785            match _t {
4786                alloy_sol_types::private::AssertTypeEq::<
4787                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4788                >(_) => {}
4789            }
4790        }
4791        #[automatically_derived]
4792        #[doc(hidden)]
4793        impl ::core::convert::From<InvalidPermissions> for UnderlyingRustTuple<'_> {
4794            fn from(value: InvalidPermissions) -> Self {
4795                ()
4796            }
4797        }
4798        #[automatically_derived]
4799        #[doc(hidden)]
4800        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPermissions {
4801            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4802                Self
4803            }
4804        }
4805        #[automatically_derived]
4806        impl alloy_sol_types::SolError for InvalidPermissions {
4807            type Parameters<'a> = UnderlyingSolTuple<'a>;
4808            type Token<'a> = <Self::Parameters<
4809                'a,
4810            > as alloy_sol_types::SolType>::Token<'a>;
4811            const SIGNATURE: &'static str = "InvalidPermissions()";
4812            const SELECTOR: [u8; 4] = [147u8, 45u8, 148u8, 247u8];
4813            #[inline]
4814            fn new<'a>(
4815                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4816            ) -> Self {
4817                tuple.into()
4818            }
4819            #[inline]
4820            fn tokenize(&self) -> Self::Token<'_> {
4821                ()
4822            }
4823            #[inline]
4824            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4825                <Self::Parameters<
4826                    '_,
4827                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4828                    .map(Self::new)
4829            }
4830        }
4831    };
4832    #[derive(serde::Serialize, serde::Deserialize)]
4833    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4834    /**Custom error with signature `InvalidShortString()` and selector `0xb3512b0c`.
4835```solidity
4836error InvalidShortString();
4837```*/
4838    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4839    #[derive(Clone)]
4840    pub struct InvalidShortString;
4841    #[allow(
4842        non_camel_case_types,
4843        non_snake_case,
4844        clippy::pub_underscore_fields,
4845        clippy::style
4846    )]
4847    const _: () = {
4848        use alloy::sol_types as alloy_sol_types;
4849        #[doc(hidden)]
4850        type UnderlyingSolTuple<'a> = ();
4851        #[doc(hidden)]
4852        type UnderlyingRustTuple<'a> = ();
4853        #[cfg(test)]
4854        #[allow(dead_code, unreachable_patterns)]
4855        fn _type_assertion(
4856            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4857        ) {
4858            match _t {
4859                alloy_sol_types::private::AssertTypeEq::<
4860                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4861                >(_) => {}
4862            }
4863        }
4864        #[automatically_derived]
4865        #[doc(hidden)]
4866        impl ::core::convert::From<InvalidShortString> for UnderlyingRustTuple<'_> {
4867            fn from(value: InvalidShortString) -> Self {
4868                ()
4869            }
4870        }
4871        #[automatically_derived]
4872        #[doc(hidden)]
4873        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidShortString {
4874            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4875                Self
4876            }
4877        }
4878        #[automatically_derived]
4879        impl alloy_sol_types::SolError for InvalidShortString {
4880            type Parameters<'a> = UnderlyingSolTuple<'a>;
4881            type Token<'a> = <Self::Parameters<
4882                'a,
4883            > as alloy_sol_types::SolType>::Token<'a>;
4884            const SIGNATURE: &'static str = "InvalidShortString()";
4885            const SELECTOR: [u8; 4] = [179u8, 81u8, 43u8, 12u8];
4886            #[inline]
4887            fn new<'a>(
4888                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4889            ) -> Self {
4890                tuple.into()
4891            }
4892            #[inline]
4893            fn tokenize(&self) -> Self::Token<'_> {
4894                ()
4895            }
4896            #[inline]
4897            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4898                <Self::Parameters<
4899                    '_,
4900                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4901                    .map(Self::new)
4902            }
4903        }
4904    };
4905    #[derive(serde::Serialize, serde::Deserialize)]
4906    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4907    /**Custom error with signature `InvalidSnapshotOrdering()` and selector `0x2a371c7e`.
4908```solidity
4909error InvalidSnapshotOrdering();
4910```*/
4911    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4912    #[derive(Clone)]
4913    pub struct InvalidSnapshotOrdering;
4914    #[allow(
4915        non_camel_case_types,
4916        non_snake_case,
4917        clippy::pub_underscore_fields,
4918        clippy::style
4919    )]
4920    const _: () = {
4921        use alloy::sol_types as alloy_sol_types;
4922        #[doc(hidden)]
4923        type UnderlyingSolTuple<'a> = ();
4924        #[doc(hidden)]
4925        type UnderlyingRustTuple<'a> = ();
4926        #[cfg(test)]
4927        #[allow(dead_code, unreachable_patterns)]
4928        fn _type_assertion(
4929            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4930        ) {
4931            match _t {
4932                alloy_sol_types::private::AssertTypeEq::<
4933                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4934                >(_) => {}
4935            }
4936        }
4937        #[automatically_derived]
4938        #[doc(hidden)]
4939        impl ::core::convert::From<InvalidSnapshotOrdering> for UnderlyingRustTuple<'_> {
4940            fn from(value: InvalidSnapshotOrdering) -> Self {
4941                ()
4942            }
4943        }
4944        #[automatically_derived]
4945        #[doc(hidden)]
4946        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidSnapshotOrdering {
4947            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4948                Self
4949            }
4950        }
4951        #[automatically_derived]
4952        impl alloy_sol_types::SolError for InvalidSnapshotOrdering {
4953            type Parameters<'a> = UnderlyingSolTuple<'a>;
4954            type Token<'a> = <Self::Parameters<
4955                'a,
4956            > as alloy_sol_types::SolType>::Token<'a>;
4957            const SIGNATURE: &'static str = "InvalidSnapshotOrdering()";
4958            const SELECTOR: [u8; 4] = [42u8, 55u8, 28u8, 126u8];
4959            #[inline]
4960            fn new<'a>(
4961                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4962            ) -> Self {
4963                tuple.into()
4964            }
4965            #[inline]
4966            fn tokenize(&self) -> Self::Token<'_> {
4967                ()
4968            }
4969            #[inline]
4970            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
4971                <Self::Parameters<
4972                    '_,
4973                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4974                    .map(Self::new)
4975            }
4976        }
4977    };
4978    #[derive(serde::Serialize, serde::Deserialize)]
4979    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4980    /**Custom error with signature `InvalidWadToSlash()` and selector `0x13536031`.
4981```solidity
4982error InvalidWadToSlash();
4983```*/
4984    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4985    #[derive(Clone)]
4986    pub struct InvalidWadToSlash;
4987    #[allow(
4988        non_camel_case_types,
4989        non_snake_case,
4990        clippy::pub_underscore_fields,
4991        clippy::style
4992    )]
4993    const _: () = {
4994        use alloy::sol_types as alloy_sol_types;
4995        #[doc(hidden)]
4996        type UnderlyingSolTuple<'a> = ();
4997        #[doc(hidden)]
4998        type UnderlyingRustTuple<'a> = ();
4999        #[cfg(test)]
5000        #[allow(dead_code, unreachable_patterns)]
5001        fn _type_assertion(
5002            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5003        ) {
5004            match _t {
5005                alloy_sol_types::private::AssertTypeEq::<
5006                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5007                >(_) => {}
5008            }
5009        }
5010        #[automatically_derived]
5011        #[doc(hidden)]
5012        impl ::core::convert::From<InvalidWadToSlash> for UnderlyingRustTuple<'_> {
5013            fn from(value: InvalidWadToSlash) -> Self {
5014                ()
5015            }
5016        }
5017        #[automatically_derived]
5018        #[doc(hidden)]
5019        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidWadToSlash {
5020            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5021                Self
5022            }
5023        }
5024        #[automatically_derived]
5025        impl alloy_sol_types::SolError for InvalidWadToSlash {
5026            type Parameters<'a> = UnderlyingSolTuple<'a>;
5027            type Token<'a> = <Self::Parameters<
5028                'a,
5029            > as alloy_sol_types::SolType>::Token<'a>;
5030            const SIGNATURE: &'static str = "InvalidWadToSlash()";
5031            const SELECTOR: [u8; 4] = [19u8, 83u8, 96u8, 49u8];
5032            #[inline]
5033            fn new<'a>(
5034                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5035            ) -> Self {
5036                tuple.into()
5037            }
5038            #[inline]
5039            fn tokenize(&self) -> Self::Token<'_> {
5040                ()
5041            }
5042            #[inline]
5043            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5044                <Self::Parameters<
5045                    '_,
5046                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5047                    .map(Self::new)
5048            }
5049        }
5050    };
5051    #[derive(serde::Serialize, serde::Deserialize)]
5052    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5053    /**Custom error with signature `ModificationAlreadyPending()` and selector `0xd8fcbe30`.
5054```solidity
5055error ModificationAlreadyPending();
5056```*/
5057    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5058    #[derive(Clone)]
5059    pub struct ModificationAlreadyPending;
5060    #[allow(
5061        non_camel_case_types,
5062        non_snake_case,
5063        clippy::pub_underscore_fields,
5064        clippy::style
5065    )]
5066    const _: () = {
5067        use alloy::sol_types as alloy_sol_types;
5068        #[doc(hidden)]
5069        type UnderlyingSolTuple<'a> = ();
5070        #[doc(hidden)]
5071        type UnderlyingRustTuple<'a> = ();
5072        #[cfg(test)]
5073        #[allow(dead_code, unreachable_patterns)]
5074        fn _type_assertion(
5075            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5076        ) {
5077            match _t {
5078                alloy_sol_types::private::AssertTypeEq::<
5079                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5080                >(_) => {}
5081            }
5082        }
5083        #[automatically_derived]
5084        #[doc(hidden)]
5085        impl ::core::convert::From<ModificationAlreadyPending>
5086        for UnderlyingRustTuple<'_> {
5087            fn from(value: ModificationAlreadyPending) -> Self {
5088                ()
5089            }
5090        }
5091        #[automatically_derived]
5092        #[doc(hidden)]
5093        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5094        for ModificationAlreadyPending {
5095            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5096                Self
5097            }
5098        }
5099        #[automatically_derived]
5100        impl alloy_sol_types::SolError for ModificationAlreadyPending {
5101            type Parameters<'a> = UnderlyingSolTuple<'a>;
5102            type Token<'a> = <Self::Parameters<
5103                'a,
5104            > as alloy_sol_types::SolType>::Token<'a>;
5105            const SIGNATURE: &'static str = "ModificationAlreadyPending()";
5106            const SELECTOR: [u8; 4] = [216u8, 252u8, 190u8, 48u8];
5107            #[inline]
5108            fn new<'a>(
5109                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5110            ) -> Self {
5111                tuple.into()
5112            }
5113            #[inline]
5114            fn tokenize(&self) -> Self::Token<'_> {
5115                ()
5116            }
5117            #[inline]
5118            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5119                <Self::Parameters<
5120                    '_,
5121                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5122                    .map(Self::new)
5123            }
5124        }
5125    };
5126    #[derive(serde::Serialize, serde::Deserialize)]
5127    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5128    /**Custom error with signature `NonexistentAVSMetadata()` and selector `0x48f7dbb9`.
5129```solidity
5130error NonexistentAVSMetadata();
5131```*/
5132    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5133    #[derive(Clone)]
5134    pub struct NonexistentAVSMetadata;
5135    #[allow(
5136        non_camel_case_types,
5137        non_snake_case,
5138        clippy::pub_underscore_fields,
5139        clippy::style
5140    )]
5141    const _: () = {
5142        use alloy::sol_types as alloy_sol_types;
5143        #[doc(hidden)]
5144        type UnderlyingSolTuple<'a> = ();
5145        #[doc(hidden)]
5146        type UnderlyingRustTuple<'a> = ();
5147        #[cfg(test)]
5148        #[allow(dead_code, unreachable_patterns)]
5149        fn _type_assertion(
5150            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5151        ) {
5152            match _t {
5153                alloy_sol_types::private::AssertTypeEq::<
5154                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5155                >(_) => {}
5156            }
5157        }
5158        #[automatically_derived]
5159        #[doc(hidden)]
5160        impl ::core::convert::From<NonexistentAVSMetadata> for UnderlyingRustTuple<'_> {
5161            fn from(value: NonexistentAVSMetadata) -> Self {
5162                ()
5163            }
5164        }
5165        #[automatically_derived]
5166        #[doc(hidden)]
5167        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NonexistentAVSMetadata {
5168            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5169                Self
5170            }
5171        }
5172        #[automatically_derived]
5173        impl alloy_sol_types::SolError for NonexistentAVSMetadata {
5174            type Parameters<'a> = UnderlyingSolTuple<'a>;
5175            type Token<'a> = <Self::Parameters<
5176                'a,
5177            > as alloy_sol_types::SolType>::Token<'a>;
5178            const SIGNATURE: &'static str = "NonexistentAVSMetadata()";
5179            const SELECTOR: [u8; 4] = [72u8, 247u8, 219u8, 185u8];
5180            #[inline]
5181            fn new<'a>(
5182                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5183            ) -> Self {
5184                tuple.into()
5185            }
5186            #[inline]
5187            fn tokenize(&self) -> Self::Token<'_> {
5188                ()
5189            }
5190            #[inline]
5191            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5192                <Self::Parameters<
5193                    '_,
5194                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5195                    .map(Self::new)
5196            }
5197        }
5198    };
5199    #[derive(serde::Serialize, serde::Deserialize)]
5200    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5201    /**Custom error with signature `NotMemberOfSet()` and selector `0x25131d4f`.
5202```solidity
5203error NotMemberOfSet();
5204```*/
5205    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5206    #[derive(Clone)]
5207    pub struct NotMemberOfSet;
5208    #[allow(
5209        non_camel_case_types,
5210        non_snake_case,
5211        clippy::pub_underscore_fields,
5212        clippy::style
5213    )]
5214    const _: () = {
5215        use alloy::sol_types as alloy_sol_types;
5216        #[doc(hidden)]
5217        type UnderlyingSolTuple<'a> = ();
5218        #[doc(hidden)]
5219        type UnderlyingRustTuple<'a> = ();
5220        #[cfg(test)]
5221        #[allow(dead_code, unreachable_patterns)]
5222        fn _type_assertion(
5223            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5224        ) {
5225            match _t {
5226                alloy_sol_types::private::AssertTypeEq::<
5227                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5228                >(_) => {}
5229            }
5230        }
5231        #[automatically_derived]
5232        #[doc(hidden)]
5233        impl ::core::convert::From<NotMemberOfSet> for UnderlyingRustTuple<'_> {
5234            fn from(value: NotMemberOfSet) -> Self {
5235                ()
5236            }
5237        }
5238        #[automatically_derived]
5239        #[doc(hidden)]
5240        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NotMemberOfSet {
5241            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5242                Self
5243            }
5244        }
5245        #[automatically_derived]
5246        impl alloy_sol_types::SolError for NotMemberOfSet {
5247            type Parameters<'a> = UnderlyingSolTuple<'a>;
5248            type Token<'a> = <Self::Parameters<
5249                'a,
5250            > as alloy_sol_types::SolType>::Token<'a>;
5251            const SIGNATURE: &'static str = "NotMemberOfSet()";
5252            const SELECTOR: [u8; 4] = [37u8, 19u8, 29u8, 79u8];
5253            #[inline]
5254            fn new<'a>(
5255                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5256            ) -> Self {
5257                tuple.into()
5258            }
5259            #[inline]
5260            fn tokenize(&self) -> Self::Token<'_> {
5261                ()
5262            }
5263            #[inline]
5264            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5265                <Self::Parameters<
5266                    '_,
5267                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5268                    .map(Self::new)
5269            }
5270        }
5271    };
5272    #[derive(serde::Serialize, serde::Deserialize)]
5273    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5274    /**Custom error with signature `OnlyPauser()` and selector `0x75df51dc`.
5275```solidity
5276error OnlyPauser();
5277```*/
5278    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5279    #[derive(Clone)]
5280    pub struct OnlyPauser;
5281    #[allow(
5282        non_camel_case_types,
5283        non_snake_case,
5284        clippy::pub_underscore_fields,
5285        clippy::style
5286    )]
5287    const _: () = {
5288        use alloy::sol_types as alloy_sol_types;
5289        #[doc(hidden)]
5290        type UnderlyingSolTuple<'a> = ();
5291        #[doc(hidden)]
5292        type UnderlyingRustTuple<'a> = ();
5293        #[cfg(test)]
5294        #[allow(dead_code, unreachable_patterns)]
5295        fn _type_assertion(
5296            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5297        ) {
5298            match _t {
5299                alloy_sol_types::private::AssertTypeEq::<
5300                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5301                >(_) => {}
5302            }
5303        }
5304        #[automatically_derived]
5305        #[doc(hidden)]
5306        impl ::core::convert::From<OnlyPauser> for UnderlyingRustTuple<'_> {
5307            fn from(value: OnlyPauser) -> Self {
5308                ()
5309            }
5310        }
5311        #[automatically_derived]
5312        #[doc(hidden)]
5313        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyPauser {
5314            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5315                Self
5316            }
5317        }
5318        #[automatically_derived]
5319        impl alloy_sol_types::SolError for OnlyPauser {
5320            type Parameters<'a> = UnderlyingSolTuple<'a>;
5321            type Token<'a> = <Self::Parameters<
5322                'a,
5323            > as alloy_sol_types::SolType>::Token<'a>;
5324            const SIGNATURE: &'static str = "OnlyPauser()";
5325            const SELECTOR: [u8; 4] = [117u8, 223u8, 81u8, 220u8];
5326            #[inline]
5327            fn new<'a>(
5328                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5329            ) -> Self {
5330                tuple.into()
5331            }
5332            #[inline]
5333            fn tokenize(&self) -> Self::Token<'_> {
5334                ()
5335            }
5336            #[inline]
5337            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5338                <Self::Parameters<
5339                    '_,
5340                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5341                    .map(Self::new)
5342            }
5343        }
5344    };
5345    #[derive(serde::Serialize, serde::Deserialize)]
5346    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5347    /**Custom error with signature `OnlyUnpauser()` and selector `0x794821ff`.
5348```solidity
5349error OnlyUnpauser();
5350```*/
5351    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5352    #[derive(Clone)]
5353    pub struct OnlyUnpauser;
5354    #[allow(
5355        non_camel_case_types,
5356        non_snake_case,
5357        clippy::pub_underscore_fields,
5358        clippy::style
5359    )]
5360    const _: () = {
5361        use alloy::sol_types as alloy_sol_types;
5362        #[doc(hidden)]
5363        type UnderlyingSolTuple<'a> = ();
5364        #[doc(hidden)]
5365        type UnderlyingRustTuple<'a> = ();
5366        #[cfg(test)]
5367        #[allow(dead_code, unreachable_patterns)]
5368        fn _type_assertion(
5369            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5370        ) {
5371            match _t {
5372                alloy_sol_types::private::AssertTypeEq::<
5373                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5374                >(_) => {}
5375            }
5376        }
5377        #[automatically_derived]
5378        #[doc(hidden)]
5379        impl ::core::convert::From<OnlyUnpauser> for UnderlyingRustTuple<'_> {
5380            fn from(value: OnlyUnpauser) -> Self {
5381                ()
5382            }
5383        }
5384        #[automatically_derived]
5385        #[doc(hidden)]
5386        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyUnpauser {
5387            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5388                Self
5389            }
5390        }
5391        #[automatically_derived]
5392        impl alloy_sol_types::SolError for OnlyUnpauser {
5393            type Parameters<'a> = UnderlyingSolTuple<'a>;
5394            type Token<'a> = <Self::Parameters<
5395                'a,
5396            > as alloy_sol_types::SolType>::Token<'a>;
5397            const SIGNATURE: &'static str = "OnlyUnpauser()";
5398            const SELECTOR: [u8; 4] = [121u8, 72u8, 33u8, 255u8];
5399            #[inline]
5400            fn new<'a>(
5401                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5402            ) -> Self {
5403                tuple.into()
5404            }
5405            #[inline]
5406            fn tokenize(&self) -> Self::Token<'_> {
5407                ()
5408            }
5409            #[inline]
5410            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5411                <Self::Parameters<
5412                    '_,
5413                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5414                    .map(Self::new)
5415            }
5416        }
5417    };
5418    #[derive(serde::Serialize, serde::Deserialize)]
5419    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5420    /**Custom error with signature `OperatorNotSlashable()` and selector `0xebbff497`.
5421```solidity
5422error OperatorNotSlashable();
5423```*/
5424    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5425    #[derive(Clone)]
5426    pub struct OperatorNotSlashable;
5427    #[allow(
5428        non_camel_case_types,
5429        non_snake_case,
5430        clippy::pub_underscore_fields,
5431        clippy::style
5432    )]
5433    const _: () = {
5434        use alloy::sol_types as alloy_sol_types;
5435        #[doc(hidden)]
5436        type UnderlyingSolTuple<'a> = ();
5437        #[doc(hidden)]
5438        type UnderlyingRustTuple<'a> = ();
5439        #[cfg(test)]
5440        #[allow(dead_code, unreachable_patterns)]
5441        fn _type_assertion(
5442            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5443        ) {
5444            match _t {
5445                alloy_sol_types::private::AssertTypeEq::<
5446                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5447                >(_) => {}
5448            }
5449        }
5450        #[automatically_derived]
5451        #[doc(hidden)]
5452        impl ::core::convert::From<OperatorNotSlashable> for UnderlyingRustTuple<'_> {
5453            fn from(value: OperatorNotSlashable) -> Self {
5454                ()
5455            }
5456        }
5457        #[automatically_derived]
5458        #[doc(hidden)]
5459        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorNotSlashable {
5460            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5461                Self
5462            }
5463        }
5464        #[automatically_derived]
5465        impl alloy_sol_types::SolError for OperatorNotSlashable {
5466            type Parameters<'a> = UnderlyingSolTuple<'a>;
5467            type Token<'a> = <Self::Parameters<
5468                'a,
5469            > as alloy_sol_types::SolType>::Token<'a>;
5470            const SIGNATURE: &'static str = "OperatorNotSlashable()";
5471            const SELECTOR: [u8; 4] = [235u8, 191u8, 244u8, 151u8];
5472            #[inline]
5473            fn new<'a>(
5474                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5475            ) -> Self {
5476                tuple.into()
5477            }
5478            #[inline]
5479            fn tokenize(&self) -> Self::Token<'_> {
5480                ()
5481            }
5482            #[inline]
5483            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5484                <Self::Parameters<
5485                    '_,
5486                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5487                    .map(Self::new)
5488            }
5489        }
5490    };
5491    #[derive(serde::Serialize, serde::Deserialize)]
5492    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5493    /**Custom error with signature `OutOfBounds()` and selector `0xb4120f14`.
5494```solidity
5495error OutOfBounds();
5496```*/
5497    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5498    #[derive(Clone)]
5499    pub struct OutOfBounds;
5500    #[allow(
5501        non_camel_case_types,
5502        non_snake_case,
5503        clippy::pub_underscore_fields,
5504        clippy::style
5505    )]
5506    const _: () = {
5507        use alloy::sol_types as alloy_sol_types;
5508        #[doc(hidden)]
5509        type UnderlyingSolTuple<'a> = ();
5510        #[doc(hidden)]
5511        type UnderlyingRustTuple<'a> = ();
5512        #[cfg(test)]
5513        #[allow(dead_code, unreachable_patterns)]
5514        fn _type_assertion(
5515            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5516        ) {
5517            match _t {
5518                alloy_sol_types::private::AssertTypeEq::<
5519                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5520                >(_) => {}
5521            }
5522        }
5523        #[automatically_derived]
5524        #[doc(hidden)]
5525        impl ::core::convert::From<OutOfBounds> for UnderlyingRustTuple<'_> {
5526            fn from(value: OutOfBounds) -> Self {
5527                ()
5528            }
5529        }
5530        #[automatically_derived]
5531        #[doc(hidden)]
5532        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OutOfBounds {
5533            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5534                Self
5535            }
5536        }
5537        #[automatically_derived]
5538        impl alloy_sol_types::SolError for OutOfBounds {
5539            type Parameters<'a> = UnderlyingSolTuple<'a>;
5540            type Token<'a> = <Self::Parameters<
5541                'a,
5542            > as alloy_sol_types::SolType>::Token<'a>;
5543            const SIGNATURE: &'static str = "OutOfBounds()";
5544            const SELECTOR: [u8; 4] = [180u8, 18u8, 15u8, 20u8];
5545            #[inline]
5546            fn new<'a>(
5547                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5548            ) -> Self {
5549                tuple.into()
5550            }
5551            #[inline]
5552            fn tokenize(&self) -> Self::Token<'_> {
5553                ()
5554            }
5555            #[inline]
5556            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5557                <Self::Parameters<
5558                    '_,
5559                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5560                    .map(Self::new)
5561            }
5562        }
5563    };
5564    #[derive(serde::Serialize, serde::Deserialize)]
5565    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5566    /**Custom error with signature `SameMagnitude()` and selector `0x8c0c2f26`.
5567```solidity
5568error SameMagnitude();
5569```*/
5570    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5571    #[derive(Clone)]
5572    pub struct SameMagnitude;
5573    #[allow(
5574        non_camel_case_types,
5575        non_snake_case,
5576        clippy::pub_underscore_fields,
5577        clippy::style
5578    )]
5579    const _: () = {
5580        use alloy::sol_types as alloy_sol_types;
5581        #[doc(hidden)]
5582        type UnderlyingSolTuple<'a> = ();
5583        #[doc(hidden)]
5584        type UnderlyingRustTuple<'a> = ();
5585        #[cfg(test)]
5586        #[allow(dead_code, unreachable_patterns)]
5587        fn _type_assertion(
5588            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5589        ) {
5590            match _t {
5591                alloy_sol_types::private::AssertTypeEq::<
5592                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5593                >(_) => {}
5594            }
5595        }
5596        #[automatically_derived]
5597        #[doc(hidden)]
5598        impl ::core::convert::From<SameMagnitude> for UnderlyingRustTuple<'_> {
5599            fn from(value: SameMagnitude) -> Self {
5600                ()
5601            }
5602        }
5603        #[automatically_derived]
5604        #[doc(hidden)]
5605        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SameMagnitude {
5606            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5607                Self
5608            }
5609        }
5610        #[automatically_derived]
5611        impl alloy_sol_types::SolError for SameMagnitude {
5612            type Parameters<'a> = UnderlyingSolTuple<'a>;
5613            type Token<'a> = <Self::Parameters<
5614                'a,
5615            > as alloy_sol_types::SolType>::Token<'a>;
5616            const SIGNATURE: &'static str = "SameMagnitude()";
5617            const SELECTOR: [u8; 4] = [140u8, 12u8, 47u8, 38u8];
5618            #[inline]
5619            fn new<'a>(
5620                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5621            ) -> Self {
5622                tuple.into()
5623            }
5624            #[inline]
5625            fn tokenize(&self) -> Self::Token<'_> {
5626                ()
5627            }
5628            #[inline]
5629            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5630                <Self::Parameters<
5631                    '_,
5632                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5633                    .map(Self::new)
5634            }
5635        }
5636    };
5637    #[derive(serde::Serialize, serde::Deserialize)]
5638    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5639    /**Custom error with signature `StrategiesMustBeInAscendingOrder()` and selector `0x9f1c8053`.
5640```solidity
5641error StrategiesMustBeInAscendingOrder();
5642```*/
5643    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5644    #[derive(Clone)]
5645    pub struct StrategiesMustBeInAscendingOrder;
5646    #[allow(
5647        non_camel_case_types,
5648        non_snake_case,
5649        clippy::pub_underscore_fields,
5650        clippy::style
5651    )]
5652    const _: () = {
5653        use alloy::sol_types as alloy_sol_types;
5654        #[doc(hidden)]
5655        type UnderlyingSolTuple<'a> = ();
5656        #[doc(hidden)]
5657        type UnderlyingRustTuple<'a> = ();
5658        #[cfg(test)]
5659        #[allow(dead_code, unreachable_patterns)]
5660        fn _type_assertion(
5661            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5662        ) {
5663            match _t {
5664                alloy_sol_types::private::AssertTypeEq::<
5665                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5666                >(_) => {}
5667            }
5668        }
5669        #[automatically_derived]
5670        #[doc(hidden)]
5671        impl ::core::convert::From<StrategiesMustBeInAscendingOrder>
5672        for UnderlyingRustTuple<'_> {
5673            fn from(value: StrategiesMustBeInAscendingOrder) -> Self {
5674                ()
5675            }
5676        }
5677        #[automatically_derived]
5678        #[doc(hidden)]
5679        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5680        for StrategiesMustBeInAscendingOrder {
5681            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5682                Self
5683            }
5684        }
5685        #[automatically_derived]
5686        impl alloy_sol_types::SolError for StrategiesMustBeInAscendingOrder {
5687            type Parameters<'a> = UnderlyingSolTuple<'a>;
5688            type Token<'a> = <Self::Parameters<
5689                'a,
5690            > as alloy_sol_types::SolType>::Token<'a>;
5691            const SIGNATURE: &'static str = "StrategiesMustBeInAscendingOrder()";
5692            const SELECTOR: [u8; 4] = [159u8, 28u8, 128u8, 83u8];
5693            #[inline]
5694            fn new<'a>(
5695                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5696            ) -> Self {
5697                tuple.into()
5698            }
5699            #[inline]
5700            fn tokenize(&self) -> Self::Token<'_> {
5701                ()
5702            }
5703            #[inline]
5704            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5705                <Self::Parameters<
5706                    '_,
5707                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5708                    .map(Self::new)
5709            }
5710        }
5711    };
5712    #[derive(serde::Serialize, serde::Deserialize)]
5713    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5714    /**Custom error with signature `StrategyAlreadyInOperatorSet()` and selector `0x585cfb2f`.
5715```solidity
5716error StrategyAlreadyInOperatorSet();
5717```*/
5718    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5719    #[derive(Clone)]
5720    pub struct StrategyAlreadyInOperatorSet;
5721    #[allow(
5722        non_camel_case_types,
5723        non_snake_case,
5724        clippy::pub_underscore_fields,
5725        clippy::style
5726    )]
5727    const _: () = {
5728        use alloy::sol_types as alloy_sol_types;
5729        #[doc(hidden)]
5730        type UnderlyingSolTuple<'a> = ();
5731        #[doc(hidden)]
5732        type UnderlyingRustTuple<'a> = ();
5733        #[cfg(test)]
5734        #[allow(dead_code, unreachable_patterns)]
5735        fn _type_assertion(
5736            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5737        ) {
5738            match _t {
5739                alloy_sol_types::private::AssertTypeEq::<
5740                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5741                >(_) => {}
5742            }
5743        }
5744        #[automatically_derived]
5745        #[doc(hidden)]
5746        impl ::core::convert::From<StrategyAlreadyInOperatorSet>
5747        for UnderlyingRustTuple<'_> {
5748            fn from(value: StrategyAlreadyInOperatorSet) -> Self {
5749                ()
5750            }
5751        }
5752        #[automatically_derived]
5753        #[doc(hidden)]
5754        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5755        for StrategyAlreadyInOperatorSet {
5756            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5757                Self
5758            }
5759        }
5760        #[automatically_derived]
5761        impl alloy_sol_types::SolError for StrategyAlreadyInOperatorSet {
5762            type Parameters<'a> = UnderlyingSolTuple<'a>;
5763            type Token<'a> = <Self::Parameters<
5764                'a,
5765            > as alloy_sol_types::SolType>::Token<'a>;
5766            const SIGNATURE: &'static str = "StrategyAlreadyInOperatorSet()";
5767            const SELECTOR: [u8; 4] = [88u8, 92u8, 251u8, 47u8];
5768            #[inline]
5769            fn new<'a>(
5770                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5771            ) -> Self {
5772                tuple.into()
5773            }
5774            #[inline]
5775            fn tokenize(&self) -> Self::Token<'_> {
5776                ()
5777            }
5778            #[inline]
5779            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5780                <Self::Parameters<
5781                    '_,
5782                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5783                    .map(Self::new)
5784            }
5785        }
5786    };
5787    #[derive(serde::Serialize, serde::Deserialize)]
5788    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5789    /**Custom error with signature `StrategyNotInOperatorSet()` and selector `0x6378684e`.
5790```solidity
5791error StrategyNotInOperatorSet();
5792```*/
5793    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5794    #[derive(Clone)]
5795    pub struct StrategyNotInOperatorSet;
5796    #[allow(
5797        non_camel_case_types,
5798        non_snake_case,
5799        clippy::pub_underscore_fields,
5800        clippy::style
5801    )]
5802    const _: () = {
5803        use alloy::sol_types as alloy_sol_types;
5804        #[doc(hidden)]
5805        type UnderlyingSolTuple<'a> = ();
5806        #[doc(hidden)]
5807        type UnderlyingRustTuple<'a> = ();
5808        #[cfg(test)]
5809        #[allow(dead_code, unreachable_patterns)]
5810        fn _type_assertion(
5811            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5812        ) {
5813            match _t {
5814                alloy_sol_types::private::AssertTypeEq::<
5815                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5816                >(_) => {}
5817            }
5818        }
5819        #[automatically_derived]
5820        #[doc(hidden)]
5821        impl ::core::convert::From<StrategyNotInOperatorSet>
5822        for UnderlyingRustTuple<'_> {
5823            fn from(value: StrategyNotInOperatorSet) -> Self {
5824                ()
5825            }
5826        }
5827        #[automatically_derived]
5828        #[doc(hidden)]
5829        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5830        for StrategyNotInOperatorSet {
5831            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5832                Self
5833            }
5834        }
5835        #[automatically_derived]
5836        impl alloy_sol_types::SolError for StrategyNotInOperatorSet {
5837            type Parameters<'a> = UnderlyingSolTuple<'a>;
5838            type Token<'a> = <Self::Parameters<
5839                'a,
5840            > as alloy_sol_types::SolType>::Token<'a>;
5841            const SIGNATURE: &'static str = "StrategyNotInOperatorSet()";
5842            const SELECTOR: [u8; 4] = [99u8, 120u8, 104u8, 78u8];
5843            #[inline]
5844            fn new<'a>(
5845                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5846            ) -> Self {
5847                tuple.into()
5848            }
5849            #[inline]
5850            fn tokenize(&self) -> Self::Token<'_> {
5851                ()
5852            }
5853            #[inline]
5854            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5855                <Self::Parameters<
5856                    '_,
5857                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5858                    .map(Self::new)
5859            }
5860        }
5861    };
5862    #[derive(serde::Serialize, serde::Deserialize)]
5863    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5864    /**Custom error with signature `StringTooLong(string)` and selector `0x305a27a9`.
5865```solidity
5866error StringTooLong(string str);
5867```*/
5868    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5869    #[derive(Clone)]
5870    pub struct StringTooLong {
5871        #[allow(missing_docs)]
5872        pub str: alloy::sol_types::private::String,
5873    }
5874    #[allow(
5875        non_camel_case_types,
5876        non_snake_case,
5877        clippy::pub_underscore_fields,
5878        clippy::style
5879    )]
5880    const _: () = {
5881        use alloy::sol_types as alloy_sol_types;
5882        #[doc(hidden)]
5883        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
5884        #[doc(hidden)]
5885        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
5886        #[cfg(test)]
5887        #[allow(dead_code, unreachable_patterns)]
5888        fn _type_assertion(
5889            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5890        ) {
5891            match _t {
5892                alloy_sol_types::private::AssertTypeEq::<
5893                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5894                >(_) => {}
5895            }
5896        }
5897        #[automatically_derived]
5898        #[doc(hidden)]
5899        impl ::core::convert::From<StringTooLong> for UnderlyingRustTuple<'_> {
5900            fn from(value: StringTooLong) -> Self {
5901                (value.str,)
5902            }
5903        }
5904        #[automatically_derived]
5905        #[doc(hidden)]
5906        impl ::core::convert::From<UnderlyingRustTuple<'_>> for StringTooLong {
5907            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5908                Self { str: tuple.0 }
5909            }
5910        }
5911        #[automatically_derived]
5912        impl alloy_sol_types::SolError for StringTooLong {
5913            type Parameters<'a> = UnderlyingSolTuple<'a>;
5914            type Token<'a> = <Self::Parameters<
5915                'a,
5916            > as alloy_sol_types::SolType>::Token<'a>;
5917            const SIGNATURE: &'static str = "StringTooLong(string)";
5918            const SELECTOR: [u8; 4] = [48u8, 90u8, 39u8, 169u8];
5919            #[inline]
5920            fn new<'a>(
5921                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5922            ) -> Self {
5923                tuple.into()
5924            }
5925            #[inline]
5926            fn tokenize(&self) -> Self::Token<'_> {
5927                (
5928                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
5929                        &self.str,
5930                    ),
5931                )
5932            }
5933            #[inline]
5934            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
5935                <Self::Parameters<
5936                    '_,
5937                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5938                    .map(Self::new)
5939            }
5940        }
5941    };
5942    #[derive(serde::Serialize, serde::Deserialize)]
5943    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5944    /**Custom error with signature `UninitializedAllocationDelay()` and selector `0xfa55fc81`.
5945```solidity
5946error UninitializedAllocationDelay();
5947```*/
5948    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5949    #[derive(Clone)]
5950    pub struct UninitializedAllocationDelay;
5951    #[allow(
5952        non_camel_case_types,
5953        non_snake_case,
5954        clippy::pub_underscore_fields,
5955        clippy::style
5956    )]
5957    const _: () = {
5958        use alloy::sol_types as alloy_sol_types;
5959        #[doc(hidden)]
5960        type UnderlyingSolTuple<'a> = ();
5961        #[doc(hidden)]
5962        type UnderlyingRustTuple<'a> = ();
5963        #[cfg(test)]
5964        #[allow(dead_code, unreachable_patterns)]
5965        fn _type_assertion(
5966            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5967        ) {
5968            match _t {
5969                alloy_sol_types::private::AssertTypeEq::<
5970                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5971                >(_) => {}
5972            }
5973        }
5974        #[automatically_derived]
5975        #[doc(hidden)]
5976        impl ::core::convert::From<UninitializedAllocationDelay>
5977        for UnderlyingRustTuple<'_> {
5978            fn from(value: UninitializedAllocationDelay) -> Self {
5979                ()
5980            }
5981        }
5982        #[automatically_derived]
5983        #[doc(hidden)]
5984        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5985        for UninitializedAllocationDelay {
5986            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5987                Self
5988            }
5989        }
5990        #[automatically_derived]
5991        impl alloy_sol_types::SolError for UninitializedAllocationDelay {
5992            type Parameters<'a> = UnderlyingSolTuple<'a>;
5993            type Token<'a> = <Self::Parameters<
5994                'a,
5995            > as alloy_sol_types::SolType>::Token<'a>;
5996            const SIGNATURE: &'static str = "UninitializedAllocationDelay()";
5997            const SELECTOR: [u8; 4] = [250u8, 85u8, 252u8, 129u8];
5998            #[inline]
5999            fn new<'a>(
6000                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6001            ) -> Self {
6002                tuple.into()
6003            }
6004            #[inline]
6005            fn tokenize(&self) -> Self::Token<'_> {
6006                ()
6007            }
6008            #[inline]
6009            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
6010                <Self::Parameters<
6011                    '_,
6012                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6013                    .map(Self::new)
6014            }
6015        }
6016    };
6017    #[derive(serde::Serialize, serde::Deserialize)]
6018    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6019    /**Event with signature `AVSMetadataURIUpdated(address,string)` and selector `0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713`.
6020```solidity
6021event AVSMetadataURIUpdated(address indexed avs, string metadataURI);
6022```*/
6023    #[allow(
6024        non_camel_case_types,
6025        non_snake_case,
6026        clippy::pub_underscore_fields,
6027        clippy::style
6028    )]
6029    #[derive(Clone)]
6030    pub struct AVSMetadataURIUpdated {
6031        #[allow(missing_docs)]
6032        pub avs: alloy::sol_types::private::Address,
6033        #[allow(missing_docs)]
6034        pub metadataURI: alloy::sol_types::private::String,
6035    }
6036    #[allow(
6037        non_camel_case_types,
6038        non_snake_case,
6039        clippy::pub_underscore_fields,
6040        clippy::style
6041    )]
6042    const _: () = {
6043        use alloy::sol_types as alloy_sol_types;
6044        #[automatically_derived]
6045        impl alloy_sol_types::SolEvent for AVSMetadataURIUpdated {
6046            type DataTuple<'a> = (alloy::sol_types::sol_data::String,);
6047            type DataToken<'a> = <Self::DataTuple<
6048                'a,
6049            > as alloy_sol_types::SolType>::Token<'a>;
6050            type TopicList = (
6051                alloy_sol_types::sol_data::FixedBytes<32>,
6052                alloy::sol_types::sol_data::Address,
6053            );
6054            const SIGNATURE: &'static str = "AVSMetadataURIUpdated(address,string)";
6055            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6056                168u8, 156u8, 29u8, 194u8, 67u8, 216u8, 144u8, 138u8, 150u8, 221u8,
6057                132u8, 148u8, 75u8, 204u8, 151u8, 214u8, 188u8, 106u8, 192u8, 13u8,
6058                215u8, 142u8, 32u8, 98u8, 21u8, 118u8, 190u8, 106u8, 60u8, 148u8, 55u8,
6059                19u8,
6060            ]);
6061            const ANONYMOUS: bool = false;
6062            #[allow(unused_variables)]
6063            #[inline]
6064            fn new(
6065                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6066                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6067            ) -> Self {
6068                Self {
6069                    avs: topics.1,
6070                    metadataURI: data.0,
6071                }
6072            }
6073            #[inline]
6074            fn check_signature(
6075                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6076            ) -> alloy_sol_types::Result<()> {
6077                if topics.0 != Self::SIGNATURE_HASH {
6078                    return Err(
6079                        alloy_sol_types::Error::invalid_event_signature_hash(
6080                            Self::SIGNATURE,
6081                            topics.0,
6082                            Self::SIGNATURE_HASH,
6083                        ),
6084                    );
6085                }
6086                Ok(())
6087            }
6088            #[inline]
6089            fn tokenize_body(&self) -> Self::DataToken<'_> {
6090                (
6091                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
6092                        &self.metadataURI,
6093                    ),
6094                )
6095            }
6096            #[inline]
6097            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6098                (Self::SIGNATURE_HASH.into(), self.avs.clone())
6099            }
6100            #[inline]
6101            fn encode_topics_raw(
6102                &self,
6103                out: &mut [alloy_sol_types::abi::token::WordToken],
6104            ) -> alloy_sol_types::Result<()> {
6105                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6106                    return Err(alloy_sol_types::Error::Overrun);
6107                }
6108                out[0usize] = alloy_sol_types::abi::token::WordToken(
6109                    Self::SIGNATURE_HASH,
6110                );
6111                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
6112                    &self.avs,
6113                );
6114                Ok(())
6115            }
6116        }
6117        #[automatically_derived]
6118        impl alloy_sol_types::private::IntoLogData for AVSMetadataURIUpdated {
6119            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6120                From::from(self)
6121            }
6122            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6123                From::from(&self)
6124            }
6125        }
6126        #[automatically_derived]
6127        impl From<&AVSMetadataURIUpdated> for alloy_sol_types::private::LogData {
6128            #[inline]
6129            fn from(this: &AVSMetadataURIUpdated) -> alloy_sol_types::private::LogData {
6130                alloy_sol_types::SolEvent::encode_log_data(this)
6131            }
6132        }
6133    };
6134    #[derive(serde::Serialize, serde::Deserialize)]
6135    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6136    /**Event with signature `AVSRegistrarSet(address,address)` and selector `0x2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf85`.
6137```solidity
6138event AVSRegistrarSet(address avs, address registrar);
6139```*/
6140    #[allow(
6141        non_camel_case_types,
6142        non_snake_case,
6143        clippy::pub_underscore_fields,
6144        clippy::style
6145    )]
6146    #[derive(Clone)]
6147    pub struct AVSRegistrarSet {
6148        #[allow(missing_docs)]
6149        pub avs: alloy::sol_types::private::Address,
6150        #[allow(missing_docs)]
6151        pub registrar: alloy::sol_types::private::Address,
6152    }
6153    #[allow(
6154        non_camel_case_types,
6155        non_snake_case,
6156        clippy::pub_underscore_fields,
6157        clippy::style
6158    )]
6159    const _: () = {
6160        use alloy::sol_types as alloy_sol_types;
6161        #[automatically_derived]
6162        impl alloy_sol_types::SolEvent for AVSRegistrarSet {
6163            type DataTuple<'a> = (
6164                alloy::sol_types::sol_data::Address,
6165                alloy::sol_types::sol_data::Address,
6166            );
6167            type DataToken<'a> = <Self::DataTuple<
6168                'a,
6169            > as alloy_sol_types::SolType>::Token<'a>;
6170            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6171            const SIGNATURE: &'static str = "AVSRegistrarSet(address,address)";
6172            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6173                42u8, 233u8, 69u8, 196u8, 12u8, 68u8, 220u8, 14u8, 194u8, 99u8, 249u8,
6174                86u8, 9u8, 195u8, 253u8, 198u8, 149u8, 46u8, 10u8, 239u8, 162u8, 45u8,
6175                99u8, 116u8, 228u8, 79u8, 44u8, 153u8, 122u8, 206u8, 223u8, 133u8,
6176            ]);
6177            const ANONYMOUS: bool = false;
6178            #[allow(unused_variables)]
6179            #[inline]
6180            fn new(
6181                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6182                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6183            ) -> Self {
6184                Self {
6185                    avs: data.0,
6186                    registrar: data.1,
6187                }
6188            }
6189            #[inline]
6190            fn check_signature(
6191                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6192            ) -> alloy_sol_types::Result<()> {
6193                if topics.0 != Self::SIGNATURE_HASH {
6194                    return Err(
6195                        alloy_sol_types::Error::invalid_event_signature_hash(
6196                            Self::SIGNATURE,
6197                            topics.0,
6198                            Self::SIGNATURE_HASH,
6199                        ),
6200                    );
6201                }
6202                Ok(())
6203            }
6204            #[inline]
6205            fn tokenize_body(&self) -> Self::DataToken<'_> {
6206                (
6207                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6208                        &self.avs,
6209                    ),
6210                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6211                        &self.registrar,
6212                    ),
6213                )
6214            }
6215            #[inline]
6216            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6217                (Self::SIGNATURE_HASH.into(),)
6218            }
6219            #[inline]
6220            fn encode_topics_raw(
6221                &self,
6222                out: &mut [alloy_sol_types::abi::token::WordToken],
6223            ) -> alloy_sol_types::Result<()> {
6224                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6225                    return Err(alloy_sol_types::Error::Overrun);
6226                }
6227                out[0usize] = alloy_sol_types::abi::token::WordToken(
6228                    Self::SIGNATURE_HASH,
6229                );
6230                Ok(())
6231            }
6232        }
6233        #[automatically_derived]
6234        impl alloy_sol_types::private::IntoLogData for AVSRegistrarSet {
6235            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6236                From::from(self)
6237            }
6238            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6239                From::from(&self)
6240            }
6241        }
6242        #[automatically_derived]
6243        impl From<&AVSRegistrarSet> for alloy_sol_types::private::LogData {
6244            #[inline]
6245            fn from(this: &AVSRegistrarSet) -> alloy_sol_types::private::LogData {
6246                alloy_sol_types::SolEvent::encode_log_data(this)
6247            }
6248        }
6249    };
6250    #[derive(serde::Serialize, serde::Deserialize)]
6251    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6252    /**Event with signature `AllocationDelaySet(address,uint32,uint32)` and selector `0x4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db`.
6253```solidity
6254event AllocationDelaySet(address operator, uint32 delay, uint32 effectBlock);
6255```*/
6256    #[allow(
6257        non_camel_case_types,
6258        non_snake_case,
6259        clippy::pub_underscore_fields,
6260        clippy::style
6261    )]
6262    #[derive(Clone)]
6263    pub struct AllocationDelaySet {
6264        #[allow(missing_docs)]
6265        pub operator: alloy::sol_types::private::Address,
6266        #[allow(missing_docs)]
6267        pub delay: u32,
6268        #[allow(missing_docs)]
6269        pub effectBlock: u32,
6270    }
6271    #[allow(
6272        non_camel_case_types,
6273        non_snake_case,
6274        clippy::pub_underscore_fields,
6275        clippy::style
6276    )]
6277    const _: () = {
6278        use alloy::sol_types as alloy_sol_types;
6279        #[automatically_derived]
6280        impl alloy_sol_types::SolEvent for AllocationDelaySet {
6281            type DataTuple<'a> = (
6282                alloy::sol_types::sol_data::Address,
6283                alloy::sol_types::sol_data::Uint<32>,
6284                alloy::sol_types::sol_data::Uint<32>,
6285            );
6286            type DataToken<'a> = <Self::DataTuple<
6287                'a,
6288            > as alloy_sol_types::SolType>::Token<'a>;
6289            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6290            const SIGNATURE: &'static str = "AllocationDelaySet(address,uint32,uint32)";
6291            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6292                78u8, 133u8, 117u8, 29u8, 99u8, 49u8, 80u8, 108u8, 108u8, 98u8, 51u8,
6293                95u8, 32u8, 126u8, 179u8, 31u8, 18u8, 166u8, 30u8, 87u8, 15u8, 52u8,
6294                245u8, 193u8, 118u8, 64u8, 48u8, 135u8, 133u8, 198u8, 212u8, 219u8,
6295            ]);
6296            const ANONYMOUS: bool = false;
6297            #[allow(unused_variables)]
6298            #[inline]
6299            fn new(
6300                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6301                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6302            ) -> Self {
6303                Self {
6304                    operator: data.0,
6305                    delay: data.1,
6306                    effectBlock: data.2,
6307                }
6308            }
6309            #[inline]
6310            fn check_signature(
6311                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6312            ) -> alloy_sol_types::Result<()> {
6313                if topics.0 != Self::SIGNATURE_HASH {
6314                    return Err(
6315                        alloy_sol_types::Error::invalid_event_signature_hash(
6316                            Self::SIGNATURE,
6317                            topics.0,
6318                            Self::SIGNATURE_HASH,
6319                        ),
6320                    );
6321                }
6322                Ok(())
6323            }
6324            #[inline]
6325            fn tokenize_body(&self) -> Self::DataToken<'_> {
6326                (
6327                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6328                        &self.operator,
6329                    ),
6330                    <alloy::sol_types::sol_data::Uint<
6331                        32,
6332                    > as alloy_sol_types::SolType>::tokenize(&self.delay),
6333                    <alloy::sol_types::sol_data::Uint<
6334                        32,
6335                    > as alloy_sol_types::SolType>::tokenize(&self.effectBlock),
6336                )
6337            }
6338            #[inline]
6339            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6340                (Self::SIGNATURE_HASH.into(),)
6341            }
6342            #[inline]
6343            fn encode_topics_raw(
6344                &self,
6345                out: &mut [alloy_sol_types::abi::token::WordToken],
6346            ) -> alloy_sol_types::Result<()> {
6347                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6348                    return Err(alloy_sol_types::Error::Overrun);
6349                }
6350                out[0usize] = alloy_sol_types::abi::token::WordToken(
6351                    Self::SIGNATURE_HASH,
6352                );
6353                Ok(())
6354            }
6355        }
6356        #[automatically_derived]
6357        impl alloy_sol_types::private::IntoLogData for AllocationDelaySet {
6358            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6359                From::from(self)
6360            }
6361            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6362                From::from(&self)
6363            }
6364        }
6365        #[automatically_derived]
6366        impl From<&AllocationDelaySet> for alloy_sol_types::private::LogData {
6367            #[inline]
6368            fn from(this: &AllocationDelaySet) -> alloy_sol_types::private::LogData {
6369                alloy_sol_types::SolEvent::encode_log_data(this)
6370            }
6371        }
6372    };
6373    #[derive(serde::Serialize, serde::Deserialize)]
6374    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6375    /**Event with signature `AllocationUpdated(address,(address,uint32),address,uint64,uint32)` and selector `0x1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd`.
6376```solidity
6377event AllocationUpdated(address operator, OperatorSet operatorSet, address strategy, uint64 magnitude, uint32 effectBlock);
6378```*/
6379    #[allow(
6380        non_camel_case_types,
6381        non_snake_case,
6382        clippy::pub_underscore_fields,
6383        clippy::style
6384    )]
6385    #[derive(Clone)]
6386    pub struct AllocationUpdated {
6387        #[allow(missing_docs)]
6388        pub operator: alloy::sol_types::private::Address,
6389        #[allow(missing_docs)]
6390        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
6391        #[allow(missing_docs)]
6392        pub strategy: alloy::sol_types::private::Address,
6393        #[allow(missing_docs)]
6394        pub magnitude: u64,
6395        #[allow(missing_docs)]
6396        pub effectBlock: u32,
6397    }
6398    #[allow(
6399        non_camel_case_types,
6400        non_snake_case,
6401        clippy::pub_underscore_fields,
6402        clippy::style
6403    )]
6404    const _: () = {
6405        use alloy::sol_types as alloy_sol_types;
6406        #[automatically_derived]
6407        impl alloy_sol_types::SolEvent for AllocationUpdated {
6408            type DataTuple<'a> = (
6409                alloy::sol_types::sol_data::Address,
6410                OperatorSet,
6411                alloy::sol_types::sol_data::Address,
6412                alloy::sol_types::sol_data::Uint<64>,
6413                alloy::sol_types::sol_data::Uint<32>,
6414            );
6415            type DataToken<'a> = <Self::DataTuple<
6416                'a,
6417            > as alloy_sol_types::SolType>::Token<'a>;
6418            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6419            const SIGNATURE: &'static str = "AllocationUpdated(address,(address,uint32),address,uint64,uint32)";
6420            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6421                20u8, 135u8, 175u8, 84u8, 24u8, 196u8, 126u8, 229u8, 234u8, 69u8, 239u8,
6422                74u8, 147u8, 57u8, 134u8, 104u8, 18u8, 8u8, 144u8, 119u8, 74u8, 158u8,
6423                19u8, 72u8, 126u8, 97u8, 233u8, 220u8, 59u8, 175u8, 118u8, 221u8,
6424            ]);
6425            const ANONYMOUS: bool = false;
6426            #[allow(unused_variables)]
6427            #[inline]
6428            fn new(
6429                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6430                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6431            ) -> Self {
6432                Self {
6433                    operator: data.0,
6434                    operatorSet: data.1,
6435                    strategy: data.2,
6436                    magnitude: data.3,
6437                    effectBlock: data.4,
6438                }
6439            }
6440            #[inline]
6441            fn check_signature(
6442                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6443            ) -> alloy_sol_types::Result<()> {
6444                if topics.0 != Self::SIGNATURE_HASH {
6445                    return Err(
6446                        alloy_sol_types::Error::invalid_event_signature_hash(
6447                            Self::SIGNATURE,
6448                            topics.0,
6449                            Self::SIGNATURE_HASH,
6450                        ),
6451                    );
6452                }
6453                Ok(())
6454            }
6455            #[inline]
6456            fn tokenize_body(&self) -> Self::DataToken<'_> {
6457                (
6458                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6459                        &self.operator,
6460                    ),
6461                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
6462                        &self.operatorSet,
6463                    ),
6464                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6465                        &self.strategy,
6466                    ),
6467                    <alloy::sol_types::sol_data::Uint<
6468                        64,
6469                    > as alloy_sol_types::SolType>::tokenize(&self.magnitude),
6470                    <alloy::sol_types::sol_data::Uint<
6471                        32,
6472                    > as alloy_sol_types::SolType>::tokenize(&self.effectBlock),
6473                )
6474            }
6475            #[inline]
6476            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6477                (Self::SIGNATURE_HASH.into(),)
6478            }
6479            #[inline]
6480            fn encode_topics_raw(
6481                &self,
6482                out: &mut [alloy_sol_types::abi::token::WordToken],
6483            ) -> alloy_sol_types::Result<()> {
6484                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6485                    return Err(alloy_sol_types::Error::Overrun);
6486                }
6487                out[0usize] = alloy_sol_types::abi::token::WordToken(
6488                    Self::SIGNATURE_HASH,
6489                );
6490                Ok(())
6491            }
6492        }
6493        #[automatically_derived]
6494        impl alloy_sol_types::private::IntoLogData for AllocationUpdated {
6495            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6496                From::from(self)
6497            }
6498            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6499                From::from(&self)
6500            }
6501        }
6502        #[automatically_derived]
6503        impl From<&AllocationUpdated> for alloy_sol_types::private::LogData {
6504            #[inline]
6505            fn from(this: &AllocationUpdated) -> alloy_sol_types::private::LogData {
6506                alloy_sol_types::SolEvent::encode_log_data(this)
6507            }
6508        }
6509    };
6510    #[derive(serde::Serialize, serde::Deserialize)]
6511    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6512    /**Event with signature `EncumberedMagnitudeUpdated(address,address,uint64)` and selector `0xacf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc55`.
6513```solidity
6514event EncumberedMagnitudeUpdated(address operator, address strategy, uint64 encumberedMagnitude);
6515```*/
6516    #[allow(
6517        non_camel_case_types,
6518        non_snake_case,
6519        clippy::pub_underscore_fields,
6520        clippy::style
6521    )]
6522    #[derive(Clone)]
6523    pub struct EncumberedMagnitudeUpdated {
6524        #[allow(missing_docs)]
6525        pub operator: alloy::sol_types::private::Address,
6526        #[allow(missing_docs)]
6527        pub strategy: alloy::sol_types::private::Address,
6528        #[allow(missing_docs)]
6529        pub encumberedMagnitude: u64,
6530    }
6531    #[allow(
6532        non_camel_case_types,
6533        non_snake_case,
6534        clippy::pub_underscore_fields,
6535        clippy::style
6536    )]
6537    const _: () = {
6538        use alloy::sol_types as alloy_sol_types;
6539        #[automatically_derived]
6540        impl alloy_sol_types::SolEvent for EncumberedMagnitudeUpdated {
6541            type DataTuple<'a> = (
6542                alloy::sol_types::sol_data::Address,
6543                alloy::sol_types::sol_data::Address,
6544                alloy::sol_types::sol_data::Uint<64>,
6545            );
6546            type DataToken<'a> = <Self::DataTuple<
6547                'a,
6548            > as alloy_sol_types::SolType>::Token<'a>;
6549            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6550            const SIGNATURE: &'static str = "EncumberedMagnitudeUpdated(address,address,uint64)";
6551            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6552                172u8, 249u8, 9u8, 95u8, 235u8, 58u8, 55u8, 12u8, 156u8, 246u8, 146u8,
6553                66u8, 28u8, 105u8, 239u8, 50u8, 13u8, 77u8, 181u8, 198u8, 110u8, 106u8,
6554                125u8, 41u8, 199u8, 105u8, 78u8, 176u8, 35u8, 100u8, 252u8, 85u8,
6555            ]);
6556            const ANONYMOUS: bool = false;
6557            #[allow(unused_variables)]
6558            #[inline]
6559            fn new(
6560                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6561                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6562            ) -> Self {
6563                Self {
6564                    operator: data.0,
6565                    strategy: data.1,
6566                    encumberedMagnitude: data.2,
6567                }
6568            }
6569            #[inline]
6570            fn check_signature(
6571                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6572            ) -> alloy_sol_types::Result<()> {
6573                if topics.0 != Self::SIGNATURE_HASH {
6574                    return Err(
6575                        alloy_sol_types::Error::invalid_event_signature_hash(
6576                            Self::SIGNATURE,
6577                            topics.0,
6578                            Self::SIGNATURE_HASH,
6579                        ),
6580                    );
6581                }
6582                Ok(())
6583            }
6584            #[inline]
6585            fn tokenize_body(&self) -> Self::DataToken<'_> {
6586                (
6587                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6588                        &self.operator,
6589                    ),
6590                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6591                        &self.strategy,
6592                    ),
6593                    <alloy::sol_types::sol_data::Uint<
6594                        64,
6595                    > as alloy_sol_types::SolType>::tokenize(&self.encumberedMagnitude),
6596                )
6597            }
6598            #[inline]
6599            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6600                (Self::SIGNATURE_HASH.into(),)
6601            }
6602            #[inline]
6603            fn encode_topics_raw(
6604                &self,
6605                out: &mut [alloy_sol_types::abi::token::WordToken],
6606            ) -> alloy_sol_types::Result<()> {
6607                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6608                    return Err(alloy_sol_types::Error::Overrun);
6609                }
6610                out[0usize] = alloy_sol_types::abi::token::WordToken(
6611                    Self::SIGNATURE_HASH,
6612                );
6613                Ok(())
6614            }
6615        }
6616        #[automatically_derived]
6617        impl alloy_sol_types::private::IntoLogData for EncumberedMagnitudeUpdated {
6618            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6619                From::from(self)
6620            }
6621            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6622                From::from(&self)
6623            }
6624        }
6625        #[automatically_derived]
6626        impl From<&EncumberedMagnitudeUpdated> for alloy_sol_types::private::LogData {
6627            #[inline]
6628            fn from(
6629                this: &EncumberedMagnitudeUpdated,
6630            ) -> alloy_sol_types::private::LogData {
6631                alloy_sol_types::SolEvent::encode_log_data(this)
6632            }
6633        }
6634    };
6635    #[derive(serde::Serialize, serde::Deserialize)]
6636    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6637    /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`.
6638```solidity
6639event Initialized(uint8 version);
6640```*/
6641    #[allow(
6642        non_camel_case_types,
6643        non_snake_case,
6644        clippy::pub_underscore_fields,
6645        clippy::style
6646    )]
6647    #[derive(Clone)]
6648    pub struct Initialized {
6649        #[allow(missing_docs)]
6650        pub version: u8,
6651    }
6652    #[allow(
6653        non_camel_case_types,
6654        non_snake_case,
6655        clippy::pub_underscore_fields,
6656        clippy::style
6657    )]
6658    const _: () = {
6659        use alloy::sol_types as alloy_sol_types;
6660        #[automatically_derived]
6661        impl alloy_sol_types::SolEvent for Initialized {
6662            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
6663            type DataToken<'a> = <Self::DataTuple<
6664                'a,
6665            > as alloy_sol_types::SolType>::Token<'a>;
6666            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6667            const SIGNATURE: &'static str = "Initialized(uint8)";
6668            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6669                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
6670                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
6671                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
6672            ]);
6673            const ANONYMOUS: bool = false;
6674            #[allow(unused_variables)]
6675            #[inline]
6676            fn new(
6677                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6678                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6679            ) -> Self {
6680                Self { version: data.0 }
6681            }
6682            #[inline]
6683            fn check_signature(
6684                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6685            ) -> alloy_sol_types::Result<()> {
6686                if topics.0 != Self::SIGNATURE_HASH {
6687                    return Err(
6688                        alloy_sol_types::Error::invalid_event_signature_hash(
6689                            Self::SIGNATURE,
6690                            topics.0,
6691                            Self::SIGNATURE_HASH,
6692                        ),
6693                    );
6694                }
6695                Ok(())
6696            }
6697            #[inline]
6698            fn tokenize_body(&self) -> Self::DataToken<'_> {
6699                (
6700                    <alloy::sol_types::sol_data::Uint<
6701                        8,
6702                    > as alloy_sol_types::SolType>::tokenize(&self.version),
6703                )
6704            }
6705            #[inline]
6706            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6707                (Self::SIGNATURE_HASH.into(),)
6708            }
6709            #[inline]
6710            fn encode_topics_raw(
6711                &self,
6712                out: &mut [alloy_sol_types::abi::token::WordToken],
6713            ) -> alloy_sol_types::Result<()> {
6714                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6715                    return Err(alloy_sol_types::Error::Overrun);
6716                }
6717                out[0usize] = alloy_sol_types::abi::token::WordToken(
6718                    Self::SIGNATURE_HASH,
6719                );
6720                Ok(())
6721            }
6722        }
6723        #[automatically_derived]
6724        impl alloy_sol_types::private::IntoLogData for Initialized {
6725            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6726                From::from(self)
6727            }
6728            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6729                From::from(&self)
6730            }
6731        }
6732        #[automatically_derived]
6733        impl From<&Initialized> for alloy_sol_types::private::LogData {
6734            #[inline]
6735            fn from(this: &Initialized) -> alloy_sol_types::private::LogData {
6736                alloy_sol_types::SolEvent::encode_log_data(this)
6737            }
6738        }
6739    };
6740    #[derive(serde::Serialize, serde::Deserialize)]
6741    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6742    /**Event with signature `MaxMagnitudeUpdated(address,address,uint64)` and selector `0x1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c`.
6743```solidity
6744event MaxMagnitudeUpdated(address operator, address strategy, uint64 maxMagnitude);
6745```*/
6746    #[allow(
6747        non_camel_case_types,
6748        non_snake_case,
6749        clippy::pub_underscore_fields,
6750        clippy::style
6751    )]
6752    #[derive(Clone)]
6753    pub struct MaxMagnitudeUpdated {
6754        #[allow(missing_docs)]
6755        pub operator: alloy::sol_types::private::Address,
6756        #[allow(missing_docs)]
6757        pub strategy: alloy::sol_types::private::Address,
6758        #[allow(missing_docs)]
6759        pub maxMagnitude: u64,
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 MaxMagnitudeUpdated {
6771            type DataTuple<'a> = (
6772                alloy::sol_types::sol_data::Address,
6773                alloy::sol_types::sol_data::Address,
6774                alloy::sol_types::sol_data::Uint<64>,
6775            );
6776            type DataToken<'a> = <Self::DataTuple<
6777                'a,
6778            > as alloy_sol_types::SolType>::Token<'a>;
6779            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6780            const SIGNATURE: &'static str = "MaxMagnitudeUpdated(address,address,uint64)";
6781            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6782                28u8, 100u8, 88u8, 7u8, 154u8, 65u8, 7u8, 125u8, 0u8, 60u8, 17u8, 250u8,
6783                249u8, 191u8, 9u8, 126u8, 105u8, 59u8, 214u8, 121u8, 121u8, 228u8, 230u8,
6784                80u8, 11u8, 172u8, 123u8, 41u8, 219u8, 119u8, 155u8, 92u8,
6785            ]);
6786            const ANONYMOUS: bool = false;
6787            #[allow(unused_variables)]
6788            #[inline]
6789            fn new(
6790                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6791                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6792            ) -> Self {
6793                Self {
6794                    operator: data.0,
6795                    strategy: data.1,
6796                    maxMagnitude: data.2,
6797                }
6798            }
6799            #[inline]
6800            fn check_signature(
6801                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6802            ) -> alloy_sol_types::Result<()> {
6803                if topics.0 != Self::SIGNATURE_HASH {
6804                    return Err(
6805                        alloy_sol_types::Error::invalid_event_signature_hash(
6806                            Self::SIGNATURE,
6807                            topics.0,
6808                            Self::SIGNATURE_HASH,
6809                        ),
6810                    );
6811                }
6812                Ok(())
6813            }
6814            #[inline]
6815            fn tokenize_body(&self) -> Self::DataToken<'_> {
6816                (
6817                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6818                        &self.operator,
6819                    ),
6820                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6821                        &self.strategy,
6822                    ),
6823                    <alloy::sol_types::sol_data::Uint<
6824                        64,
6825                    > as alloy_sol_types::SolType>::tokenize(&self.maxMagnitude),
6826                )
6827            }
6828            #[inline]
6829            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6830                (Self::SIGNATURE_HASH.into(),)
6831            }
6832            #[inline]
6833            fn encode_topics_raw(
6834                &self,
6835                out: &mut [alloy_sol_types::abi::token::WordToken],
6836            ) -> alloy_sol_types::Result<()> {
6837                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6838                    return Err(alloy_sol_types::Error::Overrun);
6839                }
6840                out[0usize] = alloy_sol_types::abi::token::WordToken(
6841                    Self::SIGNATURE_HASH,
6842                );
6843                Ok(())
6844            }
6845        }
6846        #[automatically_derived]
6847        impl alloy_sol_types::private::IntoLogData for MaxMagnitudeUpdated {
6848            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6849                From::from(self)
6850            }
6851            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6852                From::from(&self)
6853            }
6854        }
6855        #[automatically_derived]
6856        impl From<&MaxMagnitudeUpdated> for alloy_sol_types::private::LogData {
6857            #[inline]
6858            fn from(this: &MaxMagnitudeUpdated) -> alloy_sol_types::private::LogData {
6859                alloy_sol_types::SolEvent::encode_log_data(this)
6860            }
6861        }
6862    };
6863    #[derive(serde::Serialize, serde::Deserialize)]
6864    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6865    /**Event with signature `OperatorAddedToOperatorSet(address,(address,uint32))` and selector `0x43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e`.
6866```solidity
6867event OperatorAddedToOperatorSet(address indexed operator, OperatorSet operatorSet);
6868```*/
6869    #[allow(
6870        non_camel_case_types,
6871        non_snake_case,
6872        clippy::pub_underscore_fields,
6873        clippy::style
6874    )]
6875    #[derive(Clone)]
6876    pub struct OperatorAddedToOperatorSet {
6877        #[allow(missing_docs)]
6878        pub operator: alloy::sol_types::private::Address,
6879        #[allow(missing_docs)]
6880        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
6881    }
6882    #[allow(
6883        non_camel_case_types,
6884        non_snake_case,
6885        clippy::pub_underscore_fields,
6886        clippy::style
6887    )]
6888    const _: () = {
6889        use alloy::sol_types as alloy_sol_types;
6890        #[automatically_derived]
6891        impl alloy_sol_types::SolEvent for OperatorAddedToOperatorSet {
6892            type DataTuple<'a> = (OperatorSet,);
6893            type DataToken<'a> = <Self::DataTuple<
6894                'a,
6895            > as alloy_sol_types::SolType>::Token<'a>;
6896            type TopicList = (
6897                alloy_sol_types::sol_data::FixedBytes<32>,
6898                alloy::sol_types::sol_data::Address,
6899            );
6900            const SIGNATURE: &'static str = "OperatorAddedToOperatorSet(address,(address,uint32))";
6901            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6902                67u8, 35u8, 46u8, 223u8, 144u8, 113u8, 117u8, 61u8, 35u8, 33u8, 229u8,
6903                250u8, 126u8, 1u8, 131u8, 99u8, 238u8, 36u8, 142u8, 95u8, 33u8, 66u8,
6904                230u8, 192u8, 142u8, 221u8, 50u8, 101u8, 191u8, 180u8, 137u8, 94u8,
6905            ]);
6906            const ANONYMOUS: bool = false;
6907            #[allow(unused_variables)]
6908            #[inline]
6909            fn new(
6910                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6911                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6912            ) -> Self {
6913                Self {
6914                    operator: topics.1,
6915                    operatorSet: data.0,
6916                }
6917            }
6918            #[inline]
6919            fn check_signature(
6920                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6921            ) -> alloy_sol_types::Result<()> {
6922                if topics.0 != Self::SIGNATURE_HASH {
6923                    return Err(
6924                        alloy_sol_types::Error::invalid_event_signature_hash(
6925                            Self::SIGNATURE,
6926                            topics.0,
6927                            Self::SIGNATURE_HASH,
6928                        ),
6929                    );
6930                }
6931                Ok(())
6932            }
6933            #[inline]
6934            fn tokenize_body(&self) -> Self::DataToken<'_> {
6935                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
6936            }
6937            #[inline]
6938            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6939                (Self::SIGNATURE_HASH.into(), self.operator.clone())
6940            }
6941            #[inline]
6942            fn encode_topics_raw(
6943                &self,
6944                out: &mut [alloy_sol_types::abi::token::WordToken],
6945            ) -> alloy_sol_types::Result<()> {
6946                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6947                    return Err(alloy_sol_types::Error::Overrun);
6948                }
6949                out[0usize] = alloy_sol_types::abi::token::WordToken(
6950                    Self::SIGNATURE_HASH,
6951                );
6952                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
6953                    &self.operator,
6954                );
6955                Ok(())
6956            }
6957        }
6958        #[automatically_derived]
6959        impl alloy_sol_types::private::IntoLogData for OperatorAddedToOperatorSet {
6960            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6961                From::from(self)
6962            }
6963            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6964                From::from(&self)
6965            }
6966        }
6967        #[automatically_derived]
6968        impl From<&OperatorAddedToOperatorSet> for alloy_sol_types::private::LogData {
6969            #[inline]
6970            fn from(
6971                this: &OperatorAddedToOperatorSet,
6972            ) -> alloy_sol_types::private::LogData {
6973                alloy_sol_types::SolEvent::encode_log_data(this)
6974            }
6975        }
6976    };
6977    #[derive(serde::Serialize, serde::Deserialize)]
6978    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6979    /**Event with signature `OperatorRemovedFromOperatorSet(address,(address,uint32))` and selector `0xad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe`.
6980```solidity
6981event OperatorRemovedFromOperatorSet(address indexed operator, OperatorSet operatorSet);
6982```*/
6983    #[allow(
6984        non_camel_case_types,
6985        non_snake_case,
6986        clippy::pub_underscore_fields,
6987        clippy::style
6988    )]
6989    #[derive(Clone)]
6990    pub struct OperatorRemovedFromOperatorSet {
6991        #[allow(missing_docs)]
6992        pub operator: alloy::sol_types::private::Address,
6993        #[allow(missing_docs)]
6994        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
6995    }
6996    #[allow(
6997        non_camel_case_types,
6998        non_snake_case,
6999        clippy::pub_underscore_fields,
7000        clippy::style
7001    )]
7002    const _: () = {
7003        use alloy::sol_types as alloy_sol_types;
7004        #[automatically_derived]
7005        impl alloy_sol_types::SolEvent for OperatorRemovedFromOperatorSet {
7006            type DataTuple<'a> = (OperatorSet,);
7007            type DataToken<'a> = <Self::DataTuple<
7008                'a,
7009            > as alloy_sol_types::SolType>::Token<'a>;
7010            type TopicList = (
7011                alloy_sol_types::sol_data::FixedBytes<32>,
7012                alloy::sol_types::sol_data::Address,
7013            );
7014            const SIGNATURE: &'static str = "OperatorRemovedFromOperatorSet(address,(address,uint32))";
7015            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7016                173u8, 52u8, 195u8, 7u8, 11u8, 225u8, 223u8, 251u8, 202u8, 164u8, 153u8,
7017                208u8, 0u8, 186u8, 43u8, 141u8, 152u8, 72u8, 174u8, 252u8, 172u8, 48u8,
7018                89u8, 223u8, 36u8, 93u8, 217u8, 92u8, 78u8, 206u8, 20u8, 254u8,
7019            ]);
7020            const ANONYMOUS: bool = false;
7021            #[allow(unused_variables)]
7022            #[inline]
7023            fn new(
7024                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7025                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7026            ) -> Self {
7027                Self {
7028                    operator: topics.1,
7029                    operatorSet: data.0,
7030                }
7031            }
7032            #[inline]
7033            fn check_signature(
7034                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7035            ) -> alloy_sol_types::Result<()> {
7036                if topics.0 != Self::SIGNATURE_HASH {
7037                    return Err(
7038                        alloy_sol_types::Error::invalid_event_signature_hash(
7039                            Self::SIGNATURE,
7040                            topics.0,
7041                            Self::SIGNATURE_HASH,
7042                        ),
7043                    );
7044                }
7045                Ok(())
7046            }
7047            #[inline]
7048            fn tokenize_body(&self) -> Self::DataToken<'_> {
7049                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
7050            }
7051            #[inline]
7052            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7053                (Self::SIGNATURE_HASH.into(), self.operator.clone())
7054            }
7055            #[inline]
7056            fn encode_topics_raw(
7057                &self,
7058                out: &mut [alloy_sol_types::abi::token::WordToken],
7059            ) -> alloy_sol_types::Result<()> {
7060                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7061                    return Err(alloy_sol_types::Error::Overrun);
7062                }
7063                out[0usize] = alloy_sol_types::abi::token::WordToken(
7064                    Self::SIGNATURE_HASH,
7065                );
7066                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7067                    &self.operator,
7068                );
7069                Ok(())
7070            }
7071        }
7072        #[automatically_derived]
7073        impl alloy_sol_types::private::IntoLogData for OperatorRemovedFromOperatorSet {
7074            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7075                From::from(self)
7076            }
7077            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7078                From::from(&self)
7079            }
7080        }
7081        #[automatically_derived]
7082        impl From<&OperatorRemovedFromOperatorSet>
7083        for alloy_sol_types::private::LogData {
7084            #[inline]
7085            fn from(
7086                this: &OperatorRemovedFromOperatorSet,
7087            ) -> alloy_sol_types::private::LogData {
7088                alloy_sol_types::SolEvent::encode_log_data(this)
7089            }
7090        }
7091    };
7092    #[derive(serde::Serialize, serde::Deserialize)]
7093    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7094    /**Event with signature `OperatorSetCreated((address,uint32))` and selector `0x31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c`.
7095```solidity
7096event OperatorSetCreated(OperatorSet operatorSet);
7097```*/
7098    #[allow(
7099        non_camel_case_types,
7100        non_snake_case,
7101        clippy::pub_underscore_fields,
7102        clippy::style
7103    )]
7104    #[derive(Clone)]
7105    pub struct OperatorSetCreated {
7106        #[allow(missing_docs)]
7107        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
7108    }
7109    #[allow(
7110        non_camel_case_types,
7111        non_snake_case,
7112        clippy::pub_underscore_fields,
7113        clippy::style
7114    )]
7115    const _: () = {
7116        use alloy::sol_types as alloy_sol_types;
7117        #[automatically_derived]
7118        impl alloy_sol_types::SolEvent for OperatorSetCreated {
7119            type DataTuple<'a> = (OperatorSet,);
7120            type DataToken<'a> = <Self::DataTuple<
7121                'a,
7122            > as alloy_sol_types::SolType>::Token<'a>;
7123            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
7124            const SIGNATURE: &'static str = "OperatorSetCreated((address,uint32))";
7125            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7126                49u8, 98u8, 146u8, 133u8, 234u8, 210u8, 51u8, 90u8, 224u8, 147u8, 63u8,
7127                134u8, 237u8, 42u8, 230u8, 51u8, 33u8, 247u8, 175u8, 119u8, 180u8, 230u8,
7128                234u8, 171u8, 196u8, 44u8, 5u8, 120u8, 128u8, 151u8, 126u8, 108u8,
7129            ]);
7130            const ANONYMOUS: bool = false;
7131            #[allow(unused_variables)]
7132            #[inline]
7133            fn new(
7134                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7135                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7136            ) -> Self {
7137                Self { operatorSet: data.0 }
7138            }
7139            #[inline]
7140            fn check_signature(
7141                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7142            ) -> alloy_sol_types::Result<()> {
7143                if topics.0 != Self::SIGNATURE_HASH {
7144                    return Err(
7145                        alloy_sol_types::Error::invalid_event_signature_hash(
7146                            Self::SIGNATURE,
7147                            topics.0,
7148                            Self::SIGNATURE_HASH,
7149                        ),
7150                    );
7151                }
7152                Ok(())
7153            }
7154            #[inline]
7155            fn tokenize_body(&self) -> Self::DataToken<'_> {
7156                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
7157            }
7158            #[inline]
7159            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7160                (Self::SIGNATURE_HASH.into(),)
7161            }
7162            #[inline]
7163            fn encode_topics_raw(
7164                &self,
7165                out: &mut [alloy_sol_types::abi::token::WordToken],
7166            ) -> alloy_sol_types::Result<()> {
7167                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7168                    return Err(alloy_sol_types::Error::Overrun);
7169                }
7170                out[0usize] = alloy_sol_types::abi::token::WordToken(
7171                    Self::SIGNATURE_HASH,
7172                );
7173                Ok(())
7174            }
7175        }
7176        #[automatically_derived]
7177        impl alloy_sol_types::private::IntoLogData for OperatorSetCreated {
7178            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7179                From::from(self)
7180            }
7181            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7182                From::from(&self)
7183            }
7184        }
7185        #[automatically_derived]
7186        impl From<&OperatorSetCreated> for alloy_sol_types::private::LogData {
7187            #[inline]
7188            fn from(this: &OperatorSetCreated) -> alloy_sol_types::private::LogData {
7189                alloy_sol_types::SolEvent::encode_log_data(this)
7190            }
7191        }
7192    };
7193    #[derive(serde::Serialize, serde::Deserialize)]
7194    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7195    /**Event with signature `OperatorSlashed(address,(address,uint32),address[],uint256[],string)` and selector `0x80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe5`.
7196```solidity
7197event OperatorSlashed(address operator, OperatorSet operatorSet, address[] strategies, uint256[] wadSlashed, string description);
7198```*/
7199    #[allow(
7200        non_camel_case_types,
7201        non_snake_case,
7202        clippy::pub_underscore_fields,
7203        clippy::style
7204    )]
7205    #[derive(Clone)]
7206    pub struct OperatorSlashed {
7207        #[allow(missing_docs)]
7208        pub operator: alloy::sol_types::private::Address,
7209        #[allow(missing_docs)]
7210        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
7211        #[allow(missing_docs)]
7212        pub strategies: alloy::sol_types::private::Vec<
7213            alloy::sol_types::private::Address,
7214        >,
7215        #[allow(missing_docs)]
7216        pub wadSlashed: alloy::sol_types::private::Vec<
7217            alloy::sol_types::private::primitives::aliases::U256,
7218        >,
7219        #[allow(missing_docs)]
7220        pub description: alloy::sol_types::private::String,
7221    }
7222    #[allow(
7223        non_camel_case_types,
7224        non_snake_case,
7225        clippy::pub_underscore_fields,
7226        clippy::style
7227    )]
7228    const _: () = {
7229        use alloy::sol_types as alloy_sol_types;
7230        #[automatically_derived]
7231        impl alloy_sol_types::SolEvent for OperatorSlashed {
7232            type DataTuple<'a> = (
7233                alloy::sol_types::sol_data::Address,
7234                OperatorSet,
7235                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
7236                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
7237                alloy::sol_types::sol_data::String,
7238            );
7239            type DataToken<'a> = <Self::DataTuple<
7240                'a,
7241            > as alloy_sol_types::SolType>::Token<'a>;
7242            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
7243            const SIGNATURE: &'static str = "OperatorSlashed(address,(address,uint32),address[],uint256[],string)";
7244            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7245                128u8, 150u8, 154u8, 210u8, 148u8, 40u8, 214u8, 121u8, 126u8, 231u8,
7246                170u8, 208u8, 132u8, 249u8, 228u8, 164u8, 42u8, 130u8, 252u8, 80u8,
7247                109u8, 205u8, 44u8, 163u8, 182u8, 251u8, 67u8, 31u8, 133u8, 204u8, 235u8,
7248                229u8,
7249            ]);
7250            const ANONYMOUS: bool = false;
7251            #[allow(unused_variables)]
7252            #[inline]
7253            fn new(
7254                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7255                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7256            ) -> Self {
7257                Self {
7258                    operator: data.0,
7259                    operatorSet: data.1,
7260                    strategies: data.2,
7261                    wadSlashed: data.3,
7262                    description: data.4,
7263                }
7264            }
7265            #[inline]
7266            fn check_signature(
7267                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7268            ) -> alloy_sol_types::Result<()> {
7269                if topics.0 != Self::SIGNATURE_HASH {
7270                    return Err(
7271                        alloy_sol_types::Error::invalid_event_signature_hash(
7272                            Self::SIGNATURE,
7273                            topics.0,
7274                            Self::SIGNATURE_HASH,
7275                        ),
7276                    );
7277                }
7278                Ok(())
7279            }
7280            #[inline]
7281            fn tokenize_body(&self) -> Self::DataToken<'_> {
7282                (
7283                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7284                        &self.operator,
7285                    ),
7286                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
7287                        &self.operatorSet,
7288                    ),
7289                    <alloy::sol_types::sol_data::Array<
7290                        alloy::sol_types::sol_data::Address,
7291                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
7292                    <alloy::sol_types::sol_data::Array<
7293                        alloy::sol_types::sol_data::Uint<256>,
7294                    > as alloy_sol_types::SolType>::tokenize(&self.wadSlashed),
7295                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
7296                        &self.description,
7297                    ),
7298                )
7299            }
7300            #[inline]
7301            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7302                (Self::SIGNATURE_HASH.into(),)
7303            }
7304            #[inline]
7305            fn encode_topics_raw(
7306                &self,
7307                out: &mut [alloy_sol_types::abi::token::WordToken],
7308            ) -> alloy_sol_types::Result<()> {
7309                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7310                    return Err(alloy_sol_types::Error::Overrun);
7311                }
7312                out[0usize] = alloy_sol_types::abi::token::WordToken(
7313                    Self::SIGNATURE_HASH,
7314                );
7315                Ok(())
7316            }
7317        }
7318        #[automatically_derived]
7319        impl alloy_sol_types::private::IntoLogData for OperatorSlashed {
7320            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7321                From::from(self)
7322            }
7323            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7324                From::from(&self)
7325            }
7326        }
7327        #[automatically_derived]
7328        impl From<&OperatorSlashed> for alloy_sol_types::private::LogData {
7329            #[inline]
7330            fn from(this: &OperatorSlashed) -> alloy_sol_types::private::LogData {
7331                alloy_sol_types::SolEvent::encode_log_data(this)
7332            }
7333        }
7334    };
7335    #[derive(serde::Serialize, serde::Deserialize)]
7336    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7337    /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
7338```solidity
7339event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
7340```*/
7341    #[allow(
7342        non_camel_case_types,
7343        non_snake_case,
7344        clippy::pub_underscore_fields,
7345        clippy::style
7346    )]
7347    #[derive(Clone)]
7348    pub struct OwnershipTransferred {
7349        #[allow(missing_docs)]
7350        pub previousOwner: alloy::sol_types::private::Address,
7351        #[allow(missing_docs)]
7352        pub newOwner: alloy::sol_types::private::Address,
7353    }
7354    #[allow(
7355        non_camel_case_types,
7356        non_snake_case,
7357        clippy::pub_underscore_fields,
7358        clippy::style
7359    )]
7360    const _: () = {
7361        use alloy::sol_types as alloy_sol_types;
7362        #[automatically_derived]
7363        impl alloy_sol_types::SolEvent for OwnershipTransferred {
7364            type DataTuple<'a> = ();
7365            type DataToken<'a> = <Self::DataTuple<
7366                'a,
7367            > as alloy_sol_types::SolType>::Token<'a>;
7368            type TopicList = (
7369                alloy_sol_types::sol_data::FixedBytes<32>,
7370                alloy::sol_types::sol_data::Address,
7371                alloy::sol_types::sol_data::Address,
7372            );
7373            const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
7374            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7375                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
7376                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
7377                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
7378            ]);
7379            const ANONYMOUS: bool = false;
7380            #[allow(unused_variables)]
7381            #[inline]
7382            fn new(
7383                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7384                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7385            ) -> Self {
7386                Self {
7387                    previousOwner: topics.1,
7388                    newOwner: topics.2,
7389                }
7390            }
7391            #[inline]
7392            fn check_signature(
7393                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7394            ) -> alloy_sol_types::Result<()> {
7395                if topics.0 != Self::SIGNATURE_HASH {
7396                    return Err(
7397                        alloy_sol_types::Error::invalid_event_signature_hash(
7398                            Self::SIGNATURE,
7399                            topics.0,
7400                            Self::SIGNATURE_HASH,
7401                        ),
7402                    );
7403                }
7404                Ok(())
7405            }
7406            #[inline]
7407            fn tokenize_body(&self) -> Self::DataToken<'_> {
7408                ()
7409            }
7410            #[inline]
7411            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7412                (
7413                    Self::SIGNATURE_HASH.into(),
7414                    self.previousOwner.clone(),
7415                    self.newOwner.clone(),
7416                )
7417            }
7418            #[inline]
7419            fn encode_topics_raw(
7420                &self,
7421                out: &mut [alloy_sol_types::abi::token::WordToken],
7422            ) -> alloy_sol_types::Result<()> {
7423                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7424                    return Err(alloy_sol_types::Error::Overrun);
7425                }
7426                out[0usize] = alloy_sol_types::abi::token::WordToken(
7427                    Self::SIGNATURE_HASH,
7428                );
7429                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7430                    &self.previousOwner,
7431                );
7432                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7433                    &self.newOwner,
7434                );
7435                Ok(())
7436            }
7437        }
7438        #[automatically_derived]
7439        impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
7440            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7441                From::from(self)
7442            }
7443            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7444                From::from(&self)
7445            }
7446        }
7447        #[automatically_derived]
7448        impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
7449            #[inline]
7450            fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
7451                alloy_sol_types::SolEvent::encode_log_data(this)
7452            }
7453        }
7454    };
7455    #[derive(serde::Serialize, serde::Deserialize)]
7456    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7457    /**Event with signature `Paused(address,uint256)` and selector `0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d`.
7458```solidity
7459event Paused(address indexed account, uint256 newPausedStatus);
7460```*/
7461    #[allow(
7462        non_camel_case_types,
7463        non_snake_case,
7464        clippy::pub_underscore_fields,
7465        clippy::style
7466    )]
7467    #[derive(Clone)]
7468    pub struct Paused {
7469        #[allow(missing_docs)]
7470        pub account: alloy::sol_types::private::Address,
7471        #[allow(missing_docs)]
7472        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
7473    }
7474    #[allow(
7475        non_camel_case_types,
7476        non_snake_case,
7477        clippy::pub_underscore_fields,
7478        clippy::style
7479    )]
7480    const _: () = {
7481        use alloy::sol_types as alloy_sol_types;
7482        #[automatically_derived]
7483        impl alloy_sol_types::SolEvent for Paused {
7484            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7485            type DataToken<'a> = <Self::DataTuple<
7486                'a,
7487            > as alloy_sol_types::SolType>::Token<'a>;
7488            type TopicList = (
7489                alloy_sol_types::sol_data::FixedBytes<32>,
7490                alloy::sol_types::sol_data::Address,
7491            );
7492            const SIGNATURE: &'static str = "Paused(address,uint256)";
7493            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7494                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
7495                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
7496                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
7497            ]);
7498            const ANONYMOUS: bool = false;
7499            #[allow(unused_variables)]
7500            #[inline]
7501            fn new(
7502                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7503                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7504            ) -> Self {
7505                Self {
7506                    account: topics.1,
7507                    newPausedStatus: data.0,
7508                }
7509            }
7510            #[inline]
7511            fn check_signature(
7512                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7513            ) -> alloy_sol_types::Result<()> {
7514                if topics.0 != Self::SIGNATURE_HASH {
7515                    return Err(
7516                        alloy_sol_types::Error::invalid_event_signature_hash(
7517                            Self::SIGNATURE,
7518                            topics.0,
7519                            Self::SIGNATURE_HASH,
7520                        ),
7521                    );
7522                }
7523                Ok(())
7524            }
7525            #[inline]
7526            fn tokenize_body(&self) -> Self::DataToken<'_> {
7527                (
7528                    <alloy::sol_types::sol_data::Uint<
7529                        256,
7530                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
7531                )
7532            }
7533            #[inline]
7534            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7535                (Self::SIGNATURE_HASH.into(), self.account.clone())
7536            }
7537            #[inline]
7538            fn encode_topics_raw(
7539                &self,
7540                out: &mut [alloy_sol_types::abi::token::WordToken],
7541            ) -> alloy_sol_types::Result<()> {
7542                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7543                    return Err(alloy_sol_types::Error::Overrun);
7544                }
7545                out[0usize] = alloy_sol_types::abi::token::WordToken(
7546                    Self::SIGNATURE_HASH,
7547                );
7548                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7549                    &self.account,
7550                );
7551                Ok(())
7552            }
7553        }
7554        #[automatically_derived]
7555        impl alloy_sol_types::private::IntoLogData for Paused {
7556            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7557                From::from(self)
7558            }
7559            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7560                From::from(&self)
7561            }
7562        }
7563        #[automatically_derived]
7564        impl From<&Paused> for alloy_sol_types::private::LogData {
7565            #[inline]
7566            fn from(this: &Paused) -> alloy_sol_types::private::LogData {
7567                alloy_sol_types::SolEvent::encode_log_data(this)
7568            }
7569        }
7570    };
7571    #[derive(serde::Serialize, serde::Deserialize)]
7572    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7573    /**Event with signature `StrategyAddedToOperatorSet((address,uint32),address)` and selector `0x7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b`.
7574```solidity
7575event StrategyAddedToOperatorSet(OperatorSet operatorSet, address strategy);
7576```*/
7577    #[allow(
7578        non_camel_case_types,
7579        non_snake_case,
7580        clippy::pub_underscore_fields,
7581        clippy::style
7582    )]
7583    #[derive(Clone)]
7584    pub struct StrategyAddedToOperatorSet {
7585        #[allow(missing_docs)]
7586        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
7587        #[allow(missing_docs)]
7588        pub strategy: alloy::sol_types::private::Address,
7589    }
7590    #[allow(
7591        non_camel_case_types,
7592        non_snake_case,
7593        clippy::pub_underscore_fields,
7594        clippy::style
7595    )]
7596    const _: () = {
7597        use alloy::sol_types as alloy_sol_types;
7598        #[automatically_derived]
7599        impl alloy_sol_types::SolEvent for StrategyAddedToOperatorSet {
7600            type DataTuple<'a> = (OperatorSet, alloy::sol_types::sol_data::Address);
7601            type DataToken<'a> = <Self::DataTuple<
7602                'a,
7603            > as alloy_sol_types::SolType>::Token<'a>;
7604            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
7605            const SIGNATURE: &'static str = "StrategyAddedToOperatorSet((address,uint32),address)";
7606            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7607                122u8, 178u8, 96u8, 254u8, 10u8, 241u8, 147u8, 219u8, 95u8, 73u8, 134u8,
7608                119u8, 13u8, 131u8, 27u8, 218u8, 78u8, 164u8, 96u8, 153u8, 220u8, 129u8,
7609                126u8, 139u8, 103u8, 22u8, 220u8, 174u8, 138u8, 248u8, 232u8, 139u8,
7610            ]);
7611            const ANONYMOUS: bool = false;
7612            #[allow(unused_variables)]
7613            #[inline]
7614            fn new(
7615                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7616                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7617            ) -> Self {
7618                Self {
7619                    operatorSet: data.0,
7620                    strategy: data.1,
7621                }
7622            }
7623            #[inline]
7624            fn check_signature(
7625                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7626            ) -> alloy_sol_types::Result<()> {
7627                if topics.0 != Self::SIGNATURE_HASH {
7628                    return Err(
7629                        alloy_sol_types::Error::invalid_event_signature_hash(
7630                            Self::SIGNATURE,
7631                            topics.0,
7632                            Self::SIGNATURE_HASH,
7633                        ),
7634                    );
7635                }
7636                Ok(())
7637            }
7638            #[inline]
7639            fn tokenize_body(&self) -> Self::DataToken<'_> {
7640                (
7641                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
7642                        &self.operatorSet,
7643                    ),
7644                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7645                        &self.strategy,
7646                    ),
7647                )
7648            }
7649            #[inline]
7650            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7651                (Self::SIGNATURE_HASH.into(),)
7652            }
7653            #[inline]
7654            fn encode_topics_raw(
7655                &self,
7656                out: &mut [alloy_sol_types::abi::token::WordToken],
7657            ) -> alloy_sol_types::Result<()> {
7658                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7659                    return Err(alloy_sol_types::Error::Overrun);
7660                }
7661                out[0usize] = alloy_sol_types::abi::token::WordToken(
7662                    Self::SIGNATURE_HASH,
7663                );
7664                Ok(())
7665            }
7666        }
7667        #[automatically_derived]
7668        impl alloy_sol_types::private::IntoLogData for StrategyAddedToOperatorSet {
7669            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7670                From::from(self)
7671            }
7672            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7673                From::from(&self)
7674            }
7675        }
7676        #[automatically_derived]
7677        impl From<&StrategyAddedToOperatorSet> for alloy_sol_types::private::LogData {
7678            #[inline]
7679            fn from(
7680                this: &StrategyAddedToOperatorSet,
7681            ) -> alloy_sol_types::private::LogData {
7682                alloy_sol_types::SolEvent::encode_log_data(this)
7683            }
7684        }
7685    };
7686    #[derive(serde::Serialize, serde::Deserialize)]
7687    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7688    /**Event with signature `StrategyRemovedFromOperatorSet((address,uint32),address)` and selector `0x7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee`.
7689```solidity
7690event StrategyRemovedFromOperatorSet(OperatorSet operatorSet, address strategy);
7691```*/
7692    #[allow(
7693        non_camel_case_types,
7694        non_snake_case,
7695        clippy::pub_underscore_fields,
7696        clippy::style
7697    )]
7698    #[derive(Clone)]
7699    pub struct StrategyRemovedFromOperatorSet {
7700        #[allow(missing_docs)]
7701        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
7702        #[allow(missing_docs)]
7703        pub strategy: alloy::sol_types::private::Address,
7704    }
7705    #[allow(
7706        non_camel_case_types,
7707        non_snake_case,
7708        clippy::pub_underscore_fields,
7709        clippy::style
7710    )]
7711    const _: () = {
7712        use alloy::sol_types as alloy_sol_types;
7713        #[automatically_derived]
7714        impl alloy_sol_types::SolEvent for StrategyRemovedFromOperatorSet {
7715            type DataTuple<'a> = (OperatorSet, alloy::sol_types::sol_data::Address);
7716            type DataToken<'a> = <Self::DataTuple<
7717                'a,
7718            > as alloy_sol_types::SolType>::Token<'a>;
7719            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
7720            const SIGNATURE: &'static str = "StrategyRemovedFromOperatorSet((address,uint32),address)";
7721            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7722                123u8, 75u8, 7u8, 61u8, 128u8, 220u8, 172u8, 85u8, 161u8, 17u8, 119u8,
7723                216u8, 69u8, 154u8, 217u8, 246u8, 100u8, 206u8, 235u8, 145u8, 247u8,
7724                31u8, 39u8, 22u8, 123u8, 177u8, 79u8, 129u8, 82u8, 167u8, 238u8, 238u8,
7725            ]);
7726            const ANONYMOUS: bool = false;
7727            #[allow(unused_variables)]
7728            #[inline]
7729            fn new(
7730                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7731                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7732            ) -> Self {
7733                Self {
7734                    operatorSet: data.0,
7735                    strategy: data.1,
7736                }
7737            }
7738            #[inline]
7739            fn check_signature(
7740                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7741            ) -> alloy_sol_types::Result<()> {
7742                if topics.0 != Self::SIGNATURE_HASH {
7743                    return Err(
7744                        alloy_sol_types::Error::invalid_event_signature_hash(
7745                            Self::SIGNATURE,
7746                            topics.0,
7747                            Self::SIGNATURE_HASH,
7748                        ),
7749                    );
7750                }
7751                Ok(())
7752            }
7753            #[inline]
7754            fn tokenize_body(&self) -> Self::DataToken<'_> {
7755                (
7756                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
7757                        &self.operatorSet,
7758                    ),
7759                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7760                        &self.strategy,
7761                    ),
7762                )
7763            }
7764            #[inline]
7765            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7766                (Self::SIGNATURE_HASH.into(),)
7767            }
7768            #[inline]
7769            fn encode_topics_raw(
7770                &self,
7771                out: &mut [alloy_sol_types::abi::token::WordToken],
7772            ) -> alloy_sol_types::Result<()> {
7773                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7774                    return Err(alloy_sol_types::Error::Overrun);
7775                }
7776                out[0usize] = alloy_sol_types::abi::token::WordToken(
7777                    Self::SIGNATURE_HASH,
7778                );
7779                Ok(())
7780            }
7781        }
7782        #[automatically_derived]
7783        impl alloy_sol_types::private::IntoLogData for StrategyRemovedFromOperatorSet {
7784            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7785                From::from(self)
7786            }
7787            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7788                From::from(&self)
7789            }
7790        }
7791        #[automatically_derived]
7792        impl From<&StrategyRemovedFromOperatorSet>
7793        for alloy_sol_types::private::LogData {
7794            #[inline]
7795            fn from(
7796                this: &StrategyRemovedFromOperatorSet,
7797            ) -> alloy_sol_types::private::LogData {
7798                alloy_sol_types::SolEvent::encode_log_data(this)
7799            }
7800        }
7801    };
7802    #[derive(serde::Serialize, serde::Deserialize)]
7803    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7804    /**Event with signature `Unpaused(address,uint256)` and selector `0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c`.
7805```solidity
7806event Unpaused(address indexed account, uint256 newPausedStatus);
7807```*/
7808    #[allow(
7809        non_camel_case_types,
7810        non_snake_case,
7811        clippy::pub_underscore_fields,
7812        clippy::style
7813    )]
7814    #[derive(Clone)]
7815    pub struct Unpaused {
7816        #[allow(missing_docs)]
7817        pub account: alloy::sol_types::private::Address,
7818        #[allow(missing_docs)]
7819        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
7820    }
7821    #[allow(
7822        non_camel_case_types,
7823        non_snake_case,
7824        clippy::pub_underscore_fields,
7825        clippy::style
7826    )]
7827    const _: () = {
7828        use alloy::sol_types as alloy_sol_types;
7829        #[automatically_derived]
7830        impl alloy_sol_types::SolEvent for Unpaused {
7831            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7832            type DataToken<'a> = <Self::DataTuple<
7833                'a,
7834            > as alloy_sol_types::SolType>::Token<'a>;
7835            type TopicList = (
7836                alloy_sol_types::sol_data::FixedBytes<32>,
7837                alloy::sol_types::sol_data::Address,
7838            );
7839            const SIGNATURE: &'static str = "Unpaused(address,uint256)";
7840            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7841                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
7842                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
7843                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
7844            ]);
7845            const ANONYMOUS: bool = false;
7846            #[allow(unused_variables)]
7847            #[inline]
7848            fn new(
7849                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7850                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7851            ) -> Self {
7852                Self {
7853                    account: topics.1,
7854                    newPausedStatus: data.0,
7855                }
7856            }
7857            #[inline]
7858            fn check_signature(
7859                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7860            ) -> alloy_sol_types::Result<()> {
7861                if topics.0 != Self::SIGNATURE_HASH {
7862                    return Err(
7863                        alloy_sol_types::Error::invalid_event_signature_hash(
7864                            Self::SIGNATURE,
7865                            topics.0,
7866                            Self::SIGNATURE_HASH,
7867                        ),
7868                    );
7869                }
7870                Ok(())
7871            }
7872            #[inline]
7873            fn tokenize_body(&self) -> Self::DataToken<'_> {
7874                (
7875                    <alloy::sol_types::sol_data::Uint<
7876                        256,
7877                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
7878                )
7879            }
7880            #[inline]
7881            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7882                (Self::SIGNATURE_HASH.into(), self.account.clone())
7883            }
7884            #[inline]
7885            fn encode_topics_raw(
7886                &self,
7887                out: &mut [alloy_sol_types::abi::token::WordToken],
7888            ) -> alloy_sol_types::Result<()> {
7889                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7890                    return Err(alloy_sol_types::Error::Overrun);
7891                }
7892                out[0usize] = alloy_sol_types::abi::token::WordToken(
7893                    Self::SIGNATURE_HASH,
7894                );
7895                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7896                    &self.account,
7897                );
7898                Ok(())
7899            }
7900        }
7901        #[automatically_derived]
7902        impl alloy_sol_types::private::IntoLogData for Unpaused {
7903            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7904                From::from(self)
7905            }
7906            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7907                From::from(&self)
7908            }
7909        }
7910        #[automatically_derived]
7911        impl From<&Unpaused> for alloy_sol_types::private::LogData {
7912            #[inline]
7913            fn from(this: &Unpaused) -> alloy_sol_types::private::LogData {
7914                alloy_sol_types::SolEvent::encode_log_data(this)
7915            }
7916        }
7917    };
7918    /**Constructor`.
7919```solidity
7920constructor(address _delegation, address _pauserRegistry, address _permissionController, uint32 _DEALLOCATION_DELAY, uint32 _ALLOCATION_CONFIGURATION_DELAY, string _version);
7921```*/
7922    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7923    #[derive(Clone)]
7924    pub struct constructorCall {
7925        #[allow(missing_docs)]
7926        pub _delegation: alloy::sol_types::private::Address,
7927        #[allow(missing_docs)]
7928        pub _pauserRegistry: alloy::sol_types::private::Address,
7929        #[allow(missing_docs)]
7930        pub _permissionController: alloy::sol_types::private::Address,
7931        #[allow(missing_docs)]
7932        pub _DEALLOCATION_DELAY: u32,
7933        #[allow(missing_docs)]
7934        pub _ALLOCATION_CONFIGURATION_DELAY: u32,
7935        #[allow(missing_docs)]
7936        pub _version: alloy::sol_types::private::String,
7937    }
7938    const _: () = {
7939        use alloy::sol_types as alloy_sol_types;
7940        {
7941            #[doc(hidden)]
7942            type UnderlyingSolTuple<'a> = (
7943                alloy::sol_types::sol_data::Address,
7944                alloy::sol_types::sol_data::Address,
7945                alloy::sol_types::sol_data::Address,
7946                alloy::sol_types::sol_data::Uint<32>,
7947                alloy::sol_types::sol_data::Uint<32>,
7948                alloy::sol_types::sol_data::String,
7949            );
7950            #[doc(hidden)]
7951            type UnderlyingRustTuple<'a> = (
7952                alloy::sol_types::private::Address,
7953                alloy::sol_types::private::Address,
7954                alloy::sol_types::private::Address,
7955                u32,
7956                u32,
7957                alloy::sol_types::private::String,
7958            );
7959            #[cfg(test)]
7960            #[allow(dead_code, unreachable_patterns)]
7961            fn _type_assertion(
7962                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7963            ) {
7964                match _t {
7965                    alloy_sol_types::private::AssertTypeEq::<
7966                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7967                    >(_) => {}
7968                }
7969            }
7970            #[automatically_derived]
7971            #[doc(hidden)]
7972            impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
7973                fn from(value: constructorCall) -> Self {
7974                    (
7975                        value._delegation,
7976                        value._pauserRegistry,
7977                        value._permissionController,
7978                        value._DEALLOCATION_DELAY,
7979                        value._ALLOCATION_CONFIGURATION_DELAY,
7980                        value._version,
7981                    )
7982                }
7983            }
7984            #[automatically_derived]
7985            #[doc(hidden)]
7986            impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
7987                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7988                    Self {
7989                        _delegation: tuple.0,
7990                        _pauserRegistry: tuple.1,
7991                        _permissionController: tuple.2,
7992                        _DEALLOCATION_DELAY: tuple.3,
7993                        _ALLOCATION_CONFIGURATION_DELAY: tuple.4,
7994                        _version: tuple.5,
7995                    }
7996                }
7997            }
7998        }
7999        #[automatically_derived]
8000        impl alloy_sol_types::SolConstructor for constructorCall {
8001            type Parameters<'a> = (
8002                alloy::sol_types::sol_data::Address,
8003                alloy::sol_types::sol_data::Address,
8004                alloy::sol_types::sol_data::Address,
8005                alloy::sol_types::sol_data::Uint<32>,
8006                alloy::sol_types::sol_data::Uint<32>,
8007                alloy::sol_types::sol_data::String,
8008            );
8009            type Token<'a> = <Self::Parameters<
8010                'a,
8011            > as alloy_sol_types::SolType>::Token<'a>;
8012            #[inline]
8013            fn new<'a>(
8014                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8015            ) -> Self {
8016                tuple.into()
8017            }
8018            #[inline]
8019            fn tokenize(&self) -> Self::Token<'_> {
8020                (
8021                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8022                        &self._delegation,
8023                    ),
8024                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8025                        &self._pauserRegistry,
8026                    ),
8027                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8028                        &self._permissionController,
8029                    ),
8030                    <alloy::sol_types::sol_data::Uint<
8031                        32,
8032                    > as alloy_sol_types::SolType>::tokenize(&self._DEALLOCATION_DELAY),
8033                    <alloy::sol_types::sol_data::Uint<
8034                        32,
8035                    > as alloy_sol_types::SolType>::tokenize(
8036                        &self._ALLOCATION_CONFIGURATION_DELAY,
8037                    ),
8038                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
8039                        &self._version,
8040                    ),
8041                )
8042            }
8043        }
8044    };
8045    #[derive(serde::Serialize, serde::Deserialize)]
8046    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8047    /**Function with signature `ALLOCATION_CONFIGURATION_DELAY()` and selector `0x7bc1ef61`.
8048```solidity
8049function ALLOCATION_CONFIGURATION_DELAY() external view returns (uint32);
8050```*/
8051    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8052    #[derive(Clone)]
8053    pub struct ALLOCATION_CONFIGURATION_DELAYCall;
8054    #[derive(serde::Serialize, serde::Deserialize)]
8055    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8056    ///Container type for the return parameters of the [`ALLOCATION_CONFIGURATION_DELAY()`](ALLOCATION_CONFIGURATION_DELAYCall) function.
8057    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8058    #[derive(Clone)]
8059    pub struct ALLOCATION_CONFIGURATION_DELAYReturn {
8060        #[allow(missing_docs)]
8061        pub _0: u32,
8062    }
8063    #[allow(
8064        non_camel_case_types,
8065        non_snake_case,
8066        clippy::pub_underscore_fields,
8067        clippy::style
8068    )]
8069    const _: () = {
8070        use alloy::sol_types as alloy_sol_types;
8071        {
8072            #[doc(hidden)]
8073            type UnderlyingSolTuple<'a> = ();
8074            #[doc(hidden)]
8075            type UnderlyingRustTuple<'a> = ();
8076            #[cfg(test)]
8077            #[allow(dead_code, unreachable_patterns)]
8078            fn _type_assertion(
8079                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8080            ) {
8081                match _t {
8082                    alloy_sol_types::private::AssertTypeEq::<
8083                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8084                    >(_) => {}
8085                }
8086            }
8087            #[automatically_derived]
8088            #[doc(hidden)]
8089            impl ::core::convert::From<ALLOCATION_CONFIGURATION_DELAYCall>
8090            for UnderlyingRustTuple<'_> {
8091                fn from(value: ALLOCATION_CONFIGURATION_DELAYCall) -> Self {
8092                    ()
8093                }
8094            }
8095            #[automatically_derived]
8096            #[doc(hidden)]
8097            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8098            for ALLOCATION_CONFIGURATION_DELAYCall {
8099                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8100                    Self
8101                }
8102            }
8103        }
8104        {
8105            #[doc(hidden)]
8106            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,);
8107            #[doc(hidden)]
8108            type UnderlyingRustTuple<'a> = (u32,);
8109            #[cfg(test)]
8110            #[allow(dead_code, unreachable_patterns)]
8111            fn _type_assertion(
8112                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8113            ) {
8114                match _t {
8115                    alloy_sol_types::private::AssertTypeEq::<
8116                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8117                    >(_) => {}
8118                }
8119            }
8120            #[automatically_derived]
8121            #[doc(hidden)]
8122            impl ::core::convert::From<ALLOCATION_CONFIGURATION_DELAYReturn>
8123            for UnderlyingRustTuple<'_> {
8124                fn from(value: ALLOCATION_CONFIGURATION_DELAYReturn) -> Self {
8125                    (value._0,)
8126                }
8127            }
8128            #[automatically_derived]
8129            #[doc(hidden)]
8130            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8131            for ALLOCATION_CONFIGURATION_DELAYReturn {
8132                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8133                    Self { _0: tuple.0 }
8134                }
8135            }
8136        }
8137        #[automatically_derived]
8138        impl alloy_sol_types::SolCall for ALLOCATION_CONFIGURATION_DELAYCall {
8139            type Parameters<'a> = ();
8140            type Token<'a> = <Self::Parameters<
8141                'a,
8142            > as alloy_sol_types::SolType>::Token<'a>;
8143            type Return = u32;
8144            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,);
8145            type ReturnToken<'a> = <Self::ReturnTuple<
8146                'a,
8147            > as alloy_sol_types::SolType>::Token<'a>;
8148            const SIGNATURE: &'static str = "ALLOCATION_CONFIGURATION_DELAY()";
8149            const SELECTOR: [u8; 4] = [123u8, 193u8, 239u8, 97u8];
8150            #[inline]
8151            fn new<'a>(
8152                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8153            ) -> Self {
8154                tuple.into()
8155            }
8156            #[inline]
8157            fn tokenize(&self) -> Self::Token<'_> {
8158                ()
8159            }
8160            #[inline]
8161            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8162                (
8163                    <alloy::sol_types::sol_data::Uint<
8164                        32,
8165                    > as alloy_sol_types::SolType>::tokenize(ret),
8166                )
8167            }
8168            #[inline]
8169            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8170                <Self::ReturnTuple<
8171                    '_,
8172                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8173                    .map(|r| {
8174                        let r: ALLOCATION_CONFIGURATION_DELAYReturn = r.into();
8175                        r._0
8176                    })
8177            }
8178            #[inline]
8179            fn abi_decode_returns_validate(
8180                data: &[u8],
8181            ) -> alloy_sol_types::Result<Self::Return> {
8182                <Self::ReturnTuple<
8183                    '_,
8184                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
8185                    .map(|r| {
8186                        let r: ALLOCATION_CONFIGURATION_DELAYReturn = r.into();
8187                        r._0
8188                    })
8189            }
8190        }
8191    };
8192    #[derive(serde::Serialize, serde::Deserialize)]
8193    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8194    /**Function with signature `DEALLOCATION_DELAY()` and selector `0x2981eb77`.
8195```solidity
8196function DEALLOCATION_DELAY() external view returns (uint32);
8197```*/
8198    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8199    #[derive(Clone)]
8200    pub struct DEALLOCATION_DELAYCall;
8201    #[derive(serde::Serialize, serde::Deserialize)]
8202    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8203    ///Container type for the return parameters of the [`DEALLOCATION_DELAY()`](DEALLOCATION_DELAYCall) function.
8204    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8205    #[derive(Clone)]
8206    pub struct DEALLOCATION_DELAYReturn {
8207        #[allow(missing_docs)]
8208        pub _0: u32,
8209    }
8210    #[allow(
8211        non_camel_case_types,
8212        non_snake_case,
8213        clippy::pub_underscore_fields,
8214        clippy::style
8215    )]
8216    const _: () = {
8217        use alloy::sol_types as alloy_sol_types;
8218        {
8219            #[doc(hidden)]
8220            type UnderlyingSolTuple<'a> = ();
8221            #[doc(hidden)]
8222            type UnderlyingRustTuple<'a> = ();
8223            #[cfg(test)]
8224            #[allow(dead_code, unreachable_patterns)]
8225            fn _type_assertion(
8226                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8227            ) {
8228                match _t {
8229                    alloy_sol_types::private::AssertTypeEq::<
8230                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8231                    >(_) => {}
8232                }
8233            }
8234            #[automatically_derived]
8235            #[doc(hidden)]
8236            impl ::core::convert::From<DEALLOCATION_DELAYCall>
8237            for UnderlyingRustTuple<'_> {
8238                fn from(value: DEALLOCATION_DELAYCall) -> Self {
8239                    ()
8240                }
8241            }
8242            #[automatically_derived]
8243            #[doc(hidden)]
8244            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8245            for DEALLOCATION_DELAYCall {
8246                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8247                    Self
8248                }
8249            }
8250        }
8251        {
8252            #[doc(hidden)]
8253            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,);
8254            #[doc(hidden)]
8255            type UnderlyingRustTuple<'a> = (u32,);
8256            #[cfg(test)]
8257            #[allow(dead_code, unreachable_patterns)]
8258            fn _type_assertion(
8259                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8260            ) {
8261                match _t {
8262                    alloy_sol_types::private::AssertTypeEq::<
8263                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8264                    >(_) => {}
8265                }
8266            }
8267            #[automatically_derived]
8268            #[doc(hidden)]
8269            impl ::core::convert::From<DEALLOCATION_DELAYReturn>
8270            for UnderlyingRustTuple<'_> {
8271                fn from(value: DEALLOCATION_DELAYReturn) -> Self {
8272                    (value._0,)
8273                }
8274            }
8275            #[automatically_derived]
8276            #[doc(hidden)]
8277            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8278            for DEALLOCATION_DELAYReturn {
8279                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8280                    Self { _0: tuple.0 }
8281                }
8282            }
8283        }
8284        #[automatically_derived]
8285        impl alloy_sol_types::SolCall for DEALLOCATION_DELAYCall {
8286            type Parameters<'a> = ();
8287            type Token<'a> = <Self::Parameters<
8288                'a,
8289            > as alloy_sol_types::SolType>::Token<'a>;
8290            type Return = u32;
8291            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,);
8292            type ReturnToken<'a> = <Self::ReturnTuple<
8293                'a,
8294            > as alloy_sol_types::SolType>::Token<'a>;
8295            const SIGNATURE: &'static str = "DEALLOCATION_DELAY()";
8296            const SELECTOR: [u8; 4] = [41u8, 129u8, 235u8, 119u8];
8297            #[inline]
8298            fn new<'a>(
8299                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8300            ) -> Self {
8301                tuple.into()
8302            }
8303            #[inline]
8304            fn tokenize(&self) -> Self::Token<'_> {
8305                ()
8306            }
8307            #[inline]
8308            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8309                (
8310                    <alloy::sol_types::sol_data::Uint<
8311                        32,
8312                    > as alloy_sol_types::SolType>::tokenize(ret),
8313                )
8314            }
8315            #[inline]
8316            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8317                <Self::ReturnTuple<
8318                    '_,
8319                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8320                    .map(|r| {
8321                        let r: DEALLOCATION_DELAYReturn = r.into();
8322                        r._0
8323                    })
8324            }
8325            #[inline]
8326            fn abi_decode_returns_validate(
8327                data: &[u8],
8328            ) -> alloy_sol_types::Result<Self::Return> {
8329                <Self::ReturnTuple<
8330                    '_,
8331                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
8332                    .map(|r| {
8333                        let r: DEALLOCATION_DELAYReturn = r.into();
8334                        r._0
8335                    })
8336            }
8337        }
8338    };
8339    #[derive(serde::Serialize, serde::Deserialize)]
8340    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8341    /**Function with signature `addStrategiesToOperatorSet(address,uint32,address[])` and selector `0x50feea20`.
8342```solidity
8343function addStrategiesToOperatorSet(address avs, uint32 operatorSetId, address[] memory strategies) external;
8344```*/
8345    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8346    #[derive(Clone)]
8347    pub struct addStrategiesToOperatorSetCall {
8348        #[allow(missing_docs)]
8349        pub avs: alloy::sol_types::private::Address,
8350        #[allow(missing_docs)]
8351        pub operatorSetId: u32,
8352        #[allow(missing_docs)]
8353        pub strategies: alloy::sol_types::private::Vec<
8354            alloy::sol_types::private::Address,
8355        >,
8356    }
8357    ///Container type for the return parameters of the [`addStrategiesToOperatorSet(address,uint32,address[])`](addStrategiesToOperatorSetCall) function.
8358    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8359    #[derive(Clone)]
8360    pub struct addStrategiesToOperatorSetReturn {}
8361    #[allow(
8362        non_camel_case_types,
8363        non_snake_case,
8364        clippy::pub_underscore_fields,
8365        clippy::style
8366    )]
8367    const _: () = {
8368        use alloy::sol_types as alloy_sol_types;
8369        {
8370            #[doc(hidden)]
8371            type UnderlyingSolTuple<'a> = (
8372                alloy::sol_types::sol_data::Address,
8373                alloy::sol_types::sol_data::Uint<32>,
8374                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
8375            );
8376            #[doc(hidden)]
8377            type UnderlyingRustTuple<'a> = (
8378                alloy::sol_types::private::Address,
8379                u32,
8380                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
8381            );
8382            #[cfg(test)]
8383            #[allow(dead_code, unreachable_patterns)]
8384            fn _type_assertion(
8385                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8386            ) {
8387                match _t {
8388                    alloy_sol_types::private::AssertTypeEq::<
8389                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8390                    >(_) => {}
8391                }
8392            }
8393            #[automatically_derived]
8394            #[doc(hidden)]
8395            impl ::core::convert::From<addStrategiesToOperatorSetCall>
8396            for UnderlyingRustTuple<'_> {
8397                fn from(value: addStrategiesToOperatorSetCall) -> Self {
8398                    (value.avs, value.operatorSetId, value.strategies)
8399                }
8400            }
8401            #[automatically_derived]
8402            #[doc(hidden)]
8403            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8404            for addStrategiesToOperatorSetCall {
8405                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8406                    Self {
8407                        avs: tuple.0,
8408                        operatorSetId: tuple.1,
8409                        strategies: tuple.2,
8410                    }
8411                }
8412            }
8413        }
8414        {
8415            #[doc(hidden)]
8416            type UnderlyingSolTuple<'a> = ();
8417            #[doc(hidden)]
8418            type UnderlyingRustTuple<'a> = ();
8419            #[cfg(test)]
8420            #[allow(dead_code, unreachable_patterns)]
8421            fn _type_assertion(
8422                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8423            ) {
8424                match _t {
8425                    alloy_sol_types::private::AssertTypeEq::<
8426                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8427                    >(_) => {}
8428                }
8429            }
8430            #[automatically_derived]
8431            #[doc(hidden)]
8432            impl ::core::convert::From<addStrategiesToOperatorSetReturn>
8433            for UnderlyingRustTuple<'_> {
8434                fn from(value: addStrategiesToOperatorSetReturn) -> Self {
8435                    ()
8436                }
8437            }
8438            #[automatically_derived]
8439            #[doc(hidden)]
8440            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8441            for addStrategiesToOperatorSetReturn {
8442                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8443                    Self {}
8444                }
8445            }
8446        }
8447        impl addStrategiesToOperatorSetReturn {
8448            fn _tokenize(
8449                &self,
8450            ) -> <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::ReturnToken<
8451                '_,
8452            > {
8453                ()
8454            }
8455        }
8456        #[automatically_derived]
8457        impl alloy_sol_types::SolCall for addStrategiesToOperatorSetCall {
8458            type Parameters<'a> = (
8459                alloy::sol_types::sol_data::Address,
8460                alloy::sol_types::sol_data::Uint<32>,
8461                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
8462            );
8463            type Token<'a> = <Self::Parameters<
8464                'a,
8465            > as alloy_sol_types::SolType>::Token<'a>;
8466            type Return = addStrategiesToOperatorSetReturn;
8467            type ReturnTuple<'a> = ();
8468            type ReturnToken<'a> = <Self::ReturnTuple<
8469                'a,
8470            > as alloy_sol_types::SolType>::Token<'a>;
8471            const SIGNATURE: &'static str = "addStrategiesToOperatorSet(address,uint32,address[])";
8472            const SELECTOR: [u8; 4] = [80u8, 254u8, 234u8, 32u8];
8473            #[inline]
8474            fn new<'a>(
8475                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8476            ) -> Self {
8477                tuple.into()
8478            }
8479            #[inline]
8480            fn tokenize(&self) -> Self::Token<'_> {
8481                (
8482                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8483                        &self.avs,
8484                    ),
8485                    <alloy::sol_types::sol_data::Uint<
8486                        32,
8487                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetId),
8488                    <alloy::sol_types::sol_data::Array<
8489                        alloy::sol_types::sol_data::Address,
8490                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
8491                )
8492            }
8493            #[inline]
8494            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8495                addStrategiesToOperatorSetReturn::_tokenize(ret)
8496            }
8497            #[inline]
8498            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8499                <Self::ReturnTuple<
8500                    '_,
8501                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8502                    .map(Into::into)
8503            }
8504            #[inline]
8505            fn abi_decode_returns_validate(
8506                data: &[u8],
8507            ) -> alloy_sol_types::Result<Self::Return> {
8508                <Self::ReturnTuple<
8509                    '_,
8510                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
8511                    .map(Into::into)
8512            }
8513        }
8514    };
8515    #[derive(serde::Serialize, serde::Deserialize)]
8516    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8517    /**Function with signature `clearDeallocationQueue(address,address[],uint16[])` and selector `0x4b5046ef`.
8518```solidity
8519function clearDeallocationQueue(address operator, address[] memory strategies, uint16[] memory numToClear) external;
8520```*/
8521    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8522    #[derive(Clone)]
8523    pub struct clearDeallocationQueueCall {
8524        #[allow(missing_docs)]
8525        pub operator: alloy::sol_types::private::Address,
8526        #[allow(missing_docs)]
8527        pub strategies: alloy::sol_types::private::Vec<
8528            alloy::sol_types::private::Address,
8529        >,
8530        #[allow(missing_docs)]
8531        pub numToClear: alloy::sol_types::private::Vec<u16>,
8532    }
8533    ///Container type for the return parameters of the [`clearDeallocationQueue(address,address[],uint16[])`](clearDeallocationQueueCall) function.
8534    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8535    #[derive(Clone)]
8536    pub struct clearDeallocationQueueReturn {}
8537    #[allow(
8538        non_camel_case_types,
8539        non_snake_case,
8540        clippy::pub_underscore_fields,
8541        clippy::style
8542    )]
8543    const _: () = {
8544        use alloy::sol_types as alloy_sol_types;
8545        {
8546            #[doc(hidden)]
8547            type UnderlyingSolTuple<'a> = (
8548                alloy::sol_types::sol_data::Address,
8549                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
8550                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<16>>,
8551            );
8552            #[doc(hidden)]
8553            type UnderlyingRustTuple<'a> = (
8554                alloy::sol_types::private::Address,
8555                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
8556                alloy::sol_types::private::Vec<u16>,
8557            );
8558            #[cfg(test)]
8559            #[allow(dead_code, unreachable_patterns)]
8560            fn _type_assertion(
8561                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8562            ) {
8563                match _t {
8564                    alloy_sol_types::private::AssertTypeEq::<
8565                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8566                    >(_) => {}
8567                }
8568            }
8569            #[automatically_derived]
8570            #[doc(hidden)]
8571            impl ::core::convert::From<clearDeallocationQueueCall>
8572            for UnderlyingRustTuple<'_> {
8573                fn from(value: clearDeallocationQueueCall) -> Self {
8574                    (value.operator, value.strategies, value.numToClear)
8575                }
8576            }
8577            #[automatically_derived]
8578            #[doc(hidden)]
8579            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8580            for clearDeallocationQueueCall {
8581                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8582                    Self {
8583                        operator: tuple.0,
8584                        strategies: tuple.1,
8585                        numToClear: tuple.2,
8586                    }
8587                }
8588            }
8589        }
8590        {
8591            #[doc(hidden)]
8592            type UnderlyingSolTuple<'a> = ();
8593            #[doc(hidden)]
8594            type UnderlyingRustTuple<'a> = ();
8595            #[cfg(test)]
8596            #[allow(dead_code, unreachable_patterns)]
8597            fn _type_assertion(
8598                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8599            ) {
8600                match _t {
8601                    alloy_sol_types::private::AssertTypeEq::<
8602                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8603                    >(_) => {}
8604                }
8605            }
8606            #[automatically_derived]
8607            #[doc(hidden)]
8608            impl ::core::convert::From<clearDeallocationQueueReturn>
8609            for UnderlyingRustTuple<'_> {
8610                fn from(value: clearDeallocationQueueReturn) -> Self {
8611                    ()
8612                }
8613            }
8614            #[automatically_derived]
8615            #[doc(hidden)]
8616            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8617            for clearDeallocationQueueReturn {
8618                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8619                    Self {}
8620                }
8621            }
8622        }
8623        impl clearDeallocationQueueReturn {
8624            fn _tokenize(
8625                &self,
8626            ) -> <clearDeallocationQueueCall as alloy_sol_types::SolCall>::ReturnToken<
8627                '_,
8628            > {
8629                ()
8630            }
8631        }
8632        #[automatically_derived]
8633        impl alloy_sol_types::SolCall for clearDeallocationQueueCall {
8634            type Parameters<'a> = (
8635                alloy::sol_types::sol_data::Address,
8636                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
8637                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<16>>,
8638            );
8639            type Token<'a> = <Self::Parameters<
8640                'a,
8641            > as alloy_sol_types::SolType>::Token<'a>;
8642            type Return = clearDeallocationQueueReturn;
8643            type ReturnTuple<'a> = ();
8644            type ReturnToken<'a> = <Self::ReturnTuple<
8645                'a,
8646            > as alloy_sol_types::SolType>::Token<'a>;
8647            const SIGNATURE: &'static str = "clearDeallocationQueue(address,address[],uint16[])";
8648            const SELECTOR: [u8; 4] = [75u8, 80u8, 70u8, 239u8];
8649            #[inline]
8650            fn new<'a>(
8651                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8652            ) -> Self {
8653                tuple.into()
8654            }
8655            #[inline]
8656            fn tokenize(&self) -> Self::Token<'_> {
8657                (
8658                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8659                        &self.operator,
8660                    ),
8661                    <alloy::sol_types::sol_data::Array<
8662                        alloy::sol_types::sol_data::Address,
8663                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
8664                    <alloy::sol_types::sol_data::Array<
8665                        alloy::sol_types::sol_data::Uint<16>,
8666                    > as alloy_sol_types::SolType>::tokenize(&self.numToClear),
8667                )
8668            }
8669            #[inline]
8670            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8671                clearDeallocationQueueReturn::_tokenize(ret)
8672            }
8673            #[inline]
8674            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8675                <Self::ReturnTuple<
8676                    '_,
8677                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8678                    .map(Into::into)
8679            }
8680            #[inline]
8681            fn abi_decode_returns_validate(
8682                data: &[u8],
8683            ) -> alloy_sol_types::Result<Self::Return> {
8684                <Self::ReturnTuple<
8685                    '_,
8686                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
8687                    .map(Into::into)
8688            }
8689        }
8690    };
8691    #[derive(serde::Serialize, serde::Deserialize)]
8692    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8693    /**Function with signature `createOperatorSets(address,(uint32,address[])[])` and selector `0x261f84e0`.
8694```solidity
8695function createOperatorSets(address avs, IAllocationManagerTypes.CreateSetParams[] memory params) external;
8696```*/
8697    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8698    #[derive(Clone)]
8699    pub struct createOperatorSetsCall {
8700        #[allow(missing_docs)]
8701        pub avs: alloy::sol_types::private::Address,
8702        #[allow(missing_docs)]
8703        pub params: alloy::sol_types::private::Vec<
8704            <IAllocationManagerTypes::CreateSetParams as alloy::sol_types::SolType>::RustType,
8705        >,
8706    }
8707    ///Container type for the return parameters of the [`createOperatorSets(address,(uint32,address[])[])`](createOperatorSetsCall) function.
8708    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8709    #[derive(Clone)]
8710    pub struct createOperatorSetsReturn {}
8711    #[allow(
8712        non_camel_case_types,
8713        non_snake_case,
8714        clippy::pub_underscore_fields,
8715        clippy::style
8716    )]
8717    const _: () = {
8718        use alloy::sol_types as alloy_sol_types;
8719        {
8720            #[doc(hidden)]
8721            type UnderlyingSolTuple<'a> = (
8722                alloy::sol_types::sol_data::Address,
8723                alloy::sol_types::sol_data::Array<
8724                    IAllocationManagerTypes::CreateSetParams,
8725                >,
8726            );
8727            #[doc(hidden)]
8728            type UnderlyingRustTuple<'a> = (
8729                alloy::sol_types::private::Address,
8730                alloy::sol_types::private::Vec<
8731                    <IAllocationManagerTypes::CreateSetParams as alloy::sol_types::SolType>::RustType,
8732                >,
8733            );
8734            #[cfg(test)]
8735            #[allow(dead_code, unreachable_patterns)]
8736            fn _type_assertion(
8737                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8738            ) {
8739                match _t {
8740                    alloy_sol_types::private::AssertTypeEq::<
8741                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8742                    >(_) => {}
8743                }
8744            }
8745            #[automatically_derived]
8746            #[doc(hidden)]
8747            impl ::core::convert::From<createOperatorSetsCall>
8748            for UnderlyingRustTuple<'_> {
8749                fn from(value: createOperatorSetsCall) -> Self {
8750                    (value.avs, value.params)
8751                }
8752            }
8753            #[automatically_derived]
8754            #[doc(hidden)]
8755            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8756            for createOperatorSetsCall {
8757                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8758                    Self {
8759                        avs: tuple.0,
8760                        params: tuple.1,
8761                    }
8762                }
8763            }
8764        }
8765        {
8766            #[doc(hidden)]
8767            type UnderlyingSolTuple<'a> = ();
8768            #[doc(hidden)]
8769            type UnderlyingRustTuple<'a> = ();
8770            #[cfg(test)]
8771            #[allow(dead_code, unreachable_patterns)]
8772            fn _type_assertion(
8773                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8774            ) {
8775                match _t {
8776                    alloy_sol_types::private::AssertTypeEq::<
8777                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8778                    >(_) => {}
8779                }
8780            }
8781            #[automatically_derived]
8782            #[doc(hidden)]
8783            impl ::core::convert::From<createOperatorSetsReturn>
8784            for UnderlyingRustTuple<'_> {
8785                fn from(value: createOperatorSetsReturn) -> Self {
8786                    ()
8787                }
8788            }
8789            #[automatically_derived]
8790            #[doc(hidden)]
8791            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8792            for createOperatorSetsReturn {
8793                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8794                    Self {}
8795                }
8796            }
8797        }
8798        impl createOperatorSetsReturn {
8799            fn _tokenize(
8800                &self,
8801            ) -> <createOperatorSetsCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
8802                ()
8803            }
8804        }
8805        #[automatically_derived]
8806        impl alloy_sol_types::SolCall for createOperatorSetsCall {
8807            type Parameters<'a> = (
8808                alloy::sol_types::sol_data::Address,
8809                alloy::sol_types::sol_data::Array<
8810                    IAllocationManagerTypes::CreateSetParams,
8811                >,
8812            );
8813            type Token<'a> = <Self::Parameters<
8814                'a,
8815            > as alloy_sol_types::SolType>::Token<'a>;
8816            type Return = createOperatorSetsReturn;
8817            type ReturnTuple<'a> = ();
8818            type ReturnToken<'a> = <Self::ReturnTuple<
8819                'a,
8820            > as alloy_sol_types::SolType>::Token<'a>;
8821            const SIGNATURE: &'static str = "createOperatorSets(address,(uint32,address[])[])";
8822            const SELECTOR: [u8; 4] = [38u8, 31u8, 132u8, 224u8];
8823            #[inline]
8824            fn new<'a>(
8825                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8826            ) -> Self {
8827                tuple.into()
8828            }
8829            #[inline]
8830            fn tokenize(&self) -> Self::Token<'_> {
8831                (
8832                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8833                        &self.avs,
8834                    ),
8835                    <alloy::sol_types::sol_data::Array<
8836                        IAllocationManagerTypes::CreateSetParams,
8837                    > as alloy_sol_types::SolType>::tokenize(&self.params),
8838                )
8839            }
8840            #[inline]
8841            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8842                createOperatorSetsReturn::_tokenize(ret)
8843            }
8844            #[inline]
8845            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8846                <Self::ReturnTuple<
8847                    '_,
8848                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8849                    .map(Into::into)
8850            }
8851            #[inline]
8852            fn abi_decode_returns_validate(
8853                data: &[u8],
8854            ) -> alloy_sol_types::Result<Self::Return> {
8855                <Self::ReturnTuple<
8856                    '_,
8857                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
8858                    .map(Into::into)
8859            }
8860        }
8861    };
8862    #[derive(serde::Serialize, serde::Deserialize)]
8863    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8864    /**Function with signature `delegation()` and selector `0xdf5cf723`.
8865```solidity
8866function delegation() external view returns (address);
8867```*/
8868    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8869    #[derive(Clone)]
8870    pub struct delegationCall;
8871    #[derive(serde::Serialize, serde::Deserialize)]
8872    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8873    ///Container type for the return parameters of the [`delegation()`](delegationCall) function.
8874    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8875    #[derive(Clone)]
8876    pub struct delegationReturn {
8877        #[allow(missing_docs)]
8878        pub _0: alloy::sol_types::private::Address,
8879    }
8880    #[allow(
8881        non_camel_case_types,
8882        non_snake_case,
8883        clippy::pub_underscore_fields,
8884        clippy::style
8885    )]
8886    const _: () = {
8887        use alloy::sol_types as alloy_sol_types;
8888        {
8889            #[doc(hidden)]
8890            type UnderlyingSolTuple<'a> = ();
8891            #[doc(hidden)]
8892            type UnderlyingRustTuple<'a> = ();
8893            #[cfg(test)]
8894            #[allow(dead_code, unreachable_patterns)]
8895            fn _type_assertion(
8896                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8897            ) {
8898                match _t {
8899                    alloy_sol_types::private::AssertTypeEq::<
8900                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8901                    >(_) => {}
8902                }
8903            }
8904            #[automatically_derived]
8905            #[doc(hidden)]
8906            impl ::core::convert::From<delegationCall> for UnderlyingRustTuple<'_> {
8907                fn from(value: delegationCall) -> Self {
8908                    ()
8909                }
8910            }
8911            #[automatically_derived]
8912            #[doc(hidden)]
8913            impl ::core::convert::From<UnderlyingRustTuple<'_>> for delegationCall {
8914                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8915                    Self
8916                }
8917            }
8918        }
8919        {
8920            #[doc(hidden)]
8921            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
8922            #[doc(hidden)]
8923            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
8924            #[cfg(test)]
8925            #[allow(dead_code, unreachable_patterns)]
8926            fn _type_assertion(
8927                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8928            ) {
8929                match _t {
8930                    alloy_sol_types::private::AssertTypeEq::<
8931                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8932                    >(_) => {}
8933                }
8934            }
8935            #[automatically_derived]
8936            #[doc(hidden)]
8937            impl ::core::convert::From<delegationReturn> for UnderlyingRustTuple<'_> {
8938                fn from(value: delegationReturn) -> Self {
8939                    (value._0,)
8940                }
8941            }
8942            #[automatically_derived]
8943            #[doc(hidden)]
8944            impl ::core::convert::From<UnderlyingRustTuple<'_>> for delegationReturn {
8945                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8946                    Self { _0: tuple.0 }
8947                }
8948            }
8949        }
8950        #[automatically_derived]
8951        impl alloy_sol_types::SolCall for delegationCall {
8952            type Parameters<'a> = ();
8953            type Token<'a> = <Self::Parameters<
8954                'a,
8955            > as alloy_sol_types::SolType>::Token<'a>;
8956            type Return = alloy::sol_types::private::Address;
8957            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
8958            type ReturnToken<'a> = <Self::ReturnTuple<
8959                'a,
8960            > as alloy_sol_types::SolType>::Token<'a>;
8961            const SIGNATURE: &'static str = "delegation()";
8962            const SELECTOR: [u8; 4] = [223u8, 92u8, 247u8, 35u8];
8963            #[inline]
8964            fn new<'a>(
8965                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8966            ) -> Self {
8967                tuple.into()
8968            }
8969            #[inline]
8970            fn tokenize(&self) -> Self::Token<'_> {
8971                ()
8972            }
8973            #[inline]
8974            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8975                (
8976                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8977                        ret,
8978                    ),
8979                )
8980            }
8981            #[inline]
8982            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8983                <Self::ReturnTuple<
8984                    '_,
8985                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8986                    .map(|r| {
8987                        let r: delegationReturn = r.into();
8988                        r._0
8989                    })
8990            }
8991            #[inline]
8992            fn abi_decode_returns_validate(
8993                data: &[u8],
8994            ) -> alloy_sol_types::Result<Self::Return> {
8995                <Self::ReturnTuple<
8996                    '_,
8997                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
8998                    .map(|r| {
8999                        let r: delegationReturn = r.into();
9000                        r._0
9001                    })
9002            }
9003        }
9004    };
9005    #[derive(serde::Serialize, serde::Deserialize)]
9006    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9007    /**Function with signature `deregisterFromOperatorSets((address,address,uint32[]))` and selector `0x6e3492b5`.
9008```solidity
9009function deregisterFromOperatorSets(IAllocationManagerTypes.DeregisterParams memory params) external;
9010```*/
9011    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9012    #[derive(Clone)]
9013    pub struct deregisterFromOperatorSetsCall {
9014        #[allow(missing_docs)]
9015        pub params: <IAllocationManagerTypes::DeregisterParams as alloy::sol_types::SolType>::RustType,
9016    }
9017    ///Container type for the return parameters of the [`deregisterFromOperatorSets((address,address,uint32[]))`](deregisterFromOperatorSetsCall) function.
9018    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9019    #[derive(Clone)]
9020    pub struct deregisterFromOperatorSetsReturn {}
9021    #[allow(
9022        non_camel_case_types,
9023        non_snake_case,
9024        clippy::pub_underscore_fields,
9025        clippy::style
9026    )]
9027    const _: () = {
9028        use alloy::sol_types as alloy_sol_types;
9029        {
9030            #[doc(hidden)]
9031            type UnderlyingSolTuple<'a> = (IAllocationManagerTypes::DeregisterParams,);
9032            #[doc(hidden)]
9033            type UnderlyingRustTuple<'a> = (
9034                <IAllocationManagerTypes::DeregisterParams as alloy::sol_types::SolType>::RustType,
9035            );
9036            #[cfg(test)]
9037            #[allow(dead_code, unreachable_patterns)]
9038            fn _type_assertion(
9039                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9040            ) {
9041                match _t {
9042                    alloy_sol_types::private::AssertTypeEq::<
9043                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9044                    >(_) => {}
9045                }
9046            }
9047            #[automatically_derived]
9048            #[doc(hidden)]
9049            impl ::core::convert::From<deregisterFromOperatorSetsCall>
9050            for UnderlyingRustTuple<'_> {
9051                fn from(value: deregisterFromOperatorSetsCall) -> Self {
9052                    (value.params,)
9053                }
9054            }
9055            #[automatically_derived]
9056            #[doc(hidden)]
9057            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9058            for deregisterFromOperatorSetsCall {
9059                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9060                    Self { params: tuple.0 }
9061                }
9062            }
9063        }
9064        {
9065            #[doc(hidden)]
9066            type UnderlyingSolTuple<'a> = ();
9067            #[doc(hidden)]
9068            type UnderlyingRustTuple<'a> = ();
9069            #[cfg(test)]
9070            #[allow(dead_code, unreachable_patterns)]
9071            fn _type_assertion(
9072                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9073            ) {
9074                match _t {
9075                    alloy_sol_types::private::AssertTypeEq::<
9076                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9077                    >(_) => {}
9078                }
9079            }
9080            #[automatically_derived]
9081            #[doc(hidden)]
9082            impl ::core::convert::From<deregisterFromOperatorSetsReturn>
9083            for UnderlyingRustTuple<'_> {
9084                fn from(value: deregisterFromOperatorSetsReturn) -> Self {
9085                    ()
9086                }
9087            }
9088            #[automatically_derived]
9089            #[doc(hidden)]
9090            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9091            for deregisterFromOperatorSetsReturn {
9092                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9093                    Self {}
9094                }
9095            }
9096        }
9097        impl deregisterFromOperatorSetsReturn {
9098            fn _tokenize(
9099                &self,
9100            ) -> <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::ReturnToken<
9101                '_,
9102            > {
9103                ()
9104            }
9105        }
9106        #[automatically_derived]
9107        impl alloy_sol_types::SolCall for deregisterFromOperatorSetsCall {
9108            type Parameters<'a> = (IAllocationManagerTypes::DeregisterParams,);
9109            type Token<'a> = <Self::Parameters<
9110                'a,
9111            > as alloy_sol_types::SolType>::Token<'a>;
9112            type Return = deregisterFromOperatorSetsReturn;
9113            type ReturnTuple<'a> = ();
9114            type ReturnToken<'a> = <Self::ReturnTuple<
9115                'a,
9116            > as alloy_sol_types::SolType>::Token<'a>;
9117            const SIGNATURE: &'static str = "deregisterFromOperatorSets((address,address,uint32[]))";
9118            const SELECTOR: [u8; 4] = [110u8, 52u8, 146u8, 181u8];
9119            #[inline]
9120            fn new<'a>(
9121                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9122            ) -> Self {
9123                tuple.into()
9124            }
9125            #[inline]
9126            fn tokenize(&self) -> Self::Token<'_> {
9127                (
9128                    <IAllocationManagerTypes::DeregisterParams as alloy_sol_types::SolType>::tokenize(
9129                        &self.params,
9130                    ),
9131                )
9132            }
9133            #[inline]
9134            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
9135                deregisterFromOperatorSetsReturn::_tokenize(ret)
9136            }
9137            #[inline]
9138            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
9139                <Self::ReturnTuple<
9140                    '_,
9141                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
9142                    .map(Into::into)
9143            }
9144            #[inline]
9145            fn abi_decode_returns_validate(
9146                data: &[u8],
9147            ) -> alloy_sol_types::Result<Self::Return> {
9148                <Self::ReturnTuple<
9149                    '_,
9150                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
9151                    .map(Into::into)
9152            }
9153        }
9154    };
9155    #[derive(serde::Serialize, serde::Deserialize)]
9156    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9157    /**Function with signature `getAVSRegistrar(address)` and selector `0x304c10cd`.
9158```solidity
9159function getAVSRegistrar(address avs) external view returns (address);
9160```*/
9161    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9162    #[derive(Clone)]
9163    pub struct getAVSRegistrarCall {
9164        #[allow(missing_docs)]
9165        pub avs: alloy::sol_types::private::Address,
9166    }
9167    #[derive(serde::Serialize, serde::Deserialize)]
9168    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9169    ///Container type for the return parameters of the [`getAVSRegistrar(address)`](getAVSRegistrarCall) function.
9170    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9171    #[derive(Clone)]
9172    pub struct getAVSRegistrarReturn {
9173        #[allow(missing_docs)]
9174        pub _0: alloy::sol_types::private::Address,
9175    }
9176    #[allow(
9177        non_camel_case_types,
9178        non_snake_case,
9179        clippy::pub_underscore_fields,
9180        clippy::style
9181    )]
9182    const _: () = {
9183        use alloy::sol_types as alloy_sol_types;
9184        {
9185            #[doc(hidden)]
9186            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
9187            #[doc(hidden)]
9188            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
9189            #[cfg(test)]
9190            #[allow(dead_code, unreachable_patterns)]
9191            fn _type_assertion(
9192                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9193            ) {
9194                match _t {
9195                    alloy_sol_types::private::AssertTypeEq::<
9196                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9197                    >(_) => {}
9198                }
9199            }
9200            #[automatically_derived]
9201            #[doc(hidden)]
9202            impl ::core::convert::From<getAVSRegistrarCall> for UnderlyingRustTuple<'_> {
9203                fn from(value: getAVSRegistrarCall) -> Self {
9204                    (value.avs,)
9205                }
9206            }
9207            #[automatically_derived]
9208            #[doc(hidden)]
9209            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getAVSRegistrarCall {
9210                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9211                    Self { avs: tuple.0 }
9212                }
9213            }
9214        }
9215        {
9216            #[doc(hidden)]
9217            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
9218            #[doc(hidden)]
9219            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
9220            #[cfg(test)]
9221            #[allow(dead_code, unreachable_patterns)]
9222            fn _type_assertion(
9223                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9224            ) {
9225                match _t {
9226                    alloy_sol_types::private::AssertTypeEq::<
9227                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9228                    >(_) => {}
9229                }
9230            }
9231            #[automatically_derived]
9232            #[doc(hidden)]
9233            impl ::core::convert::From<getAVSRegistrarReturn>
9234            for UnderlyingRustTuple<'_> {
9235                fn from(value: getAVSRegistrarReturn) -> Self {
9236                    (value._0,)
9237                }
9238            }
9239            #[automatically_derived]
9240            #[doc(hidden)]
9241            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9242            for getAVSRegistrarReturn {
9243                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9244                    Self { _0: tuple.0 }
9245                }
9246            }
9247        }
9248        #[automatically_derived]
9249        impl alloy_sol_types::SolCall for getAVSRegistrarCall {
9250            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
9251            type Token<'a> = <Self::Parameters<
9252                'a,
9253            > as alloy_sol_types::SolType>::Token<'a>;
9254            type Return = alloy::sol_types::private::Address;
9255            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
9256            type ReturnToken<'a> = <Self::ReturnTuple<
9257                'a,
9258            > as alloy_sol_types::SolType>::Token<'a>;
9259            const SIGNATURE: &'static str = "getAVSRegistrar(address)";
9260            const SELECTOR: [u8; 4] = [48u8, 76u8, 16u8, 205u8];
9261            #[inline]
9262            fn new<'a>(
9263                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9264            ) -> Self {
9265                tuple.into()
9266            }
9267            #[inline]
9268            fn tokenize(&self) -> Self::Token<'_> {
9269                (
9270                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9271                        &self.avs,
9272                    ),
9273                )
9274            }
9275            #[inline]
9276            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
9277                (
9278                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9279                        ret,
9280                    ),
9281                )
9282            }
9283            #[inline]
9284            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
9285                <Self::ReturnTuple<
9286                    '_,
9287                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
9288                    .map(|r| {
9289                        let r: getAVSRegistrarReturn = r.into();
9290                        r._0
9291                    })
9292            }
9293            #[inline]
9294            fn abi_decode_returns_validate(
9295                data: &[u8],
9296            ) -> alloy_sol_types::Result<Self::Return> {
9297                <Self::ReturnTuple<
9298                    '_,
9299                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
9300                    .map(|r| {
9301                        let r: getAVSRegistrarReturn = r.into();
9302                        r._0
9303                    })
9304            }
9305        }
9306    };
9307    #[derive(serde::Serialize, serde::Deserialize)]
9308    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9309    /**Function with signature `getAllocatableMagnitude(address,address)` and selector `0x6cfb4481`.
9310```solidity
9311function getAllocatableMagnitude(address operator, address strategy) external view returns (uint64);
9312```*/
9313    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9314    #[derive(Clone)]
9315    pub struct getAllocatableMagnitudeCall {
9316        #[allow(missing_docs)]
9317        pub operator: alloy::sol_types::private::Address,
9318        #[allow(missing_docs)]
9319        pub strategy: alloy::sol_types::private::Address,
9320    }
9321    #[derive(serde::Serialize, serde::Deserialize)]
9322    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9323    ///Container type for the return parameters of the [`getAllocatableMagnitude(address,address)`](getAllocatableMagnitudeCall) function.
9324    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9325    #[derive(Clone)]
9326    pub struct getAllocatableMagnitudeReturn {
9327        #[allow(missing_docs)]
9328        pub _0: u64,
9329    }
9330    #[allow(
9331        non_camel_case_types,
9332        non_snake_case,
9333        clippy::pub_underscore_fields,
9334        clippy::style
9335    )]
9336    const _: () = {
9337        use alloy::sol_types as alloy_sol_types;
9338        {
9339            #[doc(hidden)]
9340            type UnderlyingSolTuple<'a> = (
9341                alloy::sol_types::sol_data::Address,
9342                alloy::sol_types::sol_data::Address,
9343            );
9344            #[doc(hidden)]
9345            type UnderlyingRustTuple<'a> = (
9346                alloy::sol_types::private::Address,
9347                alloy::sol_types::private::Address,
9348            );
9349            #[cfg(test)]
9350            #[allow(dead_code, unreachable_patterns)]
9351            fn _type_assertion(
9352                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9353            ) {
9354                match _t {
9355                    alloy_sol_types::private::AssertTypeEq::<
9356                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9357                    >(_) => {}
9358                }
9359            }
9360            #[automatically_derived]
9361            #[doc(hidden)]
9362            impl ::core::convert::From<getAllocatableMagnitudeCall>
9363            for UnderlyingRustTuple<'_> {
9364                fn from(value: getAllocatableMagnitudeCall) -> Self {
9365                    (value.operator, value.strategy)
9366                }
9367            }
9368            #[automatically_derived]
9369            #[doc(hidden)]
9370            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9371            for getAllocatableMagnitudeCall {
9372                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9373                    Self {
9374                        operator: tuple.0,
9375                        strategy: tuple.1,
9376                    }
9377                }
9378            }
9379        }
9380        {
9381            #[doc(hidden)]
9382            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
9383            #[doc(hidden)]
9384            type UnderlyingRustTuple<'a> = (u64,);
9385            #[cfg(test)]
9386            #[allow(dead_code, unreachable_patterns)]
9387            fn _type_assertion(
9388                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9389            ) {
9390                match _t {
9391                    alloy_sol_types::private::AssertTypeEq::<
9392                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9393                    >(_) => {}
9394                }
9395            }
9396            #[automatically_derived]
9397            #[doc(hidden)]
9398            impl ::core::convert::From<getAllocatableMagnitudeReturn>
9399            for UnderlyingRustTuple<'_> {
9400                fn from(value: getAllocatableMagnitudeReturn) -> Self {
9401                    (value._0,)
9402                }
9403            }
9404            #[automatically_derived]
9405            #[doc(hidden)]
9406            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9407            for getAllocatableMagnitudeReturn {
9408                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9409                    Self { _0: tuple.0 }
9410                }
9411            }
9412        }
9413        #[automatically_derived]
9414        impl alloy_sol_types::SolCall for getAllocatableMagnitudeCall {
9415            type Parameters<'a> = (
9416                alloy::sol_types::sol_data::Address,
9417                alloy::sol_types::sol_data::Address,
9418            );
9419            type Token<'a> = <Self::Parameters<
9420                'a,
9421            > as alloy_sol_types::SolType>::Token<'a>;
9422            type Return = u64;
9423            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
9424            type ReturnToken<'a> = <Self::ReturnTuple<
9425                'a,
9426            > as alloy_sol_types::SolType>::Token<'a>;
9427            const SIGNATURE: &'static str = "getAllocatableMagnitude(address,address)";
9428            const SELECTOR: [u8; 4] = [108u8, 251u8, 68u8, 129u8];
9429            #[inline]
9430            fn new<'a>(
9431                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9432            ) -> Self {
9433                tuple.into()
9434            }
9435            #[inline]
9436            fn tokenize(&self) -> Self::Token<'_> {
9437                (
9438                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9439                        &self.operator,
9440                    ),
9441                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9442                        &self.strategy,
9443                    ),
9444                )
9445            }
9446            #[inline]
9447            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
9448                (
9449                    <alloy::sol_types::sol_data::Uint<
9450                        64,
9451                    > as alloy_sol_types::SolType>::tokenize(ret),
9452                )
9453            }
9454            #[inline]
9455            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
9456                <Self::ReturnTuple<
9457                    '_,
9458                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
9459                    .map(|r| {
9460                        let r: getAllocatableMagnitudeReturn = r.into();
9461                        r._0
9462                    })
9463            }
9464            #[inline]
9465            fn abi_decode_returns_validate(
9466                data: &[u8],
9467            ) -> alloy_sol_types::Result<Self::Return> {
9468                <Self::ReturnTuple<
9469                    '_,
9470                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
9471                    .map(|r| {
9472                        let r: getAllocatableMagnitudeReturn = r.into();
9473                        r._0
9474                    })
9475            }
9476        }
9477    };
9478    #[derive(serde::Serialize, serde::Deserialize)]
9479    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9480    /**Function with signature `getAllocatedSets(address)` and selector `0x15fe5028`.
9481```solidity
9482function getAllocatedSets(address operator) external view returns (OperatorSet[] memory);
9483```*/
9484    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9485    #[derive(Clone)]
9486    pub struct getAllocatedSetsCall {
9487        #[allow(missing_docs)]
9488        pub operator: alloy::sol_types::private::Address,
9489    }
9490    #[derive(serde::Serialize, serde::Deserialize)]
9491    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9492    ///Container type for the return parameters of the [`getAllocatedSets(address)`](getAllocatedSetsCall) function.
9493    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9494    #[derive(Clone)]
9495    pub struct getAllocatedSetsReturn {
9496        #[allow(missing_docs)]
9497        pub _0: alloy::sol_types::private::Vec<
9498            <OperatorSet as alloy::sol_types::SolType>::RustType,
9499        >,
9500    }
9501    #[allow(
9502        non_camel_case_types,
9503        non_snake_case,
9504        clippy::pub_underscore_fields,
9505        clippy::style
9506    )]
9507    const _: () = {
9508        use alloy::sol_types as alloy_sol_types;
9509        {
9510            #[doc(hidden)]
9511            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
9512            #[doc(hidden)]
9513            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
9514            #[cfg(test)]
9515            #[allow(dead_code, unreachable_patterns)]
9516            fn _type_assertion(
9517                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9518            ) {
9519                match _t {
9520                    alloy_sol_types::private::AssertTypeEq::<
9521                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9522                    >(_) => {}
9523                }
9524            }
9525            #[automatically_derived]
9526            #[doc(hidden)]
9527            impl ::core::convert::From<getAllocatedSetsCall>
9528            for UnderlyingRustTuple<'_> {
9529                fn from(value: getAllocatedSetsCall) -> Self {
9530                    (value.operator,)
9531                }
9532            }
9533            #[automatically_derived]
9534            #[doc(hidden)]
9535            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9536            for getAllocatedSetsCall {
9537                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9538                    Self { operator: tuple.0 }
9539                }
9540            }
9541        }
9542        {
9543            #[doc(hidden)]
9544            type UnderlyingSolTuple<'a> = (
9545                alloy::sol_types::sol_data::Array<OperatorSet>,
9546            );
9547            #[doc(hidden)]
9548            type UnderlyingRustTuple<'a> = (
9549                alloy::sol_types::private::Vec<
9550                    <OperatorSet as alloy::sol_types::SolType>::RustType,
9551                >,
9552            );
9553            #[cfg(test)]
9554            #[allow(dead_code, unreachable_patterns)]
9555            fn _type_assertion(
9556                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9557            ) {
9558                match _t {
9559                    alloy_sol_types::private::AssertTypeEq::<
9560                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9561                    >(_) => {}
9562                }
9563            }
9564            #[automatically_derived]
9565            #[doc(hidden)]
9566            impl ::core::convert::From<getAllocatedSetsReturn>
9567            for UnderlyingRustTuple<'_> {
9568                fn from(value: getAllocatedSetsReturn) -> Self {
9569                    (value._0,)
9570                }
9571            }
9572            #[automatically_derived]
9573            #[doc(hidden)]
9574            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9575            for getAllocatedSetsReturn {
9576                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9577                    Self { _0: tuple.0 }
9578                }
9579            }
9580        }
9581        #[automatically_derived]
9582        impl alloy_sol_types::SolCall for getAllocatedSetsCall {
9583            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
9584            type Token<'a> = <Self::Parameters<
9585                'a,
9586            > as alloy_sol_types::SolType>::Token<'a>;
9587            type Return = alloy::sol_types::private::Vec<
9588                <OperatorSet as alloy::sol_types::SolType>::RustType,
9589            >;
9590            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array<OperatorSet>,);
9591            type ReturnToken<'a> = <Self::ReturnTuple<
9592                'a,
9593            > as alloy_sol_types::SolType>::Token<'a>;
9594            const SIGNATURE: &'static str = "getAllocatedSets(address)";
9595            const SELECTOR: [u8; 4] = [21u8, 254u8, 80u8, 40u8];
9596            #[inline]
9597            fn new<'a>(
9598                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9599            ) -> Self {
9600                tuple.into()
9601            }
9602            #[inline]
9603            fn tokenize(&self) -> Self::Token<'_> {
9604                (
9605                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9606                        &self.operator,
9607                    ),
9608                )
9609            }
9610            #[inline]
9611            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
9612                (
9613                    <alloy::sol_types::sol_data::Array<
9614                        OperatorSet,
9615                    > as alloy_sol_types::SolType>::tokenize(ret),
9616                )
9617            }
9618            #[inline]
9619            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
9620                <Self::ReturnTuple<
9621                    '_,
9622                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
9623                    .map(|r| {
9624                        let r: getAllocatedSetsReturn = r.into();
9625                        r._0
9626                    })
9627            }
9628            #[inline]
9629            fn abi_decode_returns_validate(
9630                data: &[u8],
9631            ) -> alloy_sol_types::Result<Self::Return> {
9632                <Self::ReturnTuple<
9633                    '_,
9634                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
9635                    .map(|r| {
9636                        let r: getAllocatedSetsReturn = r.into();
9637                        r._0
9638                    })
9639            }
9640        }
9641    };
9642    #[derive(serde::Serialize, serde::Deserialize)]
9643    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9644    /**Function with signature `getAllocatedStake((address,uint32),address[],address[])` and selector `0x2b453a9a`.
9645```solidity
9646function getAllocatedStake(OperatorSet memory operatorSet, address[] memory operators, address[] memory strategies) external view returns (uint256[][] memory);
9647```*/
9648    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9649    #[derive(Clone)]
9650    pub struct getAllocatedStakeCall {
9651        #[allow(missing_docs)]
9652        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
9653        #[allow(missing_docs)]
9654        pub operators: alloy::sol_types::private::Vec<
9655            alloy::sol_types::private::Address,
9656        >,
9657        #[allow(missing_docs)]
9658        pub strategies: alloy::sol_types::private::Vec<
9659            alloy::sol_types::private::Address,
9660        >,
9661    }
9662    #[derive(serde::Serialize, serde::Deserialize)]
9663    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9664    ///Container type for the return parameters of the [`getAllocatedStake((address,uint32),address[],address[])`](getAllocatedStakeCall) function.
9665    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9666    #[derive(Clone)]
9667    pub struct getAllocatedStakeReturn {
9668        #[allow(missing_docs)]
9669        pub _0: alloy::sol_types::private::Vec<
9670            alloy::sol_types::private::Vec<
9671                alloy::sol_types::private::primitives::aliases::U256,
9672            >,
9673        >,
9674    }
9675    #[allow(
9676        non_camel_case_types,
9677        non_snake_case,
9678        clippy::pub_underscore_fields,
9679        clippy::style
9680    )]
9681    const _: () = {
9682        use alloy::sol_types as alloy_sol_types;
9683        {
9684            #[doc(hidden)]
9685            type UnderlyingSolTuple<'a> = (
9686                OperatorSet,
9687                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9688                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9689            );
9690            #[doc(hidden)]
9691            type UnderlyingRustTuple<'a> = (
9692                <OperatorSet as alloy::sol_types::SolType>::RustType,
9693                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9694                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9695            );
9696            #[cfg(test)]
9697            #[allow(dead_code, unreachable_patterns)]
9698            fn _type_assertion(
9699                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9700            ) {
9701                match _t {
9702                    alloy_sol_types::private::AssertTypeEq::<
9703                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9704                    >(_) => {}
9705                }
9706            }
9707            #[automatically_derived]
9708            #[doc(hidden)]
9709            impl ::core::convert::From<getAllocatedStakeCall>
9710            for UnderlyingRustTuple<'_> {
9711                fn from(value: getAllocatedStakeCall) -> Self {
9712                    (value.operatorSet, value.operators, value.strategies)
9713                }
9714            }
9715            #[automatically_derived]
9716            #[doc(hidden)]
9717            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9718            for getAllocatedStakeCall {
9719                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9720                    Self {
9721                        operatorSet: tuple.0,
9722                        operators: tuple.1,
9723                        strategies: tuple.2,
9724                    }
9725                }
9726            }
9727        }
9728        {
9729            #[doc(hidden)]
9730            type UnderlyingSolTuple<'a> = (
9731                alloy::sol_types::sol_data::Array<
9732                    alloy::sol_types::sol_data::Array<
9733                        alloy::sol_types::sol_data::Uint<256>,
9734                    >,
9735                >,
9736            );
9737            #[doc(hidden)]
9738            type UnderlyingRustTuple<'a> = (
9739                alloy::sol_types::private::Vec<
9740                    alloy::sol_types::private::Vec<
9741                        alloy::sol_types::private::primitives::aliases::U256,
9742                    >,
9743                >,
9744            );
9745            #[cfg(test)]
9746            #[allow(dead_code, unreachable_patterns)]
9747            fn _type_assertion(
9748                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9749            ) {
9750                match _t {
9751                    alloy_sol_types::private::AssertTypeEq::<
9752                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9753                    >(_) => {}
9754                }
9755            }
9756            #[automatically_derived]
9757            #[doc(hidden)]
9758            impl ::core::convert::From<getAllocatedStakeReturn>
9759            for UnderlyingRustTuple<'_> {
9760                fn from(value: getAllocatedStakeReturn) -> Self {
9761                    (value._0,)
9762                }
9763            }
9764            #[automatically_derived]
9765            #[doc(hidden)]
9766            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9767            for getAllocatedStakeReturn {
9768                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9769                    Self { _0: tuple.0 }
9770                }
9771            }
9772        }
9773        #[automatically_derived]
9774        impl alloy_sol_types::SolCall for getAllocatedStakeCall {
9775            type Parameters<'a> = (
9776                OperatorSet,
9777                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9778                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9779            );
9780            type Token<'a> = <Self::Parameters<
9781                'a,
9782            > as alloy_sol_types::SolType>::Token<'a>;
9783            type Return = alloy::sol_types::private::Vec<
9784                alloy::sol_types::private::Vec<
9785                    alloy::sol_types::private::primitives::aliases::U256,
9786                >,
9787            >;
9788            type ReturnTuple<'a> = (
9789                alloy::sol_types::sol_data::Array<
9790                    alloy::sol_types::sol_data::Array<
9791                        alloy::sol_types::sol_data::Uint<256>,
9792                    >,
9793                >,
9794            );
9795            type ReturnToken<'a> = <Self::ReturnTuple<
9796                'a,
9797            > as alloy_sol_types::SolType>::Token<'a>;
9798            const SIGNATURE: &'static str = "getAllocatedStake((address,uint32),address[],address[])";
9799            const SELECTOR: [u8; 4] = [43u8, 69u8, 58u8, 154u8];
9800            #[inline]
9801            fn new<'a>(
9802                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9803            ) -> Self {
9804                tuple.into()
9805            }
9806            #[inline]
9807            fn tokenize(&self) -> Self::Token<'_> {
9808                (
9809                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
9810                        &self.operatorSet,
9811                    ),
9812                    <alloy::sol_types::sol_data::Array<
9813                        alloy::sol_types::sol_data::Address,
9814                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
9815                    <alloy::sol_types::sol_data::Array<
9816                        alloy::sol_types::sol_data::Address,
9817                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
9818                )
9819            }
9820            #[inline]
9821            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
9822                (
9823                    <alloy::sol_types::sol_data::Array<
9824                        alloy::sol_types::sol_data::Array<
9825                            alloy::sol_types::sol_data::Uint<256>,
9826                        >,
9827                    > as alloy_sol_types::SolType>::tokenize(ret),
9828                )
9829            }
9830            #[inline]
9831            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
9832                <Self::ReturnTuple<
9833                    '_,
9834                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
9835                    .map(|r| {
9836                        let r: getAllocatedStakeReturn = r.into();
9837                        r._0
9838                    })
9839            }
9840            #[inline]
9841            fn abi_decode_returns_validate(
9842                data: &[u8],
9843            ) -> alloy_sol_types::Result<Self::Return> {
9844                <Self::ReturnTuple<
9845                    '_,
9846                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
9847                    .map(|r| {
9848                        let r: getAllocatedStakeReturn = r.into();
9849                        r._0
9850                    })
9851            }
9852        }
9853    };
9854    #[derive(serde::Serialize, serde::Deserialize)]
9855    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9856    /**Function with signature `getAllocatedStrategies(address,(address,uint32))` and selector `0xc221d8ae`.
9857```solidity
9858function getAllocatedStrategies(address operator, OperatorSet memory operatorSet) external view returns (address[] memory);
9859```*/
9860    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9861    #[derive(Clone)]
9862    pub struct getAllocatedStrategiesCall {
9863        #[allow(missing_docs)]
9864        pub operator: alloy::sol_types::private::Address,
9865        #[allow(missing_docs)]
9866        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
9867    }
9868    #[derive(serde::Serialize, serde::Deserialize)]
9869    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9870    ///Container type for the return parameters of the [`getAllocatedStrategies(address,(address,uint32))`](getAllocatedStrategiesCall) function.
9871    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9872    #[derive(Clone)]
9873    pub struct getAllocatedStrategiesReturn {
9874        #[allow(missing_docs)]
9875        pub _0: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9876    }
9877    #[allow(
9878        non_camel_case_types,
9879        non_snake_case,
9880        clippy::pub_underscore_fields,
9881        clippy::style
9882    )]
9883    const _: () = {
9884        use alloy::sol_types as alloy_sol_types;
9885        {
9886            #[doc(hidden)]
9887            type UnderlyingSolTuple<'a> = (
9888                alloy::sol_types::sol_data::Address,
9889                OperatorSet,
9890            );
9891            #[doc(hidden)]
9892            type UnderlyingRustTuple<'a> = (
9893                alloy::sol_types::private::Address,
9894                <OperatorSet as alloy::sol_types::SolType>::RustType,
9895            );
9896            #[cfg(test)]
9897            #[allow(dead_code, unreachable_patterns)]
9898            fn _type_assertion(
9899                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9900            ) {
9901                match _t {
9902                    alloy_sol_types::private::AssertTypeEq::<
9903                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9904                    >(_) => {}
9905                }
9906            }
9907            #[automatically_derived]
9908            #[doc(hidden)]
9909            impl ::core::convert::From<getAllocatedStrategiesCall>
9910            for UnderlyingRustTuple<'_> {
9911                fn from(value: getAllocatedStrategiesCall) -> Self {
9912                    (value.operator, value.operatorSet)
9913                }
9914            }
9915            #[automatically_derived]
9916            #[doc(hidden)]
9917            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9918            for getAllocatedStrategiesCall {
9919                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9920                    Self {
9921                        operator: tuple.0,
9922                        operatorSet: tuple.1,
9923                    }
9924                }
9925            }
9926        }
9927        {
9928            #[doc(hidden)]
9929            type UnderlyingSolTuple<'a> = (
9930                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9931            );
9932            #[doc(hidden)]
9933            type UnderlyingRustTuple<'a> = (
9934                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
9935            );
9936            #[cfg(test)]
9937            #[allow(dead_code, unreachable_patterns)]
9938            fn _type_assertion(
9939                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9940            ) {
9941                match _t {
9942                    alloy_sol_types::private::AssertTypeEq::<
9943                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9944                    >(_) => {}
9945                }
9946            }
9947            #[automatically_derived]
9948            #[doc(hidden)]
9949            impl ::core::convert::From<getAllocatedStrategiesReturn>
9950            for UnderlyingRustTuple<'_> {
9951                fn from(value: getAllocatedStrategiesReturn) -> Self {
9952                    (value._0,)
9953                }
9954            }
9955            #[automatically_derived]
9956            #[doc(hidden)]
9957            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9958            for getAllocatedStrategiesReturn {
9959                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9960                    Self { _0: tuple.0 }
9961                }
9962            }
9963        }
9964        #[automatically_derived]
9965        impl alloy_sol_types::SolCall for getAllocatedStrategiesCall {
9966            type Parameters<'a> = (alloy::sol_types::sol_data::Address, OperatorSet);
9967            type Token<'a> = <Self::Parameters<
9968                'a,
9969            > as alloy_sol_types::SolType>::Token<'a>;
9970            type Return = alloy::sol_types::private::Vec<
9971                alloy::sol_types::private::Address,
9972            >;
9973            type ReturnTuple<'a> = (
9974                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
9975            );
9976            type ReturnToken<'a> = <Self::ReturnTuple<
9977                'a,
9978            > as alloy_sol_types::SolType>::Token<'a>;
9979            const SIGNATURE: &'static str = "getAllocatedStrategies(address,(address,uint32))";
9980            const SELECTOR: [u8; 4] = [194u8, 33u8, 216u8, 174u8];
9981            #[inline]
9982            fn new<'a>(
9983                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9984            ) -> Self {
9985                tuple.into()
9986            }
9987            #[inline]
9988            fn tokenize(&self) -> Self::Token<'_> {
9989                (
9990                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9991                        &self.operator,
9992                    ),
9993                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
9994                        &self.operatorSet,
9995                    ),
9996                )
9997            }
9998            #[inline]
9999            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
10000                (
10001                    <alloy::sol_types::sol_data::Array<
10002                        alloy::sol_types::sol_data::Address,
10003                    > as alloy_sol_types::SolType>::tokenize(ret),
10004                )
10005            }
10006            #[inline]
10007            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
10008                <Self::ReturnTuple<
10009                    '_,
10010                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
10011                    .map(|r| {
10012                        let r: getAllocatedStrategiesReturn = r.into();
10013                        r._0
10014                    })
10015            }
10016            #[inline]
10017            fn abi_decode_returns_validate(
10018                data: &[u8],
10019            ) -> alloy_sol_types::Result<Self::Return> {
10020                <Self::ReturnTuple<
10021                    '_,
10022                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
10023                    .map(|r| {
10024                        let r: getAllocatedStrategiesReturn = r.into();
10025                        r._0
10026                    })
10027            }
10028        }
10029    };
10030    #[derive(serde::Serialize, serde::Deserialize)]
10031    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10032    /**Function with signature `getAllocation(address,(address,uint32),address)` and selector `0x10e1b9b8`.
10033```solidity
10034function getAllocation(address operator, OperatorSet memory operatorSet, address strategy) external view returns (IAllocationManagerTypes.Allocation memory);
10035```*/
10036    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10037    #[derive(Clone)]
10038    pub struct getAllocationCall {
10039        #[allow(missing_docs)]
10040        pub operator: alloy::sol_types::private::Address,
10041        #[allow(missing_docs)]
10042        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
10043        #[allow(missing_docs)]
10044        pub strategy: alloy::sol_types::private::Address,
10045    }
10046    #[derive(serde::Serialize, serde::Deserialize)]
10047    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10048    ///Container type for the return parameters of the [`getAllocation(address,(address,uint32),address)`](getAllocationCall) function.
10049    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10050    #[derive(Clone)]
10051    pub struct getAllocationReturn {
10052        #[allow(missing_docs)]
10053        pub _0: <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
10054    }
10055    #[allow(
10056        non_camel_case_types,
10057        non_snake_case,
10058        clippy::pub_underscore_fields,
10059        clippy::style
10060    )]
10061    const _: () = {
10062        use alloy::sol_types as alloy_sol_types;
10063        {
10064            #[doc(hidden)]
10065            type UnderlyingSolTuple<'a> = (
10066                alloy::sol_types::sol_data::Address,
10067                OperatorSet,
10068                alloy::sol_types::sol_data::Address,
10069            );
10070            #[doc(hidden)]
10071            type UnderlyingRustTuple<'a> = (
10072                alloy::sol_types::private::Address,
10073                <OperatorSet as alloy::sol_types::SolType>::RustType,
10074                alloy::sol_types::private::Address,
10075            );
10076            #[cfg(test)]
10077            #[allow(dead_code, unreachable_patterns)]
10078            fn _type_assertion(
10079                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10080            ) {
10081                match _t {
10082                    alloy_sol_types::private::AssertTypeEq::<
10083                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10084                    >(_) => {}
10085                }
10086            }
10087            #[automatically_derived]
10088            #[doc(hidden)]
10089            impl ::core::convert::From<getAllocationCall> for UnderlyingRustTuple<'_> {
10090                fn from(value: getAllocationCall) -> Self {
10091                    (value.operator, value.operatorSet, value.strategy)
10092                }
10093            }
10094            #[automatically_derived]
10095            #[doc(hidden)]
10096            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getAllocationCall {
10097                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10098                    Self {
10099                        operator: tuple.0,
10100                        operatorSet: tuple.1,
10101                        strategy: tuple.2,
10102                    }
10103                }
10104            }
10105        }
10106        {
10107            #[doc(hidden)]
10108            type UnderlyingSolTuple<'a> = (IAllocationManagerTypes::Allocation,);
10109            #[doc(hidden)]
10110            type UnderlyingRustTuple<'a> = (
10111                <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
10112            );
10113            #[cfg(test)]
10114            #[allow(dead_code, unreachable_patterns)]
10115            fn _type_assertion(
10116                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10117            ) {
10118                match _t {
10119                    alloy_sol_types::private::AssertTypeEq::<
10120                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10121                    >(_) => {}
10122                }
10123            }
10124            #[automatically_derived]
10125            #[doc(hidden)]
10126            impl ::core::convert::From<getAllocationReturn> for UnderlyingRustTuple<'_> {
10127                fn from(value: getAllocationReturn) -> Self {
10128                    (value._0,)
10129                }
10130            }
10131            #[automatically_derived]
10132            #[doc(hidden)]
10133            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getAllocationReturn {
10134                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10135                    Self { _0: tuple.0 }
10136                }
10137            }
10138        }
10139        #[automatically_derived]
10140        impl alloy_sol_types::SolCall for getAllocationCall {
10141            type Parameters<'a> = (
10142                alloy::sol_types::sol_data::Address,
10143                OperatorSet,
10144                alloy::sol_types::sol_data::Address,
10145            );
10146            type Token<'a> = <Self::Parameters<
10147                'a,
10148            > as alloy_sol_types::SolType>::Token<'a>;
10149            type Return = <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType;
10150            type ReturnTuple<'a> = (IAllocationManagerTypes::Allocation,);
10151            type ReturnToken<'a> = <Self::ReturnTuple<
10152                'a,
10153            > as alloy_sol_types::SolType>::Token<'a>;
10154            const SIGNATURE: &'static str = "getAllocation(address,(address,uint32),address)";
10155            const SELECTOR: [u8; 4] = [16u8, 225u8, 185u8, 184u8];
10156            #[inline]
10157            fn new<'a>(
10158                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10159            ) -> Self {
10160                tuple.into()
10161            }
10162            #[inline]
10163            fn tokenize(&self) -> Self::Token<'_> {
10164                (
10165                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10166                        &self.operator,
10167                    ),
10168                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
10169                        &self.operatorSet,
10170                    ),
10171                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10172                        &self.strategy,
10173                    ),
10174                )
10175            }
10176            #[inline]
10177            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
10178                (
10179                    <IAllocationManagerTypes::Allocation as alloy_sol_types::SolType>::tokenize(
10180                        ret,
10181                    ),
10182                )
10183            }
10184            #[inline]
10185            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
10186                <Self::ReturnTuple<
10187                    '_,
10188                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
10189                    .map(|r| {
10190                        let r: getAllocationReturn = r.into();
10191                        r._0
10192                    })
10193            }
10194            #[inline]
10195            fn abi_decode_returns_validate(
10196                data: &[u8],
10197            ) -> alloy_sol_types::Result<Self::Return> {
10198                <Self::ReturnTuple<
10199                    '_,
10200                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
10201                    .map(|r| {
10202                        let r: getAllocationReturn = r.into();
10203                        r._0
10204                    })
10205            }
10206        }
10207    };
10208    #[derive(serde::Serialize, serde::Deserialize)]
10209    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10210    /**Function with signature `getAllocationDelay(address)` and selector `0xb9fbaed1`.
10211```solidity
10212function getAllocationDelay(address operator) external view returns (bool, uint32);
10213```*/
10214    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10215    #[derive(Clone)]
10216    pub struct getAllocationDelayCall {
10217        #[allow(missing_docs)]
10218        pub operator: alloy::sol_types::private::Address,
10219    }
10220    #[derive(serde::Serialize, serde::Deserialize)]
10221    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10222    ///Container type for the return parameters of the [`getAllocationDelay(address)`](getAllocationDelayCall) function.
10223    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10224    #[derive(Clone)]
10225    pub struct getAllocationDelayReturn {
10226        #[allow(missing_docs)]
10227        pub _0: bool,
10228        #[allow(missing_docs)]
10229        pub _1: u32,
10230    }
10231    #[allow(
10232        non_camel_case_types,
10233        non_snake_case,
10234        clippy::pub_underscore_fields,
10235        clippy::style
10236    )]
10237    const _: () = {
10238        use alloy::sol_types as alloy_sol_types;
10239        {
10240            #[doc(hidden)]
10241            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
10242            #[doc(hidden)]
10243            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
10244            #[cfg(test)]
10245            #[allow(dead_code, unreachable_patterns)]
10246            fn _type_assertion(
10247                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10248            ) {
10249                match _t {
10250                    alloy_sol_types::private::AssertTypeEq::<
10251                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10252                    >(_) => {}
10253                }
10254            }
10255            #[automatically_derived]
10256            #[doc(hidden)]
10257            impl ::core::convert::From<getAllocationDelayCall>
10258            for UnderlyingRustTuple<'_> {
10259                fn from(value: getAllocationDelayCall) -> Self {
10260                    (value.operator,)
10261                }
10262            }
10263            #[automatically_derived]
10264            #[doc(hidden)]
10265            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10266            for getAllocationDelayCall {
10267                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10268                    Self { operator: tuple.0 }
10269                }
10270            }
10271        }
10272        {
10273            #[doc(hidden)]
10274            type UnderlyingSolTuple<'a> = (
10275                alloy::sol_types::sol_data::Bool,
10276                alloy::sol_types::sol_data::Uint<32>,
10277            );
10278            #[doc(hidden)]
10279            type UnderlyingRustTuple<'a> = (bool, u32);
10280            #[cfg(test)]
10281            #[allow(dead_code, unreachable_patterns)]
10282            fn _type_assertion(
10283                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10284            ) {
10285                match _t {
10286                    alloy_sol_types::private::AssertTypeEq::<
10287                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10288                    >(_) => {}
10289                }
10290            }
10291            #[automatically_derived]
10292            #[doc(hidden)]
10293            impl ::core::convert::From<getAllocationDelayReturn>
10294            for UnderlyingRustTuple<'_> {
10295                fn from(value: getAllocationDelayReturn) -> Self {
10296                    (value._0, value._1)
10297                }
10298            }
10299            #[automatically_derived]
10300            #[doc(hidden)]
10301            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10302            for getAllocationDelayReturn {
10303                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10304                    Self { _0: tuple.0, _1: tuple.1 }
10305                }
10306            }
10307        }
10308        impl getAllocationDelayReturn {
10309            fn _tokenize(
10310                &self,
10311            ) -> <getAllocationDelayCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
10312                (
10313                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
10314                        &self._0,
10315                    ),
10316                    <alloy::sol_types::sol_data::Uint<
10317                        32,
10318                    > as alloy_sol_types::SolType>::tokenize(&self._1),
10319                )
10320            }
10321        }
10322        #[automatically_derived]
10323        impl alloy_sol_types::SolCall for getAllocationDelayCall {
10324            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
10325            type Token<'a> = <Self::Parameters<
10326                'a,
10327            > as alloy_sol_types::SolType>::Token<'a>;
10328            type Return = getAllocationDelayReturn;
10329            type ReturnTuple<'a> = (
10330                alloy::sol_types::sol_data::Bool,
10331                alloy::sol_types::sol_data::Uint<32>,
10332            );
10333            type ReturnToken<'a> = <Self::ReturnTuple<
10334                'a,
10335            > as alloy_sol_types::SolType>::Token<'a>;
10336            const SIGNATURE: &'static str = "getAllocationDelay(address)";
10337            const SELECTOR: [u8; 4] = [185u8, 251u8, 174u8, 209u8];
10338            #[inline]
10339            fn new<'a>(
10340                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10341            ) -> Self {
10342                tuple.into()
10343            }
10344            #[inline]
10345            fn tokenize(&self) -> Self::Token<'_> {
10346                (
10347                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10348                        &self.operator,
10349                    ),
10350                )
10351            }
10352            #[inline]
10353            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
10354                getAllocationDelayReturn::_tokenize(ret)
10355            }
10356            #[inline]
10357            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
10358                <Self::ReturnTuple<
10359                    '_,
10360                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
10361                    .map(Into::into)
10362            }
10363            #[inline]
10364            fn abi_decode_returns_validate(
10365                data: &[u8],
10366            ) -> alloy_sol_types::Result<Self::Return> {
10367                <Self::ReturnTuple<
10368                    '_,
10369                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
10370                    .map(Into::into)
10371            }
10372        }
10373    };
10374    #[derive(serde::Serialize, serde::Deserialize)]
10375    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10376    /**Function with signature `getAllocations(address[],(address,uint32),address)` and selector `0x8ce64854`.
10377```solidity
10378function getAllocations(address[] memory operators, OperatorSet memory operatorSet, address strategy) external view returns (IAllocationManagerTypes.Allocation[] memory);
10379```*/
10380    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10381    #[derive(Clone)]
10382    pub struct getAllocationsCall {
10383        #[allow(missing_docs)]
10384        pub operators: alloy::sol_types::private::Vec<
10385            alloy::sol_types::private::Address,
10386        >,
10387        #[allow(missing_docs)]
10388        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
10389        #[allow(missing_docs)]
10390        pub strategy: alloy::sol_types::private::Address,
10391    }
10392    #[derive(serde::Serialize, serde::Deserialize)]
10393    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10394    ///Container type for the return parameters of the [`getAllocations(address[],(address,uint32),address)`](getAllocationsCall) function.
10395    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10396    #[derive(Clone)]
10397    pub struct getAllocationsReturn {
10398        #[allow(missing_docs)]
10399        pub _0: alloy::sol_types::private::Vec<
10400            <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
10401        >,
10402    }
10403    #[allow(
10404        non_camel_case_types,
10405        non_snake_case,
10406        clippy::pub_underscore_fields,
10407        clippy::style
10408    )]
10409    const _: () = {
10410        use alloy::sol_types as alloy_sol_types;
10411        {
10412            #[doc(hidden)]
10413            type UnderlyingSolTuple<'a> = (
10414                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10415                OperatorSet,
10416                alloy::sol_types::sol_data::Address,
10417            );
10418            #[doc(hidden)]
10419            type UnderlyingRustTuple<'a> = (
10420                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
10421                <OperatorSet as alloy::sol_types::SolType>::RustType,
10422                alloy::sol_types::private::Address,
10423            );
10424            #[cfg(test)]
10425            #[allow(dead_code, unreachable_patterns)]
10426            fn _type_assertion(
10427                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10428            ) {
10429                match _t {
10430                    alloy_sol_types::private::AssertTypeEq::<
10431                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10432                    >(_) => {}
10433                }
10434            }
10435            #[automatically_derived]
10436            #[doc(hidden)]
10437            impl ::core::convert::From<getAllocationsCall> for UnderlyingRustTuple<'_> {
10438                fn from(value: getAllocationsCall) -> Self {
10439                    (value.operators, value.operatorSet, value.strategy)
10440                }
10441            }
10442            #[automatically_derived]
10443            #[doc(hidden)]
10444            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getAllocationsCall {
10445                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10446                    Self {
10447                        operators: tuple.0,
10448                        operatorSet: tuple.1,
10449                        strategy: tuple.2,
10450                    }
10451                }
10452            }
10453        }
10454        {
10455            #[doc(hidden)]
10456            type UnderlyingSolTuple<'a> = (
10457                alloy::sol_types::sol_data::Array<IAllocationManagerTypes::Allocation>,
10458            );
10459            #[doc(hidden)]
10460            type UnderlyingRustTuple<'a> = (
10461                alloy::sol_types::private::Vec<
10462                    <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
10463                >,
10464            );
10465            #[cfg(test)]
10466            #[allow(dead_code, unreachable_patterns)]
10467            fn _type_assertion(
10468                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10469            ) {
10470                match _t {
10471                    alloy_sol_types::private::AssertTypeEq::<
10472                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10473                    >(_) => {}
10474                }
10475            }
10476            #[automatically_derived]
10477            #[doc(hidden)]
10478            impl ::core::convert::From<getAllocationsReturn>
10479            for UnderlyingRustTuple<'_> {
10480                fn from(value: getAllocationsReturn) -> Self {
10481                    (value._0,)
10482                }
10483            }
10484            #[automatically_derived]
10485            #[doc(hidden)]
10486            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10487            for getAllocationsReturn {
10488                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10489                    Self { _0: tuple.0 }
10490                }
10491            }
10492        }
10493        #[automatically_derived]
10494        impl alloy_sol_types::SolCall for getAllocationsCall {
10495            type Parameters<'a> = (
10496                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10497                OperatorSet,
10498                alloy::sol_types::sol_data::Address,
10499            );
10500            type Token<'a> = <Self::Parameters<
10501                'a,
10502            > as alloy_sol_types::SolType>::Token<'a>;
10503            type Return = alloy::sol_types::private::Vec<
10504                <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
10505            >;
10506            type ReturnTuple<'a> = (
10507                alloy::sol_types::sol_data::Array<IAllocationManagerTypes::Allocation>,
10508            );
10509            type ReturnToken<'a> = <Self::ReturnTuple<
10510                'a,
10511            > as alloy_sol_types::SolType>::Token<'a>;
10512            const SIGNATURE: &'static str = "getAllocations(address[],(address,uint32),address)";
10513            const SELECTOR: [u8; 4] = [140u8, 230u8, 72u8, 84u8];
10514            #[inline]
10515            fn new<'a>(
10516                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10517            ) -> Self {
10518                tuple.into()
10519            }
10520            #[inline]
10521            fn tokenize(&self) -> Self::Token<'_> {
10522                (
10523                    <alloy::sol_types::sol_data::Array<
10524                        alloy::sol_types::sol_data::Address,
10525                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
10526                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
10527                        &self.operatorSet,
10528                    ),
10529                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10530                        &self.strategy,
10531                    ),
10532                )
10533            }
10534            #[inline]
10535            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
10536                (
10537                    <alloy::sol_types::sol_data::Array<
10538                        IAllocationManagerTypes::Allocation,
10539                    > as alloy_sol_types::SolType>::tokenize(ret),
10540                )
10541            }
10542            #[inline]
10543            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
10544                <Self::ReturnTuple<
10545                    '_,
10546                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
10547                    .map(|r| {
10548                        let r: getAllocationsReturn = r.into();
10549                        r._0
10550                    })
10551            }
10552            #[inline]
10553            fn abi_decode_returns_validate(
10554                data: &[u8],
10555            ) -> alloy_sol_types::Result<Self::Return> {
10556                <Self::ReturnTuple<
10557                    '_,
10558                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
10559                    .map(|r| {
10560                        let r: getAllocationsReturn = r.into();
10561                        r._0
10562                    })
10563            }
10564        }
10565    };
10566    #[derive(serde::Serialize, serde::Deserialize)]
10567    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10568    /**Function with signature `getEncumberedMagnitude(address,address)` and selector `0xf605ce08`.
10569```solidity
10570function getEncumberedMagnitude(address operator, address strategy) external view returns (uint64);
10571```*/
10572    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10573    #[derive(Clone)]
10574    pub struct getEncumberedMagnitudeCall {
10575        #[allow(missing_docs)]
10576        pub operator: alloy::sol_types::private::Address,
10577        #[allow(missing_docs)]
10578        pub strategy: alloy::sol_types::private::Address,
10579    }
10580    #[derive(serde::Serialize, serde::Deserialize)]
10581    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10582    ///Container type for the return parameters of the [`getEncumberedMagnitude(address,address)`](getEncumberedMagnitudeCall) function.
10583    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10584    #[derive(Clone)]
10585    pub struct getEncumberedMagnitudeReturn {
10586        #[allow(missing_docs)]
10587        pub _0: u64,
10588    }
10589    #[allow(
10590        non_camel_case_types,
10591        non_snake_case,
10592        clippy::pub_underscore_fields,
10593        clippy::style
10594    )]
10595    const _: () = {
10596        use alloy::sol_types as alloy_sol_types;
10597        {
10598            #[doc(hidden)]
10599            type UnderlyingSolTuple<'a> = (
10600                alloy::sol_types::sol_data::Address,
10601                alloy::sol_types::sol_data::Address,
10602            );
10603            #[doc(hidden)]
10604            type UnderlyingRustTuple<'a> = (
10605                alloy::sol_types::private::Address,
10606                alloy::sol_types::private::Address,
10607            );
10608            #[cfg(test)]
10609            #[allow(dead_code, unreachable_patterns)]
10610            fn _type_assertion(
10611                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10612            ) {
10613                match _t {
10614                    alloy_sol_types::private::AssertTypeEq::<
10615                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10616                    >(_) => {}
10617                }
10618            }
10619            #[automatically_derived]
10620            #[doc(hidden)]
10621            impl ::core::convert::From<getEncumberedMagnitudeCall>
10622            for UnderlyingRustTuple<'_> {
10623                fn from(value: getEncumberedMagnitudeCall) -> Self {
10624                    (value.operator, value.strategy)
10625                }
10626            }
10627            #[automatically_derived]
10628            #[doc(hidden)]
10629            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10630            for getEncumberedMagnitudeCall {
10631                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10632                    Self {
10633                        operator: tuple.0,
10634                        strategy: tuple.1,
10635                    }
10636                }
10637            }
10638        }
10639        {
10640            #[doc(hidden)]
10641            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
10642            #[doc(hidden)]
10643            type UnderlyingRustTuple<'a> = (u64,);
10644            #[cfg(test)]
10645            #[allow(dead_code, unreachable_patterns)]
10646            fn _type_assertion(
10647                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10648            ) {
10649                match _t {
10650                    alloy_sol_types::private::AssertTypeEq::<
10651                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10652                    >(_) => {}
10653                }
10654            }
10655            #[automatically_derived]
10656            #[doc(hidden)]
10657            impl ::core::convert::From<getEncumberedMagnitudeReturn>
10658            for UnderlyingRustTuple<'_> {
10659                fn from(value: getEncumberedMagnitudeReturn) -> Self {
10660                    (value._0,)
10661                }
10662            }
10663            #[automatically_derived]
10664            #[doc(hidden)]
10665            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10666            for getEncumberedMagnitudeReturn {
10667                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10668                    Self { _0: tuple.0 }
10669                }
10670            }
10671        }
10672        #[automatically_derived]
10673        impl alloy_sol_types::SolCall for getEncumberedMagnitudeCall {
10674            type Parameters<'a> = (
10675                alloy::sol_types::sol_data::Address,
10676                alloy::sol_types::sol_data::Address,
10677            );
10678            type Token<'a> = <Self::Parameters<
10679                'a,
10680            > as alloy_sol_types::SolType>::Token<'a>;
10681            type Return = u64;
10682            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
10683            type ReturnToken<'a> = <Self::ReturnTuple<
10684                'a,
10685            > as alloy_sol_types::SolType>::Token<'a>;
10686            const SIGNATURE: &'static str = "getEncumberedMagnitude(address,address)";
10687            const SELECTOR: [u8; 4] = [246u8, 5u8, 206u8, 8u8];
10688            #[inline]
10689            fn new<'a>(
10690                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10691            ) -> Self {
10692                tuple.into()
10693            }
10694            #[inline]
10695            fn tokenize(&self) -> Self::Token<'_> {
10696                (
10697                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10698                        &self.operator,
10699                    ),
10700                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10701                        &self.strategy,
10702                    ),
10703                )
10704            }
10705            #[inline]
10706            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
10707                (
10708                    <alloy::sol_types::sol_data::Uint<
10709                        64,
10710                    > as alloy_sol_types::SolType>::tokenize(ret),
10711                )
10712            }
10713            #[inline]
10714            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
10715                <Self::ReturnTuple<
10716                    '_,
10717                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
10718                    .map(|r| {
10719                        let r: getEncumberedMagnitudeReturn = r.into();
10720                        r._0
10721                    })
10722            }
10723            #[inline]
10724            fn abi_decode_returns_validate(
10725                data: &[u8],
10726            ) -> alloy_sol_types::Result<Self::Return> {
10727                <Self::ReturnTuple<
10728                    '_,
10729                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
10730                    .map(|r| {
10731                        let r: getEncumberedMagnitudeReturn = r.into();
10732                        r._0
10733                    })
10734            }
10735        }
10736    };
10737    #[derive(serde::Serialize, serde::Deserialize)]
10738    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10739    /**Function with signature `getMaxMagnitude(address,address)` and selector `0xa9333ec8`.
10740```solidity
10741function getMaxMagnitude(address operator, address strategy) external view returns (uint64);
10742```*/
10743    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10744    #[derive(Clone)]
10745    pub struct getMaxMagnitudeCall {
10746        #[allow(missing_docs)]
10747        pub operator: alloy::sol_types::private::Address,
10748        #[allow(missing_docs)]
10749        pub strategy: alloy::sol_types::private::Address,
10750    }
10751    #[derive(serde::Serialize, serde::Deserialize)]
10752    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10753    ///Container type for the return parameters of the [`getMaxMagnitude(address,address)`](getMaxMagnitudeCall) function.
10754    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10755    #[derive(Clone)]
10756    pub struct getMaxMagnitudeReturn {
10757        #[allow(missing_docs)]
10758        pub _0: u64,
10759    }
10760    #[allow(
10761        non_camel_case_types,
10762        non_snake_case,
10763        clippy::pub_underscore_fields,
10764        clippy::style
10765    )]
10766    const _: () = {
10767        use alloy::sol_types as alloy_sol_types;
10768        {
10769            #[doc(hidden)]
10770            type UnderlyingSolTuple<'a> = (
10771                alloy::sol_types::sol_data::Address,
10772                alloy::sol_types::sol_data::Address,
10773            );
10774            #[doc(hidden)]
10775            type UnderlyingRustTuple<'a> = (
10776                alloy::sol_types::private::Address,
10777                alloy::sol_types::private::Address,
10778            );
10779            #[cfg(test)]
10780            #[allow(dead_code, unreachable_patterns)]
10781            fn _type_assertion(
10782                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10783            ) {
10784                match _t {
10785                    alloy_sol_types::private::AssertTypeEq::<
10786                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10787                    >(_) => {}
10788                }
10789            }
10790            #[automatically_derived]
10791            #[doc(hidden)]
10792            impl ::core::convert::From<getMaxMagnitudeCall> for UnderlyingRustTuple<'_> {
10793                fn from(value: getMaxMagnitudeCall) -> Self {
10794                    (value.operator, value.strategy)
10795                }
10796            }
10797            #[automatically_derived]
10798            #[doc(hidden)]
10799            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getMaxMagnitudeCall {
10800                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10801                    Self {
10802                        operator: tuple.0,
10803                        strategy: tuple.1,
10804                    }
10805                }
10806            }
10807        }
10808        {
10809            #[doc(hidden)]
10810            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
10811            #[doc(hidden)]
10812            type UnderlyingRustTuple<'a> = (u64,);
10813            #[cfg(test)]
10814            #[allow(dead_code, unreachable_patterns)]
10815            fn _type_assertion(
10816                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10817            ) {
10818                match _t {
10819                    alloy_sol_types::private::AssertTypeEq::<
10820                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10821                    >(_) => {}
10822                }
10823            }
10824            #[automatically_derived]
10825            #[doc(hidden)]
10826            impl ::core::convert::From<getMaxMagnitudeReturn>
10827            for UnderlyingRustTuple<'_> {
10828                fn from(value: getMaxMagnitudeReturn) -> Self {
10829                    (value._0,)
10830                }
10831            }
10832            #[automatically_derived]
10833            #[doc(hidden)]
10834            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10835            for getMaxMagnitudeReturn {
10836                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10837                    Self { _0: tuple.0 }
10838                }
10839            }
10840        }
10841        #[automatically_derived]
10842        impl alloy_sol_types::SolCall for getMaxMagnitudeCall {
10843            type Parameters<'a> = (
10844                alloy::sol_types::sol_data::Address,
10845                alloy::sol_types::sol_data::Address,
10846            );
10847            type Token<'a> = <Self::Parameters<
10848                'a,
10849            > as alloy_sol_types::SolType>::Token<'a>;
10850            type Return = u64;
10851            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
10852            type ReturnToken<'a> = <Self::ReturnTuple<
10853                'a,
10854            > as alloy_sol_types::SolType>::Token<'a>;
10855            const SIGNATURE: &'static str = "getMaxMagnitude(address,address)";
10856            const SELECTOR: [u8; 4] = [169u8, 51u8, 62u8, 200u8];
10857            #[inline]
10858            fn new<'a>(
10859                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10860            ) -> Self {
10861                tuple.into()
10862            }
10863            #[inline]
10864            fn tokenize(&self) -> Self::Token<'_> {
10865                (
10866                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10867                        &self.operator,
10868                    ),
10869                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10870                        &self.strategy,
10871                    ),
10872                )
10873            }
10874            #[inline]
10875            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
10876                (
10877                    <alloy::sol_types::sol_data::Uint<
10878                        64,
10879                    > as alloy_sol_types::SolType>::tokenize(ret),
10880                )
10881            }
10882            #[inline]
10883            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
10884                <Self::ReturnTuple<
10885                    '_,
10886                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
10887                    .map(|r| {
10888                        let r: getMaxMagnitudeReturn = r.into();
10889                        r._0
10890                    })
10891            }
10892            #[inline]
10893            fn abi_decode_returns_validate(
10894                data: &[u8],
10895            ) -> alloy_sol_types::Result<Self::Return> {
10896                <Self::ReturnTuple<
10897                    '_,
10898                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
10899                    .map(|r| {
10900                        let r: getMaxMagnitudeReturn = r.into();
10901                        r._0
10902                    })
10903            }
10904        }
10905    };
10906    #[derive(serde::Serialize, serde::Deserialize)]
10907    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10908    /**Function with signature `getMaxMagnitudes(address[],address)` and selector `0x4a10ffe5`.
10909```solidity
10910function getMaxMagnitudes(address[] memory operators, address strategy) external view returns (uint64[] memory);
10911```*/
10912    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10913    #[derive(Clone)]
10914    pub struct getMaxMagnitudes_0Call {
10915        #[allow(missing_docs)]
10916        pub operators: alloy::sol_types::private::Vec<
10917            alloy::sol_types::private::Address,
10918        >,
10919        #[allow(missing_docs)]
10920        pub strategy: alloy::sol_types::private::Address,
10921    }
10922    #[derive(serde::Serialize, serde::Deserialize)]
10923    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10924    ///Container type for the return parameters of the [`getMaxMagnitudes(address[],address)`](getMaxMagnitudes_0Call) function.
10925    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10926    #[derive(Clone)]
10927    pub struct getMaxMagnitudes_0Return {
10928        #[allow(missing_docs)]
10929        pub _0: alloy::sol_types::private::Vec<u64>,
10930    }
10931    #[allow(
10932        non_camel_case_types,
10933        non_snake_case,
10934        clippy::pub_underscore_fields,
10935        clippy::style
10936    )]
10937    const _: () = {
10938        use alloy::sol_types as alloy_sol_types;
10939        {
10940            #[doc(hidden)]
10941            type UnderlyingSolTuple<'a> = (
10942                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
10943                alloy::sol_types::sol_data::Address,
10944            );
10945            #[doc(hidden)]
10946            type UnderlyingRustTuple<'a> = (
10947                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
10948                alloy::sol_types::private::Address,
10949            );
10950            #[cfg(test)]
10951            #[allow(dead_code, unreachable_patterns)]
10952            fn _type_assertion(
10953                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10954            ) {
10955                match _t {
10956                    alloy_sol_types::private::AssertTypeEq::<
10957                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10958                    >(_) => {}
10959                }
10960            }
10961            #[automatically_derived]
10962            #[doc(hidden)]
10963            impl ::core::convert::From<getMaxMagnitudes_0Call>
10964            for UnderlyingRustTuple<'_> {
10965                fn from(value: getMaxMagnitudes_0Call) -> Self {
10966                    (value.operators, value.strategy)
10967                }
10968            }
10969            #[automatically_derived]
10970            #[doc(hidden)]
10971            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10972            for getMaxMagnitudes_0Call {
10973                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10974                    Self {
10975                        operators: tuple.0,
10976                        strategy: tuple.1,
10977                    }
10978                }
10979            }
10980        }
10981        {
10982            #[doc(hidden)]
10983            type UnderlyingSolTuple<'a> = (
10984                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
10985            );
10986            #[doc(hidden)]
10987            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec<u64>,);
10988            #[cfg(test)]
10989            #[allow(dead_code, unreachable_patterns)]
10990            fn _type_assertion(
10991                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10992            ) {
10993                match _t {
10994                    alloy_sol_types::private::AssertTypeEq::<
10995                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10996                    >(_) => {}
10997                }
10998            }
10999            #[automatically_derived]
11000            #[doc(hidden)]
11001            impl ::core::convert::From<getMaxMagnitudes_0Return>
11002            for UnderlyingRustTuple<'_> {
11003                fn from(value: getMaxMagnitudes_0Return) -> Self {
11004                    (value._0,)
11005                }
11006            }
11007            #[automatically_derived]
11008            #[doc(hidden)]
11009            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11010            for getMaxMagnitudes_0Return {
11011                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11012                    Self { _0: tuple.0 }
11013                }
11014            }
11015        }
11016        #[automatically_derived]
11017        impl alloy_sol_types::SolCall for getMaxMagnitudes_0Call {
11018            type Parameters<'a> = (
11019                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11020                alloy::sol_types::sol_data::Address,
11021            );
11022            type Token<'a> = <Self::Parameters<
11023                'a,
11024            > as alloy_sol_types::SolType>::Token<'a>;
11025            type Return = alloy::sol_types::private::Vec<u64>;
11026            type ReturnTuple<'a> = (
11027                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
11028            );
11029            type ReturnToken<'a> = <Self::ReturnTuple<
11030                'a,
11031            > as alloy_sol_types::SolType>::Token<'a>;
11032            const SIGNATURE: &'static str = "getMaxMagnitudes(address[],address)";
11033            const SELECTOR: [u8; 4] = [74u8, 16u8, 255u8, 229u8];
11034            #[inline]
11035            fn new<'a>(
11036                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11037            ) -> Self {
11038                tuple.into()
11039            }
11040            #[inline]
11041            fn tokenize(&self) -> Self::Token<'_> {
11042                (
11043                    <alloy::sol_types::sol_data::Array<
11044                        alloy::sol_types::sol_data::Address,
11045                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
11046                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11047                        &self.strategy,
11048                    ),
11049                )
11050            }
11051            #[inline]
11052            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
11053                (
11054                    <alloy::sol_types::sol_data::Array<
11055                        alloy::sol_types::sol_data::Uint<64>,
11056                    > as alloy_sol_types::SolType>::tokenize(ret),
11057                )
11058            }
11059            #[inline]
11060            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
11061                <Self::ReturnTuple<
11062                    '_,
11063                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
11064                    .map(|r| {
11065                        let r: getMaxMagnitudes_0Return = r.into();
11066                        r._0
11067                    })
11068            }
11069            #[inline]
11070            fn abi_decode_returns_validate(
11071                data: &[u8],
11072            ) -> alloy_sol_types::Result<Self::Return> {
11073                <Self::ReturnTuple<
11074                    '_,
11075                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
11076                    .map(|r| {
11077                        let r: getMaxMagnitudes_0Return = r.into();
11078                        r._0
11079                    })
11080            }
11081        }
11082    };
11083    #[derive(serde::Serialize, serde::Deserialize)]
11084    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11085    /**Function with signature `getMaxMagnitudes(address,address[])` and selector `0x547afb87`.
11086```solidity
11087function getMaxMagnitudes(address operator, address[] memory strategies) external view returns (uint64[] memory);
11088```*/
11089    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11090    #[derive(Clone)]
11091    pub struct getMaxMagnitudes_1Call {
11092        #[allow(missing_docs)]
11093        pub operator: alloy::sol_types::private::Address,
11094        #[allow(missing_docs)]
11095        pub strategies: alloy::sol_types::private::Vec<
11096            alloy::sol_types::private::Address,
11097        >,
11098    }
11099    #[derive(serde::Serialize, serde::Deserialize)]
11100    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11101    ///Container type for the return parameters of the [`getMaxMagnitudes(address,address[])`](getMaxMagnitudes_1Call) function.
11102    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11103    #[derive(Clone)]
11104    pub struct getMaxMagnitudes_1Return {
11105        #[allow(missing_docs)]
11106        pub _0: alloy::sol_types::private::Vec<u64>,
11107    }
11108    #[allow(
11109        non_camel_case_types,
11110        non_snake_case,
11111        clippy::pub_underscore_fields,
11112        clippy::style
11113    )]
11114    const _: () = {
11115        use alloy::sol_types as alloy_sol_types;
11116        {
11117            #[doc(hidden)]
11118            type UnderlyingSolTuple<'a> = (
11119                alloy::sol_types::sol_data::Address,
11120                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11121            );
11122            #[doc(hidden)]
11123            type UnderlyingRustTuple<'a> = (
11124                alloy::sol_types::private::Address,
11125                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11126            );
11127            #[cfg(test)]
11128            #[allow(dead_code, unreachable_patterns)]
11129            fn _type_assertion(
11130                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11131            ) {
11132                match _t {
11133                    alloy_sol_types::private::AssertTypeEq::<
11134                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11135                    >(_) => {}
11136                }
11137            }
11138            #[automatically_derived]
11139            #[doc(hidden)]
11140            impl ::core::convert::From<getMaxMagnitudes_1Call>
11141            for UnderlyingRustTuple<'_> {
11142                fn from(value: getMaxMagnitudes_1Call) -> Self {
11143                    (value.operator, value.strategies)
11144                }
11145            }
11146            #[automatically_derived]
11147            #[doc(hidden)]
11148            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11149            for getMaxMagnitudes_1Call {
11150                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11151                    Self {
11152                        operator: tuple.0,
11153                        strategies: tuple.1,
11154                    }
11155                }
11156            }
11157        }
11158        {
11159            #[doc(hidden)]
11160            type UnderlyingSolTuple<'a> = (
11161                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
11162            );
11163            #[doc(hidden)]
11164            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec<u64>,);
11165            #[cfg(test)]
11166            #[allow(dead_code, unreachable_patterns)]
11167            fn _type_assertion(
11168                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11169            ) {
11170                match _t {
11171                    alloy_sol_types::private::AssertTypeEq::<
11172                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11173                    >(_) => {}
11174                }
11175            }
11176            #[automatically_derived]
11177            #[doc(hidden)]
11178            impl ::core::convert::From<getMaxMagnitudes_1Return>
11179            for UnderlyingRustTuple<'_> {
11180                fn from(value: getMaxMagnitudes_1Return) -> Self {
11181                    (value._0,)
11182                }
11183            }
11184            #[automatically_derived]
11185            #[doc(hidden)]
11186            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11187            for getMaxMagnitudes_1Return {
11188                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11189                    Self { _0: tuple.0 }
11190                }
11191            }
11192        }
11193        #[automatically_derived]
11194        impl alloy_sol_types::SolCall for getMaxMagnitudes_1Call {
11195            type Parameters<'a> = (
11196                alloy::sol_types::sol_data::Address,
11197                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11198            );
11199            type Token<'a> = <Self::Parameters<
11200                'a,
11201            > as alloy_sol_types::SolType>::Token<'a>;
11202            type Return = alloy::sol_types::private::Vec<u64>;
11203            type ReturnTuple<'a> = (
11204                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
11205            );
11206            type ReturnToken<'a> = <Self::ReturnTuple<
11207                'a,
11208            > as alloy_sol_types::SolType>::Token<'a>;
11209            const SIGNATURE: &'static str = "getMaxMagnitudes(address,address[])";
11210            const SELECTOR: [u8; 4] = [84u8, 122u8, 251u8, 135u8];
11211            #[inline]
11212            fn new<'a>(
11213                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11214            ) -> Self {
11215                tuple.into()
11216            }
11217            #[inline]
11218            fn tokenize(&self) -> Self::Token<'_> {
11219                (
11220                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11221                        &self.operator,
11222                    ),
11223                    <alloy::sol_types::sol_data::Array<
11224                        alloy::sol_types::sol_data::Address,
11225                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
11226                )
11227            }
11228            #[inline]
11229            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
11230                (
11231                    <alloy::sol_types::sol_data::Array<
11232                        alloy::sol_types::sol_data::Uint<64>,
11233                    > as alloy_sol_types::SolType>::tokenize(ret),
11234                )
11235            }
11236            #[inline]
11237            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
11238                <Self::ReturnTuple<
11239                    '_,
11240                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
11241                    .map(|r| {
11242                        let r: getMaxMagnitudes_1Return = r.into();
11243                        r._0
11244                    })
11245            }
11246            #[inline]
11247            fn abi_decode_returns_validate(
11248                data: &[u8],
11249            ) -> alloy_sol_types::Result<Self::Return> {
11250                <Self::ReturnTuple<
11251                    '_,
11252                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
11253                    .map(|r| {
11254                        let r: getMaxMagnitudes_1Return = r.into();
11255                        r._0
11256                    })
11257            }
11258        }
11259    };
11260    #[derive(serde::Serialize, serde::Deserialize)]
11261    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11262    /**Function with signature `getMaxMagnitudesAtBlock(address,address[],uint32)` and selector `0x94d7d00c`.
11263```solidity
11264function getMaxMagnitudesAtBlock(address operator, address[] memory strategies, uint32 blockNumber) external view returns (uint64[] memory);
11265```*/
11266    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11267    #[derive(Clone)]
11268    pub struct getMaxMagnitudesAtBlockCall {
11269        #[allow(missing_docs)]
11270        pub operator: alloy::sol_types::private::Address,
11271        #[allow(missing_docs)]
11272        pub strategies: alloy::sol_types::private::Vec<
11273            alloy::sol_types::private::Address,
11274        >,
11275        #[allow(missing_docs)]
11276        pub blockNumber: u32,
11277    }
11278    #[derive(serde::Serialize, serde::Deserialize)]
11279    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11280    ///Container type for the return parameters of the [`getMaxMagnitudesAtBlock(address,address[],uint32)`](getMaxMagnitudesAtBlockCall) function.
11281    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11282    #[derive(Clone)]
11283    pub struct getMaxMagnitudesAtBlockReturn {
11284        #[allow(missing_docs)]
11285        pub _0: alloy::sol_types::private::Vec<u64>,
11286    }
11287    #[allow(
11288        non_camel_case_types,
11289        non_snake_case,
11290        clippy::pub_underscore_fields,
11291        clippy::style
11292    )]
11293    const _: () = {
11294        use alloy::sol_types as alloy_sol_types;
11295        {
11296            #[doc(hidden)]
11297            type UnderlyingSolTuple<'a> = (
11298                alloy::sol_types::sol_data::Address,
11299                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11300                alloy::sol_types::sol_data::Uint<32>,
11301            );
11302            #[doc(hidden)]
11303            type UnderlyingRustTuple<'a> = (
11304                alloy::sol_types::private::Address,
11305                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11306                u32,
11307            );
11308            #[cfg(test)]
11309            #[allow(dead_code, unreachable_patterns)]
11310            fn _type_assertion(
11311                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11312            ) {
11313                match _t {
11314                    alloy_sol_types::private::AssertTypeEq::<
11315                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11316                    >(_) => {}
11317                }
11318            }
11319            #[automatically_derived]
11320            #[doc(hidden)]
11321            impl ::core::convert::From<getMaxMagnitudesAtBlockCall>
11322            for UnderlyingRustTuple<'_> {
11323                fn from(value: getMaxMagnitudesAtBlockCall) -> Self {
11324                    (value.operator, value.strategies, value.blockNumber)
11325                }
11326            }
11327            #[automatically_derived]
11328            #[doc(hidden)]
11329            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11330            for getMaxMagnitudesAtBlockCall {
11331                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11332                    Self {
11333                        operator: tuple.0,
11334                        strategies: tuple.1,
11335                        blockNumber: tuple.2,
11336                    }
11337                }
11338            }
11339        }
11340        {
11341            #[doc(hidden)]
11342            type UnderlyingSolTuple<'a> = (
11343                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
11344            );
11345            #[doc(hidden)]
11346            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec<u64>,);
11347            #[cfg(test)]
11348            #[allow(dead_code, unreachable_patterns)]
11349            fn _type_assertion(
11350                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11351            ) {
11352                match _t {
11353                    alloy_sol_types::private::AssertTypeEq::<
11354                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11355                    >(_) => {}
11356                }
11357            }
11358            #[automatically_derived]
11359            #[doc(hidden)]
11360            impl ::core::convert::From<getMaxMagnitudesAtBlockReturn>
11361            for UnderlyingRustTuple<'_> {
11362                fn from(value: getMaxMagnitudesAtBlockReturn) -> Self {
11363                    (value._0,)
11364                }
11365            }
11366            #[automatically_derived]
11367            #[doc(hidden)]
11368            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11369            for getMaxMagnitudesAtBlockReturn {
11370                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11371                    Self { _0: tuple.0 }
11372                }
11373            }
11374        }
11375        #[automatically_derived]
11376        impl alloy_sol_types::SolCall for getMaxMagnitudesAtBlockCall {
11377            type Parameters<'a> = (
11378                alloy::sol_types::sol_data::Address,
11379                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11380                alloy::sol_types::sol_data::Uint<32>,
11381            );
11382            type Token<'a> = <Self::Parameters<
11383                'a,
11384            > as alloy_sol_types::SolType>::Token<'a>;
11385            type Return = alloy::sol_types::private::Vec<u64>;
11386            type ReturnTuple<'a> = (
11387                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<64>>,
11388            );
11389            type ReturnToken<'a> = <Self::ReturnTuple<
11390                'a,
11391            > as alloy_sol_types::SolType>::Token<'a>;
11392            const SIGNATURE: &'static str = "getMaxMagnitudesAtBlock(address,address[],uint32)";
11393            const SELECTOR: [u8; 4] = [148u8, 215u8, 208u8, 12u8];
11394            #[inline]
11395            fn new<'a>(
11396                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11397            ) -> Self {
11398                tuple.into()
11399            }
11400            #[inline]
11401            fn tokenize(&self) -> Self::Token<'_> {
11402                (
11403                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11404                        &self.operator,
11405                    ),
11406                    <alloy::sol_types::sol_data::Array<
11407                        alloy::sol_types::sol_data::Address,
11408                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
11409                    <alloy::sol_types::sol_data::Uint<
11410                        32,
11411                    > as alloy_sol_types::SolType>::tokenize(&self.blockNumber),
11412                )
11413            }
11414            #[inline]
11415            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
11416                (
11417                    <alloy::sol_types::sol_data::Array<
11418                        alloy::sol_types::sol_data::Uint<64>,
11419                    > as alloy_sol_types::SolType>::tokenize(ret),
11420                )
11421            }
11422            #[inline]
11423            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
11424                <Self::ReturnTuple<
11425                    '_,
11426                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
11427                    .map(|r| {
11428                        let r: getMaxMagnitudesAtBlockReturn = r.into();
11429                        r._0
11430                    })
11431            }
11432            #[inline]
11433            fn abi_decode_returns_validate(
11434                data: &[u8],
11435            ) -> alloy_sol_types::Result<Self::Return> {
11436                <Self::ReturnTuple<
11437                    '_,
11438                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
11439                    .map(|r| {
11440                        let r: getMaxMagnitudesAtBlockReturn = r.into();
11441                        r._0
11442                    })
11443            }
11444        }
11445    };
11446    #[derive(serde::Serialize, serde::Deserialize)]
11447    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11448    /**Function with signature `getMemberCount((address,uint32))` and selector `0xb2447af7`.
11449```solidity
11450function getMemberCount(OperatorSet memory operatorSet) external view returns (uint256);
11451```*/
11452    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11453    #[derive(Clone)]
11454    pub struct getMemberCountCall {
11455        #[allow(missing_docs)]
11456        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
11457    }
11458    #[derive(serde::Serialize, serde::Deserialize)]
11459    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11460    ///Container type for the return parameters of the [`getMemberCount((address,uint32))`](getMemberCountCall) function.
11461    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11462    #[derive(Clone)]
11463    pub struct getMemberCountReturn {
11464        #[allow(missing_docs)]
11465        pub _0: alloy::sol_types::private::primitives::aliases::U256,
11466    }
11467    #[allow(
11468        non_camel_case_types,
11469        non_snake_case,
11470        clippy::pub_underscore_fields,
11471        clippy::style
11472    )]
11473    const _: () = {
11474        use alloy::sol_types as alloy_sol_types;
11475        {
11476            #[doc(hidden)]
11477            type UnderlyingSolTuple<'a> = (OperatorSet,);
11478            #[doc(hidden)]
11479            type UnderlyingRustTuple<'a> = (
11480                <OperatorSet as alloy::sol_types::SolType>::RustType,
11481            );
11482            #[cfg(test)]
11483            #[allow(dead_code, unreachable_patterns)]
11484            fn _type_assertion(
11485                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11486            ) {
11487                match _t {
11488                    alloy_sol_types::private::AssertTypeEq::<
11489                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11490                    >(_) => {}
11491                }
11492            }
11493            #[automatically_derived]
11494            #[doc(hidden)]
11495            impl ::core::convert::From<getMemberCountCall> for UnderlyingRustTuple<'_> {
11496                fn from(value: getMemberCountCall) -> Self {
11497                    (value.operatorSet,)
11498                }
11499            }
11500            #[automatically_derived]
11501            #[doc(hidden)]
11502            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getMemberCountCall {
11503                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11504                    Self { operatorSet: tuple.0 }
11505                }
11506            }
11507        }
11508        {
11509            #[doc(hidden)]
11510            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
11511            #[doc(hidden)]
11512            type UnderlyingRustTuple<'a> = (
11513                alloy::sol_types::private::primitives::aliases::U256,
11514            );
11515            #[cfg(test)]
11516            #[allow(dead_code, unreachable_patterns)]
11517            fn _type_assertion(
11518                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11519            ) {
11520                match _t {
11521                    alloy_sol_types::private::AssertTypeEq::<
11522                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11523                    >(_) => {}
11524                }
11525            }
11526            #[automatically_derived]
11527            #[doc(hidden)]
11528            impl ::core::convert::From<getMemberCountReturn>
11529            for UnderlyingRustTuple<'_> {
11530                fn from(value: getMemberCountReturn) -> Self {
11531                    (value._0,)
11532                }
11533            }
11534            #[automatically_derived]
11535            #[doc(hidden)]
11536            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11537            for getMemberCountReturn {
11538                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11539                    Self { _0: tuple.0 }
11540                }
11541            }
11542        }
11543        #[automatically_derived]
11544        impl alloy_sol_types::SolCall for getMemberCountCall {
11545            type Parameters<'a> = (OperatorSet,);
11546            type Token<'a> = <Self::Parameters<
11547                'a,
11548            > as alloy_sol_types::SolType>::Token<'a>;
11549            type Return = alloy::sol_types::private::primitives::aliases::U256;
11550            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
11551            type ReturnToken<'a> = <Self::ReturnTuple<
11552                'a,
11553            > as alloy_sol_types::SolType>::Token<'a>;
11554            const SIGNATURE: &'static str = "getMemberCount((address,uint32))";
11555            const SELECTOR: [u8; 4] = [178u8, 68u8, 122u8, 247u8];
11556            #[inline]
11557            fn new<'a>(
11558                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11559            ) -> Self {
11560                tuple.into()
11561            }
11562            #[inline]
11563            fn tokenize(&self) -> Self::Token<'_> {
11564                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
11565            }
11566            #[inline]
11567            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
11568                (
11569                    <alloy::sol_types::sol_data::Uint<
11570                        256,
11571                    > as alloy_sol_types::SolType>::tokenize(ret),
11572                )
11573            }
11574            #[inline]
11575            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
11576                <Self::ReturnTuple<
11577                    '_,
11578                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
11579                    .map(|r| {
11580                        let r: getMemberCountReturn = r.into();
11581                        r._0
11582                    })
11583            }
11584            #[inline]
11585            fn abi_decode_returns_validate(
11586                data: &[u8],
11587            ) -> alloy_sol_types::Result<Self::Return> {
11588                <Self::ReturnTuple<
11589                    '_,
11590                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
11591                    .map(|r| {
11592                        let r: getMemberCountReturn = r.into();
11593                        r._0
11594                    })
11595            }
11596        }
11597    };
11598    #[derive(serde::Serialize, serde::Deserialize)]
11599    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11600    /**Function with signature `getMembers((address,uint32))` and selector `0x6e875dba`.
11601```solidity
11602function getMembers(OperatorSet memory operatorSet) external view returns (address[] memory);
11603```*/
11604    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11605    #[derive(Clone)]
11606    pub struct getMembersCall {
11607        #[allow(missing_docs)]
11608        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
11609    }
11610    #[derive(serde::Serialize, serde::Deserialize)]
11611    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11612    ///Container type for the return parameters of the [`getMembers((address,uint32))`](getMembersCall) function.
11613    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11614    #[derive(Clone)]
11615    pub struct getMembersReturn {
11616        #[allow(missing_docs)]
11617        pub _0: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11618    }
11619    #[allow(
11620        non_camel_case_types,
11621        non_snake_case,
11622        clippy::pub_underscore_fields,
11623        clippy::style
11624    )]
11625    const _: () = {
11626        use alloy::sol_types as alloy_sol_types;
11627        {
11628            #[doc(hidden)]
11629            type UnderlyingSolTuple<'a> = (OperatorSet,);
11630            #[doc(hidden)]
11631            type UnderlyingRustTuple<'a> = (
11632                <OperatorSet as alloy::sol_types::SolType>::RustType,
11633            );
11634            #[cfg(test)]
11635            #[allow(dead_code, unreachable_patterns)]
11636            fn _type_assertion(
11637                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11638            ) {
11639                match _t {
11640                    alloy_sol_types::private::AssertTypeEq::<
11641                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11642                    >(_) => {}
11643                }
11644            }
11645            #[automatically_derived]
11646            #[doc(hidden)]
11647            impl ::core::convert::From<getMembersCall> for UnderlyingRustTuple<'_> {
11648                fn from(value: getMembersCall) -> Self {
11649                    (value.operatorSet,)
11650                }
11651            }
11652            #[automatically_derived]
11653            #[doc(hidden)]
11654            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getMembersCall {
11655                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11656                    Self { operatorSet: tuple.0 }
11657                }
11658            }
11659        }
11660        {
11661            #[doc(hidden)]
11662            type UnderlyingSolTuple<'a> = (
11663                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11664            );
11665            #[doc(hidden)]
11666            type UnderlyingRustTuple<'a> = (
11667                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11668            );
11669            #[cfg(test)]
11670            #[allow(dead_code, unreachable_patterns)]
11671            fn _type_assertion(
11672                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11673            ) {
11674                match _t {
11675                    alloy_sol_types::private::AssertTypeEq::<
11676                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11677                    >(_) => {}
11678                }
11679            }
11680            #[automatically_derived]
11681            #[doc(hidden)]
11682            impl ::core::convert::From<getMembersReturn> for UnderlyingRustTuple<'_> {
11683                fn from(value: getMembersReturn) -> Self {
11684                    (value._0,)
11685                }
11686            }
11687            #[automatically_derived]
11688            #[doc(hidden)]
11689            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getMembersReturn {
11690                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11691                    Self { _0: tuple.0 }
11692                }
11693            }
11694        }
11695        #[automatically_derived]
11696        impl alloy_sol_types::SolCall for getMembersCall {
11697            type Parameters<'a> = (OperatorSet,);
11698            type Token<'a> = <Self::Parameters<
11699                'a,
11700            > as alloy_sol_types::SolType>::Token<'a>;
11701            type Return = alloy::sol_types::private::Vec<
11702                alloy::sol_types::private::Address,
11703            >;
11704            type ReturnTuple<'a> = (
11705                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11706            );
11707            type ReturnToken<'a> = <Self::ReturnTuple<
11708                'a,
11709            > as alloy_sol_types::SolType>::Token<'a>;
11710            const SIGNATURE: &'static str = "getMembers((address,uint32))";
11711            const SELECTOR: [u8; 4] = [110u8, 135u8, 93u8, 186u8];
11712            #[inline]
11713            fn new<'a>(
11714                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11715            ) -> Self {
11716                tuple.into()
11717            }
11718            #[inline]
11719            fn tokenize(&self) -> Self::Token<'_> {
11720                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
11721            }
11722            #[inline]
11723            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
11724                (
11725                    <alloy::sol_types::sol_data::Array<
11726                        alloy::sol_types::sol_data::Address,
11727                    > as alloy_sol_types::SolType>::tokenize(ret),
11728                )
11729            }
11730            #[inline]
11731            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
11732                <Self::ReturnTuple<
11733                    '_,
11734                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
11735                    .map(|r| {
11736                        let r: getMembersReturn = r.into();
11737                        r._0
11738                    })
11739            }
11740            #[inline]
11741            fn abi_decode_returns_validate(
11742                data: &[u8],
11743            ) -> alloy_sol_types::Result<Self::Return> {
11744                <Self::ReturnTuple<
11745                    '_,
11746                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
11747                    .map(|r| {
11748                        let r: getMembersReturn = r.into();
11749                        r._0
11750                    })
11751            }
11752        }
11753    };
11754    #[derive(serde::Serialize, serde::Deserialize)]
11755    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11756    /**Function with signature `getMinimumSlashableStake((address,uint32),address[],address[],uint32)` and selector `0x2bab2c4a`.
11757```solidity
11758function getMinimumSlashableStake(OperatorSet memory operatorSet, address[] memory operators, address[] memory strategies, uint32 futureBlock) external view returns (uint256[][] memory slashableStake);
11759```*/
11760    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11761    #[derive(Clone)]
11762    pub struct getMinimumSlashableStakeCall {
11763        #[allow(missing_docs)]
11764        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
11765        #[allow(missing_docs)]
11766        pub operators: alloy::sol_types::private::Vec<
11767            alloy::sol_types::private::Address,
11768        >,
11769        #[allow(missing_docs)]
11770        pub strategies: alloy::sol_types::private::Vec<
11771            alloy::sol_types::private::Address,
11772        >,
11773        #[allow(missing_docs)]
11774        pub futureBlock: u32,
11775    }
11776    #[derive(serde::Serialize, serde::Deserialize)]
11777    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11778    ///Container type for the return parameters of the [`getMinimumSlashableStake((address,uint32),address[],address[],uint32)`](getMinimumSlashableStakeCall) function.
11779    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11780    #[derive(Clone)]
11781    pub struct getMinimumSlashableStakeReturn {
11782        #[allow(missing_docs)]
11783        pub slashableStake: alloy::sol_types::private::Vec<
11784            alloy::sol_types::private::Vec<
11785                alloy::sol_types::private::primitives::aliases::U256,
11786            >,
11787        >,
11788    }
11789    #[allow(
11790        non_camel_case_types,
11791        non_snake_case,
11792        clippy::pub_underscore_fields,
11793        clippy::style
11794    )]
11795    const _: () = {
11796        use alloy::sol_types as alloy_sol_types;
11797        {
11798            #[doc(hidden)]
11799            type UnderlyingSolTuple<'a> = (
11800                OperatorSet,
11801                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11802                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11803                alloy::sol_types::sol_data::Uint<32>,
11804            );
11805            #[doc(hidden)]
11806            type UnderlyingRustTuple<'a> = (
11807                <OperatorSet as alloy::sol_types::SolType>::RustType,
11808                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11809                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
11810                u32,
11811            );
11812            #[cfg(test)]
11813            #[allow(dead_code, unreachable_patterns)]
11814            fn _type_assertion(
11815                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11816            ) {
11817                match _t {
11818                    alloy_sol_types::private::AssertTypeEq::<
11819                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11820                    >(_) => {}
11821                }
11822            }
11823            #[automatically_derived]
11824            #[doc(hidden)]
11825            impl ::core::convert::From<getMinimumSlashableStakeCall>
11826            for UnderlyingRustTuple<'_> {
11827                fn from(value: getMinimumSlashableStakeCall) -> Self {
11828                    (
11829                        value.operatorSet,
11830                        value.operators,
11831                        value.strategies,
11832                        value.futureBlock,
11833                    )
11834                }
11835            }
11836            #[automatically_derived]
11837            #[doc(hidden)]
11838            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11839            for getMinimumSlashableStakeCall {
11840                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11841                    Self {
11842                        operatorSet: tuple.0,
11843                        operators: tuple.1,
11844                        strategies: tuple.2,
11845                        futureBlock: tuple.3,
11846                    }
11847                }
11848            }
11849        }
11850        {
11851            #[doc(hidden)]
11852            type UnderlyingSolTuple<'a> = (
11853                alloy::sol_types::sol_data::Array<
11854                    alloy::sol_types::sol_data::Array<
11855                        alloy::sol_types::sol_data::Uint<256>,
11856                    >,
11857                >,
11858            );
11859            #[doc(hidden)]
11860            type UnderlyingRustTuple<'a> = (
11861                alloy::sol_types::private::Vec<
11862                    alloy::sol_types::private::Vec<
11863                        alloy::sol_types::private::primitives::aliases::U256,
11864                    >,
11865                >,
11866            );
11867            #[cfg(test)]
11868            #[allow(dead_code, unreachable_patterns)]
11869            fn _type_assertion(
11870                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11871            ) {
11872                match _t {
11873                    alloy_sol_types::private::AssertTypeEq::<
11874                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11875                    >(_) => {}
11876                }
11877            }
11878            #[automatically_derived]
11879            #[doc(hidden)]
11880            impl ::core::convert::From<getMinimumSlashableStakeReturn>
11881            for UnderlyingRustTuple<'_> {
11882                fn from(value: getMinimumSlashableStakeReturn) -> Self {
11883                    (value.slashableStake,)
11884                }
11885            }
11886            #[automatically_derived]
11887            #[doc(hidden)]
11888            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11889            for getMinimumSlashableStakeReturn {
11890                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11891                    Self { slashableStake: tuple.0 }
11892                }
11893            }
11894        }
11895        #[automatically_derived]
11896        impl alloy_sol_types::SolCall for getMinimumSlashableStakeCall {
11897            type Parameters<'a> = (
11898                OperatorSet,
11899                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11900                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
11901                alloy::sol_types::sol_data::Uint<32>,
11902            );
11903            type Token<'a> = <Self::Parameters<
11904                'a,
11905            > as alloy_sol_types::SolType>::Token<'a>;
11906            type Return = alloy::sol_types::private::Vec<
11907                alloy::sol_types::private::Vec<
11908                    alloy::sol_types::private::primitives::aliases::U256,
11909                >,
11910            >;
11911            type ReturnTuple<'a> = (
11912                alloy::sol_types::sol_data::Array<
11913                    alloy::sol_types::sol_data::Array<
11914                        alloy::sol_types::sol_data::Uint<256>,
11915                    >,
11916                >,
11917            );
11918            type ReturnToken<'a> = <Self::ReturnTuple<
11919                'a,
11920            > as alloy_sol_types::SolType>::Token<'a>;
11921            const SIGNATURE: &'static str = "getMinimumSlashableStake((address,uint32),address[],address[],uint32)";
11922            const SELECTOR: [u8; 4] = [43u8, 171u8, 44u8, 74u8];
11923            #[inline]
11924            fn new<'a>(
11925                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11926            ) -> Self {
11927                tuple.into()
11928            }
11929            #[inline]
11930            fn tokenize(&self) -> Self::Token<'_> {
11931                (
11932                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
11933                        &self.operatorSet,
11934                    ),
11935                    <alloy::sol_types::sol_data::Array<
11936                        alloy::sol_types::sol_data::Address,
11937                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
11938                    <alloy::sol_types::sol_data::Array<
11939                        alloy::sol_types::sol_data::Address,
11940                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
11941                    <alloy::sol_types::sol_data::Uint<
11942                        32,
11943                    > as alloy_sol_types::SolType>::tokenize(&self.futureBlock),
11944                )
11945            }
11946            #[inline]
11947            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
11948                (
11949                    <alloy::sol_types::sol_data::Array<
11950                        alloy::sol_types::sol_data::Array<
11951                            alloy::sol_types::sol_data::Uint<256>,
11952                        >,
11953                    > as alloy_sol_types::SolType>::tokenize(ret),
11954                )
11955            }
11956            #[inline]
11957            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
11958                <Self::ReturnTuple<
11959                    '_,
11960                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
11961                    .map(|r| {
11962                        let r: getMinimumSlashableStakeReturn = r.into();
11963                        r.slashableStake
11964                    })
11965            }
11966            #[inline]
11967            fn abi_decode_returns_validate(
11968                data: &[u8],
11969            ) -> alloy_sol_types::Result<Self::Return> {
11970                <Self::ReturnTuple<
11971                    '_,
11972                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
11973                    .map(|r| {
11974                        let r: getMinimumSlashableStakeReturn = r.into();
11975                        r.slashableStake
11976                    })
11977            }
11978        }
11979    };
11980    #[derive(serde::Serialize, serde::Deserialize)]
11981    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11982    /**Function with signature `getOperatorSetCount(address)` and selector `0xba1a84e5`.
11983```solidity
11984function getOperatorSetCount(address avs) external view returns (uint256);
11985```*/
11986    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11987    #[derive(Clone)]
11988    pub struct getOperatorSetCountCall {
11989        #[allow(missing_docs)]
11990        pub avs: alloy::sol_types::private::Address,
11991    }
11992    #[derive(serde::Serialize, serde::Deserialize)]
11993    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11994    ///Container type for the return parameters of the [`getOperatorSetCount(address)`](getOperatorSetCountCall) function.
11995    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11996    #[derive(Clone)]
11997    pub struct getOperatorSetCountReturn {
11998        #[allow(missing_docs)]
11999        pub _0: alloy::sol_types::private::primitives::aliases::U256,
12000    }
12001    #[allow(
12002        non_camel_case_types,
12003        non_snake_case,
12004        clippy::pub_underscore_fields,
12005        clippy::style
12006    )]
12007    const _: () = {
12008        use alloy::sol_types as alloy_sol_types;
12009        {
12010            #[doc(hidden)]
12011            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
12012            #[doc(hidden)]
12013            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
12014            #[cfg(test)]
12015            #[allow(dead_code, unreachable_patterns)]
12016            fn _type_assertion(
12017                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12018            ) {
12019                match _t {
12020                    alloy_sol_types::private::AssertTypeEq::<
12021                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12022                    >(_) => {}
12023                }
12024            }
12025            #[automatically_derived]
12026            #[doc(hidden)]
12027            impl ::core::convert::From<getOperatorSetCountCall>
12028            for UnderlyingRustTuple<'_> {
12029                fn from(value: getOperatorSetCountCall) -> Self {
12030                    (value.avs,)
12031                }
12032            }
12033            #[automatically_derived]
12034            #[doc(hidden)]
12035            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12036            for getOperatorSetCountCall {
12037                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12038                    Self { avs: tuple.0 }
12039                }
12040            }
12041        }
12042        {
12043            #[doc(hidden)]
12044            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
12045            #[doc(hidden)]
12046            type UnderlyingRustTuple<'a> = (
12047                alloy::sol_types::private::primitives::aliases::U256,
12048            );
12049            #[cfg(test)]
12050            #[allow(dead_code, unreachable_patterns)]
12051            fn _type_assertion(
12052                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12053            ) {
12054                match _t {
12055                    alloy_sol_types::private::AssertTypeEq::<
12056                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12057                    >(_) => {}
12058                }
12059            }
12060            #[automatically_derived]
12061            #[doc(hidden)]
12062            impl ::core::convert::From<getOperatorSetCountReturn>
12063            for UnderlyingRustTuple<'_> {
12064                fn from(value: getOperatorSetCountReturn) -> Self {
12065                    (value._0,)
12066                }
12067            }
12068            #[automatically_derived]
12069            #[doc(hidden)]
12070            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12071            for getOperatorSetCountReturn {
12072                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12073                    Self { _0: tuple.0 }
12074                }
12075            }
12076        }
12077        #[automatically_derived]
12078        impl alloy_sol_types::SolCall for getOperatorSetCountCall {
12079            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
12080            type Token<'a> = <Self::Parameters<
12081                'a,
12082            > as alloy_sol_types::SolType>::Token<'a>;
12083            type Return = alloy::sol_types::private::primitives::aliases::U256;
12084            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
12085            type ReturnToken<'a> = <Self::ReturnTuple<
12086                'a,
12087            > as alloy_sol_types::SolType>::Token<'a>;
12088            const SIGNATURE: &'static str = "getOperatorSetCount(address)";
12089            const SELECTOR: [u8; 4] = [186u8, 26u8, 132u8, 229u8];
12090            #[inline]
12091            fn new<'a>(
12092                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12093            ) -> Self {
12094                tuple.into()
12095            }
12096            #[inline]
12097            fn tokenize(&self) -> Self::Token<'_> {
12098                (
12099                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12100                        &self.avs,
12101                    ),
12102                )
12103            }
12104            #[inline]
12105            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
12106                (
12107                    <alloy::sol_types::sol_data::Uint<
12108                        256,
12109                    > as alloy_sol_types::SolType>::tokenize(ret),
12110                )
12111            }
12112            #[inline]
12113            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
12114                <Self::ReturnTuple<
12115                    '_,
12116                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
12117                    .map(|r| {
12118                        let r: getOperatorSetCountReturn = r.into();
12119                        r._0
12120                    })
12121            }
12122            #[inline]
12123            fn abi_decode_returns_validate(
12124                data: &[u8],
12125            ) -> alloy_sol_types::Result<Self::Return> {
12126                <Self::ReturnTuple<
12127                    '_,
12128                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
12129                    .map(|r| {
12130                        let r: getOperatorSetCountReturn = r.into();
12131                        r._0
12132                    })
12133            }
12134        }
12135    };
12136    #[derive(serde::Serialize, serde::Deserialize)]
12137    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12138    /**Function with signature `getRegisteredSets(address)` and selector `0x79ae50cd`.
12139```solidity
12140function getRegisteredSets(address operator) external view returns (OperatorSet[] memory);
12141```*/
12142    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12143    #[derive(Clone)]
12144    pub struct getRegisteredSetsCall {
12145        #[allow(missing_docs)]
12146        pub operator: alloy::sol_types::private::Address,
12147    }
12148    #[derive(serde::Serialize, serde::Deserialize)]
12149    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12150    ///Container type for the return parameters of the [`getRegisteredSets(address)`](getRegisteredSetsCall) function.
12151    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12152    #[derive(Clone)]
12153    pub struct getRegisteredSetsReturn {
12154        #[allow(missing_docs)]
12155        pub _0: alloy::sol_types::private::Vec<
12156            <OperatorSet as alloy::sol_types::SolType>::RustType,
12157        >,
12158    }
12159    #[allow(
12160        non_camel_case_types,
12161        non_snake_case,
12162        clippy::pub_underscore_fields,
12163        clippy::style
12164    )]
12165    const _: () = {
12166        use alloy::sol_types as alloy_sol_types;
12167        {
12168            #[doc(hidden)]
12169            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
12170            #[doc(hidden)]
12171            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
12172            #[cfg(test)]
12173            #[allow(dead_code, unreachable_patterns)]
12174            fn _type_assertion(
12175                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12176            ) {
12177                match _t {
12178                    alloy_sol_types::private::AssertTypeEq::<
12179                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12180                    >(_) => {}
12181                }
12182            }
12183            #[automatically_derived]
12184            #[doc(hidden)]
12185            impl ::core::convert::From<getRegisteredSetsCall>
12186            for UnderlyingRustTuple<'_> {
12187                fn from(value: getRegisteredSetsCall) -> Self {
12188                    (value.operator,)
12189                }
12190            }
12191            #[automatically_derived]
12192            #[doc(hidden)]
12193            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12194            for getRegisteredSetsCall {
12195                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12196                    Self { operator: tuple.0 }
12197                }
12198            }
12199        }
12200        {
12201            #[doc(hidden)]
12202            type UnderlyingSolTuple<'a> = (
12203                alloy::sol_types::sol_data::Array<OperatorSet>,
12204            );
12205            #[doc(hidden)]
12206            type UnderlyingRustTuple<'a> = (
12207                alloy::sol_types::private::Vec<
12208                    <OperatorSet as alloy::sol_types::SolType>::RustType,
12209                >,
12210            );
12211            #[cfg(test)]
12212            #[allow(dead_code, unreachable_patterns)]
12213            fn _type_assertion(
12214                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12215            ) {
12216                match _t {
12217                    alloy_sol_types::private::AssertTypeEq::<
12218                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12219                    >(_) => {}
12220                }
12221            }
12222            #[automatically_derived]
12223            #[doc(hidden)]
12224            impl ::core::convert::From<getRegisteredSetsReturn>
12225            for UnderlyingRustTuple<'_> {
12226                fn from(value: getRegisteredSetsReturn) -> Self {
12227                    (value._0,)
12228                }
12229            }
12230            #[automatically_derived]
12231            #[doc(hidden)]
12232            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12233            for getRegisteredSetsReturn {
12234                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12235                    Self { _0: tuple.0 }
12236                }
12237            }
12238        }
12239        #[automatically_derived]
12240        impl alloy_sol_types::SolCall for getRegisteredSetsCall {
12241            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
12242            type Token<'a> = <Self::Parameters<
12243                'a,
12244            > as alloy_sol_types::SolType>::Token<'a>;
12245            type Return = alloy::sol_types::private::Vec<
12246                <OperatorSet as alloy::sol_types::SolType>::RustType,
12247            >;
12248            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array<OperatorSet>,);
12249            type ReturnToken<'a> = <Self::ReturnTuple<
12250                'a,
12251            > as alloy_sol_types::SolType>::Token<'a>;
12252            const SIGNATURE: &'static str = "getRegisteredSets(address)";
12253            const SELECTOR: [u8; 4] = [121u8, 174u8, 80u8, 205u8];
12254            #[inline]
12255            fn new<'a>(
12256                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12257            ) -> Self {
12258                tuple.into()
12259            }
12260            #[inline]
12261            fn tokenize(&self) -> Self::Token<'_> {
12262                (
12263                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12264                        &self.operator,
12265                    ),
12266                )
12267            }
12268            #[inline]
12269            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
12270                (
12271                    <alloy::sol_types::sol_data::Array<
12272                        OperatorSet,
12273                    > as alloy_sol_types::SolType>::tokenize(ret),
12274                )
12275            }
12276            #[inline]
12277            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
12278                <Self::ReturnTuple<
12279                    '_,
12280                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
12281                    .map(|r| {
12282                        let r: getRegisteredSetsReturn = r.into();
12283                        r._0
12284                    })
12285            }
12286            #[inline]
12287            fn abi_decode_returns_validate(
12288                data: &[u8],
12289            ) -> alloy_sol_types::Result<Self::Return> {
12290                <Self::ReturnTuple<
12291                    '_,
12292                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
12293                    .map(|r| {
12294                        let r: getRegisteredSetsReturn = r.into();
12295                        r._0
12296                    })
12297            }
12298        }
12299    };
12300    #[derive(serde::Serialize, serde::Deserialize)]
12301    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12302    /**Function with signature `getStrategiesInOperatorSet((address,uint32))` and selector `0x4177a87c`.
12303```solidity
12304function getStrategiesInOperatorSet(OperatorSet memory operatorSet) external view returns (address[] memory);
12305```*/
12306    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12307    #[derive(Clone)]
12308    pub struct getStrategiesInOperatorSetCall {
12309        #[allow(missing_docs)]
12310        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
12311    }
12312    #[derive(serde::Serialize, serde::Deserialize)]
12313    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12314    ///Container type for the return parameters of the [`getStrategiesInOperatorSet((address,uint32))`](getStrategiesInOperatorSetCall) function.
12315    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12316    #[derive(Clone)]
12317    pub struct getStrategiesInOperatorSetReturn {
12318        #[allow(missing_docs)]
12319        pub _0: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
12320    }
12321    #[allow(
12322        non_camel_case_types,
12323        non_snake_case,
12324        clippy::pub_underscore_fields,
12325        clippy::style
12326    )]
12327    const _: () = {
12328        use alloy::sol_types as alloy_sol_types;
12329        {
12330            #[doc(hidden)]
12331            type UnderlyingSolTuple<'a> = (OperatorSet,);
12332            #[doc(hidden)]
12333            type UnderlyingRustTuple<'a> = (
12334                <OperatorSet as alloy::sol_types::SolType>::RustType,
12335            );
12336            #[cfg(test)]
12337            #[allow(dead_code, unreachable_patterns)]
12338            fn _type_assertion(
12339                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12340            ) {
12341                match _t {
12342                    alloy_sol_types::private::AssertTypeEq::<
12343                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12344                    >(_) => {}
12345                }
12346            }
12347            #[automatically_derived]
12348            #[doc(hidden)]
12349            impl ::core::convert::From<getStrategiesInOperatorSetCall>
12350            for UnderlyingRustTuple<'_> {
12351                fn from(value: getStrategiesInOperatorSetCall) -> Self {
12352                    (value.operatorSet,)
12353                }
12354            }
12355            #[automatically_derived]
12356            #[doc(hidden)]
12357            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12358            for getStrategiesInOperatorSetCall {
12359                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12360                    Self { operatorSet: tuple.0 }
12361                }
12362            }
12363        }
12364        {
12365            #[doc(hidden)]
12366            type UnderlyingSolTuple<'a> = (
12367                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
12368            );
12369            #[doc(hidden)]
12370            type UnderlyingRustTuple<'a> = (
12371                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
12372            );
12373            #[cfg(test)]
12374            #[allow(dead_code, unreachable_patterns)]
12375            fn _type_assertion(
12376                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12377            ) {
12378                match _t {
12379                    alloy_sol_types::private::AssertTypeEq::<
12380                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12381                    >(_) => {}
12382                }
12383            }
12384            #[automatically_derived]
12385            #[doc(hidden)]
12386            impl ::core::convert::From<getStrategiesInOperatorSetReturn>
12387            for UnderlyingRustTuple<'_> {
12388                fn from(value: getStrategiesInOperatorSetReturn) -> Self {
12389                    (value._0,)
12390                }
12391            }
12392            #[automatically_derived]
12393            #[doc(hidden)]
12394            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12395            for getStrategiesInOperatorSetReturn {
12396                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12397                    Self { _0: tuple.0 }
12398                }
12399            }
12400        }
12401        #[automatically_derived]
12402        impl alloy_sol_types::SolCall for getStrategiesInOperatorSetCall {
12403            type Parameters<'a> = (OperatorSet,);
12404            type Token<'a> = <Self::Parameters<
12405                'a,
12406            > as alloy_sol_types::SolType>::Token<'a>;
12407            type Return = alloy::sol_types::private::Vec<
12408                alloy::sol_types::private::Address,
12409            >;
12410            type ReturnTuple<'a> = (
12411                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
12412            );
12413            type ReturnToken<'a> = <Self::ReturnTuple<
12414                'a,
12415            > as alloy_sol_types::SolType>::Token<'a>;
12416            const SIGNATURE: &'static str = "getStrategiesInOperatorSet((address,uint32))";
12417            const SELECTOR: [u8; 4] = [65u8, 119u8, 168u8, 124u8];
12418            #[inline]
12419            fn new<'a>(
12420                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12421            ) -> Self {
12422                tuple.into()
12423            }
12424            #[inline]
12425            fn tokenize(&self) -> Self::Token<'_> {
12426                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
12427            }
12428            #[inline]
12429            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
12430                (
12431                    <alloy::sol_types::sol_data::Array<
12432                        alloy::sol_types::sol_data::Address,
12433                    > as alloy_sol_types::SolType>::tokenize(ret),
12434                )
12435            }
12436            #[inline]
12437            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
12438                <Self::ReturnTuple<
12439                    '_,
12440                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
12441                    .map(|r| {
12442                        let r: getStrategiesInOperatorSetReturn = r.into();
12443                        r._0
12444                    })
12445            }
12446            #[inline]
12447            fn abi_decode_returns_validate(
12448                data: &[u8],
12449            ) -> alloy_sol_types::Result<Self::Return> {
12450                <Self::ReturnTuple<
12451                    '_,
12452                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
12453                    .map(|r| {
12454                        let r: getStrategiesInOperatorSetReturn = r.into();
12455                        r._0
12456                    })
12457            }
12458        }
12459    };
12460    #[derive(serde::Serialize, serde::Deserialize)]
12461    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12462    /**Function with signature `getStrategyAllocations(address,address)` and selector `0x40120dab`.
12463```solidity
12464function getStrategyAllocations(address operator, address strategy) external view returns (OperatorSet[] memory, IAllocationManagerTypes.Allocation[] memory);
12465```*/
12466    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12467    #[derive(Clone)]
12468    pub struct getStrategyAllocationsCall {
12469        #[allow(missing_docs)]
12470        pub operator: alloy::sol_types::private::Address,
12471        #[allow(missing_docs)]
12472        pub strategy: alloy::sol_types::private::Address,
12473    }
12474    #[derive(serde::Serialize, serde::Deserialize)]
12475    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12476    ///Container type for the return parameters of the [`getStrategyAllocations(address,address)`](getStrategyAllocationsCall) function.
12477    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12478    #[derive(Clone)]
12479    pub struct getStrategyAllocationsReturn {
12480        #[allow(missing_docs)]
12481        pub _0: alloy::sol_types::private::Vec<
12482            <OperatorSet as alloy::sol_types::SolType>::RustType,
12483        >,
12484        #[allow(missing_docs)]
12485        pub _1: alloy::sol_types::private::Vec<
12486            <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
12487        >,
12488    }
12489    #[allow(
12490        non_camel_case_types,
12491        non_snake_case,
12492        clippy::pub_underscore_fields,
12493        clippy::style
12494    )]
12495    const _: () = {
12496        use alloy::sol_types as alloy_sol_types;
12497        {
12498            #[doc(hidden)]
12499            type UnderlyingSolTuple<'a> = (
12500                alloy::sol_types::sol_data::Address,
12501                alloy::sol_types::sol_data::Address,
12502            );
12503            #[doc(hidden)]
12504            type UnderlyingRustTuple<'a> = (
12505                alloy::sol_types::private::Address,
12506                alloy::sol_types::private::Address,
12507            );
12508            #[cfg(test)]
12509            #[allow(dead_code, unreachable_patterns)]
12510            fn _type_assertion(
12511                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12512            ) {
12513                match _t {
12514                    alloy_sol_types::private::AssertTypeEq::<
12515                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12516                    >(_) => {}
12517                }
12518            }
12519            #[automatically_derived]
12520            #[doc(hidden)]
12521            impl ::core::convert::From<getStrategyAllocationsCall>
12522            for UnderlyingRustTuple<'_> {
12523                fn from(value: getStrategyAllocationsCall) -> Self {
12524                    (value.operator, value.strategy)
12525                }
12526            }
12527            #[automatically_derived]
12528            #[doc(hidden)]
12529            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12530            for getStrategyAllocationsCall {
12531                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12532                    Self {
12533                        operator: tuple.0,
12534                        strategy: tuple.1,
12535                    }
12536                }
12537            }
12538        }
12539        {
12540            #[doc(hidden)]
12541            type UnderlyingSolTuple<'a> = (
12542                alloy::sol_types::sol_data::Array<OperatorSet>,
12543                alloy::sol_types::sol_data::Array<IAllocationManagerTypes::Allocation>,
12544            );
12545            #[doc(hidden)]
12546            type UnderlyingRustTuple<'a> = (
12547                alloy::sol_types::private::Vec<
12548                    <OperatorSet as alloy::sol_types::SolType>::RustType,
12549                >,
12550                alloy::sol_types::private::Vec<
12551                    <IAllocationManagerTypes::Allocation as alloy::sol_types::SolType>::RustType,
12552                >,
12553            );
12554            #[cfg(test)]
12555            #[allow(dead_code, unreachable_patterns)]
12556            fn _type_assertion(
12557                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12558            ) {
12559                match _t {
12560                    alloy_sol_types::private::AssertTypeEq::<
12561                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12562                    >(_) => {}
12563                }
12564            }
12565            #[automatically_derived]
12566            #[doc(hidden)]
12567            impl ::core::convert::From<getStrategyAllocationsReturn>
12568            for UnderlyingRustTuple<'_> {
12569                fn from(value: getStrategyAllocationsReturn) -> Self {
12570                    (value._0, value._1)
12571                }
12572            }
12573            #[automatically_derived]
12574            #[doc(hidden)]
12575            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12576            for getStrategyAllocationsReturn {
12577                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12578                    Self { _0: tuple.0, _1: tuple.1 }
12579                }
12580            }
12581        }
12582        impl getStrategyAllocationsReturn {
12583            fn _tokenize(
12584                &self,
12585            ) -> <getStrategyAllocationsCall as alloy_sol_types::SolCall>::ReturnToken<
12586                '_,
12587            > {
12588                (
12589                    <alloy::sol_types::sol_data::Array<
12590                        OperatorSet,
12591                    > as alloy_sol_types::SolType>::tokenize(&self._0),
12592                    <alloy::sol_types::sol_data::Array<
12593                        IAllocationManagerTypes::Allocation,
12594                    > as alloy_sol_types::SolType>::tokenize(&self._1),
12595                )
12596            }
12597        }
12598        #[automatically_derived]
12599        impl alloy_sol_types::SolCall for getStrategyAllocationsCall {
12600            type Parameters<'a> = (
12601                alloy::sol_types::sol_data::Address,
12602                alloy::sol_types::sol_data::Address,
12603            );
12604            type Token<'a> = <Self::Parameters<
12605                'a,
12606            > as alloy_sol_types::SolType>::Token<'a>;
12607            type Return = getStrategyAllocationsReturn;
12608            type ReturnTuple<'a> = (
12609                alloy::sol_types::sol_data::Array<OperatorSet>,
12610                alloy::sol_types::sol_data::Array<IAllocationManagerTypes::Allocation>,
12611            );
12612            type ReturnToken<'a> = <Self::ReturnTuple<
12613                'a,
12614            > as alloy_sol_types::SolType>::Token<'a>;
12615            const SIGNATURE: &'static str = "getStrategyAllocations(address,address)";
12616            const SELECTOR: [u8; 4] = [64u8, 18u8, 13u8, 171u8];
12617            #[inline]
12618            fn new<'a>(
12619                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12620            ) -> Self {
12621                tuple.into()
12622            }
12623            #[inline]
12624            fn tokenize(&self) -> Self::Token<'_> {
12625                (
12626                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12627                        &self.operator,
12628                    ),
12629                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12630                        &self.strategy,
12631                    ),
12632                )
12633            }
12634            #[inline]
12635            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
12636                getStrategyAllocationsReturn::_tokenize(ret)
12637            }
12638            #[inline]
12639            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
12640                <Self::ReturnTuple<
12641                    '_,
12642                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
12643                    .map(Into::into)
12644            }
12645            #[inline]
12646            fn abi_decode_returns_validate(
12647                data: &[u8],
12648            ) -> alloy_sol_types::Result<Self::Return> {
12649                <Self::ReturnTuple<
12650                    '_,
12651                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
12652                    .map(Into::into)
12653            }
12654        }
12655    };
12656    #[derive(serde::Serialize, serde::Deserialize)]
12657    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12658    /**Function with signature `initialize(address,uint256)` and selector `0xcd6dc687`.
12659```solidity
12660function initialize(address initialOwner, uint256 initialPausedStatus) external;
12661```*/
12662    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12663    #[derive(Clone)]
12664    pub struct initializeCall {
12665        #[allow(missing_docs)]
12666        pub initialOwner: alloy::sol_types::private::Address,
12667        #[allow(missing_docs)]
12668        pub initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
12669    }
12670    ///Container type for the return parameters of the [`initialize(address,uint256)`](initializeCall) function.
12671    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12672    #[derive(Clone)]
12673    pub struct initializeReturn {}
12674    #[allow(
12675        non_camel_case_types,
12676        non_snake_case,
12677        clippy::pub_underscore_fields,
12678        clippy::style
12679    )]
12680    const _: () = {
12681        use alloy::sol_types as alloy_sol_types;
12682        {
12683            #[doc(hidden)]
12684            type UnderlyingSolTuple<'a> = (
12685                alloy::sol_types::sol_data::Address,
12686                alloy::sol_types::sol_data::Uint<256>,
12687            );
12688            #[doc(hidden)]
12689            type UnderlyingRustTuple<'a> = (
12690                alloy::sol_types::private::Address,
12691                alloy::sol_types::private::primitives::aliases::U256,
12692            );
12693            #[cfg(test)]
12694            #[allow(dead_code, unreachable_patterns)]
12695            fn _type_assertion(
12696                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12697            ) {
12698                match _t {
12699                    alloy_sol_types::private::AssertTypeEq::<
12700                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12701                    >(_) => {}
12702                }
12703            }
12704            #[automatically_derived]
12705            #[doc(hidden)]
12706            impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
12707                fn from(value: initializeCall) -> Self {
12708                    (value.initialOwner, value.initialPausedStatus)
12709                }
12710            }
12711            #[automatically_derived]
12712            #[doc(hidden)]
12713            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
12714                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12715                    Self {
12716                        initialOwner: tuple.0,
12717                        initialPausedStatus: tuple.1,
12718                    }
12719                }
12720            }
12721        }
12722        {
12723            #[doc(hidden)]
12724            type UnderlyingSolTuple<'a> = ();
12725            #[doc(hidden)]
12726            type UnderlyingRustTuple<'a> = ();
12727            #[cfg(test)]
12728            #[allow(dead_code, unreachable_patterns)]
12729            fn _type_assertion(
12730                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12731            ) {
12732                match _t {
12733                    alloy_sol_types::private::AssertTypeEq::<
12734                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12735                    >(_) => {}
12736                }
12737            }
12738            #[automatically_derived]
12739            #[doc(hidden)]
12740            impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
12741                fn from(value: initializeReturn) -> Self {
12742                    ()
12743                }
12744            }
12745            #[automatically_derived]
12746            #[doc(hidden)]
12747            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
12748                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12749                    Self {}
12750                }
12751            }
12752        }
12753        impl initializeReturn {
12754            fn _tokenize(
12755                &self,
12756            ) -> <initializeCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
12757                ()
12758            }
12759        }
12760        #[automatically_derived]
12761        impl alloy_sol_types::SolCall for initializeCall {
12762            type Parameters<'a> = (
12763                alloy::sol_types::sol_data::Address,
12764                alloy::sol_types::sol_data::Uint<256>,
12765            );
12766            type Token<'a> = <Self::Parameters<
12767                'a,
12768            > as alloy_sol_types::SolType>::Token<'a>;
12769            type Return = initializeReturn;
12770            type ReturnTuple<'a> = ();
12771            type ReturnToken<'a> = <Self::ReturnTuple<
12772                'a,
12773            > as alloy_sol_types::SolType>::Token<'a>;
12774            const SIGNATURE: &'static str = "initialize(address,uint256)";
12775            const SELECTOR: [u8; 4] = [205u8, 109u8, 198u8, 135u8];
12776            #[inline]
12777            fn new<'a>(
12778                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12779            ) -> Self {
12780                tuple.into()
12781            }
12782            #[inline]
12783            fn tokenize(&self) -> Self::Token<'_> {
12784                (
12785                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12786                        &self.initialOwner,
12787                    ),
12788                    <alloy::sol_types::sol_data::Uint<
12789                        256,
12790                    > as alloy_sol_types::SolType>::tokenize(&self.initialPausedStatus),
12791                )
12792            }
12793            #[inline]
12794            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
12795                initializeReturn::_tokenize(ret)
12796            }
12797            #[inline]
12798            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
12799                <Self::ReturnTuple<
12800                    '_,
12801                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
12802                    .map(Into::into)
12803            }
12804            #[inline]
12805            fn abi_decode_returns_validate(
12806                data: &[u8],
12807            ) -> alloy_sol_types::Result<Self::Return> {
12808                <Self::ReturnTuple<
12809                    '_,
12810                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
12811                    .map(Into::into)
12812            }
12813        }
12814    };
12815    #[derive(serde::Serialize, serde::Deserialize)]
12816    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12817    /**Function with signature `isMemberOfOperatorSet(address,(address,uint32))` and selector `0x670d3ba2`.
12818```solidity
12819function isMemberOfOperatorSet(address operator, OperatorSet memory operatorSet) external view returns (bool);
12820```*/
12821    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12822    #[derive(Clone)]
12823    pub struct isMemberOfOperatorSetCall {
12824        #[allow(missing_docs)]
12825        pub operator: alloy::sol_types::private::Address,
12826        #[allow(missing_docs)]
12827        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
12828    }
12829    #[derive(serde::Serialize, serde::Deserialize)]
12830    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12831    ///Container type for the return parameters of the [`isMemberOfOperatorSet(address,(address,uint32))`](isMemberOfOperatorSetCall) function.
12832    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12833    #[derive(Clone)]
12834    pub struct isMemberOfOperatorSetReturn {
12835        #[allow(missing_docs)]
12836        pub _0: bool,
12837    }
12838    #[allow(
12839        non_camel_case_types,
12840        non_snake_case,
12841        clippy::pub_underscore_fields,
12842        clippy::style
12843    )]
12844    const _: () = {
12845        use alloy::sol_types as alloy_sol_types;
12846        {
12847            #[doc(hidden)]
12848            type UnderlyingSolTuple<'a> = (
12849                alloy::sol_types::sol_data::Address,
12850                OperatorSet,
12851            );
12852            #[doc(hidden)]
12853            type UnderlyingRustTuple<'a> = (
12854                alloy::sol_types::private::Address,
12855                <OperatorSet as alloy::sol_types::SolType>::RustType,
12856            );
12857            #[cfg(test)]
12858            #[allow(dead_code, unreachable_patterns)]
12859            fn _type_assertion(
12860                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12861            ) {
12862                match _t {
12863                    alloy_sol_types::private::AssertTypeEq::<
12864                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12865                    >(_) => {}
12866                }
12867            }
12868            #[automatically_derived]
12869            #[doc(hidden)]
12870            impl ::core::convert::From<isMemberOfOperatorSetCall>
12871            for UnderlyingRustTuple<'_> {
12872                fn from(value: isMemberOfOperatorSetCall) -> Self {
12873                    (value.operator, value.operatorSet)
12874                }
12875            }
12876            #[automatically_derived]
12877            #[doc(hidden)]
12878            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12879            for isMemberOfOperatorSetCall {
12880                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12881                    Self {
12882                        operator: tuple.0,
12883                        operatorSet: tuple.1,
12884                    }
12885                }
12886            }
12887        }
12888        {
12889            #[doc(hidden)]
12890            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12891            #[doc(hidden)]
12892            type UnderlyingRustTuple<'a> = (bool,);
12893            #[cfg(test)]
12894            #[allow(dead_code, unreachable_patterns)]
12895            fn _type_assertion(
12896                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12897            ) {
12898                match _t {
12899                    alloy_sol_types::private::AssertTypeEq::<
12900                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12901                    >(_) => {}
12902                }
12903            }
12904            #[automatically_derived]
12905            #[doc(hidden)]
12906            impl ::core::convert::From<isMemberOfOperatorSetReturn>
12907            for UnderlyingRustTuple<'_> {
12908                fn from(value: isMemberOfOperatorSetReturn) -> Self {
12909                    (value._0,)
12910                }
12911            }
12912            #[automatically_derived]
12913            #[doc(hidden)]
12914            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12915            for isMemberOfOperatorSetReturn {
12916                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12917                    Self { _0: tuple.0 }
12918                }
12919            }
12920        }
12921        #[automatically_derived]
12922        impl alloy_sol_types::SolCall for isMemberOfOperatorSetCall {
12923            type Parameters<'a> = (alloy::sol_types::sol_data::Address, OperatorSet);
12924            type Token<'a> = <Self::Parameters<
12925                'a,
12926            > as alloy_sol_types::SolType>::Token<'a>;
12927            type Return = bool;
12928            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12929            type ReturnToken<'a> = <Self::ReturnTuple<
12930                'a,
12931            > as alloy_sol_types::SolType>::Token<'a>;
12932            const SIGNATURE: &'static str = "isMemberOfOperatorSet(address,(address,uint32))";
12933            const SELECTOR: [u8; 4] = [103u8, 13u8, 59u8, 162u8];
12934            #[inline]
12935            fn new<'a>(
12936                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12937            ) -> Self {
12938                tuple.into()
12939            }
12940            #[inline]
12941            fn tokenize(&self) -> Self::Token<'_> {
12942                (
12943                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12944                        &self.operator,
12945                    ),
12946                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
12947                        &self.operatorSet,
12948                    ),
12949                )
12950            }
12951            #[inline]
12952            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
12953                (
12954                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
12955                        ret,
12956                    ),
12957                )
12958            }
12959            #[inline]
12960            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
12961                <Self::ReturnTuple<
12962                    '_,
12963                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
12964                    .map(|r| {
12965                        let r: isMemberOfOperatorSetReturn = r.into();
12966                        r._0
12967                    })
12968            }
12969            #[inline]
12970            fn abi_decode_returns_validate(
12971                data: &[u8],
12972            ) -> alloy_sol_types::Result<Self::Return> {
12973                <Self::ReturnTuple<
12974                    '_,
12975                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
12976                    .map(|r| {
12977                        let r: isMemberOfOperatorSetReturn = r.into();
12978                        r._0
12979                    })
12980            }
12981        }
12982    };
12983    #[derive(serde::Serialize, serde::Deserialize)]
12984    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12985    /**Function with signature `isOperatorSet((address,uint32))` and selector `0x260dc758`.
12986```solidity
12987function isOperatorSet(OperatorSet memory operatorSet) external view returns (bool);
12988```*/
12989    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12990    #[derive(Clone)]
12991    pub struct isOperatorSetCall {
12992        #[allow(missing_docs)]
12993        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
12994    }
12995    #[derive(serde::Serialize, serde::Deserialize)]
12996    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12997    ///Container type for the return parameters of the [`isOperatorSet((address,uint32))`](isOperatorSetCall) function.
12998    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12999    #[derive(Clone)]
13000    pub struct isOperatorSetReturn {
13001        #[allow(missing_docs)]
13002        pub _0: bool,
13003    }
13004    #[allow(
13005        non_camel_case_types,
13006        non_snake_case,
13007        clippy::pub_underscore_fields,
13008        clippy::style
13009    )]
13010    const _: () = {
13011        use alloy::sol_types as alloy_sol_types;
13012        {
13013            #[doc(hidden)]
13014            type UnderlyingSolTuple<'a> = (OperatorSet,);
13015            #[doc(hidden)]
13016            type UnderlyingRustTuple<'a> = (
13017                <OperatorSet as alloy::sol_types::SolType>::RustType,
13018            );
13019            #[cfg(test)]
13020            #[allow(dead_code, unreachable_patterns)]
13021            fn _type_assertion(
13022                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13023            ) {
13024                match _t {
13025                    alloy_sol_types::private::AssertTypeEq::<
13026                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13027                    >(_) => {}
13028                }
13029            }
13030            #[automatically_derived]
13031            #[doc(hidden)]
13032            impl ::core::convert::From<isOperatorSetCall> for UnderlyingRustTuple<'_> {
13033                fn from(value: isOperatorSetCall) -> Self {
13034                    (value.operatorSet,)
13035                }
13036            }
13037            #[automatically_derived]
13038            #[doc(hidden)]
13039            impl ::core::convert::From<UnderlyingRustTuple<'_>> for isOperatorSetCall {
13040                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13041                    Self { operatorSet: tuple.0 }
13042                }
13043            }
13044        }
13045        {
13046            #[doc(hidden)]
13047            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
13048            #[doc(hidden)]
13049            type UnderlyingRustTuple<'a> = (bool,);
13050            #[cfg(test)]
13051            #[allow(dead_code, unreachable_patterns)]
13052            fn _type_assertion(
13053                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13054            ) {
13055                match _t {
13056                    alloy_sol_types::private::AssertTypeEq::<
13057                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13058                    >(_) => {}
13059                }
13060            }
13061            #[automatically_derived]
13062            #[doc(hidden)]
13063            impl ::core::convert::From<isOperatorSetReturn> for UnderlyingRustTuple<'_> {
13064                fn from(value: isOperatorSetReturn) -> Self {
13065                    (value._0,)
13066                }
13067            }
13068            #[automatically_derived]
13069            #[doc(hidden)]
13070            impl ::core::convert::From<UnderlyingRustTuple<'_>> for isOperatorSetReturn {
13071                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13072                    Self { _0: tuple.0 }
13073                }
13074            }
13075        }
13076        #[automatically_derived]
13077        impl alloy_sol_types::SolCall for isOperatorSetCall {
13078            type Parameters<'a> = (OperatorSet,);
13079            type Token<'a> = <Self::Parameters<
13080                'a,
13081            > as alloy_sol_types::SolType>::Token<'a>;
13082            type Return = bool;
13083            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
13084            type ReturnToken<'a> = <Self::ReturnTuple<
13085                'a,
13086            > as alloy_sol_types::SolType>::Token<'a>;
13087            const SIGNATURE: &'static str = "isOperatorSet((address,uint32))";
13088            const SELECTOR: [u8; 4] = [38u8, 13u8, 199u8, 88u8];
13089            #[inline]
13090            fn new<'a>(
13091                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13092            ) -> Self {
13093                tuple.into()
13094            }
13095            #[inline]
13096            fn tokenize(&self) -> Self::Token<'_> {
13097                (<OperatorSet as alloy_sol_types::SolType>::tokenize(&self.operatorSet),)
13098            }
13099            #[inline]
13100            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
13101                (
13102                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
13103                        ret,
13104                    ),
13105                )
13106            }
13107            #[inline]
13108            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
13109                <Self::ReturnTuple<
13110                    '_,
13111                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
13112                    .map(|r| {
13113                        let r: isOperatorSetReturn = r.into();
13114                        r._0
13115                    })
13116            }
13117            #[inline]
13118            fn abi_decode_returns_validate(
13119                data: &[u8],
13120            ) -> alloy_sol_types::Result<Self::Return> {
13121                <Self::ReturnTuple<
13122                    '_,
13123                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
13124                    .map(|r| {
13125                        let r: isOperatorSetReturn = r.into();
13126                        r._0
13127                    })
13128            }
13129        }
13130    };
13131    #[derive(serde::Serialize, serde::Deserialize)]
13132    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13133    /**Function with signature `isOperatorSlashable(address,(address,uint32))` and selector `0x1352c3e6`.
13134```solidity
13135function isOperatorSlashable(address operator, OperatorSet memory operatorSet) external view returns (bool);
13136```*/
13137    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13138    #[derive(Clone)]
13139    pub struct isOperatorSlashableCall {
13140        #[allow(missing_docs)]
13141        pub operator: alloy::sol_types::private::Address,
13142        #[allow(missing_docs)]
13143        pub operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
13144    }
13145    #[derive(serde::Serialize, serde::Deserialize)]
13146    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13147    ///Container type for the return parameters of the [`isOperatorSlashable(address,(address,uint32))`](isOperatorSlashableCall) function.
13148    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13149    #[derive(Clone)]
13150    pub struct isOperatorSlashableReturn {
13151        #[allow(missing_docs)]
13152        pub _0: bool,
13153    }
13154    #[allow(
13155        non_camel_case_types,
13156        non_snake_case,
13157        clippy::pub_underscore_fields,
13158        clippy::style
13159    )]
13160    const _: () = {
13161        use alloy::sol_types as alloy_sol_types;
13162        {
13163            #[doc(hidden)]
13164            type UnderlyingSolTuple<'a> = (
13165                alloy::sol_types::sol_data::Address,
13166                OperatorSet,
13167            );
13168            #[doc(hidden)]
13169            type UnderlyingRustTuple<'a> = (
13170                alloy::sol_types::private::Address,
13171                <OperatorSet as alloy::sol_types::SolType>::RustType,
13172            );
13173            #[cfg(test)]
13174            #[allow(dead_code, unreachable_patterns)]
13175            fn _type_assertion(
13176                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13177            ) {
13178                match _t {
13179                    alloy_sol_types::private::AssertTypeEq::<
13180                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13181                    >(_) => {}
13182                }
13183            }
13184            #[automatically_derived]
13185            #[doc(hidden)]
13186            impl ::core::convert::From<isOperatorSlashableCall>
13187            for UnderlyingRustTuple<'_> {
13188                fn from(value: isOperatorSlashableCall) -> Self {
13189                    (value.operator, value.operatorSet)
13190                }
13191            }
13192            #[automatically_derived]
13193            #[doc(hidden)]
13194            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13195            for isOperatorSlashableCall {
13196                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13197                    Self {
13198                        operator: tuple.0,
13199                        operatorSet: tuple.1,
13200                    }
13201                }
13202            }
13203        }
13204        {
13205            #[doc(hidden)]
13206            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
13207            #[doc(hidden)]
13208            type UnderlyingRustTuple<'a> = (bool,);
13209            #[cfg(test)]
13210            #[allow(dead_code, unreachable_patterns)]
13211            fn _type_assertion(
13212                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13213            ) {
13214                match _t {
13215                    alloy_sol_types::private::AssertTypeEq::<
13216                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13217                    >(_) => {}
13218                }
13219            }
13220            #[automatically_derived]
13221            #[doc(hidden)]
13222            impl ::core::convert::From<isOperatorSlashableReturn>
13223            for UnderlyingRustTuple<'_> {
13224                fn from(value: isOperatorSlashableReturn) -> Self {
13225                    (value._0,)
13226                }
13227            }
13228            #[automatically_derived]
13229            #[doc(hidden)]
13230            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13231            for isOperatorSlashableReturn {
13232                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13233                    Self { _0: tuple.0 }
13234                }
13235            }
13236        }
13237        #[automatically_derived]
13238        impl alloy_sol_types::SolCall for isOperatorSlashableCall {
13239            type Parameters<'a> = (alloy::sol_types::sol_data::Address, OperatorSet);
13240            type Token<'a> = <Self::Parameters<
13241                'a,
13242            > as alloy_sol_types::SolType>::Token<'a>;
13243            type Return = bool;
13244            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
13245            type ReturnToken<'a> = <Self::ReturnTuple<
13246                'a,
13247            > as alloy_sol_types::SolType>::Token<'a>;
13248            const SIGNATURE: &'static str = "isOperatorSlashable(address,(address,uint32))";
13249            const SELECTOR: [u8; 4] = [19u8, 82u8, 195u8, 230u8];
13250            #[inline]
13251            fn new<'a>(
13252                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13253            ) -> Self {
13254                tuple.into()
13255            }
13256            #[inline]
13257            fn tokenize(&self) -> Self::Token<'_> {
13258                (
13259                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13260                        &self.operator,
13261                    ),
13262                    <OperatorSet as alloy_sol_types::SolType>::tokenize(
13263                        &self.operatorSet,
13264                    ),
13265                )
13266            }
13267            #[inline]
13268            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
13269                (
13270                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
13271                        ret,
13272                    ),
13273                )
13274            }
13275            #[inline]
13276            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
13277                <Self::ReturnTuple<
13278                    '_,
13279                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
13280                    .map(|r| {
13281                        let r: isOperatorSlashableReturn = r.into();
13282                        r._0
13283                    })
13284            }
13285            #[inline]
13286            fn abi_decode_returns_validate(
13287                data: &[u8],
13288            ) -> alloy_sol_types::Result<Self::Return> {
13289                <Self::ReturnTuple<
13290                    '_,
13291                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
13292                    .map(|r| {
13293                        let r: isOperatorSlashableReturn = r.into();
13294                        r._0
13295                    })
13296            }
13297        }
13298    };
13299    #[derive(serde::Serialize, serde::Deserialize)]
13300    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13301    /**Function with signature `modifyAllocations(address,((address,uint32),address[],uint64[])[])` and selector `0x952899ee`.
13302```solidity
13303function modifyAllocations(address operator, IAllocationManagerTypes.AllocateParams[] memory params) external;
13304```*/
13305    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13306    #[derive(Clone)]
13307    pub struct modifyAllocationsCall {
13308        #[allow(missing_docs)]
13309        pub operator: alloy::sol_types::private::Address,
13310        #[allow(missing_docs)]
13311        pub params: alloy::sol_types::private::Vec<
13312            <IAllocationManagerTypes::AllocateParams as alloy::sol_types::SolType>::RustType,
13313        >,
13314    }
13315    ///Container type for the return parameters of the [`modifyAllocations(address,((address,uint32),address[],uint64[])[])`](modifyAllocationsCall) function.
13316    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13317    #[derive(Clone)]
13318    pub struct modifyAllocationsReturn {}
13319    #[allow(
13320        non_camel_case_types,
13321        non_snake_case,
13322        clippy::pub_underscore_fields,
13323        clippy::style
13324    )]
13325    const _: () = {
13326        use alloy::sol_types as alloy_sol_types;
13327        {
13328            #[doc(hidden)]
13329            type UnderlyingSolTuple<'a> = (
13330                alloy::sol_types::sol_data::Address,
13331                alloy::sol_types::sol_data::Array<
13332                    IAllocationManagerTypes::AllocateParams,
13333                >,
13334            );
13335            #[doc(hidden)]
13336            type UnderlyingRustTuple<'a> = (
13337                alloy::sol_types::private::Address,
13338                alloy::sol_types::private::Vec<
13339                    <IAllocationManagerTypes::AllocateParams as alloy::sol_types::SolType>::RustType,
13340                >,
13341            );
13342            #[cfg(test)]
13343            #[allow(dead_code, unreachable_patterns)]
13344            fn _type_assertion(
13345                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13346            ) {
13347                match _t {
13348                    alloy_sol_types::private::AssertTypeEq::<
13349                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13350                    >(_) => {}
13351                }
13352            }
13353            #[automatically_derived]
13354            #[doc(hidden)]
13355            impl ::core::convert::From<modifyAllocationsCall>
13356            for UnderlyingRustTuple<'_> {
13357                fn from(value: modifyAllocationsCall) -> Self {
13358                    (value.operator, value.params)
13359                }
13360            }
13361            #[automatically_derived]
13362            #[doc(hidden)]
13363            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13364            for modifyAllocationsCall {
13365                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13366                    Self {
13367                        operator: tuple.0,
13368                        params: tuple.1,
13369                    }
13370                }
13371            }
13372        }
13373        {
13374            #[doc(hidden)]
13375            type UnderlyingSolTuple<'a> = ();
13376            #[doc(hidden)]
13377            type UnderlyingRustTuple<'a> = ();
13378            #[cfg(test)]
13379            #[allow(dead_code, unreachable_patterns)]
13380            fn _type_assertion(
13381                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13382            ) {
13383                match _t {
13384                    alloy_sol_types::private::AssertTypeEq::<
13385                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13386                    >(_) => {}
13387                }
13388            }
13389            #[automatically_derived]
13390            #[doc(hidden)]
13391            impl ::core::convert::From<modifyAllocationsReturn>
13392            for UnderlyingRustTuple<'_> {
13393                fn from(value: modifyAllocationsReturn) -> Self {
13394                    ()
13395                }
13396            }
13397            #[automatically_derived]
13398            #[doc(hidden)]
13399            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13400            for modifyAllocationsReturn {
13401                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13402                    Self {}
13403                }
13404            }
13405        }
13406        impl modifyAllocationsReturn {
13407            fn _tokenize(
13408                &self,
13409            ) -> <modifyAllocationsCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
13410                ()
13411            }
13412        }
13413        #[automatically_derived]
13414        impl alloy_sol_types::SolCall for modifyAllocationsCall {
13415            type Parameters<'a> = (
13416                alloy::sol_types::sol_data::Address,
13417                alloy::sol_types::sol_data::Array<
13418                    IAllocationManagerTypes::AllocateParams,
13419                >,
13420            );
13421            type Token<'a> = <Self::Parameters<
13422                'a,
13423            > as alloy_sol_types::SolType>::Token<'a>;
13424            type Return = modifyAllocationsReturn;
13425            type ReturnTuple<'a> = ();
13426            type ReturnToken<'a> = <Self::ReturnTuple<
13427                'a,
13428            > as alloy_sol_types::SolType>::Token<'a>;
13429            const SIGNATURE: &'static str = "modifyAllocations(address,((address,uint32),address[],uint64[])[])";
13430            const SELECTOR: [u8; 4] = [149u8, 40u8, 153u8, 238u8];
13431            #[inline]
13432            fn new<'a>(
13433                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13434            ) -> Self {
13435                tuple.into()
13436            }
13437            #[inline]
13438            fn tokenize(&self) -> Self::Token<'_> {
13439                (
13440                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13441                        &self.operator,
13442                    ),
13443                    <alloy::sol_types::sol_data::Array<
13444                        IAllocationManagerTypes::AllocateParams,
13445                    > as alloy_sol_types::SolType>::tokenize(&self.params),
13446                )
13447            }
13448            #[inline]
13449            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
13450                modifyAllocationsReturn::_tokenize(ret)
13451            }
13452            #[inline]
13453            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
13454                <Self::ReturnTuple<
13455                    '_,
13456                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
13457                    .map(Into::into)
13458            }
13459            #[inline]
13460            fn abi_decode_returns_validate(
13461                data: &[u8],
13462            ) -> alloy_sol_types::Result<Self::Return> {
13463                <Self::ReturnTuple<
13464                    '_,
13465                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
13466                    .map(Into::into)
13467            }
13468        }
13469    };
13470    #[derive(serde::Serialize, serde::Deserialize)]
13471    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13472    /**Function with signature `owner()` and selector `0x8da5cb5b`.
13473```solidity
13474function owner() external view returns (address);
13475```*/
13476    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13477    #[derive(Clone)]
13478    pub struct ownerCall;
13479    #[derive(serde::Serialize, serde::Deserialize)]
13480    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13481    ///Container type for the return parameters of the [`owner()`](ownerCall) function.
13482    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13483    #[derive(Clone)]
13484    pub struct ownerReturn {
13485        #[allow(missing_docs)]
13486        pub _0: alloy::sol_types::private::Address,
13487    }
13488    #[allow(
13489        non_camel_case_types,
13490        non_snake_case,
13491        clippy::pub_underscore_fields,
13492        clippy::style
13493    )]
13494    const _: () = {
13495        use alloy::sol_types as alloy_sol_types;
13496        {
13497            #[doc(hidden)]
13498            type UnderlyingSolTuple<'a> = ();
13499            #[doc(hidden)]
13500            type UnderlyingRustTuple<'a> = ();
13501            #[cfg(test)]
13502            #[allow(dead_code, unreachable_patterns)]
13503            fn _type_assertion(
13504                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13505            ) {
13506                match _t {
13507                    alloy_sol_types::private::AssertTypeEq::<
13508                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13509                    >(_) => {}
13510                }
13511            }
13512            #[automatically_derived]
13513            #[doc(hidden)]
13514            impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
13515                fn from(value: ownerCall) -> Self {
13516                    ()
13517                }
13518            }
13519            #[automatically_derived]
13520            #[doc(hidden)]
13521            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
13522                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13523                    Self
13524                }
13525            }
13526        }
13527        {
13528            #[doc(hidden)]
13529            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
13530            #[doc(hidden)]
13531            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
13532            #[cfg(test)]
13533            #[allow(dead_code, unreachable_patterns)]
13534            fn _type_assertion(
13535                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13536            ) {
13537                match _t {
13538                    alloy_sol_types::private::AssertTypeEq::<
13539                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13540                    >(_) => {}
13541                }
13542            }
13543            #[automatically_derived]
13544            #[doc(hidden)]
13545            impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
13546                fn from(value: ownerReturn) -> Self {
13547                    (value._0,)
13548                }
13549            }
13550            #[automatically_derived]
13551            #[doc(hidden)]
13552            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
13553                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13554                    Self { _0: tuple.0 }
13555                }
13556            }
13557        }
13558        #[automatically_derived]
13559        impl alloy_sol_types::SolCall for ownerCall {
13560            type Parameters<'a> = ();
13561            type Token<'a> = <Self::Parameters<
13562                'a,
13563            > as alloy_sol_types::SolType>::Token<'a>;
13564            type Return = alloy::sol_types::private::Address;
13565            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
13566            type ReturnToken<'a> = <Self::ReturnTuple<
13567                'a,
13568            > as alloy_sol_types::SolType>::Token<'a>;
13569            const SIGNATURE: &'static str = "owner()";
13570            const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
13571            #[inline]
13572            fn new<'a>(
13573                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13574            ) -> Self {
13575                tuple.into()
13576            }
13577            #[inline]
13578            fn tokenize(&self) -> Self::Token<'_> {
13579                ()
13580            }
13581            #[inline]
13582            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
13583                (
13584                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13585                        ret,
13586                    ),
13587                )
13588            }
13589            #[inline]
13590            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
13591                <Self::ReturnTuple<
13592                    '_,
13593                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
13594                    .map(|r| {
13595                        let r: ownerReturn = r.into();
13596                        r._0
13597                    })
13598            }
13599            #[inline]
13600            fn abi_decode_returns_validate(
13601                data: &[u8],
13602            ) -> alloy_sol_types::Result<Self::Return> {
13603                <Self::ReturnTuple<
13604                    '_,
13605                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
13606                    .map(|r| {
13607                        let r: ownerReturn = r.into();
13608                        r._0
13609                    })
13610            }
13611        }
13612    };
13613    #[derive(serde::Serialize, serde::Deserialize)]
13614    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13615    /**Function with signature `pause(uint256)` and selector `0x136439dd`.
13616```solidity
13617function pause(uint256 newPausedStatus) external;
13618```*/
13619    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13620    #[derive(Clone)]
13621    pub struct pauseCall {
13622        #[allow(missing_docs)]
13623        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
13624    }
13625    ///Container type for the return parameters of the [`pause(uint256)`](pauseCall) function.
13626    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13627    #[derive(Clone)]
13628    pub struct pauseReturn {}
13629    #[allow(
13630        non_camel_case_types,
13631        non_snake_case,
13632        clippy::pub_underscore_fields,
13633        clippy::style
13634    )]
13635    const _: () = {
13636        use alloy::sol_types as alloy_sol_types;
13637        {
13638            #[doc(hidden)]
13639            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
13640            #[doc(hidden)]
13641            type UnderlyingRustTuple<'a> = (
13642                alloy::sol_types::private::primitives::aliases::U256,
13643            );
13644            #[cfg(test)]
13645            #[allow(dead_code, unreachable_patterns)]
13646            fn _type_assertion(
13647                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13648            ) {
13649                match _t {
13650                    alloy_sol_types::private::AssertTypeEq::<
13651                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13652                    >(_) => {}
13653                }
13654            }
13655            #[automatically_derived]
13656            #[doc(hidden)]
13657            impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
13658                fn from(value: pauseCall) -> Self {
13659                    (value.newPausedStatus,)
13660                }
13661            }
13662            #[automatically_derived]
13663            #[doc(hidden)]
13664            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
13665                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13666                    Self { newPausedStatus: tuple.0 }
13667                }
13668            }
13669        }
13670        {
13671            #[doc(hidden)]
13672            type UnderlyingSolTuple<'a> = ();
13673            #[doc(hidden)]
13674            type UnderlyingRustTuple<'a> = ();
13675            #[cfg(test)]
13676            #[allow(dead_code, unreachable_patterns)]
13677            fn _type_assertion(
13678                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13679            ) {
13680                match _t {
13681                    alloy_sol_types::private::AssertTypeEq::<
13682                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13683                    >(_) => {}
13684                }
13685            }
13686            #[automatically_derived]
13687            #[doc(hidden)]
13688            impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
13689                fn from(value: pauseReturn) -> Self {
13690                    ()
13691                }
13692            }
13693            #[automatically_derived]
13694            #[doc(hidden)]
13695            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
13696                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13697                    Self {}
13698                }
13699            }
13700        }
13701        impl pauseReturn {
13702            fn _tokenize(
13703                &self,
13704            ) -> <pauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
13705                ()
13706            }
13707        }
13708        #[automatically_derived]
13709        impl alloy_sol_types::SolCall for pauseCall {
13710            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
13711            type Token<'a> = <Self::Parameters<
13712                'a,
13713            > as alloy_sol_types::SolType>::Token<'a>;
13714            type Return = pauseReturn;
13715            type ReturnTuple<'a> = ();
13716            type ReturnToken<'a> = <Self::ReturnTuple<
13717                'a,
13718            > as alloy_sol_types::SolType>::Token<'a>;
13719            const SIGNATURE: &'static str = "pause(uint256)";
13720            const SELECTOR: [u8; 4] = [19u8, 100u8, 57u8, 221u8];
13721            #[inline]
13722            fn new<'a>(
13723                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13724            ) -> Self {
13725                tuple.into()
13726            }
13727            #[inline]
13728            fn tokenize(&self) -> Self::Token<'_> {
13729                (
13730                    <alloy::sol_types::sol_data::Uint<
13731                        256,
13732                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
13733                )
13734            }
13735            #[inline]
13736            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
13737                pauseReturn::_tokenize(ret)
13738            }
13739            #[inline]
13740            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
13741                <Self::ReturnTuple<
13742                    '_,
13743                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
13744                    .map(Into::into)
13745            }
13746            #[inline]
13747            fn abi_decode_returns_validate(
13748                data: &[u8],
13749            ) -> alloy_sol_types::Result<Self::Return> {
13750                <Self::ReturnTuple<
13751                    '_,
13752                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
13753                    .map(Into::into)
13754            }
13755        }
13756    };
13757    #[derive(serde::Serialize, serde::Deserialize)]
13758    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13759    /**Function with signature `pauseAll()` and selector `0x595c6a67`.
13760```solidity
13761function pauseAll() external;
13762```*/
13763    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13764    #[derive(Clone)]
13765    pub struct pauseAllCall;
13766    ///Container type for the return parameters of the [`pauseAll()`](pauseAllCall) function.
13767    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13768    #[derive(Clone)]
13769    pub struct pauseAllReturn {}
13770    #[allow(
13771        non_camel_case_types,
13772        non_snake_case,
13773        clippy::pub_underscore_fields,
13774        clippy::style
13775    )]
13776    const _: () = {
13777        use alloy::sol_types as alloy_sol_types;
13778        {
13779            #[doc(hidden)]
13780            type UnderlyingSolTuple<'a> = ();
13781            #[doc(hidden)]
13782            type UnderlyingRustTuple<'a> = ();
13783            #[cfg(test)]
13784            #[allow(dead_code, unreachable_patterns)]
13785            fn _type_assertion(
13786                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13787            ) {
13788                match _t {
13789                    alloy_sol_types::private::AssertTypeEq::<
13790                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13791                    >(_) => {}
13792                }
13793            }
13794            #[automatically_derived]
13795            #[doc(hidden)]
13796            impl ::core::convert::From<pauseAllCall> for UnderlyingRustTuple<'_> {
13797                fn from(value: pauseAllCall) -> Self {
13798                    ()
13799                }
13800            }
13801            #[automatically_derived]
13802            #[doc(hidden)]
13803            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllCall {
13804                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13805                    Self
13806                }
13807            }
13808        }
13809        {
13810            #[doc(hidden)]
13811            type UnderlyingSolTuple<'a> = ();
13812            #[doc(hidden)]
13813            type UnderlyingRustTuple<'a> = ();
13814            #[cfg(test)]
13815            #[allow(dead_code, unreachable_patterns)]
13816            fn _type_assertion(
13817                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13818            ) {
13819                match _t {
13820                    alloy_sol_types::private::AssertTypeEq::<
13821                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13822                    >(_) => {}
13823                }
13824            }
13825            #[automatically_derived]
13826            #[doc(hidden)]
13827            impl ::core::convert::From<pauseAllReturn> for UnderlyingRustTuple<'_> {
13828                fn from(value: pauseAllReturn) -> Self {
13829                    ()
13830                }
13831            }
13832            #[automatically_derived]
13833            #[doc(hidden)]
13834            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllReturn {
13835                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13836                    Self {}
13837                }
13838            }
13839        }
13840        impl pauseAllReturn {
13841            fn _tokenize(
13842                &self,
13843            ) -> <pauseAllCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
13844                ()
13845            }
13846        }
13847        #[automatically_derived]
13848        impl alloy_sol_types::SolCall for pauseAllCall {
13849            type Parameters<'a> = ();
13850            type Token<'a> = <Self::Parameters<
13851                'a,
13852            > as alloy_sol_types::SolType>::Token<'a>;
13853            type Return = pauseAllReturn;
13854            type ReturnTuple<'a> = ();
13855            type ReturnToken<'a> = <Self::ReturnTuple<
13856                'a,
13857            > as alloy_sol_types::SolType>::Token<'a>;
13858            const SIGNATURE: &'static str = "pauseAll()";
13859            const SELECTOR: [u8; 4] = [89u8, 92u8, 106u8, 103u8];
13860            #[inline]
13861            fn new<'a>(
13862                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13863            ) -> Self {
13864                tuple.into()
13865            }
13866            #[inline]
13867            fn tokenize(&self) -> Self::Token<'_> {
13868                ()
13869            }
13870            #[inline]
13871            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
13872                pauseAllReturn::_tokenize(ret)
13873            }
13874            #[inline]
13875            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
13876                <Self::ReturnTuple<
13877                    '_,
13878                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
13879                    .map(Into::into)
13880            }
13881            #[inline]
13882            fn abi_decode_returns_validate(
13883                data: &[u8],
13884            ) -> alloy_sol_types::Result<Self::Return> {
13885                <Self::ReturnTuple<
13886                    '_,
13887                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
13888                    .map(Into::into)
13889            }
13890        }
13891    };
13892    #[derive(serde::Serialize, serde::Deserialize)]
13893    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13894    /**Function with signature `paused(uint8)` and selector `0x5ac86ab7`.
13895```solidity
13896function paused(uint8 index) external view returns (bool);
13897```*/
13898    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13899    #[derive(Clone)]
13900    pub struct paused_0Call {
13901        #[allow(missing_docs)]
13902        pub index: u8,
13903    }
13904    #[derive(serde::Serialize, serde::Deserialize)]
13905    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13906    ///Container type for the return parameters of the [`paused(uint8)`](paused_0Call) function.
13907    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13908    #[derive(Clone)]
13909    pub struct paused_0Return {
13910        #[allow(missing_docs)]
13911        pub _0: bool,
13912    }
13913    #[allow(
13914        non_camel_case_types,
13915        non_snake_case,
13916        clippy::pub_underscore_fields,
13917        clippy::style
13918    )]
13919    const _: () = {
13920        use alloy::sol_types as alloy_sol_types;
13921        {
13922            #[doc(hidden)]
13923            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
13924            #[doc(hidden)]
13925            type UnderlyingRustTuple<'a> = (u8,);
13926            #[cfg(test)]
13927            #[allow(dead_code, unreachable_patterns)]
13928            fn _type_assertion(
13929                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13930            ) {
13931                match _t {
13932                    alloy_sol_types::private::AssertTypeEq::<
13933                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13934                    >(_) => {}
13935                }
13936            }
13937            #[automatically_derived]
13938            #[doc(hidden)]
13939            impl ::core::convert::From<paused_0Call> for UnderlyingRustTuple<'_> {
13940                fn from(value: paused_0Call) -> Self {
13941                    (value.index,)
13942                }
13943            }
13944            #[automatically_derived]
13945            #[doc(hidden)]
13946            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Call {
13947                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13948                    Self { index: tuple.0 }
13949                }
13950            }
13951        }
13952        {
13953            #[doc(hidden)]
13954            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
13955            #[doc(hidden)]
13956            type UnderlyingRustTuple<'a> = (bool,);
13957            #[cfg(test)]
13958            #[allow(dead_code, unreachable_patterns)]
13959            fn _type_assertion(
13960                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13961            ) {
13962                match _t {
13963                    alloy_sol_types::private::AssertTypeEq::<
13964                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13965                    >(_) => {}
13966                }
13967            }
13968            #[automatically_derived]
13969            #[doc(hidden)]
13970            impl ::core::convert::From<paused_0Return> for UnderlyingRustTuple<'_> {
13971                fn from(value: paused_0Return) -> Self {
13972                    (value._0,)
13973                }
13974            }
13975            #[automatically_derived]
13976            #[doc(hidden)]
13977            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Return {
13978                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13979                    Self { _0: tuple.0 }
13980                }
13981            }
13982        }
13983        #[automatically_derived]
13984        impl alloy_sol_types::SolCall for paused_0Call {
13985            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
13986            type Token<'a> = <Self::Parameters<
13987                'a,
13988            > as alloy_sol_types::SolType>::Token<'a>;
13989            type Return = bool;
13990            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
13991            type ReturnToken<'a> = <Self::ReturnTuple<
13992                'a,
13993            > as alloy_sol_types::SolType>::Token<'a>;
13994            const SIGNATURE: &'static str = "paused(uint8)";
13995            const SELECTOR: [u8; 4] = [90u8, 200u8, 106u8, 183u8];
13996            #[inline]
13997            fn new<'a>(
13998                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13999            ) -> Self {
14000                tuple.into()
14001            }
14002            #[inline]
14003            fn tokenize(&self) -> Self::Token<'_> {
14004                (
14005                    <alloy::sol_types::sol_data::Uint<
14006                        8,
14007                    > as alloy_sol_types::SolType>::tokenize(&self.index),
14008                )
14009            }
14010            #[inline]
14011            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
14012                (
14013                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
14014                        ret,
14015                    ),
14016                )
14017            }
14018            #[inline]
14019            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
14020                <Self::ReturnTuple<
14021                    '_,
14022                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
14023                    .map(|r| {
14024                        let r: paused_0Return = r.into();
14025                        r._0
14026                    })
14027            }
14028            #[inline]
14029            fn abi_decode_returns_validate(
14030                data: &[u8],
14031            ) -> alloy_sol_types::Result<Self::Return> {
14032                <Self::ReturnTuple<
14033                    '_,
14034                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
14035                    .map(|r| {
14036                        let r: paused_0Return = r.into();
14037                        r._0
14038                    })
14039            }
14040        }
14041    };
14042    #[derive(serde::Serialize, serde::Deserialize)]
14043    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14044    /**Function with signature `paused()` and selector `0x5c975abb`.
14045```solidity
14046function paused() external view returns (uint256);
14047```*/
14048    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14049    #[derive(Clone)]
14050    pub struct paused_1Call;
14051    #[derive(serde::Serialize, serde::Deserialize)]
14052    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14053    ///Container type for the return parameters of the [`paused()`](paused_1Call) function.
14054    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14055    #[derive(Clone)]
14056    pub struct paused_1Return {
14057        #[allow(missing_docs)]
14058        pub _0: alloy::sol_types::private::primitives::aliases::U256,
14059    }
14060    #[allow(
14061        non_camel_case_types,
14062        non_snake_case,
14063        clippy::pub_underscore_fields,
14064        clippy::style
14065    )]
14066    const _: () = {
14067        use alloy::sol_types as alloy_sol_types;
14068        {
14069            #[doc(hidden)]
14070            type UnderlyingSolTuple<'a> = ();
14071            #[doc(hidden)]
14072            type UnderlyingRustTuple<'a> = ();
14073            #[cfg(test)]
14074            #[allow(dead_code, unreachable_patterns)]
14075            fn _type_assertion(
14076                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14077            ) {
14078                match _t {
14079                    alloy_sol_types::private::AssertTypeEq::<
14080                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14081                    >(_) => {}
14082                }
14083            }
14084            #[automatically_derived]
14085            #[doc(hidden)]
14086            impl ::core::convert::From<paused_1Call> for UnderlyingRustTuple<'_> {
14087                fn from(value: paused_1Call) -> Self {
14088                    ()
14089                }
14090            }
14091            #[automatically_derived]
14092            #[doc(hidden)]
14093            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Call {
14094                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14095                    Self
14096                }
14097            }
14098        }
14099        {
14100            #[doc(hidden)]
14101            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
14102            #[doc(hidden)]
14103            type UnderlyingRustTuple<'a> = (
14104                alloy::sol_types::private::primitives::aliases::U256,
14105            );
14106            #[cfg(test)]
14107            #[allow(dead_code, unreachable_patterns)]
14108            fn _type_assertion(
14109                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14110            ) {
14111                match _t {
14112                    alloy_sol_types::private::AssertTypeEq::<
14113                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14114                    >(_) => {}
14115                }
14116            }
14117            #[automatically_derived]
14118            #[doc(hidden)]
14119            impl ::core::convert::From<paused_1Return> for UnderlyingRustTuple<'_> {
14120                fn from(value: paused_1Return) -> Self {
14121                    (value._0,)
14122                }
14123            }
14124            #[automatically_derived]
14125            #[doc(hidden)]
14126            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Return {
14127                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14128                    Self { _0: tuple.0 }
14129                }
14130            }
14131        }
14132        #[automatically_derived]
14133        impl alloy_sol_types::SolCall for paused_1Call {
14134            type Parameters<'a> = ();
14135            type Token<'a> = <Self::Parameters<
14136                'a,
14137            > as alloy_sol_types::SolType>::Token<'a>;
14138            type Return = alloy::sol_types::private::primitives::aliases::U256;
14139            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
14140            type ReturnToken<'a> = <Self::ReturnTuple<
14141                'a,
14142            > as alloy_sol_types::SolType>::Token<'a>;
14143            const SIGNATURE: &'static str = "paused()";
14144            const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
14145            #[inline]
14146            fn new<'a>(
14147                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14148            ) -> Self {
14149                tuple.into()
14150            }
14151            #[inline]
14152            fn tokenize(&self) -> Self::Token<'_> {
14153                ()
14154            }
14155            #[inline]
14156            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
14157                (
14158                    <alloy::sol_types::sol_data::Uint<
14159                        256,
14160                    > as alloy_sol_types::SolType>::tokenize(ret),
14161                )
14162            }
14163            #[inline]
14164            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
14165                <Self::ReturnTuple<
14166                    '_,
14167                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
14168                    .map(|r| {
14169                        let r: paused_1Return = r.into();
14170                        r._0
14171                    })
14172            }
14173            #[inline]
14174            fn abi_decode_returns_validate(
14175                data: &[u8],
14176            ) -> alloy_sol_types::Result<Self::Return> {
14177                <Self::ReturnTuple<
14178                    '_,
14179                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
14180                    .map(|r| {
14181                        let r: paused_1Return = r.into();
14182                        r._0
14183                    })
14184            }
14185        }
14186    };
14187    #[derive(serde::Serialize, serde::Deserialize)]
14188    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14189    /**Function with signature `pauserRegistry()` and selector `0x886f1195`.
14190```solidity
14191function pauserRegistry() external view returns (address);
14192```*/
14193    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14194    #[derive(Clone)]
14195    pub struct pauserRegistryCall;
14196    #[derive(serde::Serialize, serde::Deserialize)]
14197    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14198    ///Container type for the return parameters of the [`pauserRegistry()`](pauserRegistryCall) function.
14199    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14200    #[derive(Clone)]
14201    pub struct pauserRegistryReturn {
14202        #[allow(missing_docs)]
14203        pub _0: alloy::sol_types::private::Address,
14204    }
14205    #[allow(
14206        non_camel_case_types,
14207        non_snake_case,
14208        clippy::pub_underscore_fields,
14209        clippy::style
14210    )]
14211    const _: () = {
14212        use alloy::sol_types as alloy_sol_types;
14213        {
14214            #[doc(hidden)]
14215            type UnderlyingSolTuple<'a> = ();
14216            #[doc(hidden)]
14217            type UnderlyingRustTuple<'a> = ();
14218            #[cfg(test)]
14219            #[allow(dead_code, unreachable_patterns)]
14220            fn _type_assertion(
14221                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14222            ) {
14223                match _t {
14224                    alloy_sol_types::private::AssertTypeEq::<
14225                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14226                    >(_) => {}
14227                }
14228            }
14229            #[automatically_derived]
14230            #[doc(hidden)]
14231            impl ::core::convert::From<pauserRegistryCall> for UnderlyingRustTuple<'_> {
14232                fn from(value: pauserRegistryCall) -> Self {
14233                    ()
14234                }
14235            }
14236            #[automatically_derived]
14237            #[doc(hidden)]
14238            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryCall {
14239                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14240                    Self
14241                }
14242            }
14243        }
14244        {
14245            #[doc(hidden)]
14246            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14247            #[doc(hidden)]
14248            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14249            #[cfg(test)]
14250            #[allow(dead_code, unreachable_patterns)]
14251            fn _type_assertion(
14252                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14253            ) {
14254                match _t {
14255                    alloy_sol_types::private::AssertTypeEq::<
14256                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14257                    >(_) => {}
14258                }
14259            }
14260            #[automatically_derived]
14261            #[doc(hidden)]
14262            impl ::core::convert::From<pauserRegistryReturn>
14263            for UnderlyingRustTuple<'_> {
14264                fn from(value: pauserRegistryReturn) -> Self {
14265                    (value._0,)
14266                }
14267            }
14268            #[automatically_derived]
14269            #[doc(hidden)]
14270            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14271            for pauserRegistryReturn {
14272                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14273                    Self { _0: tuple.0 }
14274                }
14275            }
14276        }
14277        #[automatically_derived]
14278        impl alloy_sol_types::SolCall for pauserRegistryCall {
14279            type Parameters<'a> = ();
14280            type Token<'a> = <Self::Parameters<
14281                'a,
14282            > as alloy_sol_types::SolType>::Token<'a>;
14283            type Return = alloy::sol_types::private::Address;
14284            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
14285            type ReturnToken<'a> = <Self::ReturnTuple<
14286                'a,
14287            > as alloy_sol_types::SolType>::Token<'a>;
14288            const SIGNATURE: &'static str = "pauserRegistry()";
14289            const SELECTOR: [u8; 4] = [136u8, 111u8, 17u8, 149u8];
14290            #[inline]
14291            fn new<'a>(
14292                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14293            ) -> Self {
14294                tuple.into()
14295            }
14296            #[inline]
14297            fn tokenize(&self) -> Self::Token<'_> {
14298                ()
14299            }
14300            #[inline]
14301            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
14302                (
14303                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14304                        ret,
14305                    ),
14306                )
14307            }
14308            #[inline]
14309            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
14310                <Self::ReturnTuple<
14311                    '_,
14312                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
14313                    .map(|r| {
14314                        let r: pauserRegistryReturn = r.into();
14315                        r._0
14316                    })
14317            }
14318            #[inline]
14319            fn abi_decode_returns_validate(
14320                data: &[u8],
14321            ) -> alloy_sol_types::Result<Self::Return> {
14322                <Self::ReturnTuple<
14323                    '_,
14324                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
14325                    .map(|r| {
14326                        let r: pauserRegistryReturn = r.into();
14327                        r._0
14328                    })
14329            }
14330        }
14331    };
14332    #[derive(serde::Serialize, serde::Deserialize)]
14333    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14334    /**Function with signature `permissionController()` and selector `0x4657e26a`.
14335```solidity
14336function permissionController() external view returns (address);
14337```*/
14338    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14339    #[derive(Clone)]
14340    pub struct permissionControllerCall;
14341    #[derive(serde::Serialize, serde::Deserialize)]
14342    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14343    ///Container type for the return parameters of the [`permissionController()`](permissionControllerCall) function.
14344    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14345    #[derive(Clone)]
14346    pub struct permissionControllerReturn {
14347        #[allow(missing_docs)]
14348        pub _0: alloy::sol_types::private::Address,
14349    }
14350    #[allow(
14351        non_camel_case_types,
14352        non_snake_case,
14353        clippy::pub_underscore_fields,
14354        clippy::style
14355    )]
14356    const _: () = {
14357        use alloy::sol_types as alloy_sol_types;
14358        {
14359            #[doc(hidden)]
14360            type UnderlyingSolTuple<'a> = ();
14361            #[doc(hidden)]
14362            type UnderlyingRustTuple<'a> = ();
14363            #[cfg(test)]
14364            #[allow(dead_code, unreachable_patterns)]
14365            fn _type_assertion(
14366                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14367            ) {
14368                match _t {
14369                    alloy_sol_types::private::AssertTypeEq::<
14370                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14371                    >(_) => {}
14372                }
14373            }
14374            #[automatically_derived]
14375            #[doc(hidden)]
14376            impl ::core::convert::From<permissionControllerCall>
14377            for UnderlyingRustTuple<'_> {
14378                fn from(value: permissionControllerCall) -> Self {
14379                    ()
14380                }
14381            }
14382            #[automatically_derived]
14383            #[doc(hidden)]
14384            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14385            for permissionControllerCall {
14386                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14387                    Self
14388                }
14389            }
14390        }
14391        {
14392            #[doc(hidden)]
14393            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14394            #[doc(hidden)]
14395            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14396            #[cfg(test)]
14397            #[allow(dead_code, unreachable_patterns)]
14398            fn _type_assertion(
14399                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14400            ) {
14401                match _t {
14402                    alloy_sol_types::private::AssertTypeEq::<
14403                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14404                    >(_) => {}
14405                }
14406            }
14407            #[automatically_derived]
14408            #[doc(hidden)]
14409            impl ::core::convert::From<permissionControllerReturn>
14410            for UnderlyingRustTuple<'_> {
14411                fn from(value: permissionControllerReturn) -> Self {
14412                    (value._0,)
14413                }
14414            }
14415            #[automatically_derived]
14416            #[doc(hidden)]
14417            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14418            for permissionControllerReturn {
14419                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14420                    Self { _0: tuple.0 }
14421                }
14422            }
14423        }
14424        #[automatically_derived]
14425        impl alloy_sol_types::SolCall for permissionControllerCall {
14426            type Parameters<'a> = ();
14427            type Token<'a> = <Self::Parameters<
14428                'a,
14429            > as alloy_sol_types::SolType>::Token<'a>;
14430            type Return = alloy::sol_types::private::Address;
14431            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
14432            type ReturnToken<'a> = <Self::ReturnTuple<
14433                'a,
14434            > as alloy_sol_types::SolType>::Token<'a>;
14435            const SIGNATURE: &'static str = "permissionController()";
14436            const SELECTOR: [u8; 4] = [70u8, 87u8, 226u8, 106u8];
14437            #[inline]
14438            fn new<'a>(
14439                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14440            ) -> Self {
14441                tuple.into()
14442            }
14443            #[inline]
14444            fn tokenize(&self) -> Self::Token<'_> {
14445                ()
14446            }
14447            #[inline]
14448            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
14449                (
14450                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14451                        ret,
14452                    ),
14453                )
14454            }
14455            #[inline]
14456            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
14457                <Self::ReturnTuple<
14458                    '_,
14459                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
14460                    .map(|r| {
14461                        let r: permissionControllerReturn = r.into();
14462                        r._0
14463                    })
14464            }
14465            #[inline]
14466            fn abi_decode_returns_validate(
14467                data: &[u8],
14468            ) -> alloy_sol_types::Result<Self::Return> {
14469                <Self::ReturnTuple<
14470                    '_,
14471                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
14472                    .map(|r| {
14473                        let r: permissionControllerReturn = r.into();
14474                        r._0
14475                    })
14476            }
14477        }
14478    };
14479    #[derive(serde::Serialize, serde::Deserialize)]
14480    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14481    /**Function with signature `registerForOperatorSets(address,(address,uint32[],bytes))` and selector `0xadc2e3d9`.
14482```solidity
14483function registerForOperatorSets(address operator, IAllocationManagerTypes.RegisterParams memory params) external;
14484```*/
14485    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14486    #[derive(Clone)]
14487    pub struct registerForOperatorSetsCall {
14488        #[allow(missing_docs)]
14489        pub operator: alloy::sol_types::private::Address,
14490        #[allow(missing_docs)]
14491        pub params: <IAllocationManagerTypes::RegisterParams as alloy::sol_types::SolType>::RustType,
14492    }
14493    ///Container type for the return parameters of the [`registerForOperatorSets(address,(address,uint32[],bytes))`](registerForOperatorSetsCall) function.
14494    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14495    #[derive(Clone)]
14496    pub struct registerForOperatorSetsReturn {}
14497    #[allow(
14498        non_camel_case_types,
14499        non_snake_case,
14500        clippy::pub_underscore_fields,
14501        clippy::style
14502    )]
14503    const _: () = {
14504        use alloy::sol_types as alloy_sol_types;
14505        {
14506            #[doc(hidden)]
14507            type UnderlyingSolTuple<'a> = (
14508                alloy::sol_types::sol_data::Address,
14509                IAllocationManagerTypes::RegisterParams,
14510            );
14511            #[doc(hidden)]
14512            type UnderlyingRustTuple<'a> = (
14513                alloy::sol_types::private::Address,
14514                <IAllocationManagerTypes::RegisterParams as alloy::sol_types::SolType>::RustType,
14515            );
14516            #[cfg(test)]
14517            #[allow(dead_code, unreachable_patterns)]
14518            fn _type_assertion(
14519                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14520            ) {
14521                match _t {
14522                    alloy_sol_types::private::AssertTypeEq::<
14523                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14524                    >(_) => {}
14525                }
14526            }
14527            #[automatically_derived]
14528            #[doc(hidden)]
14529            impl ::core::convert::From<registerForOperatorSetsCall>
14530            for UnderlyingRustTuple<'_> {
14531                fn from(value: registerForOperatorSetsCall) -> Self {
14532                    (value.operator, value.params)
14533                }
14534            }
14535            #[automatically_derived]
14536            #[doc(hidden)]
14537            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14538            for registerForOperatorSetsCall {
14539                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14540                    Self {
14541                        operator: tuple.0,
14542                        params: tuple.1,
14543                    }
14544                }
14545            }
14546        }
14547        {
14548            #[doc(hidden)]
14549            type UnderlyingSolTuple<'a> = ();
14550            #[doc(hidden)]
14551            type UnderlyingRustTuple<'a> = ();
14552            #[cfg(test)]
14553            #[allow(dead_code, unreachable_patterns)]
14554            fn _type_assertion(
14555                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14556            ) {
14557                match _t {
14558                    alloy_sol_types::private::AssertTypeEq::<
14559                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14560                    >(_) => {}
14561                }
14562            }
14563            #[automatically_derived]
14564            #[doc(hidden)]
14565            impl ::core::convert::From<registerForOperatorSetsReturn>
14566            for UnderlyingRustTuple<'_> {
14567                fn from(value: registerForOperatorSetsReturn) -> Self {
14568                    ()
14569                }
14570            }
14571            #[automatically_derived]
14572            #[doc(hidden)]
14573            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14574            for registerForOperatorSetsReturn {
14575                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14576                    Self {}
14577                }
14578            }
14579        }
14580        impl registerForOperatorSetsReturn {
14581            fn _tokenize(
14582                &self,
14583            ) -> <registerForOperatorSetsCall as alloy_sol_types::SolCall>::ReturnToken<
14584                '_,
14585            > {
14586                ()
14587            }
14588        }
14589        #[automatically_derived]
14590        impl alloy_sol_types::SolCall for registerForOperatorSetsCall {
14591            type Parameters<'a> = (
14592                alloy::sol_types::sol_data::Address,
14593                IAllocationManagerTypes::RegisterParams,
14594            );
14595            type Token<'a> = <Self::Parameters<
14596                'a,
14597            > as alloy_sol_types::SolType>::Token<'a>;
14598            type Return = registerForOperatorSetsReturn;
14599            type ReturnTuple<'a> = ();
14600            type ReturnToken<'a> = <Self::ReturnTuple<
14601                'a,
14602            > as alloy_sol_types::SolType>::Token<'a>;
14603            const SIGNATURE: &'static str = "registerForOperatorSets(address,(address,uint32[],bytes))";
14604            const SELECTOR: [u8; 4] = [173u8, 194u8, 227u8, 217u8];
14605            #[inline]
14606            fn new<'a>(
14607                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14608            ) -> Self {
14609                tuple.into()
14610            }
14611            #[inline]
14612            fn tokenize(&self) -> Self::Token<'_> {
14613                (
14614                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14615                        &self.operator,
14616                    ),
14617                    <IAllocationManagerTypes::RegisterParams as alloy_sol_types::SolType>::tokenize(
14618                        &self.params,
14619                    ),
14620                )
14621            }
14622            #[inline]
14623            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
14624                registerForOperatorSetsReturn::_tokenize(ret)
14625            }
14626            #[inline]
14627            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
14628                <Self::ReturnTuple<
14629                    '_,
14630                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
14631                    .map(Into::into)
14632            }
14633            #[inline]
14634            fn abi_decode_returns_validate(
14635                data: &[u8],
14636            ) -> alloy_sol_types::Result<Self::Return> {
14637                <Self::ReturnTuple<
14638                    '_,
14639                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
14640                    .map(Into::into)
14641            }
14642        }
14643    };
14644    #[derive(serde::Serialize, serde::Deserialize)]
14645    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14646    /**Function with signature `removeStrategiesFromOperatorSet(address,uint32,address[])` and selector `0xb66bd989`.
14647```solidity
14648function removeStrategiesFromOperatorSet(address avs, uint32 operatorSetId, address[] memory strategies) external;
14649```*/
14650    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14651    #[derive(Clone)]
14652    pub struct removeStrategiesFromOperatorSetCall {
14653        #[allow(missing_docs)]
14654        pub avs: alloy::sol_types::private::Address,
14655        #[allow(missing_docs)]
14656        pub operatorSetId: u32,
14657        #[allow(missing_docs)]
14658        pub strategies: alloy::sol_types::private::Vec<
14659            alloy::sol_types::private::Address,
14660        >,
14661    }
14662    ///Container type for the return parameters of the [`removeStrategiesFromOperatorSet(address,uint32,address[])`](removeStrategiesFromOperatorSetCall) function.
14663    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14664    #[derive(Clone)]
14665    pub struct removeStrategiesFromOperatorSetReturn {}
14666    #[allow(
14667        non_camel_case_types,
14668        non_snake_case,
14669        clippy::pub_underscore_fields,
14670        clippy::style
14671    )]
14672    const _: () = {
14673        use alloy::sol_types as alloy_sol_types;
14674        {
14675            #[doc(hidden)]
14676            type UnderlyingSolTuple<'a> = (
14677                alloy::sol_types::sol_data::Address,
14678                alloy::sol_types::sol_data::Uint<32>,
14679                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
14680            );
14681            #[doc(hidden)]
14682            type UnderlyingRustTuple<'a> = (
14683                alloy::sol_types::private::Address,
14684                u32,
14685                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
14686            );
14687            #[cfg(test)]
14688            #[allow(dead_code, unreachable_patterns)]
14689            fn _type_assertion(
14690                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14691            ) {
14692                match _t {
14693                    alloy_sol_types::private::AssertTypeEq::<
14694                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14695                    >(_) => {}
14696                }
14697            }
14698            #[automatically_derived]
14699            #[doc(hidden)]
14700            impl ::core::convert::From<removeStrategiesFromOperatorSetCall>
14701            for UnderlyingRustTuple<'_> {
14702                fn from(value: removeStrategiesFromOperatorSetCall) -> Self {
14703                    (value.avs, value.operatorSetId, value.strategies)
14704                }
14705            }
14706            #[automatically_derived]
14707            #[doc(hidden)]
14708            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14709            for removeStrategiesFromOperatorSetCall {
14710                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14711                    Self {
14712                        avs: tuple.0,
14713                        operatorSetId: tuple.1,
14714                        strategies: tuple.2,
14715                    }
14716                }
14717            }
14718        }
14719        {
14720            #[doc(hidden)]
14721            type UnderlyingSolTuple<'a> = ();
14722            #[doc(hidden)]
14723            type UnderlyingRustTuple<'a> = ();
14724            #[cfg(test)]
14725            #[allow(dead_code, unreachable_patterns)]
14726            fn _type_assertion(
14727                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14728            ) {
14729                match _t {
14730                    alloy_sol_types::private::AssertTypeEq::<
14731                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14732                    >(_) => {}
14733                }
14734            }
14735            #[automatically_derived]
14736            #[doc(hidden)]
14737            impl ::core::convert::From<removeStrategiesFromOperatorSetReturn>
14738            for UnderlyingRustTuple<'_> {
14739                fn from(value: removeStrategiesFromOperatorSetReturn) -> Self {
14740                    ()
14741                }
14742            }
14743            #[automatically_derived]
14744            #[doc(hidden)]
14745            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14746            for removeStrategiesFromOperatorSetReturn {
14747                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14748                    Self {}
14749                }
14750            }
14751        }
14752        impl removeStrategiesFromOperatorSetReturn {
14753            fn _tokenize(
14754                &self,
14755            ) -> <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::ReturnToken<
14756                '_,
14757            > {
14758                ()
14759            }
14760        }
14761        #[automatically_derived]
14762        impl alloy_sol_types::SolCall for removeStrategiesFromOperatorSetCall {
14763            type Parameters<'a> = (
14764                alloy::sol_types::sol_data::Address,
14765                alloy::sol_types::sol_data::Uint<32>,
14766                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
14767            );
14768            type Token<'a> = <Self::Parameters<
14769                'a,
14770            > as alloy_sol_types::SolType>::Token<'a>;
14771            type Return = removeStrategiesFromOperatorSetReturn;
14772            type ReturnTuple<'a> = ();
14773            type ReturnToken<'a> = <Self::ReturnTuple<
14774                'a,
14775            > as alloy_sol_types::SolType>::Token<'a>;
14776            const SIGNATURE: &'static str = "removeStrategiesFromOperatorSet(address,uint32,address[])";
14777            const SELECTOR: [u8; 4] = [182u8, 107u8, 217u8, 137u8];
14778            #[inline]
14779            fn new<'a>(
14780                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14781            ) -> Self {
14782                tuple.into()
14783            }
14784            #[inline]
14785            fn tokenize(&self) -> Self::Token<'_> {
14786                (
14787                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14788                        &self.avs,
14789                    ),
14790                    <alloy::sol_types::sol_data::Uint<
14791                        32,
14792                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetId),
14793                    <alloy::sol_types::sol_data::Array<
14794                        alloy::sol_types::sol_data::Address,
14795                    > as alloy_sol_types::SolType>::tokenize(&self.strategies),
14796                )
14797            }
14798            #[inline]
14799            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
14800                removeStrategiesFromOperatorSetReturn::_tokenize(ret)
14801            }
14802            #[inline]
14803            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
14804                <Self::ReturnTuple<
14805                    '_,
14806                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
14807                    .map(Into::into)
14808            }
14809            #[inline]
14810            fn abi_decode_returns_validate(
14811                data: &[u8],
14812            ) -> alloy_sol_types::Result<Self::Return> {
14813                <Self::ReturnTuple<
14814                    '_,
14815                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
14816                    .map(Into::into)
14817            }
14818        }
14819    };
14820    #[derive(serde::Serialize, serde::Deserialize)]
14821    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14822    /**Function with signature `renounceOwnership()` and selector `0x715018a6`.
14823```solidity
14824function renounceOwnership() external;
14825```*/
14826    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14827    #[derive(Clone)]
14828    pub struct renounceOwnershipCall;
14829    ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function.
14830    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14831    #[derive(Clone)]
14832    pub struct renounceOwnershipReturn {}
14833    #[allow(
14834        non_camel_case_types,
14835        non_snake_case,
14836        clippy::pub_underscore_fields,
14837        clippy::style
14838    )]
14839    const _: () = {
14840        use alloy::sol_types as alloy_sol_types;
14841        {
14842            #[doc(hidden)]
14843            type UnderlyingSolTuple<'a> = ();
14844            #[doc(hidden)]
14845            type UnderlyingRustTuple<'a> = ();
14846            #[cfg(test)]
14847            #[allow(dead_code, unreachable_patterns)]
14848            fn _type_assertion(
14849                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14850            ) {
14851                match _t {
14852                    alloy_sol_types::private::AssertTypeEq::<
14853                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14854                    >(_) => {}
14855                }
14856            }
14857            #[automatically_derived]
14858            #[doc(hidden)]
14859            impl ::core::convert::From<renounceOwnershipCall>
14860            for UnderlyingRustTuple<'_> {
14861                fn from(value: renounceOwnershipCall) -> Self {
14862                    ()
14863                }
14864            }
14865            #[automatically_derived]
14866            #[doc(hidden)]
14867            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14868            for renounceOwnershipCall {
14869                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14870                    Self
14871                }
14872            }
14873        }
14874        {
14875            #[doc(hidden)]
14876            type UnderlyingSolTuple<'a> = ();
14877            #[doc(hidden)]
14878            type UnderlyingRustTuple<'a> = ();
14879            #[cfg(test)]
14880            #[allow(dead_code, unreachable_patterns)]
14881            fn _type_assertion(
14882                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14883            ) {
14884                match _t {
14885                    alloy_sol_types::private::AssertTypeEq::<
14886                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14887                    >(_) => {}
14888                }
14889            }
14890            #[automatically_derived]
14891            #[doc(hidden)]
14892            impl ::core::convert::From<renounceOwnershipReturn>
14893            for UnderlyingRustTuple<'_> {
14894                fn from(value: renounceOwnershipReturn) -> Self {
14895                    ()
14896                }
14897            }
14898            #[automatically_derived]
14899            #[doc(hidden)]
14900            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14901            for renounceOwnershipReturn {
14902                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14903                    Self {}
14904                }
14905            }
14906        }
14907        impl renounceOwnershipReturn {
14908            fn _tokenize(
14909                &self,
14910            ) -> <renounceOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
14911                ()
14912            }
14913        }
14914        #[automatically_derived]
14915        impl alloy_sol_types::SolCall for renounceOwnershipCall {
14916            type Parameters<'a> = ();
14917            type Token<'a> = <Self::Parameters<
14918                'a,
14919            > as alloy_sol_types::SolType>::Token<'a>;
14920            type Return = renounceOwnershipReturn;
14921            type ReturnTuple<'a> = ();
14922            type ReturnToken<'a> = <Self::ReturnTuple<
14923                'a,
14924            > as alloy_sol_types::SolType>::Token<'a>;
14925            const SIGNATURE: &'static str = "renounceOwnership()";
14926            const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
14927            #[inline]
14928            fn new<'a>(
14929                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14930            ) -> Self {
14931                tuple.into()
14932            }
14933            #[inline]
14934            fn tokenize(&self) -> Self::Token<'_> {
14935                ()
14936            }
14937            #[inline]
14938            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
14939                renounceOwnershipReturn::_tokenize(ret)
14940            }
14941            #[inline]
14942            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
14943                <Self::ReturnTuple<
14944                    '_,
14945                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
14946                    .map(Into::into)
14947            }
14948            #[inline]
14949            fn abi_decode_returns_validate(
14950                data: &[u8],
14951            ) -> alloy_sol_types::Result<Self::Return> {
14952                <Self::ReturnTuple<
14953                    '_,
14954                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
14955                    .map(Into::into)
14956            }
14957        }
14958    };
14959    #[derive(serde::Serialize, serde::Deserialize)]
14960    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14961    /**Function with signature `setAVSRegistrar(address,address)` and selector `0xd3d96ff4`.
14962```solidity
14963function setAVSRegistrar(address avs, address registrar) external;
14964```*/
14965    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14966    #[derive(Clone)]
14967    pub struct setAVSRegistrarCall {
14968        #[allow(missing_docs)]
14969        pub avs: alloy::sol_types::private::Address,
14970        #[allow(missing_docs)]
14971        pub registrar: alloy::sol_types::private::Address,
14972    }
14973    ///Container type for the return parameters of the [`setAVSRegistrar(address,address)`](setAVSRegistrarCall) function.
14974    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14975    #[derive(Clone)]
14976    pub struct setAVSRegistrarReturn {}
14977    #[allow(
14978        non_camel_case_types,
14979        non_snake_case,
14980        clippy::pub_underscore_fields,
14981        clippy::style
14982    )]
14983    const _: () = {
14984        use alloy::sol_types as alloy_sol_types;
14985        {
14986            #[doc(hidden)]
14987            type UnderlyingSolTuple<'a> = (
14988                alloy::sol_types::sol_data::Address,
14989                alloy::sol_types::sol_data::Address,
14990            );
14991            #[doc(hidden)]
14992            type UnderlyingRustTuple<'a> = (
14993                alloy::sol_types::private::Address,
14994                alloy::sol_types::private::Address,
14995            );
14996            #[cfg(test)]
14997            #[allow(dead_code, unreachable_patterns)]
14998            fn _type_assertion(
14999                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15000            ) {
15001                match _t {
15002                    alloy_sol_types::private::AssertTypeEq::<
15003                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15004                    >(_) => {}
15005                }
15006            }
15007            #[automatically_derived]
15008            #[doc(hidden)]
15009            impl ::core::convert::From<setAVSRegistrarCall> for UnderlyingRustTuple<'_> {
15010                fn from(value: setAVSRegistrarCall) -> Self {
15011                    (value.avs, value.registrar)
15012                }
15013            }
15014            #[automatically_derived]
15015            #[doc(hidden)]
15016            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setAVSRegistrarCall {
15017                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15018                    Self {
15019                        avs: tuple.0,
15020                        registrar: tuple.1,
15021                    }
15022                }
15023            }
15024        }
15025        {
15026            #[doc(hidden)]
15027            type UnderlyingSolTuple<'a> = ();
15028            #[doc(hidden)]
15029            type UnderlyingRustTuple<'a> = ();
15030            #[cfg(test)]
15031            #[allow(dead_code, unreachable_patterns)]
15032            fn _type_assertion(
15033                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15034            ) {
15035                match _t {
15036                    alloy_sol_types::private::AssertTypeEq::<
15037                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15038                    >(_) => {}
15039                }
15040            }
15041            #[automatically_derived]
15042            #[doc(hidden)]
15043            impl ::core::convert::From<setAVSRegistrarReturn>
15044            for UnderlyingRustTuple<'_> {
15045                fn from(value: setAVSRegistrarReturn) -> Self {
15046                    ()
15047                }
15048            }
15049            #[automatically_derived]
15050            #[doc(hidden)]
15051            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15052            for setAVSRegistrarReturn {
15053                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15054                    Self {}
15055                }
15056            }
15057        }
15058        impl setAVSRegistrarReturn {
15059            fn _tokenize(
15060                &self,
15061            ) -> <setAVSRegistrarCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
15062                ()
15063            }
15064        }
15065        #[automatically_derived]
15066        impl alloy_sol_types::SolCall for setAVSRegistrarCall {
15067            type Parameters<'a> = (
15068                alloy::sol_types::sol_data::Address,
15069                alloy::sol_types::sol_data::Address,
15070            );
15071            type Token<'a> = <Self::Parameters<
15072                'a,
15073            > as alloy_sol_types::SolType>::Token<'a>;
15074            type Return = setAVSRegistrarReturn;
15075            type ReturnTuple<'a> = ();
15076            type ReturnToken<'a> = <Self::ReturnTuple<
15077                'a,
15078            > as alloy_sol_types::SolType>::Token<'a>;
15079            const SIGNATURE: &'static str = "setAVSRegistrar(address,address)";
15080            const SELECTOR: [u8; 4] = [211u8, 217u8, 111u8, 244u8];
15081            #[inline]
15082            fn new<'a>(
15083                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15084            ) -> Self {
15085                tuple.into()
15086            }
15087            #[inline]
15088            fn tokenize(&self) -> Self::Token<'_> {
15089                (
15090                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
15091                        &self.avs,
15092                    ),
15093                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
15094                        &self.registrar,
15095                    ),
15096                )
15097            }
15098            #[inline]
15099            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
15100                setAVSRegistrarReturn::_tokenize(ret)
15101            }
15102            #[inline]
15103            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
15104                <Self::ReturnTuple<
15105                    '_,
15106                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
15107                    .map(Into::into)
15108            }
15109            #[inline]
15110            fn abi_decode_returns_validate(
15111                data: &[u8],
15112            ) -> alloy_sol_types::Result<Self::Return> {
15113                <Self::ReturnTuple<
15114                    '_,
15115                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
15116                    .map(Into::into)
15117            }
15118        }
15119    };
15120    #[derive(serde::Serialize, serde::Deserialize)]
15121    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15122    /**Function with signature `setAllocationDelay(address,uint32)` and selector `0x56c483e6`.
15123```solidity
15124function setAllocationDelay(address operator, uint32 delay) external;
15125```*/
15126    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15127    #[derive(Clone)]
15128    pub struct setAllocationDelayCall {
15129        #[allow(missing_docs)]
15130        pub operator: alloy::sol_types::private::Address,
15131        #[allow(missing_docs)]
15132        pub delay: u32,
15133    }
15134    ///Container type for the return parameters of the [`setAllocationDelay(address,uint32)`](setAllocationDelayCall) function.
15135    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15136    #[derive(Clone)]
15137    pub struct setAllocationDelayReturn {}
15138    #[allow(
15139        non_camel_case_types,
15140        non_snake_case,
15141        clippy::pub_underscore_fields,
15142        clippy::style
15143    )]
15144    const _: () = {
15145        use alloy::sol_types as alloy_sol_types;
15146        {
15147            #[doc(hidden)]
15148            type UnderlyingSolTuple<'a> = (
15149                alloy::sol_types::sol_data::Address,
15150                alloy::sol_types::sol_data::Uint<32>,
15151            );
15152            #[doc(hidden)]
15153            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u32);
15154            #[cfg(test)]
15155            #[allow(dead_code, unreachable_patterns)]
15156            fn _type_assertion(
15157                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15158            ) {
15159                match _t {
15160                    alloy_sol_types::private::AssertTypeEq::<
15161                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15162                    >(_) => {}
15163                }
15164            }
15165            #[automatically_derived]
15166            #[doc(hidden)]
15167            impl ::core::convert::From<setAllocationDelayCall>
15168            for UnderlyingRustTuple<'_> {
15169                fn from(value: setAllocationDelayCall) -> Self {
15170                    (value.operator, value.delay)
15171                }
15172            }
15173            #[automatically_derived]
15174            #[doc(hidden)]
15175            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15176            for setAllocationDelayCall {
15177                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15178                    Self {
15179                        operator: tuple.0,
15180                        delay: tuple.1,
15181                    }
15182                }
15183            }
15184        }
15185        {
15186            #[doc(hidden)]
15187            type UnderlyingSolTuple<'a> = ();
15188            #[doc(hidden)]
15189            type UnderlyingRustTuple<'a> = ();
15190            #[cfg(test)]
15191            #[allow(dead_code, unreachable_patterns)]
15192            fn _type_assertion(
15193                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15194            ) {
15195                match _t {
15196                    alloy_sol_types::private::AssertTypeEq::<
15197                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15198                    >(_) => {}
15199                }
15200            }
15201            #[automatically_derived]
15202            #[doc(hidden)]
15203            impl ::core::convert::From<setAllocationDelayReturn>
15204            for UnderlyingRustTuple<'_> {
15205                fn from(value: setAllocationDelayReturn) -> Self {
15206                    ()
15207                }
15208            }
15209            #[automatically_derived]
15210            #[doc(hidden)]
15211            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15212            for setAllocationDelayReturn {
15213                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15214                    Self {}
15215                }
15216            }
15217        }
15218        impl setAllocationDelayReturn {
15219            fn _tokenize(
15220                &self,
15221            ) -> <setAllocationDelayCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
15222                ()
15223            }
15224        }
15225        #[automatically_derived]
15226        impl alloy_sol_types::SolCall for setAllocationDelayCall {
15227            type Parameters<'a> = (
15228                alloy::sol_types::sol_data::Address,
15229                alloy::sol_types::sol_data::Uint<32>,
15230            );
15231            type Token<'a> = <Self::Parameters<
15232                'a,
15233            > as alloy_sol_types::SolType>::Token<'a>;
15234            type Return = setAllocationDelayReturn;
15235            type ReturnTuple<'a> = ();
15236            type ReturnToken<'a> = <Self::ReturnTuple<
15237                'a,
15238            > as alloy_sol_types::SolType>::Token<'a>;
15239            const SIGNATURE: &'static str = "setAllocationDelay(address,uint32)";
15240            const SELECTOR: [u8; 4] = [86u8, 196u8, 131u8, 230u8];
15241            #[inline]
15242            fn new<'a>(
15243                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15244            ) -> Self {
15245                tuple.into()
15246            }
15247            #[inline]
15248            fn tokenize(&self) -> Self::Token<'_> {
15249                (
15250                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
15251                        &self.operator,
15252                    ),
15253                    <alloy::sol_types::sol_data::Uint<
15254                        32,
15255                    > as alloy_sol_types::SolType>::tokenize(&self.delay),
15256                )
15257            }
15258            #[inline]
15259            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
15260                setAllocationDelayReturn::_tokenize(ret)
15261            }
15262            #[inline]
15263            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
15264                <Self::ReturnTuple<
15265                    '_,
15266                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
15267                    .map(Into::into)
15268            }
15269            #[inline]
15270            fn abi_decode_returns_validate(
15271                data: &[u8],
15272            ) -> alloy_sol_types::Result<Self::Return> {
15273                <Self::ReturnTuple<
15274                    '_,
15275                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
15276                    .map(Into::into)
15277            }
15278        }
15279    };
15280    #[derive(serde::Serialize, serde::Deserialize)]
15281    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15282    /**Function with signature `slashOperator(address,(address,uint32,address[],uint256[],string))` and selector `0x36352057`.
15283```solidity
15284function slashOperator(address avs, IAllocationManagerTypes.SlashingParams memory params) external;
15285```*/
15286    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15287    #[derive(Clone)]
15288    pub struct slashOperatorCall {
15289        #[allow(missing_docs)]
15290        pub avs: alloy::sol_types::private::Address,
15291        #[allow(missing_docs)]
15292        pub params: <IAllocationManagerTypes::SlashingParams as alloy::sol_types::SolType>::RustType,
15293    }
15294    ///Container type for the return parameters of the [`slashOperator(address,(address,uint32,address[],uint256[],string))`](slashOperatorCall) function.
15295    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15296    #[derive(Clone)]
15297    pub struct slashOperatorReturn {}
15298    #[allow(
15299        non_camel_case_types,
15300        non_snake_case,
15301        clippy::pub_underscore_fields,
15302        clippy::style
15303    )]
15304    const _: () = {
15305        use alloy::sol_types as alloy_sol_types;
15306        {
15307            #[doc(hidden)]
15308            type UnderlyingSolTuple<'a> = (
15309                alloy::sol_types::sol_data::Address,
15310                IAllocationManagerTypes::SlashingParams,
15311            );
15312            #[doc(hidden)]
15313            type UnderlyingRustTuple<'a> = (
15314                alloy::sol_types::private::Address,
15315                <IAllocationManagerTypes::SlashingParams as alloy::sol_types::SolType>::RustType,
15316            );
15317            #[cfg(test)]
15318            #[allow(dead_code, unreachable_patterns)]
15319            fn _type_assertion(
15320                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15321            ) {
15322                match _t {
15323                    alloy_sol_types::private::AssertTypeEq::<
15324                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15325                    >(_) => {}
15326                }
15327            }
15328            #[automatically_derived]
15329            #[doc(hidden)]
15330            impl ::core::convert::From<slashOperatorCall> for UnderlyingRustTuple<'_> {
15331                fn from(value: slashOperatorCall) -> Self {
15332                    (value.avs, value.params)
15333                }
15334            }
15335            #[automatically_derived]
15336            #[doc(hidden)]
15337            impl ::core::convert::From<UnderlyingRustTuple<'_>> for slashOperatorCall {
15338                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15339                    Self {
15340                        avs: tuple.0,
15341                        params: tuple.1,
15342                    }
15343                }
15344            }
15345        }
15346        {
15347            #[doc(hidden)]
15348            type UnderlyingSolTuple<'a> = ();
15349            #[doc(hidden)]
15350            type UnderlyingRustTuple<'a> = ();
15351            #[cfg(test)]
15352            #[allow(dead_code, unreachable_patterns)]
15353            fn _type_assertion(
15354                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15355            ) {
15356                match _t {
15357                    alloy_sol_types::private::AssertTypeEq::<
15358                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15359                    >(_) => {}
15360                }
15361            }
15362            #[automatically_derived]
15363            #[doc(hidden)]
15364            impl ::core::convert::From<slashOperatorReturn> for UnderlyingRustTuple<'_> {
15365                fn from(value: slashOperatorReturn) -> Self {
15366                    ()
15367                }
15368            }
15369            #[automatically_derived]
15370            #[doc(hidden)]
15371            impl ::core::convert::From<UnderlyingRustTuple<'_>> for slashOperatorReturn {
15372                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15373                    Self {}
15374                }
15375            }
15376        }
15377        impl slashOperatorReturn {
15378            fn _tokenize(
15379                &self,
15380            ) -> <slashOperatorCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
15381                ()
15382            }
15383        }
15384        #[automatically_derived]
15385        impl alloy_sol_types::SolCall for slashOperatorCall {
15386            type Parameters<'a> = (
15387                alloy::sol_types::sol_data::Address,
15388                IAllocationManagerTypes::SlashingParams,
15389            );
15390            type Token<'a> = <Self::Parameters<
15391                'a,
15392            > as alloy_sol_types::SolType>::Token<'a>;
15393            type Return = slashOperatorReturn;
15394            type ReturnTuple<'a> = ();
15395            type ReturnToken<'a> = <Self::ReturnTuple<
15396                'a,
15397            > as alloy_sol_types::SolType>::Token<'a>;
15398            const SIGNATURE: &'static str = "slashOperator(address,(address,uint32,address[],uint256[],string))";
15399            const SELECTOR: [u8; 4] = [54u8, 53u8, 32u8, 87u8];
15400            #[inline]
15401            fn new<'a>(
15402                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15403            ) -> Self {
15404                tuple.into()
15405            }
15406            #[inline]
15407            fn tokenize(&self) -> Self::Token<'_> {
15408                (
15409                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
15410                        &self.avs,
15411                    ),
15412                    <IAllocationManagerTypes::SlashingParams as alloy_sol_types::SolType>::tokenize(
15413                        &self.params,
15414                    ),
15415                )
15416            }
15417            #[inline]
15418            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
15419                slashOperatorReturn::_tokenize(ret)
15420            }
15421            #[inline]
15422            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
15423                <Self::ReturnTuple<
15424                    '_,
15425                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
15426                    .map(Into::into)
15427            }
15428            #[inline]
15429            fn abi_decode_returns_validate(
15430                data: &[u8],
15431            ) -> alloy_sol_types::Result<Self::Return> {
15432                <Self::ReturnTuple<
15433                    '_,
15434                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
15435                    .map(Into::into)
15436            }
15437        }
15438    };
15439    #[derive(serde::Serialize, serde::Deserialize)]
15440    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15441    /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`.
15442```solidity
15443function transferOwnership(address newOwner) external;
15444```*/
15445    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15446    #[derive(Clone)]
15447    pub struct transferOwnershipCall {
15448        #[allow(missing_docs)]
15449        pub newOwner: alloy::sol_types::private::Address,
15450    }
15451    ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function.
15452    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15453    #[derive(Clone)]
15454    pub struct transferOwnershipReturn {}
15455    #[allow(
15456        non_camel_case_types,
15457        non_snake_case,
15458        clippy::pub_underscore_fields,
15459        clippy::style
15460    )]
15461    const _: () = {
15462        use alloy::sol_types as alloy_sol_types;
15463        {
15464            #[doc(hidden)]
15465            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
15466            #[doc(hidden)]
15467            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
15468            #[cfg(test)]
15469            #[allow(dead_code, unreachable_patterns)]
15470            fn _type_assertion(
15471                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15472            ) {
15473                match _t {
15474                    alloy_sol_types::private::AssertTypeEq::<
15475                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15476                    >(_) => {}
15477                }
15478            }
15479            #[automatically_derived]
15480            #[doc(hidden)]
15481            impl ::core::convert::From<transferOwnershipCall>
15482            for UnderlyingRustTuple<'_> {
15483                fn from(value: transferOwnershipCall) -> Self {
15484                    (value.newOwner,)
15485                }
15486            }
15487            #[automatically_derived]
15488            #[doc(hidden)]
15489            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15490            for transferOwnershipCall {
15491                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15492                    Self { newOwner: tuple.0 }
15493                }
15494            }
15495        }
15496        {
15497            #[doc(hidden)]
15498            type UnderlyingSolTuple<'a> = ();
15499            #[doc(hidden)]
15500            type UnderlyingRustTuple<'a> = ();
15501            #[cfg(test)]
15502            #[allow(dead_code, unreachable_patterns)]
15503            fn _type_assertion(
15504                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15505            ) {
15506                match _t {
15507                    alloy_sol_types::private::AssertTypeEq::<
15508                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15509                    >(_) => {}
15510                }
15511            }
15512            #[automatically_derived]
15513            #[doc(hidden)]
15514            impl ::core::convert::From<transferOwnershipReturn>
15515            for UnderlyingRustTuple<'_> {
15516                fn from(value: transferOwnershipReturn) -> Self {
15517                    ()
15518                }
15519            }
15520            #[automatically_derived]
15521            #[doc(hidden)]
15522            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15523            for transferOwnershipReturn {
15524                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15525                    Self {}
15526                }
15527            }
15528        }
15529        impl transferOwnershipReturn {
15530            fn _tokenize(
15531                &self,
15532            ) -> <transferOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
15533                ()
15534            }
15535        }
15536        #[automatically_derived]
15537        impl alloy_sol_types::SolCall for transferOwnershipCall {
15538            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
15539            type Token<'a> = <Self::Parameters<
15540                'a,
15541            > as alloy_sol_types::SolType>::Token<'a>;
15542            type Return = transferOwnershipReturn;
15543            type ReturnTuple<'a> = ();
15544            type ReturnToken<'a> = <Self::ReturnTuple<
15545                'a,
15546            > as alloy_sol_types::SolType>::Token<'a>;
15547            const SIGNATURE: &'static str = "transferOwnership(address)";
15548            const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
15549            #[inline]
15550            fn new<'a>(
15551                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15552            ) -> Self {
15553                tuple.into()
15554            }
15555            #[inline]
15556            fn tokenize(&self) -> Self::Token<'_> {
15557                (
15558                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
15559                        &self.newOwner,
15560                    ),
15561                )
15562            }
15563            #[inline]
15564            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
15565                transferOwnershipReturn::_tokenize(ret)
15566            }
15567            #[inline]
15568            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
15569                <Self::ReturnTuple<
15570                    '_,
15571                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
15572                    .map(Into::into)
15573            }
15574            #[inline]
15575            fn abi_decode_returns_validate(
15576                data: &[u8],
15577            ) -> alloy_sol_types::Result<Self::Return> {
15578                <Self::ReturnTuple<
15579                    '_,
15580                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
15581                    .map(Into::into)
15582            }
15583        }
15584    };
15585    #[derive(serde::Serialize, serde::Deserialize)]
15586    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15587    /**Function with signature `unpause(uint256)` and selector `0xfabc1cbc`.
15588```solidity
15589function unpause(uint256 newPausedStatus) external;
15590```*/
15591    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15592    #[derive(Clone)]
15593    pub struct unpauseCall {
15594        #[allow(missing_docs)]
15595        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
15596    }
15597    ///Container type for the return parameters of the [`unpause(uint256)`](unpauseCall) function.
15598    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15599    #[derive(Clone)]
15600    pub struct unpauseReturn {}
15601    #[allow(
15602        non_camel_case_types,
15603        non_snake_case,
15604        clippy::pub_underscore_fields,
15605        clippy::style
15606    )]
15607    const _: () = {
15608        use alloy::sol_types as alloy_sol_types;
15609        {
15610            #[doc(hidden)]
15611            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
15612            #[doc(hidden)]
15613            type UnderlyingRustTuple<'a> = (
15614                alloy::sol_types::private::primitives::aliases::U256,
15615            );
15616            #[cfg(test)]
15617            #[allow(dead_code, unreachable_patterns)]
15618            fn _type_assertion(
15619                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15620            ) {
15621                match _t {
15622                    alloy_sol_types::private::AssertTypeEq::<
15623                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15624                    >(_) => {}
15625                }
15626            }
15627            #[automatically_derived]
15628            #[doc(hidden)]
15629            impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
15630                fn from(value: unpauseCall) -> Self {
15631                    (value.newPausedStatus,)
15632                }
15633            }
15634            #[automatically_derived]
15635            #[doc(hidden)]
15636            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
15637                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15638                    Self { newPausedStatus: tuple.0 }
15639                }
15640            }
15641        }
15642        {
15643            #[doc(hidden)]
15644            type UnderlyingSolTuple<'a> = ();
15645            #[doc(hidden)]
15646            type UnderlyingRustTuple<'a> = ();
15647            #[cfg(test)]
15648            #[allow(dead_code, unreachable_patterns)]
15649            fn _type_assertion(
15650                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15651            ) {
15652                match _t {
15653                    alloy_sol_types::private::AssertTypeEq::<
15654                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15655                    >(_) => {}
15656                }
15657            }
15658            #[automatically_derived]
15659            #[doc(hidden)]
15660            impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
15661                fn from(value: unpauseReturn) -> Self {
15662                    ()
15663                }
15664            }
15665            #[automatically_derived]
15666            #[doc(hidden)]
15667            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
15668                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15669                    Self {}
15670                }
15671            }
15672        }
15673        impl unpauseReturn {
15674            fn _tokenize(
15675                &self,
15676            ) -> <unpauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
15677                ()
15678            }
15679        }
15680        #[automatically_derived]
15681        impl alloy_sol_types::SolCall for unpauseCall {
15682            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
15683            type Token<'a> = <Self::Parameters<
15684                'a,
15685            > as alloy_sol_types::SolType>::Token<'a>;
15686            type Return = unpauseReturn;
15687            type ReturnTuple<'a> = ();
15688            type ReturnToken<'a> = <Self::ReturnTuple<
15689                'a,
15690            > as alloy_sol_types::SolType>::Token<'a>;
15691            const SIGNATURE: &'static str = "unpause(uint256)";
15692            const SELECTOR: [u8; 4] = [250u8, 188u8, 28u8, 188u8];
15693            #[inline]
15694            fn new<'a>(
15695                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15696            ) -> Self {
15697                tuple.into()
15698            }
15699            #[inline]
15700            fn tokenize(&self) -> Self::Token<'_> {
15701                (
15702                    <alloy::sol_types::sol_data::Uint<
15703                        256,
15704                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
15705                )
15706            }
15707            #[inline]
15708            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
15709                unpauseReturn::_tokenize(ret)
15710            }
15711            #[inline]
15712            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
15713                <Self::ReturnTuple<
15714                    '_,
15715                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
15716                    .map(Into::into)
15717            }
15718            #[inline]
15719            fn abi_decode_returns_validate(
15720                data: &[u8],
15721            ) -> alloy_sol_types::Result<Self::Return> {
15722                <Self::ReturnTuple<
15723                    '_,
15724                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
15725                    .map(Into::into)
15726            }
15727        }
15728    };
15729    #[derive(serde::Serialize, serde::Deserialize)]
15730    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15731    /**Function with signature `updateAVSMetadataURI(address,string)` and selector `0xa9821821`.
15732```solidity
15733function updateAVSMetadataURI(address avs, string memory metadataURI) external;
15734```*/
15735    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15736    #[derive(Clone)]
15737    pub struct updateAVSMetadataURICall {
15738        #[allow(missing_docs)]
15739        pub avs: alloy::sol_types::private::Address,
15740        #[allow(missing_docs)]
15741        pub metadataURI: alloy::sol_types::private::String,
15742    }
15743    ///Container type for the return parameters of the [`updateAVSMetadataURI(address,string)`](updateAVSMetadataURICall) function.
15744    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15745    #[derive(Clone)]
15746    pub struct updateAVSMetadataURIReturn {}
15747    #[allow(
15748        non_camel_case_types,
15749        non_snake_case,
15750        clippy::pub_underscore_fields,
15751        clippy::style
15752    )]
15753    const _: () = {
15754        use alloy::sol_types as alloy_sol_types;
15755        {
15756            #[doc(hidden)]
15757            type UnderlyingSolTuple<'a> = (
15758                alloy::sol_types::sol_data::Address,
15759                alloy::sol_types::sol_data::String,
15760            );
15761            #[doc(hidden)]
15762            type UnderlyingRustTuple<'a> = (
15763                alloy::sol_types::private::Address,
15764                alloy::sol_types::private::String,
15765            );
15766            #[cfg(test)]
15767            #[allow(dead_code, unreachable_patterns)]
15768            fn _type_assertion(
15769                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15770            ) {
15771                match _t {
15772                    alloy_sol_types::private::AssertTypeEq::<
15773                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15774                    >(_) => {}
15775                }
15776            }
15777            #[automatically_derived]
15778            #[doc(hidden)]
15779            impl ::core::convert::From<updateAVSMetadataURICall>
15780            for UnderlyingRustTuple<'_> {
15781                fn from(value: updateAVSMetadataURICall) -> Self {
15782                    (value.avs, value.metadataURI)
15783                }
15784            }
15785            #[automatically_derived]
15786            #[doc(hidden)]
15787            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15788            for updateAVSMetadataURICall {
15789                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15790                    Self {
15791                        avs: tuple.0,
15792                        metadataURI: tuple.1,
15793                    }
15794                }
15795            }
15796        }
15797        {
15798            #[doc(hidden)]
15799            type UnderlyingSolTuple<'a> = ();
15800            #[doc(hidden)]
15801            type UnderlyingRustTuple<'a> = ();
15802            #[cfg(test)]
15803            #[allow(dead_code, unreachable_patterns)]
15804            fn _type_assertion(
15805                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15806            ) {
15807                match _t {
15808                    alloy_sol_types::private::AssertTypeEq::<
15809                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15810                    >(_) => {}
15811                }
15812            }
15813            #[automatically_derived]
15814            #[doc(hidden)]
15815            impl ::core::convert::From<updateAVSMetadataURIReturn>
15816            for UnderlyingRustTuple<'_> {
15817                fn from(value: updateAVSMetadataURIReturn) -> Self {
15818                    ()
15819                }
15820            }
15821            #[automatically_derived]
15822            #[doc(hidden)]
15823            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15824            for updateAVSMetadataURIReturn {
15825                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15826                    Self {}
15827                }
15828            }
15829        }
15830        impl updateAVSMetadataURIReturn {
15831            fn _tokenize(
15832                &self,
15833            ) -> <updateAVSMetadataURICall as alloy_sol_types::SolCall>::ReturnToken<
15834                '_,
15835            > {
15836                ()
15837            }
15838        }
15839        #[automatically_derived]
15840        impl alloy_sol_types::SolCall for updateAVSMetadataURICall {
15841            type Parameters<'a> = (
15842                alloy::sol_types::sol_data::Address,
15843                alloy::sol_types::sol_data::String,
15844            );
15845            type Token<'a> = <Self::Parameters<
15846                'a,
15847            > as alloy_sol_types::SolType>::Token<'a>;
15848            type Return = updateAVSMetadataURIReturn;
15849            type ReturnTuple<'a> = ();
15850            type ReturnToken<'a> = <Self::ReturnTuple<
15851                'a,
15852            > as alloy_sol_types::SolType>::Token<'a>;
15853            const SIGNATURE: &'static str = "updateAVSMetadataURI(address,string)";
15854            const SELECTOR: [u8; 4] = [169u8, 130u8, 24u8, 33u8];
15855            #[inline]
15856            fn new<'a>(
15857                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15858            ) -> Self {
15859                tuple.into()
15860            }
15861            #[inline]
15862            fn tokenize(&self) -> Self::Token<'_> {
15863                (
15864                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
15865                        &self.avs,
15866                    ),
15867                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
15868                        &self.metadataURI,
15869                    ),
15870                )
15871            }
15872            #[inline]
15873            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
15874                updateAVSMetadataURIReturn::_tokenize(ret)
15875            }
15876            #[inline]
15877            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
15878                <Self::ReturnTuple<
15879                    '_,
15880                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
15881                    .map(Into::into)
15882            }
15883            #[inline]
15884            fn abi_decode_returns_validate(
15885                data: &[u8],
15886            ) -> alloy_sol_types::Result<Self::Return> {
15887                <Self::ReturnTuple<
15888                    '_,
15889                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
15890                    .map(Into::into)
15891            }
15892        }
15893    };
15894    #[derive(serde::Serialize, serde::Deserialize)]
15895    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15896    /**Function with signature `version()` and selector `0x54fd4d50`.
15897```solidity
15898function version() external view returns (string memory);
15899```*/
15900    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15901    #[derive(Clone)]
15902    pub struct versionCall;
15903    #[derive(serde::Serialize, serde::Deserialize)]
15904    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15905    ///Container type for the return parameters of the [`version()`](versionCall) function.
15906    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15907    #[derive(Clone)]
15908    pub struct versionReturn {
15909        #[allow(missing_docs)]
15910        pub _0: alloy::sol_types::private::String,
15911    }
15912    #[allow(
15913        non_camel_case_types,
15914        non_snake_case,
15915        clippy::pub_underscore_fields,
15916        clippy::style
15917    )]
15918    const _: () = {
15919        use alloy::sol_types as alloy_sol_types;
15920        {
15921            #[doc(hidden)]
15922            type UnderlyingSolTuple<'a> = ();
15923            #[doc(hidden)]
15924            type UnderlyingRustTuple<'a> = ();
15925            #[cfg(test)]
15926            #[allow(dead_code, unreachable_patterns)]
15927            fn _type_assertion(
15928                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15929            ) {
15930                match _t {
15931                    alloy_sol_types::private::AssertTypeEq::<
15932                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15933                    >(_) => {}
15934                }
15935            }
15936            #[automatically_derived]
15937            #[doc(hidden)]
15938            impl ::core::convert::From<versionCall> for UnderlyingRustTuple<'_> {
15939                fn from(value: versionCall) -> Self {
15940                    ()
15941                }
15942            }
15943            #[automatically_derived]
15944            #[doc(hidden)]
15945            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionCall {
15946                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15947                    Self
15948                }
15949            }
15950        }
15951        {
15952            #[doc(hidden)]
15953            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
15954            #[doc(hidden)]
15955            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
15956            #[cfg(test)]
15957            #[allow(dead_code, unreachable_patterns)]
15958            fn _type_assertion(
15959                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15960            ) {
15961                match _t {
15962                    alloy_sol_types::private::AssertTypeEq::<
15963                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15964                    >(_) => {}
15965                }
15966            }
15967            #[automatically_derived]
15968            #[doc(hidden)]
15969            impl ::core::convert::From<versionReturn> for UnderlyingRustTuple<'_> {
15970                fn from(value: versionReturn) -> Self {
15971                    (value._0,)
15972                }
15973            }
15974            #[automatically_derived]
15975            #[doc(hidden)]
15976            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionReturn {
15977                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15978                    Self { _0: tuple.0 }
15979                }
15980            }
15981        }
15982        #[automatically_derived]
15983        impl alloy_sol_types::SolCall for versionCall {
15984            type Parameters<'a> = ();
15985            type Token<'a> = <Self::Parameters<
15986                'a,
15987            > as alloy_sol_types::SolType>::Token<'a>;
15988            type Return = alloy::sol_types::private::String;
15989            type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,);
15990            type ReturnToken<'a> = <Self::ReturnTuple<
15991                'a,
15992            > as alloy_sol_types::SolType>::Token<'a>;
15993            const SIGNATURE: &'static str = "version()";
15994            const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8];
15995            #[inline]
15996            fn new<'a>(
15997                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15998            ) -> Self {
15999                tuple.into()
16000            }
16001            #[inline]
16002            fn tokenize(&self) -> Self::Token<'_> {
16003                ()
16004            }
16005            #[inline]
16006            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
16007                (
16008                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
16009                        ret,
16010                    ),
16011                )
16012            }
16013            #[inline]
16014            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
16015                <Self::ReturnTuple<
16016                    '_,
16017                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
16018                    .map(|r| {
16019                        let r: versionReturn = r.into();
16020                        r._0
16021                    })
16022            }
16023            #[inline]
16024            fn abi_decode_returns_validate(
16025                data: &[u8],
16026            ) -> alloy_sol_types::Result<Self::Return> {
16027                <Self::ReturnTuple<
16028                    '_,
16029                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
16030                    .map(|r| {
16031                        let r: versionReturn = r.into();
16032                        r._0
16033                    })
16034            }
16035        }
16036    };
16037    ///Container for all the [`AllocationManager`](self) function calls.
16038    #[derive(serde::Serialize, serde::Deserialize)]
16039    #[derive()]
16040    pub enum AllocationManagerCalls {
16041        #[allow(missing_docs)]
16042        ALLOCATION_CONFIGURATION_DELAY(ALLOCATION_CONFIGURATION_DELAYCall),
16043        #[allow(missing_docs)]
16044        DEALLOCATION_DELAY(DEALLOCATION_DELAYCall),
16045        #[allow(missing_docs)]
16046        addStrategiesToOperatorSet(addStrategiesToOperatorSetCall),
16047        #[allow(missing_docs)]
16048        clearDeallocationQueue(clearDeallocationQueueCall),
16049        #[allow(missing_docs)]
16050        createOperatorSets(createOperatorSetsCall),
16051        #[allow(missing_docs)]
16052        delegation(delegationCall),
16053        #[allow(missing_docs)]
16054        deregisterFromOperatorSets(deregisterFromOperatorSetsCall),
16055        #[allow(missing_docs)]
16056        getAVSRegistrar(getAVSRegistrarCall),
16057        #[allow(missing_docs)]
16058        getAllocatableMagnitude(getAllocatableMagnitudeCall),
16059        #[allow(missing_docs)]
16060        getAllocatedSets(getAllocatedSetsCall),
16061        #[allow(missing_docs)]
16062        getAllocatedStake(getAllocatedStakeCall),
16063        #[allow(missing_docs)]
16064        getAllocatedStrategies(getAllocatedStrategiesCall),
16065        #[allow(missing_docs)]
16066        getAllocation(getAllocationCall),
16067        #[allow(missing_docs)]
16068        getAllocationDelay(getAllocationDelayCall),
16069        #[allow(missing_docs)]
16070        getAllocations(getAllocationsCall),
16071        #[allow(missing_docs)]
16072        getEncumberedMagnitude(getEncumberedMagnitudeCall),
16073        #[allow(missing_docs)]
16074        getMaxMagnitude(getMaxMagnitudeCall),
16075        #[allow(missing_docs)]
16076        getMaxMagnitudes_0(getMaxMagnitudes_0Call),
16077        #[allow(missing_docs)]
16078        getMaxMagnitudes_1(getMaxMagnitudes_1Call),
16079        #[allow(missing_docs)]
16080        getMaxMagnitudesAtBlock(getMaxMagnitudesAtBlockCall),
16081        #[allow(missing_docs)]
16082        getMemberCount(getMemberCountCall),
16083        #[allow(missing_docs)]
16084        getMembers(getMembersCall),
16085        #[allow(missing_docs)]
16086        getMinimumSlashableStake(getMinimumSlashableStakeCall),
16087        #[allow(missing_docs)]
16088        getOperatorSetCount(getOperatorSetCountCall),
16089        #[allow(missing_docs)]
16090        getRegisteredSets(getRegisteredSetsCall),
16091        #[allow(missing_docs)]
16092        getStrategiesInOperatorSet(getStrategiesInOperatorSetCall),
16093        #[allow(missing_docs)]
16094        getStrategyAllocations(getStrategyAllocationsCall),
16095        #[allow(missing_docs)]
16096        initialize(initializeCall),
16097        #[allow(missing_docs)]
16098        isMemberOfOperatorSet(isMemberOfOperatorSetCall),
16099        #[allow(missing_docs)]
16100        isOperatorSet(isOperatorSetCall),
16101        #[allow(missing_docs)]
16102        isOperatorSlashable(isOperatorSlashableCall),
16103        #[allow(missing_docs)]
16104        modifyAllocations(modifyAllocationsCall),
16105        #[allow(missing_docs)]
16106        owner(ownerCall),
16107        #[allow(missing_docs)]
16108        pause(pauseCall),
16109        #[allow(missing_docs)]
16110        pauseAll(pauseAllCall),
16111        #[allow(missing_docs)]
16112        paused_0(paused_0Call),
16113        #[allow(missing_docs)]
16114        paused_1(paused_1Call),
16115        #[allow(missing_docs)]
16116        pauserRegistry(pauserRegistryCall),
16117        #[allow(missing_docs)]
16118        permissionController(permissionControllerCall),
16119        #[allow(missing_docs)]
16120        registerForOperatorSets(registerForOperatorSetsCall),
16121        #[allow(missing_docs)]
16122        removeStrategiesFromOperatorSet(removeStrategiesFromOperatorSetCall),
16123        #[allow(missing_docs)]
16124        renounceOwnership(renounceOwnershipCall),
16125        #[allow(missing_docs)]
16126        setAVSRegistrar(setAVSRegistrarCall),
16127        #[allow(missing_docs)]
16128        setAllocationDelay(setAllocationDelayCall),
16129        #[allow(missing_docs)]
16130        slashOperator(slashOperatorCall),
16131        #[allow(missing_docs)]
16132        transferOwnership(transferOwnershipCall),
16133        #[allow(missing_docs)]
16134        unpause(unpauseCall),
16135        #[allow(missing_docs)]
16136        updateAVSMetadataURI(updateAVSMetadataURICall),
16137        #[allow(missing_docs)]
16138        version(versionCall),
16139    }
16140    #[automatically_derived]
16141    impl AllocationManagerCalls {
16142        /// All the selectors of this enum.
16143        ///
16144        /// Note that the selectors might not be in the same order as the variants.
16145        /// No guarantees are made about the order of the selectors.
16146        ///
16147        /// Prefer using `SolInterface` methods instead.
16148        pub const SELECTORS: &'static [[u8; 4usize]] = &[
16149            [16u8, 225u8, 185u8, 184u8],
16150            [19u8, 82u8, 195u8, 230u8],
16151            [19u8, 100u8, 57u8, 221u8],
16152            [21u8, 254u8, 80u8, 40u8],
16153            [38u8, 13u8, 199u8, 88u8],
16154            [38u8, 31u8, 132u8, 224u8],
16155            [41u8, 129u8, 235u8, 119u8],
16156            [43u8, 69u8, 58u8, 154u8],
16157            [43u8, 171u8, 44u8, 74u8],
16158            [48u8, 76u8, 16u8, 205u8],
16159            [54u8, 53u8, 32u8, 87u8],
16160            [64u8, 18u8, 13u8, 171u8],
16161            [65u8, 119u8, 168u8, 124u8],
16162            [70u8, 87u8, 226u8, 106u8],
16163            [74u8, 16u8, 255u8, 229u8],
16164            [75u8, 80u8, 70u8, 239u8],
16165            [80u8, 254u8, 234u8, 32u8],
16166            [84u8, 122u8, 251u8, 135u8],
16167            [84u8, 253u8, 77u8, 80u8],
16168            [86u8, 196u8, 131u8, 230u8],
16169            [89u8, 92u8, 106u8, 103u8],
16170            [90u8, 200u8, 106u8, 183u8],
16171            [92u8, 151u8, 90u8, 187u8],
16172            [103u8, 13u8, 59u8, 162u8],
16173            [108u8, 251u8, 68u8, 129u8],
16174            [110u8, 52u8, 146u8, 181u8],
16175            [110u8, 135u8, 93u8, 186u8],
16176            [113u8, 80u8, 24u8, 166u8],
16177            [121u8, 174u8, 80u8, 205u8],
16178            [123u8, 193u8, 239u8, 97u8],
16179            [136u8, 111u8, 17u8, 149u8],
16180            [140u8, 230u8, 72u8, 84u8],
16181            [141u8, 165u8, 203u8, 91u8],
16182            [148u8, 215u8, 208u8, 12u8],
16183            [149u8, 40u8, 153u8, 238u8],
16184            [169u8, 51u8, 62u8, 200u8],
16185            [169u8, 130u8, 24u8, 33u8],
16186            [173u8, 194u8, 227u8, 217u8],
16187            [178u8, 68u8, 122u8, 247u8],
16188            [182u8, 107u8, 217u8, 137u8],
16189            [185u8, 251u8, 174u8, 209u8],
16190            [186u8, 26u8, 132u8, 229u8],
16191            [194u8, 33u8, 216u8, 174u8],
16192            [205u8, 109u8, 198u8, 135u8],
16193            [211u8, 217u8, 111u8, 244u8],
16194            [223u8, 92u8, 247u8, 35u8],
16195            [242u8, 253u8, 227u8, 139u8],
16196            [246u8, 5u8, 206u8, 8u8],
16197            [250u8, 188u8, 28u8, 188u8],
16198        ];
16199    }
16200    #[automatically_derived]
16201    impl alloy_sol_types::SolInterface for AllocationManagerCalls {
16202        const NAME: &'static str = "AllocationManagerCalls";
16203        const MIN_DATA_LENGTH: usize = 0usize;
16204        const COUNT: usize = 49usize;
16205        #[inline]
16206        fn selector(&self) -> [u8; 4] {
16207            match self {
16208                Self::ALLOCATION_CONFIGURATION_DELAY(_) => {
16209                    <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::SELECTOR
16210                }
16211                Self::DEALLOCATION_DELAY(_) => {
16212                    <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::SELECTOR
16213                }
16214                Self::addStrategiesToOperatorSet(_) => {
16215                    <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
16216                }
16217                Self::clearDeallocationQueue(_) => {
16218                    <clearDeallocationQueueCall as alloy_sol_types::SolCall>::SELECTOR
16219                }
16220                Self::createOperatorSets(_) => {
16221                    <createOperatorSetsCall as alloy_sol_types::SolCall>::SELECTOR
16222                }
16223                Self::delegation(_) => {
16224                    <delegationCall as alloy_sol_types::SolCall>::SELECTOR
16225                }
16226                Self::deregisterFromOperatorSets(_) => {
16227                    <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::SELECTOR
16228                }
16229                Self::getAVSRegistrar(_) => {
16230                    <getAVSRegistrarCall as alloy_sol_types::SolCall>::SELECTOR
16231                }
16232                Self::getAllocatableMagnitude(_) => {
16233                    <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::SELECTOR
16234                }
16235                Self::getAllocatedSets(_) => {
16236                    <getAllocatedSetsCall as alloy_sol_types::SolCall>::SELECTOR
16237                }
16238                Self::getAllocatedStake(_) => {
16239                    <getAllocatedStakeCall as alloy_sol_types::SolCall>::SELECTOR
16240                }
16241                Self::getAllocatedStrategies(_) => {
16242                    <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::SELECTOR
16243                }
16244                Self::getAllocation(_) => {
16245                    <getAllocationCall as alloy_sol_types::SolCall>::SELECTOR
16246                }
16247                Self::getAllocationDelay(_) => {
16248                    <getAllocationDelayCall as alloy_sol_types::SolCall>::SELECTOR
16249                }
16250                Self::getAllocations(_) => {
16251                    <getAllocationsCall as alloy_sol_types::SolCall>::SELECTOR
16252                }
16253                Self::getEncumberedMagnitude(_) => {
16254                    <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::SELECTOR
16255                }
16256                Self::getMaxMagnitude(_) => {
16257                    <getMaxMagnitudeCall as alloy_sol_types::SolCall>::SELECTOR
16258                }
16259                Self::getMaxMagnitudes_0(_) => {
16260                    <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::SELECTOR
16261                }
16262                Self::getMaxMagnitudes_1(_) => {
16263                    <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::SELECTOR
16264                }
16265                Self::getMaxMagnitudesAtBlock(_) => {
16266                    <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::SELECTOR
16267                }
16268                Self::getMemberCount(_) => {
16269                    <getMemberCountCall as alloy_sol_types::SolCall>::SELECTOR
16270                }
16271                Self::getMembers(_) => {
16272                    <getMembersCall as alloy_sol_types::SolCall>::SELECTOR
16273                }
16274                Self::getMinimumSlashableStake(_) => {
16275                    <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::SELECTOR
16276                }
16277                Self::getOperatorSetCount(_) => {
16278                    <getOperatorSetCountCall as alloy_sol_types::SolCall>::SELECTOR
16279                }
16280                Self::getRegisteredSets(_) => {
16281                    <getRegisteredSetsCall as alloy_sol_types::SolCall>::SELECTOR
16282                }
16283                Self::getStrategiesInOperatorSet(_) => {
16284                    <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
16285                }
16286                Self::getStrategyAllocations(_) => {
16287                    <getStrategyAllocationsCall as alloy_sol_types::SolCall>::SELECTOR
16288                }
16289                Self::initialize(_) => {
16290                    <initializeCall as alloy_sol_types::SolCall>::SELECTOR
16291                }
16292                Self::isMemberOfOperatorSet(_) => {
16293                    <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
16294                }
16295                Self::isOperatorSet(_) => {
16296                    <isOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
16297                }
16298                Self::isOperatorSlashable(_) => {
16299                    <isOperatorSlashableCall as alloy_sol_types::SolCall>::SELECTOR
16300                }
16301                Self::modifyAllocations(_) => {
16302                    <modifyAllocationsCall as alloy_sol_types::SolCall>::SELECTOR
16303                }
16304                Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
16305                Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
16306                Self::pauseAll(_) => <pauseAllCall as alloy_sol_types::SolCall>::SELECTOR,
16307                Self::paused_0(_) => <paused_0Call as alloy_sol_types::SolCall>::SELECTOR,
16308                Self::paused_1(_) => <paused_1Call as alloy_sol_types::SolCall>::SELECTOR,
16309                Self::pauserRegistry(_) => {
16310                    <pauserRegistryCall as alloy_sol_types::SolCall>::SELECTOR
16311                }
16312                Self::permissionController(_) => {
16313                    <permissionControllerCall as alloy_sol_types::SolCall>::SELECTOR
16314                }
16315                Self::registerForOperatorSets(_) => {
16316                    <registerForOperatorSetsCall as alloy_sol_types::SolCall>::SELECTOR
16317                }
16318                Self::removeStrategiesFromOperatorSet(_) => {
16319                    <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::SELECTOR
16320                }
16321                Self::renounceOwnership(_) => {
16322                    <renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
16323                }
16324                Self::setAVSRegistrar(_) => {
16325                    <setAVSRegistrarCall as alloy_sol_types::SolCall>::SELECTOR
16326                }
16327                Self::setAllocationDelay(_) => {
16328                    <setAllocationDelayCall as alloy_sol_types::SolCall>::SELECTOR
16329                }
16330                Self::slashOperator(_) => {
16331                    <slashOperatorCall as alloy_sol_types::SolCall>::SELECTOR
16332                }
16333                Self::transferOwnership(_) => {
16334                    <transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
16335                }
16336                Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
16337                Self::updateAVSMetadataURI(_) => {
16338                    <updateAVSMetadataURICall as alloy_sol_types::SolCall>::SELECTOR
16339                }
16340                Self::version(_) => <versionCall as alloy_sol_types::SolCall>::SELECTOR,
16341            }
16342        }
16343        #[inline]
16344        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
16345            Self::SELECTORS.get(i).copied()
16346        }
16347        #[inline]
16348        fn valid_selector(selector: [u8; 4]) -> bool {
16349            Self::SELECTORS.binary_search(&selector).is_ok()
16350        }
16351        #[inline]
16352        #[allow(non_snake_case)]
16353        fn abi_decode_raw(
16354            selector: [u8; 4],
16355            data: &[u8],
16356        ) -> alloy_sol_types::Result<Self> {
16357            static DECODE_SHIMS: &[fn(
16358                &[u8],
16359            ) -> alloy_sol_types::Result<AllocationManagerCalls>] = &[
16360                {
16361                    fn getAllocation(
16362                        data: &[u8],
16363                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16364                        <getAllocationCall as alloy_sol_types::SolCall>::abi_decode_raw(
16365                                data,
16366                            )
16367                            .map(AllocationManagerCalls::getAllocation)
16368                    }
16369                    getAllocation
16370                },
16371                {
16372                    fn isOperatorSlashable(
16373                        data: &[u8],
16374                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16375                        <isOperatorSlashableCall as alloy_sol_types::SolCall>::abi_decode_raw(
16376                                data,
16377                            )
16378                            .map(AllocationManagerCalls::isOperatorSlashable)
16379                    }
16380                    isOperatorSlashable
16381                },
16382                {
16383                    fn pause(
16384                        data: &[u8],
16385                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16386                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
16387                            .map(AllocationManagerCalls::pause)
16388                    }
16389                    pause
16390                },
16391                {
16392                    fn getAllocatedSets(
16393                        data: &[u8],
16394                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16395                        <getAllocatedSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16396                                data,
16397                            )
16398                            .map(AllocationManagerCalls::getAllocatedSets)
16399                    }
16400                    getAllocatedSets
16401                },
16402                {
16403                    fn isOperatorSet(
16404                        data: &[u8],
16405                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16406                        <isOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
16407                                data,
16408                            )
16409                            .map(AllocationManagerCalls::isOperatorSet)
16410                    }
16411                    isOperatorSet
16412                },
16413                {
16414                    fn createOperatorSets(
16415                        data: &[u8],
16416                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16417                        <createOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16418                                data,
16419                            )
16420                            .map(AllocationManagerCalls::createOperatorSets)
16421                    }
16422                    createOperatorSets
16423                },
16424                {
16425                    fn DEALLOCATION_DELAY(
16426                        data: &[u8],
16427                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16428                        <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::abi_decode_raw(
16429                                data,
16430                            )
16431                            .map(AllocationManagerCalls::DEALLOCATION_DELAY)
16432                    }
16433                    DEALLOCATION_DELAY
16434                },
16435                {
16436                    fn getAllocatedStake(
16437                        data: &[u8],
16438                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16439                        <getAllocatedStakeCall as alloy_sol_types::SolCall>::abi_decode_raw(
16440                                data,
16441                            )
16442                            .map(AllocationManagerCalls::getAllocatedStake)
16443                    }
16444                    getAllocatedStake
16445                },
16446                {
16447                    fn getMinimumSlashableStake(
16448                        data: &[u8],
16449                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16450                        <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::abi_decode_raw(
16451                                data,
16452                            )
16453                            .map(AllocationManagerCalls::getMinimumSlashableStake)
16454                    }
16455                    getMinimumSlashableStake
16456                },
16457                {
16458                    fn getAVSRegistrar(
16459                        data: &[u8],
16460                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16461                        <getAVSRegistrarCall as alloy_sol_types::SolCall>::abi_decode_raw(
16462                                data,
16463                            )
16464                            .map(AllocationManagerCalls::getAVSRegistrar)
16465                    }
16466                    getAVSRegistrar
16467                },
16468                {
16469                    fn slashOperator(
16470                        data: &[u8],
16471                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16472                        <slashOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
16473                                data,
16474                            )
16475                            .map(AllocationManagerCalls::slashOperator)
16476                    }
16477                    slashOperator
16478                },
16479                {
16480                    fn getStrategyAllocations(
16481                        data: &[u8],
16482                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16483                        <getStrategyAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16484                                data,
16485                            )
16486                            .map(AllocationManagerCalls::getStrategyAllocations)
16487                    }
16488                    getStrategyAllocations
16489                },
16490                {
16491                    fn getStrategiesInOperatorSet(
16492                        data: &[u8],
16493                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16494                        <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
16495                                data,
16496                            )
16497                            .map(AllocationManagerCalls::getStrategiesInOperatorSet)
16498                    }
16499                    getStrategiesInOperatorSet
16500                },
16501                {
16502                    fn permissionController(
16503                        data: &[u8],
16504                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16505                        <permissionControllerCall as alloy_sol_types::SolCall>::abi_decode_raw(
16506                                data,
16507                            )
16508                            .map(AllocationManagerCalls::permissionController)
16509                    }
16510                    permissionController
16511                },
16512                {
16513                    fn getMaxMagnitudes_0(
16514                        data: &[u8],
16515                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16516                        <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::abi_decode_raw(
16517                                data,
16518                            )
16519                            .map(AllocationManagerCalls::getMaxMagnitudes_0)
16520                    }
16521                    getMaxMagnitudes_0
16522                },
16523                {
16524                    fn clearDeallocationQueue(
16525                        data: &[u8],
16526                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16527                        <clearDeallocationQueueCall as alloy_sol_types::SolCall>::abi_decode_raw(
16528                                data,
16529                            )
16530                            .map(AllocationManagerCalls::clearDeallocationQueue)
16531                    }
16532                    clearDeallocationQueue
16533                },
16534                {
16535                    fn addStrategiesToOperatorSet(
16536                        data: &[u8],
16537                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16538                        <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
16539                                data,
16540                            )
16541                            .map(AllocationManagerCalls::addStrategiesToOperatorSet)
16542                    }
16543                    addStrategiesToOperatorSet
16544                },
16545                {
16546                    fn getMaxMagnitudes_1(
16547                        data: &[u8],
16548                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16549                        <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::abi_decode_raw(
16550                                data,
16551                            )
16552                            .map(AllocationManagerCalls::getMaxMagnitudes_1)
16553                    }
16554                    getMaxMagnitudes_1
16555                },
16556                {
16557                    fn version(
16558                        data: &[u8],
16559                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16560                        <versionCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
16561                            .map(AllocationManagerCalls::version)
16562                    }
16563                    version
16564                },
16565                {
16566                    fn setAllocationDelay(
16567                        data: &[u8],
16568                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16569                        <setAllocationDelayCall as alloy_sol_types::SolCall>::abi_decode_raw(
16570                                data,
16571                            )
16572                            .map(AllocationManagerCalls::setAllocationDelay)
16573                    }
16574                    setAllocationDelay
16575                },
16576                {
16577                    fn pauseAll(
16578                        data: &[u8],
16579                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16580                        <pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
16581                            .map(AllocationManagerCalls::pauseAll)
16582                    }
16583                    pauseAll
16584                },
16585                {
16586                    fn paused_0(
16587                        data: &[u8],
16588                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16589                        <paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
16590                            .map(AllocationManagerCalls::paused_0)
16591                    }
16592                    paused_0
16593                },
16594                {
16595                    fn paused_1(
16596                        data: &[u8],
16597                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16598                        <paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
16599                            .map(AllocationManagerCalls::paused_1)
16600                    }
16601                    paused_1
16602                },
16603                {
16604                    fn isMemberOfOperatorSet(
16605                        data: &[u8],
16606                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16607                        <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
16608                                data,
16609                            )
16610                            .map(AllocationManagerCalls::isMemberOfOperatorSet)
16611                    }
16612                    isMemberOfOperatorSet
16613                },
16614                {
16615                    fn getAllocatableMagnitude(
16616                        data: &[u8],
16617                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16618                        <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw(
16619                                data,
16620                            )
16621                            .map(AllocationManagerCalls::getAllocatableMagnitude)
16622                    }
16623                    getAllocatableMagnitude
16624                },
16625                {
16626                    fn deregisterFromOperatorSets(
16627                        data: &[u8],
16628                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16629                        <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16630                                data,
16631                            )
16632                            .map(AllocationManagerCalls::deregisterFromOperatorSets)
16633                    }
16634                    deregisterFromOperatorSets
16635                },
16636                {
16637                    fn getMembers(
16638                        data: &[u8],
16639                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16640                        <getMembersCall as alloy_sol_types::SolCall>::abi_decode_raw(
16641                                data,
16642                            )
16643                            .map(AllocationManagerCalls::getMembers)
16644                    }
16645                    getMembers
16646                },
16647                {
16648                    fn renounceOwnership(
16649                        data: &[u8],
16650                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16651                        <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
16652                                data,
16653                            )
16654                            .map(AllocationManagerCalls::renounceOwnership)
16655                    }
16656                    renounceOwnership
16657                },
16658                {
16659                    fn getRegisteredSets(
16660                        data: &[u8],
16661                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16662                        <getRegisteredSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16663                                data,
16664                            )
16665                            .map(AllocationManagerCalls::getRegisteredSets)
16666                    }
16667                    getRegisteredSets
16668                },
16669                {
16670                    fn ALLOCATION_CONFIGURATION_DELAY(
16671                        data: &[u8],
16672                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16673                        <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::abi_decode_raw(
16674                                data,
16675                            )
16676                            .map(AllocationManagerCalls::ALLOCATION_CONFIGURATION_DELAY)
16677                    }
16678                    ALLOCATION_CONFIGURATION_DELAY
16679                },
16680                {
16681                    fn pauserRegistry(
16682                        data: &[u8],
16683                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16684                        <pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
16685                                data,
16686                            )
16687                            .map(AllocationManagerCalls::pauserRegistry)
16688                    }
16689                    pauserRegistry
16690                },
16691                {
16692                    fn getAllocations(
16693                        data: &[u8],
16694                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16695                        <getAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16696                                data,
16697                            )
16698                            .map(AllocationManagerCalls::getAllocations)
16699                    }
16700                    getAllocations
16701                },
16702                {
16703                    fn owner(
16704                        data: &[u8],
16705                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16706                        <ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
16707                            .map(AllocationManagerCalls::owner)
16708                    }
16709                    owner
16710                },
16711                {
16712                    fn getMaxMagnitudesAtBlock(
16713                        data: &[u8],
16714                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16715                        <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::abi_decode_raw(
16716                                data,
16717                            )
16718                            .map(AllocationManagerCalls::getMaxMagnitudesAtBlock)
16719                    }
16720                    getMaxMagnitudesAtBlock
16721                },
16722                {
16723                    fn modifyAllocations(
16724                        data: &[u8],
16725                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16726                        <modifyAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16727                                data,
16728                            )
16729                            .map(AllocationManagerCalls::modifyAllocations)
16730                    }
16731                    modifyAllocations
16732                },
16733                {
16734                    fn getMaxMagnitude(
16735                        data: &[u8],
16736                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16737                        <getMaxMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw(
16738                                data,
16739                            )
16740                            .map(AllocationManagerCalls::getMaxMagnitude)
16741                    }
16742                    getMaxMagnitude
16743                },
16744                {
16745                    fn updateAVSMetadataURI(
16746                        data: &[u8],
16747                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16748                        <updateAVSMetadataURICall as alloy_sol_types::SolCall>::abi_decode_raw(
16749                                data,
16750                            )
16751                            .map(AllocationManagerCalls::updateAVSMetadataURI)
16752                    }
16753                    updateAVSMetadataURI
16754                },
16755                {
16756                    fn registerForOperatorSets(
16757                        data: &[u8],
16758                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16759                        <registerForOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16760                                data,
16761                            )
16762                            .map(AllocationManagerCalls::registerForOperatorSets)
16763                    }
16764                    registerForOperatorSets
16765                },
16766                {
16767                    fn getMemberCount(
16768                        data: &[u8],
16769                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16770                        <getMemberCountCall as alloy_sol_types::SolCall>::abi_decode_raw(
16771                                data,
16772                            )
16773                            .map(AllocationManagerCalls::getMemberCount)
16774                    }
16775                    getMemberCount
16776                },
16777                {
16778                    fn removeStrategiesFromOperatorSet(
16779                        data: &[u8],
16780                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16781                        <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw(
16782                                data,
16783                            )
16784                            .map(AllocationManagerCalls::removeStrategiesFromOperatorSet)
16785                    }
16786                    removeStrategiesFromOperatorSet
16787                },
16788                {
16789                    fn getAllocationDelay(
16790                        data: &[u8],
16791                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16792                        <getAllocationDelayCall as alloy_sol_types::SolCall>::abi_decode_raw(
16793                                data,
16794                            )
16795                            .map(AllocationManagerCalls::getAllocationDelay)
16796                    }
16797                    getAllocationDelay
16798                },
16799                {
16800                    fn getOperatorSetCount(
16801                        data: &[u8],
16802                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16803                        <getOperatorSetCountCall as alloy_sol_types::SolCall>::abi_decode_raw(
16804                                data,
16805                            )
16806                            .map(AllocationManagerCalls::getOperatorSetCount)
16807                    }
16808                    getOperatorSetCount
16809                },
16810                {
16811                    fn getAllocatedStrategies(
16812                        data: &[u8],
16813                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16814                        <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::abi_decode_raw(
16815                                data,
16816                            )
16817                            .map(AllocationManagerCalls::getAllocatedStrategies)
16818                    }
16819                    getAllocatedStrategies
16820                },
16821                {
16822                    fn initialize(
16823                        data: &[u8],
16824                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16825                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw(
16826                                data,
16827                            )
16828                            .map(AllocationManagerCalls::initialize)
16829                    }
16830                    initialize
16831                },
16832                {
16833                    fn setAVSRegistrar(
16834                        data: &[u8],
16835                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16836                        <setAVSRegistrarCall as alloy_sol_types::SolCall>::abi_decode_raw(
16837                                data,
16838                            )
16839                            .map(AllocationManagerCalls::setAVSRegistrar)
16840                    }
16841                    setAVSRegistrar
16842                },
16843                {
16844                    fn delegation(
16845                        data: &[u8],
16846                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16847                        <delegationCall as alloy_sol_types::SolCall>::abi_decode_raw(
16848                                data,
16849                            )
16850                            .map(AllocationManagerCalls::delegation)
16851                    }
16852                    delegation
16853                },
16854                {
16855                    fn transferOwnership(
16856                        data: &[u8],
16857                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16858                        <transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
16859                                data,
16860                            )
16861                            .map(AllocationManagerCalls::transferOwnership)
16862                    }
16863                    transferOwnership
16864                },
16865                {
16866                    fn getEncumberedMagnitude(
16867                        data: &[u8],
16868                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16869                        <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw(
16870                                data,
16871                            )
16872                            .map(AllocationManagerCalls::getEncumberedMagnitude)
16873                    }
16874                    getEncumberedMagnitude
16875                },
16876                {
16877                    fn unpause(
16878                        data: &[u8],
16879                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16880                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
16881                            .map(AllocationManagerCalls::unpause)
16882                    }
16883                    unpause
16884                },
16885            ];
16886            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
16887                return Err(
16888                    alloy_sol_types::Error::unknown_selector(
16889                        <Self as alloy_sol_types::SolInterface>::NAME,
16890                        selector,
16891                    ),
16892                );
16893            };
16894            DECODE_SHIMS[idx](data)
16895        }
16896        #[inline]
16897        #[allow(non_snake_case)]
16898        fn abi_decode_raw_validate(
16899            selector: [u8; 4],
16900            data: &[u8],
16901        ) -> alloy_sol_types::Result<Self> {
16902            static DECODE_VALIDATE_SHIMS: &[fn(
16903                &[u8],
16904            ) -> alloy_sol_types::Result<AllocationManagerCalls>] = &[
16905                {
16906                    fn getAllocation(
16907                        data: &[u8],
16908                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16909                        <getAllocationCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16910                                data,
16911                            )
16912                            .map(AllocationManagerCalls::getAllocation)
16913                    }
16914                    getAllocation
16915                },
16916                {
16917                    fn isOperatorSlashable(
16918                        data: &[u8],
16919                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16920                        <isOperatorSlashableCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16921                                data,
16922                            )
16923                            .map(AllocationManagerCalls::isOperatorSlashable)
16924                    }
16925                    isOperatorSlashable
16926                },
16927                {
16928                    fn pause(
16929                        data: &[u8],
16930                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16931                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16932                                data,
16933                            )
16934                            .map(AllocationManagerCalls::pause)
16935                    }
16936                    pause
16937                },
16938                {
16939                    fn getAllocatedSets(
16940                        data: &[u8],
16941                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16942                        <getAllocatedSetsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16943                                data,
16944                            )
16945                            .map(AllocationManagerCalls::getAllocatedSets)
16946                    }
16947                    getAllocatedSets
16948                },
16949                {
16950                    fn isOperatorSet(
16951                        data: &[u8],
16952                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16953                        <isOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16954                                data,
16955                            )
16956                            .map(AllocationManagerCalls::isOperatorSet)
16957                    }
16958                    isOperatorSet
16959                },
16960                {
16961                    fn createOperatorSets(
16962                        data: &[u8],
16963                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16964                        <createOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16965                                data,
16966                            )
16967                            .map(AllocationManagerCalls::createOperatorSets)
16968                    }
16969                    createOperatorSets
16970                },
16971                {
16972                    fn DEALLOCATION_DELAY(
16973                        data: &[u8],
16974                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16975                        <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16976                                data,
16977                            )
16978                            .map(AllocationManagerCalls::DEALLOCATION_DELAY)
16979                    }
16980                    DEALLOCATION_DELAY
16981                },
16982                {
16983                    fn getAllocatedStake(
16984                        data: &[u8],
16985                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16986                        <getAllocatedStakeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16987                                data,
16988                            )
16989                            .map(AllocationManagerCalls::getAllocatedStake)
16990                    }
16991                    getAllocatedStake
16992                },
16993                {
16994                    fn getMinimumSlashableStake(
16995                        data: &[u8],
16996                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
16997                        <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
16998                                data,
16999                            )
17000                            .map(AllocationManagerCalls::getMinimumSlashableStake)
17001                    }
17002                    getMinimumSlashableStake
17003                },
17004                {
17005                    fn getAVSRegistrar(
17006                        data: &[u8],
17007                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17008                        <getAVSRegistrarCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17009                                data,
17010                            )
17011                            .map(AllocationManagerCalls::getAVSRegistrar)
17012                    }
17013                    getAVSRegistrar
17014                },
17015                {
17016                    fn slashOperator(
17017                        data: &[u8],
17018                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17019                        <slashOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17020                                data,
17021                            )
17022                            .map(AllocationManagerCalls::slashOperator)
17023                    }
17024                    slashOperator
17025                },
17026                {
17027                    fn getStrategyAllocations(
17028                        data: &[u8],
17029                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17030                        <getStrategyAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17031                                data,
17032                            )
17033                            .map(AllocationManagerCalls::getStrategyAllocations)
17034                    }
17035                    getStrategyAllocations
17036                },
17037                {
17038                    fn getStrategiesInOperatorSet(
17039                        data: &[u8],
17040                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17041                        <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17042                                data,
17043                            )
17044                            .map(AllocationManagerCalls::getStrategiesInOperatorSet)
17045                    }
17046                    getStrategiesInOperatorSet
17047                },
17048                {
17049                    fn permissionController(
17050                        data: &[u8],
17051                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17052                        <permissionControllerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17053                                data,
17054                            )
17055                            .map(AllocationManagerCalls::permissionController)
17056                    }
17057                    permissionController
17058                },
17059                {
17060                    fn getMaxMagnitudes_0(
17061                        data: &[u8],
17062                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17063                        <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17064                                data,
17065                            )
17066                            .map(AllocationManagerCalls::getMaxMagnitudes_0)
17067                    }
17068                    getMaxMagnitudes_0
17069                },
17070                {
17071                    fn clearDeallocationQueue(
17072                        data: &[u8],
17073                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17074                        <clearDeallocationQueueCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17075                                data,
17076                            )
17077                            .map(AllocationManagerCalls::clearDeallocationQueue)
17078                    }
17079                    clearDeallocationQueue
17080                },
17081                {
17082                    fn addStrategiesToOperatorSet(
17083                        data: &[u8],
17084                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17085                        <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17086                                data,
17087                            )
17088                            .map(AllocationManagerCalls::addStrategiesToOperatorSet)
17089                    }
17090                    addStrategiesToOperatorSet
17091                },
17092                {
17093                    fn getMaxMagnitudes_1(
17094                        data: &[u8],
17095                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17096                        <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17097                                data,
17098                            )
17099                            .map(AllocationManagerCalls::getMaxMagnitudes_1)
17100                    }
17101                    getMaxMagnitudes_1
17102                },
17103                {
17104                    fn version(
17105                        data: &[u8],
17106                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17107                        <versionCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17108                                data,
17109                            )
17110                            .map(AllocationManagerCalls::version)
17111                    }
17112                    version
17113                },
17114                {
17115                    fn setAllocationDelay(
17116                        data: &[u8],
17117                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17118                        <setAllocationDelayCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17119                                data,
17120                            )
17121                            .map(AllocationManagerCalls::setAllocationDelay)
17122                    }
17123                    setAllocationDelay
17124                },
17125                {
17126                    fn pauseAll(
17127                        data: &[u8],
17128                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17129                        <pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17130                                data,
17131                            )
17132                            .map(AllocationManagerCalls::pauseAll)
17133                    }
17134                    pauseAll
17135                },
17136                {
17137                    fn paused_0(
17138                        data: &[u8],
17139                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17140                        <paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17141                                data,
17142                            )
17143                            .map(AllocationManagerCalls::paused_0)
17144                    }
17145                    paused_0
17146                },
17147                {
17148                    fn paused_1(
17149                        data: &[u8],
17150                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17151                        <paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17152                                data,
17153                            )
17154                            .map(AllocationManagerCalls::paused_1)
17155                    }
17156                    paused_1
17157                },
17158                {
17159                    fn isMemberOfOperatorSet(
17160                        data: &[u8],
17161                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17162                        <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17163                                data,
17164                            )
17165                            .map(AllocationManagerCalls::isMemberOfOperatorSet)
17166                    }
17167                    isMemberOfOperatorSet
17168                },
17169                {
17170                    fn getAllocatableMagnitude(
17171                        data: &[u8],
17172                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17173                        <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17174                                data,
17175                            )
17176                            .map(AllocationManagerCalls::getAllocatableMagnitude)
17177                    }
17178                    getAllocatableMagnitude
17179                },
17180                {
17181                    fn deregisterFromOperatorSets(
17182                        data: &[u8],
17183                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17184                        <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17185                                data,
17186                            )
17187                            .map(AllocationManagerCalls::deregisterFromOperatorSets)
17188                    }
17189                    deregisterFromOperatorSets
17190                },
17191                {
17192                    fn getMembers(
17193                        data: &[u8],
17194                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17195                        <getMembersCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17196                                data,
17197                            )
17198                            .map(AllocationManagerCalls::getMembers)
17199                    }
17200                    getMembers
17201                },
17202                {
17203                    fn renounceOwnership(
17204                        data: &[u8],
17205                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17206                        <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17207                                data,
17208                            )
17209                            .map(AllocationManagerCalls::renounceOwnership)
17210                    }
17211                    renounceOwnership
17212                },
17213                {
17214                    fn getRegisteredSets(
17215                        data: &[u8],
17216                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17217                        <getRegisteredSetsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17218                                data,
17219                            )
17220                            .map(AllocationManagerCalls::getRegisteredSets)
17221                    }
17222                    getRegisteredSets
17223                },
17224                {
17225                    fn ALLOCATION_CONFIGURATION_DELAY(
17226                        data: &[u8],
17227                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17228                        <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17229                                data,
17230                            )
17231                            .map(AllocationManagerCalls::ALLOCATION_CONFIGURATION_DELAY)
17232                    }
17233                    ALLOCATION_CONFIGURATION_DELAY
17234                },
17235                {
17236                    fn pauserRegistry(
17237                        data: &[u8],
17238                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17239                        <pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17240                                data,
17241                            )
17242                            .map(AllocationManagerCalls::pauserRegistry)
17243                    }
17244                    pauserRegistry
17245                },
17246                {
17247                    fn getAllocations(
17248                        data: &[u8],
17249                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17250                        <getAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17251                                data,
17252                            )
17253                            .map(AllocationManagerCalls::getAllocations)
17254                    }
17255                    getAllocations
17256                },
17257                {
17258                    fn owner(
17259                        data: &[u8],
17260                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17261                        <ownerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17262                                data,
17263                            )
17264                            .map(AllocationManagerCalls::owner)
17265                    }
17266                    owner
17267                },
17268                {
17269                    fn getMaxMagnitudesAtBlock(
17270                        data: &[u8],
17271                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17272                        <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17273                                data,
17274                            )
17275                            .map(AllocationManagerCalls::getMaxMagnitudesAtBlock)
17276                    }
17277                    getMaxMagnitudesAtBlock
17278                },
17279                {
17280                    fn modifyAllocations(
17281                        data: &[u8],
17282                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17283                        <modifyAllocationsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17284                                data,
17285                            )
17286                            .map(AllocationManagerCalls::modifyAllocations)
17287                    }
17288                    modifyAllocations
17289                },
17290                {
17291                    fn getMaxMagnitude(
17292                        data: &[u8],
17293                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17294                        <getMaxMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17295                                data,
17296                            )
17297                            .map(AllocationManagerCalls::getMaxMagnitude)
17298                    }
17299                    getMaxMagnitude
17300                },
17301                {
17302                    fn updateAVSMetadataURI(
17303                        data: &[u8],
17304                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17305                        <updateAVSMetadataURICall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17306                                data,
17307                            )
17308                            .map(AllocationManagerCalls::updateAVSMetadataURI)
17309                    }
17310                    updateAVSMetadataURI
17311                },
17312                {
17313                    fn registerForOperatorSets(
17314                        data: &[u8],
17315                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17316                        <registerForOperatorSetsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17317                                data,
17318                            )
17319                            .map(AllocationManagerCalls::registerForOperatorSets)
17320                    }
17321                    registerForOperatorSets
17322                },
17323                {
17324                    fn getMemberCount(
17325                        data: &[u8],
17326                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17327                        <getMemberCountCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17328                                data,
17329                            )
17330                            .map(AllocationManagerCalls::getMemberCount)
17331                    }
17332                    getMemberCount
17333                },
17334                {
17335                    fn removeStrategiesFromOperatorSet(
17336                        data: &[u8],
17337                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17338                        <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17339                                data,
17340                            )
17341                            .map(AllocationManagerCalls::removeStrategiesFromOperatorSet)
17342                    }
17343                    removeStrategiesFromOperatorSet
17344                },
17345                {
17346                    fn getAllocationDelay(
17347                        data: &[u8],
17348                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17349                        <getAllocationDelayCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17350                                data,
17351                            )
17352                            .map(AllocationManagerCalls::getAllocationDelay)
17353                    }
17354                    getAllocationDelay
17355                },
17356                {
17357                    fn getOperatorSetCount(
17358                        data: &[u8],
17359                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17360                        <getOperatorSetCountCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17361                                data,
17362                            )
17363                            .map(AllocationManagerCalls::getOperatorSetCount)
17364                    }
17365                    getOperatorSetCount
17366                },
17367                {
17368                    fn getAllocatedStrategies(
17369                        data: &[u8],
17370                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17371                        <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17372                                data,
17373                            )
17374                            .map(AllocationManagerCalls::getAllocatedStrategies)
17375                    }
17376                    getAllocatedStrategies
17377                },
17378                {
17379                    fn initialize(
17380                        data: &[u8],
17381                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17382                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17383                                data,
17384                            )
17385                            .map(AllocationManagerCalls::initialize)
17386                    }
17387                    initialize
17388                },
17389                {
17390                    fn setAVSRegistrar(
17391                        data: &[u8],
17392                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17393                        <setAVSRegistrarCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17394                                data,
17395                            )
17396                            .map(AllocationManagerCalls::setAVSRegistrar)
17397                    }
17398                    setAVSRegistrar
17399                },
17400                {
17401                    fn delegation(
17402                        data: &[u8],
17403                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17404                        <delegationCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17405                                data,
17406                            )
17407                            .map(AllocationManagerCalls::delegation)
17408                    }
17409                    delegation
17410                },
17411                {
17412                    fn transferOwnership(
17413                        data: &[u8],
17414                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17415                        <transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17416                                data,
17417                            )
17418                            .map(AllocationManagerCalls::transferOwnership)
17419                    }
17420                    transferOwnership
17421                },
17422                {
17423                    fn getEncumberedMagnitude(
17424                        data: &[u8],
17425                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17426                        <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17427                                data,
17428                            )
17429                            .map(AllocationManagerCalls::getEncumberedMagnitude)
17430                    }
17431                    getEncumberedMagnitude
17432                },
17433                {
17434                    fn unpause(
17435                        data: &[u8],
17436                    ) -> alloy_sol_types::Result<AllocationManagerCalls> {
17437                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
17438                                data,
17439                            )
17440                            .map(AllocationManagerCalls::unpause)
17441                    }
17442                    unpause
17443                },
17444            ];
17445            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
17446                return Err(
17447                    alloy_sol_types::Error::unknown_selector(
17448                        <Self as alloy_sol_types::SolInterface>::NAME,
17449                        selector,
17450                    ),
17451                );
17452            };
17453            DECODE_VALIDATE_SHIMS[idx](data)
17454        }
17455        #[inline]
17456        fn abi_encoded_size(&self) -> usize {
17457            match self {
17458                Self::ALLOCATION_CONFIGURATION_DELAY(inner) => {
17459                    <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::abi_encoded_size(
17460                        inner,
17461                    )
17462                }
17463                Self::DEALLOCATION_DELAY(inner) => {
17464                    <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::abi_encoded_size(
17465                        inner,
17466                    )
17467                }
17468                Self::addStrategiesToOperatorSet(inner) => {
17469                    <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
17470                        inner,
17471                    )
17472                }
17473                Self::clearDeallocationQueue(inner) => {
17474                    <clearDeallocationQueueCall as alloy_sol_types::SolCall>::abi_encoded_size(
17475                        inner,
17476                    )
17477                }
17478                Self::createOperatorSets(inner) => {
17479                    <createOperatorSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17480                        inner,
17481                    )
17482                }
17483                Self::delegation(inner) => {
17484                    <delegationCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17485                }
17486                Self::deregisterFromOperatorSets(inner) => {
17487                    <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17488                        inner,
17489                    )
17490                }
17491                Self::getAVSRegistrar(inner) => {
17492                    <getAVSRegistrarCall as alloy_sol_types::SolCall>::abi_encoded_size(
17493                        inner,
17494                    )
17495                }
17496                Self::getAllocatableMagnitude(inner) => {
17497                    <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::abi_encoded_size(
17498                        inner,
17499                    )
17500                }
17501                Self::getAllocatedSets(inner) => {
17502                    <getAllocatedSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17503                        inner,
17504                    )
17505                }
17506                Self::getAllocatedStake(inner) => {
17507                    <getAllocatedStakeCall as alloy_sol_types::SolCall>::abi_encoded_size(
17508                        inner,
17509                    )
17510                }
17511                Self::getAllocatedStrategies(inner) => {
17512                    <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::abi_encoded_size(
17513                        inner,
17514                    )
17515                }
17516                Self::getAllocation(inner) => {
17517                    <getAllocationCall as alloy_sol_types::SolCall>::abi_encoded_size(
17518                        inner,
17519                    )
17520                }
17521                Self::getAllocationDelay(inner) => {
17522                    <getAllocationDelayCall as alloy_sol_types::SolCall>::abi_encoded_size(
17523                        inner,
17524                    )
17525                }
17526                Self::getAllocations(inner) => {
17527                    <getAllocationsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17528                        inner,
17529                    )
17530                }
17531                Self::getEncumberedMagnitude(inner) => {
17532                    <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::abi_encoded_size(
17533                        inner,
17534                    )
17535                }
17536                Self::getMaxMagnitude(inner) => {
17537                    <getMaxMagnitudeCall as alloy_sol_types::SolCall>::abi_encoded_size(
17538                        inner,
17539                    )
17540                }
17541                Self::getMaxMagnitudes_0(inner) => {
17542                    <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::abi_encoded_size(
17543                        inner,
17544                    )
17545                }
17546                Self::getMaxMagnitudes_1(inner) => {
17547                    <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::abi_encoded_size(
17548                        inner,
17549                    )
17550                }
17551                Self::getMaxMagnitudesAtBlock(inner) => {
17552                    <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::abi_encoded_size(
17553                        inner,
17554                    )
17555                }
17556                Self::getMemberCount(inner) => {
17557                    <getMemberCountCall as alloy_sol_types::SolCall>::abi_encoded_size(
17558                        inner,
17559                    )
17560                }
17561                Self::getMembers(inner) => {
17562                    <getMembersCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17563                }
17564                Self::getMinimumSlashableStake(inner) => {
17565                    <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::abi_encoded_size(
17566                        inner,
17567                    )
17568                }
17569                Self::getOperatorSetCount(inner) => {
17570                    <getOperatorSetCountCall as alloy_sol_types::SolCall>::abi_encoded_size(
17571                        inner,
17572                    )
17573                }
17574                Self::getRegisteredSets(inner) => {
17575                    <getRegisteredSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17576                        inner,
17577                    )
17578                }
17579                Self::getStrategiesInOperatorSet(inner) => {
17580                    <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
17581                        inner,
17582                    )
17583                }
17584                Self::getStrategyAllocations(inner) => {
17585                    <getStrategyAllocationsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17586                        inner,
17587                    )
17588                }
17589                Self::initialize(inner) => {
17590                    <initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17591                }
17592                Self::isMemberOfOperatorSet(inner) => {
17593                    <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
17594                        inner,
17595                    )
17596                }
17597                Self::isOperatorSet(inner) => {
17598                    <isOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
17599                        inner,
17600                    )
17601                }
17602                Self::isOperatorSlashable(inner) => {
17603                    <isOperatorSlashableCall as alloy_sol_types::SolCall>::abi_encoded_size(
17604                        inner,
17605                    )
17606                }
17607                Self::modifyAllocations(inner) => {
17608                    <modifyAllocationsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17609                        inner,
17610                    )
17611                }
17612                Self::owner(inner) => {
17613                    <ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17614                }
17615                Self::pause(inner) => {
17616                    <pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17617                }
17618                Self::pauseAll(inner) => {
17619                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17620                }
17621                Self::paused_0(inner) => {
17622                    <paused_0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17623                }
17624                Self::paused_1(inner) => {
17625                    <paused_1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17626                }
17627                Self::pauserRegistry(inner) => {
17628                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
17629                        inner,
17630                    )
17631                }
17632                Self::permissionController(inner) => {
17633                    <permissionControllerCall as alloy_sol_types::SolCall>::abi_encoded_size(
17634                        inner,
17635                    )
17636                }
17637                Self::registerForOperatorSets(inner) => {
17638                    <registerForOperatorSetsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17639                        inner,
17640                    )
17641                }
17642                Self::removeStrategiesFromOperatorSet(inner) => {
17643                    <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::abi_encoded_size(
17644                        inner,
17645                    )
17646                }
17647                Self::renounceOwnership(inner) => {
17648                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
17649                        inner,
17650                    )
17651                }
17652                Self::setAVSRegistrar(inner) => {
17653                    <setAVSRegistrarCall as alloy_sol_types::SolCall>::abi_encoded_size(
17654                        inner,
17655                    )
17656                }
17657                Self::setAllocationDelay(inner) => {
17658                    <setAllocationDelayCall as alloy_sol_types::SolCall>::abi_encoded_size(
17659                        inner,
17660                    )
17661                }
17662                Self::slashOperator(inner) => {
17663                    <slashOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
17664                        inner,
17665                    )
17666                }
17667                Self::transferOwnership(inner) => {
17668                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
17669                        inner,
17670                    )
17671                }
17672                Self::unpause(inner) => {
17673                    <unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17674                }
17675                Self::updateAVSMetadataURI(inner) => {
17676                    <updateAVSMetadataURICall as alloy_sol_types::SolCall>::abi_encoded_size(
17677                        inner,
17678                    )
17679                }
17680                Self::version(inner) => {
17681                    <versionCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17682                }
17683            }
17684        }
17685        #[inline]
17686        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
17687            match self {
17688                Self::ALLOCATION_CONFIGURATION_DELAY(inner) => {
17689                    <ALLOCATION_CONFIGURATION_DELAYCall as alloy_sol_types::SolCall>::abi_encode_raw(
17690                        inner,
17691                        out,
17692                    )
17693                }
17694                Self::DEALLOCATION_DELAY(inner) => {
17695                    <DEALLOCATION_DELAYCall as alloy_sol_types::SolCall>::abi_encode_raw(
17696                        inner,
17697                        out,
17698                    )
17699                }
17700                Self::addStrategiesToOperatorSet(inner) => {
17701                    <addStrategiesToOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
17702                        inner,
17703                        out,
17704                    )
17705                }
17706                Self::clearDeallocationQueue(inner) => {
17707                    <clearDeallocationQueueCall as alloy_sol_types::SolCall>::abi_encode_raw(
17708                        inner,
17709                        out,
17710                    )
17711                }
17712                Self::createOperatorSets(inner) => {
17713                    <createOperatorSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17714                        inner,
17715                        out,
17716                    )
17717                }
17718                Self::delegation(inner) => {
17719                    <delegationCall as alloy_sol_types::SolCall>::abi_encode_raw(
17720                        inner,
17721                        out,
17722                    )
17723                }
17724                Self::deregisterFromOperatorSets(inner) => {
17725                    <deregisterFromOperatorSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17726                        inner,
17727                        out,
17728                    )
17729                }
17730                Self::getAVSRegistrar(inner) => {
17731                    <getAVSRegistrarCall as alloy_sol_types::SolCall>::abi_encode_raw(
17732                        inner,
17733                        out,
17734                    )
17735                }
17736                Self::getAllocatableMagnitude(inner) => {
17737                    <getAllocatableMagnitudeCall as alloy_sol_types::SolCall>::abi_encode_raw(
17738                        inner,
17739                        out,
17740                    )
17741                }
17742                Self::getAllocatedSets(inner) => {
17743                    <getAllocatedSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17744                        inner,
17745                        out,
17746                    )
17747                }
17748                Self::getAllocatedStake(inner) => {
17749                    <getAllocatedStakeCall as alloy_sol_types::SolCall>::abi_encode_raw(
17750                        inner,
17751                        out,
17752                    )
17753                }
17754                Self::getAllocatedStrategies(inner) => {
17755                    <getAllocatedStrategiesCall as alloy_sol_types::SolCall>::abi_encode_raw(
17756                        inner,
17757                        out,
17758                    )
17759                }
17760                Self::getAllocation(inner) => {
17761                    <getAllocationCall as alloy_sol_types::SolCall>::abi_encode_raw(
17762                        inner,
17763                        out,
17764                    )
17765                }
17766                Self::getAllocationDelay(inner) => {
17767                    <getAllocationDelayCall as alloy_sol_types::SolCall>::abi_encode_raw(
17768                        inner,
17769                        out,
17770                    )
17771                }
17772                Self::getAllocations(inner) => {
17773                    <getAllocationsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17774                        inner,
17775                        out,
17776                    )
17777                }
17778                Self::getEncumberedMagnitude(inner) => {
17779                    <getEncumberedMagnitudeCall as alloy_sol_types::SolCall>::abi_encode_raw(
17780                        inner,
17781                        out,
17782                    )
17783                }
17784                Self::getMaxMagnitude(inner) => {
17785                    <getMaxMagnitudeCall as alloy_sol_types::SolCall>::abi_encode_raw(
17786                        inner,
17787                        out,
17788                    )
17789                }
17790                Self::getMaxMagnitudes_0(inner) => {
17791                    <getMaxMagnitudes_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
17792                        inner,
17793                        out,
17794                    )
17795                }
17796                Self::getMaxMagnitudes_1(inner) => {
17797                    <getMaxMagnitudes_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
17798                        inner,
17799                        out,
17800                    )
17801                }
17802                Self::getMaxMagnitudesAtBlock(inner) => {
17803                    <getMaxMagnitudesAtBlockCall as alloy_sol_types::SolCall>::abi_encode_raw(
17804                        inner,
17805                        out,
17806                    )
17807                }
17808                Self::getMemberCount(inner) => {
17809                    <getMemberCountCall as alloy_sol_types::SolCall>::abi_encode_raw(
17810                        inner,
17811                        out,
17812                    )
17813                }
17814                Self::getMembers(inner) => {
17815                    <getMembersCall as alloy_sol_types::SolCall>::abi_encode_raw(
17816                        inner,
17817                        out,
17818                    )
17819                }
17820                Self::getMinimumSlashableStake(inner) => {
17821                    <getMinimumSlashableStakeCall as alloy_sol_types::SolCall>::abi_encode_raw(
17822                        inner,
17823                        out,
17824                    )
17825                }
17826                Self::getOperatorSetCount(inner) => {
17827                    <getOperatorSetCountCall as alloy_sol_types::SolCall>::abi_encode_raw(
17828                        inner,
17829                        out,
17830                    )
17831                }
17832                Self::getRegisteredSets(inner) => {
17833                    <getRegisteredSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17834                        inner,
17835                        out,
17836                    )
17837                }
17838                Self::getStrategiesInOperatorSet(inner) => {
17839                    <getStrategiesInOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
17840                        inner,
17841                        out,
17842                    )
17843                }
17844                Self::getStrategyAllocations(inner) => {
17845                    <getStrategyAllocationsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17846                        inner,
17847                        out,
17848                    )
17849                }
17850                Self::initialize(inner) => {
17851                    <initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
17852                        inner,
17853                        out,
17854                    )
17855                }
17856                Self::isMemberOfOperatorSet(inner) => {
17857                    <isMemberOfOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
17858                        inner,
17859                        out,
17860                    )
17861                }
17862                Self::isOperatorSet(inner) => {
17863                    <isOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
17864                        inner,
17865                        out,
17866                    )
17867                }
17868                Self::isOperatorSlashable(inner) => {
17869                    <isOperatorSlashableCall as alloy_sol_types::SolCall>::abi_encode_raw(
17870                        inner,
17871                        out,
17872                    )
17873                }
17874                Self::modifyAllocations(inner) => {
17875                    <modifyAllocationsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17876                        inner,
17877                        out,
17878                    )
17879                }
17880                Self::owner(inner) => {
17881                    <ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17882                }
17883                Self::pause(inner) => {
17884                    <pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17885                }
17886                Self::pauseAll(inner) => {
17887                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
17888                        inner,
17889                        out,
17890                    )
17891                }
17892                Self::paused_0(inner) => {
17893                    <paused_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
17894                        inner,
17895                        out,
17896                    )
17897                }
17898                Self::paused_1(inner) => {
17899                    <paused_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
17900                        inner,
17901                        out,
17902                    )
17903                }
17904                Self::pauserRegistry(inner) => {
17905                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
17906                        inner,
17907                        out,
17908                    )
17909                }
17910                Self::permissionController(inner) => {
17911                    <permissionControllerCall as alloy_sol_types::SolCall>::abi_encode_raw(
17912                        inner,
17913                        out,
17914                    )
17915                }
17916                Self::registerForOperatorSets(inner) => {
17917                    <registerForOperatorSetsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17918                        inner,
17919                        out,
17920                    )
17921                }
17922                Self::removeStrategiesFromOperatorSet(inner) => {
17923                    <removeStrategiesFromOperatorSetCall as alloy_sol_types::SolCall>::abi_encode_raw(
17924                        inner,
17925                        out,
17926                    )
17927                }
17928                Self::renounceOwnership(inner) => {
17929                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
17930                        inner,
17931                        out,
17932                    )
17933                }
17934                Self::setAVSRegistrar(inner) => {
17935                    <setAVSRegistrarCall as alloy_sol_types::SolCall>::abi_encode_raw(
17936                        inner,
17937                        out,
17938                    )
17939                }
17940                Self::setAllocationDelay(inner) => {
17941                    <setAllocationDelayCall as alloy_sol_types::SolCall>::abi_encode_raw(
17942                        inner,
17943                        out,
17944                    )
17945                }
17946                Self::slashOperator(inner) => {
17947                    <slashOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
17948                        inner,
17949                        out,
17950                    )
17951                }
17952                Self::transferOwnership(inner) => {
17953                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
17954                        inner,
17955                        out,
17956                    )
17957                }
17958                Self::unpause(inner) => {
17959                    <unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17960                }
17961                Self::updateAVSMetadataURI(inner) => {
17962                    <updateAVSMetadataURICall as alloy_sol_types::SolCall>::abi_encode_raw(
17963                        inner,
17964                        out,
17965                    )
17966                }
17967                Self::version(inner) => {
17968                    <versionCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17969                }
17970            }
17971        }
17972    }
17973    ///Container for all the [`AllocationManager`](self) custom errors.
17974    #[derive(serde::Serialize, serde::Deserialize)]
17975    #[derive(Debug, PartialEq, Eq, Hash)]
17976    pub enum AllocationManagerErrors {
17977        #[allow(missing_docs)]
17978        AlreadyMemberOfSet(AlreadyMemberOfSet),
17979        #[allow(missing_docs)]
17980        CurrentlyPaused(CurrentlyPaused),
17981        #[allow(missing_docs)]
17982        Empty(Empty),
17983        #[allow(missing_docs)]
17984        InputAddressZero(InputAddressZero),
17985        #[allow(missing_docs)]
17986        InputArrayLengthMismatch(InputArrayLengthMismatch),
17987        #[allow(missing_docs)]
17988        InsufficientMagnitude(InsufficientMagnitude),
17989        #[allow(missing_docs)]
17990        InvalidAVSRegistrar(InvalidAVSRegistrar),
17991        #[allow(missing_docs)]
17992        InvalidCaller(InvalidCaller),
17993        #[allow(missing_docs)]
17994        InvalidNewPausedStatus(InvalidNewPausedStatus),
17995        #[allow(missing_docs)]
17996        InvalidOperator(InvalidOperator),
17997        #[allow(missing_docs)]
17998        InvalidOperatorSet(InvalidOperatorSet),
17999        #[allow(missing_docs)]
18000        InvalidPermissions(InvalidPermissions),
18001        #[allow(missing_docs)]
18002        InvalidShortString(InvalidShortString),
18003        #[allow(missing_docs)]
18004        InvalidSnapshotOrdering(InvalidSnapshotOrdering),
18005        #[allow(missing_docs)]
18006        InvalidWadToSlash(InvalidWadToSlash),
18007        #[allow(missing_docs)]
18008        ModificationAlreadyPending(ModificationAlreadyPending),
18009        #[allow(missing_docs)]
18010        NonexistentAVSMetadata(NonexistentAVSMetadata),
18011        #[allow(missing_docs)]
18012        NotMemberOfSet(NotMemberOfSet),
18013        #[allow(missing_docs)]
18014        OnlyPauser(OnlyPauser),
18015        #[allow(missing_docs)]
18016        OnlyUnpauser(OnlyUnpauser),
18017        #[allow(missing_docs)]
18018        OperatorNotSlashable(OperatorNotSlashable),
18019        #[allow(missing_docs)]
18020        OutOfBounds(OutOfBounds),
18021        #[allow(missing_docs)]
18022        SameMagnitude(SameMagnitude),
18023        #[allow(missing_docs)]
18024        StrategiesMustBeInAscendingOrder(StrategiesMustBeInAscendingOrder),
18025        #[allow(missing_docs)]
18026        StrategyAlreadyInOperatorSet(StrategyAlreadyInOperatorSet),
18027        #[allow(missing_docs)]
18028        StrategyNotInOperatorSet(StrategyNotInOperatorSet),
18029        #[allow(missing_docs)]
18030        StringTooLong(StringTooLong),
18031        #[allow(missing_docs)]
18032        UninitializedAllocationDelay(UninitializedAllocationDelay),
18033    }
18034    #[automatically_derived]
18035    impl AllocationManagerErrors {
18036        /// All the selectors of this enum.
18037        ///
18038        /// Note that the selectors might not be in the same order as the variants.
18039        /// No guarantees are made about the order of the selectors.
18040        ///
18041        /// Prefer using `SolInterface` methods instead.
18042        pub const SELECTORS: &'static [[u8; 4usize]] = &[
18043            [19u8, 83u8, 96u8, 49u8],
18044            [37u8, 19u8, 29u8, 79u8],
18045            [42u8, 55u8, 28u8, 126u8],
18046            [48u8, 90u8, 39u8, 169u8],
18047            [61u8, 178u8, 161u8, 42u8],
18048            [67u8, 113u8, 74u8, 253u8],
18049            [72u8, 245u8, 195u8, 237u8],
18050            [72u8, 247u8, 219u8, 185u8],
18051            [88u8, 92u8, 251u8, 47u8],
18052            [99u8, 120u8, 104u8, 78u8],
18053            [108u8, 155u8, 224u8, 191u8],
18054            [115u8, 99u8, 33u8, 118u8],
18055            [117u8, 223u8, 81u8, 220u8],
18056            [121u8, 72u8, 33u8, 255u8],
18057            [126u8, 197u8, 193u8, 84u8],
18058            [132u8, 10u8, 72u8, 213u8],
18059            [140u8, 12u8, 47u8, 38u8],
18060            [147u8, 45u8, 148u8, 247u8],
18061            [159u8, 28u8, 128u8, 83u8],
18062            [179u8, 81u8, 43u8, 12u8],
18063            [180u8, 18u8, 15u8, 20u8],
18064            [198u8, 29u8, 202u8, 93u8],
18065            [204u8, 234u8, 158u8, 111u8],
18066            [216u8, 216u8, 220u8, 78u8],
18067            [216u8, 252u8, 190u8, 48u8],
18068            [232u8, 88u8, 158u8, 8u8],
18069            [235u8, 191u8, 244u8, 151u8],
18070            [250u8, 85u8, 252u8, 129u8],
18071        ];
18072    }
18073    #[automatically_derived]
18074    impl alloy_sol_types::SolInterface for AllocationManagerErrors {
18075        const NAME: &'static str = "AllocationManagerErrors";
18076        const MIN_DATA_LENGTH: usize = 0usize;
18077        const COUNT: usize = 28usize;
18078        #[inline]
18079        fn selector(&self) -> [u8; 4] {
18080            match self {
18081                Self::AlreadyMemberOfSet(_) => {
18082                    <AlreadyMemberOfSet as alloy_sol_types::SolError>::SELECTOR
18083                }
18084                Self::CurrentlyPaused(_) => {
18085                    <CurrentlyPaused as alloy_sol_types::SolError>::SELECTOR
18086                }
18087                Self::Empty(_) => <Empty as alloy_sol_types::SolError>::SELECTOR,
18088                Self::InputAddressZero(_) => {
18089                    <InputAddressZero as alloy_sol_types::SolError>::SELECTOR
18090                }
18091                Self::InputArrayLengthMismatch(_) => {
18092                    <InputArrayLengthMismatch as alloy_sol_types::SolError>::SELECTOR
18093                }
18094                Self::InsufficientMagnitude(_) => {
18095                    <InsufficientMagnitude as alloy_sol_types::SolError>::SELECTOR
18096                }
18097                Self::InvalidAVSRegistrar(_) => {
18098                    <InvalidAVSRegistrar as alloy_sol_types::SolError>::SELECTOR
18099                }
18100                Self::InvalidCaller(_) => {
18101                    <InvalidCaller as alloy_sol_types::SolError>::SELECTOR
18102                }
18103                Self::InvalidNewPausedStatus(_) => {
18104                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::SELECTOR
18105                }
18106                Self::InvalidOperator(_) => {
18107                    <InvalidOperator as alloy_sol_types::SolError>::SELECTOR
18108                }
18109                Self::InvalidOperatorSet(_) => {
18110                    <InvalidOperatorSet as alloy_sol_types::SolError>::SELECTOR
18111                }
18112                Self::InvalidPermissions(_) => {
18113                    <InvalidPermissions as alloy_sol_types::SolError>::SELECTOR
18114                }
18115                Self::InvalidShortString(_) => {
18116                    <InvalidShortString as alloy_sol_types::SolError>::SELECTOR
18117                }
18118                Self::InvalidSnapshotOrdering(_) => {
18119                    <InvalidSnapshotOrdering as alloy_sol_types::SolError>::SELECTOR
18120                }
18121                Self::InvalidWadToSlash(_) => {
18122                    <InvalidWadToSlash as alloy_sol_types::SolError>::SELECTOR
18123                }
18124                Self::ModificationAlreadyPending(_) => {
18125                    <ModificationAlreadyPending as alloy_sol_types::SolError>::SELECTOR
18126                }
18127                Self::NonexistentAVSMetadata(_) => {
18128                    <NonexistentAVSMetadata as alloy_sol_types::SolError>::SELECTOR
18129                }
18130                Self::NotMemberOfSet(_) => {
18131                    <NotMemberOfSet as alloy_sol_types::SolError>::SELECTOR
18132                }
18133                Self::OnlyPauser(_) => {
18134                    <OnlyPauser as alloy_sol_types::SolError>::SELECTOR
18135                }
18136                Self::OnlyUnpauser(_) => {
18137                    <OnlyUnpauser as alloy_sol_types::SolError>::SELECTOR
18138                }
18139                Self::OperatorNotSlashable(_) => {
18140                    <OperatorNotSlashable as alloy_sol_types::SolError>::SELECTOR
18141                }
18142                Self::OutOfBounds(_) => {
18143                    <OutOfBounds as alloy_sol_types::SolError>::SELECTOR
18144                }
18145                Self::SameMagnitude(_) => {
18146                    <SameMagnitude as alloy_sol_types::SolError>::SELECTOR
18147                }
18148                Self::StrategiesMustBeInAscendingOrder(_) => {
18149                    <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::SELECTOR
18150                }
18151                Self::StrategyAlreadyInOperatorSet(_) => {
18152                    <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::SELECTOR
18153                }
18154                Self::StrategyNotInOperatorSet(_) => {
18155                    <StrategyNotInOperatorSet as alloy_sol_types::SolError>::SELECTOR
18156                }
18157                Self::StringTooLong(_) => {
18158                    <StringTooLong as alloy_sol_types::SolError>::SELECTOR
18159                }
18160                Self::UninitializedAllocationDelay(_) => {
18161                    <UninitializedAllocationDelay as alloy_sol_types::SolError>::SELECTOR
18162                }
18163            }
18164        }
18165        #[inline]
18166        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
18167            Self::SELECTORS.get(i).copied()
18168        }
18169        #[inline]
18170        fn valid_selector(selector: [u8; 4]) -> bool {
18171            Self::SELECTORS.binary_search(&selector).is_ok()
18172        }
18173        #[inline]
18174        #[allow(non_snake_case)]
18175        fn abi_decode_raw(
18176            selector: [u8; 4],
18177            data: &[u8],
18178        ) -> alloy_sol_types::Result<Self> {
18179            static DECODE_SHIMS: &[fn(
18180                &[u8],
18181            ) -> alloy_sol_types::Result<AllocationManagerErrors>] = &[
18182                {
18183                    fn InvalidWadToSlash(
18184                        data: &[u8],
18185                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18186                        <InvalidWadToSlash as alloy_sol_types::SolError>::abi_decode_raw(
18187                                data,
18188                            )
18189                            .map(AllocationManagerErrors::InvalidWadToSlash)
18190                    }
18191                    InvalidWadToSlash
18192                },
18193                {
18194                    fn NotMemberOfSet(
18195                        data: &[u8],
18196                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18197                        <NotMemberOfSet as alloy_sol_types::SolError>::abi_decode_raw(
18198                                data,
18199                            )
18200                            .map(AllocationManagerErrors::NotMemberOfSet)
18201                    }
18202                    NotMemberOfSet
18203                },
18204                {
18205                    fn InvalidSnapshotOrdering(
18206                        data: &[u8],
18207                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18208                        <InvalidSnapshotOrdering as alloy_sol_types::SolError>::abi_decode_raw(
18209                                data,
18210                            )
18211                            .map(AllocationManagerErrors::InvalidSnapshotOrdering)
18212                    }
18213                    InvalidSnapshotOrdering
18214                },
18215                {
18216                    fn StringTooLong(
18217                        data: &[u8],
18218                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18219                        <StringTooLong as alloy_sol_types::SolError>::abi_decode_raw(
18220                                data,
18221                            )
18222                            .map(AllocationManagerErrors::StringTooLong)
18223                    }
18224                    StringTooLong
18225                },
18226                {
18227                    fn Empty(
18228                        data: &[u8],
18229                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18230                        <Empty as alloy_sol_types::SolError>::abi_decode_raw(data)
18231                            .map(AllocationManagerErrors::Empty)
18232                    }
18233                    Empty
18234                },
18235                {
18236                    fn InputArrayLengthMismatch(
18237                        data: &[u8],
18238                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18239                        <InputArrayLengthMismatch as alloy_sol_types::SolError>::abi_decode_raw(
18240                                data,
18241                            )
18242                            .map(AllocationManagerErrors::InputArrayLengthMismatch)
18243                    }
18244                    InputArrayLengthMismatch
18245                },
18246                {
18247                    fn InvalidCaller(
18248                        data: &[u8],
18249                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18250                        <InvalidCaller as alloy_sol_types::SolError>::abi_decode_raw(
18251                                data,
18252                            )
18253                            .map(AllocationManagerErrors::InvalidCaller)
18254                    }
18255                    InvalidCaller
18256                },
18257                {
18258                    fn NonexistentAVSMetadata(
18259                        data: &[u8],
18260                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18261                        <NonexistentAVSMetadata as alloy_sol_types::SolError>::abi_decode_raw(
18262                                data,
18263                            )
18264                            .map(AllocationManagerErrors::NonexistentAVSMetadata)
18265                    }
18266                    NonexistentAVSMetadata
18267                },
18268                {
18269                    fn StrategyAlreadyInOperatorSet(
18270                        data: &[u8],
18271                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18272                        <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::abi_decode_raw(
18273                                data,
18274                            )
18275                            .map(AllocationManagerErrors::StrategyAlreadyInOperatorSet)
18276                    }
18277                    StrategyAlreadyInOperatorSet
18278                },
18279                {
18280                    fn StrategyNotInOperatorSet(
18281                        data: &[u8],
18282                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18283                        <StrategyNotInOperatorSet as alloy_sol_types::SolError>::abi_decode_raw(
18284                                data,
18285                            )
18286                            .map(AllocationManagerErrors::StrategyNotInOperatorSet)
18287                    }
18288                    StrategyNotInOperatorSet
18289                },
18290                {
18291                    fn InsufficientMagnitude(
18292                        data: &[u8],
18293                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18294                        <InsufficientMagnitude as alloy_sol_types::SolError>::abi_decode_raw(
18295                                data,
18296                            )
18297                            .map(AllocationManagerErrors::InsufficientMagnitude)
18298                    }
18299                    InsufficientMagnitude
18300                },
18301                {
18302                    fn InputAddressZero(
18303                        data: &[u8],
18304                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18305                        <InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw(
18306                                data,
18307                            )
18308                            .map(AllocationManagerErrors::InputAddressZero)
18309                    }
18310                    InputAddressZero
18311                },
18312                {
18313                    fn OnlyPauser(
18314                        data: &[u8],
18315                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18316                        <OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw(data)
18317                            .map(AllocationManagerErrors::OnlyPauser)
18318                    }
18319                    OnlyPauser
18320                },
18321                {
18322                    fn OnlyUnpauser(
18323                        data: &[u8],
18324                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18325                        <OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw(data)
18326                            .map(AllocationManagerErrors::OnlyUnpauser)
18327                    }
18328                    OnlyUnpauser
18329                },
18330                {
18331                    fn InvalidOperatorSet(
18332                        data: &[u8],
18333                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18334                        <InvalidOperatorSet as alloy_sol_types::SolError>::abi_decode_raw(
18335                                data,
18336                            )
18337                            .map(AllocationManagerErrors::InvalidOperatorSet)
18338                    }
18339                    InvalidOperatorSet
18340                },
18341                {
18342                    fn CurrentlyPaused(
18343                        data: &[u8],
18344                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18345                        <CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw(
18346                                data,
18347                            )
18348                            .map(AllocationManagerErrors::CurrentlyPaused)
18349                    }
18350                    CurrentlyPaused
18351                },
18352                {
18353                    fn SameMagnitude(
18354                        data: &[u8],
18355                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18356                        <SameMagnitude as alloy_sol_types::SolError>::abi_decode_raw(
18357                                data,
18358                            )
18359                            .map(AllocationManagerErrors::SameMagnitude)
18360                    }
18361                    SameMagnitude
18362                },
18363                {
18364                    fn InvalidPermissions(
18365                        data: &[u8],
18366                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18367                        <InvalidPermissions as alloy_sol_types::SolError>::abi_decode_raw(
18368                                data,
18369                            )
18370                            .map(AllocationManagerErrors::InvalidPermissions)
18371                    }
18372                    InvalidPermissions
18373                },
18374                {
18375                    fn StrategiesMustBeInAscendingOrder(
18376                        data: &[u8],
18377                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18378                        <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::abi_decode_raw(
18379                                data,
18380                            )
18381                            .map(
18382                                AllocationManagerErrors::StrategiesMustBeInAscendingOrder,
18383                            )
18384                    }
18385                    StrategiesMustBeInAscendingOrder
18386                },
18387                {
18388                    fn InvalidShortString(
18389                        data: &[u8],
18390                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18391                        <InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw(
18392                                data,
18393                            )
18394                            .map(AllocationManagerErrors::InvalidShortString)
18395                    }
18396                    InvalidShortString
18397                },
18398                {
18399                    fn OutOfBounds(
18400                        data: &[u8],
18401                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18402                        <OutOfBounds as alloy_sol_types::SolError>::abi_decode_raw(data)
18403                            .map(AllocationManagerErrors::OutOfBounds)
18404                    }
18405                    OutOfBounds
18406                },
18407                {
18408                    fn InvalidNewPausedStatus(
18409                        data: &[u8],
18410                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18411                        <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw(
18412                                data,
18413                            )
18414                            .map(AllocationManagerErrors::InvalidNewPausedStatus)
18415                    }
18416                    InvalidNewPausedStatus
18417                },
18418                {
18419                    fn InvalidOperator(
18420                        data: &[u8],
18421                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18422                        <InvalidOperator as alloy_sol_types::SolError>::abi_decode_raw(
18423                                data,
18424                            )
18425                            .map(AllocationManagerErrors::InvalidOperator)
18426                    }
18427                    InvalidOperator
18428                },
18429                {
18430                    fn AlreadyMemberOfSet(
18431                        data: &[u8],
18432                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18433                        <AlreadyMemberOfSet as alloy_sol_types::SolError>::abi_decode_raw(
18434                                data,
18435                            )
18436                            .map(AllocationManagerErrors::AlreadyMemberOfSet)
18437                    }
18438                    AlreadyMemberOfSet
18439                },
18440                {
18441                    fn ModificationAlreadyPending(
18442                        data: &[u8],
18443                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18444                        <ModificationAlreadyPending as alloy_sol_types::SolError>::abi_decode_raw(
18445                                data,
18446                            )
18447                            .map(AllocationManagerErrors::ModificationAlreadyPending)
18448                    }
18449                    ModificationAlreadyPending
18450                },
18451                {
18452                    fn InvalidAVSRegistrar(
18453                        data: &[u8],
18454                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18455                        <InvalidAVSRegistrar as alloy_sol_types::SolError>::abi_decode_raw(
18456                                data,
18457                            )
18458                            .map(AllocationManagerErrors::InvalidAVSRegistrar)
18459                    }
18460                    InvalidAVSRegistrar
18461                },
18462                {
18463                    fn OperatorNotSlashable(
18464                        data: &[u8],
18465                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18466                        <OperatorNotSlashable as alloy_sol_types::SolError>::abi_decode_raw(
18467                                data,
18468                            )
18469                            .map(AllocationManagerErrors::OperatorNotSlashable)
18470                    }
18471                    OperatorNotSlashable
18472                },
18473                {
18474                    fn UninitializedAllocationDelay(
18475                        data: &[u8],
18476                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18477                        <UninitializedAllocationDelay as alloy_sol_types::SolError>::abi_decode_raw(
18478                                data,
18479                            )
18480                            .map(AllocationManagerErrors::UninitializedAllocationDelay)
18481                    }
18482                    UninitializedAllocationDelay
18483                },
18484            ];
18485            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
18486                return Err(
18487                    alloy_sol_types::Error::unknown_selector(
18488                        <Self as alloy_sol_types::SolInterface>::NAME,
18489                        selector,
18490                    ),
18491                );
18492            };
18493            DECODE_SHIMS[idx](data)
18494        }
18495        #[inline]
18496        #[allow(non_snake_case)]
18497        fn abi_decode_raw_validate(
18498            selector: [u8; 4],
18499            data: &[u8],
18500        ) -> alloy_sol_types::Result<Self> {
18501            static DECODE_VALIDATE_SHIMS: &[fn(
18502                &[u8],
18503            ) -> alloy_sol_types::Result<AllocationManagerErrors>] = &[
18504                {
18505                    fn InvalidWadToSlash(
18506                        data: &[u8],
18507                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18508                        <InvalidWadToSlash as alloy_sol_types::SolError>::abi_decode_raw_validate(
18509                                data,
18510                            )
18511                            .map(AllocationManagerErrors::InvalidWadToSlash)
18512                    }
18513                    InvalidWadToSlash
18514                },
18515                {
18516                    fn NotMemberOfSet(
18517                        data: &[u8],
18518                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18519                        <NotMemberOfSet as alloy_sol_types::SolError>::abi_decode_raw_validate(
18520                                data,
18521                            )
18522                            .map(AllocationManagerErrors::NotMemberOfSet)
18523                    }
18524                    NotMemberOfSet
18525                },
18526                {
18527                    fn InvalidSnapshotOrdering(
18528                        data: &[u8],
18529                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18530                        <InvalidSnapshotOrdering as alloy_sol_types::SolError>::abi_decode_raw_validate(
18531                                data,
18532                            )
18533                            .map(AllocationManagerErrors::InvalidSnapshotOrdering)
18534                    }
18535                    InvalidSnapshotOrdering
18536                },
18537                {
18538                    fn StringTooLong(
18539                        data: &[u8],
18540                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18541                        <StringTooLong as alloy_sol_types::SolError>::abi_decode_raw_validate(
18542                                data,
18543                            )
18544                            .map(AllocationManagerErrors::StringTooLong)
18545                    }
18546                    StringTooLong
18547                },
18548                {
18549                    fn Empty(
18550                        data: &[u8],
18551                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18552                        <Empty as alloy_sol_types::SolError>::abi_decode_raw_validate(
18553                                data,
18554                            )
18555                            .map(AllocationManagerErrors::Empty)
18556                    }
18557                    Empty
18558                },
18559                {
18560                    fn InputArrayLengthMismatch(
18561                        data: &[u8],
18562                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18563                        <InputArrayLengthMismatch as alloy_sol_types::SolError>::abi_decode_raw_validate(
18564                                data,
18565                            )
18566                            .map(AllocationManagerErrors::InputArrayLengthMismatch)
18567                    }
18568                    InputArrayLengthMismatch
18569                },
18570                {
18571                    fn InvalidCaller(
18572                        data: &[u8],
18573                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18574                        <InvalidCaller as alloy_sol_types::SolError>::abi_decode_raw_validate(
18575                                data,
18576                            )
18577                            .map(AllocationManagerErrors::InvalidCaller)
18578                    }
18579                    InvalidCaller
18580                },
18581                {
18582                    fn NonexistentAVSMetadata(
18583                        data: &[u8],
18584                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18585                        <NonexistentAVSMetadata as alloy_sol_types::SolError>::abi_decode_raw_validate(
18586                                data,
18587                            )
18588                            .map(AllocationManagerErrors::NonexistentAVSMetadata)
18589                    }
18590                    NonexistentAVSMetadata
18591                },
18592                {
18593                    fn StrategyAlreadyInOperatorSet(
18594                        data: &[u8],
18595                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18596                        <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::abi_decode_raw_validate(
18597                                data,
18598                            )
18599                            .map(AllocationManagerErrors::StrategyAlreadyInOperatorSet)
18600                    }
18601                    StrategyAlreadyInOperatorSet
18602                },
18603                {
18604                    fn StrategyNotInOperatorSet(
18605                        data: &[u8],
18606                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18607                        <StrategyNotInOperatorSet as alloy_sol_types::SolError>::abi_decode_raw_validate(
18608                                data,
18609                            )
18610                            .map(AllocationManagerErrors::StrategyNotInOperatorSet)
18611                    }
18612                    StrategyNotInOperatorSet
18613                },
18614                {
18615                    fn InsufficientMagnitude(
18616                        data: &[u8],
18617                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18618                        <InsufficientMagnitude as alloy_sol_types::SolError>::abi_decode_raw_validate(
18619                                data,
18620                            )
18621                            .map(AllocationManagerErrors::InsufficientMagnitude)
18622                    }
18623                    InsufficientMagnitude
18624                },
18625                {
18626                    fn InputAddressZero(
18627                        data: &[u8],
18628                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18629                        <InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
18630                                data,
18631                            )
18632                            .map(AllocationManagerErrors::InputAddressZero)
18633                    }
18634                    InputAddressZero
18635                },
18636                {
18637                    fn OnlyPauser(
18638                        data: &[u8],
18639                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18640                        <OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw_validate(
18641                                data,
18642                            )
18643                            .map(AllocationManagerErrors::OnlyPauser)
18644                    }
18645                    OnlyPauser
18646                },
18647                {
18648                    fn OnlyUnpauser(
18649                        data: &[u8],
18650                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18651                        <OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw_validate(
18652                                data,
18653                            )
18654                            .map(AllocationManagerErrors::OnlyUnpauser)
18655                    }
18656                    OnlyUnpauser
18657                },
18658                {
18659                    fn InvalidOperatorSet(
18660                        data: &[u8],
18661                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18662                        <InvalidOperatorSet as alloy_sol_types::SolError>::abi_decode_raw_validate(
18663                                data,
18664                            )
18665                            .map(AllocationManagerErrors::InvalidOperatorSet)
18666                    }
18667                    InvalidOperatorSet
18668                },
18669                {
18670                    fn CurrentlyPaused(
18671                        data: &[u8],
18672                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18673                        <CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw_validate(
18674                                data,
18675                            )
18676                            .map(AllocationManagerErrors::CurrentlyPaused)
18677                    }
18678                    CurrentlyPaused
18679                },
18680                {
18681                    fn SameMagnitude(
18682                        data: &[u8],
18683                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18684                        <SameMagnitude as alloy_sol_types::SolError>::abi_decode_raw_validate(
18685                                data,
18686                            )
18687                            .map(AllocationManagerErrors::SameMagnitude)
18688                    }
18689                    SameMagnitude
18690                },
18691                {
18692                    fn InvalidPermissions(
18693                        data: &[u8],
18694                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18695                        <InvalidPermissions as alloy_sol_types::SolError>::abi_decode_raw_validate(
18696                                data,
18697                            )
18698                            .map(AllocationManagerErrors::InvalidPermissions)
18699                    }
18700                    InvalidPermissions
18701                },
18702                {
18703                    fn StrategiesMustBeInAscendingOrder(
18704                        data: &[u8],
18705                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18706                        <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::abi_decode_raw_validate(
18707                                data,
18708                            )
18709                            .map(
18710                                AllocationManagerErrors::StrategiesMustBeInAscendingOrder,
18711                            )
18712                    }
18713                    StrategiesMustBeInAscendingOrder
18714                },
18715                {
18716                    fn InvalidShortString(
18717                        data: &[u8],
18718                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18719                        <InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw_validate(
18720                                data,
18721                            )
18722                            .map(AllocationManagerErrors::InvalidShortString)
18723                    }
18724                    InvalidShortString
18725                },
18726                {
18727                    fn OutOfBounds(
18728                        data: &[u8],
18729                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18730                        <OutOfBounds as alloy_sol_types::SolError>::abi_decode_raw_validate(
18731                                data,
18732                            )
18733                            .map(AllocationManagerErrors::OutOfBounds)
18734                    }
18735                    OutOfBounds
18736                },
18737                {
18738                    fn InvalidNewPausedStatus(
18739                        data: &[u8],
18740                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18741                        <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw_validate(
18742                                data,
18743                            )
18744                            .map(AllocationManagerErrors::InvalidNewPausedStatus)
18745                    }
18746                    InvalidNewPausedStatus
18747                },
18748                {
18749                    fn InvalidOperator(
18750                        data: &[u8],
18751                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18752                        <InvalidOperator as alloy_sol_types::SolError>::abi_decode_raw_validate(
18753                                data,
18754                            )
18755                            .map(AllocationManagerErrors::InvalidOperator)
18756                    }
18757                    InvalidOperator
18758                },
18759                {
18760                    fn AlreadyMemberOfSet(
18761                        data: &[u8],
18762                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18763                        <AlreadyMemberOfSet as alloy_sol_types::SolError>::abi_decode_raw_validate(
18764                                data,
18765                            )
18766                            .map(AllocationManagerErrors::AlreadyMemberOfSet)
18767                    }
18768                    AlreadyMemberOfSet
18769                },
18770                {
18771                    fn ModificationAlreadyPending(
18772                        data: &[u8],
18773                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18774                        <ModificationAlreadyPending as alloy_sol_types::SolError>::abi_decode_raw_validate(
18775                                data,
18776                            )
18777                            .map(AllocationManagerErrors::ModificationAlreadyPending)
18778                    }
18779                    ModificationAlreadyPending
18780                },
18781                {
18782                    fn InvalidAVSRegistrar(
18783                        data: &[u8],
18784                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18785                        <InvalidAVSRegistrar as alloy_sol_types::SolError>::abi_decode_raw_validate(
18786                                data,
18787                            )
18788                            .map(AllocationManagerErrors::InvalidAVSRegistrar)
18789                    }
18790                    InvalidAVSRegistrar
18791                },
18792                {
18793                    fn OperatorNotSlashable(
18794                        data: &[u8],
18795                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18796                        <OperatorNotSlashable as alloy_sol_types::SolError>::abi_decode_raw_validate(
18797                                data,
18798                            )
18799                            .map(AllocationManagerErrors::OperatorNotSlashable)
18800                    }
18801                    OperatorNotSlashable
18802                },
18803                {
18804                    fn UninitializedAllocationDelay(
18805                        data: &[u8],
18806                    ) -> alloy_sol_types::Result<AllocationManagerErrors> {
18807                        <UninitializedAllocationDelay as alloy_sol_types::SolError>::abi_decode_raw_validate(
18808                                data,
18809                            )
18810                            .map(AllocationManagerErrors::UninitializedAllocationDelay)
18811                    }
18812                    UninitializedAllocationDelay
18813                },
18814            ];
18815            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
18816                return Err(
18817                    alloy_sol_types::Error::unknown_selector(
18818                        <Self as alloy_sol_types::SolInterface>::NAME,
18819                        selector,
18820                    ),
18821                );
18822            };
18823            DECODE_VALIDATE_SHIMS[idx](data)
18824        }
18825        #[inline]
18826        fn abi_encoded_size(&self) -> usize {
18827            match self {
18828                Self::AlreadyMemberOfSet(inner) => {
18829                    <AlreadyMemberOfSet as alloy_sol_types::SolError>::abi_encoded_size(
18830                        inner,
18831                    )
18832                }
18833                Self::CurrentlyPaused(inner) => {
18834                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encoded_size(
18835                        inner,
18836                    )
18837                }
18838                Self::Empty(inner) => {
18839                    <Empty as alloy_sol_types::SolError>::abi_encoded_size(inner)
18840                }
18841                Self::InputAddressZero(inner) => {
18842                    <InputAddressZero as alloy_sol_types::SolError>::abi_encoded_size(
18843                        inner,
18844                    )
18845                }
18846                Self::InputArrayLengthMismatch(inner) => {
18847                    <InputArrayLengthMismatch as alloy_sol_types::SolError>::abi_encoded_size(
18848                        inner,
18849                    )
18850                }
18851                Self::InsufficientMagnitude(inner) => {
18852                    <InsufficientMagnitude as alloy_sol_types::SolError>::abi_encoded_size(
18853                        inner,
18854                    )
18855                }
18856                Self::InvalidAVSRegistrar(inner) => {
18857                    <InvalidAVSRegistrar as alloy_sol_types::SolError>::abi_encoded_size(
18858                        inner,
18859                    )
18860                }
18861                Self::InvalidCaller(inner) => {
18862                    <InvalidCaller as alloy_sol_types::SolError>::abi_encoded_size(inner)
18863                }
18864                Self::InvalidNewPausedStatus(inner) => {
18865                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encoded_size(
18866                        inner,
18867                    )
18868                }
18869                Self::InvalidOperator(inner) => {
18870                    <InvalidOperator as alloy_sol_types::SolError>::abi_encoded_size(
18871                        inner,
18872                    )
18873                }
18874                Self::InvalidOperatorSet(inner) => {
18875                    <InvalidOperatorSet as alloy_sol_types::SolError>::abi_encoded_size(
18876                        inner,
18877                    )
18878                }
18879                Self::InvalidPermissions(inner) => {
18880                    <InvalidPermissions as alloy_sol_types::SolError>::abi_encoded_size(
18881                        inner,
18882                    )
18883                }
18884                Self::InvalidShortString(inner) => {
18885                    <InvalidShortString as alloy_sol_types::SolError>::abi_encoded_size(
18886                        inner,
18887                    )
18888                }
18889                Self::InvalidSnapshotOrdering(inner) => {
18890                    <InvalidSnapshotOrdering as alloy_sol_types::SolError>::abi_encoded_size(
18891                        inner,
18892                    )
18893                }
18894                Self::InvalidWadToSlash(inner) => {
18895                    <InvalidWadToSlash as alloy_sol_types::SolError>::abi_encoded_size(
18896                        inner,
18897                    )
18898                }
18899                Self::ModificationAlreadyPending(inner) => {
18900                    <ModificationAlreadyPending as alloy_sol_types::SolError>::abi_encoded_size(
18901                        inner,
18902                    )
18903                }
18904                Self::NonexistentAVSMetadata(inner) => {
18905                    <NonexistentAVSMetadata as alloy_sol_types::SolError>::abi_encoded_size(
18906                        inner,
18907                    )
18908                }
18909                Self::NotMemberOfSet(inner) => {
18910                    <NotMemberOfSet as alloy_sol_types::SolError>::abi_encoded_size(
18911                        inner,
18912                    )
18913                }
18914                Self::OnlyPauser(inner) => {
18915                    <OnlyPauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
18916                }
18917                Self::OnlyUnpauser(inner) => {
18918                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
18919                }
18920                Self::OperatorNotSlashable(inner) => {
18921                    <OperatorNotSlashable as alloy_sol_types::SolError>::abi_encoded_size(
18922                        inner,
18923                    )
18924                }
18925                Self::OutOfBounds(inner) => {
18926                    <OutOfBounds as alloy_sol_types::SolError>::abi_encoded_size(inner)
18927                }
18928                Self::SameMagnitude(inner) => {
18929                    <SameMagnitude as alloy_sol_types::SolError>::abi_encoded_size(inner)
18930                }
18931                Self::StrategiesMustBeInAscendingOrder(inner) => {
18932                    <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::abi_encoded_size(
18933                        inner,
18934                    )
18935                }
18936                Self::StrategyAlreadyInOperatorSet(inner) => {
18937                    <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::abi_encoded_size(
18938                        inner,
18939                    )
18940                }
18941                Self::StrategyNotInOperatorSet(inner) => {
18942                    <StrategyNotInOperatorSet as alloy_sol_types::SolError>::abi_encoded_size(
18943                        inner,
18944                    )
18945                }
18946                Self::StringTooLong(inner) => {
18947                    <StringTooLong as alloy_sol_types::SolError>::abi_encoded_size(inner)
18948                }
18949                Self::UninitializedAllocationDelay(inner) => {
18950                    <UninitializedAllocationDelay as alloy_sol_types::SolError>::abi_encoded_size(
18951                        inner,
18952                    )
18953                }
18954            }
18955        }
18956        #[inline]
18957        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
18958            match self {
18959                Self::AlreadyMemberOfSet(inner) => {
18960                    <AlreadyMemberOfSet as alloy_sol_types::SolError>::abi_encode_raw(
18961                        inner,
18962                        out,
18963                    )
18964                }
18965                Self::CurrentlyPaused(inner) => {
18966                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encode_raw(
18967                        inner,
18968                        out,
18969                    )
18970                }
18971                Self::Empty(inner) => {
18972                    <Empty as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
18973                }
18974                Self::InputAddressZero(inner) => {
18975                    <InputAddressZero as alloy_sol_types::SolError>::abi_encode_raw(
18976                        inner,
18977                        out,
18978                    )
18979                }
18980                Self::InputArrayLengthMismatch(inner) => {
18981                    <InputArrayLengthMismatch as alloy_sol_types::SolError>::abi_encode_raw(
18982                        inner,
18983                        out,
18984                    )
18985                }
18986                Self::InsufficientMagnitude(inner) => {
18987                    <InsufficientMagnitude as alloy_sol_types::SolError>::abi_encode_raw(
18988                        inner,
18989                        out,
18990                    )
18991                }
18992                Self::InvalidAVSRegistrar(inner) => {
18993                    <InvalidAVSRegistrar as alloy_sol_types::SolError>::abi_encode_raw(
18994                        inner,
18995                        out,
18996                    )
18997                }
18998                Self::InvalidCaller(inner) => {
18999                    <InvalidCaller as alloy_sol_types::SolError>::abi_encode_raw(
19000                        inner,
19001                        out,
19002                    )
19003                }
19004                Self::InvalidNewPausedStatus(inner) => {
19005                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encode_raw(
19006                        inner,
19007                        out,
19008                    )
19009                }
19010                Self::InvalidOperator(inner) => {
19011                    <InvalidOperator as alloy_sol_types::SolError>::abi_encode_raw(
19012                        inner,
19013                        out,
19014                    )
19015                }
19016                Self::InvalidOperatorSet(inner) => {
19017                    <InvalidOperatorSet as alloy_sol_types::SolError>::abi_encode_raw(
19018                        inner,
19019                        out,
19020                    )
19021                }
19022                Self::InvalidPermissions(inner) => {
19023                    <InvalidPermissions as alloy_sol_types::SolError>::abi_encode_raw(
19024                        inner,
19025                        out,
19026                    )
19027                }
19028                Self::InvalidShortString(inner) => {
19029                    <InvalidShortString as alloy_sol_types::SolError>::abi_encode_raw(
19030                        inner,
19031                        out,
19032                    )
19033                }
19034                Self::InvalidSnapshotOrdering(inner) => {
19035                    <InvalidSnapshotOrdering as alloy_sol_types::SolError>::abi_encode_raw(
19036                        inner,
19037                        out,
19038                    )
19039                }
19040                Self::InvalidWadToSlash(inner) => {
19041                    <InvalidWadToSlash as alloy_sol_types::SolError>::abi_encode_raw(
19042                        inner,
19043                        out,
19044                    )
19045                }
19046                Self::ModificationAlreadyPending(inner) => {
19047                    <ModificationAlreadyPending as alloy_sol_types::SolError>::abi_encode_raw(
19048                        inner,
19049                        out,
19050                    )
19051                }
19052                Self::NonexistentAVSMetadata(inner) => {
19053                    <NonexistentAVSMetadata as alloy_sol_types::SolError>::abi_encode_raw(
19054                        inner,
19055                        out,
19056                    )
19057                }
19058                Self::NotMemberOfSet(inner) => {
19059                    <NotMemberOfSet as alloy_sol_types::SolError>::abi_encode_raw(
19060                        inner,
19061                        out,
19062                    )
19063                }
19064                Self::OnlyPauser(inner) => {
19065                    <OnlyPauser as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
19066                }
19067                Self::OnlyUnpauser(inner) => {
19068                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encode_raw(
19069                        inner,
19070                        out,
19071                    )
19072                }
19073                Self::OperatorNotSlashable(inner) => {
19074                    <OperatorNotSlashable as alloy_sol_types::SolError>::abi_encode_raw(
19075                        inner,
19076                        out,
19077                    )
19078                }
19079                Self::OutOfBounds(inner) => {
19080                    <OutOfBounds as alloy_sol_types::SolError>::abi_encode_raw(
19081                        inner,
19082                        out,
19083                    )
19084                }
19085                Self::SameMagnitude(inner) => {
19086                    <SameMagnitude as alloy_sol_types::SolError>::abi_encode_raw(
19087                        inner,
19088                        out,
19089                    )
19090                }
19091                Self::StrategiesMustBeInAscendingOrder(inner) => {
19092                    <StrategiesMustBeInAscendingOrder as alloy_sol_types::SolError>::abi_encode_raw(
19093                        inner,
19094                        out,
19095                    )
19096                }
19097                Self::StrategyAlreadyInOperatorSet(inner) => {
19098                    <StrategyAlreadyInOperatorSet as alloy_sol_types::SolError>::abi_encode_raw(
19099                        inner,
19100                        out,
19101                    )
19102                }
19103                Self::StrategyNotInOperatorSet(inner) => {
19104                    <StrategyNotInOperatorSet as alloy_sol_types::SolError>::abi_encode_raw(
19105                        inner,
19106                        out,
19107                    )
19108                }
19109                Self::StringTooLong(inner) => {
19110                    <StringTooLong as alloy_sol_types::SolError>::abi_encode_raw(
19111                        inner,
19112                        out,
19113                    )
19114                }
19115                Self::UninitializedAllocationDelay(inner) => {
19116                    <UninitializedAllocationDelay as alloy_sol_types::SolError>::abi_encode_raw(
19117                        inner,
19118                        out,
19119                    )
19120                }
19121            }
19122        }
19123    }
19124    ///Container for all the [`AllocationManager`](self) events.
19125    #[derive(serde::Serialize, serde::Deserialize)]
19126    #[derive(Debug, PartialEq, Eq, Hash)]
19127    pub enum AllocationManagerEvents {
19128        #[allow(missing_docs)]
19129        AVSMetadataURIUpdated(AVSMetadataURIUpdated),
19130        #[allow(missing_docs)]
19131        AVSRegistrarSet(AVSRegistrarSet),
19132        #[allow(missing_docs)]
19133        AllocationDelaySet(AllocationDelaySet),
19134        #[allow(missing_docs)]
19135        AllocationUpdated(AllocationUpdated),
19136        #[allow(missing_docs)]
19137        EncumberedMagnitudeUpdated(EncumberedMagnitudeUpdated),
19138        #[allow(missing_docs)]
19139        Initialized(Initialized),
19140        #[allow(missing_docs)]
19141        MaxMagnitudeUpdated(MaxMagnitudeUpdated),
19142        #[allow(missing_docs)]
19143        OperatorAddedToOperatorSet(OperatorAddedToOperatorSet),
19144        #[allow(missing_docs)]
19145        OperatorRemovedFromOperatorSet(OperatorRemovedFromOperatorSet),
19146        #[allow(missing_docs)]
19147        OperatorSetCreated(OperatorSetCreated),
19148        #[allow(missing_docs)]
19149        OperatorSlashed(OperatorSlashed),
19150        #[allow(missing_docs)]
19151        OwnershipTransferred(OwnershipTransferred),
19152        #[allow(missing_docs)]
19153        Paused(Paused),
19154        #[allow(missing_docs)]
19155        StrategyAddedToOperatorSet(StrategyAddedToOperatorSet),
19156        #[allow(missing_docs)]
19157        StrategyRemovedFromOperatorSet(StrategyRemovedFromOperatorSet),
19158        #[allow(missing_docs)]
19159        Unpaused(Unpaused),
19160    }
19161    #[automatically_derived]
19162    impl AllocationManagerEvents {
19163        /// All the selectors of this enum.
19164        ///
19165        /// Note that the selectors might not be in the same order as the variants.
19166        /// No guarantees are made about the order of the selectors.
19167        ///
19168        /// Prefer using `SolInterface` methods instead.
19169        pub const SELECTORS: &'static [[u8; 32usize]] = &[
19170            [
19171                20u8, 135u8, 175u8, 84u8, 24u8, 196u8, 126u8, 229u8, 234u8, 69u8, 239u8,
19172                74u8, 147u8, 57u8, 134u8, 104u8, 18u8, 8u8, 144u8, 119u8, 74u8, 158u8,
19173                19u8, 72u8, 126u8, 97u8, 233u8, 220u8, 59u8, 175u8, 118u8, 221u8,
19174            ],
19175            [
19176                28u8, 100u8, 88u8, 7u8, 154u8, 65u8, 7u8, 125u8, 0u8, 60u8, 17u8, 250u8,
19177                249u8, 191u8, 9u8, 126u8, 105u8, 59u8, 214u8, 121u8, 121u8, 228u8, 230u8,
19178                80u8, 11u8, 172u8, 123u8, 41u8, 219u8, 119u8, 155u8, 92u8,
19179            ],
19180            [
19181                42u8, 233u8, 69u8, 196u8, 12u8, 68u8, 220u8, 14u8, 194u8, 99u8, 249u8,
19182                86u8, 9u8, 195u8, 253u8, 198u8, 149u8, 46u8, 10u8, 239u8, 162u8, 45u8,
19183                99u8, 116u8, 228u8, 79u8, 44u8, 153u8, 122u8, 206u8, 223u8, 133u8,
19184            ],
19185            [
19186                49u8, 98u8, 146u8, 133u8, 234u8, 210u8, 51u8, 90u8, 224u8, 147u8, 63u8,
19187                134u8, 237u8, 42u8, 230u8, 51u8, 33u8, 247u8, 175u8, 119u8, 180u8, 230u8,
19188                234u8, 171u8, 196u8, 44u8, 5u8, 120u8, 128u8, 151u8, 126u8, 108u8,
19189            ],
19190            [
19191                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
19192                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
19193                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
19194            ],
19195            [
19196                67u8, 35u8, 46u8, 223u8, 144u8, 113u8, 117u8, 61u8, 35u8, 33u8, 229u8,
19197                250u8, 126u8, 1u8, 131u8, 99u8, 238u8, 36u8, 142u8, 95u8, 33u8, 66u8,
19198                230u8, 192u8, 142u8, 221u8, 50u8, 101u8, 191u8, 180u8, 137u8, 94u8,
19199            ],
19200            [
19201                78u8, 133u8, 117u8, 29u8, 99u8, 49u8, 80u8, 108u8, 108u8, 98u8, 51u8,
19202                95u8, 32u8, 126u8, 179u8, 31u8, 18u8, 166u8, 30u8, 87u8, 15u8, 52u8,
19203                245u8, 193u8, 118u8, 64u8, 48u8, 135u8, 133u8, 198u8, 212u8, 219u8,
19204            ],
19205            [
19206                122u8, 178u8, 96u8, 254u8, 10u8, 241u8, 147u8, 219u8, 95u8, 73u8, 134u8,
19207                119u8, 13u8, 131u8, 27u8, 218u8, 78u8, 164u8, 96u8, 153u8, 220u8, 129u8,
19208                126u8, 139u8, 103u8, 22u8, 220u8, 174u8, 138u8, 248u8, 232u8, 139u8,
19209            ],
19210            [
19211                123u8, 75u8, 7u8, 61u8, 128u8, 220u8, 172u8, 85u8, 161u8, 17u8, 119u8,
19212                216u8, 69u8, 154u8, 217u8, 246u8, 100u8, 206u8, 235u8, 145u8, 247u8,
19213                31u8, 39u8, 22u8, 123u8, 177u8, 79u8, 129u8, 82u8, 167u8, 238u8, 238u8,
19214            ],
19215            [
19216                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
19217                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
19218                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
19219            ],
19220            [
19221                128u8, 150u8, 154u8, 210u8, 148u8, 40u8, 214u8, 121u8, 126u8, 231u8,
19222                170u8, 208u8, 132u8, 249u8, 228u8, 164u8, 42u8, 130u8, 252u8, 80u8,
19223                109u8, 205u8, 44u8, 163u8, 182u8, 251u8, 67u8, 31u8, 133u8, 204u8, 235u8,
19224                229u8,
19225            ],
19226            [
19227                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
19228                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
19229                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
19230            ],
19231            [
19232                168u8, 156u8, 29u8, 194u8, 67u8, 216u8, 144u8, 138u8, 150u8, 221u8,
19233                132u8, 148u8, 75u8, 204u8, 151u8, 214u8, 188u8, 106u8, 192u8, 13u8,
19234                215u8, 142u8, 32u8, 98u8, 21u8, 118u8, 190u8, 106u8, 60u8, 148u8, 55u8,
19235                19u8,
19236            ],
19237            [
19238                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
19239                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
19240                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
19241            ],
19242            [
19243                172u8, 249u8, 9u8, 95u8, 235u8, 58u8, 55u8, 12u8, 156u8, 246u8, 146u8,
19244                66u8, 28u8, 105u8, 239u8, 50u8, 13u8, 77u8, 181u8, 198u8, 110u8, 106u8,
19245                125u8, 41u8, 199u8, 105u8, 78u8, 176u8, 35u8, 100u8, 252u8, 85u8,
19246            ],
19247            [
19248                173u8, 52u8, 195u8, 7u8, 11u8, 225u8, 223u8, 251u8, 202u8, 164u8, 153u8,
19249                208u8, 0u8, 186u8, 43u8, 141u8, 152u8, 72u8, 174u8, 252u8, 172u8, 48u8,
19250                89u8, 223u8, 36u8, 93u8, 217u8, 92u8, 78u8, 206u8, 20u8, 254u8,
19251            ],
19252        ];
19253    }
19254    #[automatically_derived]
19255    impl alloy_sol_types::SolEventInterface for AllocationManagerEvents {
19256        const NAME: &'static str = "AllocationManagerEvents";
19257        const COUNT: usize = 16usize;
19258        fn decode_raw_log(
19259            topics: &[alloy_sol_types::Word],
19260            data: &[u8],
19261        ) -> alloy_sol_types::Result<Self> {
19262            match topics.first().copied() {
19263                Some(
19264                    <AVSMetadataURIUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19265                ) => {
19266                    <AVSMetadataURIUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
19267                            topics,
19268                            data,
19269                        )
19270                        .map(Self::AVSMetadataURIUpdated)
19271                }
19272                Some(<AVSRegistrarSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
19273                    <AVSRegistrarSet as alloy_sol_types::SolEvent>::decode_raw_log(
19274                            topics,
19275                            data,
19276                        )
19277                        .map(Self::AVSRegistrarSet)
19278                }
19279                Some(
19280                    <AllocationDelaySet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19281                ) => {
19282                    <AllocationDelaySet as alloy_sol_types::SolEvent>::decode_raw_log(
19283                            topics,
19284                            data,
19285                        )
19286                        .map(Self::AllocationDelaySet)
19287                }
19288                Some(
19289                    <AllocationUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19290                ) => {
19291                    <AllocationUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
19292                            topics,
19293                            data,
19294                        )
19295                        .map(Self::AllocationUpdated)
19296                }
19297                Some(
19298                    <EncumberedMagnitudeUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19299                ) => {
19300                    <EncumberedMagnitudeUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
19301                            topics,
19302                            data,
19303                        )
19304                        .map(Self::EncumberedMagnitudeUpdated)
19305                }
19306                Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
19307                    <Initialized as alloy_sol_types::SolEvent>::decode_raw_log(
19308                            topics,
19309                            data,
19310                        )
19311                        .map(Self::Initialized)
19312                }
19313                Some(
19314                    <MaxMagnitudeUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19315                ) => {
19316                    <MaxMagnitudeUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
19317                            topics,
19318                            data,
19319                        )
19320                        .map(Self::MaxMagnitudeUpdated)
19321                }
19322                Some(
19323                    <OperatorAddedToOperatorSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19324                ) => {
19325                    <OperatorAddedToOperatorSet as alloy_sol_types::SolEvent>::decode_raw_log(
19326                            topics,
19327                            data,
19328                        )
19329                        .map(Self::OperatorAddedToOperatorSet)
19330                }
19331                Some(
19332                    <OperatorRemovedFromOperatorSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19333                ) => {
19334                    <OperatorRemovedFromOperatorSet as alloy_sol_types::SolEvent>::decode_raw_log(
19335                            topics,
19336                            data,
19337                        )
19338                        .map(Self::OperatorRemovedFromOperatorSet)
19339                }
19340                Some(
19341                    <OperatorSetCreated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19342                ) => {
19343                    <OperatorSetCreated as alloy_sol_types::SolEvent>::decode_raw_log(
19344                            topics,
19345                            data,
19346                        )
19347                        .map(Self::OperatorSetCreated)
19348                }
19349                Some(<OperatorSlashed as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
19350                    <OperatorSlashed as alloy_sol_types::SolEvent>::decode_raw_log(
19351                            topics,
19352                            data,
19353                        )
19354                        .map(Self::OperatorSlashed)
19355                }
19356                Some(
19357                    <OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19358                ) => {
19359                    <OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
19360                            topics,
19361                            data,
19362                        )
19363                        .map(Self::OwnershipTransferred)
19364                }
19365                Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
19366                    <Paused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
19367                        .map(Self::Paused)
19368                }
19369                Some(
19370                    <StrategyAddedToOperatorSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19371                ) => {
19372                    <StrategyAddedToOperatorSet as alloy_sol_types::SolEvent>::decode_raw_log(
19373                            topics,
19374                            data,
19375                        )
19376                        .map(Self::StrategyAddedToOperatorSet)
19377                }
19378                Some(
19379                    <StrategyRemovedFromOperatorSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
19380                ) => {
19381                    <StrategyRemovedFromOperatorSet as alloy_sol_types::SolEvent>::decode_raw_log(
19382                            topics,
19383                            data,
19384                        )
19385                        .map(Self::StrategyRemovedFromOperatorSet)
19386                }
19387                Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
19388                    <Unpaused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
19389                        .map(Self::Unpaused)
19390                }
19391                _ => {
19392                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
19393                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
19394                        log: alloy_sol_types::private::Box::new(
19395                            alloy_sol_types::private::LogData::new_unchecked(
19396                                topics.to_vec(),
19397                                data.to_vec().into(),
19398                            ),
19399                        ),
19400                    })
19401                }
19402            }
19403        }
19404    }
19405    #[automatically_derived]
19406    impl alloy_sol_types::private::IntoLogData for AllocationManagerEvents {
19407        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
19408            match self {
19409                Self::AVSMetadataURIUpdated(inner) => {
19410                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19411                }
19412                Self::AVSRegistrarSet(inner) => {
19413                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19414                }
19415                Self::AllocationDelaySet(inner) => {
19416                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19417                }
19418                Self::AllocationUpdated(inner) => {
19419                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19420                }
19421                Self::EncumberedMagnitudeUpdated(inner) => {
19422                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19423                }
19424                Self::Initialized(inner) => {
19425                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19426                }
19427                Self::MaxMagnitudeUpdated(inner) => {
19428                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19429                }
19430                Self::OperatorAddedToOperatorSet(inner) => {
19431                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19432                }
19433                Self::OperatorRemovedFromOperatorSet(inner) => {
19434                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19435                }
19436                Self::OperatorSetCreated(inner) => {
19437                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19438                }
19439                Self::OperatorSlashed(inner) => {
19440                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19441                }
19442                Self::OwnershipTransferred(inner) => {
19443                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19444                }
19445                Self::Paused(inner) => {
19446                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19447                }
19448                Self::StrategyAddedToOperatorSet(inner) => {
19449                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19450                }
19451                Self::StrategyRemovedFromOperatorSet(inner) => {
19452                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19453                }
19454                Self::Unpaused(inner) => {
19455                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
19456                }
19457            }
19458        }
19459        fn into_log_data(self) -> alloy_sol_types::private::LogData {
19460            match self {
19461                Self::AVSMetadataURIUpdated(inner) => {
19462                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19463                }
19464                Self::AVSRegistrarSet(inner) => {
19465                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19466                }
19467                Self::AllocationDelaySet(inner) => {
19468                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19469                }
19470                Self::AllocationUpdated(inner) => {
19471                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19472                }
19473                Self::EncumberedMagnitudeUpdated(inner) => {
19474                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19475                }
19476                Self::Initialized(inner) => {
19477                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19478                }
19479                Self::MaxMagnitudeUpdated(inner) => {
19480                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19481                }
19482                Self::OperatorAddedToOperatorSet(inner) => {
19483                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19484                }
19485                Self::OperatorRemovedFromOperatorSet(inner) => {
19486                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19487                }
19488                Self::OperatorSetCreated(inner) => {
19489                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19490                }
19491                Self::OperatorSlashed(inner) => {
19492                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19493                }
19494                Self::OwnershipTransferred(inner) => {
19495                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19496                }
19497                Self::Paused(inner) => {
19498                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19499                }
19500                Self::StrategyAddedToOperatorSet(inner) => {
19501                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19502                }
19503                Self::StrategyRemovedFromOperatorSet(inner) => {
19504                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19505                }
19506                Self::Unpaused(inner) => {
19507                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
19508                }
19509            }
19510        }
19511    }
19512    use alloy::contract as alloy_contract;
19513    /**Creates a new wrapper around an on-chain [`AllocationManager`](self) contract instance.
19514
19515See the [wrapper's documentation](`AllocationManagerInstance`) for more details.*/
19516    #[inline]
19517    pub const fn new<
19518        P: alloy_contract::private::Provider<N>,
19519        N: alloy_contract::private::Network,
19520    >(
19521        address: alloy_sol_types::private::Address,
19522        provider: P,
19523    ) -> AllocationManagerInstance<P, N> {
19524        AllocationManagerInstance::<P, N>::new(address, provider)
19525    }
19526    /**Deploys this contract using the given `provider` and constructor arguments, if any.
19527
19528Returns a new instance of the contract, if the deployment was successful.
19529
19530For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
19531    #[inline]
19532    pub fn deploy<
19533        P: alloy_contract::private::Provider<N>,
19534        N: alloy_contract::private::Network,
19535    >(
19536        provider: P,
19537        _delegation: alloy::sol_types::private::Address,
19538        _pauserRegistry: alloy::sol_types::private::Address,
19539        _permissionController: alloy::sol_types::private::Address,
19540        _DEALLOCATION_DELAY: u32,
19541        _ALLOCATION_CONFIGURATION_DELAY: u32,
19542        _version: alloy::sol_types::private::String,
19543    ) -> impl ::core::future::Future<
19544        Output = alloy_contract::Result<AllocationManagerInstance<P, N>>,
19545    > {
19546        AllocationManagerInstance::<
19547            P,
19548            N,
19549        >::deploy(
19550            provider,
19551            _delegation,
19552            _pauserRegistry,
19553            _permissionController,
19554            _DEALLOCATION_DELAY,
19555            _ALLOCATION_CONFIGURATION_DELAY,
19556            _version,
19557        )
19558    }
19559    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
19560and constructor arguments, if any.
19561
19562This is a simple wrapper around creating a `RawCallBuilder` with the data set to
19563the bytecode concatenated with the constructor's ABI-encoded arguments.*/
19564    #[inline]
19565    pub fn deploy_builder<
19566        P: alloy_contract::private::Provider<N>,
19567        N: alloy_contract::private::Network,
19568    >(
19569        provider: P,
19570        _delegation: alloy::sol_types::private::Address,
19571        _pauserRegistry: alloy::sol_types::private::Address,
19572        _permissionController: alloy::sol_types::private::Address,
19573        _DEALLOCATION_DELAY: u32,
19574        _ALLOCATION_CONFIGURATION_DELAY: u32,
19575        _version: alloy::sol_types::private::String,
19576    ) -> alloy_contract::RawCallBuilder<P, N> {
19577        AllocationManagerInstance::<
19578            P,
19579            N,
19580        >::deploy_builder(
19581            provider,
19582            _delegation,
19583            _pauserRegistry,
19584            _permissionController,
19585            _DEALLOCATION_DELAY,
19586            _ALLOCATION_CONFIGURATION_DELAY,
19587            _version,
19588        )
19589    }
19590    /**A [`AllocationManager`](self) instance.
19591
19592Contains type-safe methods for interacting with an on-chain instance of the
19593[`AllocationManager`](self) contract located at a given `address`, using a given
19594provider `P`.
19595
19596If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
19597documentation on how to provide it), the `deploy` and `deploy_builder` methods can
19598be used to deploy a new instance of the contract.
19599
19600See the [module-level documentation](self) for all the available methods.*/
19601    #[derive(Clone)]
19602    pub struct AllocationManagerInstance<P, N = alloy_contract::private::Ethereum> {
19603        address: alloy_sol_types::private::Address,
19604        provider: P,
19605        _network: ::core::marker::PhantomData<N>,
19606    }
19607    #[automatically_derived]
19608    impl<P, N> ::core::fmt::Debug for AllocationManagerInstance<P, N> {
19609        #[inline]
19610        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
19611            f.debug_tuple("AllocationManagerInstance").field(&self.address).finish()
19612        }
19613    }
19614    /// Instantiation and getters/setters.
19615    #[automatically_derived]
19616    impl<
19617        P: alloy_contract::private::Provider<N>,
19618        N: alloy_contract::private::Network,
19619    > AllocationManagerInstance<P, N> {
19620        /**Creates a new wrapper around an on-chain [`AllocationManager`](self) contract instance.
19621
19622See the [wrapper's documentation](`AllocationManagerInstance`) for more details.*/
19623        #[inline]
19624        pub const fn new(
19625            address: alloy_sol_types::private::Address,
19626            provider: P,
19627        ) -> Self {
19628            Self {
19629                address,
19630                provider,
19631                _network: ::core::marker::PhantomData,
19632            }
19633        }
19634        /**Deploys this contract using the given `provider` and constructor arguments, if any.
19635
19636Returns a new instance of the contract, if the deployment was successful.
19637
19638For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
19639        #[inline]
19640        pub async fn deploy(
19641            provider: P,
19642            _delegation: alloy::sol_types::private::Address,
19643            _pauserRegistry: alloy::sol_types::private::Address,
19644            _permissionController: alloy::sol_types::private::Address,
19645            _DEALLOCATION_DELAY: u32,
19646            _ALLOCATION_CONFIGURATION_DELAY: u32,
19647            _version: alloy::sol_types::private::String,
19648        ) -> alloy_contract::Result<AllocationManagerInstance<P, N>> {
19649            let call_builder = Self::deploy_builder(
19650                provider,
19651                _delegation,
19652                _pauserRegistry,
19653                _permissionController,
19654                _DEALLOCATION_DELAY,
19655                _ALLOCATION_CONFIGURATION_DELAY,
19656                _version,
19657            );
19658            let contract_address = call_builder.deploy().await?;
19659            Ok(Self::new(contract_address, call_builder.provider))
19660        }
19661        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
19662and constructor arguments, if any.
19663
19664This is a simple wrapper around creating a `RawCallBuilder` with the data set to
19665the bytecode concatenated with the constructor's ABI-encoded arguments.*/
19666        #[inline]
19667        pub fn deploy_builder(
19668            provider: P,
19669            _delegation: alloy::sol_types::private::Address,
19670            _pauserRegistry: alloy::sol_types::private::Address,
19671            _permissionController: alloy::sol_types::private::Address,
19672            _DEALLOCATION_DELAY: u32,
19673            _ALLOCATION_CONFIGURATION_DELAY: u32,
19674            _version: alloy::sol_types::private::String,
19675        ) -> alloy_contract::RawCallBuilder<P, N> {
19676            alloy_contract::RawCallBuilder::new_raw_deploy(
19677                provider,
19678                [
19679                    &BYTECODE[..],
19680                    &alloy_sol_types::SolConstructor::abi_encode(
19681                        &constructorCall {
19682                            _delegation,
19683                            _pauserRegistry,
19684                            _permissionController,
19685                            _DEALLOCATION_DELAY,
19686                            _ALLOCATION_CONFIGURATION_DELAY,
19687                            _version,
19688                        },
19689                    )[..],
19690                ]
19691                    .concat()
19692                    .into(),
19693            )
19694        }
19695        /// Returns a reference to the address.
19696        #[inline]
19697        pub const fn address(&self) -> &alloy_sol_types::private::Address {
19698            &self.address
19699        }
19700        /// Sets the address.
19701        #[inline]
19702        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
19703            self.address = address;
19704        }
19705        /// Sets the address and returns `self`.
19706        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
19707            self.set_address(address);
19708            self
19709        }
19710        /// Returns a reference to the provider.
19711        #[inline]
19712        pub const fn provider(&self) -> &P {
19713            &self.provider
19714        }
19715    }
19716    impl<P: ::core::clone::Clone, N> AllocationManagerInstance<&P, N> {
19717        /// Clones the provider and returns a new instance with the cloned provider.
19718        #[inline]
19719        pub fn with_cloned_provider(self) -> AllocationManagerInstance<P, N> {
19720            AllocationManagerInstance {
19721                address: self.address,
19722                provider: ::core::clone::Clone::clone(&self.provider),
19723                _network: ::core::marker::PhantomData,
19724            }
19725        }
19726    }
19727    /// Function calls.
19728    #[automatically_derived]
19729    impl<
19730        P: alloy_contract::private::Provider<N>,
19731        N: alloy_contract::private::Network,
19732    > AllocationManagerInstance<P, N> {
19733        /// Creates a new call builder using this contract instance's provider and address.
19734        ///
19735        /// Note that the call can be any function call, not just those defined in this
19736        /// contract. Prefer using the other methods for building type-safe contract calls.
19737        pub fn call_builder<C: alloy_sol_types::SolCall>(
19738            &self,
19739            call: &C,
19740        ) -> alloy_contract::SolCallBuilder<&P, C, N> {
19741            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
19742        }
19743        ///Creates a new call builder for the [`ALLOCATION_CONFIGURATION_DELAY`] function.
19744        pub fn ALLOCATION_CONFIGURATION_DELAY(
19745            &self,
19746        ) -> alloy_contract::SolCallBuilder<&P, ALLOCATION_CONFIGURATION_DELAYCall, N> {
19747            self.call_builder(&ALLOCATION_CONFIGURATION_DELAYCall)
19748        }
19749        ///Creates a new call builder for the [`DEALLOCATION_DELAY`] function.
19750        pub fn DEALLOCATION_DELAY(
19751            &self,
19752        ) -> alloy_contract::SolCallBuilder<&P, DEALLOCATION_DELAYCall, N> {
19753            self.call_builder(&DEALLOCATION_DELAYCall)
19754        }
19755        ///Creates a new call builder for the [`addStrategiesToOperatorSet`] function.
19756        pub fn addStrategiesToOperatorSet(
19757            &self,
19758            avs: alloy::sol_types::private::Address,
19759            operatorSetId: u32,
19760            strategies: alloy::sol_types::private::Vec<
19761                alloy::sol_types::private::Address,
19762            >,
19763        ) -> alloy_contract::SolCallBuilder<&P, addStrategiesToOperatorSetCall, N> {
19764            self.call_builder(
19765                &addStrategiesToOperatorSetCall {
19766                    avs,
19767                    operatorSetId,
19768                    strategies,
19769                },
19770            )
19771        }
19772        ///Creates a new call builder for the [`clearDeallocationQueue`] function.
19773        pub fn clearDeallocationQueue(
19774            &self,
19775            operator: alloy::sol_types::private::Address,
19776            strategies: alloy::sol_types::private::Vec<
19777                alloy::sol_types::private::Address,
19778            >,
19779            numToClear: alloy::sol_types::private::Vec<u16>,
19780        ) -> alloy_contract::SolCallBuilder<&P, clearDeallocationQueueCall, N> {
19781            self.call_builder(
19782                &clearDeallocationQueueCall {
19783                    operator,
19784                    strategies,
19785                    numToClear,
19786                },
19787            )
19788        }
19789        ///Creates a new call builder for the [`createOperatorSets`] function.
19790        pub fn createOperatorSets(
19791            &self,
19792            avs: alloy::sol_types::private::Address,
19793            params: alloy::sol_types::private::Vec<
19794                <IAllocationManagerTypes::CreateSetParams as alloy::sol_types::SolType>::RustType,
19795            >,
19796        ) -> alloy_contract::SolCallBuilder<&P, createOperatorSetsCall, N> {
19797            self.call_builder(
19798                &createOperatorSetsCall {
19799                    avs,
19800                    params,
19801                },
19802            )
19803        }
19804        ///Creates a new call builder for the [`delegation`] function.
19805        pub fn delegation(
19806            &self,
19807        ) -> alloy_contract::SolCallBuilder<&P, delegationCall, N> {
19808            self.call_builder(&delegationCall)
19809        }
19810        ///Creates a new call builder for the [`deregisterFromOperatorSets`] function.
19811        pub fn deregisterFromOperatorSets(
19812            &self,
19813            params: <IAllocationManagerTypes::DeregisterParams as alloy::sol_types::SolType>::RustType,
19814        ) -> alloy_contract::SolCallBuilder<&P, deregisterFromOperatorSetsCall, N> {
19815            self.call_builder(
19816                &deregisterFromOperatorSetsCall {
19817                    params,
19818                },
19819            )
19820        }
19821        ///Creates a new call builder for the [`getAVSRegistrar`] function.
19822        pub fn getAVSRegistrar(
19823            &self,
19824            avs: alloy::sol_types::private::Address,
19825        ) -> alloy_contract::SolCallBuilder<&P, getAVSRegistrarCall, N> {
19826            self.call_builder(&getAVSRegistrarCall { avs })
19827        }
19828        ///Creates a new call builder for the [`getAllocatableMagnitude`] function.
19829        pub fn getAllocatableMagnitude(
19830            &self,
19831            operator: alloy::sol_types::private::Address,
19832            strategy: alloy::sol_types::private::Address,
19833        ) -> alloy_contract::SolCallBuilder<&P, getAllocatableMagnitudeCall, N> {
19834            self.call_builder(
19835                &getAllocatableMagnitudeCall {
19836                    operator,
19837                    strategy,
19838                },
19839            )
19840        }
19841        ///Creates a new call builder for the [`getAllocatedSets`] function.
19842        pub fn getAllocatedSets(
19843            &self,
19844            operator: alloy::sol_types::private::Address,
19845        ) -> alloy_contract::SolCallBuilder<&P, getAllocatedSetsCall, N> {
19846            self.call_builder(&getAllocatedSetsCall { operator })
19847        }
19848        ///Creates a new call builder for the [`getAllocatedStake`] function.
19849        pub fn getAllocatedStake(
19850            &self,
19851            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
19852            operators: alloy::sol_types::private::Vec<
19853                alloy::sol_types::private::Address,
19854            >,
19855            strategies: alloy::sol_types::private::Vec<
19856                alloy::sol_types::private::Address,
19857            >,
19858        ) -> alloy_contract::SolCallBuilder<&P, getAllocatedStakeCall, N> {
19859            self.call_builder(
19860                &getAllocatedStakeCall {
19861                    operatorSet,
19862                    operators,
19863                    strategies,
19864                },
19865            )
19866        }
19867        ///Creates a new call builder for the [`getAllocatedStrategies`] function.
19868        pub fn getAllocatedStrategies(
19869            &self,
19870            operator: alloy::sol_types::private::Address,
19871            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
19872        ) -> alloy_contract::SolCallBuilder<&P, getAllocatedStrategiesCall, N> {
19873            self.call_builder(
19874                &getAllocatedStrategiesCall {
19875                    operator,
19876                    operatorSet,
19877                },
19878            )
19879        }
19880        ///Creates a new call builder for the [`getAllocation`] function.
19881        pub fn getAllocation(
19882            &self,
19883            operator: alloy::sol_types::private::Address,
19884            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
19885            strategy: alloy::sol_types::private::Address,
19886        ) -> alloy_contract::SolCallBuilder<&P, getAllocationCall, N> {
19887            self.call_builder(
19888                &getAllocationCall {
19889                    operator,
19890                    operatorSet,
19891                    strategy,
19892                },
19893            )
19894        }
19895        ///Creates a new call builder for the [`getAllocationDelay`] function.
19896        pub fn getAllocationDelay(
19897            &self,
19898            operator: alloy::sol_types::private::Address,
19899        ) -> alloy_contract::SolCallBuilder<&P, getAllocationDelayCall, N> {
19900            self.call_builder(&getAllocationDelayCall { operator })
19901        }
19902        ///Creates a new call builder for the [`getAllocations`] function.
19903        pub fn getAllocations(
19904            &self,
19905            operators: alloy::sol_types::private::Vec<
19906                alloy::sol_types::private::Address,
19907            >,
19908            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
19909            strategy: alloy::sol_types::private::Address,
19910        ) -> alloy_contract::SolCallBuilder<&P, getAllocationsCall, N> {
19911            self.call_builder(
19912                &getAllocationsCall {
19913                    operators,
19914                    operatorSet,
19915                    strategy,
19916                },
19917            )
19918        }
19919        ///Creates a new call builder for the [`getEncumberedMagnitude`] function.
19920        pub fn getEncumberedMagnitude(
19921            &self,
19922            operator: alloy::sol_types::private::Address,
19923            strategy: alloy::sol_types::private::Address,
19924        ) -> alloy_contract::SolCallBuilder<&P, getEncumberedMagnitudeCall, N> {
19925            self.call_builder(
19926                &getEncumberedMagnitudeCall {
19927                    operator,
19928                    strategy,
19929                },
19930            )
19931        }
19932        ///Creates a new call builder for the [`getMaxMagnitude`] function.
19933        pub fn getMaxMagnitude(
19934            &self,
19935            operator: alloy::sol_types::private::Address,
19936            strategy: alloy::sol_types::private::Address,
19937        ) -> alloy_contract::SolCallBuilder<&P, getMaxMagnitudeCall, N> {
19938            self.call_builder(
19939                &getMaxMagnitudeCall {
19940                    operator,
19941                    strategy,
19942                },
19943            )
19944        }
19945        ///Creates a new call builder for the [`getMaxMagnitudes_0`] function.
19946        pub fn getMaxMagnitudes_0(
19947            &self,
19948            operators: alloy::sol_types::private::Vec<
19949                alloy::sol_types::private::Address,
19950            >,
19951            strategy: alloy::sol_types::private::Address,
19952        ) -> alloy_contract::SolCallBuilder<&P, getMaxMagnitudes_0Call, N> {
19953            self.call_builder(
19954                &getMaxMagnitudes_0Call {
19955                    operators,
19956                    strategy,
19957                },
19958            )
19959        }
19960        ///Creates a new call builder for the [`getMaxMagnitudes_1`] function.
19961        pub fn getMaxMagnitudes_1(
19962            &self,
19963            operator: alloy::sol_types::private::Address,
19964            strategies: alloy::sol_types::private::Vec<
19965                alloy::sol_types::private::Address,
19966            >,
19967        ) -> alloy_contract::SolCallBuilder<&P, getMaxMagnitudes_1Call, N> {
19968            self.call_builder(
19969                &getMaxMagnitudes_1Call {
19970                    operator,
19971                    strategies,
19972                },
19973            )
19974        }
19975        ///Creates a new call builder for the [`getMaxMagnitudesAtBlock`] function.
19976        pub fn getMaxMagnitudesAtBlock(
19977            &self,
19978            operator: alloy::sol_types::private::Address,
19979            strategies: alloy::sol_types::private::Vec<
19980                alloy::sol_types::private::Address,
19981            >,
19982            blockNumber: u32,
19983        ) -> alloy_contract::SolCallBuilder<&P, getMaxMagnitudesAtBlockCall, N> {
19984            self.call_builder(
19985                &getMaxMagnitudesAtBlockCall {
19986                    operator,
19987                    strategies,
19988                    blockNumber,
19989                },
19990            )
19991        }
19992        ///Creates a new call builder for the [`getMemberCount`] function.
19993        pub fn getMemberCount(
19994            &self,
19995            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
19996        ) -> alloy_contract::SolCallBuilder<&P, getMemberCountCall, N> {
19997            self.call_builder(&getMemberCountCall { operatorSet })
19998        }
19999        ///Creates a new call builder for the [`getMembers`] function.
20000        pub fn getMembers(
20001            &self,
20002            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
20003        ) -> alloy_contract::SolCallBuilder<&P, getMembersCall, N> {
20004            self.call_builder(&getMembersCall { operatorSet })
20005        }
20006        ///Creates a new call builder for the [`getMinimumSlashableStake`] function.
20007        pub fn getMinimumSlashableStake(
20008            &self,
20009            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
20010            operators: alloy::sol_types::private::Vec<
20011                alloy::sol_types::private::Address,
20012            >,
20013            strategies: alloy::sol_types::private::Vec<
20014                alloy::sol_types::private::Address,
20015            >,
20016            futureBlock: u32,
20017        ) -> alloy_contract::SolCallBuilder<&P, getMinimumSlashableStakeCall, N> {
20018            self.call_builder(
20019                &getMinimumSlashableStakeCall {
20020                    operatorSet,
20021                    operators,
20022                    strategies,
20023                    futureBlock,
20024                },
20025            )
20026        }
20027        ///Creates a new call builder for the [`getOperatorSetCount`] function.
20028        pub fn getOperatorSetCount(
20029            &self,
20030            avs: alloy::sol_types::private::Address,
20031        ) -> alloy_contract::SolCallBuilder<&P, getOperatorSetCountCall, N> {
20032            self.call_builder(&getOperatorSetCountCall { avs })
20033        }
20034        ///Creates a new call builder for the [`getRegisteredSets`] function.
20035        pub fn getRegisteredSets(
20036            &self,
20037            operator: alloy::sol_types::private::Address,
20038        ) -> alloy_contract::SolCallBuilder<&P, getRegisteredSetsCall, N> {
20039            self.call_builder(&getRegisteredSetsCall { operator })
20040        }
20041        ///Creates a new call builder for the [`getStrategiesInOperatorSet`] function.
20042        pub fn getStrategiesInOperatorSet(
20043            &self,
20044            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
20045        ) -> alloy_contract::SolCallBuilder<&P, getStrategiesInOperatorSetCall, N> {
20046            self.call_builder(
20047                &getStrategiesInOperatorSetCall {
20048                    operatorSet,
20049                },
20050            )
20051        }
20052        ///Creates a new call builder for the [`getStrategyAllocations`] function.
20053        pub fn getStrategyAllocations(
20054            &self,
20055            operator: alloy::sol_types::private::Address,
20056            strategy: alloy::sol_types::private::Address,
20057        ) -> alloy_contract::SolCallBuilder<&P, getStrategyAllocationsCall, N> {
20058            self.call_builder(
20059                &getStrategyAllocationsCall {
20060                    operator,
20061                    strategy,
20062                },
20063            )
20064        }
20065        ///Creates a new call builder for the [`initialize`] function.
20066        pub fn initialize(
20067            &self,
20068            initialOwner: alloy::sol_types::private::Address,
20069            initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
20070        ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> {
20071            self.call_builder(
20072                &initializeCall {
20073                    initialOwner,
20074                    initialPausedStatus,
20075                },
20076            )
20077        }
20078        ///Creates a new call builder for the [`isMemberOfOperatorSet`] function.
20079        pub fn isMemberOfOperatorSet(
20080            &self,
20081            operator: alloy::sol_types::private::Address,
20082            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
20083        ) -> alloy_contract::SolCallBuilder<&P, isMemberOfOperatorSetCall, N> {
20084            self.call_builder(
20085                &isMemberOfOperatorSetCall {
20086                    operator,
20087                    operatorSet,
20088                },
20089            )
20090        }
20091        ///Creates a new call builder for the [`isOperatorSet`] function.
20092        pub fn isOperatorSet(
20093            &self,
20094            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
20095        ) -> alloy_contract::SolCallBuilder<&P, isOperatorSetCall, N> {
20096            self.call_builder(&isOperatorSetCall { operatorSet })
20097        }
20098        ///Creates a new call builder for the [`isOperatorSlashable`] function.
20099        pub fn isOperatorSlashable(
20100            &self,
20101            operator: alloy::sol_types::private::Address,
20102            operatorSet: <OperatorSet as alloy::sol_types::SolType>::RustType,
20103        ) -> alloy_contract::SolCallBuilder<&P, isOperatorSlashableCall, N> {
20104            self.call_builder(
20105                &isOperatorSlashableCall {
20106                    operator,
20107                    operatorSet,
20108                },
20109            )
20110        }
20111        ///Creates a new call builder for the [`modifyAllocations`] function.
20112        pub fn modifyAllocations(
20113            &self,
20114            operator: alloy::sol_types::private::Address,
20115            params: alloy::sol_types::private::Vec<
20116                <IAllocationManagerTypes::AllocateParams as alloy::sol_types::SolType>::RustType,
20117            >,
20118        ) -> alloy_contract::SolCallBuilder<&P, modifyAllocationsCall, N> {
20119            self.call_builder(
20120                &modifyAllocationsCall {
20121                    operator,
20122                    params,
20123                },
20124            )
20125        }
20126        ///Creates a new call builder for the [`owner`] function.
20127        pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> {
20128            self.call_builder(&ownerCall)
20129        }
20130        ///Creates a new call builder for the [`pause`] function.
20131        pub fn pause(
20132            &self,
20133            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
20134        ) -> alloy_contract::SolCallBuilder<&P, pauseCall, N> {
20135            self.call_builder(&pauseCall { newPausedStatus })
20136        }
20137        ///Creates a new call builder for the [`pauseAll`] function.
20138        pub fn pauseAll(&self) -> alloy_contract::SolCallBuilder<&P, pauseAllCall, N> {
20139            self.call_builder(&pauseAllCall)
20140        }
20141        ///Creates a new call builder for the [`paused_0`] function.
20142        pub fn paused_0(
20143            &self,
20144            index: u8,
20145        ) -> alloy_contract::SolCallBuilder<&P, paused_0Call, N> {
20146            self.call_builder(&paused_0Call { index })
20147        }
20148        ///Creates a new call builder for the [`paused_1`] function.
20149        pub fn paused_1(&self) -> alloy_contract::SolCallBuilder<&P, paused_1Call, N> {
20150            self.call_builder(&paused_1Call)
20151        }
20152        ///Creates a new call builder for the [`pauserRegistry`] function.
20153        pub fn pauserRegistry(
20154            &self,
20155        ) -> alloy_contract::SolCallBuilder<&P, pauserRegistryCall, N> {
20156            self.call_builder(&pauserRegistryCall)
20157        }
20158        ///Creates a new call builder for the [`permissionController`] function.
20159        pub fn permissionController(
20160            &self,
20161        ) -> alloy_contract::SolCallBuilder<&P, permissionControllerCall, N> {
20162            self.call_builder(&permissionControllerCall)
20163        }
20164        ///Creates a new call builder for the [`registerForOperatorSets`] function.
20165        pub fn registerForOperatorSets(
20166            &self,
20167            operator: alloy::sol_types::private::Address,
20168            params: <IAllocationManagerTypes::RegisterParams as alloy::sol_types::SolType>::RustType,
20169        ) -> alloy_contract::SolCallBuilder<&P, registerForOperatorSetsCall, N> {
20170            self.call_builder(
20171                &registerForOperatorSetsCall {
20172                    operator,
20173                    params,
20174                },
20175            )
20176        }
20177        ///Creates a new call builder for the [`removeStrategiesFromOperatorSet`] function.
20178        pub fn removeStrategiesFromOperatorSet(
20179            &self,
20180            avs: alloy::sol_types::private::Address,
20181            operatorSetId: u32,
20182            strategies: alloy::sol_types::private::Vec<
20183                alloy::sol_types::private::Address,
20184            >,
20185        ) -> alloy_contract::SolCallBuilder<&P, removeStrategiesFromOperatorSetCall, N> {
20186            self.call_builder(
20187                &removeStrategiesFromOperatorSetCall {
20188                    avs,
20189                    operatorSetId,
20190                    strategies,
20191                },
20192            )
20193        }
20194        ///Creates a new call builder for the [`renounceOwnership`] function.
20195        pub fn renounceOwnership(
20196            &self,
20197        ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> {
20198            self.call_builder(&renounceOwnershipCall)
20199        }
20200        ///Creates a new call builder for the [`setAVSRegistrar`] function.
20201        pub fn setAVSRegistrar(
20202            &self,
20203            avs: alloy::sol_types::private::Address,
20204            registrar: alloy::sol_types::private::Address,
20205        ) -> alloy_contract::SolCallBuilder<&P, setAVSRegistrarCall, N> {
20206            self.call_builder(
20207                &setAVSRegistrarCall {
20208                    avs,
20209                    registrar,
20210                },
20211            )
20212        }
20213        ///Creates a new call builder for the [`setAllocationDelay`] function.
20214        pub fn setAllocationDelay(
20215            &self,
20216            operator: alloy::sol_types::private::Address,
20217            delay: u32,
20218        ) -> alloy_contract::SolCallBuilder<&P, setAllocationDelayCall, N> {
20219            self.call_builder(
20220                &setAllocationDelayCall {
20221                    operator,
20222                    delay,
20223                },
20224            )
20225        }
20226        ///Creates a new call builder for the [`slashOperator`] function.
20227        pub fn slashOperator(
20228            &self,
20229            avs: alloy::sol_types::private::Address,
20230            params: <IAllocationManagerTypes::SlashingParams as alloy::sol_types::SolType>::RustType,
20231        ) -> alloy_contract::SolCallBuilder<&P, slashOperatorCall, N> {
20232            self.call_builder(&slashOperatorCall { avs, params })
20233        }
20234        ///Creates a new call builder for the [`transferOwnership`] function.
20235        pub fn transferOwnership(
20236            &self,
20237            newOwner: alloy::sol_types::private::Address,
20238        ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> {
20239            self.call_builder(&transferOwnershipCall { newOwner })
20240        }
20241        ///Creates a new call builder for the [`unpause`] function.
20242        pub fn unpause(
20243            &self,
20244            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
20245        ) -> alloy_contract::SolCallBuilder<&P, unpauseCall, N> {
20246            self.call_builder(&unpauseCall { newPausedStatus })
20247        }
20248        ///Creates a new call builder for the [`updateAVSMetadataURI`] function.
20249        pub fn updateAVSMetadataURI(
20250            &self,
20251            avs: alloy::sol_types::private::Address,
20252            metadataURI: alloy::sol_types::private::String,
20253        ) -> alloy_contract::SolCallBuilder<&P, updateAVSMetadataURICall, N> {
20254            self.call_builder(
20255                &updateAVSMetadataURICall {
20256                    avs,
20257                    metadataURI,
20258                },
20259            )
20260        }
20261        ///Creates a new call builder for the [`version`] function.
20262        pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> {
20263            self.call_builder(&versionCall)
20264        }
20265    }
20266    /// Event filters.
20267    #[automatically_derived]
20268    impl<
20269        P: alloy_contract::private::Provider<N>,
20270        N: alloy_contract::private::Network,
20271    > AllocationManagerInstance<P, N> {
20272        /// Creates a new event filter using this contract instance's provider and address.
20273        ///
20274        /// Note that the type can be any event, not just those defined in this contract.
20275        /// Prefer using the other methods for building type-safe event filters.
20276        pub fn event_filter<E: alloy_sol_types::SolEvent>(
20277            &self,
20278        ) -> alloy_contract::Event<&P, E, N> {
20279            alloy_contract::Event::new_sol(&self.provider, &self.address)
20280        }
20281        ///Creates a new event filter for the [`AVSMetadataURIUpdated`] event.
20282        pub fn AVSMetadataURIUpdated_filter(
20283            &self,
20284        ) -> alloy_contract::Event<&P, AVSMetadataURIUpdated, N> {
20285            self.event_filter::<AVSMetadataURIUpdated>()
20286        }
20287        ///Creates a new event filter for the [`AVSRegistrarSet`] event.
20288        pub fn AVSRegistrarSet_filter(
20289            &self,
20290        ) -> alloy_contract::Event<&P, AVSRegistrarSet, N> {
20291            self.event_filter::<AVSRegistrarSet>()
20292        }
20293        ///Creates a new event filter for the [`AllocationDelaySet`] event.
20294        pub fn AllocationDelaySet_filter(
20295            &self,
20296        ) -> alloy_contract::Event<&P, AllocationDelaySet, N> {
20297            self.event_filter::<AllocationDelaySet>()
20298        }
20299        ///Creates a new event filter for the [`AllocationUpdated`] event.
20300        pub fn AllocationUpdated_filter(
20301            &self,
20302        ) -> alloy_contract::Event<&P, AllocationUpdated, N> {
20303            self.event_filter::<AllocationUpdated>()
20304        }
20305        ///Creates a new event filter for the [`EncumberedMagnitudeUpdated`] event.
20306        pub fn EncumberedMagnitudeUpdated_filter(
20307            &self,
20308        ) -> alloy_contract::Event<&P, EncumberedMagnitudeUpdated, N> {
20309            self.event_filter::<EncumberedMagnitudeUpdated>()
20310        }
20311        ///Creates a new event filter for the [`Initialized`] event.
20312        pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> {
20313            self.event_filter::<Initialized>()
20314        }
20315        ///Creates a new event filter for the [`MaxMagnitudeUpdated`] event.
20316        pub fn MaxMagnitudeUpdated_filter(
20317            &self,
20318        ) -> alloy_contract::Event<&P, MaxMagnitudeUpdated, N> {
20319            self.event_filter::<MaxMagnitudeUpdated>()
20320        }
20321        ///Creates a new event filter for the [`OperatorAddedToOperatorSet`] event.
20322        pub fn OperatorAddedToOperatorSet_filter(
20323            &self,
20324        ) -> alloy_contract::Event<&P, OperatorAddedToOperatorSet, N> {
20325            self.event_filter::<OperatorAddedToOperatorSet>()
20326        }
20327        ///Creates a new event filter for the [`OperatorRemovedFromOperatorSet`] event.
20328        pub fn OperatorRemovedFromOperatorSet_filter(
20329            &self,
20330        ) -> alloy_contract::Event<&P, OperatorRemovedFromOperatorSet, N> {
20331            self.event_filter::<OperatorRemovedFromOperatorSet>()
20332        }
20333        ///Creates a new event filter for the [`OperatorSetCreated`] event.
20334        pub fn OperatorSetCreated_filter(
20335            &self,
20336        ) -> alloy_contract::Event<&P, OperatorSetCreated, N> {
20337            self.event_filter::<OperatorSetCreated>()
20338        }
20339        ///Creates a new event filter for the [`OperatorSlashed`] event.
20340        pub fn OperatorSlashed_filter(
20341            &self,
20342        ) -> alloy_contract::Event<&P, OperatorSlashed, N> {
20343            self.event_filter::<OperatorSlashed>()
20344        }
20345        ///Creates a new event filter for the [`OwnershipTransferred`] event.
20346        pub fn OwnershipTransferred_filter(
20347            &self,
20348        ) -> alloy_contract::Event<&P, OwnershipTransferred, N> {
20349            self.event_filter::<OwnershipTransferred>()
20350        }
20351        ///Creates a new event filter for the [`Paused`] event.
20352        pub fn Paused_filter(&self) -> alloy_contract::Event<&P, Paused, N> {
20353            self.event_filter::<Paused>()
20354        }
20355        ///Creates a new event filter for the [`StrategyAddedToOperatorSet`] event.
20356        pub fn StrategyAddedToOperatorSet_filter(
20357            &self,
20358        ) -> alloy_contract::Event<&P, StrategyAddedToOperatorSet, N> {
20359            self.event_filter::<StrategyAddedToOperatorSet>()
20360        }
20361        ///Creates a new event filter for the [`StrategyRemovedFromOperatorSet`] event.
20362        pub fn StrategyRemovedFromOperatorSet_filter(
20363            &self,
20364        ) -> alloy_contract::Event<&P, StrategyRemovedFromOperatorSet, N> {
20365            self.event_filter::<StrategyRemovedFromOperatorSet>()
20366        }
20367        ///Creates a new event filter for the [`Unpaused`] event.
20368        pub fn Unpaused_filter(&self) -> alloy_contract::Event<&P, Unpaused, N> {
20369            self.event_filter::<Unpaused>()
20370        }
20371    }
20372}