1#[allow(
12 non_camel_case_types,
13 non_snake_case,
14 clippy::pub_underscore_fields,
15 clippy::style,
16 clippy::empty_structs_with_brackets
17)]
18pub mod BN254 {
19 use super::*;
20 use alloy::sol_types as alloy_sol_types;
21 #[derive(serde::Serialize, serde::Deserialize)]
22 #[derive(Default, Debug, PartialEq, Eq, Hash)]
23 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
24 #[derive(Clone)]
25 pub struct BaseField(alloy::sol_types::private::primitives::aliases::U256);
26 const _: () = {
27 use alloy::sol_types as alloy_sol_types;
28 #[automatically_derived]
29 impl alloy_sol_types::private::SolTypeValue<BaseField>
30 for alloy::sol_types::private::primitives::aliases::U256 {
31 #[inline]
32 fn stv_to_tokens(
33 &self,
34 ) -> <alloy::sol_types::sol_data::Uint<
35 256,
36 > as alloy_sol_types::SolType>::Token<'_> {
37 alloy_sol_types::private::SolTypeValue::<
38 alloy::sol_types::sol_data::Uint<256>,
39 >::stv_to_tokens(self)
40 }
41 #[inline]
42 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
43 <alloy::sol_types::sol_data::Uint<
44 256,
45 > as alloy_sol_types::SolType>::tokenize(self)
46 .0
47 }
48 #[inline]
49 fn stv_abi_encode_packed_to(
50 &self,
51 out: &mut alloy_sol_types::private::Vec<u8>,
52 ) {
53 <alloy::sol_types::sol_data::Uint<
54 256,
55 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
56 }
57 #[inline]
58 fn stv_abi_packed_encoded_size(&self) -> usize {
59 <alloy::sol_types::sol_data::Uint<
60 256,
61 > as alloy_sol_types::SolType>::abi_encoded_size(self)
62 }
63 }
64 impl BaseField {
65 pub const NAME: &'static str = stringify!(@ name);
67 #[inline]
69 pub const fn from_underlying(
70 value: alloy::sol_types::private::primitives::aliases::U256,
71 ) -> Self {
72 Self(value)
73 }
74 #[inline]
76 pub const fn into_underlying(
77 self,
78 ) -> alloy::sol_types::private::primitives::aliases::U256 {
79 self.0
80 }
81 #[inline]
84 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
85 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
86 }
87 #[inline]
90 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
91 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
92 }
93 }
94 #[automatically_derived]
95 impl From<alloy::sol_types::private::primitives::aliases::U256> for BaseField {
96 fn from(
97 value: alloy::sol_types::private::primitives::aliases::U256,
98 ) -> Self {
99 Self::from_underlying(value)
100 }
101 }
102 #[automatically_derived]
103 impl From<BaseField> for alloy::sol_types::private::primitives::aliases::U256 {
104 fn from(value: BaseField) -> Self {
105 value.into_underlying()
106 }
107 }
108 #[automatically_derived]
109 impl alloy_sol_types::SolType for BaseField {
110 type RustType = alloy::sol_types::private::primitives::aliases::U256;
111 type Token<'a> = <alloy::sol_types::sol_data::Uint<
112 256,
113 > as alloy_sol_types::SolType>::Token<'a>;
114 const SOL_NAME: &'static str = Self::NAME;
115 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
116 256,
117 > as alloy_sol_types::SolType>::ENCODED_SIZE;
118 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
119 256,
120 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
121 #[inline]
122 fn valid_token(token: &Self::Token<'_>) -> bool {
123 Self::type_check(token).is_ok()
124 }
125 #[inline]
126 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
127 <alloy::sol_types::sol_data::Uint<
128 256,
129 > as alloy_sol_types::SolType>::type_check(token)
130 }
131 #[inline]
132 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
133 <alloy::sol_types::sol_data::Uint<
134 256,
135 > as alloy_sol_types::SolType>::detokenize(token)
136 }
137 }
138 #[automatically_derived]
139 impl alloy_sol_types::EventTopic for BaseField {
140 #[inline]
141 fn topic_preimage_length(rust: &Self::RustType) -> usize {
142 <alloy::sol_types::sol_data::Uint<
143 256,
144 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
145 }
146 #[inline]
147 fn encode_topic_preimage(
148 rust: &Self::RustType,
149 out: &mut alloy_sol_types::private::Vec<u8>,
150 ) {
151 <alloy::sol_types::sol_data::Uint<
152 256,
153 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
154 }
155 #[inline]
156 fn encode_topic(
157 rust: &Self::RustType,
158 ) -> alloy_sol_types::abi::token::WordToken {
159 <alloy::sol_types::sol_data::Uint<
160 256,
161 > as alloy_sol_types::EventTopic>::encode_topic(rust)
162 }
163 }
164 };
165 #[derive(serde::Serialize, serde::Deserialize)]
166 #[derive(Default, Debug, PartialEq, Eq, Hash)]
167 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
168 #[derive(Clone)]
169 pub struct ScalarField(alloy::sol_types::private::primitives::aliases::U256);
170 const _: () = {
171 use alloy::sol_types as alloy_sol_types;
172 #[automatically_derived]
173 impl alloy_sol_types::private::SolTypeValue<ScalarField>
174 for alloy::sol_types::private::primitives::aliases::U256 {
175 #[inline]
176 fn stv_to_tokens(
177 &self,
178 ) -> <alloy::sol_types::sol_data::Uint<
179 256,
180 > as alloy_sol_types::SolType>::Token<'_> {
181 alloy_sol_types::private::SolTypeValue::<
182 alloy::sol_types::sol_data::Uint<256>,
183 >::stv_to_tokens(self)
184 }
185 #[inline]
186 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
187 <alloy::sol_types::sol_data::Uint<
188 256,
189 > as alloy_sol_types::SolType>::tokenize(self)
190 .0
191 }
192 #[inline]
193 fn stv_abi_encode_packed_to(
194 &self,
195 out: &mut alloy_sol_types::private::Vec<u8>,
196 ) {
197 <alloy::sol_types::sol_data::Uint<
198 256,
199 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
200 }
201 #[inline]
202 fn stv_abi_packed_encoded_size(&self) -> usize {
203 <alloy::sol_types::sol_data::Uint<
204 256,
205 > as alloy_sol_types::SolType>::abi_encoded_size(self)
206 }
207 }
208 impl ScalarField {
209 pub const NAME: &'static str = stringify!(@ name);
211 #[inline]
213 pub const fn from_underlying(
214 value: alloy::sol_types::private::primitives::aliases::U256,
215 ) -> Self {
216 Self(value)
217 }
218 #[inline]
220 pub const fn into_underlying(
221 self,
222 ) -> alloy::sol_types::private::primitives::aliases::U256 {
223 self.0
224 }
225 #[inline]
228 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
229 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
230 }
231 #[inline]
234 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
235 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
236 }
237 }
238 #[automatically_derived]
239 impl From<alloy::sol_types::private::primitives::aliases::U256> for ScalarField {
240 fn from(
241 value: alloy::sol_types::private::primitives::aliases::U256,
242 ) -> Self {
243 Self::from_underlying(value)
244 }
245 }
246 #[automatically_derived]
247 impl From<ScalarField> for alloy::sol_types::private::primitives::aliases::U256 {
248 fn from(value: ScalarField) -> Self {
249 value.into_underlying()
250 }
251 }
252 #[automatically_derived]
253 impl alloy_sol_types::SolType for ScalarField {
254 type RustType = alloy::sol_types::private::primitives::aliases::U256;
255 type Token<'a> = <alloy::sol_types::sol_data::Uint<
256 256,
257 > as alloy_sol_types::SolType>::Token<'a>;
258 const SOL_NAME: &'static str = Self::NAME;
259 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
260 256,
261 > as alloy_sol_types::SolType>::ENCODED_SIZE;
262 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
263 256,
264 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
265 #[inline]
266 fn valid_token(token: &Self::Token<'_>) -> bool {
267 Self::type_check(token).is_ok()
268 }
269 #[inline]
270 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
271 <alloy::sol_types::sol_data::Uint<
272 256,
273 > as alloy_sol_types::SolType>::type_check(token)
274 }
275 #[inline]
276 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
277 <alloy::sol_types::sol_data::Uint<
278 256,
279 > as alloy_sol_types::SolType>::detokenize(token)
280 }
281 }
282 #[automatically_derived]
283 impl alloy_sol_types::EventTopic for ScalarField {
284 #[inline]
285 fn topic_preimage_length(rust: &Self::RustType) -> usize {
286 <alloy::sol_types::sol_data::Uint<
287 256,
288 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
289 }
290 #[inline]
291 fn encode_topic_preimage(
292 rust: &Self::RustType,
293 out: &mut alloy_sol_types::private::Vec<u8>,
294 ) {
295 <alloy::sol_types::sol_data::Uint<
296 256,
297 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
298 }
299 #[inline]
300 fn encode_topic(
301 rust: &Self::RustType,
302 ) -> alloy_sol_types::abi::token::WordToken {
303 <alloy::sol_types::sol_data::Uint<
304 256,
305 > as alloy_sol_types::EventTopic>::encode_topic(rust)
306 }
307 }
308 };
309 #[derive(serde::Serialize, serde::Deserialize)]
310 #[derive(Default, Debug, PartialEq, Eq, Hash)]
311 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
315 #[derive(Clone)]
316 pub struct G1Point {
317 #[allow(missing_docs)]
318 pub x: <BaseField as alloy::sol_types::SolType>::RustType,
319 #[allow(missing_docs)]
320 pub y: <BaseField as alloy::sol_types::SolType>::RustType,
321 }
322 #[allow(
323 non_camel_case_types,
324 non_snake_case,
325 clippy::pub_underscore_fields,
326 clippy::style
327 )]
328 const _: () = {
329 use alloy::sol_types as alloy_sol_types;
330 #[doc(hidden)]
331 #[allow(dead_code)]
332 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
333 #[doc(hidden)]
334 type UnderlyingRustTuple<'a> = (
335 <BaseField as alloy::sol_types::SolType>::RustType,
336 <BaseField as alloy::sol_types::SolType>::RustType,
337 );
338 #[cfg(test)]
339 #[allow(dead_code, unreachable_patterns)]
340 fn _type_assertion(
341 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
342 ) {
343 match _t {
344 alloy_sol_types::private::AssertTypeEq::<
345 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
346 >(_) => {}
347 }
348 }
349 #[automatically_derived]
350 #[doc(hidden)]
351 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
352 fn from(value: G1Point) -> Self {
353 (value.x, value.y)
354 }
355 }
356 #[automatically_derived]
357 #[doc(hidden)]
358 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
359 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
360 Self { x: tuple.0, y: tuple.1 }
361 }
362 }
363 #[automatically_derived]
364 impl alloy_sol_types::SolValue for G1Point {
365 type SolType = Self;
366 }
367 #[automatically_derived]
368 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
369 #[inline]
370 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
371 (
372 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
373 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
374 )
375 }
376 #[inline]
377 fn stv_abi_encoded_size(&self) -> usize {
378 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
379 return size;
380 }
381 let tuple = <UnderlyingRustTuple<
382 '_,
383 > as ::core::convert::From<Self>>::from(self.clone());
384 <UnderlyingSolTuple<
385 '_,
386 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
387 }
388 #[inline]
389 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
390 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
391 }
392 #[inline]
393 fn stv_abi_encode_packed_to(
394 &self,
395 out: &mut alloy_sol_types::private::Vec<u8>,
396 ) {
397 let tuple = <UnderlyingRustTuple<
398 '_,
399 > as ::core::convert::From<Self>>::from(self.clone());
400 <UnderlyingSolTuple<
401 '_,
402 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
403 }
404 #[inline]
405 fn stv_abi_packed_encoded_size(&self) -> usize {
406 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
407 return size;
408 }
409 let tuple = <UnderlyingRustTuple<
410 '_,
411 > as ::core::convert::From<Self>>::from(self.clone());
412 <UnderlyingSolTuple<
413 '_,
414 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
415 }
416 }
417 #[automatically_derived]
418 impl alloy_sol_types::SolType for G1Point {
419 type RustType = Self;
420 type Token<'a> = <UnderlyingSolTuple<
421 'a,
422 > as alloy_sol_types::SolType>::Token<'a>;
423 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
424 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
425 '_,
426 > as alloy_sol_types::SolType>::ENCODED_SIZE;
427 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
428 '_,
429 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
430 #[inline]
431 fn valid_token(token: &Self::Token<'_>) -> bool {
432 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
433 }
434 #[inline]
435 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
436 let tuple = <UnderlyingSolTuple<
437 '_,
438 > as alloy_sol_types::SolType>::detokenize(token);
439 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
440 }
441 }
442 #[automatically_derived]
443 impl alloy_sol_types::SolStruct for G1Point {
444 const NAME: &'static str = "G1Point";
445 #[inline]
446 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
447 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
448 }
449 #[inline]
450 fn eip712_components() -> alloy_sol_types::private::Vec<
451 alloy_sol_types::private::Cow<'static, str>,
452 > {
453 alloy_sol_types::private::Vec::new()
454 }
455 #[inline]
456 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
457 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
458 }
459 #[inline]
460 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
461 [
462 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
463 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
464 ]
465 .concat()
466 }
467 }
468 #[automatically_derived]
469 impl alloy_sol_types::EventTopic for G1Point {
470 #[inline]
471 fn topic_preimage_length(rust: &Self::RustType) -> usize {
472 0usize
473 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
474 &rust.x,
475 )
476 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
477 &rust.y,
478 )
479 }
480 #[inline]
481 fn encode_topic_preimage(
482 rust: &Self::RustType,
483 out: &mut alloy_sol_types::private::Vec<u8>,
484 ) {
485 out.reserve(
486 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
487 );
488 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
489 &rust.x,
490 out,
491 );
492 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
493 &rust.y,
494 out,
495 );
496 }
497 #[inline]
498 fn encode_topic(
499 rust: &Self::RustType,
500 ) -> alloy_sol_types::abi::token::WordToken {
501 let mut out = alloy_sol_types::private::Vec::new();
502 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
503 rust,
504 &mut out,
505 );
506 alloy_sol_types::abi::token::WordToken(
507 alloy_sol_types::private::keccak256(out),
508 )
509 }
510 }
511 };
512 use alloy::contract as alloy_contract;
513 #[inline]
517 pub const fn new<
518 P: alloy_contract::private::Provider<N>,
519 N: alloy_contract::private::Network,
520 >(address: alloy_sol_types::private::Address, __provider: P) -> BN254Instance<P, N> {
521 BN254Instance::<P, N>::new(address, __provider)
522 }
523 #[derive(Clone)]
535 pub struct BN254Instance<P, N = alloy_contract::private::Ethereum> {
536 address: alloy_sol_types::private::Address,
537 provider: P,
538 _network: ::core::marker::PhantomData<N>,
539 }
540 #[automatically_derived]
541 impl<P, N> ::core::fmt::Debug for BN254Instance<P, N> {
542 #[inline]
543 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
544 f.debug_tuple("BN254Instance").field(&self.address).finish()
545 }
546 }
547 impl<
549 P: alloy_contract::private::Provider<N>,
550 N: alloy_contract::private::Network,
551 > BN254Instance<P, N> {
552 #[inline]
556 pub const fn new(
557 address: alloy_sol_types::private::Address,
558 __provider: P,
559 ) -> Self {
560 Self {
561 address,
562 provider: __provider,
563 _network: ::core::marker::PhantomData,
564 }
565 }
566 #[inline]
568 pub const fn address(&self) -> &alloy_sol_types::private::Address {
569 &self.address
570 }
571 #[inline]
573 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
574 self.address = address;
575 }
576 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
578 self.set_address(address);
579 self
580 }
581 #[inline]
583 pub const fn provider(&self) -> &P {
584 &self.provider
585 }
586 }
587 impl<P: ::core::clone::Clone, N> BN254Instance<&P, N> {
588 #[inline]
590 pub fn with_cloned_provider(self) -> BN254Instance<P, N> {
591 BN254Instance {
592 address: self.address,
593 provider: ::core::clone::Clone::clone(&self.provider),
594 _network: ::core::marker::PhantomData,
595 }
596 }
597 }
598 impl<
600 P: alloy_contract::private::Provider<N>,
601 N: alloy_contract::private::Network,
602 > BN254Instance<P, N> {
603 pub fn call_builder<C: alloy_sol_types::SolCall>(
608 &self,
609 call: &C,
610 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
611 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
612 }
613 }
614 impl<
616 P: alloy_contract::private::Provider<N>,
617 N: alloy_contract::private::Network,
618 > BN254Instance<P, N> {
619 pub fn event_filter<E: alloy_sol_types::SolEvent>(
624 &self,
625 ) -> alloy_contract::Event<&P, E, N> {
626 alloy_contract::Event::new_sol(&self.provider, &self.address)
627 }
628 }
629}
630#[allow(
640 non_camel_case_types,
641 non_snake_case,
642 clippy::pub_underscore_fields,
643 clippy::style,
644 clippy::empty_structs_with_brackets
645)]
646pub mod IPlonkVerifier {
647 use super::*;
648 use alloy::sol_types as alloy_sol_types;
649 #[derive(serde::Serialize, serde::Deserialize)]
650 #[derive()]
651 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
655 #[derive(Clone)]
656 pub struct PlonkProof {
657 #[allow(missing_docs)]
658 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
659 #[allow(missing_docs)]
660 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
661 #[allow(missing_docs)]
662 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
663 #[allow(missing_docs)]
664 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
665 #[allow(missing_docs)]
666 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
667 #[allow(missing_docs)]
668 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
669 #[allow(missing_docs)]
670 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
671 #[allow(missing_docs)]
672 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
673 #[allow(missing_docs)]
674 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
675 #[allow(missing_docs)]
676 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
677 #[allow(missing_docs)]
678 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
679 #[allow(missing_docs)]
680 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
681 #[allow(missing_docs)]
682 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
683 #[allow(missing_docs)]
684 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
685 #[allow(missing_docs)]
686 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
687 #[allow(missing_docs)]
688 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
689 #[allow(missing_docs)]
690 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
691 #[allow(missing_docs)]
692 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
693 #[allow(missing_docs)]
694 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
695 #[allow(missing_docs)]
696 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
697 #[allow(missing_docs)]
698 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
699 #[allow(missing_docs)]
700 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
701 #[allow(missing_docs)]
702 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
703 }
704 #[allow(
705 non_camel_case_types,
706 non_snake_case,
707 clippy::pub_underscore_fields,
708 clippy::style
709 )]
710 const _: () = {
711 use alloy::sol_types as alloy_sol_types;
712 #[doc(hidden)]
713 #[allow(dead_code)]
714 type UnderlyingSolTuple<'a> = (
715 BN254::G1Point,
716 BN254::G1Point,
717 BN254::G1Point,
718 BN254::G1Point,
719 BN254::G1Point,
720 BN254::G1Point,
721 BN254::G1Point,
722 BN254::G1Point,
723 BN254::G1Point,
724 BN254::G1Point,
725 BN254::G1Point,
726 BN254::G1Point,
727 BN254::G1Point,
728 BN254::ScalarField,
729 BN254::ScalarField,
730 BN254::ScalarField,
731 BN254::ScalarField,
732 BN254::ScalarField,
733 BN254::ScalarField,
734 BN254::ScalarField,
735 BN254::ScalarField,
736 BN254::ScalarField,
737 BN254::ScalarField,
738 );
739 #[doc(hidden)]
740 type UnderlyingRustTuple<'a> = (
741 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
742 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
743 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
744 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
745 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
746 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
747 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
748 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
749 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
750 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
751 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
752 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
753 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
754 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
755 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
756 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
757 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
758 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
759 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
760 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
761 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
762 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
763 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
764 );
765 #[cfg(test)]
766 #[allow(dead_code, unreachable_patterns)]
767 fn _type_assertion(
768 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
769 ) {
770 match _t {
771 alloy_sol_types::private::AssertTypeEq::<
772 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
773 >(_) => {}
774 }
775 }
776 #[automatically_derived]
777 #[doc(hidden)]
778 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
779 fn from(value: PlonkProof) -> Self {
780 (
781 value.wire0,
782 value.wire1,
783 value.wire2,
784 value.wire3,
785 value.wire4,
786 value.prodPerm,
787 value.split0,
788 value.split1,
789 value.split2,
790 value.split3,
791 value.split4,
792 value.zeta,
793 value.zetaOmega,
794 value.wireEval0,
795 value.wireEval1,
796 value.wireEval2,
797 value.wireEval3,
798 value.wireEval4,
799 value.sigmaEval0,
800 value.sigmaEval1,
801 value.sigmaEval2,
802 value.sigmaEval3,
803 value.prodPermZetaOmegaEval,
804 )
805 }
806 }
807 #[automatically_derived]
808 #[doc(hidden)]
809 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
810 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
811 Self {
812 wire0: tuple.0,
813 wire1: tuple.1,
814 wire2: tuple.2,
815 wire3: tuple.3,
816 wire4: tuple.4,
817 prodPerm: tuple.5,
818 split0: tuple.6,
819 split1: tuple.7,
820 split2: tuple.8,
821 split3: tuple.9,
822 split4: tuple.10,
823 zeta: tuple.11,
824 zetaOmega: tuple.12,
825 wireEval0: tuple.13,
826 wireEval1: tuple.14,
827 wireEval2: tuple.15,
828 wireEval3: tuple.16,
829 wireEval4: tuple.17,
830 sigmaEval0: tuple.18,
831 sigmaEval1: tuple.19,
832 sigmaEval2: tuple.20,
833 sigmaEval3: tuple.21,
834 prodPermZetaOmegaEval: tuple.22,
835 }
836 }
837 }
838 #[automatically_derived]
839 impl alloy_sol_types::SolValue for PlonkProof {
840 type SolType = Self;
841 }
842 #[automatically_derived]
843 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
844 #[inline]
845 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
846 (
847 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
848 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
849 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
850 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
851 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
852 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
853 &self.prodPerm,
854 ),
855 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
856 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
857 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
858 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
859 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
860 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
861 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
862 &self.zetaOmega,
863 ),
864 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
865 &self.wireEval0,
866 ),
867 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
868 &self.wireEval1,
869 ),
870 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
871 &self.wireEval2,
872 ),
873 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
874 &self.wireEval3,
875 ),
876 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
877 &self.wireEval4,
878 ),
879 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
880 &self.sigmaEval0,
881 ),
882 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
883 &self.sigmaEval1,
884 ),
885 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
886 &self.sigmaEval2,
887 ),
888 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
889 &self.sigmaEval3,
890 ),
891 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
892 &self.prodPermZetaOmegaEval,
893 ),
894 )
895 }
896 #[inline]
897 fn stv_abi_encoded_size(&self) -> usize {
898 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
899 return size;
900 }
901 let tuple = <UnderlyingRustTuple<
902 '_,
903 > as ::core::convert::From<Self>>::from(self.clone());
904 <UnderlyingSolTuple<
905 '_,
906 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
907 }
908 #[inline]
909 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
910 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
911 }
912 #[inline]
913 fn stv_abi_encode_packed_to(
914 &self,
915 out: &mut alloy_sol_types::private::Vec<u8>,
916 ) {
917 let tuple = <UnderlyingRustTuple<
918 '_,
919 > as ::core::convert::From<Self>>::from(self.clone());
920 <UnderlyingSolTuple<
921 '_,
922 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
923 }
924 #[inline]
925 fn stv_abi_packed_encoded_size(&self) -> usize {
926 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
927 return size;
928 }
929 let tuple = <UnderlyingRustTuple<
930 '_,
931 > as ::core::convert::From<Self>>::from(self.clone());
932 <UnderlyingSolTuple<
933 '_,
934 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
935 }
936 }
937 #[automatically_derived]
938 impl alloy_sol_types::SolType for PlonkProof {
939 type RustType = Self;
940 type Token<'a> = <UnderlyingSolTuple<
941 'a,
942 > as alloy_sol_types::SolType>::Token<'a>;
943 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
944 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
945 '_,
946 > as alloy_sol_types::SolType>::ENCODED_SIZE;
947 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
948 '_,
949 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
950 #[inline]
951 fn valid_token(token: &Self::Token<'_>) -> bool {
952 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
953 }
954 #[inline]
955 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
956 let tuple = <UnderlyingSolTuple<
957 '_,
958 > as alloy_sol_types::SolType>::detokenize(token);
959 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
960 }
961 }
962 #[automatically_derived]
963 impl alloy_sol_types::SolStruct for PlonkProof {
964 const NAME: &'static str = "PlonkProof";
965 #[inline]
966 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
967 alloy_sol_types::private::Cow::Borrowed(
968 "PlonkProof(G1Point wire0,G1Point wire1,G1Point wire2,G1Point wire3,G1Point wire4,G1Point prodPerm,G1Point split0,G1Point split1,G1Point split2,G1Point split3,G1Point split4,G1Point zeta,G1Point zetaOmega,uint256 wireEval0,uint256 wireEval1,uint256 wireEval2,uint256 wireEval3,uint256 wireEval4,uint256 sigmaEval0,uint256 sigmaEval1,uint256 sigmaEval2,uint256 sigmaEval3,uint256 prodPermZetaOmegaEval)",
969 )
970 }
971 #[inline]
972 fn eip712_components() -> alloy_sol_types::private::Vec<
973 alloy_sol_types::private::Cow<'static, str>,
974 > {
975 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
976 components
977 .push(
978 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
979 );
980 components
981 .extend(
982 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
983 );
984 components
985 .push(
986 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
987 );
988 components
989 .extend(
990 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
991 );
992 components
993 .push(
994 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
995 );
996 components
997 .extend(
998 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
999 );
1000 components
1001 .push(
1002 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1003 );
1004 components
1005 .extend(
1006 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1007 );
1008 components
1009 .push(
1010 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1011 );
1012 components
1013 .extend(
1014 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1015 );
1016 components
1017 .push(
1018 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1019 );
1020 components
1021 .extend(
1022 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1023 );
1024 components
1025 .push(
1026 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1027 );
1028 components
1029 .extend(
1030 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1031 );
1032 components
1033 .push(
1034 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1035 );
1036 components
1037 .extend(
1038 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1039 );
1040 components
1041 .push(
1042 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1043 );
1044 components
1045 .extend(
1046 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1047 );
1048 components
1049 .push(
1050 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1051 );
1052 components
1053 .extend(
1054 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1055 );
1056 components
1057 .push(
1058 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1059 );
1060 components
1061 .extend(
1062 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1063 );
1064 components
1065 .push(
1066 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1067 );
1068 components
1069 .extend(
1070 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1071 );
1072 components
1073 .push(
1074 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1075 );
1076 components
1077 .extend(
1078 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1079 );
1080 components
1081 }
1082 #[inline]
1083 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1084 [
1085 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1086 &self.wire0,
1087 )
1088 .0,
1089 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1090 &self.wire1,
1091 )
1092 .0,
1093 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1094 &self.wire2,
1095 )
1096 .0,
1097 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1098 &self.wire3,
1099 )
1100 .0,
1101 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1102 &self.wire4,
1103 )
1104 .0,
1105 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1106 &self.prodPerm,
1107 )
1108 .0,
1109 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1110 &self.split0,
1111 )
1112 .0,
1113 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1114 &self.split1,
1115 )
1116 .0,
1117 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1118 &self.split2,
1119 )
1120 .0,
1121 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1122 &self.split3,
1123 )
1124 .0,
1125 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1126 &self.split4,
1127 )
1128 .0,
1129 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1130 &self.zeta,
1131 )
1132 .0,
1133 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1134 &self.zetaOmega,
1135 )
1136 .0,
1137 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1138 &self.wireEval0,
1139 )
1140 .0,
1141 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1142 &self.wireEval1,
1143 )
1144 .0,
1145 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1146 &self.wireEval2,
1147 )
1148 .0,
1149 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1150 &self.wireEval3,
1151 )
1152 .0,
1153 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1154 &self.wireEval4,
1155 )
1156 .0,
1157 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1158 &self.sigmaEval0,
1159 )
1160 .0,
1161 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1162 &self.sigmaEval1,
1163 )
1164 .0,
1165 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1166 &self.sigmaEval2,
1167 )
1168 .0,
1169 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1170 &self.sigmaEval3,
1171 )
1172 .0,
1173 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1174 &self.prodPermZetaOmegaEval,
1175 )
1176 .0,
1177 ]
1178 .concat()
1179 }
1180 }
1181 #[automatically_derived]
1182 impl alloy_sol_types::EventTopic for PlonkProof {
1183 #[inline]
1184 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1185 0usize
1186 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1187 &rust.wire0,
1188 )
1189 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1190 &rust.wire1,
1191 )
1192 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1193 &rust.wire2,
1194 )
1195 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1196 &rust.wire3,
1197 )
1198 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1199 &rust.wire4,
1200 )
1201 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1202 &rust.prodPerm,
1203 )
1204 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1205 &rust.split0,
1206 )
1207 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1208 &rust.split1,
1209 )
1210 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1211 &rust.split2,
1212 )
1213 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1214 &rust.split3,
1215 )
1216 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1217 &rust.split4,
1218 )
1219 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1220 &rust.zeta,
1221 )
1222 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1223 &rust.zetaOmega,
1224 )
1225 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1226 &rust.wireEval0,
1227 )
1228 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1229 &rust.wireEval1,
1230 )
1231 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1232 &rust.wireEval2,
1233 )
1234 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1235 &rust.wireEval3,
1236 )
1237 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1238 &rust.wireEval4,
1239 )
1240 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1241 &rust.sigmaEval0,
1242 )
1243 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1244 &rust.sigmaEval1,
1245 )
1246 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1247 &rust.sigmaEval2,
1248 )
1249 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1250 &rust.sigmaEval3,
1251 )
1252 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1253 &rust.prodPermZetaOmegaEval,
1254 )
1255 }
1256 #[inline]
1257 fn encode_topic_preimage(
1258 rust: &Self::RustType,
1259 out: &mut alloy_sol_types::private::Vec<u8>,
1260 ) {
1261 out.reserve(
1262 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1263 );
1264 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1265 &rust.wire0,
1266 out,
1267 );
1268 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1269 &rust.wire1,
1270 out,
1271 );
1272 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1273 &rust.wire2,
1274 out,
1275 );
1276 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1277 &rust.wire3,
1278 out,
1279 );
1280 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1281 &rust.wire4,
1282 out,
1283 );
1284 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1285 &rust.prodPerm,
1286 out,
1287 );
1288 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1289 &rust.split0,
1290 out,
1291 );
1292 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1293 &rust.split1,
1294 out,
1295 );
1296 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1297 &rust.split2,
1298 out,
1299 );
1300 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1301 &rust.split3,
1302 out,
1303 );
1304 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1305 &rust.split4,
1306 out,
1307 );
1308 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1309 &rust.zeta,
1310 out,
1311 );
1312 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1313 &rust.zetaOmega,
1314 out,
1315 );
1316 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1317 &rust.wireEval0,
1318 out,
1319 );
1320 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1321 &rust.wireEval1,
1322 out,
1323 );
1324 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1325 &rust.wireEval2,
1326 out,
1327 );
1328 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1329 &rust.wireEval3,
1330 out,
1331 );
1332 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1333 &rust.wireEval4,
1334 out,
1335 );
1336 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1337 &rust.sigmaEval0,
1338 out,
1339 );
1340 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1341 &rust.sigmaEval1,
1342 out,
1343 );
1344 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1345 &rust.sigmaEval2,
1346 out,
1347 );
1348 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1349 &rust.sigmaEval3,
1350 out,
1351 );
1352 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1353 &rust.prodPermZetaOmegaEval,
1354 out,
1355 );
1356 }
1357 #[inline]
1358 fn encode_topic(
1359 rust: &Self::RustType,
1360 ) -> alloy_sol_types::abi::token::WordToken {
1361 let mut out = alloy_sol_types::private::Vec::new();
1362 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1363 rust,
1364 &mut out,
1365 );
1366 alloy_sol_types::abi::token::WordToken(
1367 alloy_sol_types::private::keccak256(out),
1368 )
1369 }
1370 }
1371 };
1372 #[derive(serde::Serialize, serde::Deserialize)]
1373 #[derive()]
1374 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1378 #[derive(Clone)]
1379 pub struct VerifyingKey {
1380 #[allow(missing_docs)]
1381 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
1382 #[allow(missing_docs)]
1383 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
1384 #[allow(missing_docs)]
1385 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1386 #[allow(missing_docs)]
1387 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1388 #[allow(missing_docs)]
1389 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1390 #[allow(missing_docs)]
1391 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1392 #[allow(missing_docs)]
1393 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1394 #[allow(missing_docs)]
1395 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1396 #[allow(missing_docs)]
1397 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1398 #[allow(missing_docs)]
1399 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1400 #[allow(missing_docs)]
1401 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1402 #[allow(missing_docs)]
1403 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1404 #[allow(missing_docs)]
1405 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1406 #[allow(missing_docs)]
1407 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1408 #[allow(missing_docs)]
1409 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1410 #[allow(missing_docs)]
1411 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1412 #[allow(missing_docs)]
1413 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1414 #[allow(missing_docs)]
1415 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1416 #[allow(missing_docs)]
1417 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1418 #[allow(missing_docs)]
1419 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1420 #[allow(missing_docs)]
1421 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
1422 #[allow(missing_docs)]
1423 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
1424 }
1425 #[allow(
1426 non_camel_case_types,
1427 non_snake_case,
1428 clippy::pub_underscore_fields,
1429 clippy::style
1430 )]
1431 const _: () = {
1432 use alloy::sol_types as alloy_sol_types;
1433 #[doc(hidden)]
1434 #[allow(dead_code)]
1435 type UnderlyingSolTuple<'a> = (
1436 alloy::sol_types::sol_data::Uint<256>,
1437 alloy::sol_types::sol_data::Uint<256>,
1438 BN254::G1Point,
1439 BN254::G1Point,
1440 BN254::G1Point,
1441 BN254::G1Point,
1442 BN254::G1Point,
1443 BN254::G1Point,
1444 BN254::G1Point,
1445 BN254::G1Point,
1446 BN254::G1Point,
1447 BN254::G1Point,
1448 BN254::G1Point,
1449 BN254::G1Point,
1450 BN254::G1Point,
1451 BN254::G1Point,
1452 BN254::G1Point,
1453 BN254::G1Point,
1454 BN254::G1Point,
1455 BN254::G1Point,
1456 alloy::sol_types::sol_data::FixedBytes<32>,
1457 alloy::sol_types::sol_data::FixedBytes<32>,
1458 );
1459 #[doc(hidden)]
1460 type UnderlyingRustTuple<'a> = (
1461 alloy::sol_types::private::primitives::aliases::U256,
1462 alloy::sol_types::private::primitives::aliases::U256,
1463 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1464 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1465 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1466 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1467 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1468 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1469 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1470 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1471 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1472 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1473 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1474 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1475 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1476 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1477 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1478 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1479 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1480 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1481 alloy::sol_types::private::FixedBytes<32>,
1482 alloy::sol_types::private::FixedBytes<32>,
1483 );
1484 #[cfg(test)]
1485 #[allow(dead_code, unreachable_patterns)]
1486 fn _type_assertion(
1487 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1488 ) {
1489 match _t {
1490 alloy_sol_types::private::AssertTypeEq::<
1491 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1492 >(_) => {}
1493 }
1494 }
1495 #[automatically_derived]
1496 #[doc(hidden)]
1497 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
1498 fn from(value: VerifyingKey) -> Self {
1499 (
1500 value.domainSize,
1501 value.numInputs,
1502 value.sigma0,
1503 value.sigma1,
1504 value.sigma2,
1505 value.sigma3,
1506 value.sigma4,
1507 value.q1,
1508 value.q2,
1509 value.q3,
1510 value.q4,
1511 value.qM12,
1512 value.qM34,
1513 value.qO,
1514 value.qC,
1515 value.qH1,
1516 value.qH2,
1517 value.qH3,
1518 value.qH4,
1519 value.qEcc,
1520 value.g2LSB,
1521 value.g2MSB,
1522 )
1523 }
1524 }
1525 #[automatically_derived]
1526 #[doc(hidden)]
1527 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
1528 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1529 Self {
1530 domainSize: tuple.0,
1531 numInputs: tuple.1,
1532 sigma0: tuple.2,
1533 sigma1: tuple.3,
1534 sigma2: tuple.4,
1535 sigma3: tuple.5,
1536 sigma4: tuple.6,
1537 q1: tuple.7,
1538 q2: tuple.8,
1539 q3: tuple.9,
1540 q4: tuple.10,
1541 qM12: tuple.11,
1542 qM34: tuple.12,
1543 qO: tuple.13,
1544 qC: tuple.14,
1545 qH1: tuple.15,
1546 qH2: tuple.16,
1547 qH3: tuple.17,
1548 qH4: tuple.18,
1549 qEcc: tuple.19,
1550 g2LSB: tuple.20,
1551 g2MSB: tuple.21,
1552 }
1553 }
1554 }
1555 #[automatically_derived]
1556 impl alloy_sol_types::SolValue for VerifyingKey {
1557 type SolType = Self;
1558 }
1559 #[automatically_derived]
1560 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
1561 #[inline]
1562 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1563 (
1564 <alloy::sol_types::sol_data::Uint<
1565 256,
1566 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
1567 <alloy::sol_types::sol_data::Uint<
1568 256,
1569 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
1570 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
1571 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
1572 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
1573 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
1574 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
1575 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
1576 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
1577 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
1578 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
1579 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
1580 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
1581 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
1582 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
1583 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
1584 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
1585 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
1586 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
1587 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
1588 <alloy::sol_types::sol_data::FixedBytes<
1589 32,
1590 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
1591 <alloy::sol_types::sol_data::FixedBytes<
1592 32,
1593 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
1594 )
1595 }
1596 #[inline]
1597 fn stv_abi_encoded_size(&self) -> usize {
1598 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1599 return size;
1600 }
1601 let tuple = <UnderlyingRustTuple<
1602 '_,
1603 > as ::core::convert::From<Self>>::from(self.clone());
1604 <UnderlyingSolTuple<
1605 '_,
1606 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1607 }
1608 #[inline]
1609 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1610 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1611 }
1612 #[inline]
1613 fn stv_abi_encode_packed_to(
1614 &self,
1615 out: &mut alloy_sol_types::private::Vec<u8>,
1616 ) {
1617 let tuple = <UnderlyingRustTuple<
1618 '_,
1619 > as ::core::convert::From<Self>>::from(self.clone());
1620 <UnderlyingSolTuple<
1621 '_,
1622 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1623 }
1624 #[inline]
1625 fn stv_abi_packed_encoded_size(&self) -> usize {
1626 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1627 return size;
1628 }
1629 let tuple = <UnderlyingRustTuple<
1630 '_,
1631 > as ::core::convert::From<Self>>::from(self.clone());
1632 <UnderlyingSolTuple<
1633 '_,
1634 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1635 }
1636 }
1637 #[automatically_derived]
1638 impl alloy_sol_types::SolType for VerifyingKey {
1639 type RustType = Self;
1640 type Token<'a> = <UnderlyingSolTuple<
1641 'a,
1642 > as alloy_sol_types::SolType>::Token<'a>;
1643 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1644 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1645 '_,
1646 > as alloy_sol_types::SolType>::ENCODED_SIZE;
1647 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1648 '_,
1649 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1650 #[inline]
1651 fn valid_token(token: &Self::Token<'_>) -> bool {
1652 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1653 }
1654 #[inline]
1655 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1656 let tuple = <UnderlyingSolTuple<
1657 '_,
1658 > as alloy_sol_types::SolType>::detokenize(token);
1659 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1660 }
1661 }
1662 #[automatically_derived]
1663 impl alloy_sol_types::SolStruct for VerifyingKey {
1664 const NAME: &'static str = "VerifyingKey";
1665 #[inline]
1666 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1667 alloy_sol_types::private::Cow::Borrowed(
1668 "VerifyingKey(uint256 domainSize,uint256 numInputs,G1Point sigma0,G1Point sigma1,G1Point sigma2,G1Point sigma3,G1Point sigma4,G1Point q1,G1Point q2,G1Point q3,G1Point q4,G1Point qM12,G1Point qM34,G1Point qO,G1Point qC,G1Point qH1,G1Point qH2,G1Point qH3,G1Point qH4,G1Point qEcc,bytes32 g2LSB,bytes32 g2MSB)",
1669 )
1670 }
1671 #[inline]
1672 fn eip712_components() -> alloy_sol_types::private::Vec<
1673 alloy_sol_types::private::Cow<'static, str>,
1674 > {
1675 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
1676 components
1677 .push(
1678 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1679 );
1680 components
1681 .extend(
1682 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1683 );
1684 components
1685 .push(
1686 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1687 );
1688 components
1689 .extend(
1690 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1691 );
1692 components
1693 .push(
1694 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1695 );
1696 components
1697 .extend(
1698 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1699 );
1700 components
1701 .push(
1702 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1703 );
1704 components
1705 .extend(
1706 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1707 );
1708 components
1709 .push(
1710 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1711 );
1712 components
1713 .extend(
1714 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1715 );
1716 components
1717 .push(
1718 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1719 );
1720 components
1721 .extend(
1722 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1723 );
1724 components
1725 .push(
1726 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1727 );
1728 components
1729 .extend(
1730 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1731 );
1732 components
1733 .push(
1734 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1735 );
1736 components
1737 .extend(
1738 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1739 );
1740 components
1741 .push(
1742 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1743 );
1744 components
1745 .extend(
1746 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1747 );
1748 components
1749 .push(
1750 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1751 );
1752 components
1753 .extend(
1754 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1755 );
1756 components
1757 .push(
1758 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1759 );
1760 components
1761 .extend(
1762 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1763 );
1764 components
1765 .push(
1766 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1767 );
1768 components
1769 .extend(
1770 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1771 );
1772 components
1773 .push(
1774 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1775 );
1776 components
1777 .extend(
1778 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1779 );
1780 components
1781 .push(
1782 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1783 );
1784 components
1785 .extend(
1786 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1787 );
1788 components
1789 .push(
1790 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1791 );
1792 components
1793 .extend(
1794 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1795 );
1796 components
1797 .push(
1798 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1799 );
1800 components
1801 .extend(
1802 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1803 );
1804 components
1805 .push(
1806 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1807 );
1808 components
1809 .extend(
1810 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1811 );
1812 components
1813 .push(
1814 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1815 );
1816 components
1817 .extend(
1818 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1819 );
1820 components
1821 }
1822 #[inline]
1823 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1824 [
1825 <alloy::sol_types::sol_data::Uint<
1826 256,
1827 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
1828 .0,
1829 <alloy::sol_types::sol_data::Uint<
1830 256,
1831 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
1832 .0,
1833 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1834 &self.sigma0,
1835 )
1836 .0,
1837 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1838 &self.sigma1,
1839 )
1840 .0,
1841 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1842 &self.sigma2,
1843 )
1844 .0,
1845 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1846 &self.sigma3,
1847 )
1848 .0,
1849 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1850 &self.sigma4,
1851 )
1852 .0,
1853 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1854 &self.q1,
1855 )
1856 .0,
1857 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1858 &self.q2,
1859 )
1860 .0,
1861 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1862 &self.q3,
1863 )
1864 .0,
1865 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1866 &self.q4,
1867 )
1868 .0,
1869 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1870 &self.qM12,
1871 )
1872 .0,
1873 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1874 &self.qM34,
1875 )
1876 .0,
1877 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1878 &self.qO,
1879 )
1880 .0,
1881 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1882 &self.qC,
1883 )
1884 .0,
1885 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1886 &self.qH1,
1887 )
1888 .0,
1889 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1890 &self.qH2,
1891 )
1892 .0,
1893 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1894 &self.qH3,
1895 )
1896 .0,
1897 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1898 &self.qH4,
1899 )
1900 .0,
1901 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1902 &self.qEcc,
1903 )
1904 .0,
1905 <alloy::sol_types::sol_data::FixedBytes<
1906 32,
1907 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
1908 .0,
1909 <alloy::sol_types::sol_data::FixedBytes<
1910 32,
1911 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
1912 .0,
1913 ]
1914 .concat()
1915 }
1916 }
1917 #[automatically_derived]
1918 impl alloy_sol_types::EventTopic for VerifyingKey {
1919 #[inline]
1920 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1921 0usize
1922 + <alloy::sol_types::sol_data::Uint<
1923 256,
1924 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1925 &rust.domainSize,
1926 )
1927 + <alloy::sol_types::sol_data::Uint<
1928 256,
1929 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1930 &rust.numInputs,
1931 )
1932 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1933 &rust.sigma0,
1934 )
1935 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1936 &rust.sigma1,
1937 )
1938 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1939 &rust.sigma2,
1940 )
1941 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1942 &rust.sigma3,
1943 )
1944 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1945 &rust.sigma4,
1946 )
1947 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1948 &rust.q1,
1949 )
1950 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1951 &rust.q2,
1952 )
1953 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1954 &rust.q3,
1955 )
1956 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1957 &rust.q4,
1958 )
1959 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1960 &rust.qM12,
1961 )
1962 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1963 &rust.qM34,
1964 )
1965 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1966 &rust.qO,
1967 )
1968 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1969 &rust.qC,
1970 )
1971 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1972 &rust.qH1,
1973 )
1974 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1975 &rust.qH2,
1976 )
1977 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1978 &rust.qH3,
1979 )
1980 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1981 &rust.qH4,
1982 )
1983 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1984 &rust.qEcc,
1985 )
1986 + <alloy::sol_types::sol_data::FixedBytes<
1987 32,
1988 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
1989 + <alloy::sol_types::sol_data::FixedBytes<
1990 32,
1991 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
1992 }
1993 #[inline]
1994 fn encode_topic_preimage(
1995 rust: &Self::RustType,
1996 out: &mut alloy_sol_types::private::Vec<u8>,
1997 ) {
1998 out.reserve(
1999 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
2000 );
2001 <alloy::sol_types::sol_data::Uint<
2002 256,
2003 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2004 &rust.domainSize,
2005 out,
2006 );
2007 <alloy::sol_types::sol_data::Uint<
2008 256,
2009 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2010 &rust.numInputs,
2011 out,
2012 );
2013 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2014 &rust.sigma0,
2015 out,
2016 );
2017 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2018 &rust.sigma1,
2019 out,
2020 );
2021 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2022 &rust.sigma2,
2023 out,
2024 );
2025 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2026 &rust.sigma3,
2027 out,
2028 );
2029 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2030 &rust.sigma4,
2031 out,
2032 );
2033 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2034 &rust.q1,
2035 out,
2036 );
2037 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2038 &rust.q2,
2039 out,
2040 );
2041 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2042 &rust.q3,
2043 out,
2044 );
2045 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2046 &rust.q4,
2047 out,
2048 );
2049 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2050 &rust.qM12,
2051 out,
2052 );
2053 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2054 &rust.qM34,
2055 out,
2056 );
2057 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2058 &rust.qO,
2059 out,
2060 );
2061 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2062 &rust.qC,
2063 out,
2064 );
2065 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2066 &rust.qH1,
2067 out,
2068 );
2069 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2070 &rust.qH2,
2071 out,
2072 );
2073 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2074 &rust.qH3,
2075 out,
2076 );
2077 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2078 &rust.qH4,
2079 out,
2080 );
2081 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2082 &rust.qEcc,
2083 out,
2084 );
2085 <alloy::sol_types::sol_data::FixedBytes<
2086 32,
2087 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2088 &rust.g2LSB,
2089 out,
2090 );
2091 <alloy::sol_types::sol_data::FixedBytes<
2092 32,
2093 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2094 &rust.g2MSB,
2095 out,
2096 );
2097 }
2098 #[inline]
2099 fn encode_topic(
2100 rust: &Self::RustType,
2101 ) -> alloy_sol_types::abi::token::WordToken {
2102 let mut out = alloy_sol_types::private::Vec::new();
2103 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
2104 rust,
2105 &mut out,
2106 );
2107 alloy_sol_types::abi::token::WordToken(
2108 alloy_sol_types::private::keccak256(out),
2109 )
2110 }
2111 }
2112 };
2113 use alloy::contract as alloy_contract;
2114 #[inline]
2118 pub const fn new<
2119 P: alloy_contract::private::Provider<N>,
2120 N: alloy_contract::private::Network,
2121 >(
2122 address: alloy_sol_types::private::Address,
2123 __provider: P,
2124 ) -> IPlonkVerifierInstance<P, N> {
2125 IPlonkVerifierInstance::<P, N>::new(address, __provider)
2126 }
2127 #[derive(Clone)]
2139 pub struct IPlonkVerifierInstance<P, N = alloy_contract::private::Ethereum> {
2140 address: alloy_sol_types::private::Address,
2141 provider: P,
2142 _network: ::core::marker::PhantomData<N>,
2143 }
2144 #[automatically_derived]
2145 impl<P, N> ::core::fmt::Debug for IPlonkVerifierInstance<P, N> {
2146 #[inline]
2147 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2148 f.debug_tuple("IPlonkVerifierInstance").field(&self.address).finish()
2149 }
2150 }
2151 impl<
2153 P: alloy_contract::private::Provider<N>,
2154 N: alloy_contract::private::Network,
2155 > IPlonkVerifierInstance<P, N> {
2156 #[inline]
2160 pub const fn new(
2161 address: alloy_sol_types::private::Address,
2162 __provider: P,
2163 ) -> Self {
2164 Self {
2165 address,
2166 provider: __provider,
2167 _network: ::core::marker::PhantomData,
2168 }
2169 }
2170 #[inline]
2172 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2173 &self.address
2174 }
2175 #[inline]
2177 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2178 self.address = address;
2179 }
2180 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2182 self.set_address(address);
2183 self
2184 }
2185 #[inline]
2187 pub const fn provider(&self) -> &P {
2188 &self.provider
2189 }
2190 }
2191 impl<P: ::core::clone::Clone, N> IPlonkVerifierInstance<&P, N> {
2192 #[inline]
2194 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<P, N> {
2195 IPlonkVerifierInstance {
2196 address: self.address,
2197 provider: ::core::clone::Clone::clone(&self.provider),
2198 _network: ::core::marker::PhantomData,
2199 }
2200 }
2201 }
2202 impl<
2204 P: alloy_contract::private::Provider<N>,
2205 N: alloy_contract::private::Network,
2206 > IPlonkVerifierInstance<P, N> {
2207 pub fn call_builder<C: alloy_sol_types::SolCall>(
2212 &self,
2213 call: &C,
2214 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
2215 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2216 }
2217 }
2218 impl<
2220 P: alloy_contract::private::Provider<N>,
2221 N: alloy_contract::private::Network,
2222 > IPlonkVerifierInstance<P, N> {
2223 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2228 &self,
2229 ) -> alloy_contract::Event<&P, E, N> {
2230 alloy_contract::Event::new_sol(&self.provider, &self.address)
2231 }
2232 }
2233}
2234#[allow(
3113 non_camel_case_types,
3114 non_snake_case,
3115 clippy::pub_underscore_fields,
3116 clippy::style,
3117 clippy::empty_structs_with_brackets
3118)]
3119pub mod PlonkVerifierV2 {
3120 use super::*;
3121 use alloy::sol_types as alloy_sol_types;
3122 #[rustfmt::skip]
3128 #[allow(clippy::all)]
3129 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3130 b"a%Ta\x004`\x0B\x82\x82\x829\x80Q_\x1A`s\x14`(WcNH{q`\xE0\x1B_R_`\x04R`$_\xFD[0_R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x9BW_5`\xE0\x1C\x80c\xAF\x19k\xA2\x11a\0nW\x80c\xAF\x19k\xA2\x14a\x01NW\x80c\xDE$\xAC\x0F\x14a\x01uW\x80c\xE3Q-V\x14a\x01\x9CW\x80c\xF5\x14C&\x14a\x01\xC3W\x80c\xFC\x86`\xC7\x14a\x01\xEAW__\xFD[\x80c\x0CU\x1F?\x14a\0\x9FW\x80cKG4\xE3\x14a\0\xD9W\x80cZ\x14\xC0\xFE\x14a\x01\0W\x80c\x83LE*\x14a\x01'W[__\xFD[a\0\xC6\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC6\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81V[a\0\xC6\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x81V[a\0\xC6\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81V[a\0\xC6\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81V[a\0\xC6\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x81V[a\0\xC6\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x81V[a\0\xC6\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81V[a\x01\xFDa\x01\xF86`\x04a\"\xE2V[a\x02\rV[`@Q\x90\x15\x15\x81R` \x01a\0\xD0V[_a\x02\x17\x82a\x02\xAAV[a\x02'\x83_[` \x02\x01Qa\x03\xE5V[a\x022\x83`\x01a\x02\x1DV[a\x02=\x83`\x02a\x02\x1DV[a\x02H\x83`\x03a\x02\x1DV[a\x02S\x83`\x04a\x02\x1DV[a\x02^\x83`\x05a\x02\x1DV[a\x02i\x83`\x06a\x02\x1DV[a\x02t\x83`\x07a\x02\x1DV[a\x02\x7F\x83`\x08a\x02\x1DV[a\x02\x8A\x83`\ta\x02\x1DV[a\x02\x95\x83`\na\x02\x1DV[a\x02\xA0\x84\x84\x84a\x04\x17V[\x90P[\x93\x92PPPV[\x80Qa\x02\xB5\x90a\x06\x0BV[a\x02\xC2\x81` \x01Qa\x06\x0BV[a\x02\xCF\x81`@\x01Qa\x06\x0BV[a\x02\xDC\x81``\x01Qa\x06\x0BV[a\x02\xE9\x81`\x80\x01Qa\x06\x0BV[a\x02\xF6\x81`\xA0\x01Qa\x06\x0BV[a\x03\x03\x81`\xC0\x01Qa\x06\x0BV[a\x03\x10\x81`\xE0\x01Qa\x06\x0BV[a\x03\x1E\x81a\x01\0\x01Qa\x06\x0BV[a\x03,\x81a\x01 \x01Qa\x06\x0BV[a\x03:\x81a\x01@\x01Qa\x06\x0BV[a\x03H\x81a\x01`\x01Qa\x06\x0BV[a\x03V\x81a\x01\x80\x01Qa\x06\x0BV[a\x03d\x81a\x01\xA0\x01Qa\x03\xE5V[a\x03r\x81a\x01\xC0\x01Qa\x03\xE5V[a\x03\x80\x81a\x01\xE0\x01Qa\x03\xE5V[a\x03\x8E\x81a\x02\0\x01Qa\x03\xE5V[a\x03\x9C\x81a\x02 \x01Qa\x03\xE5V[a\x03\xAA\x81a\x02@\x01Qa\x03\xE5V[a\x03\xB8\x81a\x02`\x01Qa\x03\xE5V[a\x03\xC6\x81a\x02\x80\x01Qa\x03\xE5V[a\x03\xD4\x81a\x02\xA0\x01Qa\x03\xE5V[a\x03\xE2\x81a\x02\xC0\x01Qa\x03\xE5V[PV[_Q` a%(_9_Q\x90_R\x81\x10\x80a\x04\x13W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x0B\x14a\x04=W`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04I\x85\x85\x85a\x06\x8AV[\x90P_a\x04X\x86_\x01Qa\x0C\x19V[\x90P_a\x04j\x82\x84`\xA0\x01Q\x88a\x11\xC0V[\x90Pa\x04\x87`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04\xBB\x87a\x01`\x01Qa\x04\xB6\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x12\x1DV[a\x12\x80V[\x91P__a\x04\xCB\x8B\x88\x87\x8Ca\x12\xE7V[\x91P\x91Pa\x04\xDC\x81a\x04\xB6\x84a\x15\x1FV[\x92Pa\x04\xF5\x83a\x04\xB6\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x12\x1DV[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a%(_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x058\x85a\x04\xB6\x8Da\x01\x80\x01Q\x84a\x12\x1DV[\x94P_`@Q\x80`\x80\x01`@R\x80\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81R` \x01\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81R` \x01\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81R` \x01\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81RP\x90Pa\x05\xF9\x87\x82a\x05\xEC\x89a\x15\x1FV[a\x05\xF4a\x15\xBCV[a\x16\x89V[\x9E\x9DPPPPPPPPPPPPPPV[\x80Q` \x82\x01Q_\x91\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x91\x15\x90\x15\x16\x15a\x06DWPPPV[\x82Q` \x84\x01Q\x82`\x03\x84\x85\x85\x86\t\x85\t\x08\x83\x82\x83\t\x14\x83\x82\x10\x84\x84\x10\x16\x16\x93PPP\x81a\x06\x85W`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x06\xCA`@Q\x80a\x01\0\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[__Q` a%(_9_Q\x90_R\x90P`@Q` \x81\x01_\x81R`\xFE`\xE0\x1B\x81R\x86Q`\xC0\x1B`\x04\x82\x01R` \x87\x01Q`\xC0\x1B`\x0C\x82\x01Ra\x02\x80\x87\x01Q` \x82\x01Ra\x02\xA0\x87\x01Q`@\x82\x01R`\x01``\x82\x01R\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ`\x80\x82\x01R\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%`\xA0\x82\x01R\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n`\xC0\x82\x01R\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81`\xE0\x82\x01R`\xE0\x87\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01\0\x87\x01Q\x80Qa\x01@\x83\x01R` \x81\x01Qa\x01`\x83\x01RPa\x01 \x87\x01Q\x80Qa\x01\x80\x83\x01R` \x81\x01Qa\x01\xA0\x83\x01RPa\x01@\x87\x01Q\x80Qa\x01\xC0\x83\x01R` \x81\x01Qa\x01\xE0\x83\x01RPa\x01`\x87\x01Q\x80Qa\x02\0\x83\x01R` \x81\x01Qa\x02 \x83\x01RPa\x01\x80\x87\x01Q\x80Qa\x02@\x83\x01R` \x81\x01Qa\x02`\x83\x01RPa\x01\xE0\x87\x01Q\x80Qa\x02\x80\x83\x01R` \x81\x01Qa\x02\xA0\x83\x01RPa\x02\0\x87\x01Q\x80Qa\x02\xC0\x83\x01R` \x81\x01Qa\x02\xE0\x83\x01RPa\x02 \x87\x01Q\x80Qa\x03\0\x83\x01R` \x81\x01Qa\x03 \x83\x01RPa\x02@\x87\x01Q\x80Qa\x03@\x83\x01R` \x81\x01Qa\x03`\x83\x01RPa\x01\xA0\x87\x01Q\x80Qa\x03\x80\x83\x01R` \x81\x01Qa\x03\xA0\x83\x01RPa\x01\xC0\x87\x01Q\x80Qa\x03\xC0\x83\x01R` \x81\x01Qa\x03\xE0\x83\x01RPa\x02`\x87\x01Q\x80Qa\x04\0\x83\x01R` \x81\x01Qa\x04 \x83\x01RP`@\x87\x01Q\x80Qa\x04@\x83\x01R` \x81\x01Qa\x04`\x83\x01RP``\x87\x01Q\x80Qa\x04\x80\x83\x01R` \x81\x01Qa\x04\xA0\x83\x01RP`\x80\x87\x01Q\x80Qa\x04\xC0\x83\x01R` \x81\x01Qa\x04\xE0\x83\x01RP`\xA0\x87\x01Q\x80Qa\x05\0\x83\x01R` \x81\x01Qa\x05 \x83\x01RP`\xC0\x87\x01Q\x80Qa\x05@\x83\x01R` \x81\x01Qa\x05`\x83\x01RP\x85Qa\x05\x80\x82\x01R` \x86\x01Qa\x05\xA0\x82\x01R`@\x86\x01Qa\x05\xC0\x82\x01R``\x86\x01Qa\x05\xE0\x82\x01R`\x80\x86\x01Qa\x06\0\x82\x01R`\xA0\x86\x01Qa\x06 \x82\x01R`\xC0\x86\x01Qa\x06@\x82\x01R`\xE0\x86\x01Qa\x06`\x82\x01Ra\x01\0\x86\x01Qa\x06\x80\x82\x01Ra\x01 \x86\x01Qa\x06\xA0\x82\x01Ra\x01@\x86\x01Qa\x06\xC0\x82\x01R\x84Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP` \x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`@\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP``\x85\x01Q\x80Qa\x07\xA0\x83\x01R` \x81\x01Qa\x07\xC0\x83\x01RP`\x80\x85\x01Q\x80Qa\x07\xE0\x83\x01R` \x81\x01Qa\x08\0\x83\x01RP_\x82Ra\x08@\x82 \x82R\x82\x82Q\x06``\x85\x01R` \x82 \x82R\x82\x82Q\x06`\x80\x85\x01R`\xA0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP``\x82 \x80\x83R\x83\x81\x06\x85R\x83\x81\x82\t\x84\x82\x82\t\x91P\x80` \x87\x01RP\x80`@\x86\x01RP`\xC0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP`\xE0\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPa\x01\0\x85\x01Q\x80Q`\x80\x83\x01R` \x81\x01Q`\xA0\x83\x01RPa\x01 \x85\x01Q\x80Q`\xC0\x83\x01R` \x81\x01Q`\xE0\x83\x01RPa\x01@\x85\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01`\x82 \x82R\x82\x82Q\x06`\xA0\x85\x01Ra\x01\xA0\x85\x01Q\x81Ra\x01\xC0\x85\x01Q` \x82\x01Ra\x01\xE0\x85\x01Q`@\x82\x01Ra\x02\0\x85\x01Q``\x82\x01Ra\x02 \x85\x01Q`\x80\x82\x01Ra\x02@\x85\x01Q`\xA0\x82\x01Ra\x02`\x85\x01Q`\xC0\x82\x01Ra\x02\x80\x85\x01Q`\xE0\x82\x01Ra\x02\xA0\x85\x01Qa\x01\0\x82\x01Ra\x02\xC0\x85\x01Qa\x01 \x82\x01Ra\x01`\x82 \x82R\x82\x82Q\x06`\xC0\x85\x01Ra\x01`\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RPa\x01\x80\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPP`\xA0\x81 \x82\x81\x06`\xE0\x85\x01RPPP\x93\x92PPPV[a\x0C!a\x1F\xBCV[\x81b\x01\0\0\x03a\r\xF8W`@Q\x80``\x01`@R\x80`\x10\x81R` \x01\x7F0d\x1E\x0E\x92\xBE\xBE\xF8\x18&\x8Df;\xCA\xD6\xDB\xCF\xD6\xC0\x14\x91p\xF6\xD7\xD3P\xB1\xB1\xFAl\x10\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01~\xEE\xB2\xCBY\x81\xEDEd\x9A\xBE\xBD\xE0\x81\xDC\xFF\x16\xC8`\x1D\xE44~}\xD1b\x8B\xA2\xDA\xACC\xB7\x81R` \x01\x7F-\x1B\xA6oYA\xDC\x91\x01qq\xFAi\xEC+\xD0\x02**-A\x15\xA0\t\xA94X\xFDN&\xEC\xFB\x81R` \x01\x7F\x08h\x12\xA0\n\xC4>\xA8\x01f\x9Cd\x01q <A\xA4\x96g\x1B\xFB\xC0e\xAC\x8D\xB2MR\xCF1\xE5\x81R` \x01\x7F-\x96VQ\xCD\xD9\xE4\x81\x1FNQ\xB8\r\xDC\xA8\xA8\xB4\xA9>\xE1t \xAA\xE6\xAD\xAA\x01\xC2a|n\x85\x81R` \x01\x7F\x12YzV\xC2\xE48b\x0B\x90A\xB9\x89\x92\xAE\rNp[x\0W\xBFwf\xA2v|\xEC\xE1n\x1D\x81R` \x01\x7F\x02\xD9A\x17\xCD\x17\xBC\xF1)\x0F\xD6|\x01\x15]\xD4\x08\x07\x85}\xFFJZ\x0BM\xC6{\xEF\xA8\xAA4\xFD\x81R` \x01\x7F\x15\xEE$u\xBE\xE5\x17\xC4\xEE\x05\xE5\x1F\xA1\xEEs\x12\xA87:\x0B\x13\xDB\x8CQ\xBA\xF0L\xB2\xE9\x9B\xD2\xBD\x81R` \x01~o\xABI\xB8i\xAEb\0\x1D\xEA\xC8x\xB2f{\xD3\x1B\xF3\xE2\x8E:-vJ\xA4\x9B\x8D\x9B\xBD\xD3\x10\x81R` \x01\x7F.\x85k\xF6\xD07p\x8F\xFAL\x06\xD4\xD8\x82\x0FE\xCC\xAD\xCE\x9CZm\x17\x8C\xBDW?\x82\xE0\xF9p\x11\x81R` \x01\x7F\x14\x07\xEE\xE3Y\x93\xF2\xB1\xAD^\xC6\xD9\xB8\x95\x0C\xA3\xAF3\x13]\x06\x03\x7F\x87\x1C^3\xBFVm\xD7\xB4\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x0F\xD1W`@Q\x80``\x01`@R\x80`\x14\x81R` \x01\x7F0dKl\x9CJr\x16\x9EM\xAA1}%\xF0E\x12\xAE\x15\xC5;4\xE8\xF5\xAC\xD8\xE1U\xD0\xA6\xC1\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F&\x12]\xA1\n\x0E\xD0c'P\x8A\xBA\x06\xD1\xE3\x03\xACaf2\xDB\xED4\x9FSB-\xA9S3xW\x81R` \x01\x7F\"`\xE7$\x84K\xCARQ\x82\x93S\x96\x8EI\x150RXA\x83WG:\\\x1DY\x7Fa?l\xBD\x81R` \x01\x7F \x87\xEA,\xD6d'\x86\x08\xFB\x0E\xBD\xB8 \x90\x7FY\x85\x02\xC8\x1Bf\x90\xC1\x85\xE2\xBF\x15\xCB\x93_B\x81R` \x01\x7F\x19\xDD\xBC\xAF:\x8DF\xC1\\\x01v\xFB\xB5\xB9^M\xC5p\x88\xFF\x13\xF4\xD1\xBD\x84\xC6\xBF\xA5}\xCD\xC0\xE0\x81R` \x01\x7F\x05\xA2\xC8\\\xFCY\x17\x89`\\\xAE\x81\x8E7\xDDAa\xEE\xF9\xAAfk\xECo\xE4(\x8D\t\xE6\xD24\x18\x81R` \x01\x7F\x11\xF7\x0ESc%\x8F\xF4\xF0\xD7\x16\xA6S\xE1\xDCA\xF1\xC6D\x84\xD7\xF4\xB6\xE2\x19\xD67v\x14\xA3\x90\\\x81R` \x01\x7F)\xE8AC\xF5\x87\rGv\xA9-\xF8\xDA\x8Cl\x93\x03\xD5\x90\x88\xF3{\xA8_@\xCFo\xD1Be\xB4\xBC\x81R` \x01\x7F\x1B\xF8-\xEB\xA7\xD7I\x02\xC3p\x8C\xC6\xE7\x0Ea\xF3\x05\x12\xEC\xA9VU!\x0E'nXX\xCE\x8FX\xE5\x81R` \x01\x7F\"\xB9K.+\0C\xD0Nf-^\xC0\x18\xEA\x1C\x8A\x99\xA2:b\xC9\xEBF\xF01\x8Fj\x19I\x85\xF0\x81R` \x01\x7F)\x96\x9D\x8DSc\xBE\xF1\x10\x1Ah\xE4F\xA1N\x1D\xA7\xBA\x92\x94\xE1B\xA1F\xA9\x80\xFD\xDBMMA\xA5\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\x11\xA7W`@Q\x80``\x01`@R\x80`\x05\x81R` \x01\x7F.\xE1+\xFFJ(\x13(j\x8D\xC3\x88\xCDuM\x9A>\xF2I\x065\xEB\xA5\x0C\xB9\xC2\xE5\xE7P\x80\0\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F\t\xC52\xC60k\x93\xD2\x96x \rG\xC0\xB2\xA9\x9C\x18\xD5\x1B\x83\x8E\xEB\x1D>\xEDLS;\xB5\x12\xD0\x81R` \x01\x7F!\x08,\xA2\x16\xCB\xBFN\x1CnOE\x94\xDDP\x8C\x99m\xFB\xE1\x17N\xFB\x98\xB1\x15\t\xC6\xE3\x06F\x0B\x81R` \x01\x7F\x12w\xAEd\x15\xF0\xEF\x18\xF2\xBA_\xB1b\xC3\x9E\xB71\x1F8n-&\xD6D\x01\xF4\xA2]\xA7|%;\x81R` \x01\x7F+3}\xE1\xC8\xC1O\"\xEC\x9B\x9E/\x96\xAF\xEF6Rbsf\xF8\x17\n\n\x94\x8D\xADJ\xC1\xBD^\x80\x81R` \x01\x7F/\xBDM\xD2\x97k\xE5]\x1A\x16:\xA9\x82\x0F\xB8\x8D\xFA\xC5\xDD\xCEw\xE1\x87.\x90c '2z^\xBE\x81R` \x01\x7F\x10z\xABI\xE6Zg\xF9\xDA\x9C\xD2\xAB\xF7\x8B\xE3\x8B\xD9\xDC\x1D]\xB3\x9F\x81\xDE6\xBC\xFA[K\x03\x90C\x81R` \x01~\xE1Kcd\xA4~\x9CB\x84\xA9\xF8\n_\xC4\x1C\xD2\x12\xB0\xD4\xDB\xF8\xA5p7p\xA4\n\x9A49\x90\x81R` \x01\x7F0dNr\xE11\xA0)\x04\x8Bn\x19?\xD8A\x04\\\xEA$\xF6\xFDsk\xEC#\x12\x04p\x8Fp66\x81R` \x01\x7F\"9\x9C4\x13\x9B\xFF\xAD\xA8\xDE\x04j\xACP\xC9b\x8E5\x17\xA3\xA4RySd\xE7w\xCDe\xBB\x9FH\x81R` \x01\x7F\"\x90\xEE1\xC4\x82\xCF\x92\xB7\x9B\x19D\xDB\x1C\x01Gc^\x90\x04\xDB\x8C;\x9D\x13dK\xEF1\xEC;\xD3\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11\xE1`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x11\xEB\x84\x84a\x17:V[\x80\x82Ra\x11\xFB\x90\x85\x90\x85\x90a\x17\x8BV[` \x82\x01R\x80Qa\x12\x11\x90\x85\x90\x84\x90\x86\x90a\x17\xFAV[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x128a\x1F\xE0V[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x12xW`@Qc\x03;qM`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x12\x9Ba\x1F\xFEV[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x80\x84\x01\x91\x90\x91R\x90\x84\x01Q``\x83\x01R_\x90\x83`\x80\x84`\x06Z\xFA\x90P\x80a\x12xW`@Qc0*\xED\xB5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x13\x1A\x87\x87\x87\x87a\x19IV[\x90P_Q` a%(_9_Q\x90_R_a\x136\x88\x87\x89a\x1E\x13V[\x90Pa\x13B\x81\x83a$\xCFV[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x13n\x85a\x04\xB6\x8A_\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\x96\x86a\x04\xB6\x8A` \x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\xBE\x86a\x04\xB6\x8A`@\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\xE6\x86a\x04\xB6\x8A``\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x0E\x86a\x04\xB6\x8A`\x80\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x146\x86a\x04\xB6\x8D`@\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x14^\x86a\x04\xB6\x8D``\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x86\x86a\x04\xB6\x8D`\x80\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xAE\x86a\x04\xB6\x8D`\xA0\x01Q\x84a\x12\x1DV[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x14\xD8\x87a\x04\xB6\x8B`\xA0\x01Q\x84a\x12\x1DV[\x96Pa\x15\x0Ea\x15\x08`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x12\x1DV[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x15FWP\x90V[`@Q\x80`@\x01`@R\x80\x83_\x01Q\x81R` \x01\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x84` \x01Qa\x15\x8A\x91\x90a%\x08V[a\x15\xB4\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa$\xCFV[\x90R\x92\x91PPV[a\x15\xE3`@Q\x80`\x80\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[`@Q\x80`\x80\x01`@R\x80\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x81R` \x01\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81R` \x01\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81R` \x01\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81RP\x90P\x90V[___`@Q\x87Q\x81R` \x88\x01Q` \x82\x01R` \x87\x01Q`@\x82\x01R\x86Q``\x82\x01R``\x87\x01Q`\x80\x82\x01R`@\x87\x01Q`\xA0\x82\x01R\x85Q`\xC0\x82\x01R` \x86\x01Q`\xE0\x82\x01R` \x85\x01Qa\x01\0\x82\x01R\x84Qa\x01 \x82\x01R``\x85\x01Qa\x01@\x82\x01R`@\x85\x01Qa\x01`\x82\x01R` _a\x01\x80\x83`\x08Z\xFA\x91PP_Q\x91P\x80a\x17,W`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a%(_9_Q\x90_R\x90\x83\x80\x15a\x17{W\x84\x93P_[\x82\x81\x10\x15a\x17oW\x83\x85\x86\t\x94P`\x01\x01a\x17YV[P`\x01\x84\x03\x93Pa\x17\x82V[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x17\x9CWP`\x01a\x02\xA3V[\x81_\x03a\x17\xAAWP_a\x02\xA3V[` \x84\x01Q_Q` a%(_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x17\xD8W`\x01\x87\x03\x92Pa\x17\xDFV[`\x01\x84\x03\x92P[Pa\x17\xE9\x82a\x1E\xFEV[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a%(_9_Q\x90_R\x82\x82\x03a\x18sW`\x01_[`\x0B\x81\x10\x15a\x18hW\x81\x86\x03a\x18EW\x86\x81`\x0B\x81\x10a\x186Wa\x186a$\xBBV[` \x02\x01Q\x93PPPPa\x172V[\x82\x80a\x18SWa\x18Sa$\xF4V[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x18\x14V[P_\x92PPPa\x172V[a\x18{a \x1CV[`@\x87\x01Q`\x01a\x01@\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x0B\x81\x10\x15a\x18\xBDW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x18\x90V[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x0B\x81\x10\x15a\x19\x11W\x88\x82Q\x8A\x85Q\x8C\x88Q\x8A\t\t\t\x89\x81\x88\x08\x96PP\x88\x89\x8D\x84Q\x8C\x03\x08\x86\t\x94P` \x93\x84\x01\x93\x92\x83\x01\x92\x91\x90\x91\x01\x90`\x01\x01a\x18\xD1V[PPPP\x80\x92PP_a\x19#\x83a\x1E\xFEV[\x90P` \x8A\x01Q\x85\x81\x89\t\x96PP\x84\x81\x87\t\x95P\x84\x82\x87\t\x9A\x99PPPPPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R______Q` a%(_9_Q\x90_R\x90P`\x80\x89\x01Q\x81` \x8A\x01Q` \x8C\x01Q\t\x95P\x89Q\x94P\x81`\xA0\x8B\x01Q``\x8C\x01Q\t\x93P\x81a\x01\xA0\x89\x01Q\x85\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x85\t\x92P\x81a\x01\xC0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x85\t\x92P\x81a\x01\xE0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x85\t\x92P\x81a\x02\0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x85\t\x92P\x81a\x02 \x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92PP\x80\x84\x83\t\x93P\x80\x84\x86\x08\x94Pa\x1A\xB6\x87`\xA0\x01Q\x86a\x12\x1DV[\x95P\x88Q``\x8A\x01Q`\x80\x8B\x01Q\x83\x82\x84\t\x97P\x83a\x02\xC0\x8B\x01Q\x89\t\x97P\x83a\x02@\x8B\x01Q\x83\t\x95P\x83a\x01\xA0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02`\x8B\x01Q\x83\t\x95P\x83a\x01\xC0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\x80\x8B\x01Q\x83\t\x95P\x83a\x01\xE0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\xA0\x8B\x01Q\x83\t\x95P\x83a\x02\0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95PPPP\x80\x83\x86\t\x94Pa\x1B}\x86a\x04\xB6\x8C`\xC0\x01Q\x88\x85a\x1Bx\x91\x90a$\xCFV[a\x12\x1DV[\x95Pa\x1B\x96\x86a\x04\xB6\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x12\x1DV[\x95Pa\x1B\xB0\x86a\x04\xB6\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x12\x1DV[\x95Pa\x1B\xCA\x86a\x04\xB6\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x12\x1DV[\x95Pa\x1B\xE4\x86a\x04\xB6\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x12\x1DV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x1C\t\x86a\x04\xB6\x8Ca\x01`\x01Q\x86a\x12\x1DV[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x1C.\x86a\x04\xB6\x8Ca\x01\x80\x01Q\x86a\x12\x1DV[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C]\x86a\x04\xB6\x8Ca\x01\xE0\x01Q\x86a\x12\x1DV[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\x8C\x86a\x04\xB6\x8Ca\x02\0\x01Q\x86a\x12\x1DV[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\xBB\x86a\x04\xB6\x8Ca\x02 \x01Q\x86a\x12\x1DV[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\xEA\x86a\x04\xB6\x8Ca\x02@\x01Q\x86a\x12\x1DV[\x95Pa\x1D\x07\x86a\x04\xB6\x8Ca\x01\xA0\x01Qa\x1Bx\x8Ba\x02 \x01Qa\x1F\x90V[\x95Pa\x1D\x18\x86\x8Ba\x01\xC0\x01Qa\x12\x80V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92P\x80a\x01\xE0\x88\x01Q\x84\t\x92P\x80a\x02\0\x88\x01Q\x84\t\x92P\x80a\x02 \x88\x01Q\x84\t\x92Pa\x1D^\x86a\x04\xB6\x8Ca\x02`\x01Q\x86a\x12\x1DV[\x95Pa\x1Dl\x88_\x01Qa\x1F\x90V[\x94Pa\x1D\x80\x86a\x04\xB6\x89`\xC0\x01Q\x88a\x12\x1DV[\x95P\x80`\x01\x89Q\x08`\xA0\x8A\x01Q\x90\x93P\x81\x90\x80\t\x91P\x80\x82\x84\t\x92P\x80\x83\x86\t\x94Pa\x1D\xB4\x86a\x04\xB6\x89`\xE0\x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1D\xCF\x86a\x04\xB6\x89a\x01\0\x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1D\xEA\x86a\x04\xB6\x89a\x01 \x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1E\x05\x86a\x04\xB6\x89a\x01@\x01Q\x88a\x12\x1DV[\x9A\x99PPPPPPPPPPV[___Q` a%(_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[_\x81_\x03a\x1F\x1FW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a%(_9_Q\x90_R\x90P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01R`\x02\x82\x03`\x80\x82\x01R\x81`\xA0\x82\x01R` _`\xC0\x83`\x05Z\xFA\x92PP_Q\x92P\x81a\x1F\x89W`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a%(_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1F\xB3W\x83\x82\x03\x92Pa\x1F\x89V[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1F\xDBa \x1CV[\x90R\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80a\x01`\x01`@R\x80`\x0B\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Qa\x02\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a sWa sa ;V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a sWa sa ;V[_`@\x82\x84\x03\x12\x15a \xADW__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a \xD0Wa \xD0a ;V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a \xF9W__\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x1DWa!\x1Da ;V[`@R\x80a\x01`\x84\x01\x85\x81\x11\x15a!2W__\xFD[\x84[\x81\x81\x10\x15a!LW\x805\x83R` \x92\x83\x01\x92\x01a!4V[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a!hW__\xFD[a!pa OV[\x90Pa!|\x83\x83a \x9DV[\x81Ra!\x8B\x83`@\x84\x01a \x9DV[` \x82\x01Ra!\x9D\x83`\x80\x84\x01a \x9DV[`@\x82\x01Ra!\xAF\x83`\xC0\x84\x01a \x9DV[``\x82\x01Ra!\xC2\x83a\x01\0\x84\x01a \x9DV[`\x80\x82\x01Ra!\xD5\x83a\x01@\x84\x01a \x9DV[`\xA0\x82\x01Ra!\xE8\x83a\x01\x80\x84\x01a \x9DV[`\xC0\x82\x01Ra!\xFB\x83a\x01\xC0\x84\x01a \x9DV[`\xE0\x82\x01Ra\"\x0E\x83a\x02\0\x84\x01a \x9DV[a\x01\0\x82\x01Ra\"\"\x83a\x02@\x84\x01a \x9DV[a\x01 \x82\x01Ra\"6\x83a\x02\x80\x84\x01a \x9DV[a\x01@\x82\x01Ra\"J\x83a\x02\xC0\x84\x01a \x9DV[a\x01`\x82\x01Ra\"^\x83a\x03\0\x84\x01a \x9DV[a\x01\x80\x82\x01Ra\x03@\x82\x015a\x01\xA0\x82\x01Ra\x03`\x82\x015a\x01\xC0\x82\x01Ra\x03\x80\x82\x015a\x01\xE0\x82\x01Ra\x03\xA0\x82\x015a\x02\0\x82\x01Ra\x03\xC0\x82\x015a\x02 \x82\x01Ra\x03\xE0\x82\x015a\x02@\x82\x01Ra\x04\0\x82\x015a\x02`\x82\x01Ra\x04 \x82\x015a\x02\x80\x82\x01Ra\x04@\x82\x015a\x02\xA0\x82\x01Ra\x04`\x90\x91\x015a\x02\xC0\x82\x01R\x91\x90PV[___\x83\x85\x03a\n\xE0\x81\x12\x15a\"\xF6W__\xFD[a\x05\0\x81\x12\x15a#\x04W__\xFD[Pa#\ra yV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra#(\x86`@\x87\x01a \x9DV[`@\x82\x01Ra#:\x86`\x80\x87\x01a \x9DV[``\x82\x01Ra#L\x86`\xC0\x87\x01a \x9DV[`\x80\x82\x01Ra#_\x86a\x01\0\x87\x01a \x9DV[`\xA0\x82\x01Ra#r\x86a\x01@\x87\x01a \x9DV[`\xC0\x82\x01Ra#\x85\x86a\x01\x80\x87\x01a \x9DV[`\xE0\x82\x01Ra#\x98\x86a\x01\xC0\x87\x01a \x9DV[a\x01\0\x82\x01Ra#\xAC\x86a\x02\0\x87\x01a \x9DV[a\x01 \x82\x01Ra#\xC0\x86a\x02@\x87\x01a \x9DV[a\x01@\x82\x01Ra#\xD4\x86a\x02\x80\x87\x01a \x9DV[a\x01`\x82\x01Ra#\xE8\x86a\x02\xC0\x87\x01a \x9DV[a\x01\x80\x82\x01Ra#\xFC\x86a\x03\0\x87\x01a \x9DV[a\x01\xA0\x82\x01Ra$\x10\x86a\x03@\x87\x01a \x9DV[a\x01\xC0\x82\x01Ra$$\x86a\x03\x80\x87\x01a \x9DV[a\x01\xE0\x82\x01Ra$8\x86a\x03\xC0\x87\x01a \x9DV[a\x02\0\x82\x01Ra$L\x86a\x04\0\x87\x01a \x9DV[a\x02 \x82\x01Ra$`\x86a\x04@\x87\x01a \x9DV[a\x02@\x82\x01Ra$t\x86a\x04\x80\x87\x01a \x9DV[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa$\xA2\x85a\x05\0\x86\x01a \xEAV[\x91Pa$\xB2\x85a\x06`\x86\x01a!WV[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a$\xEEWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a%\"WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\xA1dsolcC\0\x08\x1C\0\n",
3131 );
3132 #[rustfmt::skip]
3138 #[allow(clippy::all)]
3139 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3140 b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x9BW_5`\xE0\x1C\x80c\xAF\x19k\xA2\x11a\0nW\x80c\xAF\x19k\xA2\x14a\x01NW\x80c\xDE$\xAC\x0F\x14a\x01uW\x80c\xE3Q-V\x14a\x01\x9CW\x80c\xF5\x14C&\x14a\x01\xC3W\x80c\xFC\x86`\xC7\x14a\x01\xEAW__\xFD[\x80c\x0CU\x1F?\x14a\0\x9FW\x80cKG4\xE3\x14a\0\xD9W\x80cZ\x14\xC0\xFE\x14a\x01\0W\x80c\x83LE*\x14a\x01'W[__\xFD[a\0\xC6\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC6\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81V[a\0\xC6\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x81V[a\0\xC6\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81V[a\0\xC6\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81V[a\0\xC6\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x81V[a\0\xC6\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x81V[a\0\xC6\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81V[a\x01\xFDa\x01\xF86`\x04a\"\xE2V[a\x02\rV[`@Q\x90\x15\x15\x81R` \x01a\0\xD0V[_a\x02\x17\x82a\x02\xAAV[a\x02'\x83_[` \x02\x01Qa\x03\xE5V[a\x022\x83`\x01a\x02\x1DV[a\x02=\x83`\x02a\x02\x1DV[a\x02H\x83`\x03a\x02\x1DV[a\x02S\x83`\x04a\x02\x1DV[a\x02^\x83`\x05a\x02\x1DV[a\x02i\x83`\x06a\x02\x1DV[a\x02t\x83`\x07a\x02\x1DV[a\x02\x7F\x83`\x08a\x02\x1DV[a\x02\x8A\x83`\ta\x02\x1DV[a\x02\x95\x83`\na\x02\x1DV[a\x02\xA0\x84\x84\x84a\x04\x17V[\x90P[\x93\x92PPPV[\x80Qa\x02\xB5\x90a\x06\x0BV[a\x02\xC2\x81` \x01Qa\x06\x0BV[a\x02\xCF\x81`@\x01Qa\x06\x0BV[a\x02\xDC\x81``\x01Qa\x06\x0BV[a\x02\xE9\x81`\x80\x01Qa\x06\x0BV[a\x02\xF6\x81`\xA0\x01Qa\x06\x0BV[a\x03\x03\x81`\xC0\x01Qa\x06\x0BV[a\x03\x10\x81`\xE0\x01Qa\x06\x0BV[a\x03\x1E\x81a\x01\0\x01Qa\x06\x0BV[a\x03,\x81a\x01 \x01Qa\x06\x0BV[a\x03:\x81a\x01@\x01Qa\x06\x0BV[a\x03H\x81a\x01`\x01Qa\x06\x0BV[a\x03V\x81a\x01\x80\x01Qa\x06\x0BV[a\x03d\x81a\x01\xA0\x01Qa\x03\xE5V[a\x03r\x81a\x01\xC0\x01Qa\x03\xE5V[a\x03\x80\x81a\x01\xE0\x01Qa\x03\xE5V[a\x03\x8E\x81a\x02\0\x01Qa\x03\xE5V[a\x03\x9C\x81a\x02 \x01Qa\x03\xE5V[a\x03\xAA\x81a\x02@\x01Qa\x03\xE5V[a\x03\xB8\x81a\x02`\x01Qa\x03\xE5V[a\x03\xC6\x81a\x02\x80\x01Qa\x03\xE5V[a\x03\xD4\x81a\x02\xA0\x01Qa\x03\xE5V[a\x03\xE2\x81a\x02\xC0\x01Qa\x03\xE5V[PV[_Q` a%(_9_Q\x90_R\x81\x10\x80a\x04\x13W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x0B\x14a\x04=W`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04I\x85\x85\x85a\x06\x8AV[\x90P_a\x04X\x86_\x01Qa\x0C\x19V[\x90P_a\x04j\x82\x84`\xA0\x01Q\x88a\x11\xC0V[\x90Pa\x04\x87`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04\xBB\x87a\x01`\x01Qa\x04\xB6\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x12\x1DV[a\x12\x80V[\x91P__a\x04\xCB\x8B\x88\x87\x8Ca\x12\xE7V[\x91P\x91Pa\x04\xDC\x81a\x04\xB6\x84a\x15\x1FV[\x92Pa\x04\xF5\x83a\x04\xB6\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x12\x1DV[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a%(_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x058\x85a\x04\xB6\x8Da\x01\x80\x01Q\x84a\x12\x1DV[\x94P_`@Q\x80`\x80\x01`@R\x80\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81R` \x01\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81R` \x01\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81R` \x01\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81RP\x90Pa\x05\xF9\x87\x82a\x05\xEC\x89a\x15\x1FV[a\x05\xF4a\x15\xBCV[a\x16\x89V[\x9E\x9DPPPPPPPPPPPPPPV[\x80Q` \x82\x01Q_\x91\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x91\x15\x90\x15\x16\x15a\x06DWPPPV[\x82Q` \x84\x01Q\x82`\x03\x84\x85\x85\x86\t\x85\t\x08\x83\x82\x83\t\x14\x83\x82\x10\x84\x84\x10\x16\x16\x93PPP\x81a\x06\x85W`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x06\xCA`@Q\x80a\x01\0\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[__Q` a%(_9_Q\x90_R\x90P`@Q` \x81\x01_\x81R`\xFE`\xE0\x1B\x81R\x86Q`\xC0\x1B`\x04\x82\x01R` \x87\x01Q`\xC0\x1B`\x0C\x82\x01Ra\x02\x80\x87\x01Q` \x82\x01Ra\x02\xA0\x87\x01Q`@\x82\x01R`\x01``\x82\x01R\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ`\x80\x82\x01R\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%`\xA0\x82\x01R\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n`\xC0\x82\x01R\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81`\xE0\x82\x01R`\xE0\x87\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01\0\x87\x01Q\x80Qa\x01@\x83\x01R` \x81\x01Qa\x01`\x83\x01RPa\x01 \x87\x01Q\x80Qa\x01\x80\x83\x01R` \x81\x01Qa\x01\xA0\x83\x01RPa\x01@\x87\x01Q\x80Qa\x01\xC0\x83\x01R` \x81\x01Qa\x01\xE0\x83\x01RPa\x01`\x87\x01Q\x80Qa\x02\0\x83\x01R` \x81\x01Qa\x02 \x83\x01RPa\x01\x80\x87\x01Q\x80Qa\x02@\x83\x01R` \x81\x01Qa\x02`\x83\x01RPa\x01\xE0\x87\x01Q\x80Qa\x02\x80\x83\x01R` \x81\x01Qa\x02\xA0\x83\x01RPa\x02\0\x87\x01Q\x80Qa\x02\xC0\x83\x01R` \x81\x01Qa\x02\xE0\x83\x01RPa\x02 \x87\x01Q\x80Qa\x03\0\x83\x01R` \x81\x01Qa\x03 \x83\x01RPa\x02@\x87\x01Q\x80Qa\x03@\x83\x01R` \x81\x01Qa\x03`\x83\x01RPa\x01\xA0\x87\x01Q\x80Qa\x03\x80\x83\x01R` \x81\x01Qa\x03\xA0\x83\x01RPa\x01\xC0\x87\x01Q\x80Qa\x03\xC0\x83\x01R` \x81\x01Qa\x03\xE0\x83\x01RPa\x02`\x87\x01Q\x80Qa\x04\0\x83\x01R` \x81\x01Qa\x04 \x83\x01RP`@\x87\x01Q\x80Qa\x04@\x83\x01R` \x81\x01Qa\x04`\x83\x01RP``\x87\x01Q\x80Qa\x04\x80\x83\x01R` \x81\x01Qa\x04\xA0\x83\x01RP`\x80\x87\x01Q\x80Qa\x04\xC0\x83\x01R` \x81\x01Qa\x04\xE0\x83\x01RP`\xA0\x87\x01Q\x80Qa\x05\0\x83\x01R` \x81\x01Qa\x05 \x83\x01RP`\xC0\x87\x01Q\x80Qa\x05@\x83\x01R` \x81\x01Qa\x05`\x83\x01RP\x85Qa\x05\x80\x82\x01R` \x86\x01Qa\x05\xA0\x82\x01R`@\x86\x01Qa\x05\xC0\x82\x01R``\x86\x01Qa\x05\xE0\x82\x01R`\x80\x86\x01Qa\x06\0\x82\x01R`\xA0\x86\x01Qa\x06 \x82\x01R`\xC0\x86\x01Qa\x06@\x82\x01R`\xE0\x86\x01Qa\x06`\x82\x01Ra\x01\0\x86\x01Qa\x06\x80\x82\x01Ra\x01 \x86\x01Qa\x06\xA0\x82\x01Ra\x01@\x86\x01Qa\x06\xC0\x82\x01R\x84Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP` \x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`@\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP``\x85\x01Q\x80Qa\x07\xA0\x83\x01R` \x81\x01Qa\x07\xC0\x83\x01RP`\x80\x85\x01Q\x80Qa\x07\xE0\x83\x01R` \x81\x01Qa\x08\0\x83\x01RP_\x82Ra\x08@\x82 \x82R\x82\x82Q\x06``\x85\x01R` \x82 \x82R\x82\x82Q\x06`\x80\x85\x01R`\xA0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP``\x82 \x80\x83R\x83\x81\x06\x85R\x83\x81\x82\t\x84\x82\x82\t\x91P\x80` \x87\x01RP\x80`@\x86\x01RP`\xC0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP`\xE0\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPa\x01\0\x85\x01Q\x80Q`\x80\x83\x01R` \x81\x01Q`\xA0\x83\x01RPa\x01 \x85\x01Q\x80Q`\xC0\x83\x01R` \x81\x01Q`\xE0\x83\x01RPa\x01@\x85\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01`\x82 \x82R\x82\x82Q\x06`\xA0\x85\x01Ra\x01\xA0\x85\x01Q\x81Ra\x01\xC0\x85\x01Q` \x82\x01Ra\x01\xE0\x85\x01Q`@\x82\x01Ra\x02\0\x85\x01Q``\x82\x01Ra\x02 \x85\x01Q`\x80\x82\x01Ra\x02@\x85\x01Q`\xA0\x82\x01Ra\x02`\x85\x01Q`\xC0\x82\x01Ra\x02\x80\x85\x01Q`\xE0\x82\x01Ra\x02\xA0\x85\x01Qa\x01\0\x82\x01Ra\x02\xC0\x85\x01Qa\x01 \x82\x01Ra\x01`\x82 \x82R\x82\x82Q\x06`\xC0\x85\x01Ra\x01`\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RPa\x01\x80\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPP`\xA0\x81 \x82\x81\x06`\xE0\x85\x01RPPP\x93\x92PPPV[a\x0C!a\x1F\xBCV[\x81b\x01\0\0\x03a\r\xF8W`@Q\x80``\x01`@R\x80`\x10\x81R` \x01\x7F0d\x1E\x0E\x92\xBE\xBE\xF8\x18&\x8Df;\xCA\xD6\xDB\xCF\xD6\xC0\x14\x91p\xF6\xD7\xD3P\xB1\xB1\xFAl\x10\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01~\xEE\xB2\xCBY\x81\xEDEd\x9A\xBE\xBD\xE0\x81\xDC\xFF\x16\xC8`\x1D\xE44~}\xD1b\x8B\xA2\xDA\xACC\xB7\x81R` \x01\x7F-\x1B\xA6oYA\xDC\x91\x01qq\xFAi\xEC+\xD0\x02**-A\x15\xA0\t\xA94X\xFDN&\xEC\xFB\x81R` \x01\x7F\x08h\x12\xA0\n\xC4>\xA8\x01f\x9Cd\x01q <A\xA4\x96g\x1B\xFB\xC0e\xAC\x8D\xB2MR\xCF1\xE5\x81R` \x01\x7F-\x96VQ\xCD\xD9\xE4\x81\x1FNQ\xB8\r\xDC\xA8\xA8\xB4\xA9>\xE1t \xAA\xE6\xAD\xAA\x01\xC2a|n\x85\x81R` \x01\x7F\x12YzV\xC2\xE48b\x0B\x90A\xB9\x89\x92\xAE\rNp[x\0W\xBFwf\xA2v|\xEC\xE1n\x1D\x81R` \x01\x7F\x02\xD9A\x17\xCD\x17\xBC\xF1)\x0F\xD6|\x01\x15]\xD4\x08\x07\x85}\xFFJZ\x0BM\xC6{\xEF\xA8\xAA4\xFD\x81R` \x01\x7F\x15\xEE$u\xBE\xE5\x17\xC4\xEE\x05\xE5\x1F\xA1\xEEs\x12\xA87:\x0B\x13\xDB\x8CQ\xBA\xF0L\xB2\xE9\x9B\xD2\xBD\x81R` \x01~o\xABI\xB8i\xAEb\0\x1D\xEA\xC8x\xB2f{\xD3\x1B\xF3\xE2\x8E:-vJ\xA4\x9B\x8D\x9B\xBD\xD3\x10\x81R` \x01\x7F.\x85k\xF6\xD07p\x8F\xFAL\x06\xD4\xD8\x82\x0FE\xCC\xAD\xCE\x9CZm\x17\x8C\xBDW?\x82\xE0\xF9p\x11\x81R` \x01\x7F\x14\x07\xEE\xE3Y\x93\xF2\xB1\xAD^\xC6\xD9\xB8\x95\x0C\xA3\xAF3\x13]\x06\x03\x7F\x87\x1C^3\xBFVm\xD7\xB4\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x0F\xD1W`@Q\x80``\x01`@R\x80`\x14\x81R` \x01\x7F0dKl\x9CJr\x16\x9EM\xAA1}%\xF0E\x12\xAE\x15\xC5;4\xE8\xF5\xAC\xD8\xE1U\xD0\xA6\xC1\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F&\x12]\xA1\n\x0E\xD0c'P\x8A\xBA\x06\xD1\xE3\x03\xACaf2\xDB\xED4\x9FSB-\xA9S3xW\x81R` \x01\x7F\"`\xE7$\x84K\xCARQ\x82\x93S\x96\x8EI\x150RXA\x83WG:\\\x1DY\x7Fa?l\xBD\x81R` \x01\x7F \x87\xEA,\xD6d'\x86\x08\xFB\x0E\xBD\xB8 \x90\x7FY\x85\x02\xC8\x1Bf\x90\xC1\x85\xE2\xBF\x15\xCB\x93_B\x81R` \x01\x7F\x19\xDD\xBC\xAF:\x8DF\xC1\\\x01v\xFB\xB5\xB9^M\xC5p\x88\xFF\x13\xF4\xD1\xBD\x84\xC6\xBF\xA5}\xCD\xC0\xE0\x81R` \x01\x7F\x05\xA2\xC8\\\xFCY\x17\x89`\\\xAE\x81\x8E7\xDDAa\xEE\xF9\xAAfk\xECo\xE4(\x8D\t\xE6\xD24\x18\x81R` \x01\x7F\x11\xF7\x0ESc%\x8F\xF4\xF0\xD7\x16\xA6S\xE1\xDCA\xF1\xC6D\x84\xD7\xF4\xB6\xE2\x19\xD67v\x14\xA3\x90\\\x81R` \x01\x7F)\xE8AC\xF5\x87\rGv\xA9-\xF8\xDA\x8Cl\x93\x03\xD5\x90\x88\xF3{\xA8_@\xCFo\xD1Be\xB4\xBC\x81R` \x01\x7F\x1B\xF8-\xEB\xA7\xD7I\x02\xC3p\x8C\xC6\xE7\x0Ea\xF3\x05\x12\xEC\xA9VU!\x0E'nXX\xCE\x8FX\xE5\x81R` \x01\x7F\"\xB9K.+\0C\xD0Nf-^\xC0\x18\xEA\x1C\x8A\x99\xA2:b\xC9\xEBF\xF01\x8Fj\x19I\x85\xF0\x81R` \x01\x7F)\x96\x9D\x8DSc\xBE\xF1\x10\x1Ah\xE4F\xA1N\x1D\xA7\xBA\x92\x94\xE1B\xA1F\xA9\x80\xFD\xDBMMA\xA5\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\x11\xA7W`@Q\x80``\x01`@R\x80`\x05\x81R` \x01\x7F.\xE1+\xFFJ(\x13(j\x8D\xC3\x88\xCDuM\x9A>\xF2I\x065\xEB\xA5\x0C\xB9\xC2\xE5\xE7P\x80\0\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F\t\xC52\xC60k\x93\xD2\x96x \rG\xC0\xB2\xA9\x9C\x18\xD5\x1B\x83\x8E\xEB\x1D>\xEDLS;\xB5\x12\xD0\x81R` \x01\x7F!\x08,\xA2\x16\xCB\xBFN\x1CnOE\x94\xDDP\x8C\x99m\xFB\xE1\x17N\xFB\x98\xB1\x15\t\xC6\xE3\x06F\x0B\x81R` \x01\x7F\x12w\xAEd\x15\xF0\xEF\x18\xF2\xBA_\xB1b\xC3\x9E\xB71\x1F8n-&\xD6D\x01\xF4\xA2]\xA7|%;\x81R` \x01\x7F+3}\xE1\xC8\xC1O\"\xEC\x9B\x9E/\x96\xAF\xEF6Rbsf\xF8\x17\n\n\x94\x8D\xADJ\xC1\xBD^\x80\x81R` \x01\x7F/\xBDM\xD2\x97k\xE5]\x1A\x16:\xA9\x82\x0F\xB8\x8D\xFA\xC5\xDD\xCEw\xE1\x87.\x90c '2z^\xBE\x81R` \x01\x7F\x10z\xABI\xE6Zg\xF9\xDA\x9C\xD2\xAB\xF7\x8B\xE3\x8B\xD9\xDC\x1D]\xB3\x9F\x81\xDE6\xBC\xFA[K\x03\x90C\x81R` \x01~\xE1Kcd\xA4~\x9CB\x84\xA9\xF8\n_\xC4\x1C\xD2\x12\xB0\xD4\xDB\xF8\xA5p7p\xA4\n\x9A49\x90\x81R` \x01\x7F0dNr\xE11\xA0)\x04\x8Bn\x19?\xD8A\x04\\\xEA$\xF6\xFDsk\xEC#\x12\x04p\x8Fp66\x81R` \x01\x7F\"9\x9C4\x13\x9B\xFF\xAD\xA8\xDE\x04j\xACP\xC9b\x8E5\x17\xA3\xA4RySd\xE7w\xCDe\xBB\x9FH\x81R` \x01\x7F\"\x90\xEE1\xC4\x82\xCF\x92\xB7\x9B\x19D\xDB\x1C\x01Gc^\x90\x04\xDB\x8C;\x9D\x13dK\xEF1\xEC;\xD3\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11\xE1`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x11\xEB\x84\x84a\x17:V[\x80\x82Ra\x11\xFB\x90\x85\x90\x85\x90a\x17\x8BV[` \x82\x01R\x80Qa\x12\x11\x90\x85\x90\x84\x90\x86\x90a\x17\xFAV[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x128a\x1F\xE0V[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x12xW`@Qc\x03;qM`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x12\x9Ba\x1F\xFEV[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x80\x84\x01\x91\x90\x91R\x90\x84\x01Q``\x83\x01R_\x90\x83`\x80\x84`\x06Z\xFA\x90P\x80a\x12xW`@Qc0*\xED\xB5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x13\x1A\x87\x87\x87\x87a\x19IV[\x90P_Q` a%(_9_Q\x90_R_a\x136\x88\x87\x89a\x1E\x13V[\x90Pa\x13B\x81\x83a$\xCFV[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x13n\x85a\x04\xB6\x8A_\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\x96\x86a\x04\xB6\x8A` \x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\xBE\x86a\x04\xB6\x8A`@\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\xE6\x86a\x04\xB6\x8A``\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x0E\x86a\x04\xB6\x8A`\x80\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x146\x86a\x04\xB6\x8D`@\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x14^\x86a\x04\xB6\x8D``\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x86\x86a\x04\xB6\x8D`\x80\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xAE\x86a\x04\xB6\x8D`\xA0\x01Q\x84a\x12\x1DV[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x14\xD8\x87a\x04\xB6\x8B`\xA0\x01Q\x84a\x12\x1DV[\x96Pa\x15\x0Ea\x15\x08`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x12\x1DV[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x15FWP\x90V[`@Q\x80`@\x01`@R\x80\x83_\x01Q\x81R` \x01\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x84` \x01Qa\x15\x8A\x91\x90a%\x08V[a\x15\xB4\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa$\xCFV[\x90R\x92\x91PPV[a\x15\xE3`@Q\x80`\x80\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[`@Q\x80`\x80\x01`@R\x80\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x81R` \x01\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81R` \x01\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81R` \x01\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81RP\x90P\x90V[___`@Q\x87Q\x81R` \x88\x01Q` \x82\x01R` \x87\x01Q`@\x82\x01R\x86Q``\x82\x01R``\x87\x01Q`\x80\x82\x01R`@\x87\x01Q`\xA0\x82\x01R\x85Q`\xC0\x82\x01R` \x86\x01Q`\xE0\x82\x01R` \x85\x01Qa\x01\0\x82\x01R\x84Qa\x01 \x82\x01R``\x85\x01Qa\x01@\x82\x01R`@\x85\x01Qa\x01`\x82\x01R` _a\x01\x80\x83`\x08Z\xFA\x91PP_Q\x91P\x80a\x17,W`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a%(_9_Q\x90_R\x90\x83\x80\x15a\x17{W\x84\x93P_[\x82\x81\x10\x15a\x17oW\x83\x85\x86\t\x94P`\x01\x01a\x17YV[P`\x01\x84\x03\x93Pa\x17\x82V[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x17\x9CWP`\x01a\x02\xA3V[\x81_\x03a\x17\xAAWP_a\x02\xA3V[` \x84\x01Q_Q` a%(_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x17\xD8W`\x01\x87\x03\x92Pa\x17\xDFV[`\x01\x84\x03\x92P[Pa\x17\xE9\x82a\x1E\xFEV[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a%(_9_Q\x90_R\x82\x82\x03a\x18sW`\x01_[`\x0B\x81\x10\x15a\x18hW\x81\x86\x03a\x18EW\x86\x81`\x0B\x81\x10a\x186Wa\x186a$\xBBV[` \x02\x01Q\x93PPPPa\x172V[\x82\x80a\x18SWa\x18Sa$\xF4V[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x18\x14V[P_\x92PPPa\x172V[a\x18{a \x1CV[`@\x87\x01Q`\x01a\x01@\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x0B\x81\x10\x15a\x18\xBDW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x18\x90V[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x0B\x81\x10\x15a\x19\x11W\x88\x82Q\x8A\x85Q\x8C\x88Q\x8A\t\t\t\x89\x81\x88\x08\x96PP\x88\x89\x8D\x84Q\x8C\x03\x08\x86\t\x94P` \x93\x84\x01\x93\x92\x83\x01\x92\x91\x90\x91\x01\x90`\x01\x01a\x18\xD1V[PPPP\x80\x92PP_a\x19#\x83a\x1E\xFEV[\x90P` \x8A\x01Q\x85\x81\x89\t\x96PP\x84\x81\x87\t\x95P\x84\x82\x87\t\x9A\x99PPPPPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R______Q` a%(_9_Q\x90_R\x90P`\x80\x89\x01Q\x81` \x8A\x01Q` \x8C\x01Q\t\x95P\x89Q\x94P\x81`\xA0\x8B\x01Q``\x8C\x01Q\t\x93P\x81a\x01\xA0\x89\x01Q\x85\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x85\t\x92P\x81a\x01\xC0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x85\t\x92P\x81a\x01\xE0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x85\t\x92P\x81a\x02\0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x85\t\x92P\x81a\x02 \x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92PP\x80\x84\x83\t\x93P\x80\x84\x86\x08\x94Pa\x1A\xB6\x87`\xA0\x01Q\x86a\x12\x1DV[\x95P\x88Q``\x8A\x01Q`\x80\x8B\x01Q\x83\x82\x84\t\x97P\x83a\x02\xC0\x8B\x01Q\x89\t\x97P\x83a\x02@\x8B\x01Q\x83\t\x95P\x83a\x01\xA0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02`\x8B\x01Q\x83\t\x95P\x83a\x01\xC0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\x80\x8B\x01Q\x83\t\x95P\x83a\x01\xE0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\xA0\x8B\x01Q\x83\t\x95P\x83a\x02\0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95PPPP\x80\x83\x86\t\x94Pa\x1B}\x86a\x04\xB6\x8C`\xC0\x01Q\x88\x85a\x1Bx\x91\x90a$\xCFV[a\x12\x1DV[\x95Pa\x1B\x96\x86a\x04\xB6\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x12\x1DV[\x95Pa\x1B\xB0\x86a\x04\xB6\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x12\x1DV[\x95Pa\x1B\xCA\x86a\x04\xB6\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x12\x1DV[\x95Pa\x1B\xE4\x86a\x04\xB6\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x12\x1DV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x1C\t\x86a\x04\xB6\x8Ca\x01`\x01Q\x86a\x12\x1DV[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x1C.\x86a\x04\xB6\x8Ca\x01\x80\x01Q\x86a\x12\x1DV[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C]\x86a\x04\xB6\x8Ca\x01\xE0\x01Q\x86a\x12\x1DV[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\x8C\x86a\x04\xB6\x8Ca\x02\0\x01Q\x86a\x12\x1DV[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\xBB\x86a\x04\xB6\x8Ca\x02 \x01Q\x86a\x12\x1DV[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\xEA\x86a\x04\xB6\x8Ca\x02@\x01Q\x86a\x12\x1DV[\x95Pa\x1D\x07\x86a\x04\xB6\x8Ca\x01\xA0\x01Qa\x1Bx\x8Ba\x02 \x01Qa\x1F\x90V[\x95Pa\x1D\x18\x86\x8Ba\x01\xC0\x01Qa\x12\x80V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92P\x80a\x01\xE0\x88\x01Q\x84\t\x92P\x80a\x02\0\x88\x01Q\x84\t\x92P\x80a\x02 \x88\x01Q\x84\t\x92Pa\x1D^\x86a\x04\xB6\x8Ca\x02`\x01Q\x86a\x12\x1DV[\x95Pa\x1Dl\x88_\x01Qa\x1F\x90V[\x94Pa\x1D\x80\x86a\x04\xB6\x89`\xC0\x01Q\x88a\x12\x1DV[\x95P\x80`\x01\x89Q\x08`\xA0\x8A\x01Q\x90\x93P\x81\x90\x80\t\x91P\x80\x82\x84\t\x92P\x80\x83\x86\t\x94Pa\x1D\xB4\x86a\x04\xB6\x89`\xE0\x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1D\xCF\x86a\x04\xB6\x89a\x01\0\x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1D\xEA\x86a\x04\xB6\x89a\x01 \x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1E\x05\x86a\x04\xB6\x89a\x01@\x01Q\x88a\x12\x1DV[\x9A\x99PPPPPPPPPPV[___Q` a%(_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[_\x81_\x03a\x1F\x1FW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a%(_9_Q\x90_R\x90P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01R`\x02\x82\x03`\x80\x82\x01R\x81`\xA0\x82\x01R` _`\xC0\x83`\x05Z\xFA\x92PP_Q\x92P\x81a\x1F\x89W`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a%(_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1F\xB3W\x83\x82\x03\x92Pa\x1F\x89V[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1F\xDBa \x1CV[\x90R\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80a\x01`\x01`@R\x80`\x0B\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Qa\x02\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a sWa sa ;V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a sWa sa ;V[_`@\x82\x84\x03\x12\x15a \xADW__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a \xD0Wa \xD0a ;V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a \xF9W__\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x1DWa!\x1Da ;V[`@R\x80a\x01`\x84\x01\x85\x81\x11\x15a!2W__\xFD[\x84[\x81\x81\x10\x15a!LW\x805\x83R` \x92\x83\x01\x92\x01a!4V[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a!hW__\xFD[a!pa OV[\x90Pa!|\x83\x83a \x9DV[\x81Ra!\x8B\x83`@\x84\x01a \x9DV[` \x82\x01Ra!\x9D\x83`\x80\x84\x01a \x9DV[`@\x82\x01Ra!\xAF\x83`\xC0\x84\x01a \x9DV[``\x82\x01Ra!\xC2\x83a\x01\0\x84\x01a \x9DV[`\x80\x82\x01Ra!\xD5\x83a\x01@\x84\x01a \x9DV[`\xA0\x82\x01Ra!\xE8\x83a\x01\x80\x84\x01a \x9DV[`\xC0\x82\x01Ra!\xFB\x83a\x01\xC0\x84\x01a \x9DV[`\xE0\x82\x01Ra\"\x0E\x83a\x02\0\x84\x01a \x9DV[a\x01\0\x82\x01Ra\"\"\x83a\x02@\x84\x01a \x9DV[a\x01 \x82\x01Ra\"6\x83a\x02\x80\x84\x01a \x9DV[a\x01@\x82\x01Ra\"J\x83a\x02\xC0\x84\x01a \x9DV[a\x01`\x82\x01Ra\"^\x83a\x03\0\x84\x01a \x9DV[a\x01\x80\x82\x01Ra\x03@\x82\x015a\x01\xA0\x82\x01Ra\x03`\x82\x015a\x01\xC0\x82\x01Ra\x03\x80\x82\x015a\x01\xE0\x82\x01Ra\x03\xA0\x82\x015a\x02\0\x82\x01Ra\x03\xC0\x82\x015a\x02 \x82\x01Ra\x03\xE0\x82\x015a\x02@\x82\x01Ra\x04\0\x82\x015a\x02`\x82\x01Ra\x04 \x82\x015a\x02\x80\x82\x01Ra\x04@\x82\x015a\x02\xA0\x82\x01Ra\x04`\x90\x91\x015a\x02\xC0\x82\x01R\x91\x90PV[___\x83\x85\x03a\n\xE0\x81\x12\x15a\"\xF6W__\xFD[a\x05\0\x81\x12\x15a#\x04W__\xFD[Pa#\ra yV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra#(\x86`@\x87\x01a \x9DV[`@\x82\x01Ra#:\x86`\x80\x87\x01a \x9DV[``\x82\x01Ra#L\x86`\xC0\x87\x01a \x9DV[`\x80\x82\x01Ra#_\x86a\x01\0\x87\x01a \x9DV[`\xA0\x82\x01Ra#r\x86a\x01@\x87\x01a \x9DV[`\xC0\x82\x01Ra#\x85\x86a\x01\x80\x87\x01a \x9DV[`\xE0\x82\x01Ra#\x98\x86a\x01\xC0\x87\x01a \x9DV[a\x01\0\x82\x01Ra#\xAC\x86a\x02\0\x87\x01a \x9DV[a\x01 \x82\x01Ra#\xC0\x86a\x02@\x87\x01a \x9DV[a\x01@\x82\x01Ra#\xD4\x86a\x02\x80\x87\x01a \x9DV[a\x01`\x82\x01Ra#\xE8\x86a\x02\xC0\x87\x01a \x9DV[a\x01\x80\x82\x01Ra#\xFC\x86a\x03\0\x87\x01a \x9DV[a\x01\xA0\x82\x01Ra$\x10\x86a\x03@\x87\x01a \x9DV[a\x01\xC0\x82\x01Ra$$\x86a\x03\x80\x87\x01a \x9DV[a\x01\xE0\x82\x01Ra$8\x86a\x03\xC0\x87\x01a \x9DV[a\x02\0\x82\x01Ra$L\x86a\x04\0\x87\x01a \x9DV[a\x02 \x82\x01Ra$`\x86a\x04@\x87\x01a \x9DV[a\x02@\x82\x01Ra$t\x86a\x04\x80\x87\x01a \x9DV[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa$\xA2\x85a\x05\0\x86\x01a \xEAV[\x91Pa$\xB2\x85a\x06`\x86\x01a!WV[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a$\xEEWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a%\"WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\xA1dsolcC\0\x08\x1C\0\n",
3141 );
3142 #[derive(serde::Serialize, serde::Deserialize)]
3143 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3144 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3149 #[derive(Clone)]
3150 pub struct BN254G1AddFailed;
3151 #[allow(
3152 non_camel_case_types,
3153 non_snake_case,
3154 clippy::pub_underscore_fields,
3155 clippy::style
3156 )]
3157 const _: () = {
3158 use alloy::sol_types as alloy_sol_types;
3159 #[doc(hidden)]
3160 #[allow(dead_code)]
3161 type UnderlyingSolTuple<'a> = ();
3162 #[doc(hidden)]
3163 type UnderlyingRustTuple<'a> = ();
3164 #[cfg(test)]
3165 #[allow(dead_code, unreachable_patterns)]
3166 fn _type_assertion(
3167 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3168 ) {
3169 match _t {
3170 alloy_sol_types::private::AssertTypeEq::<
3171 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3172 >(_) => {}
3173 }
3174 }
3175 #[automatically_derived]
3176 #[doc(hidden)]
3177 impl ::core::convert::From<BN254G1AddFailed> for UnderlyingRustTuple<'_> {
3178 fn from(value: BN254G1AddFailed) -> Self {
3179 ()
3180 }
3181 }
3182 #[automatically_derived]
3183 #[doc(hidden)]
3184 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254G1AddFailed {
3185 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3186 Self
3187 }
3188 }
3189 #[automatically_derived]
3190 impl alloy_sol_types::SolError for BN254G1AddFailed {
3191 type Parameters<'a> = UnderlyingSolTuple<'a>;
3192 type Token<'a> = <Self::Parameters<
3193 'a,
3194 > as alloy_sol_types::SolType>::Token<'a>;
3195 const SIGNATURE: &'static str = "BN254G1AddFailed()";
3196 const SELECTOR: [u8; 4] = [96u8, 85u8, 219u8, 106u8];
3197 #[inline]
3198 fn new<'a>(
3199 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3200 ) -> Self {
3201 tuple.into()
3202 }
3203 #[inline]
3204 fn tokenize(&self) -> Self::Token<'_> {
3205 ()
3206 }
3207 #[inline]
3208 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3209 <Self::Parameters<
3210 '_,
3211 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3212 .map(Self::new)
3213 }
3214 }
3215 };
3216 #[derive(serde::Serialize, serde::Deserialize)]
3217 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3218 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3223 #[derive(Clone)]
3224 pub struct BN254PairingProdFailed;
3225 #[allow(
3226 non_camel_case_types,
3227 non_snake_case,
3228 clippy::pub_underscore_fields,
3229 clippy::style
3230 )]
3231 const _: () = {
3232 use alloy::sol_types as alloy_sol_types;
3233 #[doc(hidden)]
3234 #[allow(dead_code)]
3235 type UnderlyingSolTuple<'a> = ();
3236 #[doc(hidden)]
3237 type UnderlyingRustTuple<'a> = ();
3238 #[cfg(test)]
3239 #[allow(dead_code, unreachable_patterns)]
3240 fn _type_assertion(
3241 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3242 ) {
3243 match _t {
3244 alloy_sol_types::private::AssertTypeEq::<
3245 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3246 >(_) => {}
3247 }
3248 }
3249 #[automatically_derived]
3250 #[doc(hidden)]
3251 impl ::core::convert::From<BN254PairingProdFailed> for UnderlyingRustTuple<'_> {
3252 fn from(value: BN254PairingProdFailed) -> Self {
3253 ()
3254 }
3255 }
3256 #[automatically_derived]
3257 #[doc(hidden)]
3258 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254PairingProdFailed {
3259 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3260 Self
3261 }
3262 }
3263 #[automatically_derived]
3264 impl alloy_sol_types::SolError for BN254PairingProdFailed {
3265 type Parameters<'a> = UnderlyingSolTuple<'a>;
3266 type Token<'a> = <Self::Parameters<
3267 'a,
3268 > as alloy_sol_types::SolType>::Token<'a>;
3269 const SIGNATURE: &'static str = "BN254PairingProdFailed()";
3270 const SELECTOR: [u8; 4] = [194u8, 6u8, 51u8, 79u8];
3271 #[inline]
3272 fn new<'a>(
3273 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3274 ) -> Self {
3275 tuple.into()
3276 }
3277 #[inline]
3278 fn tokenize(&self) -> Self::Token<'_> {
3279 ()
3280 }
3281 #[inline]
3282 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3283 <Self::Parameters<
3284 '_,
3285 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3286 .map(Self::new)
3287 }
3288 }
3289 };
3290 #[derive(serde::Serialize, serde::Deserialize)]
3291 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3292 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3297 #[derive(Clone)]
3298 pub struct BN254ScalarInvZero;
3299 #[allow(
3300 non_camel_case_types,
3301 non_snake_case,
3302 clippy::pub_underscore_fields,
3303 clippy::style
3304 )]
3305 const _: () = {
3306 use alloy::sol_types as alloy_sol_types;
3307 #[doc(hidden)]
3308 #[allow(dead_code)]
3309 type UnderlyingSolTuple<'a> = ();
3310 #[doc(hidden)]
3311 type UnderlyingRustTuple<'a> = ();
3312 #[cfg(test)]
3313 #[allow(dead_code, unreachable_patterns)]
3314 fn _type_assertion(
3315 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3316 ) {
3317 match _t {
3318 alloy_sol_types::private::AssertTypeEq::<
3319 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3320 >(_) => {}
3321 }
3322 }
3323 #[automatically_derived]
3324 #[doc(hidden)]
3325 impl ::core::convert::From<BN254ScalarInvZero> for UnderlyingRustTuple<'_> {
3326 fn from(value: BN254ScalarInvZero) -> Self {
3327 ()
3328 }
3329 }
3330 #[automatically_derived]
3331 #[doc(hidden)]
3332 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarInvZero {
3333 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3334 Self
3335 }
3336 }
3337 #[automatically_derived]
3338 impl alloy_sol_types::SolError for BN254ScalarInvZero {
3339 type Parameters<'a> = UnderlyingSolTuple<'a>;
3340 type Token<'a> = <Self::Parameters<
3341 'a,
3342 > as alloy_sol_types::SolType>::Token<'a>;
3343 const SIGNATURE: &'static str = "BN254ScalarInvZero()";
3344 const SELECTOR: [u8; 4] = [214u8, 219u8, 187u8, 13u8];
3345 #[inline]
3346 fn new<'a>(
3347 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3348 ) -> Self {
3349 tuple.into()
3350 }
3351 #[inline]
3352 fn tokenize(&self) -> Self::Token<'_> {
3353 ()
3354 }
3355 #[inline]
3356 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3357 <Self::Parameters<
3358 '_,
3359 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3360 .map(Self::new)
3361 }
3362 }
3363 };
3364 #[derive(serde::Serialize, serde::Deserialize)]
3365 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3366 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3371 #[derive(Clone)]
3372 pub struct BN254ScalarMulFailed;
3373 #[allow(
3374 non_camel_case_types,
3375 non_snake_case,
3376 clippy::pub_underscore_fields,
3377 clippy::style
3378 )]
3379 const _: () = {
3380 use alloy::sol_types as alloy_sol_types;
3381 #[doc(hidden)]
3382 #[allow(dead_code)]
3383 type UnderlyingSolTuple<'a> = ();
3384 #[doc(hidden)]
3385 type UnderlyingRustTuple<'a> = ();
3386 #[cfg(test)]
3387 #[allow(dead_code, unreachable_patterns)]
3388 fn _type_assertion(
3389 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3390 ) {
3391 match _t {
3392 alloy_sol_types::private::AssertTypeEq::<
3393 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3394 >(_) => {}
3395 }
3396 }
3397 #[automatically_derived]
3398 #[doc(hidden)]
3399 impl ::core::convert::From<BN254ScalarMulFailed> for UnderlyingRustTuple<'_> {
3400 fn from(value: BN254ScalarMulFailed) -> Self {
3401 ()
3402 }
3403 }
3404 #[automatically_derived]
3405 #[doc(hidden)]
3406 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarMulFailed {
3407 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3408 Self
3409 }
3410 }
3411 #[automatically_derived]
3412 impl alloy_sol_types::SolError for BN254ScalarMulFailed {
3413 type Parameters<'a> = UnderlyingSolTuple<'a>;
3414 type Token<'a> = <Self::Parameters<
3415 'a,
3416 > as alloy_sol_types::SolType>::Token<'a>;
3417 const SIGNATURE: &'static str = "BN254ScalarMulFailed()";
3418 const SELECTOR: [u8; 4] = [25u8, 219u8, 138u8, 104u8];
3419 #[inline]
3420 fn new<'a>(
3421 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3422 ) -> Self {
3423 tuple.into()
3424 }
3425 #[inline]
3426 fn tokenize(&self) -> Self::Token<'_> {
3427 ()
3428 }
3429 #[inline]
3430 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3431 <Self::Parameters<
3432 '_,
3433 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3434 .map(Self::new)
3435 }
3436 }
3437 };
3438 #[derive(serde::Serialize, serde::Deserialize)]
3439 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3440 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3445 #[derive(Clone)]
3446 pub struct InvalidG1;
3447 #[allow(
3448 non_camel_case_types,
3449 non_snake_case,
3450 clippy::pub_underscore_fields,
3451 clippy::style
3452 )]
3453 const _: () = {
3454 use alloy::sol_types as alloy_sol_types;
3455 #[doc(hidden)]
3456 #[allow(dead_code)]
3457 type UnderlyingSolTuple<'a> = ();
3458 #[doc(hidden)]
3459 type UnderlyingRustTuple<'a> = ();
3460 #[cfg(test)]
3461 #[allow(dead_code, unreachable_patterns)]
3462 fn _type_assertion(
3463 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3464 ) {
3465 match _t {
3466 alloy_sol_types::private::AssertTypeEq::<
3467 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3468 >(_) => {}
3469 }
3470 }
3471 #[automatically_derived]
3472 #[doc(hidden)]
3473 impl ::core::convert::From<InvalidG1> for UnderlyingRustTuple<'_> {
3474 fn from(value: InvalidG1) -> Self {
3475 ()
3476 }
3477 }
3478 #[automatically_derived]
3479 #[doc(hidden)]
3480 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidG1 {
3481 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3482 Self
3483 }
3484 }
3485 #[automatically_derived]
3486 impl alloy_sol_types::SolError for InvalidG1 {
3487 type Parameters<'a> = UnderlyingSolTuple<'a>;
3488 type Token<'a> = <Self::Parameters<
3489 'a,
3490 > as alloy_sol_types::SolType>::Token<'a>;
3491 const SIGNATURE: &'static str = "InvalidG1()";
3492 const SELECTOR: [u8; 4] = [158u8, 120u8, 209u8, 76u8];
3493 #[inline]
3494 fn new<'a>(
3495 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3496 ) -> Self {
3497 tuple.into()
3498 }
3499 #[inline]
3500 fn tokenize(&self) -> Self::Token<'_> {
3501 ()
3502 }
3503 #[inline]
3504 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3505 <Self::Parameters<
3506 '_,
3507 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3508 .map(Self::new)
3509 }
3510 }
3511 };
3512 #[derive(serde::Serialize, serde::Deserialize)]
3513 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3514 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3519 #[derive(Clone)]
3520 pub struct InvalidPlonkArgs;
3521 #[allow(
3522 non_camel_case_types,
3523 non_snake_case,
3524 clippy::pub_underscore_fields,
3525 clippy::style
3526 )]
3527 const _: () = {
3528 use alloy::sol_types as alloy_sol_types;
3529 #[doc(hidden)]
3530 #[allow(dead_code)]
3531 type UnderlyingSolTuple<'a> = ();
3532 #[doc(hidden)]
3533 type UnderlyingRustTuple<'a> = ();
3534 #[cfg(test)]
3535 #[allow(dead_code, unreachable_patterns)]
3536 fn _type_assertion(
3537 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3538 ) {
3539 match _t {
3540 alloy_sol_types::private::AssertTypeEq::<
3541 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3542 >(_) => {}
3543 }
3544 }
3545 #[automatically_derived]
3546 #[doc(hidden)]
3547 impl ::core::convert::From<InvalidPlonkArgs> for UnderlyingRustTuple<'_> {
3548 fn from(value: InvalidPlonkArgs) -> Self {
3549 ()
3550 }
3551 }
3552 #[automatically_derived]
3553 #[doc(hidden)]
3554 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPlonkArgs {
3555 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3556 Self
3557 }
3558 }
3559 #[automatically_derived]
3560 impl alloy_sol_types::SolError for InvalidPlonkArgs {
3561 type Parameters<'a> = UnderlyingSolTuple<'a>;
3562 type Token<'a> = <Self::Parameters<
3563 'a,
3564 > as alloy_sol_types::SolType>::Token<'a>;
3565 const SIGNATURE: &'static str = "InvalidPlonkArgs()";
3566 const SELECTOR: [u8; 4] = [253u8, 154u8, 45u8, 27u8];
3567 #[inline]
3568 fn new<'a>(
3569 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3570 ) -> Self {
3571 tuple.into()
3572 }
3573 #[inline]
3574 fn tokenize(&self) -> Self::Token<'_> {
3575 ()
3576 }
3577 #[inline]
3578 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3579 <Self::Parameters<
3580 '_,
3581 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3582 .map(Self::new)
3583 }
3584 }
3585 };
3586 #[derive(serde::Serialize, serde::Deserialize)]
3587 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3588 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3593 #[derive(Clone)]
3594 pub struct InvalidScalar;
3595 #[allow(
3596 non_camel_case_types,
3597 non_snake_case,
3598 clippy::pub_underscore_fields,
3599 clippy::style
3600 )]
3601 const _: () = {
3602 use alloy::sol_types as alloy_sol_types;
3603 #[doc(hidden)]
3604 #[allow(dead_code)]
3605 type UnderlyingSolTuple<'a> = ();
3606 #[doc(hidden)]
3607 type UnderlyingRustTuple<'a> = ();
3608 #[cfg(test)]
3609 #[allow(dead_code, unreachable_patterns)]
3610 fn _type_assertion(
3611 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3612 ) {
3613 match _t {
3614 alloy_sol_types::private::AssertTypeEq::<
3615 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3616 >(_) => {}
3617 }
3618 }
3619 #[automatically_derived]
3620 #[doc(hidden)]
3621 impl ::core::convert::From<InvalidScalar> for UnderlyingRustTuple<'_> {
3622 fn from(value: InvalidScalar) -> Self {
3623 ()
3624 }
3625 }
3626 #[automatically_derived]
3627 #[doc(hidden)]
3628 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidScalar {
3629 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3630 Self
3631 }
3632 }
3633 #[automatically_derived]
3634 impl alloy_sol_types::SolError for InvalidScalar {
3635 type Parameters<'a> = UnderlyingSolTuple<'a>;
3636 type Token<'a> = <Self::Parameters<
3637 'a,
3638 > as alloy_sol_types::SolType>::Token<'a>;
3639 const SIGNATURE: &'static str = "InvalidScalar()";
3640 const SELECTOR: [u8; 4] = [5u8, 176u8, 92u8, 204u8];
3641 #[inline]
3642 fn new<'a>(
3643 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3644 ) -> Self {
3645 tuple.into()
3646 }
3647 #[inline]
3648 fn tokenize(&self) -> Self::Token<'_> {
3649 ()
3650 }
3651 #[inline]
3652 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3653 <Self::Parameters<
3654 '_,
3655 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3656 .map(Self::new)
3657 }
3658 }
3659 };
3660 #[derive(serde::Serialize, serde::Deserialize)]
3661 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3662 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3667 #[derive(Clone)]
3668 pub struct PowPrecompileFailed;
3669 #[allow(
3670 non_camel_case_types,
3671 non_snake_case,
3672 clippy::pub_underscore_fields,
3673 clippy::style
3674 )]
3675 const _: () = {
3676 use alloy::sol_types as alloy_sol_types;
3677 #[doc(hidden)]
3678 #[allow(dead_code)]
3679 type UnderlyingSolTuple<'a> = ();
3680 #[doc(hidden)]
3681 type UnderlyingRustTuple<'a> = ();
3682 #[cfg(test)]
3683 #[allow(dead_code, unreachable_patterns)]
3684 fn _type_assertion(
3685 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3686 ) {
3687 match _t {
3688 alloy_sol_types::private::AssertTypeEq::<
3689 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3690 >(_) => {}
3691 }
3692 }
3693 #[automatically_derived]
3694 #[doc(hidden)]
3695 impl ::core::convert::From<PowPrecompileFailed> for UnderlyingRustTuple<'_> {
3696 fn from(value: PowPrecompileFailed) -> Self {
3697 ()
3698 }
3699 }
3700 #[automatically_derived]
3701 #[doc(hidden)]
3702 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PowPrecompileFailed {
3703 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3704 Self
3705 }
3706 }
3707 #[automatically_derived]
3708 impl alloy_sol_types::SolError for PowPrecompileFailed {
3709 type Parameters<'a> = UnderlyingSolTuple<'a>;
3710 type Token<'a> = <Self::Parameters<
3711 'a,
3712 > as alloy_sol_types::SolType>::Token<'a>;
3713 const SIGNATURE: &'static str = "PowPrecompileFailed()";
3714 const SELECTOR: [u8; 4] = [50u8, 116u8, 250u8, 100u8];
3715 #[inline]
3716 fn new<'a>(
3717 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3718 ) -> Self {
3719 tuple.into()
3720 }
3721 #[inline]
3722 fn tokenize(&self) -> Self::Token<'_> {
3723 ()
3724 }
3725 #[inline]
3726 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3727 <Self::Parameters<
3728 '_,
3729 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3730 .map(Self::new)
3731 }
3732 }
3733 };
3734 #[derive(serde::Serialize, serde::Deserialize)]
3735 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3736 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3741 #[derive(Clone)]
3742 pub struct UnsupportedDegree;
3743 #[allow(
3744 non_camel_case_types,
3745 non_snake_case,
3746 clippy::pub_underscore_fields,
3747 clippy::style
3748 )]
3749 const _: () = {
3750 use alloy::sol_types as alloy_sol_types;
3751 #[doc(hidden)]
3752 #[allow(dead_code)]
3753 type UnderlyingSolTuple<'a> = ();
3754 #[doc(hidden)]
3755 type UnderlyingRustTuple<'a> = ();
3756 #[cfg(test)]
3757 #[allow(dead_code, unreachable_patterns)]
3758 fn _type_assertion(
3759 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3760 ) {
3761 match _t {
3762 alloy_sol_types::private::AssertTypeEq::<
3763 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3764 >(_) => {}
3765 }
3766 }
3767 #[automatically_derived]
3768 #[doc(hidden)]
3769 impl ::core::convert::From<UnsupportedDegree> for UnderlyingRustTuple<'_> {
3770 fn from(value: UnsupportedDegree) -> Self {
3771 ()
3772 }
3773 }
3774 #[automatically_derived]
3775 #[doc(hidden)]
3776 impl ::core::convert::From<UnderlyingRustTuple<'_>> for UnsupportedDegree {
3777 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3778 Self
3779 }
3780 }
3781 #[automatically_derived]
3782 impl alloy_sol_types::SolError for UnsupportedDegree {
3783 type Parameters<'a> = UnderlyingSolTuple<'a>;
3784 type Token<'a> = <Self::Parameters<
3785 'a,
3786 > as alloy_sol_types::SolType>::Token<'a>;
3787 const SIGNATURE: &'static str = "UnsupportedDegree()";
3788 const SELECTOR: [u8; 4] = [226u8, 239u8, 9u8, 229u8];
3789 #[inline]
3790 fn new<'a>(
3791 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3792 ) -> Self {
3793 tuple.into()
3794 }
3795 #[inline]
3796 fn tokenize(&self) -> Self::Token<'_> {
3797 ()
3798 }
3799 #[inline]
3800 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3801 <Self::Parameters<
3802 '_,
3803 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3804 .map(Self::new)
3805 }
3806 }
3807 };
3808 #[derive(serde::Serialize, serde::Deserialize)]
3809 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3810 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3815 #[derive(Clone)]
3816 pub struct WrongPlonkVK;
3817 #[allow(
3818 non_camel_case_types,
3819 non_snake_case,
3820 clippy::pub_underscore_fields,
3821 clippy::style
3822 )]
3823 const _: () = {
3824 use alloy::sol_types as alloy_sol_types;
3825 #[doc(hidden)]
3826 #[allow(dead_code)]
3827 type UnderlyingSolTuple<'a> = ();
3828 #[doc(hidden)]
3829 type UnderlyingRustTuple<'a> = ();
3830 #[cfg(test)]
3831 #[allow(dead_code, unreachable_patterns)]
3832 fn _type_assertion(
3833 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3834 ) {
3835 match _t {
3836 alloy_sol_types::private::AssertTypeEq::<
3837 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3838 >(_) => {}
3839 }
3840 }
3841 #[automatically_derived]
3842 #[doc(hidden)]
3843 impl ::core::convert::From<WrongPlonkVK> for UnderlyingRustTuple<'_> {
3844 fn from(value: WrongPlonkVK) -> Self {
3845 ()
3846 }
3847 }
3848 #[automatically_derived]
3849 #[doc(hidden)]
3850 impl ::core::convert::From<UnderlyingRustTuple<'_>> for WrongPlonkVK {
3851 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3852 Self
3853 }
3854 }
3855 #[automatically_derived]
3856 impl alloy_sol_types::SolError for WrongPlonkVK {
3857 type Parameters<'a> = UnderlyingSolTuple<'a>;
3858 type Token<'a> = <Self::Parameters<
3859 'a,
3860 > as alloy_sol_types::SolType>::Token<'a>;
3861 const SIGNATURE: &'static str = "WrongPlonkVK()";
3862 const SELECTOR: [u8; 4] = [65u8, 245u8, 59u8, 18u8];
3863 #[inline]
3864 fn new<'a>(
3865 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3866 ) -> Self {
3867 tuple.into()
3868 }
3869 #[inline]
3870 fn tokenize(&self) -> Self::Token<'_> {
3871 ()
3872 }
3873 #[inline]
3874 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3875 <Self::Parameters<
3876 '_,
3877 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3878 .map(Self::new)
3879 }
3880 }
3881 };
3882 #[derive(serde::Serialize, serde::Deserialize)]
3883 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3884 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3889 #[derive(Clone)]
3890 pub struct BETA_H_X0Call;
3891 #[derive(serde::Serialize, serde::Deserialize)]
3892 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3893 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3895 #[derive(Clone)]
3896 pub struct BETA_H_X0Return {
3897 #[allow(missing_docs)]
3898 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3899 }
3900 #[allow(
3901 non_camel_case_types,
3902 non_snake_case,
3903 clippy::pub_underscore_fields,
3904 clippy::style
3905 )]
3906 const _: () = {
3907 use alloy::sol_types as alloy_sol_types;
3908 {
3909 #[doc(hidden)]
3910 #[allow(dead_code)]
3911 type UnderlyingSolTuple<'a> = ();
3912 #[doc(hidden)]
3913 type UnderlyingRustTuple<'a> = ();
3914 #[cfg(test)]
3915 #[allow(dead_code, unreachable_patterns)]
3916 fn _type_assertion(
3917 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3918 ) {
3919 match _t {
3920 alloy_sol_types::private::AssertTypeEq::<
3921 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3922 >(_) => {}
3923 }
3924 }
3925 #[automatically_derived]
3926 #[doc(hidden)]
3927 impl ::core::convert::From<BETA_H_X0Call> for UnderlyingRustTuple<'_> {
3928 fn from(value: BETA_H_X0Call) -> Self {
3929 ()
3930 }
3931 }
3932 #[automatically_derived]
3933 #[doc(hidden)]
3934 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Call {
3935 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3936 Self
3937 }
3938 }
3939 }
3940 {
3941 #[doc(hidden)]
3942 #[allow(dead_code)]
3943 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3944 #[doc(hidden)]
3945 type UnderlyingRustTuple<'a> = (
3946 alloy::sol_types::private::primitives::aliases::U256,
3947 );
3948 #[cfg(test)]
3949 #[allow(dead_code, unreachable_patterns)]
3950 fn _type_assertion(
3951 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3952 ) {
3953 match _t {
3954 alloy_sol_types::private::AssertTypeEq::<
3955 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3956 >(_) => {}
3957 }
3958 }
3959 #[automatically_derived]
3960 #[doc(hidden)]
3961 impl ::core::convert::From<BETA_H_X0Return> for UnderlyingRustTuple<'_> {
3962 fn from(value: BETA_H_X0Return) -> Self {
3963 (value._0,)
3964 }
3965 }
3966 #[automatically_derived]
3967 #[doc(hidden)]
3968 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Return {
3969 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3970 Self { _0: tuple.0 }
3971 }
3972 }
3973 }
3974 #[automatically_derived]
3975 impl alloy_sol_types::SolCall for BETA_H_X0Call {
3976 type Parameters<'a> = ();
3977 type Token<'a> = <Self::Parameters<
3978 'a,
3979 > as alloy_sol_types::SolType>::Token<'a>;
3980 type Return = alloy::sol_types::private::primitives::aliases::U256;
3981 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3982 type ReturnToken<'a> = <Self::ReturnTuple<
3983 'a,
3984 > as alloy_sol_types::SolType>::Token<'a>;
3985 const SIGNATURE: &'static str = "BETA_H_X0()";
3986 const SELECTOR: [u8; 4] = [131u8, 76u8, 69u8, 42u8];
3987 #[inline]
3988 fn new<'a>(
3989 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3990 ) -> Self {
3991 tuple.into()
3992 }
3993 #[inline]
3994 fn tokenize(&self) -> Self::Token<'_> {
3995 ()
3996 }
3997 #[inline]
3998 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
3999 (
4000 <alloy::sol_types::sol_data::Uint<
4001 256,
4002 > as alloy_sol_types::SolType>::tokenize(ret),
4003 )
4004 }
4005 #[inline]
4006 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4007 <Self::ReturnTuple<
4008 '_,
4009 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4010 .map(|r| {
4011 let r: BETA_H_X0Return = r.into();
4012 r._0
4013 })
4014 }
4015 #[inline]
4016 fn abi_decode_returns_validate(
4017 data: &[u8],
4018 ) -> alloy_sol_types::Result<Self::Return> {
4019 <Self::ReturnTuple<
4020 '_,
4021 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4022 .map(|r| {
4023 let r: BETA_H_X0Return = r.into();
4024 r._0
4025 })
4026 }
4027 }
4028 };
4029 #[derive(serde::Serialize, serde::Deserialize)]
4030 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4031 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4036 #[derive(Clone)]
4037 pub struct BETA_H_X1Call;
4038 #[derive(serde::Serialize, serde::Deserialize)]
4039 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4040 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4042 #[derive(Clone)]
4043 pub struct BETA_H_X1Return {
4044 #[allow(missing_docs)]
4045 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4046 }
4047 #[allow(
4048 non_camel_case_types,
4049 non_snake_case,
4050 clippy::pub_underscore_fields,
4051 clippy::style
4052 )]
4053 const _: () = {
4054 use alloy::sol_types as alloy_sol_types;
4055 {
4056 #[doc(hidden)]
4057 #[allow(dead_code)]
4058 type UnderlyingSolTuple<'a> = ();
4059 #[doc(hidden)]
4060 type UnderlyingRustTuple<'a> = ();
4061 #[cfg(test)]
4062 #[allow(dead_code, unreachable_patterns)]
4063 fn _type_assertion(
4064 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4065 ) {
4066 match _t {
4067 alloy_sol_types::private::AssertTypeEq::<
4068 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4069 >(_) => {}
4070 }
4071 }
4072 #[automatically_derived]
4073 #[doc(hidden)]
4074 impl ::core::convert::From<BETA_H_X1Call> for UnderlyingRustTuple<'_> {
4075 fn from(value: BETA_H_X1Call) -> Self {
4076 ()
4077 }
4078 }
4079 #[automatically_derived]
4080 #[doc(hidden)]
4081 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Call {
4082 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4083 Self
4084 }
4085 }
4086 }
4087 {
4088 #[doc(hidden)]
4089 #[allow(dead_code)]
4090 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4091 #[doc(hidden)]
4092 type UnderlyingRustTuple<'a> = (
4093 alloy::sol_types::private::primitives::aliases::U256,
4094 );
4095 #[cfg(test)]
4096 #[allow(dead_code, unreachable_patterns)]
4097 fn _type_assertion(
4098 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4099 ) {
4100 match _t {
4101 alloy_sol_types::private::AssertTypeEq::<
4102 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4103 >(_) => {}
4104 }
4105 }
4106 #[automatically_derived]
4107 #[doc(hidden)]
4108 impl ::core::convert::From<BETA_H_X1Return> for UnderlyingRustTuple<'_> {
4109 fn from(value: BETA_H_X1Return) -> Self {
4110 (value._0,)
4111 }
4112 }
4113 #[automatically_derived]
4114 #[doc(hidden)]
4115 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Return {
4116 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4117 Self { _0: tuple.0 }
4118 }
4119 }
4120 }
4121 #[automatically_derived]
4122 impl alloy_sol_types::SolCall for BETA_H_X1Call {
4123 type Parameters<'a> = ();
4124 type Token<'a> = <Self::Parameters<
4125 'a,
4126 > as alloy_sol_types::SolType>::Token<'a>;
4127 type Return = alloy::sol_types::private::primitives::aliases::U256;
4128 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4129 type ReturnToken<'a> = <Self::ReturnTuple<
4130 'a,
4131 > as alloy_sol_types::SolType>::Token<'a>;
4132 const SIGNATURE: &'static str = "BETA_H_X1()";
4133 const SELECTOR: [u8; 4] = [175u8, 25u8, 107u8, 162u8];
4134 #[inline]
4135 fn new<'a>(
4136 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4137 ) -> Self {
4138 tuple.into()
4139 }
4140 #[inline]
4141 fn tokenize(&self) -> Self::Token<'_> {
4142 ()
4143 }
4144 #[inline]
4145 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4146 (
4147 <alloy::sol_types::sol_data::Uint<
4148 256,
4149 > as alloy_sol_types::SolType>::tokenize(ret),
4150 )
4151 }
4152 #[inline]
4153 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4154 <Self::ReturnTuple<
4155 '_,
4156 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4157 .map(|r| {
4158 let r: BETA_H_X1Return = r.into();
4159 r._0
4160 })
4161 }
4162 #[inline]
4163 fn abi_decode_returns_validate(
4164 data: &[u8],
4165 ) -> alloy_sol_types::Result<Self::Return> {
4166 <Self::ReturnTuple<
4167 '_,
4168 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4169 .map(|r| {
4170 let r: BETA_H_X1Return = r.into();
4171 r._0
4172 })
4173 }
4174 }
4175 };
4176 #[derive(serde::Serialize, serde::Deserialize)]
4177 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4178 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4183 #[derive(Clone)]
4184 pub struct BETA_H_Y0Call;
4185 #[derive(serde::Serialize, serde::Deserialize)]
4186 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4187 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4189 #[derive(Clone)]
4190 pub struct BETA_H_Y0Return {
4191 #[allow(missing_docs)]
4192 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4193 }
4194 #[allow(
4195 non_camel_case_types,
4196 non_snake_case,
4197 clippy::pub_underscore_fields,
4198 clippy::style
4199 )]
4200 const _: () = {
4201 use alloy::sol_types as alloy_sol_types;
4202 {
4203 #[doc(hidden)]
4204 #[allow(dead_code)]
4205 type UnderlyingSolTuple<'a> = ();
4206 #[doc(hidden)]
4207 type UnderlyingRustTuple<'a> = ();
4208 #[cfg(test)]
4209 #[allow(dead_code, unreachable_patterns)]
4210 fn _type_assertion(
4211 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4212 ) {
4213 match _t {
4214 alloy_sol_types::private::AssertTypeEq::<
4215 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4216 >(_) => {}
4217 }
4218 }
4219 #[automatically_derived]
4220 #[doc(hidden)]
4221 impl ::core::convert::From<BETA_H_Y0Call> for UnderlyingRustTuple<'_> {
4222 fn from(value: BETA_H_Y0Call) -> Self {
4223 ()
4224 }
4225 }
4226 #[automatically_derived]
4227 #[doc(hidden)]
4228 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Call {
4229 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4230 Self
4231 }
4232 }
4233 }
4234 {
4235 #[doc(hidden)]
4236 #[allow(dead_code)]
4237 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4238 #[doc(hidden)]
4239 type UnderlyingRustTuple<'a> = (
4240 alloy::sol_types::private::primitives::aliases::U256,
4241 );
4242 #[cfg(test)]
4243 #[allow(dead_code, unreachable_patterns)]
4244 fn _type_assertion(
4245 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4246 ) {
4247 match _t {
4248 alloy_sol_types::private::AssertTypeEq::<
4249 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4250 >(_) => {}
4251 }
4252 }
4253 #[automatically_derived]
4254 #[doc(hidden)]
4255 impl ::core::convert::From<BETA_H_Y0Return> for UnderlyingRustTuple<'_> {
4256 fn from(value: BETA_H_Y0Return) -> Self {
4257 (value._0,)
4258 }
4259 }
4260 #[automatically_derived]
4261 #[doc(hidden)]
4262 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Return {
4263 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4264 Self { _0: tuple.0 }
4265 }
4266 }
4267 }
4268 #[automatically_derived]
4269 impl alloy_sol_types::SolCall for BETA_H_Y0Call {
4270 type Parameters<'a> = ();
4271 type Token<'a> = <Self::Parameters<
4272 'a,
4273 > as alloy_sol_types::SolType>::Token<'a>;
4274 type Return = alloy::sol_types::private::primitives::aliases::U256;
4275 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4276 type ReturnToken<'a> = <Self::ReturnTuple<
4277 'a,
4278 > as alloy_sol_types::SolType>::Token<'a>;
4279 const SIGNATURE: &'static str = "BETA_H_Y0()";
4280 const SELECTOR: [u8; 4] = [245u8, 20u8, 67u8, 38u8];
4281 #[inline]
4282 fn new<'a>(
4283 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4284 ) -> Self {
4285 tuple.into()
4286 }
4287 #[inline]
4288 fn tokenize(&self) -> Self::Token<'_> {
4289 ()
4290 }
4291 #[inline]
4292 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4293 (
4294 <alloy::sol_types::sol_data::Uint<
4295 256,
4296 > as alloy_sol_types::SolType>::tokenize(ret),
4297 )
4298 }
4299 #[inline]
4300 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4301 <Self::ReturnTuple<
4302 '_,
4303 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4304 .map(|r| {
4305 let r: BETA_H_Y0Return = r.into();
4306 r._0
4307 })
4308 }
4309 #[inline]
4310 fn abi_decode_returns_validate(
4311 data: &[u8],
4312 ) -> alloy_sol_types::Result<Self::Return> {
4313 <Self::ReturnTuple<
4314 '_,
4315 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4316 .map(|r| {
4317 let r: BETA_H_Y0Return = r.into();
4318 r._0
4319 })
4320 }
4321 }
4322 };
4323 #[derive(serde::Serialize, serde::Deserialize)]
4324 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4325 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4330 #[derive(Clone)]
4331 pub struct BETA_H_Y1Call;
4332 #[derive(serde::Serialize, serde::Deserialize)]
4333 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4334 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4336 #[derive(Clone)]
4337 pub struct BETA_H_Y1Return {
4338 #[allow(missing_docs)]
4339 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4340 }
4341 #[allow(
4342 non_camel_case_types,
4343 non_snake_case,
4344 clippy::pub_underscore_fields,
4345 clippy::style
4346 )]
4347 const _: () = {
4348 use alloy::sol_types as alloy_sol_types;
4349 {
4350 #[doc(hidden)]
4351 #[allow(dead_code)]
4352 type UnderlyingSolTuple<'a> = ();
4353 #[doc(hidden)]
4354 type UnderlyingRustTuple<'a> = ();
4355 #[cfg(test)]
4356 #[allow(dead_code, unreachable_patterns)]
4357 fn _type_assertion(
4358 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4359 ) {
4360 match _t {
4361 alloy_sol_types::private::AssertTypeEq::<
4362 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4363 >(_) => {}
4364 }
4365 }
4366 #[automatically_derived]
4367 #[doc(hidden)]
4368 impl ::core::convert::From<BETA_H_Y1Call> for UnderlyingRustTuple<'_> {
4369 fn from(value: BETA_H_Y1Call) -> Self {
4370 ()
4371 }
4372 }
4373 #[automatically_derived]
4374 #[doc(hidden)]
4375 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Call {
4376 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4377 Self
4378 }
4379 }
4380 }
4381 {
4382 #[doc(hidden)]
4383 #[allow(dead_code)]
4384 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4385 #[doc(hidden)]
4386 type UnderlyingRustTuple<'a> = (
4387 alloy::sol_types::private::primitives::aliases::U256,
4388 );
4389 #[cfg(test)]
4390 #[allow(dead_code, unreachable_patterns)]
4391 fn _type_assertion(
4392 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4393 ) {
4394 match _t {
4395 alloy_sol_types::private::AssertTypeEq::<
4396 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4397 >(_) => {}
4398 }
4399 }
4400 #[automatically_derived]
4401 #[doc(hidden)]
4402 impl ::core::convert::From<BETA_H_Y1Return> for UnderlyingRustTuple<'_> {
4403 fn from(value: BETA_H_Y1Return) -> Self {
4404 (value._0,)
4405 }
4406 }
4407 #[automatically_derived]
4408 #[doc(hidden)]
4409 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Return {
4410 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4411 Self { _0: tuple.0 }
4412 }
4413 }
4414 }
4415 #[automatically_derived]
4416 impl alloy_sol_types::SolCall for BETA_H_Y1Call {
4417 type Parameters<'a> = ();
4418 type Token<'a> = <Self::Parameters<
4419 'a,
4420 > as alloy_sol_types::SolType>::Token<'a>;
4421 type Return = alloy::sol_types::private::primitives::aliases::U256;
4422 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4423 type ReturnToken<'a> = <Self::ReturnTuple<
4424 'a,
4425 > as alloy_sol_types::SolType>::Token<'a>;
4426 const SIGNATURE: &'static str = "BETA_H_Y1()";
4427 const SELECTOR: [u8; 4] = [75u8, 71u8, 52u8, 227u8];
4428 #[inline]
4429 fn new<'a>(
4430 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4431 ) -> Self {
4432 tuple.into()
4433 }
4434 #[inline]
4435 fn tokenize(&self) -> Self::Token<'_> {
4436 ()
4437 }
4438 #[inline]
4439 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4440 (
4441 <alloy::sol_types::sol_data::Uint<
4442 256,
4443 > as alloy_sol_types::SolType>::tokenize(ret),
4444 )
4445 }
4446 #[inline]
4447 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4448 <Self::ReturnTuple<
4449 '_,
4450 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4451 .map(|r| {
4452 let r: BETA_H_Y1Return = r.into();
4453 r._0
4454 })
4455 }
4456 #[inline]
4457 fn abi_decode_returns_validate(
4458 data: &[u8],
4459 ) -> alloy_sol_types::Result<Self::Return> {
4460 <Self::ReturnTuple<
4461 '_,
4462 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4463 .map(|r| {
4464 let r: BETA_H_Y1Return = r.into();
4465 r._0
4466 })
4467 }
4468 }
4469 };
4470 #[derive(serde::Serialize, serde::Deserialize)]
4471 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4472 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4477 #[derive(Clone)]
4478 pub struct COSET_K1Call;
4479 #[derive(serde::Serialize, serde::Deserialize)]
4480 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4481 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4483 #[derive(Clone)]
4484 pub struct COSET_K1Return {
4485 #[allow(missing_docs)]
4486 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4487 }
4488 #[allow(
4489 non_camel_case_types,
4490 non_snake_case,
4491 clippy::pub_underscore_fields,
4492 clippy::style
4493 )]
4494 const _: () = {
4495 use alloy::sol_types as alloy_sol_types;
4496 {
4497 #[doc(hidden)]
4498 #[allow(dead_code)]
4499 type UnderlyingSolTuple<'a> = ();
4500 #[doc(hidden)]
4501 type UnderlyingRustTuple<'a> = ();
4502 #[cfg(test)]
4503 #[allow(dead_code, unreachable_patterns)]
4504 fn _type_assertion(
4505 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4506 ) {
4507 match _t {
4508 alloy_sol_types::private::AssertTypeEq::<
4509 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4510 >(_) => {}
4511 }
4512 }
4513 #[automatically_derived]
4514 #[doc(hidden)]
4515 impl ::core::convert::From<COSET_K1Call> for UnderlyingRustTuple<'_> {
4516 fn from(value: COSET_K1Call) -> Self {
4517 ()
4518 }
4519 }
4520 #[automatically_derived]
4521 #[doc(hidden)]
4522 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Call {
4523 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4524 Self
4525 }
4526 }
4527 }
4528 {
4529 #[doc(hidden)]
4530 #[allow(dead_code)]
4531 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4532 #[doc(hidden)]
4533 type UnderlyingRustTuple<'a> = (
4534 alloy::sol_types::private::primitives::aliases::U256,
4535 );
4536 #[cfg(test)]
4537 #[allow(dead_code, unreachable_patterns)]
4538 fn _type_assertion(
4539 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4540 ) {
4541 match _t {
4542 alloy_sol_types::private::AssertTypeEq::<
4543 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4544 >(_) => {}
4545 }
4546 }
4547 #[automatically_derived]
4548 #[doc(hidden)]
4549 impl ::core::convert::From<COSET_K1Return> for UnderlyingRustTuple<'_> {
4550 fn from(value: COSET_K1Return) -> Self {
4551 (value._0,)
4552 }
4553 }
4554 #[automatically_derived]
4555 #[doc(hidden)]
4556 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Return {
4557 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4558 Self { _0: tuple.0 }
4559 }
4560 }
4561 }
4562 #[automatically_derived]
4563 impl alloy_sol_types::SolCall for COSET_K1Call {
4564 type Parameters<'a> = ();
4565 type Token<'a> = <Self::Parameters<
4566 'a,
4567 > as alloy_sol_types::SolType>::Token<'a>;
4568 type Return = alloy::sol_types::private::primitives::aliases::U256;
4569 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4570 type ReturnToken<'a> = <Self::ReturnTuple<
4571 'a,
4572 > as alloy_sol_types::SolType>::Token<'a>;
4573 const SIGNATURE: &'static str = "COSET_K1()";
4574 const SELECTOR: [u8; 4] = [227u8, 81u8, 45u8, 86u8];
4575 #[inline]
4576 fn new<'a>(
4577 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4578 ) -> Self {
4579 tuple.into()
4580 }
4581 #[inline]
4582 fn tokenize(&self) -> Self::Token<'_> {
4583 ()
4584 }
4585 #[inline]
4586 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4587 (
4588 <alloy::sol_types::sol_data::Uint<
4589 256,
4590 > as alloy_sol_types::SolType>::tokenize(ret),
4591 )
4592 }
4593 #[inline]
4594 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4595 <Self::ReturnTuple<
4596 '_,
4597 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4598 .map(|r| {
4599 let r: COSET_K1Return = r.into();
4600 r._0
4601 })
4602 }
4603 #[inline]
4604 fn abi_decode_returns_validate(
4605 data: &[u8],
4606 ) -> alloy_sol_types::Result<Self::Return> {
4607 <Self::ReturnTuple<
4608 '_,
4609 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4610 .map(|r| {
4611 let r: COSET_K1Return = r.into();
4612 r._0
4613 })
4614 }
4615 }
4616 };
4617 #[derive(serde::Serialize, serde::Deserialize)]
4618 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4619 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4624 #[derive(Clone)]
4625 pub struct COSET_K2Call;
4626 #[derive(serde::Serialize, serde::Deserialize)]
4627 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4628 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4630 #[derive(Clone)]
4631 pub struct COSET_K2Return {
4632 #[allow(missing_docs)]
4633 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4634 }
4635 #[allow(
4636 non_camel_case_types,
4637 non_snake_case,
4638 clippy::pub_underscore_fields,
4639 clippy::style
4640 )]
4641 const _: () = {
4642 use alloy::sol_types as alloy_sol_types;
4643 {
4644 #[doc(hidden)]
4645 #[allow(dead_code)]
4646 type UnderlyingSolTuple<'a> = ();
4647 #[doc(hidden)]
4648 type UnderlyingRustTuple<'a> = ();
4649 #[cfg(test)]
4650 #[allow(dead_code, unreachable_patterns)]
4651 fn _type_assertion(
4652 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4653 ) {
4654 match _t {
4655 alloy_sol_types::private::AssertTypeEq::<
4656 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4657 >(_) => {}
4658 }
4659 }
4660 #[automatically_derived]
4661 #[doc(hidden)]
4662 impl ::core::convert::From<COSET_K2Call> for UnderlyingRustTuple<'_> {
4663 fn from(value: COSET_K2Call) -> Self {
4664 ()
4665 }
4666 }
4667 #[automatically_derived]
4668 #[doc(hidden)]
4669 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Call {
4670 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4671 Self
4672 }
4673 }
4674 }
4675 {
4676 #[doc(hidden)]
4677 #[allow(dead_code)]
4678 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4679 #[doc(hidden)]
4680 type UnderlyingRustTuple<'a> = (
4681 alloy::sol_types::private::primitives::aliases::U256,
4682 );
4683 #[cfg(test)]
4684 #[allow(dead_code, unreachable_patterns)]
4685 fn _type_assertion(
4686 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4687 ) {
4688 match _t {
4689 alloy_sol_types::private::AssertTypeEq::<
4690 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4691 >(_) => {}
4692 }
4693 }
4694 #[automatically_derived]
4695 #[doc(hidden)]
4696 impl ::core::convert::From<COSET_K2Return> for UnderlyingRustTuple<'_> {
4697 fn from(value: COSET_K2Return) -> Self {
4698 (value._0,)
4699 }
4700 }
4701 #[automatically_derived]
4702 #[doc(hidden)]
4703 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Return {
4704 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4705 Self { _0: tuple.0 }
4706 }
4707 }
4708 }
4709 #[automatically_derived]
4710 impl alloy_sol_types::SolCall for COSET_K2Call {
4711 type Parameters<'a> = ();
4712 type Token<'a> = <Self::Parameters<
4713 'a,
4714 > as alloy_sol_types::SolType>::Token<'a>;
4715 type Return = alloy::sol_types::private::primitives::aliases::U256;
4716 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4717 type ReturnToken<'a> = <Self::ReturnTuple<
4718 'a,
4719 > as alloy_sol_types::SolType>::Token<'a>;
4720 const SIGNATURE: &'static str = "COSET_K2()";
4721 const SELECTOR: [u8; 4] = [12u8, 85u8, 31u8, 63u8];
4722 #[inline]
4723 fn new<'a>(
4724 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4725 ) -> Self {
4726 tuple.into()
4727 }
4728 #[inline]
4729 fn tokenize(&self) -> Self::Token<'_> {
4730 ()
4731 }
4732 #[inline]
4733 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4734 (
4735 <alloy::sol_types::sol_data::Uint<
4736 256,
4737 > as alloy_sol_types::SolType>::tokenize(ret),
4738 )
4739 }
4740 #[inline]
4741 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4742 <Self::ReturnTuple<
4743 '_,
4744 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4745 .map(|r| {
4746 let r: COSET_K2Return = r.into();
4747 r._0
4748 })
4749 }
4750 #[inline]
4751 fn abi_decode_returns_validate(
4752 data: &[u8],
4753 ) -> alloy_sol_types::Result<Self::Return> {
4754 <Self::ReturnTuple<
4755 '_,
4756 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4757 .map(|r| {
4758 let r: COSET_K2Return = r.into();
4759 r._0
4760 })
4761 }
4762 }
4763 };
4764 #[derive(serde::Serialize, serde::Deserialize)]
4765 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4766 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4771 #[derive(Clone)]
4772 pub struct COSET_K3Call;
4773 #[derive(serde::Serialize, serde::Deserialize)]
4774 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4775 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4777 #[derive(Clone)]
4778 pub struct COSET_K3Return {
4779 #[allow(missing_docs)]
4780 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4781 }
4782 #[allow(
4783 non_camel_case_types,
4784 non_snake_case,
4785 clippy::pub_underscore_fields,
4786 clippy::style
4787 )]
4788 const _: () = {
4789 use alloy::sol_types as alloy_sol_types;
4790 {
4791 #[doc(hidden)]
4792 #[allow(dead_code)]
4793 type UnderlyingSolTuple<'a> = ();
4794 #[doc(hidden)]
4795 type UnderlyingRustTuple<'a> = ();
4796 #[cfg(test)]
4797 #[allow(dead_code, unreachable_patterns)]
4798 fn _type_assertion(
4799 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4800 ) {
4801 match _t {
4802 alloy_sol_types::private::AssertTypeEq::<
4803 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4804 >(_) => {}
4805 }
4806 }
4807 #[automatically_derived]
4808 #[doc(hidden)]
4809 impl ::core::convert::From<COSET_K3Call> for UnderlyingRustTuple<'_> {
4810 fn from(value: COSET_K3Call) -> Self {
4811 ()
4812 }
4813 }
4814 #[automatically_derived]
4815 #[doc(hidden)]
4816 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Call {
4817 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4818 Self
4819 }
4820 }
4821 }
4822 {
4823 #[doc(hidden)]
4824 #[allow(dead_code)]
4825 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4826 #[doc(hidden)]
4827 type UnderlyingRustTuple<'a> = (
4828 alloy::sol_types::private::primitives::aliases::U256,
4829 );
4830 #[cfg(test)]
4831 #[allow(dead_code, unreachable_patterns)]
4832 fn _type_assertion(
4833 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4834 ) {
4835 match _t {
4836 alloy_sol_types::private::AssertTypeEq::<
4837 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4838 >(_) => {}
4839 }
4840 }
4841 #[automatically_derived]
4842 #[doc(hidden)]
4843 impl ::core::convert::From<COSET_K3Return> for UnderlyingRustTuple<'_> {
4844 fn from(value: COSET_K3Return) -> Self {
4845 (value._0,)
4846 }
4847 }
4848 #[automatically_derived]
4849 #[doc(hidden)]
4850 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Return {
4851 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4852 Self { _0: tuple.0 }
4853 }
4854 }
4855 }
4856 #[automatically_derived]
4857 impl alloy_sol_types::SolCall for COSET_K3Call {
4858 type Parameters<'a> = ();
4859 type Token<'a> = <Self::Parameters<
4860 'a,
4861 > as alloy_sol_types::SolType>::Token<'a>;
4862 type Return = alloy::sol_types::private::primitives::aliases::U256;
4863 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4864 type ReturnToken<'a> = <Self::ReturnTuple<
4865 'a,
4866 > as alloy_sol_types::SolType>::Token<'a>;
4867 const SIGNATURE: &'static str = "COSET_K3()";
4868 const SELECTOR: [u8; 4] = [90u8, 20u8, 192u8, 254u8];
4869 #[inline]
4870 fn new<'a>(
4871 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4872 ) -> Self {
4873 tuple.into()
4874 }
4875 #[inline]
4876 fn tokenize(&self) -> Self::Token<'_> {
4877 ()
4878 }
4879 #[inline]
4880 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4881 (
4882 <alloy::sol_types::sol_data::Uint<
4883 256,
4884 > as alloy_sol_types::SolType>::tokenize(ret),
4885 )
4886 }
4887 #[inline]
4888 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4889 <Self::ReturnTuple<
4890 '_,
4891 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4892 .map(|r| {
4893 let r: COSET_K3Return = r.into();
4894 r._0
4895 })
4896 }
4897 #[inline]
4898 fn abi_decode_returns_validate(
4899 data: &[u8],
4900 ) -> alloy_sol_types::Result<Self::Return> {
4901 <Self::ReturnTuple<
4902 '_,
4903 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4904 .map(|r| {
4905 let r: COSET_K3Return = r.into();
4906 r._0
4907 })
4908 }
4909 }
4910 };
4911 #[derive(serde::Serialize, serde::Deserialize)]
4912 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4913 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4918 #[derive(Clone)]
4919 pub struct COSET_K4Call;
4920 #[derive(serde::Serialize, serde::Deserialize)]
4921 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4922 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4924 #[derive(Clone)]
4925 pub struct COSET_K4Return {
4926 #[allow(missing_docs)]
4927 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4928 }
4929 #[allow(
4930 non_camel_case_types,
4931 non_snake_case,
4932 clippy::pub_underscore_fields,
4933 clippy::style
4934 )]
4935 const _: () = {
4936 use alloy::sol_types as alloy_sol_types;
4937 {
4938 #[doc(hidden)]
4939 #[allow(dead_code)]
4940 type UnderlyingSolTuple<'a> = ();
4941 #[doc(hidden)]
4942 type UnderlyingRustTuple<'a> = ();
4943 #[cfg(test)]
4944 #[allow(dead_code, unreachable_patterns)]
4945 fn _type_assertion(
4946 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4947 ) {
4948 match _t {
4949 alloy_sol_types::private::AssertTypeEq::<
4950 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4951 >(_) => {}
4952 }
4953 }
4954 #[automatically_derived]
4955 #[doc(hidden)]
4956 impl ::core::convert::From<COSET_K4Call> for UnderlyingRustTuple<'_> {
4957 fn from(value: COSET_K4Call) -> Self {
4958 ()
4959 }
4960 }
4961 #[automatically_derived]
4962 #[doc(hidden)]
4963 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Call {
4964 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4965 Self
4966 }
4967 }
4968 }
4969 {
4970 #[doc(hidden)]
4971 #[allow(dead_code)]
4972 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4973 #[doc(hidden)]
4974 type UnderlyingRustTuple<'a> = (
4975 alloy::sol_types::private::primitives::aliases::U256,
4976 );
4977 #[cfg(test)]
4978 #[allow(dead_code, unreachable_patterns)]
4979 fn _type_assertion(
4980 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4981 ) {
4982 match _t {
4983 alloy_sol_types::private::AssertTypeEq::<
4984 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4985 >(_) => {}
4986 }
4987 }
4988 #[automatically_derived]
4989 #[doc(hidden)]
4990 impl ::core::convert::From<COSET_K4Return> for UnderlyingRustTuple<'_> {
4991 fn from(value: COSET_K4Return) -> Self {
4992 (value._0,)
4993 }
4994 }
4995 #[automatically_derived]
4996 #[doc(hidden)]
4997 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Return {
4998 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4999 Self { _0: tuple.0 }
5000 }
5001 }
5002 }
5003 #[automatically_derived]
5004 impl alloy_sol_types::SolCall for COSET_K4Call {
5005 type Parameters<'a> = ();
5006 type Token<'a> = <Self::Parameters<
5007 'a,
5008 > as alloy_sol_types::SolType>::Token<'a>;
5009 type Return = alloy::sol_types::private::primitives::aliases::U256;
5010 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5011 type ReturnToken<'a> = <Self::ReturnTuple<
5012 'a,
5013 > as alloy_sol_types::SolType>::Token<'a>;
5014 const SIGNATURE: &'static str = "COSET_K4()";
5015 const SELECTOR: [u8; 4] = [222u8, 36u8, 172u8, 15u8];
5016 #[inline]
5017 fn new<'a>(
5018 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5019 ) -> Self {
5020 tuple.into()
5021 }
5022 #[inline]
5023 fn tokenize(&self) -> Self::Token<'_> {
5024 ()
5025 }
5026 #[inline]
5027 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5028 (
5029 <alloy::sol_types::sol_data::Uint<
5030 256,
5031 > as alloy_sol_types::SolType>::tokenize(ret),
5032 )
5033 }
5034 #[inline]
5035 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5036 <Self::ReturnTuple<
5037 '_,
5038 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5039 .map(|r| {
5040 let r: COSET_K4Return = r.into();
5041 r._0
5042 })
5043 }
5044 #[inline]
5045 fn abi_decode_returns_validate(
5046 data: &[u8],
5047 ) -> alloy_sol_types::Result<Self::Return> {
5048 <Self::ReturnTuple<
5049 '_,
5050 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5051 .map(|r| {
5052 let r: COSET_K4Return = r.into();
5053 r._0
5054 })
5055 }
5056 }
5057 };
5058 #[derive(serde::Serialize, serde::Deserialize)]
5059 #[derive()]
5060 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5065 #[derive(Clone)]
5066 pub struct verifyCall {
5067 #[allow(missing_docs)]
5068 pub verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
5069 #[allow(missing_docs)]
5070 pub publicInput: [alloy::sol_types::private::primitives::aliases::U256; 11usize],
5071 #[allow(missing_docs)]
5072 pub proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
5073 }
5074 #[derive(serde::Serialize, serde::Deserialize)]
5075 #[derive(Default, Debug, PartialEq, Eq, Hash)]
5076 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5078 #[derive(Clone)]
5079 pub struct verifyReturn {
5080 #[allow(missing_docs)]
5081 pub _0: bool,
5082 }
5083 #[allow(
5084 non_camel_case_types,
5085 non_snake_case,
5086 clippy::pub_underscore_fields,
5087 clippy::style
5088 )]
5089 const _: () = {
5090 use alloy::sol_types as alloy_sol_types;
5091 {
5092 #[doc(hidden)]
5093 #[allow(dead_code)]
5094 type UnderlyingSolTuple<'a> = (
5095 IPlonkVerifier::VerifyingKey,
5096 alloy::sol_types::sol_data::FixedArray<
5097 alloy::sol_types::sol_data::Uint<256>,
5098 11usize,
5099 >,
5100 IPlonkVerifier::PlonkProof,
5101 );
5102 #[doc(hidden)]
5103 type UnderlyingRustTuple<'a> = (
5104 <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
5105 [alloy::sol_types::private::primitives::aliases::U256; 11usize],
5106 <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
5107 );
5108 #[cfg(test)]
5109 #[allow(dead_code, unreachable_patterns)]
5110 fn _type_assertion(
5111 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5112 ) {
5113 match _t {
5114 alloy_sol_types::private::AssertTypeEq::<
5115 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5116 >(_) => {}
5117 }
5118 }
5119 #[automatically_derived]
5120 #[doc(hidden)]
5121 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
5122 fn from(value: verifyCall) -> Self {
5123 (value.verifyingKey, value.publicInput, value.proof)
5124 }
5125 }
5126 #[automatically_derived]
5127 #[doc(hidden)]
5128 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
5129 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5130 Self {
5131 verifyingKey: tuple.0,
5132 publicInput: tuple.1,
5133 proof: tuple.2,
5134 }
5135 }
5136 }
5137 }
5138 {
5139 #[doc(hidden)]
5140 #[allow(dead_code)]
5141 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
5142 #[doc(hidden)]
5143 type UnderlyingRustTuple<'a> = (bool,);
5144 #[cfg(test)]
5145 #[allow(dead_code, unreachable_patterns)]
5146 fn _type_assertion(
5147 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5148 ) {
5149 match _t {
5150 alloy_sol_types::private::AssertTypeEq::<
5151 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5152 >(_) => {}
5153 }
5154 }
5155 #[automatically_derived]
5156 #[doc(hidden)]
5157 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
5158 fn from(value: verifyReturn) -> Self {
5159 (value._0,)
5160 }
5161 }
5162 #[automatically_derived]
5163 #[doc(hidden)]
5164 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
5165 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5166 Self { _0: tuple.0 }
5167 }
5168 }
5169 }
5170 #[automatically_derived]
5171 impl alloy_sol_types::SolCall for verifyCall {
5172 type Parameters<'a> = (
5173 IPlonkVerifier::VerifyingKey,
5174 alloy::sol_types::sol_data::FixedArray<
5175 alloy::sol_types::sol_data::Uint<256>,
5176 11usize,
5177 >,
5178 IPlonkVerifier::PlonkProof,
5179 );
5180 type Token<'a> = <Self::Parameters<
5181 'a,
5182 > as alloy_sol_types::SolType>::Token<'a>;
5183 type Return = bool;
5184 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
5185 type ReturnToken<'a> = <Self::ReturnTuple<
5186 'a,
5187 > as alloy_sol_types::SolType>::Token<'a>;
5188 const SIGNATURE: &'static str = "verify((uint256,uint256,(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),bytes32,bytes32),uint256[11],((uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))";
5189 const SELECTOR: [u8; 4] = [171u8, 149u8, 158u8, 227u8];
5190 #[inline]
5191 fn new<'a>(
5192 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5193 ) -> Self {
5194 tuple.into()
5195 }
5196 #[inline]
5197 fn tokenize(&self) -> Self::Token<'_> {
5198 (
5199 <IPlonkVerifier::VerifyingKey as alloy_sol_types::SolType>::tokenize(
5200 &self.verifyingKey,
5201 ),
5202 <alloy::sol_types::sol_data::FixedArray<
5203 alloy::sol_types::sol_data::Uint<256>,
5204 11usize,
5205 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
5206 <IPlonkVerifier::PlonkProof as alloy_sol_types::SolType>::tokenize(
5207 &self.proof,
5208 ),
5209 )
5210 }
5211 #[inline]
5212 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5213 (
5214 <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
5215 ret,
5216 ),
5217 )
5218 }
5219 #[inline]
5220 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5221 <Self::ReturnTuple<
5222 '_,
5223 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5224 .map(|r| {
5225 let r: verifyReturn = r.into();
5226 r._0
5227 })
5228 }
5229 #[inline]
5230 fn abi_decode_returns_validate(
5231 data: &[u8],
5232 ) -> alloy_sol_types::Result<Self::Return> {
5233 <Self::ReturnTuple<
5234 '_,
5235 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5236 .map(|r| {
5237 let r: verifyReturn = r.into();
5238 r._0
5239 })
5240 }
5241 }
5242 };
5243 #[derive(Clone)]
5245 #[derive(serde::Serialize, serde::Deserialize)]
5246 #[derive()]
5247 pub enum PlonkVerifierV2Calls {
5248 #[allow(missing_docs)]
5249 BETA_H_X0(BETA_H_X0Call),
5250 #[allow(missing_docs)]
5251 BETA_H_X1(BETA_H_X1Call),
5252 #[allow(missing_docs)]
5253 BETA_H_Y0(BETA_H_Y0Call),
5254 #[allow(missing_docs)]
5255 BETA_H_Y1(BETA_H_Y1Call),
5256 #[allow(missing_docs)]
5257 COSET_K1(COSET_K1Call),
5258 #[allow(missing_docs)]
5259 COSET_K2(COSET_K2Call),
5260 #[allow(missing_docs)]
5261 COSET_K3(COSET_K3Call),
5262 #[allow(missing_docs)]
5263 COSET_K4(COSET_K4Call),
5264 #[allow(missing_docs)]
5265 verify(verifyCall),
5266 }
5267 impl PlonkVerifierV2Calls {
5268 pub const SELECTORS: &'static [[u8; 4usize]] = &[
5275 [12u8, 85u8, 31u8, 63u8],
5276 [75u8, 71u8, 52u8, 227u8],
5277 [90u8, 20u8, 192u8, 254u8],
5278 [131u8, 76u8, 69u8, 42u8],
5279 [171u8, 149u8, 158u8, 227u8],
5280 [175u8, 25u8, 107u8, 162u8],
5281 [222u8, 36u8, 172u8, 15u8],
5282 [227u8, 81u8, 45u8, 86u8],
5283 [245u8, 20u8, 67u8, 38u8],
5284 ];
5285 pub const VARIANT_NAMES: &'static [&'static str] = &[
5287 ::core::stringify!(COSET_K2),
5288 ::core::stringify!(BETA_H_Y1),
5289 ::core::stringify!(COSET_K3),
5290 ::core::stringify!(BETA_H_X0),
5291 ::core::stringify!(verify),
5292 ::core::stringify!(BETA_H_X1),
5293 ::core::stringify!(COSET_K4),
5294 ::core::stringify!(COSET_K1),
5295 ::core::stringify!(BETA_H_Y0),
5296 ];
5297 pub const SIGNATURES: &'static [&'static str] = &[
5299 <COSET_K2Call as alloy_sol_types::SolCall>::SIGNATURE,
5300 <BETA_H_Y1Call as alloy_sol_types::SolCall>::SIGNATURE,
5301 <COSET_K3Call as alloy_sol_types::SolCall>::SIGNATURE,
5302 <BETA_H_X0Call as alloy_sol_types::SolCall>::SIGNATURE,
5303 <verifyCall as alloy_sol_types::SolCall>::SIGNATURE,
5304 <BETA_H_X1Call as alloy_sol_types::SolCall>::SIGNATURE,
5305 <COSET_K4Call as alloy_sol_types::SolCall>::SIGNATURE,
5306 <COSET_K1Call as alloy_sol_types::SolCall>::SIGNATURE,
5307 <BETA_H_Y0Call as alloy_sol_types::SolCall>::SIGNATURE,
5308 ];
5309 #[inline]
5311 pub fn signature_by_selector(
5312 selector: [u8; 4usize],
5313 ) -> ::core::option::Option<&'static str> {
5314 match Self::SELECTORS.binary_search(&selector) {
5315 ::core::result::Result::Ok(idx) => {
5316 ::core::option::Option::Some(Self::SIGNATURES[idx])
5317 }
5318 ::core::result::Result::Err(_) => ::core::option::Option::None,
5319 }
5320 }
5321 #[inline]
5323 pub fn name_by_selector(
5324 selector: [u8; 4usize],
5325 ) -> ::core::option::Option<&'static str> {
5326 let sig = Self::signature_by_selector(selector)?;
5327 sig.split_once('(').map(|(name, _)| name)
5328 }
5329 }
5330 #[automatically_derived]
5331 impl alloy_sol_types::SolInterface for PlonkVerifierV2Calls {
5332 const NAME: &'static str = "PlonkVerifierV2Calls";
5333 const MIN_DATA_LENGTH: usize = 0usize;
5334 const COUNT: usize = 9usize;
5335 #[inline]
5336 fn selector(&self) -> [u8; 4] {
5337 match self {
5338 Self::BETA_H_X0(_) => {
5339 <BETA_H_X0Call as alloy_sol_types::SolCall>::SELECTOR
5340 }
5341 Self::BETA_H_X1(_) => {
5342 <BETA_H_X1Call as alloy_sol_types::SolCall>::SELECTOR
5343 }
5344 Self::BETA_H_Y0(_) => {
5345 <BETA_H_Y0Call as alloy_sol_types::SolCall>::SELECTOR
5346 }
5347 Self::BETA_H_Y1(_) => {
5348 <BETA_H_Y1Call as alloy_sol_types::SolCall>::SELECTOR
5349 }
5350 Self::COSET_K1(_) => <COSET_K1Call as alloy_sol_types::SolCall>::SELECTOR,
5351 Self::COSET_K2(_) => <COSET_K2Call as alloy_sol_types::SolCall>::SELECTOR,
5352 Self::COSET_K3(_) => <COSET_K3Call as alloy_sol_types::SolCall>::SELECTOR,
5353 Self::COSET_K4(_) => <COSET_K4Call as alloy_sol_types::SolCall>::SELECTOR,
5354 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
5355 }
5356 }
5357 #[inline]
5358 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
5359 Self::SELECTORS.get(i).copied()
5360 }
5361 #[inline]
5362 fn valid_selector(selector: [u8; 4]) -> bool {
5363 Self::SELECTORS.binary_search(&selector).is_ok()
5364 }
5365 #[inline]
5366 #[allow(non_snake_case)]
5367 fn abi_decode_raw(
5368 selector: [u8; 4],
5369 data: &[u8],
5370 ) -> alloy_sol_types::Result<Self> {
5371 static DECODE_SHIMS: &[fn(
5372 &[u8],
5373 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls>] = &[
5374 {
5375 fn COSET_K2(
5376 data: &[u8],
5377 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5378 <COSET_K2Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5379 .map(PlonkVerifierV2Calls::COSET_K2)
5380 }
5381 COSET_K2
5382 },
5383 {
5384 fn BETA_H_Y1(
5385 data: &[u8],
5386 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5387 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5388 .map(PlonkVerifierV2Calls::BETA_H_Y1)
5389 }
5390 BETA_H_Y1
5391 },
5392 {
5393 fn COSET_K3(
5394 data: &[u8],
5395 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5396 <COSET_K3Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5397 .map(PlonkVerifierV2Calls::COSET_K3)
5398 }
5399 COSET_K3
5400 },
5401 {
5402 fn BETA_H_X0(
5403 data: &[u8],
5404 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5405 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5406 .map(PlonkVerifierV2Calls::BETA_H_X0)
5407 }
5408 BETA_H_X0
5409 },
5410 {
5411 fn verify(
5412 data: &[u8],
5413 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5414 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
5415 .map(PlonkVerifierV2Calls::verify)
5416 }
5417 verify
5418 },
5419 {
5420 fn BETA_H_X1(
5421 data: &[u8],
5422 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5423 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5424 .map(PlonkVerifierV2Calls::BETA_H_X1)
5425 }
5426 BETA_H_X1
5427 },
5428 {
5429 fn COSET_K4(
5430 data: &[u8],
5431 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5432 <COSET_K4Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5433 .map(PlonkVerifierV2Calls::COSET_K4)
5434 }
5435 COSET_K4
5436 },
5437 {
5438 fn COSET_K1(
5439 data: &[u8],
5440 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5441 <COSET_K1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5442 .map(PlonkVerifierV2Calls::COSET_K1)
5443 }
5444 COSET_K1
5445 },
5446 {
5447 fn BETA_H_Y0(
5448 data: &[u8],
5449 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5450 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5451 .map(PlonkVerifierV2Calls::BETA_H_Y0)
5452 }
5453 BETA_H_Y0
5454 },
5455 ];
5456 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
5457 return Err(
5458 alloy_sol_types::Error::unknown_selector(
5459 <Self as alloy_sol_types::SolInterface>::NAME,
5460 selector,
5461 ),
5462 );
5463 };
5464 DECODE_SHIMS[idx](data)
5465 }
5466 #[inline]
5467 #[allow(non_snake_case)]
5468 fn abi_decode_raw_validate(
5469 selector: [u8; 4],
5470 data: &[u8],
5471 ) -> alloy_sol_types::Result<Self> {
5472 static DECODE_VALIDATE_SHIMS: &[fn(
5473 &[u8],
5474 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls>] = &[
5475 {
5476 fn COSET_K2(
5477 data: &[u8],
5478 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5479 <COSET_K2Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5480 data,
5481 )
5482 .map(PlonkVerifierV2Calls::COSET_K2)
5483 }
5484 COSET_K2
5485 },
5486 {
5487 fn BETA_H_Y1(
5488 data: &[u8],
5489 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5490 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5491 data,
5492 )
5493 .map(PlonkVerifierV2Calls::BETA_H_Y1)
5494 }
5495 BETA_H_Y1
5496 },
5497 {
5498 fn COSET_K3(
5499 data: &[u8],
5500 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5501 <COSET_K3Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5502 data,
5503 )
5504 .map(PlonkVerifierV2Calls::COSET_K3)
5505 }
5506 COSET_K3
5507 },
5508 {
5509 fn BETA_H_X0(
5510 data: &[u8],
5511 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5512 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5513 data,
5514 )
5515 .map(PlonkVerifierV2Calls::BETA_H_X0)
5516 }
5517 BETA_H_X0
5518 },
5519 {
5520 fn verify(
5521 data: &[u8],
5522 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5523 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5524 data,
5525 )
5526 .map(PlonkVerifierV2Calls::verify)
5527 }
5528 verify
5529 },
5530 {
5531 fn BETA_H_X1(
5532 data: &[u8],
5533 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5534 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5535 data,
5536 )
5537 .map(PlonkVerifierV2Calls::BETA_H_X1)
5538 }
5539 BETA_H_X1
5540 },
5541 {
5542 fn COSET_K4(
5543 data: &[u8],
5544 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5545 <COSET_K4Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5546 data,
5547 )
5548 .map(PlonkVerifierV2Calls::COSET_K4)
5549 }
5550 COSET_K4
5551 },
5552 {
5553 fn COSET_K1(
5554 data: &[u8],
5555 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5556 <COSET_K1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5557 data,
5558 )
5559 .map(PlonkVerifierV2Calls::COSET_K1)
5560 }
5561 COSET_K1
5562 },
5563 {
5564 fn BETA_H_Y0(
5565 data: &[u8],
5566 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5567 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5568 data,
5569 )
5570 .map(PlonkVerifierV2Calls::BETA_H_Y0)
5571 }
5572 BETA_H_Y0
5573 },
5574 ];
5575 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
5576 return Err(
5577 alloy_sol_types::Error::unknown_selector(
5578 <Self as alloy_sol_types::SolInterface>::NAME,
5579 selector,
5580 ),
5581 );
5582 };
5583 DECODE_VALIDATE_SHIMS[idx](data)
5584 }
5585 #[inline]
5586 fn abi_encoded_size(&self) -> usize {
5587 match self {
5588 Self::BETA_H_X0(inner) => {
5589 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5590 }
5591 Self::BETA_H_X1(inner) => {
5592 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5593 }
5594 Self::BETA_H_Y0(inner) => {
5595 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5596 }
5597 Self::BETA_H_Y1(inner) => {
5598 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5599 }
5600 Self::COSET_K1(inner) => {
5601 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5602 }
5603 Self::COSET_K2(inner) => {
5604 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5605 }
5606 Self::COSET_K3(inner) => {
5607 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5608 }
5609 Self::COSET_K4(inner) => {
5610 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5611 }
5612 Self::verify(inner) => {
5613 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5614 }
5615 }
5616 }
5617 #[inline]
5618 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
5619 match self {
5620 Self::BETA_H_X0(inner) => {
5621 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encode_raw(
5622 inner,
5623 out,
5624 )
5625 }
5626 Self::BETA_H_X1(inner) => {
5627 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5628 inner,
5629 out,
5630 )
5631 }
5632 Self::BETA_H_Y0(inner) => {
5633 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encode_raw(
5634 inner,
5635 out,
5636 )
5637 }
5638 Self::BETA_H_Y1(inner) => {
5639 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5640 inner,
5641 out,
5642 )
5643 }
5644 Self::COSET_K1(inner) => {
5645 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5646 inner,
5647 out,
5648 )
5649 }
5650 Self::COSET_K2(inner) => {
5651 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encode_raw(
5652 inner,
5653 out,
5654 )
5655 }
5656 Self::COSET_K3(inner) => {
5657 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encode_raw(
5658 inner,
5659 out,
5660 )
5661 }
5662 Self::COSET_K4(inner) => {
5663 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encode_raw(
5664 inner,
5665 out,
5666 )
5667 }
5668 Self::verify(inner) => {
5669 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
5670 }
5671 }
5672 }
5673 }
5674 #[derive(Clone)]
5676 #[derive(serde::Serialize, serde::Deserialize)]
5677 #[derive(Debug, PartialEq, Eq, Hash)]
5678 pub enum PlonkVerifierV2Errors {
5679 #[allow(missing_docs)]
5680 BN254G1AddFailed(BN254G1AddFailed),
5681 #[allow(missing_docs)]
5682 BN254PairingProdFailed(BN254PairingProdFailed),
5683 #[allow(missing_docs)]
5684 BN254ScalarInvZero(BN254ScalarInvZero),
5685 #[allow(missing_docs)]
5686 BN254ScalarMulFailed(BN254ScalarMulFailed),
5687 #[allow(missing_docs)]
5688 InvalidG1(InvalidG1),
5689 #[allow(missing_docs)]
5690 InvalidPlonkArgs(InvalidPlonkArgs),
5691 #[allow(missing_docs)]
5692 InvalidScalar(InvalidScalar),
5693 #[allow(missing_docs)]
5694 PowPrecompileFailed(PowPrecompileFailed),
5695 #[allow(missing_docs)]
5696 UnsupportedDegree(UnsupportedDegree),
5697 #[allow(missing_docs)]
5698 WrongPlonkVK(WrongPlonkVK),
5699 }
5700 impl PlonkVerifierV2Errors {
5701 pub const SELECTORS: &'static [[u8; 4usize]] = &[
5708 [5u8, 176u8, 92u8, 204u8],
5709 [25u8, 219u8, 138u8, 104u8],
5710 [50u8, 116u8, 250u8, 100u8],
5711 [65u8, 245u8, 59u8, 18u8],
5712 [96u8, 85u8, 219u8, 106u8],
5713 [158u8, 120u8, 209u8, 76u8],
5714 [194u8, 6u8, 51u8, 79u8],
5715 [214u8, 219u8, 187u8, 13u8],
5716 [226u8, 239u8, 9u8, 229u8],
5717 [253u8, 154u8, 45u8, 27u8],
5718 ];
5719 pub const VARIANT_NAMES: &'static [&'static str] = &[
5721 ::core::stringify!(InvalidScalar),
5722 ::core::stringify!(BN254ScalarMulFailed),
5723 ::core::stringify!(PowPrecompileFailed),
5724 ::core::stringify!(WrongPlonkVK),
5725 ::core::stringify!(BN254G1AddFailed),
5726 ::core::stringify!(InvalidG1),
5727 ::core::stringify!(BN254PairingProdFailed),
5728 ::core::stringify!(BN254ScalarInvZero),
5729 ::core::stringify!(UnsupportedDegree),
5730 ::core::stringify!(InvalidPlonkArgs),
5731 ];
5732 pub const SIGNATURES: &'static [&'static str] = &[
5734 <InvalidScalar as alloy_sol_types::SolError>::SIGNATURE,
5735 <BN254ScalarMulFailed as alloy_sol_types::SolError>::SIGNATURE,
5736 <PowPrecompileFailed as alloy_sol_types::SolError>::SIGNATURE,
5737 <WrongPlonkVK as alloy_sol_types::SolError>::SIGNATURE,
5738 <BN254G1AddFailed as alloy_sol_types::SolError>::SIGNATURE,
5739 <InvalidG1 as alloy_sol_types::SolError>::SIGNATURE,
5740 <BN254PairingProdFailed as alloy_sol_types::SolError>::SIGNATURE,
5741 <BN254ScalarInvZero as alloy_sol_types::SolError>::SIGNATURE,
5742 <UnsupportedDegree as alloy_sol_types::SolError>::SIGNATURE,
5743 <InvalidPlonkArgs as alloy_sol_types::SolError>::SIGNATURE,
5744 ];
5745 #[inline]
5747 pub fn signature_by_selector(
5748 selector: [u8; 4usize],
5749 ) -> ::core::option::Option<&'static str> {
5750 match Self::SELECTORS.binary_search(&selector) {
5751 ::core::result::Result::Ok(idx) => {
5752 ::core::option::Option::Some(Self::SIGNATURES[idx])
5753 }
5754 ::core::result::Result::Err(_) => ::core::option::Option::None,
5755 }
5756 }
5757 #[inline]
5759 pub fn name_by_selector(
5760 selector: [u8; 4usize],
5761 ) -> ::core::option::Option<&'static str> {
5762 let sig = Self::signature_by_selector(selector)?;
5763 sig.split_once('(').map(|(name, _)| name)
5764 }
5765 }
5766 #[automatically_derived]
5767 impl alloy_sol_types::SolInterface for PlonkVerifierV2Errors {
5768 const NAME: &'static str = "PlonkVerifierV2Errors";
5769 const MIN_DATA_LENGTH: usize = 0usize;
5770 const COUNT: usize = 10usize;
5771 #[inline]
5772 fn selector(&self) -> [u8; 4] {
5773 match self {
5774 Self::BN254G1AddFailed(_) => {
5775 <BN254G1AddFailed as alloy_sol_types::SolError>::SELECTOR
5776 }
5777 Self::BN254PairingProdFailed(_) => {
5778 <BN254PairingProdFailed as alloy_sol_types::SolError>::SELECTOR
5779 }
5780 Self::BN254ScalarInvZero(_) => {
5781 <BN254ScalarInvZero as alloy_sol_types::SolError>::SELECTOR
5782 }
5783 Self::BN254ScalarMulFailed(_) => {
5784 <BN254ScalarMulFailed as alloy_sol_types::SolError>::SELECTOR
5785 }
5786 Self::InvalidG1(_) => <InvalidG1 as alloy_sol_types::SolError>::SELECTOR,
5787 Self::InvalidPlonkArgs(_) => {
5788 <InvalidPlonkArgs as alloy_sol_types::SolError>::SELECTOR
5789 }
5790 Self::InvalidScalar(_) => {
5791 <InvalidScalar as alloy_sol_types::SolError>::SELECTOR
5792 }
5793 Self::PowPrecompileFailed(_) => {
5794 <PowPrecompileFailed as alloy_sol_types::SolError>::SELECTOR
5795 }
5796 Self::UnsupportedDegree(_) => {
5797 <UnsupportedDegree as alloy_sol_types::SolError>::SELECTOR
5798 }
5799 Self::WrongPlonkVK(_) => {
5800 <WrongPlonkVK as alloy_sol_types::SolError>::SELECTOR
5801 }
5802 }
5803 }
5804 #[inline]
5805 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
5806 Self::SELECTORS.get(i).copied()
5807 }
5808 #[inline]
5809 fn valid_selector(selector: [u8; 4]) -> bool {
5810 Self::SELECTORS.binary_search(&selector).is_ok()
5811 }
5812 #[inline]
5813 #[allow(non_snake_case)]
5814 fn abi_decode_raw(
5815 selector: [u8; 4],
5816 data: &[u8],
5817 ) -> alloy_sol_types::Result<Self> {
5818 static DECODE_SHIMS: &[fn(
5819 &[u8],
5820 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors>] = &[
5821 {
5822 fn InvalidScalar(
5823 data: &[u8],
5824 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5825 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw(
5826 data,
5827 )
5828 .map(PlonkVerifierV2Errors::InvalidScalar)
5829 }
5830 InvalidScalar
5831 },
5832 {
5833 fn BN254ScalarMulFailed(
5834 data: &[u8],
5835 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5836 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw(
5837 data,
5838 )
5839 .map(PlonkVerifierV2Errors::BN254ScalarMulFailed)
5840 }
5841 BN254ScalarMulFailed
5842 },
5843 {
5844 fn PowPrecompileFailed(
5845 data: &[u8],
5846 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5847 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw(
5848 data,
5849 )
5850 .map(PlonkVerifierV2Errors::PowPrecompileFailed)
5851 }
5852 PowPrecompileFailed
5853 },
5854 {
5855 fn WrongPlonkVK(
5856 data: &[u8],
5857 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5858 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw(data)
5859 .map(PlonkVerifierV2Errors::WrongPlonkVK)
5860 }
5861 WrongPlonkVK
5862 },
5863 {
5864 fn BN254G1AddFailed(
5865 data: &[u8],
5866 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5867 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw(
5868 data,
5869 )
5870 .map(PlonkVerifierV2Errors::BN254G1AddFailed)
5871 }
5872 BN254G1AddFailed
5873 },
5874 {
5875 fn InvalidG1(
5876 data: &[u8],
5877 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5878 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw(data)
5879 .map(PlonkVerifierV2Errors::InvalidG1)
5880 }
5881 InvalidG1
5882 },
5883 {
5884 fn BN254PairingProdFailed(
5885 data: &[u8],
5886 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5887 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw(
5888 data,
5889 )
5890 .map(PlonkVerifierV2Errors::BN254PairingProdFailed)
5891 }
5892 BN254PairingProdFailed
5893 },
5894 {
5895 fn BN254ScalarInvZero(
5896 data: &[u8],
5897 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5898 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw(
5899 data,
5900 )
5901 .map(PlonkVerifierV2Errors::BN254ScalarInvZero)
5902 }
5903 BN254ScalarInvZero
5904 },
5905 {
5906 fn UnsupportedDegree(
5907 data: &[u8],
5908 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5909 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw(
5910 data,
5911 )
5912 .map(PlonkVerifierV2Errors::UnsupportedDegree)
5913 }
5914 UnsupportedDegree
5915 },
5916 {
5917 fn InvalidPlonkArgs(
5918 data: &[u8],
5919 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5920 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw(
5921 data,
5922 )
5923 .map(PlonkVerifierV2Errors::InvalidPlonkArgs)
5924 }
5925 InvalidPlonkArgs
5926 },
5927 ];
5928 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
5929 return Err(
5930 alloy_sol_types::Error::unknown_selector(
5931 <Self as alloy_sol_types::SolInterface>::NAME,
5932 selector,
5933 ),
5934 );
5935 };
5936 DECODE_SHIMS[idx](data)
5937 }
5938 #[inline]
5939 #[allow(non_snake_case)]
5940 fn abi_decode_raw_validate(
5941 selector: [u8; 4],
5942 data: &[u8],
5943 ) -> alloy_sol_types::Result<Self> {
5944 static DECODE_VALIDATE_SHIMS: &[fn(
5945 &[u8],
5946 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors>] = &[
5947 {
5948 fn InvalidScalar(
5949 data: &[u8],
5950 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5951 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw_validate(
5952 data,
5953 )
5954 .map(PlonkVerifierV2Errors::InvalidScalar)
5955 }
5956 InvalidScalar
5957 },
5958 {
5959 fn BN254ScalarMulFailed(
5960 data: &[u8],
5961 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5962 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
5963 data,
5964 )
5965 .map(PlonkVerifierV2Errors::BN254ScalarMulFailed)
5966 }
5967 BN254ScalarMulFailed
5968 },
5969 {
5970 fn PowPrecompileFailed(
5971 data: &[u8],
5972 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5973 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
5974 data,
5975 )
5976 .map(PlonkVerifierV2Errors::PowPrecompileFailed)
5977 }
5978 PowPrecompileFailed
5979 },
5980 {
5981 fn WrongPlonkVK(
5982 data: &[u8],
5983 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5984 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw_validate(
5985 data,
5986 )
5987 .map(PlonkVerifierV2Errors::WrongPlonkVK)
5988 }
5989 WrongPlonkVK
5990 },
5991 {
5992 fn BN254G1AddFailed(
5993 data: &[u8],
5994 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5995 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
5996 data,
5997 )
5998 .map(PlonkVerifierV2Errors::BN254G1AddFailed)
5999 }
6000 BN254G1AddFailed
6001 },
6002 {
6003 fn InvalidG1(
6004 data: &[u8],
6005 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
6006 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw_validate(
6007 data,
6008 )
6009 .map(PlonkVerifierV2Errors::InvalidG1)
6010 }
6011 InvalidG1
6012 },
6013 {
6014 fn BN254PairingProdFailed(
6015 data: &[u8],
6016 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
6017 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
6018 data,
6019 )
6020 .map(PlonkVerifierV2Errors::BN254PairingProdFailed)
6021 }
6022 BN254PairingProdFailed
6023 },
6024 {
6025 fn BN254ScalarInvZero(
6026 data: &[u8],
6027 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
6028 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
6029 data,
6030 )
6031 .map(PlonkVerifierV2Errors::BN254ScalarInvZero)
6032 }
6033 BN254ScalarInvZero
6034 },
6035 {
6036 fn UnsupportedDegree(
6037 data: &[u8],
6038 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
6039 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw_validate(
6040 data,
6041 )
6042 .map(PlonkVerifierV2Errors::UnsupportedDegree)
6043 }
6044 UnsupportedDegree
6045 },
6046 {
6047 fn InvalidPlonkArgs(
6048 data: &[u8],
6049 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
6050 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw_validate(
6051 data,
6052 )
6053 .map(PlonkVerifierV2Errors::InvalidPlonkArgs)
6054 }
6055 InvalidPlonkArgs
6056 },
6057 ];
6058 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
6059 return Err(
6060 alloy_sol_types::Error::unknown_selector(
6061 <Self as alloy_sol_types::SolInterface>::NAME,
6062 selector,
6063 ),
6064 );
6065 };
6066 DECODE_VALIDATE_SHIMS[idx](data)
6067 }
6068 #[inline]
6069 fn abi_encoded_size(&self) -> usize {
6070 match self {
6071 Self::BN254G1AddFailed(inner) => {
6072 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encoded_size(
6073 inner,
6074 )
6075 }
6076 Self::BN254PairingProdFailed(inner) => {
6077 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encoded_size(
6078 inner,
6079 )
6080 }
6081 Self::BN254ScalarInvZero(inner) => {
6082 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encoded_size(
6083 inner,
6084 )
6085 }
6086 Self::BN254ScalarMulFailed(inner) => {
6087 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encoded_size(
6088 inner,
6089 )
6090 }
6091 Self::InvalidG1(inner) => {
6092 <InvalidG1 as alloy_sol_types::SolError>::abi_encoded_size(inner)
6093 }
6094 Self::InvalidPlonkArgs(inner) => {
6095 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encoded_size(
6096 inner,
6097 )
6098 }
6099 Self::InvalidScalar(inner) => {
6100 <InvalidScalar as alloy_sol_types::SolError>::abi_encoded_size(inner)
6101 }
6102 Self::PowPrecompileFailed(inner) => {
6103 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encoded_size(
6104 inner,
6105 )
6106 }
6107 Self::UnsupportedDegree(inner) => {
6108 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encoded_size(
6109 inner,
6110 )
6111 }
6112 Self::WrongPlonkVK(inner) => {
6113 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encoded_size(inner)
6114 }
6115 }
6116 }
6117 #[inline]
6118 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
6119 match self {
6120 Self::BN254G1AddFailed(inner) => {
6121 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encode_raw(
6122 inner,
6123 out,
6124 )
6125 }
6126 Self::BN254PairingProdFailed(inner) => {
6127 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encode_raw(
6128 inner,
6129 out,
6130 )
6131 }
6132 Self::BN254ScalarInvZero(inner) => {
6133 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encode_raw(
6134 inner,
6135 out,
6136 )
6137 }
6138 Self::BN254ScalarMulFailed(inner) => {
6139 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encode_raw(
6140 inner,
6141 out,
6142 )
6143 }
6144 Self::InvalidG1(inner) => {
6145 <InvalidG1 as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
6146 }
6147 Self::InvalidPlonkArgs(inner) => {
6148 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encode_raw(
6149 inner,
6150 out,
6151 )
6152 }
6153 Self::InvalidScalar(inner) => {
6154 <InvalidScalar as alloy_sol_types::SolError>::abi_encode_raw(
6155 inner,
6156 out,
6157 )
6158 }
6159 Self::PowPrecompileFailed(inner) => {
6160 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encode_raw(
6161 inner,
6162 out,
6163 )
6164 }
6165 Self::UnsupportedDegree(inner) => {
6166 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encode_raw(
6167 inner,
6168 out,
6169 )
6170 }
6171 Self::WrongPlonkVK(inner) => {
6172 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encode_raw(
6173 inner,
6174 out,
6175 )
6176 }
6177 }
6178 }
6179 }
6180 use alloy::contract as alloy_contract;
6181 #[inline]
6185 pub const fn new<
6186 P: alloy_contract::private::Provider<N>,
6187 N: alloy_contract::private::Network,
6188 >(
6189 address: alloy_sol_types::private::Address,
6190 __provider: P,
6191 ) -> PlonkVerifierV2Instance<P, N> {
6192 PlonkVerifierV2Instance::<P, N>::new(address, __provider)
6193 }
6194 #[inline]
6200 pub fn deploy<
6201 P: alloy_contract::private::Provider<N>,
6202 N: alloy_contract::private::Network,
6203 >(
6204 __provider: P,
6205 ) -> impl ::core::future::Future<
6206 Output = alloy_contract::Result<PlonkVerifierV2Instance<P, N>>,
6207 > {
6208 PlonkVerifierV2Instance::<P, N>::deploy(__provider)
6209 }
6210 #[inline]
6216 pub fn deploy_builder<
6217 P: alloy_contract::private::Provider<N>,
6218 N: alloy_contract::private::Network,
6219 >(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
6220 PlonkVerifierV2Instance::<P, N>::deploy_builder(__provider)
6221 }
6222 #[derive(Clone)]
6234 pub struct PlonkVerifierV2Instance<P, N = alloy_contract::private::Ethereum> {
6235 address: alloy_sol_types::private::Address,
6236 provider: P,
6237 _network: ::core::marker::PhantomData<N>,
6238 }
6239 #[automatically_derived]
6240 impl<P, N> ::core::fmt::Debug for PlonkVerifierV2Instance<P, N> {
6241 #[inline]
6242 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6243 f.debug_tuple("PlonkVerifierV2Instance").field(&self.address).finish()
6244 }
6245 }
6246 impl<
6248 P: alloy_contract::private::Provider<N>,
6249 N: alloy_contract::private::Network,
6250 > PlonkVerifierV2Instance<P, N> {
6251 #[inline]
6255 pub const fn new(
6256 address: alloy_sol_types::private::Address,
6257 __provider: P,
6258 ) -> Self {
6259 Self {
6260 address,
6261 provider: __provider,
6262 _network: ::core::marker::PhantomData,
6263 }
6264 }
6265 #[inline]
6271 pub async fn deploy(
6272 __provider: P,
6273 ) -> alloy_contract::Result<PlonkVerifierV2Instance<P, N>> {
6274 let call_builder = Self::deploy_builder(__provider);
6275 let contract_address = call_builder.deploy().await?;
6276 Ok(Self::new(contract_address, call_builder.provider))
6277 }
6278 #[inline]
6284 pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
6285 alloy_contract::RawCallBuilder::new_raw_deploy(
6286 __provider,
6287 ::core::clone::Clone::clone(&BYTECODE),
6288 )
6289 }
6290 #[inline]
6292 pub const fn address(&self) -> &alloy_sol_types::private::Address {
6293 &self.address
6294 }
6295 #[inline]
6297 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
6298 self.address = address;
6299 }
6300 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
6302 self.set_address(address);
6303 self
6304 }
6305 #[inline]
6307 pub const fn provider(&self) -> &P {
6308 &self.provider
6309 }
6310 }
6311 impl<P: ::core::clone::Clone, N> PlonkVerifierV2Instance<&P, N> {
6312 #[inline]
6314 pub fn with_cloned_provider(self) -> PlonkVerifierV2Instance<P, N> {
6315 PlonkVerifierV2Instance {
6316 address: self.address,
6317 provider: ::core::clone::Clone::clone(&self.provider),
6318 _network: ::core::marker::PhantomData,
6319 }
6320 }
6321 }
6322 impl<
6324 P: alloy_contract::private::Provider<N>,
6325 N: alloy_contract::private::Network,
6326 > PlonkVerifierV2Instance<P, N> {
6327 pub fn call_builder<C: alloy_sol_types::SolCall>(
6332 &self,
6333 call: &C,
6334 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
6335 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
6336 }
6337 pub fn BETA_H_X0(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_X0Call, N> {
6339 self.call_builder(&BETA_H_X0Call)
6340 }
6341 pub fn BETA_H_X1(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_X1Call, N> {
6343 self.call_builder(&BETA_H_X1Call)
6344 }
6345 pub fn BETA_H_Y0(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_Y0Call, N> {
6347 self.call_builder(&BETA_H_Y0Call)
6348 }
6349 pub fn BETA_H_Y1(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_Y1Call, N> {
6351 self.call_builder(&BETA_H_Y1Call)
6352 }
6353 pub fn COSET_K1(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K1Call, N> {
6355 self.call_builder(&COSET_K1Call)
6356 }
6357 pub fn COSET_K2(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K2Call, N> {
6359 self.call_builder(&COSET_K2Call)
6360 }
6361 pub fn COSET_K3(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K3Call, N> {
6363 self.call_builder(&COSET_K3Call)
6364 }
6365 pub fn COSET_K4(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K4Call, N> {
6367 self.call_builder(&COSET_K4Call)
6368 }
6369 pub fn verify(
6371 &self,
6372 verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
6373 publicInput: [alloy::sol_types::private::primitives::aliases::U256; 11usize],
6374 proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
6375 ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> {
6376 self.call_builder(
6377 &verifyCall {
6378 verifyingKey,
6379 publicInput,
6380 proof,
6381 },
6382 )
6383 }
6384 }
6385 impl<
6387 P: alloy_contract::private::Provider<N>,
6388 N: alloy_contract::private::Network,
6389 > PlonkVerifierV2Instance<P, N> {
6390 pub fn event_filter<E: alloy_sol_types::SolEvent>(
6395 &self,
6396 ) -> alloy_contract::Event<&P, E, N> {
6397 alloy_contract::Event::new_sol(&self.provider, &self.address)
6398 }
6399 }
6400}