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 alloy::sol_types as alloy_sol_types;
20
21 use super::*;
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 {
32 #[inline]
33 fn stv_to_tokens(
34 &self,
35 ) -> <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::Token<'_>
36 {
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<256> as alloy_sol_types::SolType>::tokenize(self)
44 .0
45 }
46 #[inline]
47 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
48 <alloy::sol_types::sol_data::Uint<
49 256,
50 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
51 }
52 #[inline]
53 fn stv_abi_packed_encoded_size(&self) -> usize {
54 <alloy::sol_types::sol_data::Uint<
55 256,
56 > as alloy_sol_types::SolType>::abi_encoded_size(self)
57 }
58 }
59 #[automatically_derived]
60 impl BaseField {
61 pub const NAME: &'static str = stringify!(@ name);
63 #[inline]
65 pub const fn from(value: alloy::sol_types::private::primitives::aliases::U256) -> Self {
66 Self(value)
67 }
68 #[inline]
70 pub const fn into(self) -> alloy::sol_types::private::primitives::aliases::U256 {
71 self.0
72 }
73 #[inline]
76 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
77 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
78 }
79 #[inline]
82 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
83 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
84 }
85 }
86 #[automatically_derived]
87 impl alloy_sol_types::SolType for BaseField {
88 type RustType = alloy::sol_types::private::primitives::aliases::U256;
89 type Token<'a> =
90 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::Token<'a>;
91 const SOL_NAME: &'static str = Self::NAME;
92 const ENCODED_SIZE: Option<usize> =
93 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::ENCODED_SIZE;
94 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
95 256,
96 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
97 #[inline]
98 fn valid_token(token: &Self::Token<'_>) -> bool {
99 Self::type_check(token).is_ok()
100 }
101 #[inline]
102 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
103 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::type_check(
104 token,
105 )
106 }
107 #[inline]
108 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
109 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::detokenize(
110 token,
111 )
112 }
113 }
114 #[automatically_derived]
115 impl alloy_sol_types::EventTopic for BaseField {
116 #[inline]
117 fn topic_preimage_length(rust: &Self::RustType) -> usize {
118 <alloy::sol_types::sol_data::Uint<
119 256,
120 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
121 }
122 #[inline]
123 fn encode_topic_preimage(
124 rust: &Self::RustType,
125 out: &mut alloy_sol_types::private::Vec<u8>,
126 ) {
127 <alloy::sol_types::sol_data::Uint<
128 256,
129 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
130 }
131 #[inline]
132 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
133 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::EventTopic>::encode_topic(
134 rust,
135 )
136 }
137 }
138 };
139 #[derive(Default, Debug, PartialEq, Eq, Hash)]
140 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
141 #[derive(Clone)]
142 pub struct ScalarField(alloy::sol_types::private::primitives::aliases::U256);
143 const _: () = {
144 use alloy::sol_types as alloy_sol_types;
145 #[automatically_derived]
146 impl alloy_sol_types::private::SolTypeValue<ScalarField>
147 for alloy::sol_types::private::primitives::aliases::U256
148 {
149 #[inline]
150 fn stv_to_tokens(
151 &self,
152 ) -> <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::Token<'_>
153 {
154 alloy_sol_types::private::SolTypeValue::<
155 alloy::sol_types::sol_data::Uint<256>,
156 >::stv_to_tokens(self)
157 }
158 #[inline]
159 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
160 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(self)
161 .0
162 }
163 #[inline]
164 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
165 <alloy::sol_types::sol_data::Uint<
166 256,
167 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
168 }
169 #[inline]
170 fn stv_abi_packed_encoded_size(&self) -> usize {
171 <alloy::sol_types::sol_data::Uint<
172 256,
173 > as alloy_sol_types::SolType>::abi_encoded_size(self)
174 }
175 }
176 #[automatically_derived]
177 impl ScalarField {
178 pub const NAME: &'static str = stringify!(@ name);
180 #[inline]
182 pub const fn from(value: alloy::sol_types::private::primitives::aliases::U256) -> Self {
183 Self(value)
184 }
185 #[inline]
187 pub const fn into(self) -> alloy::sol_types::private::primitives::aliases::U256 {
188 self.0
189 }
190 #[inline]
193 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
194 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
195 }
196 #[inline]
199 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
200 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
201 }
202 }
203 #[automatically_derived]
204 impl alloy_sol_types::SolType for ScalarField {
205 type RustType = alloy::sol_types::private::primitives::aliases::U256;
206 type Token<'a> =
207 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::Token<'a>;
208 const SOL_NAME: &'static str = Self::NAME;
209 const ENCODED_SIZE: Option<usize> =
210 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::ENCODED_SIZE;
211 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
212 256,
213 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
214 #[inline]
215 fn valid_token(token: &Self::Token<'_>) -> bool {
216 Self::type_check(token).is_ok()
217 }
218 #[inline]
219 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
220 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::type_check(
221 token,
222 )
223 }
224 #[inline]
225 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
226 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::detokenize(
227 token,
228 )
229 }
230 }
231 #[automatically_derived]
232 impl alloy_sol_types::EventTopic for ScalarField {
233 #[inline]
234 fn topic_preimage_length(rust: &Self::RustType) -> usize {
235 <alloy::sol_types::sol_data::Uint<
236 256,
237 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
238 }
239 #[inline]
240 fn encode_topic_preimage(
241 rust: &Self::RustType,
242 out: &mut alloy_sol_types::private::Vec<u8>,
243 ) {
244 <alloy::sol_types::sol_data::Uint<
245 256,
246 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
247 }
248 #[inline]
249 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
250 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::EventTopic>::encode_topic(
251 rust,
252 )
253 }
254 }
255 };
256 #[derive(Default, Debug, PartialEq, Eq, Hash)]
257 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
261 #[derive(Clone)]
262 pub struct G1Point {
263 #[allow(missing_docs)]
264 pub x: <BaseField as alloy::sol_types::SolType>::RustType,
265 #[allow(missing_docs)]
266 pub y: <BaseField as alloy::sol_types::SolType>::RustType,
267 }
268 #[allow(
269 non_camel_case_types,
270 non_snake_case,
271 clippy::pub_underscore_fields,
272 clippy::style
273 )]
274 const _: () = {
275 use alloy::sol_types as alloy_sol_types;
276 #[doc(hidden)]
277 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
278 #[doc(hidden)]
279 type UnderlyingRustTuple<'a> = (
280 <BaseField as alloy::sol_types::SolType>::RustType,
281 <BaseField as alloy::sol_types::SolType>::RustType,
282 );
283 #[cfg(test)]
284 #[allow(dead_code, unreachable_patterns)]
285 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
286 match _t {
287 alloy_sol_types::private::AssertTypeEq::<
288 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
289 >(_) => {},
290 }
291 }
292 #[automatically_derived]
293 #[doc(hidden)]
294 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
295 fn from(value: G1Point) -> Self {
296 (value.x, value.y)
297 }
298 }
299 #[automatically_derived]
300 #[doc(hidden)]
301 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
302 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
303 Self {
304 x: tuple.0,
305 y: tuple.1,
306 }
307 }
308 }
309 #[automatically_derived]
310 impl alloy_sol_types::SolValue for G1Point {
311 type SolType = Self;
312 }
313 #[automatically_derived]
314 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
315 #[inline]
316 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
317 (
318 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
319 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
320 )
321 }
322 #[inline]
323 fn stv_abi_encoded_size(&self) -> usize {
324 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
325 return size;
326 }
327 let tuple =
328 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
329 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
330 }
331 #[inline]
332 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
333 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
334 }
335 #[inline]
336 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
337 let tuple =
338 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
339 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
340 &tuple, out,
341 )
342 }
343 #[inline]
344 fn stv_abi_packed_encoded_size(&self) -> usize {
345 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
346 return size;
347 }
348 let tuple =
349 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
350 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
351 &tuple,
352 )
353 }
354 }
355 #[automatically_derived]
356 impl alloy_sol_types::SolType for G1Point {
357 type RustType = Self;
358 type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
359 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
360 const ENCODED_SIZE: Option<usize> =
361 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
362 const PACKED_ENCODED_SIZE: Option<usize> =
363 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
364 #[inline]
365 fn valid_token(token: &Self::Token<'_>) -> bool {
366 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
367 }
368 #[inline]
369 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
370 let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
371 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
372 }
373 }
374 #[automatically_derived]
375 impl alloy_sol_types::SolStruct for G1Point {
376 const NAME: &'static str = "G1Point";
377 #[inline]
378 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
379 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
380 }
381 #[inline]
382 fn eip712_components(
383 ) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
384 {
385 alloy_sol_types::private::Vec::new()
386 }
387 #[inline]
388 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
389 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
390 }
391 #[inline]
392 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
393 [
394 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
395 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
396 ]
397 .concat()
398 }
399 }
400 #[automatically_derived]
401 impl alloy_sol_types::EventTopic for G1Point {
402 #[inline]
403 fn topic_preimage_length(rust: &Self::RustType) -> usize {
404 0usize
405 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.x)
406 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.y)
407 }
408 #[inline]
409 fn encode_topic_preimage(
410 rust: &Self::RustType,
411 out: &mut alloy_sol_types::private::Vec<u8>,
412 ) {
413 out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
414 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.x, out);
415 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.y, out);
416 }
417 #[inline]
418 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
419 let mut out = alloy_sol_types::private::Vec::new();
420 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
421 alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
422 }
423 }
424 };
425 use alloy::contract as alloy_contract;
426 #[inline]
430 pub const fn new<
431 T: alloy_contract::private::Transport + ::core::clone::Clone,
432 P: alloy_contract::private::Provider<T, N>,
433 N: alloy_contract::private::Network,
434 >(
435 address: alloy_sol_types::private::Address,
436 provider: P,
437 ) -> BN254Instance<T, P, N> {
438 BN254Instance::<T, P, N>::new(address, provider)
439 }
440 #[derive(Clone)]
452 pub struct BN254Instance<T, P, N = alloy_contract::private::Ethereum> {
453 address: alloy_sol_types::private::Address,
454 provider: P,
455 _network_transport: ::core::marker::PhantomData<(N, T)>,
456 }
457 #[automatically_derived]
458 impl<T, P, N> ::core::fmt::Debug for BN254Instance<T, P, N> {
459 #[inline]
460 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
461 f.debug_tuple("BN254Instance").field(&self.address).finish()
462 }
463 }
464 #[automatically_derived]
466 impl<
467 T: alloy_contract::private::Transport + ::core::clone::Clone,
468 P: alloy_contract::private::Provider<T, N>,
469 N: alloy_contract::private::Network,
470 > BN254Instance<T, P, N>
471 {
472 #[inline]
476 pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
477 Self {
478 address,
479 provider,
480 _network_transport: ::core::marker::PhantomData,
481 }
482 }
483 #[inline]
485 pub const fn address(&self) -> &alloy_sol_types::private::Address {
486 &self.address
487 }
488 #[inline]
490 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
491 self.address = address;
492 }
493 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
495 self.set_address(address);
496 self
497 }
498 #[inline]
500 pub const fn provider(&self) -> &P {
501 &self.provider
502 }
503 }
504 impl<T, P: ::core::clone::Clone, N> BN254Instance<T, &P, N> {
505 #[inline]
507 pub fn with_cloned_provider(self) -> BN254Instance<T, P, N> {
508 BN254Instance {
509 address: self.address,
510 provider: ::core::clone::Clone::clone(&self.provider),
511 _network_transport: ::core::marker::PhantomData,
512 }
513 }
514 }
515 #[automatically_derived]
517 impl<
518 T: alloy_contract::private::Transport + ::core::clone::Clone,
519 P: alloy_contract::private::Provider<T, N>,
520 N: alloy_contract::private::Network,
521 > BN254Instance<T, P, N>
522 {
523 pub fn call_builder<C: alloy_sol_types::SolCall>(
528 &self,
529 call: &C,
530 ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
531 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
532 }
533 }
534 #[automatically_derived]
536 impl<
537 T: alloy_contract::private::Transport + ::core::clone::Clone,
538 P: alloy_contract::private::Provider<T, N>,
539 N: alloy_contract::private::Network,
540 > BN254Instance<T, P, N>
541 {
542 pub fn event_filter<E: alloy_sol_types::SolEvent>(
547 &self,
548 ) -> alloy_contract::Event<T, &P, E, N> {
549 alloy_contract::Event::new_sol(&self.provider, &self.address)
550 }
551 }
552}
553#[allow(
563 non_camel_case_types,
564 non_snake_case,
565 clippy::pub_underscore_fields,
566 clippy::style,
567 clippy::empty_structs_with_brackets
568)]
569pub mod IPlonkVerifier {
570 use alloy::sol_types as alloy_sol_types;
571
572 use super::*;
573 #[derive()]
574 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
578 #[derive(Clone)]
579 pub struct PlonkProof {
580 #[allow(missing_docs)]
581 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
582 #[allow(missing_docs)]
583 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
584 #[allow(missing_docs)]
585 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
586 #[allow(missing_docs)]
587 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
588 #[allow(missing_docs)]
589 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
590 #[allow(missing_docs)]
591 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
592 #[allow(missing_docs)]
593 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
594 #[allow(missing_docs)]
595 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
596 #[allow(missing_docs)]
597 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
598 #[allow(missing_docs)]
599 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
600 #[allow(missing_docs)]
601 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
602 #[allow(missing_docs)]
603 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
604 #[allow(missing_docs)]
605 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
606 #[allow(missing_docs)]
607 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
608 #[allow(missing_docs)]
609 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
610 #[allow(missing_docs)]
611 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
612 #[allow(missing_docs)]
613 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
614 #[allow(missing_docs)]
615 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
616 #[allow(missing_docs)]
617 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
618 #[allow(missing_docs)]
619 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
620 #[allow(missing_docs)]
621 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
622 #[allow(missing_docs)]
623 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
624 #[allow(missing_docs)]
625 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
626 }
627 #[allow(
628 non_camel_case_types,
629 non_snake_case,
630 clippy::pub_underscore_fields,
631 clippy::style
632 )]
633 const _: () = {
634 use alloy::sol_types as alloy_sol_types;
635 #[doc(hidden)]
636 type UnderlyingSolTuple<'a> = (
637 BN254::G1Point,
638 BN254::G1Point,
639 BN254::G1Point,
640 BN254::G1Point,
641 BN254::G1Point,
642 BN254::G1Point,
643 BN254::G1Point,
644 BN254::G1Point,
645 BN254::G1Point,
646 BN254::G1Point,
647 BN254::G1Point,
648 BN254::G1Point,
649 BN254::G1Point,
650 BN254::ScalarField,
651 BN254::ScalarField,
652 BN254::ScalarField,
653 BN254::ScalarField,
654 BN254::ScalarField,
655 BN254::ScalarField,
656 BN254::ScalarField,
657 BN254::ScalarField,
658 BN254::ScalarField,
659 BN254::ScalarField,
660 );
661 #[doc(hidden)]
662 type UnderlyingRustTuple<'a> = (
663 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
664 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
665 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
666 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
667 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
668 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
669 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
670 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
671 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
672 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
673 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
674 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
675 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
676 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
677 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
678 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
679 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
680 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
681 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
682 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
683 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
684 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
685 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
686 );
687 #[cfg(test)]
688 #[allow(dead_code, unreachable_patterns)]
689 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
690 match _t {
691 alloy_sol_types::private::AssertTypeEq::<
692 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
693 >(_) => {},
694 }
695 }
696 #[automatically_derived]
697 #[doc(hidden)]
698 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
699 fn from(value: PlonkProof) -> Self {
700 (
701 value.wire0,
702 value.wire1,
703 value.wire2,
704 value.wire3,
705 value.wire4,
706 value.prodPerm,
707 value.split0,
708 value.split1,
709 value.split2,
710 value.split3,
711 value.split4,
712 value.zeta,
713 value.zetaOmega,
714 value.wireEval0,
715 value.wireEval1,
716 value.wireEval2,
717 value.wireEval3,
718 value.wireEval4,
719 value.sigmaEval0,
720 value.sigmaEval1,
721 value.sigmaEval2,
722 value.sigmaEval3,
723 value.prodPermZetaOmegaEval,
724 )
725 }
726 }
727 #[automatically_derived]
728 #[doc(hidden)]
729 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
730 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
731 Self {
732 wire0: tuple.0,
733 wire1: tuple.1,
734 wire2: tuple.2,
735 wire3: tuple.3,
736 wire4: tuple.4,
737 prodPerm: tuple.5,
738 split0: tuple.6,
739 split1: tuple.7,
740 split2: tuple.8,
741 split3: tuple.9,
742 split4: tuple.10,
743 zeta: tuple.11,
744 zetaOmega: tuple.12,
745 wireEval0: tuple.13,
746 wireEval1: tuple.14,
747 wireEval2: tuple.15,
748 wireEval3: tuple.16,
749 wireEval4: tuple.17,
750 sigmaEval0: tuple.18,
751 sigmaEval1: tuple.19,
752 sigmaEval2: tuple.20,
753 sigmaEval3: tuple.21,
754 prodPermZetaOmegaEval: tuple.22,
755 }
756 }
757 }
758 #[automatically_derived]
759 impl alloy_sol_types::SolValue for PlonkProof {
760 type SolType = Self;
761 }
762 #[automatically_derived]
763 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
764 #[inline]
765 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
766 (
767 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
768 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
769 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
770 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
771 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
772 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.prodPerm),
773 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
774 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
775 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
776 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
777 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
778 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
779 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zetaOmega),
780 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval0),
781 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval1),
782 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval2),
783 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval3),
784 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval4),
785 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.sigmaEval0),
786 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.sigmaEval1),
787 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.sigmaEval2),
788 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.sigmaEval3),
789 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
790 &self.prodPermZetaOmegaEval,
791 ),
792 )
793 }
794 #[inline]
795 fn stv_abi_encoded_size(&self) -> usize {
796 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
797 return size;
798 }
799 let tuple =
800 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
801 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
802 }
803 #[inline]
804 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
805 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
806 }
807 #[inline]
808 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
809 let tuple =
810 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
811 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
812 &tuple, out,
813 )
814 }
815 #[inline]
816 fn stv_abi_packed_encoded_size(&self) -> usize {
817 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
818 return size;
819 }
820 let tuple =
821 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
822 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
823 &tuple,
824 )
825 }
826 }
827 #[automatically_derived]
828 impl alloy_sol_types::SolType for PlonkProof {
829 type RustType = Self;
830 type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
831 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
832 const ENCODED_SIZE: Option<usize> =
833 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
834 const PACKED_ENCODED_SIZE: Option<usize> =
835 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
836 #[inline]
837 fn valid_token(token: &Self::Token<'_>) -> bool {
838 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
839 }
840 #[inline]
841 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
842 let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
843 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
844 }
845 }
846 #[automatically_derived]
847 impl alloy_sol_types::SolStruct for PlonkProof {
848 const NAME: &'static str = "PlonkProof";
849 #[inline]
850 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
851 alloy_sol_types::private::Cow::Borrowed(
852 "PlonkProof(BN254.G1Point wire0,BN254.G1Point wire1,BN254.G1Point wire2,BN254.G1Point wire3,BN254.G1Point wire4,BN254.G1Point prodPerm,BN254.G1Point split0,BN254.G1Point split1,BN254.G1Point split2,BN254.G1Point split3,BN254.G1Point split4,BN254.G1Point zeta,BN254.G1Point zetaOmega,uint256 wireEval0,uint256 wireEval1,uint256 wireEval2,uint256 wireEval3,uint256 wireEval4,uint256 sigmaEval0,uint256 sigmaEval1,uint256 sigmaEval2,uint256 sigmaEval3,uint256 prodPermZetaOmegaEval)",
853 )
854 }
855 #[inline]
856 fn eip712_components(
857 ) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
858 {
859 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
860 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
861 components
862 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
863 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
864 components
865 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
866 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
867 components
868 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
869 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
870 components
871 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
872 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
873 components
874 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
875 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
876 components
877 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
878 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
879 components
880 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
881 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
882 components
883 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
884 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
885 components
886 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
887 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
888 components
889 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
890 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
891 components
892 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
893 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
894 components
895 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
896 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
897 components
898 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
899 components
900 }
901 #[inline]
902 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
903 [
904 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire0).0,
905 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire1).0,
906 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire2).0,
907 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire3).0,
908 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire4).0,
909 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.prodPerm)
910 .0,
911 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split0).0,
912 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split1).0,
913 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split2).0,
914 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split3).0,
915 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split4).0,
916 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.zeta).0,
917 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.zetaOmega)
918 .0,
919 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
920 &self.wireEval0,
921 )
922 .0,
923 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
924 &self.wireEval1,
925 )
926 .0,
927 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
928 &self.wireEval2,
929 )
930 .0,
931 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
932 &self.wireEval3,
933 )
934 .0,
935 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
936 &self.wireEval4,
937 )
938 .0,
939 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
940 &self.sigmaEval0,
941 )
942 .0,
943 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
944 &self.sigmaEval1,
945 )
946 .0,
947 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
948 &self.sigmaEval2,
949 )
950 .0,
951 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
952 &self.sigmaEval3,
953 )
954 .0,
955 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
956 &self.prodPermZetaOmegaEval,
957 )
958 .0,
959 ]
960 .concat()
961 }
962 }
963 #[automatically_derived]
964 impl alloy_sol_types::EventTopic for PlonkProof {
965 #[inline]
966 fn topic_preimage_length(rust: &Self::RustType) -> usize {
967 0usize
968 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
969 &rust.wire0,
970 )
971 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
972 &rust.wire1,
973 )
974 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
975 &rust.wire2,
976 )
977 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
978 &rust.wire3,
979 )
980 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
981 &rust.wire4,
982 )
983 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
984 &rust.prodPerm,
985 )
986 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
987 &rust.split0,
988 )
989 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
990 &rust.split1,
991 )
992 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
993 &rust.split2,
994 )
995 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
996 &rust.split3,
997 )
998 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
999 &rust.split4,
1000 )
1001 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1002 &rust.zeta,
1003 )
1004 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1005 &rust.zetaOmega,
1006 )
1007 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1008 &rust.wireEval0,
1009 )
1010 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1011 &rust.wireEval1,
1012 )
1013 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1014 &rust.wireEval2,
1015 )
1016 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1017 &rust.wireEval3,
1018 )
1019 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1020 &rust.wireEval4,
1021 )
1022 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1023 &rust.sigmaEval0,
1024 )
1025 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1026 &rust.sigmaEval1,
1027 )
1028 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1029 &rust.sigmaEval2,
1030 )
1031 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1032 &rust.sigmaEval3,
1033 )
1034 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1035 &rust.prodPermZetaOmegaEval,
1036 )
1037 }
1038 #[inline]
1039 fn encode_topic_preimage(
1040 rust: &Self::RustType,
1041 out: &mut alloy_sol_types::private::Vec<u8>,
1042 ) {
1043 out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
1044 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1045 &rust.wire0,
1046 out,
1047 );
1048 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1049 &rust.wire1,
1050 out,
1051 );
1052 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1053 &rust.wire2,
1054 out,
1055 );
1056 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1057 &rust.wire3,
1058 out,
1059 );
1060 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1061 &rust.wire4,
1062 out,
1063 );
1064 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1065 &rust.prodPerm,
1066 out,
1067 );
1068 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1069 &rust.split0,
1070 out,
1071 );
1072 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1073 &rust.split1,
1074 out,
1075 );
1076 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1077 &rust.split2,
1078 out,
1079 );
1080 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1081 &rust.split3,
1082 out,
1083 );
1084 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1085 &rust.split4,
1086 out,
1087 );
1088 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1089 &rust.zeta, out,
1090 );
1091 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1092 &rust.zetaOmega,
1093 out,
1094 );
1095 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1096 &rust.wireEval0,
1097 out,
1098 );
1099 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1100 &rust.wireEval1,
1101 out,
1102 );
1103 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1104 &rust.wireEval2,
1105 out,
1106 );
1107 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1108 &rust.wireEval3,
1109 out,
1110 );
1111 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1112 &rust.wireEval4,
1113 out,
1114 );
1115 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1116 &rust.sigmaEval0,
1117 out,
1118 );
1119 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1120 &rust.sigmaEval1,
1121 out,
1122 );
1123 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1124 &rust.sigmaEval2,
1125 out,
1126 );
1127 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1128 &rust.sigmaEval3,
1129 out,
1130 );
1131 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1132 &rust.prodPermZetaOmegaEval,
1133 out,
1134 );
1135 }
1136 #[inline]
1137 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
1138 let mut out = alloy_sol_types::private::Vec::new();
1139 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
1140 alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
1141 }
1142 }
1143 };
1144 #[derive()]
1145 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1149 #[derive(Clone)]
1150 pub struct VerifyingKey {
1151 #[allow(missing_docs)]
1152 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
1153 #[allow(missing_docs)]
1154 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
1155 #[allow(missing_docs)]
1156 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1157 #[allow(missing_docs)]
1158 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1159 #[allow(missing_docs)]
1160 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1161 #[allow(missing_docs)]
1162 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1163 #[allow(missing_docs)]
1164 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1165 #[allow(missing_docs)]
1166 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1167 #[allow(missing_docs)]
1168 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1169 #[allow(missing_docs)]
1170 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1171 #[allow(missing_docs)]
1172 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1173 #[allow(missing_docs)]
1174 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1175 #[allow(missing_docs)]
1176 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1177 #[allow(missing_docs)]
1178 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1179 #[allow(missing_docs)]
1180 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1181 #[allow(missing_docs)]
1182 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1183 #[allow(missing_docs)]
1184 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1185 #[allow(missing_docs)]
1186 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1187 #[allow(missing_docs)]
1188 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1189 #[allow(missing_docs)]
1190 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1191 #[allow(missing_docs)]
1192 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
1193 #[allow(missing_docs)]
1194 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
1195 }
1196 #[allow(
1197 non_camel_case_types,
1198 non_snake_case,
1199 clippy::pub_underscore_fields,
1200 clippy::style
1201 )]
1202 const _: () = {
1203 use alloy::sol_types as alloy_sol_types;
1204 #[doc(hidden)]
1205 type UnderlyingSolTuple<'a> = (
1206 alloy::sol_types::sol_data::Uint<256>,
1207 alloy::sol_types::sol_data::Uint<256>,
1208 BN254::G1Point,
1209 BN254::G1Point,
1210 BN254::G1Point,
1211 BN254::G1Point,
1212 BN254::G1Point,
1213 BN254::G1Point,
1214 BN254::G1Point,
1215 BN254::G1Point,
1216 BN254::G1Point,
1217 BN254::G1Point,
1218 BN254::G1Point,
1219 BN254::G1Point,
1220 BN254::G1Point,
1221 BN254::G1Point,
1222 BN254::G1Point,
1223 BN254::G1Point,
1224 BN254::G1Point,
1225 BN254::G1Point,
1226 alloy::sol_types::sol_data::FixedBytes<32>,
1227 alloy::sol_types::sol_data::FixedBytes<32>,
1228 );
1229 #[doc(hidden)]
1230 type UnderlyingRustTuple<'a> = (
1231 alloy::sol_types::private::primitives::aliases::U256,
1232 alloy::sol_types::private::primitives::aliases::U256,
1233 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1234 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1235 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1236 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1237 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1238 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1239 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1240 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1241 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1242 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1243 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1244 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1245 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1246 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1247 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1248 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1249 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1250 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1251 alloy::sol_types::private::FixedBytes<32>,
1252 alloy::sol_types::private::FixedBytes<32>,
1253 );
1254 #[cfg(test)]
1255 #[allow(dead_code, unreachable_patterns)]
1256 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
1257 match _t {
1258 alloy_sol_types::private::AssertTypeEq::<
1259 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1260 >(_) => {},
1261 }
1262 }
1263 #[automatically_derived]
1264 #[doc(hidden)]
1265 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
1266 fn from(value: VerifyingKey) -> Self {
1267 (
1268 value.domainSize,
1269 value.numInputs,
1270 value.sigma0,
1271 value.sigma1,
1272 value.sigma2,
1273 value.sigma3,
1274 value.sigma4,
1275 value.q1,
1276 value.q2,
1277 value.q3,
1278 value.q4,
1279 value.qM12,
1280 value.qM34,
1281 value.qO,
1282 value.qC,
1283 value.qH1,
1284 value.qH2,
1285 value.qH3,
1286 value.qH4,
1287 value.qEcc,
1288 value.g2LSB,
1289 value.g2MSB,
1290 )
1291 }
1292 }
1293 #[automatically_derived]
1294 #[doc(hidden)]
1295 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
1296 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1297 Self {
1298 domainSize: tuple.0,
1299 numInputs: tuple.1,
1300 sigma0: tuple.2,
1301 sigma1: tuple.3,
1302 sigma2: tuple.4,
1303 sigma3: tuple.5,
1304 sigma4: tuple.6,
1305 q1: tuple.7,
1306 q2: tuple.8,
1307 q3: tuple.9,
1308 q4: tuple.10,
1309 qM12: tuple.11,
1310 qM34: tuple.12,
1311 qO: tuple.13,
1312 qC: tuple.14,
1313 qH1: tuple.15,
1314 qH2: tuple.16,
1315 qH3: tuple.17,
1316 qH4: tuple.18,
1317 qEcc: tuple.19,
1318 g2LSB: tuple.20,
1319 g2MSB: tuple.21,
1320 }
1321 }
1322 }
1323 #[automatically_derived]
1324 impl alloy_sol_types::SolValue for VerifyingKey {
1325 type SolType = Self;
1326 }
1327 #[automatically_derived]
1328 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
1329 #[inline]
1330 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1331 (
1332 <alloy::sol_types::sol_data::Uint<
1333 256,
1334 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
1335 <alloy::sol_types::sol_data::Uint<
1336 256,
1337 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
1338 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
1339 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
1340 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
1341 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
1342 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
1343 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
1344 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
1345 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
1346 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
1347 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
1348 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
1349 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
1350 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
1351 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
1352 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
1353 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
1354 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
1355 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
1356 <alloy::sol_types::sol_data::FixedBytes<
1357 32,
1358 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
1359 <alloy::sol_types::sol_data::FixedBytes<
1360 32,
1361 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
1362 )
1363 }
1364 #[inline]
1365 fn stv_abi_encoded_size(&self) -> usize {
1366 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1367 return size;
1368 }
1369 let tuple =
1370 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
1371 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1372 }
1373 #[inline]
1374 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1375 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1376 }
1377 #[inline]
1378 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
1379 let tuple =
1380 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
1381 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
1382 &tuple, out,
1383 )
1384 }
1385 #[inline]
1386 fn stv_abi_packed_encoded_size(&self) -> usize {
1387 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1388 return size;
1389 }
1390 let tuple =
1391 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
1392 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
1393 &tuple,
1394 )
1395 }
1396 }
1397 #[automatically_derived]
1398 impl alloy_sol_types::SolType for VerifyingKey {
1399 type RustType = Self;
1400 type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
1401 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1402 const ENCODED_SIZE: Option<usize> =
1403 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
1404 const PACKED_ENCODED_SIZE: Option<usize> =
1405 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1406 #[inline]
1407 fn valid_token(token: &Self::Token<'_>) -> bool {
1408 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1409 }
1410 #[inline]
1411 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1412 let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
1413 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1414 }
1415 }
1416 #[automatically_derived]
1417 impl alloy_sol_types::SolStruct for VerifyingKey {
1418 const NAME: &'static str = "VerifyingKey";
1419 #[inline]
1420 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1421 alloy_sol_types::private::Cow::Borrowed(
1422 "VerifyingKey(uint256 domainSize,uint256 numInputs,BN254.G1Point sigma0,BN254.G1Point sigma1,BN254.G1Point sigma2,BN254.G1Point sigma3,BN254.G1Point sigma4,BN254.G1Point q1,BN254.G1Point q2,BN254.G1Point q3,BN254.G1Point q4,BN254.G1Point qM12,BN254.G1Point qM34,BN254.G1Point qO,BN254.G1Point qC,BN254.G1Point qH1,BN254.G1Point qH2,BN254.G1Point qH3,BN254.G1Point qH4,BN254.G1Point qEcc,bytes32 g2LSB,bytes32 g2MSB)",
1423 )
1424 }
1425 #[inline]
1426 fn eip712_components(
1427 ) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
1428 {
1429 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
1430 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1431 components
1432 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1433 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1434 components
1435 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1436 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1437 components
1438 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1439 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1440 components
1441 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1442 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1443 components
1444 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1445 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1446 components
1447 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1448 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1449 components
1450 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1451 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1452 components
1453 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1454 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1455 components
1456 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1457 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1458 components
1459 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1460 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1461 components
1462 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1463 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1464 components
1465 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1466 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1467 components
1468 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1469 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1470 components
1471 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1472 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1473 components
1474 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1475 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1476 components
1477 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1478 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1479 components
1480 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1481 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1482 components
1483 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1484 components
1485 }
1486 #[inline]
1487 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1488 [
1489 <alloy::sol_types::sol_data::Uint<
1490 256,
1491 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
1492 .0,
1493 <alloy::sol_types::sol_data::Uint<
1494 256,
1495 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
1496 .0,
1497 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1498 &self.sigma0,
1499 )
1500 .0,
1501 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1502 &self.sigma1,
1503 )
1504 .0,
1505 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1506 &self.sigma2,
1507 )
1508 .0,
1509 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1510 &self.sigma3,
1511 )
1512 .0,
1513 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1514 &self.sigma4,
1515 )
1516 .0,
1517 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1518 &self.q1,
1519 )
1520 .0,
1521 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1522 &self.q2,
1523 )
1524 .0,
1525 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1526 &self.q3,
1527 )
1528 .0,
1529 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1530 &self.q4,
1531 )
1532 .0,
1533 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1534 &self.qM12,
1535 )
1536 .0,
1537 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1538 &self.qM34,
1539 )
1540 .0,
1541 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1542 &self.qO,
1543 )
1544 .0,
1545 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1546 &self.qC,
1547 )
1548 .0,
1549 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1550 &self.qH1,
1551 )
1552 .0,
1553 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1554 &self.qH2,
1555 )
1556 .0,
1557 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1558 &self.qH3,
1559 )
1560 .0,
1561 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1562 &self.qH4,
1563 )
1564 .0,
1565 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1566 &self.qEcc,
1567 )
1568 .0,
1569 <alloy::sol_types::sol_data::FixedBytes<
1570 32,
1571 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
1572 .0,
1573 <alloy::sol_types::sol_data::FixedBytes<
1574 32,
1575 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
1576 .0,
1577 ]
1578 .concat()
1579 }
1580 }
1581 #[automatically_derived]
1582 impl alloy_sol_types::EventTopic for VerifyingKey {
1583 #[inline]
1584 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1585 0usize
1586 + <alloy::sol_types::sol_data::Uint<
1587 256,
1588 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1589 &rust.domainSize,
1590 )
1591 + <alloy::sol_types::sol_data::Uint<
1592 256,
1593 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1594 &rust.numInputs,
1595 )
1596 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1597 &rust.sigma0,
1598 )
1599 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1600 &rust.sigma1,
1601 )
1602 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1603 &rust.sigma2,
1604 )
1605 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1606 &rust.sigma3,
1607 )
1608 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1609 &rust.sigma4,
1610 )
1611 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1612 &rust.q1,
1613 )
1614 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1615 &rust.q2,
1616 )
1617 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1618 &rust.q3,
1619 )
1620 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1621 &rust.q4,
1622 )
1623 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1624 &rust.qM12,
1625 )
1626 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1627 &rust.qM34,
1628 )
1629 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1630 &rust.qO,
1631 )
1632 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1633 &rust.qC,
1634 )
1635 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1636 &rust.qH1,
1637 )
1638 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1639 &rust.qH2,
1640 )
1641 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1642 &rust.qH3,
1643 )
1644 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1645 &rust.qH4,
1646 )
1647 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1648 &rust.qEcc,
1649 )
1650 + <alloy::sol_types::sol_data::FixedBytes<
1651 32,
1652 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
1653 + <alloy::sol_types::sol_data::FixedBytes<
1654 32,
1655 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
1656 }
1657 #[inline]
1658 fn encode_topic_preimage(
1659 rust: &Self::RustType,
1660 out: &mut alloy_sol_types::private::Vec<u8>,
1661 ) {
1662 out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
1663 <alloy::sol_types::sol_data::Uint<
1664 256,
1665 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1666 &rust.domainSize,
1667 out,
1668 );
1669 <alloy::sol_types::sol_data::Uint<
1670 256,
1671 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1672 &rust.numInputs,
1673 out,
1674 );
1675 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1676 &rust.sigma0,
1677 out,
1678 );
1679 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1680 &rust.sigma1,
1681 out,
1682 );
1683 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1684 &rust.sigma2,
1685 out,
1686 );
1687 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1688 &rust.sigma3,
1689 out,
1690 );
1691 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1692 &rust.sigma4,
1693 out,
1694 );
1695 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1696 &rust.q1, out,
1697 );
1698 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1699 &rust.q2, out,
1700 );
1701 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1702 &rust.q3, out,
1703 );
1704 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1705 &rust.q4, out,
1706 );
1707 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1708 &rust.qM12, out,
1709 );
1710 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1711 &rust.qM34, out,
1712 );
1713 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1714 &rust.qO, out,
1715 );
1716 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1717 &rust.qC, out,
1718 );
1719 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1720 &rust.qH1, out,
1721 );
1722 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1723 &rust.qH2, out,
1724 );
1725 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1726 &rust.qH3, out,
1727 );
1728 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1729 &rust.qH4, out,
1730 );
1731 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1732 &rust.qEcc, out,
1733 );
1734 <alloy::sol_types::sol_data::FixedBytes<
1735 32,
1736 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1737 &rust.g2LSB,
1738 out,
1739 );
1740 <alloy::sol_types::sol_data::FixedBytes<
1741 32,
1742 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1743 &rust.g2MSB,
1744 out,
1745 );
1746 }
1747 #[inline]
1748 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
1749 let mut out = alloy_sol_types::private::Vec::new();
1750 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
1751 alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
1752 }
1753 }
1754 };
1755 use alloy::contract as alloy_contract;
1756 #[inline]
1760 pub const fn new<
1761 T: alloy_contract::private::Transport + ::core::clone::Clone,
1762 P: alloy_contract::private::Provider<T, N>,
1763 N: alloy_contract::private::Network,
1764 >(
1765 address: alloy_sol_types::private::Address,
1766 provider: P,
1767 ) -> IPlonkVerifierInstance<T, P, N> {
1768 IPlonkVerifierInstance::<T, P, N>::new(address, provider)
1769 }
1770 #[derive(Clone)]
1782 pub struct IPlonkVerifierInstance<T, P, N = alloy_contract::private::Ethereum> {
1783 address: alloy_sol_types::private::Address,
1784 provider: P,
1785 _network_transport: ::core::marker::PhantomData<(N, T)>,
1786 }
1787 #[automatically_derived]
1788 impl<T, P, N> ::core::fmt::Debug for IPlonkVerifierInstance<T, P, N> {
1789 #[inline]
1790 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1791 f.debug_tuple("IPlonkVerifierInstance")
1792 .field(&self.address)
1793 .finish()
1794 }
1795 }
1796 #[automatically_derived]
1798 impl<
1799 T: alloy_contract::private::Transport + ::core::clone::Clone,
1800 P: alloy_contract::private::Provider<T, N>,
1801 N: alloy_contract::private::Network,
1802 > IPlonkVerifierInstance<T, P, N>
1803 {
1804 #[inline]
1808 pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
1809 Self {
1810 address,
1811 provider,
1812 _network_transport: ::core::marker::PhantomData,
1813 }
1814 }
1815 #[inline]
1817 pub const fn address(&self) -> &alloy_sol_types::private::Address {
1818 &self.address
1819 }
1820 #[inline]
1822 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1823 self.address = address;
1824 }
1825 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1827 self.set_address(address);
1828 self
1829 }
1830 #[inline]
1832 pub const fn provider(&self) -> &P {
1833 &self.provider
1834 }
1835 }
1836 impl<T, P: ::core::clone::Clone, N> IPlonkVerifierInstance<T, &P, N> {
1837 #[inline]
1839 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<T, P, N> {
1840 IPlonkVerifierInstance {
1841 address: self.address,
1842 provider: ::core::clone::Clone::clone(&self.provider),
1843 _network_transport: ::core::marker::PhantomData,
1844 }
1845 }
1846 }
1847 #[automatically_derived]
1849 impl<
1850 T: alloy_contract::private::Transport + ::core::clone::Clone,
1851 P: alloy_contract::private::Provider<T, N>,
1852 N: alloy_contract::private::Network,
1853 > IPlonkVerifierInstance<T, P, N>
1854 {
1855 pub fn call_builder<C: alloy_sol_types::SolCall>(
1860 &self,
1861 call: &C,
1862 ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
1863 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1864 }
1865 }
1866 #[automatically_derived]
1868 impl<
1869 T: alloy_contract::private::Transport + ::core::clone::Clone,
1870 P: alloy_contract::private::Provider<T, N>,
1871 N: alloy_contract::private::Network,
1872 > IPlonkVerifierInstance<T, P, N>
1873 {
1874 pub fn event_filter<E: alloy_sol_types::SolEvent>(
1879 &self,
1880 ) -> alloy_contract::Event<T, &P, E, N> {
1881 alloy_contract::Event::new_sol(&self.provider, &self.address)
1882 }
1883 }
1884}
1885#[allow(
2722 non_camel_case_types,
2723 non_snake_case,
2724 clippy::pub_underscore_fields,
2725 clippy::style,
2726 clippy::empty_structs_with_brackets
2727)]
2728pub mod PlonkVerifierV2 {
2729 use alloy::sol_types as alloy_sol_types;
2730
2731 use super::*;
2732 #[rustfmt::skip]
2738 #[allow(clippy::all)]
2739 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
2740 b"a&sa\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$\x07V[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\x04KV[\x90P[\x93\x92PPPV[\x80Qa\x02\xB5\x90a\x06?V[a\x02\xC2\x81` \x01Qa\x06?V[a\x02\xCF\x81`@\x01Qa\x06?V[a\x02\xDC\x81``\x01Qa\x06?V[a\x02\xE9\x81`\x80\x01Qa\x06?V[a\x02\xF6\x81`\xA0\x01Qa\x06?V[a\x03\x03\x81`\xC0\x01Qa\x06?V[a\x03\x10\x81`\xE0\x01Qa\x06?V[a\x03\x1E\x81a\x01\0\x01Qa\x06?V[a\x03,\x81a\x01 \x01Qa\x06?V[a\x03:\x81a\x01@\x01Qa\x06?V[a\x03H\x81a\x01`\x01Qa\x06?V[a\x03V\x81a\x01\x80\x01Qa\x06?V[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&G_9_Q\x90_R\x81\x10\x80a\x04GW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1B`$\x82\x01R\x7FBn254: invalid scalar field\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x0B\x14a\x04qW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04}\x85\x85\x85a\x06\xEDV[\x90P_a\x04\x8C\x86_\x01Qa\x0C|V[\x90P_a\x04\x9E\x82\x84`\xA0\x01Q\x88a\x12#V[\x90Pa\x04\xBB`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04\xEF\x87a\x01`\x01Qa\x04\xEA\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x12\x80V[a\x13!V[\x91P__a\x04\xFF\x8B\x88\x87\x8Ca\x13\xC5V[\x91P\x91Pa\x05\x10\x81a\x04\xEA\x84a\x15\xFDV[\x92Pa\x05)\x83a\x04\xEA\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x12\x80V[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a&G_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x05l\x85a\x04\xEA\x8Da\x01\x80\x01Q\x84a\x12\x80V[\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\x06-\x87\x82a\x06 \x89a\x15\xFDV[a\x06(a\x16\x9AV[a\x17gV[\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\x06xWPPPV[\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\xE8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FBn254: invalid G1 point\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04>V[PPPV[a\x07-`@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&G_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\x84a \xE1V[\x81b\x01\0\0\x03a\x0E[W`@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\x104W`@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\x12\nW`@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\x12D`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x12N\x84\x84a\x18GV[\x80\x82Ra\x12^\x90\x85\x90\x85\x90a\x18\x98V[` \x82\x01R\x80Qa\x12t\x90\x85\x90\x84\x90\x86\x90a\x19\x07V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x12\x9Ba!\x05V[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x81\x01\x83\x90R_``\x83`\x80\x84`\x07a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x12\xCBW__\xFD[P\x80a\x13\x19W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FBn254: scalar mul failed!\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04>V[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x13<a!#V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x83\x01R\x83\x01Q``\x80\x83\x01\x91\x90\x91R_\x90\x83`\xC0\x84`\x06a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x13wW__\xFD[P\x80a\x13\x19W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FBn254: group addition failed!\0\0\0`D\x82\x01R`d\x01a\x04>V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x13\xF8\x87\x87\x87\x87a\x1AVV[\x90P_Q` a&G_9_Q\x90_R_a\x14\x14\x88\x87\x89a\x1F V[\x90Pa\x14 \x81\x83a%\xF4V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x14L\x85a\x04\xEA\x8A_\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14t\x86a\x04\xEA\x8A` \x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x9C\x86a\x04\xEA\x8A`@\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xC4\x86a\x04\xEA\x8A``\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xEC\x86a\x04\xEA\x8A`\x80\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x15\x14\x86a\x04\xEA\x8D`@\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x15<\x86a\x04\xEA\x8D``\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x15d\x86a\x04\xEA\x8D`\x80\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x15\x8C\x86a\x04\xEA\x8D`\xA0\x01Q\x84a\x12\x80V[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x15\xB6\x87a\x04\xEA\x8B`\xA0\x01Q\x84a\x12\x80V[\x96Pa\x15\xECa\x15\xE6`@\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\x80V[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x16$WP\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\x16h\x91\x90a&'V[a\x16\x92\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa%\xF4V[\x90R\x92\x91PPV[a\x16\xC1`@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\x189W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FBn254: Pairing check failed!\0\0\0\0`D\x82\x01R`d\x01a\x04>V[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a&G_9_Q\x90_R\x90\x83\x80\x15a\x18\x88W\x84\x93P_[\x82\x81\x10\x15a\x18|W\x83\x85\x86\t\x94P`\x01\x01a\x18fV[P`\x01\x84\x03\x93Pa\x18\x8FV[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x18\xA9WP`\x01a\x02\xA3V[\x81_\x03a\x18\xB7WP_a\x02\xA3V[` \x84\x01Q_Q` a&G_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x18\xE5W`\x01\x87\x03\x92Pa\x18\xECV[`\x01\x84\x03\x92P[Pa\x18\xF6\x82a \x0BV[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a&G_9_Q\x90_R\x82\x82\x03a\x19\x80W`\x01_[`\x0B\x81\x10\x15a\x19uW\x81\x86\x03a\x19RW\x86\x81`\x0B\x81\x10a\x19CWa\x19Ca%\xE0V[` \x02\x01Q\x93PPPPa\x18?V[\x82\x80a\x19`Wa\x19`a&\x13V[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x19!V[P_\x92PPPa\x18?V[a\x19\x88a!AV[`@\x87\x01Q`\x01a\x01@\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x0B\x81\x10\x15a\x19\xCAW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x19\x9DV[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x0B\x81\x10\x15a\x1A\x1EW\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\x19\xDEV[PPPP\x80\x92PP_a\x1A0\x83a \x0BV[\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&G_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\x1B\xC3\x87`\xA0\x01Q\x86a\x12\x80V[\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\x1C\x8A\x86a\x04\xEA\x8C`\xC0\x01Q\x88\x85a\x1C\x85\x91\x90a%\xF4V[a\x12\x80V[\x95Pa\x1C\xA3\x86a\x04\xEA\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x12\x80V[\x95Pa\x1C\xBD\x86a\x04\xEA\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x12\x80V[\x95Pa\x1C\xD7\x86a\x04\xEA\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x12\x80V[\x95Pa\x1C\xF1\x86a\x04\xEA\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x12\x80V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x1D\x16\x86a\x04\xEA\x8Ca\x01`\x01Q\x86a\x12\x80V[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x1D;\x86a\x04\xEA\x8Ca\x01\x80\x01Q\x86a\x12\x80V[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1Dj\x86a\x04\xEA\x8Ca\x01\xE0\x01Q\x86a\x12\x80V[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\x99\x86a\x04\xEA\x8Ca\x02\0\x01Q\x86a\x12\x80V[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\xC8\x86a\x04\xEA\x8Ca\x02 \x01Q\x86a\x12\x80V[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\xF7\x86a\x04\xEA\x8Ca\x02@\x01Q\x86a\x12\x80V[\x95Pa\x1E\x14\x86a\x04\xEA\x8Ca\x01\xA0\x01Qa\x1C\x85\x8Ba\x02 \x01Qa \xACV[\x95Pa\x1E%\x86\x8Ba\x01\xC0\x01Qa\x13!V[\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\x1Ek\x86a\x04\xEA\x8Ca\x02`\x01Q\x86a\x12\x80V[\x95Pa\x1Ey\x88_\x01Qa \xACV[\x94Pa\x1E\x8D\x86a\x04\xEA\x89`\xC0\x01Q\x88a\x12\x80V[\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\x1E\xC1\x86a\x04\xEA\x89`\xE0\x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1E\xDC\x86a\x04\xEA\x89a\x01\0\x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1E\xF7\x86a\x04\xEA\x89a\x01 \x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1F\x12\x86a\x04\xEA\x89a\x01@\x01Q\x88a\x12\x80V[\x9A\x99PPPPPPPPPPV[___Q` a&G_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[____Q` a&G_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 \xA5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FBn254: pow precompile failed!\0\0\0`D\x82\x01R`d\x01a\x04>V[PP\x91\x90PV[_a \xC4_Q` a&G_9_Q\x90_R\x83a&'V[a \xDB\x90_Q` a&G_9_Q\x90_Ra%\xF4V[\x92\x91PPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a!\0a!AV[\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!\x98Wa!\x98a!`V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x98Wa!\x98a!`V[_`@\x82\x84\x03\x12\x15a!\xD2W__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\xF5Wa!\xF5a!`V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\"\x1EW__\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\"BWa\"Ba!`V[`@R\x80a\x01`\x84\x01\x85\x81\x11\x15a\"WW__\xFD[\x84[\x81\x81\x10\x15a\"qW\x805\x83R` \x92\x83\x01\x92\x01a\"YV[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\"\x8DW__\xFD[a\"\x95a!tV[\x90Pa\"\xA1\x83\x83a!\xC2V[\x81Ra\"\xB0\x83`@\x84\x01a!\xC2V[` \x82\x01Ra\"\xC2\x83`\x80\x84\x01a!\xC2V[`@\x82\x01Ra\"\xD4\x83`\xC0\x84\x01a!\xC2V[``\x82\x01Ra\"\xE7\x83a\x01\0\x84\x01a!\xC2V[`\x80\x82\x01Ra\"\xFA\x83a\x01@\x84\x01a!\xC2V[`\xA0\x82\x01Ra#\r\x83a\x01\x80\x84\x01a!\xC2V[`\xC0\x82\x01Ra# \x83a\x01\xC0\x84\x01a!\xC2V[`\xE0\x82\x01Ra#3\x83a\x02\0\x84\x01a!\xC2V[a\x01\0\x82\x01Ra#G\x83a\x02@\x84\x01a!\xC2V[a\x01 \x82\x01Ra#[\x83a\x02\x80\x84\x01a!\xC2V[a\x01@\x82\x01Ra#o\x83a\x02\xC0\x84\x01a!\xC2V[a\x01`\x82\x01Ra#\x83\x83a\x03\0\x84\x01a!\xC2V[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$\x1BW__\xFD[a\x05\0\x81\x12\x15a$)W__\xFD[Pa$2a!\x9EV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra$M\x86`@\x87\x01a!\xC2V[`@\x82\x01Ra$_\x86`\x80\x87\x01a!\xC2V[``\x82\x01Ra$q\x86`\xC0\x87\x01a!\xC2V[`\x80\x82\x01Ra$\x84\x86a\x01\0\x87\x01a!\xC2V[`\xA0\x82\x01Ra$\x97\x86a\x01@\x87\x01a!\xC2V[`\xC0\x82\x01Ra$\xAA\x86a\x01\x80\x87\x01a!\xC2V[`\xE0\x82\x01Ra$\xBD\x86a\x01\xC0\x87\x01a!\xC2V[a\x01\0\x82\x01Ra$\xD1\x86a\x02\0\x87\x01a!\xC2V[a\x01 \x82\x01Ra$\xE5\x86a\x02@\x87\x01a!\xC2V[a\x01@\x82\x01Ra$\xF9\x86a\x02\x80\x87\x01a!\xC2V[a\x01`\x82\x01Ra%\r\x86a\x02\xC0\x87\x01a!\xC2V[a\x01\x80\x82\x01Ra%!\x86a\x03\0\x87\x01a!\xC2V[a\x01\xA0\x82\x01Ra%5\x86a\x03@\x87\x01a!\xC2V[a\x01\xC0\x82\x01Ra%I\x86a\x03\x80\x87\x01a!\xC2V[a\x01\xE0\x82\x01Ra%]\x86a\x03\xC0\x87\x01a!\xC2V[a\x02\0\x82\x01Ra%q\x86a\x04\0\x87\x01a!\xC2V[a\x02 \x82\x01Ra%\x85\x86a\x04@\x87\x01a!\xC2V[a\x02@\x82\x01Ra%\x99\x86a\x04\x80\x87\x01a!\xC2V[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa%\xC7\x85a\x05\0\x86\x01a\"\x0FV[\x91Pa%\xD7\x85a\x06`\x86\x01a\"|V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a \xDBWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a&AWcNH{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",
2741 );
2742 #[rustfmt::skip]
2748 #[allow(clippy::all)]
2749 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
2750 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$\x07V[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\x04KV[\x90P[\x93\x92PPPV[\x80Qa\x02\xB5\x90a\x06?V[a\x02\xC2\x81` \x01Qa\x06?V[a\x02\xCF\x81`@\x01Qa\x06?V[a\x02\xDC\x81``\x01Qa\x06?V[a\x02\xE9\x81`\x80\x01Qa\x06?V[a\x02\xF6\x81`\xA0\x01Qa\x06?V[a\x03\x03\x81`\xC0\x01Qa\x06?V[a\x03\x10\x81`\xE0\x01Qa\x06?V[a\x03\x1E\x81a\x01\0\x01Qa\x06?V[a\x03,\x81a\x01 \x01Qa\x06?V[a\x03:\x81a\x01@\x01Qa\x06?V[a\x03H\x81a\x01`\x01Qa\x06?V[a\x03V\x81a\x01\x80\x01Qa\x06?V[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&G_9_Q\x90_R\x81\x10\x80a\x04GW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1B`$\x82\x01R\x7FBn254: invalid scalar field\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x0B\x14a\x04qW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04}\x85\x85\x85a\x06\xEDV[\x90P_a\x04\x8C\x86_\x01Qa\x0C|V[\x90P_a\x04\x9E\x82\x84`\xA0\x01Q\x88a\x12#V[\x90Pa\x04\xBB`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04\xEF\x87a\x01`\x01Qa\x04\xEA\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x12\x80V[a\x13!V[\x91P__a\x04\xFF\x8B\x88\x87\x8Ca\x13\xC5V[\x91P\x91Pa\x05\x10\x81a\x04\xEA\x84a\x15\xFDV[\x92Pa\x05)\x83a\x04\xEA\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x12\x80V[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a&G_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x05l\x85a\x04\xEA\x8Da\x01\x80\x01Q\x84a\x12\x80V[\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\x06-\x87\x82a\x06 \x89a\x15\xFDV[a\x06(a\x16\x9AV[a\x17gV[\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\x06xWPPPV[\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\xE8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FBn254: invalid G1 point\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04>V[PPPV[a\x07-`@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&G_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\x84a \xE1V[\x81b\x01\0\0\x03a\x0E[W`@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\x104W`@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\x12\nW`@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\x12D`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x12N\x84\x84a\x18GV[\x80\x82Ra\x12^\x90\x85\x90\x85\x90a\x18\x98V[` \x82\x01R\x80Qa\x12t\x90\x85\x90\x84\x90\x86\x90a\x19\x07V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x12\x9Ba!\x05V[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x81\x01\x83\x90R_``\x83`\x80\x84`\x07a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x12\xCBW__\xFD[P\x80a\x13\x19W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FBn254: scalar mul failed!\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04>V[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x13<a!#V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x83\x01R\x83\x01Q``\x80\x83\x01\x91\x90\x91R_\x90\x83`\xC0\x84`\x06a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x13wW__\xFD[P\x80a\x13\x19W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FBn254: group addition failed!\0\0\0`D\x82\x01R`d\x01a\x04>V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x13\xF8\x87\x87\x87\x87a\x1AVV[\x90P_Q` a&G_9_Q\x90_R_a\x14\x14\x88\x87\x89a\x1F V[\x90Pa\x14 \x81\x83a%\xF4V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x14L\x85a\x04\xEA\x8A_\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14t\x86a\x04\xEA\x8A` \x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x9C\x86a\x04\xEA\x8A`@\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xC4\x86a\x04\xEA\x8A``\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xEC\x86a\x04\xEA\x8A`\x80\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x15\x14\x86a\x04\xEA\x8D`@\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x15<\x86a\x04\xEA\x8D``\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x15d\x86a\x04\xEA\x8D`\x80\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x15\x8C\x86a\x04\xEA\x8D`\xA0\x01Q\x84a\x12\x80V[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x15\xB6\x87a\x04\xEA\x8B`\xA0\x01Q\x84a\x12\x80V[\x96Pa\x15\xECa\x15\xE6`@\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\x80V[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x16$WP\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\x16h\x91\x90a&'V[a\x16\x92\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa%\xF4V[\x90R\x92\x91PPV[a\x16\xC1`@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\x189W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FBn254: Pairing check failed!\0\0\0\0`D\x82\x01R`d\x01a\x04>V[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a&G_9_Q\x90_R\x90\x83\x80\x15a\x18\x88W\x84\x93P_[\x82\x81\x10\x15a\x18|W\x83\x85\x86\t\x94P`\x01\x01a\x18fV[P`\x01\x84\x03\x93Pa\x18\x8FV[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x18\xA9WP`\x01a\x02\xA3V[\x81_\x03a\x18\xB7WP_a\x02\xA3V[` \x84\x01Q_Q` a&G_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x18\xE5W`\x01\x87\x03\x92Pa\x18\xECV[`\x01\x84\x03\x92P[Pa\x18\xF6\x82a \x0BV[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a&G_9_Q\x90_R\x82\x82\x03a\x19\x80W`\x01_[`\x0B\x81\x10\x15a\x19uW\x81\x86\x03a\x19RW\x86\x81`\x0B\x81\x10a\x19CWa\x19Ca%\xE0V[` \x02\x01Q\x93PPPPa\x18?V[\x82\x80a\x19`Wa\x19`a&\x13V[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x19!V[P_\x92PPPa\x18?V[a\x19\x88a!AV[`@\x87\x01Q`\x01a\x01@\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x0B\x81\x10\x15a\x19\xCAW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x19\x9DV[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x0B\x81\x10\x15a\x1A\x1EW\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\x19\xDEV[PPPP\x80\x92PP_a\x1A0\x83a \x0BV[\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&G_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\x1B\xC3\x87`\xA0\x01Q\x86a\x12\x80V[\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\x1C\x8A\x86a\x04\xEA\x8C`\xC0\x01Q\x88\x85a\x1C\x85\x91\x90a%\xF4V[a\x12\x80V[\x95Pa\x1C\xA3\x86a\x04\xEA\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x12\x80V[\x95Pa\x1C\xBD\x86a\x04\xEA\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x12\x80V[\x95Pa\x1C\xD7\x86a\x04\xEA\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x12\x80V[\x95Pa\x1C\xF1\x86a\x04\xEA\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x12\x80V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x1D\x16\x86a\x04\xEA\x8Ca\x01`\x01Q\x86a\x12\x80V[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x1D;\x86a\x04\xEA\x8Ca\x01\x80\x01Q\x86a\x12\x80V[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1Dj\x86a\x04\xEA\x8Ca\x01\xE0\x01Q\x86a\x12\x80V[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\x99\x86a\x04\xEA\x8Ca\x02\0\x01Q\x86a\x12\x80V[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\xC8\x86a\x04\xEA\x8Ca\x02 \x01Q\x86a\x12\x80V[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\xF7\x86a\x04\xEA\x8Ca\x02@\x01Q\x86a\x12\x80V[\x95Pa\x1E\x14\x86a\x04\xEA\x8Ca\x01\xA0\x01Qa\x1C\x85\x8Ba\x02 \x01Qa \xACV[\x95Pa\x1E%\x86\x8Ba\x01\xC0\x01Qa\x13!V[\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\x1Ek\x86a\x04\xEA\x8Ca\x02`\x01Q\x86a\x12\x80V[\x95Pa\x1Ey\x88_\x01Qa \xACV[\x94Pa\x1E\x8D\x86a\x04\xEA\x89`\xC0\x01Q\x88a\x12\x80V[\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\x1E\xC1\x86a\x04\xEA\x89`\xE0\x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1E\xDC\x86a\x04\xEA\x89a\x01\0\x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1E\xF7\x86a\x04\xEA\x89a\x01 \x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1F\x12\x86a\x04\xEA\x89a\x01@\x01Q\x88a\x12\x80V[\x9A\x99PPPPPPPPPPV[___Q` a&G_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[____Q` a&G_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 \xA5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FBn254: pow precompile failed!\0\0\0`D\x82\x01R`d\x01a\x04>V[PP\x91\x90PV[_a \xC4_Q` a&G_9_Q\x90_R\x83a&'V[a \xDB\x90_Q` a&G_9_Q\x90_Ra%\xF4V[\x92\x91PPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a!\0a!AV[\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!\x98Wa!\x98a!`V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x98Wa!\x98a!`V[_`@\x82\x84\x03\x12\x15a!\xD2W__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\xF5Wa!\xF5a!`V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\"\x1EW__\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\"BWa\"Ba!`V[`@R\x80a\x01`\x84\x01\x85\x81\x11\x15a\"WW__\xFD[\x84[\x81\x81\x10\x15a\"qW\x805\x83R` \x92\x83\x01\x92\x01a\"YV[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\"\x8DW__\xFD[a\"\x95a!tV[\x90Pa\"\xA1\x83\x83a!\xC2V[\x81Ra\"\xB0\x83`@\x84\x01a!\xC2V[` \x82\x01Ra\"\xC2\x83`\x80\x84\x01a!\xC2V[`@\x82\x01Ra\"\xD4\x83`\xC0\x84\x01a!\xC2V[``\x82\x01Ra\"\xE7\x83a\x01\0\x84\x01a!\xC2V[`\x80\x82\x01Ra\"\xFA\x83a\x01@\x84\x01a!\xC2V[`\xA0\x82\x01Ra#\r\x83a\x01\x80\x84\x01a!\xC2V[`\xC0\x82\x01Ra# \x83a\x01\xC0\x84\x01a!\xC2V[`\xE0\x82\x01Ra#3\x83a\x02\0\x84\x01a!\xC2V[a\x01\0\x82\x01Ra#G\x83a\x02@\x84\x01a!\xC2V[a\x01 \x82\x01Ra#[\x83a\x02\x80\x84\x01a!\xC2V[a\x01@\x82\x01Ra#o\x83a\x02\xC0\x84\x01a!\xC2V[a\x01`\x82\x01Ra#\x83\x83a\x03\0\x84\x01a!\xC2V[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$\x1BW__\xFD[a\x05\0\x81\x12\x15a$)W__\xFD[Pa$2a!\x9EV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra$M\x86`@\x87\x01a!\xC2V[`@\x82\x01Ra$_\x86`\x80\x87\x01a!\xC2V[``\x82\x01Ra$q\x86`\xC0\x87\x01a!\xC2V[`\x80\x82\x01Ra$\x84\x86a\x01\0\x87\x01a!\xC2V[`\xA0\x82\x01Ra$\x97\x86a\x01@\x87\x01a!\xC2V[`\xC0\x82\x01Ra$\xAA\x86a\x01\x80\x87\x01a!\xC2V[`\xE0\x82\x01Ra$\xBD\x86a\x01\xC0\x87\x01a!\xC2V[a\x01\0\x82\x01Ra$\xD1\x86a\x02\0\x87\x01a!\xC2V[a\x01 \x82\x01Ra$\xE5\x86a\x02@\x87\x01a!\xC2V[a\x01@\x82\x01Ra$\xF9\x86a\x02\x80\x87\x01a!\xC2V[a\x01`\x82\x01Ra%\r\x86a\x02\xC0\x87\x01a!\xC2V[a\x01\x80\x82\x01Ra%!\x86a\x03\0\x87\x01a!\xC2V[a\x01\xA0\x82\x01Ra%5\x86a\x03@\x87\x01a!\xC2V[a\x01\xC0\x82\x01Ra%I\x86a\x03\x80\x87\x01a!\xC2V[a\x01\xE0\x82\x01Ra%]\x86a\x03\xC0\x87\x01a!\xC2V[a\x02\0\x82\x01Ra%q\x86a\x04\0\x87\x01a!\xC2V[a\x02 \x82\x01Ra%\x85\x86a\x04@\x87\x01a!\xC2V[a\x02@\x82\x01Ra%\x99\x86a\x04\x80\x87\x01a!\xC2V[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa%\xC7\x85a\x05\0\x86\x01a\"\x0FV[\x91Pa%\xD7\x85a\x06`\x86\x01a\"|V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a \xDBWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a&AWcNH{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",
2751 );
2752 #[derive(Default, Debug, PartialEq, Eq, Hash)]
2753 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2758 #[derive(Clone)]
2759 pub struct InvalidPlonkArgs {}
2760 #[allow(
2761 non_camel_case_types,
2762 non_snake_case,
2763 clippy::pub_underscore_fields,
2764 clippy::style
2765 )]
2766 const _: () = {
2767 use alloy::sol_types as alloy_sol_types;
2768 #[doc(hidden)]
2769 type UnderlyingSolTuple<'a> = ();
2770 #[doc(hidden)]
2771 type UnderlyingRustTuple<'a> = ();
2772 #[cfg(test)]
2773 #[allow(dead_code, unreachable_patterns)]
2774 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
2775 match _t {
2776 alloy_sol_types::private::AssertTypeEq::<
2777 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2778 >(_) => {},
2779 }
2780 }
2781 #[automatically_derived]
2782 #[doc(hidden)]
2783 impl ::core::convert::From<InvalidPlonkArgs> for UnderlyingRustTuple<'_> {
2784 fn from(value: InvalidPlonkArgs) -> Self {
2785 ()
2786 }
2787 }
2788 #[automatically_derived]
2789 #[doc(hidden)]
2790 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPlonkArgs {
2791 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2792 Self {}
2793 }
2794 }
2795 #[automatically_derived]
2796 impl alloy_sol_types::SolError for InvalidPlonkArgs {
2797 type Parameters<'a> = UnderlyingSolTuple<'a>;
2798 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
2799 const SIGNATURE: &'static str = "InvalidPlonkArgs()";
2800 const SELECTOR: [u8; 4] = [253u8, 154u8, 45u8, 27u8];
2801 #[inline]
2802 fn new<'a>(
2803 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2804 ) -> Self {
2805 tuple.into()
2806 }
2807 #[inline]
2808 fn tokenize(&self) -> Self::Token<'_> {
2809 ()
2810 }
2811 }
2812 };
2813 #[derive(Default, Debug, PartialEq, Eq, Hash)]
2814 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2819 #[derive(Clone)]
2820 pub struct UnsupportedDegree {}
2821 #[allow(
2822 non_camel_case_types,
2823 non_snake_case,
2824 clippy::pub_underscore_fields,
2825 clippy::style
2826 )]
2827 const _: () = {
2828 use alloy::sol_types as alloy_sol_types;
2829 #[doc(hidden)]
2830 type UnderlyingSolTuple<'a> = ();
2831 #[doc(hidden)]
2832 type UnderlyingRustTuple<'a> = ();
2833 #[cfg(test)]
2834 #[allow(dead_code, unreachable_patterns)]
2835 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
2836 match _t {
2837 alloy_sol_types::private::AssertTypeEq::<
2838 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2839 >(_) => {},
2840 }
2841 }
2842 #[automatically_derived]
2843 #[doc(hidden)]
2844 impl ::core::convert::From<UnsupportedDegree> for UnderlyingRustTuple<'_> {
2845 fn from(value: UnsupportedDegree) -> Self {
2846 ()
2847 }
2848 }
2849 #[automatically_derived]
2850 #[doc(hidden)]
2851 impl ::core::convert::From<UnderlyingRustTuple<'_>> for UnsupportedDegree {
2852 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2853 Self {}
2854 }
2855 }
2856 #[automatically_derived]
2857 impl alloy_sol_types::SolError for UnsupportedDegree {
2858 type Parameters<'a> = UnderlyingSolTuple<'a>;
2859 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
2860 const SIGNATURE: &'static str = "UnsupportedDegree()";
2861 const SELECTOR: [u8; 4] = [226u8, 239u8, 9u8, 229u8];
2862 #[inline]
2863 fn new<'a>(
2864 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2865 ) -> Self {
2866 tuple.into()
2867 }
2868 #[inline]
2869 fn tokenize(&self) -> Self::Token<'_> {
2870 ()
2871 }
2872 }
2873 };
2874 #[derive(Default, Debug, PartialEq, Eq, Hash)]
2875 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2880 #[derive(Clone)]
2881 pub struct WrongPlonkVK {}
2882 #[allow(
2883 non_camel_case_types,
2884 non_snake_case,
2885 clippy::pub_underscore_fields,
2886 clippy::style
2887 )]
2888 const _: () = {
2889 use alloy::sol_types as alloy_sol_types;
2890 #[doc(hidden)]
2891 type UnderlyingSolTuple<'a> = ();
2892 #[doc(hidden)]
2893 type UnderlyingRustTuple<'a> = ();
2894 #[cfg(test)]
2895 #[allow(dead_code, unreachable_patterns)]
2896 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
2897 match _t {
2898 alloy_sol_types::private::AssertTypeEq::<
2899 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2900 >(_) => {},
2901 }
2902 }
2903 #[automatically_derived]
2904 #[doc(hidden)]
2905 impl ::core::convert::From<WrongPlonkVK> for UnderlyingRustTuple<'_> {
2906 fn from(value: WrongPlonkVK) -> Self {
2907 ()
2908 }
2909 }
2910 #[automatically_derived]
2911 #[doc(hidden)]
2912 impl ::core::convert::From<UnderlyingRustTuple<'_>> for WrongPlonkVK {
2913 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2914 Self {}
2915 }
2916 }
2917 #[automatically_derived]
2918 impl alloy_sol_types::SolError for WrongPlonkVK {
2919 type Parameters<'a> = UnderlyingSolTuple<'a>;
2920 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
2921 const SIGNATURE: &'static str = "WrongPlonkVK()";
2922 const SELECTOR: [u8; 4] = [65u8, 245u8, 59u8, 18u8];
2923 #[inline]
2924 fn new<'a>(
2925 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2926 ) -> Self {
2927 tuple.into()
2928 }
2929 #[inline]
2930 fn tokenize(&self) -> Self::Token<'_> {
2931 ()
2932 }
2933 }
2934 };
2935 #[derive(Default, Debug, PartialEq, Eq, Hash)]
2936 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2941 #[derive(Clone)]
2942 pub struct BETA_H_X0Call {}
2943 #[derive(Default, Debug, PartialEq, Eq, Hash)]
2944 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2946 #[derive(Clone)]
2947 pub struct BETA_H_X0Return {
2948 #[allow(missing_docs)]
2949 pub _0: alloy::sol_types::private::primitives::aliases::U256,
2950 }
2951 #[allow(
2952 non_camel_case_types,
2953 non_snake_case,
2954 clippy::pub_underscore_fields,
2955 clippy::style
2956 )]
2957 const _: () = {
2958 use alloy::sol_types as alloy_sol_types;
2959 {
2960 #[doc(hidden)]
2961 type UnderlyingSolTuple<'a> = ();
2962 #[doc(hidden)]
2963 type UnderlyingRustTuple<'a> = ();
2964 #[cfg(test)]
2965 #[allow(dead_code, unreachable_patterns)]
2966 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
2967 match _t {
2968 alloy_sol_types::private::AssertTypeEq::<
2969 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2970 >(_) => {},
2971 }
2972 }
2973 #[automatically_derived]
2974 #[doc(hidden)]
2975 impl ::core::convert::From<BETA_H_X0Call> for UnderlyingRustTuple<'_> {
2976 fn from(value: BETA_H_X0Call) -> Self {
2977 ()
2978 }
2979 }
2980 #[automatically_derived]
2981 #[doc(hidden)]
2982 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Call {
2983 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2984 Self {}
2985 }
2986 }
2987 }
2988 {
2989 #[doc(hidden)]
2990 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
2991 #[doc(hidden)]
2992 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
2993 #[cfg(test)]
2994 #[allow(dead_code, unreachable_patterns)]
2995 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
2996 match _t {
2997 alloy_sol_types::private::AssertTypeEq::<
2998 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2999 >(_) => {},
3000 }
3001 }
3002 #[automatically_derived]
3003 #[doc(hidden)]
3004 impl ::core::convert::From<BETA_H_X0Return> for UnderlyingRustTuple<'_> {
3005 fn from(value: BETA_H_X0Return) -> Self {
3006 (value._0,)
3007 }
3008 }
3009 #[automatically_derived]
3010 #[doc(hidden)]
3011 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Return {
3012 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3013 Self { _0: tuple.0 }
3014 }
3015 }
3016 }
3017 #[automatically_derived]
3018 impl alloy_sol_types::SolCall for BETA_H_X0Call {
3019 type Parameters<'a> = ();
3020 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3021 type Return = BETA_H_X0Return;
3022 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3023 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3024 const SIGNATURE: &'static str = "BETA_H_X0()";
3025 const SELECTOR: [u8; 4] = [131u8, 76u8, 69u8, 42u8];
3026 #[inline]
3027 fn new<'a>(
3028 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3029 ) -> Self {
3030 tuple.into()
3031 }
3032 #[inline]
3033 fn tokenize(&self) -> Self::Token<'_> {
3034 ()
3035 }
3036 #[inline]
3037 fn abi_decode_returns(
3038 data: &[u8],
3039 validate: bool,
3040 ) -> alloy_sol_types::Result<Self::Return> {
3041 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3042 data, validate,
3043 )
3044 .map(Into::into)
3045 }
3046 }
3047 };
3048 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3049 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3054 #[derive(Clone)]
3055 pub struct BETA_H_X1Call {}
3056 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3057 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3059 #[derive(Clone)]
3060 pub struct BETA_H_X1Return {
3061 #[allow(missing_docs)]
3062 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3063 }
3064 #[allow(
3065 non_camel_case_types,
3066 non_snake_case,
3067 clippy::pub_underscore_fields,
3068 clippy::style
3069 )]
3070 const _: () = {
3071 use alloy::sol_types as alloy_sol_types;
3072 {
3073 #[doc(hidden)]
3074 type UnderlyingSolTuple<'a> = ();
3075 #[doc(hidden)]
3076 type UnderlyingRustTuple<'a> = ();
3077 #[cfg(test)]
3078 #[allow(dead_code, unreachable_patterns)]
3079 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3080 match _t {
3081 alloy_sol_types::private::AssertTypeEq::<
3082 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3083 >(_) => {},
3084 }
3085 }
3086 #[automatically_derived]
3087 #[doc(hidden)]
3088 impl ::core::convert::From<BETA_H_X1Call> for UnderlyingRustTuple<'_> {
3089 fn from(value: BETA_H_X1Call) -> Self {
3090 ()
3091 }
3092 }
3093 #[automatically_derived]
3094 #[doc(hidden)]
3095 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Call {
3096 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3097 Self {}
3098 }
3099 }
3100 }
3101 {
3102 #[doc(hidden)]
3103 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3104 #[doc(hidden)]
3105 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
3106 #[cfg(test)]
3107 #[allow(dead_code, unreachable_patterns)]
3108 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3109 match _t {
3110 alloy_sol_types::private::AssertTypeEq::<
3111 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3112 >(_) => {},
3113 }
3114 }
3115 #[automatically_derived]
3116 #[doc(hidden)]
3117 impl ::core::convert::From<BETA_H_X1Return> for UnderlyingRustTuple<'_> {
3118 fn from(value: BETA_H_X1Return) -> Self {
3119 (value._0,)
3120 }
3121 }
3122 #[automatically_derived]
3123 #[doc(hidden)]
3124 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Return {
3125 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3126 Self { _0: tuple.0 }
3127 }
3128 }
3129 }
3130 #[automatically_derived]
3131 impl alloy_sol_types::SolCall for BETA_H_X1Call {
3132 type Parameters<'a> = ();
3133 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3134 type Return = BETA_H_X1Return;
3135 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3136 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3137 const SIGNATURE: &'static str = "BETA_H_X1()";
3138 const SELECTOR: [u8; 4] = [175u8, 25u8, 107u8, 162u8];
3139 #[inline]
3140 fn new<'a>(
3141 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3142 ) -> Self {
3143 tuple.into()
3144 }
3145 #[inline]
3146 fn tokenize(&self) -> Self::Token<'_> {
3147 ()
3148 }
3149 #[inline]
3150 fn abi_decode_returns(
3151 data: &[u8],
3152 validate: bool,
3153 ) -> alloy_sol_types::Result<Self::Return> {
3154 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3155 data, validate,
3156 )
3157 .map(Into::into)
3158 }
3159 }
3160 };
3161 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3162 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3167 #[derive(Clone)]
3168 pub struct BETA_H_Y0Call {}
3169 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3170 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3172 #[derive(Clone)]
3173 pub struct BETA_H_Y0Return {
3174 #[allow(missing_docs)]
3175 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3176 }
3177 #[allow(
3178 non_camel_case_types,
3179 non_snake_case,
3180 clippy::pub_underscore_fields,
3181 clippy::style
3182 )]
3183 const _: () = {
3184 use alloy::sol_types as alloy_sol_types;
3185 {
3186 #[doc(hidden)]
3187 type UnderlyingSolTuple<'a> = ();
3188 #[doc(hidden)]
3189 type UnderlyingRustTuple<'a> = ();
3190 #[cfg(test)]
3191 #[allow(dead_code, unreachable_patterns)]
3192 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3193 match _t {
3194 alloy_sol_types::private::AssertTypeEq::<
3195 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3196 >(_) => {},
3197 }
3198 }
3199 #[automatically_derived]
3200 #[doc(hidden)]
3201 impl ::core::convert::From<BETA_H_Y0Call> for UnderlyingRustTuple<'_> {
3202 fn from(value: BETA_H_Y0Call) -> Self {
3203 ()
3204 }
3205 }
3206 #[automatically_derived]
3207 #[doc(hidden)]
3208 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Call {
3209 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3210 Self {}
3211 }
3212 }
3213 }
3214 {
3215 #[doc(hidden)]
3216 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3217 #[doc(hidden)]
3218 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
3219 #[cfg(test)]
3220 #[allow(dead_code, unreachable_patterns)]
3221 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3222 match _t {
3223 alloy_sol_types::private::AssertTypeEq::<
3224 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3225 >(_) => {},
3226 }
3227 }
3228 #[automatically_derived]
3229 #[doc(hidden)]
3230 impl ::core::convert::From<BETA_H_Y0Return> for UnderlyingRustTuple<'_> {
3231 fn from(value: BETA_H_Y0Return) -> Self {
3232 (value._0,)
3233 }
3234 }
3235 #[automatically_derived]
3236 #[doc(hidden)]
3237 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Return {
3238 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3239 Self { _0: tuple.0 }
3240 }
3241 }
3242 }
3243 #[automatically_derived]
3244 impl alloy_sol_types::SolCall for BETA_H_Y0Call {
3245 type Parameters<'a> = ();
3246 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3247 type Return = BETA_H_Y0Return;
3248 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3249 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3250 const SIGNATURE: &'static str = "BETA_H_Y0()";
3251 const SELECTOR: [u8; 4] = [245u8, 20u8, 67u8, 38u8];
3252 #[inline]
3253 fn new<'a>(
3254 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3255 ) -> Self {
3256 tuple.into()
3257 }
3258 #[inline]
3259 fn tokenize(&self) -> Self::Token<'_> {
3260 ()
3261 }
3262 #[inline]
3263 fn abi_decode_returns(
3264 data: &[u8],
3265 validate: bool,
3266 ) -> alloy_sol_types::Result<Self::Return> {
3267 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3268 data, validate,
3269 )
3270 .map(Into::into)
3271 }
3272 }
3273 };
3274 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3275 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3280 #[derive(Clone)]
3281 pub struct BETA_H_Y1Call {}
3282 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3283 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3285 #[derive(Clone)]
3286 pub struct BETA_H_Y1Return {
3287 #[allow(missing_docs)]
3288 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3289 }
3290 #[allow(
3291 non_camel_case_types,
3292 non_snake_case,
3293 clippy::pub_underscore_fields,
3294 clippy::style
3295 )]
3296 const _: () = {
3297 use alloy::sol_types as alloy_sol_types;
3298 {
3299 #[doc(hidden)]
3300 type UnderlyingSolTuple<'a> = ();
3301 #[doc(hidden)]
3302 type UnderlyingRustTuple<'a> = ();
3303 #[cfg(test)]
3304 #[allow(dead_code, unreachable_patterns)]
3305 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3306 match _t {
3307 alloy_sol_types::private::AssertTypeEq::<
3308 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3309 >(_) => {},
3310 }
3311 }
3312 #[automatically_derived]
3313 #[doc(hidden)]
3314 impl ::core::convert::From<BETA_H_Y1Call> for UnderlyingRustTuple<'_> {
3315 fn from(value: BETA_H_Y1Call) -> Self {
3316 ()
3317 }
3318 }
3319 #[automatically_derived]
3320 #[doc(hidden)]
3321 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Call {
3322 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3323 Self {}
3324 }
3325 }
3326 }
3327 {
3328 #[doc(hidden)]
3329 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3330 #[doc(hidden)]
3331 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
3332 #[cfg(test)]
3333 #[allow(dead_code, unreachable_patterns)]
3334 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3335 match _t {
3336 alloy_sol_types::private::AssertTypeEq::<
3337 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3338 >(_) => {},
3339 }
3340 }
3341 #[automatically_derived]
3342 #[doc(hidden)]
3343 impl ::core::convert::From<BETA_H_Y1Return> for UnderlyingRustTuple<'_> {
3344 fn from(value: BETA_H_Y1Return) -> Self {
3345 (value._0,)
3346 }
3347 }
3348 #[automatically_derived]
3349 #[doc(hidden)]
3350 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Return {
3351 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3352 Self { _0: tuple.0 }
3353 }
3354 }
3355 }
3356 #[automatically_derived]
3357 impl alloy_sol_types::SolCall for BETA_H_Y1Call {
3358 type Parameters<'a> = ();
3359 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3360 type Return = BETA_H_Y1Return;
3361 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3362 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3363 const SIGNATURE: &'static str = "BETA_H_Y1()";
3364 const SELECTOR: [u8; 4] = [75u8, 71u8, 52u8, 227u8];
3365 #[inline]
3366 fn new<'a>(
3367 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3368 ) -> Self {
3369 tuple.into()
3370 }
3371 #[inline]
3372 fn tokenize(&self) -> Self::Token<'_> {
3373 ()
3374 }
3375 #[inline]
3376 fn abi_decode_returns(
3377 data: &[u8],
3378 validate: bool,
3379 ) -> alloy_sol_types::Result<Self::Return> {
3380 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3381 data, validate,
3382 )
3383 .map(Into::into)
3384 }
3385 }
3386 };
3387 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3388 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3393 #[derive(Clone)]
3394 pub struct COSET_K1Call {}
3395 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3396 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3398 #[derive(Clone)]
3399 pub struct COSET_K1Return {
3400 #[allow(missing_docs)]
3401 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3402 }
3403 #[allow(
3404 non_camel_case_types,
3405 non_snake_case,
3406 clippy::pub_underscore_fields,
3407 clippy::style
3408 )]
3409 const _: () = {
3410 use alloy::sol_types as alloy_sol_types;
3411 {
3412 #[doc(hidden)]
3413 type UnderlyingSolTuple<'a> = ();
3414 #[doc(hidden)]
3415 type UnderlyingRustTuple<'a> = ();
3416 #[cfg(test)]
3417 #[allow(dead_code, unreachable_patterns)]
3418 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3419 match _t {
3420 alloy_sol_types::private::AssertTypeEq::<
3421 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3422 >(_) => {},
3423 }
3424 }
3425 #[automatically_derived]
3426 #[doc(hidden)]
3427 impl ::core::convert::From<COSET_K1Call> for UnderlyingRustTuple<'_> {
3428 fn from(value: COSET_K1Call) -> Self {
3429 ()
3430 }
3431 }
3432 #[automatically_derived]
3433 #[doc(hidden)]
3434 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Call {
3435 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3436 Self {}
3437 }
3438 }
3439 }
3440 {
3441 #[doc(hidden)]
3442 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3443 #[doc(hidden)]
3444 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
3445 #[cfg(test)]
3446 #[allow(dead_code, unreachable_patterns)]
3447 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3448 match _t {
3449 alloy_sol_types::private::AssertTypeEq::<
3450 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3451 >(_) => {},
3452 }
3453 }
3454 #[automatically_derived]
3455 #[doc(hidden)]
3456 impl ::core::convert::From<COSET_K1Return> for UnderlyingRustTuple<'_> {
3457 fn from(value: COSET_K1Return) -> Self {
3458 (value._0,)
3459 }
3460 }
3461 #[automatically_derived]
3462 #[doc(hidden)]
3463 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Return {
3464 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3465 Self { _0: tuple.0 }
3466 }
3467 }
3468 }
3469 #[automatically_derived]
3470 impl alloy_sol_types::SolCall for COSET_K1Call {
3471 type Parameters<'a> = ();
3472 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3473 type Return = COSET_K1Return;
3474 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3475 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3476 const SIGNATURE: &'static str = "COSET_K1()";
3477 const SELECTOR: [u8; 4] = [227u8, 81u8, 45u8, 86u8];
3478 #[inline]
3479 fn new<'a>(
3480 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3481 ) -> Self {
3482 tuple.into()
3483 }
3484 #[inline]
3485 fn tokenize(&self) -> Self::Token<'_> {
3486 ()
3487 }
3488 #[inline]
3489 fn abi_decode_returns(
3490 data: &[u8],
3491 validate: bool,
3492 ) -> alloy_sol_types::Result<Self::Return> {
3493 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3494 data, validate,
3495 )
3496 .map(Into::into)
3497 }
3498 }
3499 };
3500 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3501 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3506 #[derive(Clone)]
3507 pub struct COSET_K2Call {}
3508 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3509 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3511 #[derive(Clone)]
3512 pub struct COSET_K2Return {
3513 #[allow(missing_docs)]
3514 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3515 }
3516 #[allow(
3517 non_camel_case_types,
3518 non_snake_case,
3519 clippy::pub_underscore_fields,
3520 clippy::style
3521 )]
3522 const _: () = {
3523 use alloy::sol_types as alloy_sol_types;
3524 {
3525 #[doc(hidden)]
3526 type UnderlyingSolTuple<'a> = ();
3527 #[doc(hidden)]
3528 type UnderlyingRustTuple<'a> = ();
3529 #[cfg(test)]
3530 #[allow(dead_code, unreachable_patterns)]
3531 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3532 match _t {
3533 alloy_sol_types::private::AssertTypeEq::<
3534 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3535 >(_) => {},
3536 }
3537 }
3538 #[automatically_derived]
3539 #[doc(hidden)]
3540 impl ::core::convert::From<COSET_K2Call> for UnderlyingRustTuple<'_> {
3541 fn from(value: COSET_K2Call) -> Self {
3542 ()
3543 }
3544 }
3545 #[automatically_derived]
3546 #[doc(hidden)]
3547 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Call {
3548 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3549 Self {}
3550 }
3551 }
3552 }
3553 {
3554 #[doc(hidden)]
3555 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3556 #[doc(hidden)]
3557 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
3558 #[cfg(test)]
3559 #[allow(dead_code, unreachable_patterns)]
3560 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3561 match _t {
3562 alloy_sol_types::private::AssertTypeEq::<
3563 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3564 >(_) => {},
3565 }
3566 }
3567 #[automatically_derived]
3568 #[doc(hidden)]
3569 impl ::core::convert::From<COSET_K2Return> for UnderlyingRustTuple<'_> {
3570 fn from(value: COSET_K2Return) -> Self {
3571 (value._0,)
3572 }
3573 }
3574 #[automatically_derived]
3575 #[doc(hidden)]
3576 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Return {
3577 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3578 Self { _0: tuple.0 }
3579 }
3580 }
3581 }
3582 #[automatically_derived]
3583 impl alloy_sol_types::SolCall for COSET_K2Call {
3584 type Parameters<'a> = ();
3585 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3586 type Return = COSET_K2Return;
3587 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3588 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3589 const SIGNATURE: &'static str = "COSET_K2()";
3590 const SELECTOR: [u8; 4] = [12u8, 85u8, 31u8, 63u8];
3591 #[inline]
3592 fn new<'a>(
3593 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3594 ) -> Self {
3595 tuple.into()
3596 }
3597 #[inline]
3598 fn tokenize(&self) -> Self::Token<'_> {
3599 ()
3600 }
3601 #[inline]
3602 fn abi_decode_returns(
3603 data: &[u8],
3604 validate: bool,
3605 ) -> alloy_sol_types::Result<Self::Return> {
3606 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3607 data, validate,
3608 )
3609 .map(Into::into)
3610 }
3611 }
3612 };
3613 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3614 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3619 #[derive(Clone)]
3620 pub struct COSET_K3Call {}
3621 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3622 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3624 #[derive(Clone)]
3625 pub struct COSET_K3Return {
3626 #[allow(missing_docs)]
3627 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3628 }
3629 #[allow(
3630 non_camel_case_types,
3631 non_snake_case,
3632 clippy::pub_underscore_fields,
3633 clippy::style
3634 )]
3635 const _: () = {
3636 use alloy::sol_types as alloy_sol_types;
3637 {
3638 #[doc(hidden)]
3639 type UnderlyingSolTuple<'a> = ();
3640 #[doc(hidden)]
3641 type UnderlyingRustTuple<'a> = ();
3642 #[cfg(test)]
3643 #[allow(dead_code, unreachable_patterns)]
3644 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3645 match _t {
3646 alloy_sol_types::private::AssertTypeEq::<
3647 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3648 >(_) => {},
3649 }
3650 }
3651 #[automatically_derived]
3652 #[doc(hidden)]
3653 impl ::core::convert::From<COSET_K3Call> for UnderlyingRustTuple<'_> {
3654 fn from(value: COSET_K3Call) -> Self {
3655 ()
3656 }
3657 }
3658 #[automatically_derived]
3659 #[doc(hidden)]
3660 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Call {
3661 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3662 Self {}
3663 }
3664 }
3665 }
3666 {
3667 #[doc(hidden)]
3668 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3669 #[doc(hidden)]
3670 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
3671 #[cfg(test)]
3672 #[allow(dead_code, unreachable_patterns)]
3673 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3674 match _t {
3675 alloy_sol_types::private::AssertTypeEq::<
3676 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3677 >(_) => {},
3678 }
3679 }
3680 #[automatically_derived]
3681 #[doc(hidden)]
3682 impl ::core::convert::From<COSET_K3Return> for UnderlyingRustTuple<'_> {
3683 fn from(value: COSET_K3Return) -> Self {
3684 (value._0,)
3685 }
3686 }
3687 #[automatically_derived]
3688 #[doc(hidden)]
3689 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Return {
3690 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3691 Self { _0: tuple.0 }
3692 }
3693 }
3694 }
3695 #[automatically_derived]
3696 impl alloy_sol_types::SolCall for COSET_K3Call {
3697 type Parameters<'a> = ();
3698 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3699 type Return = COSET_K3Return;
3700 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3701 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3702 const SIGNATURE: &'static str = "COSET_K3()";
3703 const SELECTOR: [u8; 4] = [90u8, 20u8, 192u8, 254u8];
3704 #[inline]
3705 fn new<'a>(
3706 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3707 ) -> Self {
3708 tuple.into()
3709 }
3710 #[inline]
3711 fn tokenize(&self) -> Self::Token<'_> {
3712 ()
3713 }
3714 #[inline]
3715 fn abi_decode_returns(
3716 data: &[u8],
3717 validate: bool,
3718 ) -> alloy_sol_types::Result<Self::Return> {
3719 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3720 data, validate,
3721 )
3722 .map(Into::into)
3723 }
3724 }
3725 };
3726 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3727 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3732 #[derive(Clone)]
3733 pub struct COSET_K4Call {}
3734 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3735 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3737 #[derive(Clone)]
3738 pub struct COSET_K4Return {
3739 #[allow(missing_docs)]
3740 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3741 }
3742 #[allow(
3743 non_camel_case_types,
3744 non_snake_case,
3745 clippy::pub_underscore_fields,
3746 clippy::style
3747 )]
3748 const _: () = {
3749 use alloy::sol_types as alloy_sol_types;
3750 {
3751 #[doc(hidden)]
3752 type UnderlyingSolTuple<'a> = ();
3753 #[doc(hidden)]
3754 type UnderlyingRustTuple<'a> = ();
3755 #[cfg(test)]
3756 #[allow(dead_code, unreachable_patterns)]
3757 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3758 match _t {
3759 alloy_sol_types::private::AssertTypeEq::<
3760 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3761 >(_) => {},
3762 }
3763 }
3764 #[automatically_derived]
3765 #[doc(hidden)]
3766 impl ::core::convert::From<COSET_K4Call> for UnderlyingRustTuple<'_> {
3767 fn from(value: COSET_K4Call) -> Self {
3768 ()
3769 }
3770 }
3771 #[automatically_derived]
3772 #[doc(hidden)]
3773 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Call {
3774 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3775 Self {}
3776 }
3777 }
3778 }
3779 {
3780 #[doc(hidden)]
3781 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3782 #[doc(hidden)]
3783 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
3784 #[cfg(test)]
3785 #[allow(dead_code, unreachable_patterns)]
3786 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3787 match _t {
3788 alloy_sol_types::private::AssertTypeEq::<
3789 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3790 >(_) => {},
3791 }
3792 }
3793 #[automatically_derived]
3794 #[doc(hidden)]
3795 impl ::core::convert::From<COSET_K4Return> for UnderlyingRustTuple<'_> {
3796 fn from(value: COSET_K4Return) -> Self {
3797 (value._0,)
3798 }
3799 }
3800 #[automatically_derived]
3801 #[doc(hidden)]
3802 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Return {
3803 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3804 Self { _0: tuple.0 }
3805 }
3806 }
3807 }
3808 #[automatically_derived]
3809 impl alloy_sol_types::SolCall for COSET_K4Call {
3810 type Parameters<'a> = ();
3811 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3812 type Return = COSET_K4Return;
3813 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3814 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3815 const SIGNATURE: &'static str = "COSET_K4()";
3816 const SELECTOR: [u8; 4] = [222u8, 36u8, 172u8, 15u8];
3817 #[inline]
3818 fn new<'a>(
3819 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3820 ) -> Self {
3821 tuple.into()
3822 }
3823 #[inline]
3824 fn tokenize(&self) -> Self::Token<'_> {
3825 ()
3826 }
3827 #[inline]
3828 fn abi_decode_returns(
3829 data: &[u8],
3830 validate: bool,
3831 ) -> alloy_sol_types::Result<Self::Return> {
3832 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3833 data, validate,
3834 )
3835 .map(Into::into)
3836 }
3837 }
3838 };
3839 #[derive()]
3840 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3845 #[derive(Clone)]
3846 pub struct verifyCall {
3847 #[allow(missing_docs)]
3848 pub verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
3849 #[allow(missing_docs)]
3850 pub publicInput: [alloy::sol_types::private::primitives::aliases::U256; 11usize],
3851 #[allow(missing_docs)]
3852 pub proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
3853 }
3854 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3855 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3857 #[derive(Clone)]
3858 pub struct verifyReturn {
3859 #[allow(missing_docs)]
3860 pub _0: bool,
3861 }
3862 #[allow(
3863 non_camel_case_types,
3864 non_snake_case,
3865 clippy::pub_underscore_fields,
3866 clippy::style
3867 )]
3868 const _: () = {
3869 use alloy::sol_types as alloy_sol_types;
3870 {
3871 #[doc(hidden)]
3872 type UnderlyingSolTuple<'a> = (
3873 IPlonkVerifier::VerifyingKey,
3874 alloy::sol_types::sol_data::FixedArray<
3875 alloy::sol_types::sol_data::Uint<256>,
3876 11usize,
3877 >,
3878 IPlonkVerifier::PlonkProof,
3879 );
3880 #[doc(hidden)]
3881 type UnderlyingRustTuple<'a> = (
3882 <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
3883 [alloy::sol_types::private::primitives::aliases::U256; 11usize],
3884 <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
3885 );
3886 #[cfg(test)]
3887 #[allow(dead_code, unreachable_patterns)]
3888 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3889 match _t {
3890 alloy_sol_types::private::AssertTypeEq::<
3891 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3892 >(_) => {},
3893 }
3894 }
3895 #[automatically_derived]
3896 #[doc(hidden)]
3897 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
3898 fn from(value: verifyCall) -> Self {
3899 (value.verifyingKey, value.publicInput, value.proof)
3900 }
3901 }
3902 #[automatically_derived]
3903 #[doc(hidden)]
3904 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
3905 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3906 Self {
3907 verifyingKey: tuple.0,
3908 publicInput: tuple.1,
3909 proof: tuple.2,
3910 }
3911 }
3912 }
3913 }
3914 {
3915 #[doc(hidden)]
3916 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
3917 #[doc(hidden)]
3918 type UnderlyingRustTuple<'a> = (bool,);
3919 #[cfg(test)]
3920 #[allow(dead_code, unreachable_patterns)]
3921 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
3922 match _t {
3923 alloy_sol_types::private::AssertTypeEq::<
3924 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3925 >(_) => {},
3926 }
3927 }
3928 #[automatically_derived]
3929 #[doc(hidden)]
3930 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
3931 fn from(value: verifyReturn) -> Self {
3932 (value._0,)
3933 }
3934 }
3935 #[automatically_derived]
3936 #[doc(hidden)]
3937 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
3938 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3939 Self { _0: tuple.0 }
3940 }
3941 }
3942 }
3943 #[automatically_derived]
3944 impl alloy_sol_types::SolCall for verifyCall {
3945 type Parameters<'a> = (
3946 IPlonkVerifier::VerifyingKey,
3947 alloy::sol_types::sol_data::FixedArray<
3948 alloy::sol_types::sol_data::Uint<256>,
3949 11usize,
3950 >,
3951 IPlonkVerifier::PlonkProof,
3952 );
3953 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
3954 type Return = verifyReturn;
3955 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
3956 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
3957 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))";
3958 const SELECTOR: [u8; 4] = [171u8, 149u8, 158u8, 227u8];
3959 #[inline]
3960 fn new<'a>(
3961 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3962 ) -> Self {
3963 tuple.into()
3964 }
3965 #[inline]
3966 fn tokenize(&self) -> Self::Token<'_> {
3967 (
3968 <IPlonkVerifier::VerifyingKey as alloy_sol_types::SolType>::tokenize(
3969 &self.verifyingKey,
3970 ),
3971 <alloy::sol_types::sol_data::FixedArray<
3972 alloy::sol_types::sol_data::Uint<256>,
3973 11usize,
3974 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
3975 <IPlonkVerifier::PlonkProof as alloy_sol_types::SolType>::tokenize(&self.proof),
3976 )
3977 }
3978 #[inline]
3979 fn abi_decode_returns(
3980 data: &[u8],
3981 validate: bool,
3982 ) -> alloy_sol_types::Result<Self::Return> {
3983 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
3984 data, validate,
3985 )
3986 .map(Into::into)
3987 }
3988 }
3989 };
3990 #[derive()]
3992 pub enum PlonkVerifierV2Calls {
3993 #[allow(missing_docs)]
3994 BETA_H_X0(BETA_H_X0Call),
3995 #[allow(missing_docs)]
3996 BETA_H_X1(BETA_H_X1Call),
3997 #[allow(missing_docs)]
3998 BETA_H_Y0(BETA_H_Y0Call),
3999 #[allow(missing_docs)]
4000 BETA_H_Y1(BETA_H_Y1Call),
4001 #[allow(missing_docs)]
4002 COSET_K1(COSET_K1Call),
4003 #[allow(missing_docs)]
4004 COSET_K2(COSET_K2Call),
4005 #[allow(missing_docs)]
4006 COSET_K3(COSET_K3Call),
4007 #[allow(missing_docs)]
4008 COSET_K4(COSET_K4Call),
4009 #[allow(missing_docs)]
4010 verify(verifyCall),
4011 }
4012 #[automatically_derived]
4013 impl PlonkVerifierV2Calls {
4014 pub const SELECTORS: &'static [[u8; 4usize]] = &[
4021 [12u8, 85u8, 31u8, 63u8],
4022 [75u8, 71u8, 52u8, 227u8],
4023 [90u8, 20u8, 192u8, 254u8],
4024 [131u8, 76u8, 69u8, 42u8],
4025 [171u8, 149u8, 158u8, 227u8],
4026 [175u8, 25u8, 107u8, 162u8],
4027 [222u8, 36u8, 172u8, 15u8],
4028 [227u8, 81u8, 45u8, 86u8],
4029 [245u8, 20u8, 67u8, 38u8],
4030 ];
4031 }
4032 #[automatically_derived]
4033 impl alloy_sol_types::SolInterface for PlonkVerifierV2Calls {
4034 const NAME: &'static str = "PlonkVerifierV2Calls";
4035 const MIN_DATA_LENGTH: usize = 0usize;
4036 const COUNT: usize = 9usize;
4037 #[inline]
4038 fn selector(&self) -> [u8; 4] {
4039 match self {
4040 Self::BETA_H_X0(_) => <BETA_H_X0Call as alloy_sol_types::SolCall>::SELECTOR,
4041 Self::BETA_H_X1(_) => <BETA_H_X1Call as alloy_sol_types::SolCall>::SELECTOR,
4042 Self::BETA_H_Y0(_) => <BETA_H_Y0Call as alloy_sol_types::SolCall>::SELECTOR,
4043 Self::BETA_H_Y1(_) => <BETA_H_Y1Call as alloy_sol_types::SolCall>::SELECTOR,
4044 Self::COSET_K1(_) => <COSET_K1Call as alloy_sol_types::SolCall>::SELECTOR,
4045 Self::COSET_K2(_) => <COSET_K2Call as alloy_sol_types::SolCall>::SELECTOR,
4046 Self::COSET_K3(_) => <COSET_K3Call as alloy_sol_types::SolCall>::SELECTOR,
4047 Self::COSET_K4(_) => <COSET_K4Call as alloy_sol_types::SolCall>::SELECTOR,
4048 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
4049 }
4050 }
4051 #[inline]
4052 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
4053 Self::SELECTORS.get(i).copied()
4054 }
4055 #[inline]
4056 fn valid_selector(selector: [u8; 4]) -> bool {
4057 Self::SELECTORS.binary_search(&selector).is_ok()
4058 }
4059 #[inline]
4060 #[allow(non_snake_case)]
4061 fn abi_decode_raw(
4062 selector: [u8; 4],
4063 data: &[u8],
4064 validate: bool,
4065 ) -> alloy_sol_types::Result<Self> {
4066 static DECODE_SHIMS: &[fn(
4067 &[u8],
4068 bool,
4069 )
4070 -> alloy_sol_types::Result<PlonkVerifierV2Calls>] = &[
4071 {
4072 fn COSET_K2(
4073 data: &[u8],
4074 validate: bool,
4075 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4076 <COSET_K2Call as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4077 .map(PlonkVerifierV2Calls::COSET_K2)
4078 }
4079 COSET_K2
4080 },
4081 {
4082 fn BETA_H_Y1(
4083 data: &[u8],
4084 validate: bool,
4085 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4086 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4087 .map(PlonkVerifierV2Calls::BETA_H_Y1)
4088 }
4089 BETA_H_Y1
4090 },
4091 {
4092 fn COSET_K3(
4093 data: &[u8],
4094 validate: bool,
4095 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4096 <COSET_K3Call as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4097 .map(PlonkVerifierV2Calls::COSET_K3)
4098 }
4099 COSET_K3
4100 },
4101 {
4102 fn BETA_H_X0(
4103 data: &[u8],
4104 validate: bool,
4105 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4106 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4107 .map(PlonkVerifierV2Calls::BETA_H_X0)
4108 }
4109 BETA_H_X0
4110 },
4111 {
4112 fn verify(
4113 data: &[u8],
4114 validate: bool,
4115 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4116 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4117 .map(PlonkVerifierV2Calls::verify)
4118 }
4119 verify
4120 },
4121 {
4122 fn BETA_H_X1(
4123 data: &[u8],
4124 validate: bool,
4125 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4126 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4127 .map(PlonkVerifierV2Calls::BETA_H_X1)
4128 }
4129 BETA_H_X1
4130 },
4131 {
4132 fn COSET_K4(
4133 data: &[u8],
4134 validate: bool,
4135 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4136 <COSET_K4Call as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4137 .map(PlonkVerifierV2Calls::COSET_K4)
4138 }
4139 COSET_K4
4140 },
4141 {
4142 fn COSET_K1(
4143 data: &[u8],
4144 validate: bool,
4145 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4146 <COSET_K1Call as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4147 .map(PlonkVerifierV2Calls::COSET_K1)
4148 }
4149 COSET_K1
4150 },
4151 {
4152 fn BETA_H_Y0(
4153 data: &[u8],
4154 validate: bool,
4155 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4156 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
4157 .map(PlonkVerifierV2Calls::BETA_H_Y0)
4158 }
4159 BETA_H_Y0
4160 },
4161 ];
4162 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4163 return Err(alloy_sol_types::Error::unknown_selector(
4164 <Self as alloy_sol_types::SolInterface>::NAME,
4165 selector,
4166 ));
4167 };
4168 DECODE_SHIMS[idx](data, validate)
4169 }
4170 #[inline]
4171 fn abi_encoded_size(&self) -> usize {
4172 match self {
4173 Self::BETA_H_X0(inner) => {
4174 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4175 },
4176 Self::BETA_H_X1(inner) => {
4177 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4178 },
4179 Self::BETA_H_Y0(inner) => {
4180 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4181 },
4182 Self::BETA_H_Y1(inner) => {
4183 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4184 },
4185 Self::COSET_K1(inner) => {
4186 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4187 },
4188 Self::COSET_K2(inner) => {
4189 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4190 },
4191 Self::COSET_K3(inner) => {
4192 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4193 },
4194 Self::COSET_K4(inner) => {
4195 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4196 },
4197 Self::verify(inner) => {
4198 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4199 },
4200 }
4201 }
4202 #[inline]
4203 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
4204 match self {
4205 Self::BETA_H_X0(inner) => {
4206 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4207 },
4208 Self::BETA_H_X1(inner) => {
4209 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4210 },
4211 Self::BETA_H_Y0(inner) => {
4212 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4213 },
4214 Self::BETA_H_Y1(inner) => {
4215 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4216 },
4217 Self::COSET_K1(inner) => {
4218 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4219 },
4220 Self::COSET_K2(inner) => {
4221 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4222 },
4223 Self::COSET_K3(inner) => {
4224 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4225 },
4226 Self::COSET_K4(inner) => {
4227 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4228 },
4229 Self::verify(inner) => {
4230 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4231 },
4232 }
4233 }
4234 }
4235 #[derive(Debug, PartialEq, Eq, Hash)]
4237 pub enum PlonkVerifierV2Errors {
4238 #[allow(missing_docs)]
4239 InvalidPlonkArgs(InvalidPlonkArgs),
4240 #[allow(missing_docs)]
4241 UnsupportedDegree(UnsupportedDegree),
4242 #[allow(missing_docs)]
4243 WrongPlonkVK(WrongPlonkVK),
4244 }
4245 #[automatically_derived]
4246 impl PlonkVerifierV2Errors {
4247 pub const SELECTORS: &'static [[u8; 4usize]] = &[
4254 [65u8, 245u8, 59u8, 18u8],
4255 [226u8, 239u8, 9u8, 229u8],
4256 [253u8, 154u8, 45u8, 27u8],
4257 ];
4258 }
4259 #[automatically_derived]
4260 impl alloy_sol_types::SolInterface for PlonkVerifierV2Errors {
4261 const NAME: &'static str = "PlonkVerifierV2Errors";
4262 const MIN_DATA_LENGTH: usize = 0usize;
4263 const COUNT: usize = 3usize;
4264 #[inline]
4265 fn selector(&self) -> [u8; 4] {
4266 match self {
4267 Self::InvalidPlonkArgs(_) => {
4268 <InvalidPlonkArgs as alloy_sol_types::SolError>::SELECTOR
4269 },
4270 Self::UnsupportedDegree(_) => {
4271 <UnsupportedDegree as alloy_sol_types::SolError>::SELECTOR
4272 },
4273 Self::WrongPlonkVK(_) => <WrongPlonkVK as alloy_sol_types::SolError>::SELECTOR,
4274 }
4275 }
4276 #[inline]
4277 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
4278 Self::SELECTORS.get(i).copied()
4279 }
4280 #[inline]
4281 fn valid_selector(selector: [u8; 4]) -> bool {
4282 Self::SELECTORS.binary_search(&selector).is_ok()
4283 }
4284 #[inline]
4285 #[allow(non_snake_case)]
4286 fn abi_decode_raw(
4287 selector: [u8; 4],
4288 data: &[u8],
4289 validate: bool,
4290 ) -> alloy_sol_types::Result<Self> {
4291 static DECODE_SHIMS: &[fn(
4292 &[u8],
4293 bool,
4294 )
4295 -> alloy_sol_types::Result<PlonkVerifierV2Errors>] = &[
4296 {
4297 fn WrongPlonkVK(
4298 data: &[u8],
4299 validate: bool,
4300 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
4301 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw(data, validate)
4302 .map(PlonkVerifierV2Errors::WrongPlonkVK)
4303 }
4304 WrongPlonkVK
4305 },
4306 {
4307 fn UnsupportedDegree(
4308 data: &[u8],
4309 validate: bool,
4310 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
4311 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw(
4312 data, validate,
4313 )
4314 .map(PlonkVerifierV2Errors::UnsupportedDegree)
4315 }
4316 UnsupportedDegree
4317 },
4318 {
4319 fn InvalidPlonkArgs(
4320 data: &[u8],
4321 validate: bool,
4322 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
4323 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw(
4324 data, validate,
4325 )
4326 .map(PlonkVerifierV2Errors::InvalidPlonkArgs)
4327 }
4328 InvalidPlonkArgs
4329 },
4330 ];
4331 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4332 return Err(alloy_sol_types::Error::unknown_selector(
4333 <Self as alloy_sol_types::SolInterface>::NAME,
4334 selector,
4335 ));
4336 };
4337 DECODE_SHIMS[idx](data, validate)
4338 }
4339 #[inline]
4340 fn abi_encoded_size(&self) -> usize {
4341 match self {
4342 Self::InvalidPlonkArgs(inner) => {
4343 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encoded_size(inner)
4344 },
4345 Self::UnsupportedDegree(inner) => {
4346 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encoded_size(inner)
4347 },
4348 Self::WrongPlonkVK(inner) => {
4349 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encoded_size(inner)
4350 },
4351 }
4352 }
4353 #[inline]
4354 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
4355 match self {
4356 Self::InvalidPlonkArgs(inner) => {
4357 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
4358 },
4359 Self::UnsupportedDegree(inner) => {
4360 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
4361 },
4362 Self::WrongPlonkVK(inner) => {
4363 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
4364 },
4365 }
4366 }
4367 }
4368 use alloy::contract as alloy_contract;
4369 #[inline]
4373 pub const fn new<
4374 T: alloy_contract::private::Transport + ::core::clone::Clone,
4375 P: alloy_contract::private::Provider<T, N>,
4376 N: alloy_contract::private::Network,
4377 >(
4378 address: alloy_sol_types::private::Address,
4379 provider: P,
4380 ) -> PlonkVerifierV2Instance<T, P, N> {
4381 PlonkVerifierV2Instance::<T, P, N>::new(address, provider)
4382 }
4383 #[inline]
4389 pub fn deploy<
4390 T: alloy_contract::private::Transport + ::core::clone::Clone,
4391 P: alloy_contract::private::Provider<T, N>,
4392 N: alloy_contract::private::Network,
4393 >(
4394 provider: P,
4395 ) -> impl ::core::future::Future<Output = alloy_contract::Result<PlonkVerifierV2Instance<T, P, N>>>
4396 {
4397 PlonkVerifierV2Instance::<T, P, N>::deploy(provider)
4398 }
4399 #[inline]
4405 pub fn deploy_builder<
4406 T: alloy_contract::private::Transport + ::core::clone::Clone,
4407 P: alloy_contract::private::Provider<T, N>,
4408 N: alloy_contract::private::Network,
4409 >(
4410 provider: P,
4411 ) -> alloy_contract::RawCallBuilder<T, P, N> {
4412 PlonkVerifierV2Instance::<T, P, N>::deploy_builder(provider)
4413 }
4414 #[derive(Clone)]
4426 pub struct PlonkVerifierV2Instance<T, P, N = alloy_contract::private::Ethereum> {
4427 address: alloy_sol_types::private::Address,
4428 provider: P,
4429 _network_transport: ::core::marker::PhantomData<(N, T)>,
4430 }
4431 #[automatically_derived]
4432 impl<T, P, N> ::core::fmt::Debug for PlonkVerifierV2Instance<T, P, N> {
4433 #[inline]
4434 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4435 f.debug_tuple("PlonkVerifierV2Instance")
4436 .field(&self.address)
4437 .finish()
4438 }
4439 }
4440 #[automatically_derived]
4442 impl<
4443 T: alloy_contract::private::Transport + ::core::clone::Clone,
4444 P: alloy_contract::private::Provider<T, N>,
4445 N: alloy_contract::private::Network,
4446 > PlonkVerifierV2Instance<T, P, N>
4447 {
4448 #[inline]
4452 pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
4453 Self {
4454 address,
4455 provider,
4456 _network_transport: ::core::marker::PhantomData,
4457 }
4458 }
4459 #[inline]
4465 pub async fn deploy(
4466 provider: P,
4467 ) -> alloy_contract::Result<PlonkVerifierV2Instance<T, P, N>> {
4468 let call_builder = Self::deploy_builder(provider);
4469 let contract_address = call_builder.deploy().await?;
4470 Ok(Self::new(contract_address, call_builder.provider))
4471 }
4472 #[inline]
4478 pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<T, P, N> {
4479 alloy_contract::RawCallBuilder::new_raw_deploy(
4480 provider,
4481 ::core::clone::Clone::clone(&BYTECODE),
4482 )
4483 }
4484 #[inline]
4486 pub const fn address(&self) -> &alloy_sol_types::private::Address {
4487 &self.address
4488 }
4489 #[inline]
4491 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
4492 self.address = address;
4493 }
4494 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
4496 self.set_address(address);
4497 self
4498 }
4499 #[inline]
4501 pub const fn provider(&self) -> &P {
4502 &self.provider
4503 }
4504 }
4505 impl<T, P: ::core::clone::Clone, N> PlonkVerifierV2Instance<T, &P, N> {
4506 #[inline]
4508 pub fn with_cloned_provider(self) -> PlonkVerifierV2Instance<T, P, N> {
4509 PlonkVerifierV2Instance {
4510 address: self.address,
4511 provider: ::core::clone::Clone::clone(&self.provider),
4512 _network_transport: ::core::marker::PhantomData,
4513 }
4514 }
4515 }
4516 #[automatically_derived]
4518 impl<
4519 T: alloy_contract::private::Transport + ::core::clone::Clone,
4520 P: alloy_contract::private::Provider<T, N>,
4521 N: alloy_contract::private::Network,
4522 > PlonkVerifierV2Instance<T, P, N>
4523 {
4524 pub fn call_builder<C: alloy_sol_types::SolCall>(
4529 &self,
4530 call: &C,
4531 ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
4532 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
4533 }
4534 pub fn BETA_H_X0(&self) -> alloy_contract::SolCallBuilder<T, &P, BETA_H_X0Call, N> {
4536 self.call_builder(&BETA_H_X0Call {})
4537 }
4538 pub fn BETA_H_X1(&self) -> alloy_contract::SolCallBuilder<T, &P, BETA_H_X1Call, N> {
4540 self.call_builder(&BETA_H_X1Call {})
4541 }
4542 pub fn BETA_H_Y0(&self) -> alloy_contract::SolCallBuilder<T, &P, BETA_H_Y0Call, N> {
4544 self.call_builder(&BETA_H_Y0Call {})
4545 }
4546 pub fn BETA_H_Y1(&self) -> alloy_contract::SolCallBuilder<T, &P, BETA_H_Y1Call, N> {
4548 self.call_builder(&BETA_H_Y1Call {})
4549 }
4550 pub fn COSET_K1(&self) -> alloy_contract::SolCallBuilder<T, &P, COSET_K1Call, N> {
4552 self.call_builder(&COSET_K1Call {})
4553 }
4554 pub fn COSET_K2(&self) -> alloy_contract::SolCallBuilder<T, &P, COSET_K2Call, N> {
4556 self.call_builder(&COSET_K2Call {})
4557 }
4558 pub fn COSET_K3(&self) -> alloy_contract::SolCallBuilder<T, &P, COSET_K3Call, N> {
4560 self.call_builder(&COSET_K3Call {})
4561 }
4562 pub fn COSET_K4(&self) -> alloy_contract::SolCallBuilder<T, &P, COSET_K4Call, N> {
4564 self.call_builder(&COSET_K4Call {})
4565 }
4566 pub fn verify(
4568 &self,
4569 verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
4570 publicInput: [alloy::sol_types::private::primitives::aliases::U256; 11usize],
4571 proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
4572 ) -> alloy_contract::SolCallBuilder<T, &P, verifyCall, N> {
4573 self.call_builder(&verifyCall {
4574 verifyingKey,
4575 publicInput,
4576 proof,
4577 })
4578 }
4579 }
4580 #[automatically_derived]
4582 impl<
4583 T: alloy_contract::private::Transport + ::core::clone::Clone,
4584 P: alloy_contract::private::Provider<T, N>,
4585 N: alloy_contract::private::Network,
4586 > PlonkVerifierV2Instance<T, P, N>
4587 {
4588 pub fn event_filter<E: alloy_sol_types::SolEvent>(
4593 &self,
4594 ) -> alloy_contract::Event<T, &P, E, N> {
4595 alloy_contract::Event::new_sol(&self.provider, &self.address)
4596 }
4597 }
4598}