1#[allow(
12 non_camel_case_types,
13 non_snake_case,
14 clippy::pub_underscore_fields,
15 clippy::style,
16 clippy::empty_structs_with_brackets
17)]
18pub mod BN254 {
19 use super::*;
20 use alloy::sol_types as alloy_sol_types;
21 #[derive(serde::Serialize, serde::Deserialize)]
22 #[derive(Default, Debug, PartialEq, Eq, Hash)]
23 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
24 #[derive(Clone)]
25 pub struct BaseField(alloy::sol_types::private::primitives::aliases::U256);
26 const _: () = {
27 use alloy::sol_types as alloy_sol_types;
28 #[automatically_derived]
29 impl alloy_sol_types::private::SolTypeValue<BaseField>
30 for alloy::sol_types::private::primitives::aliases::U256 {
31 #[inline]
32 fn stv_to_tokens(
33 &self,
34 ) -> <alloy::sol_types::sol_data::Uint<
35 256,
36 > as alloy_sol_types::SolType>::Token<'_> {
37 alloy_sol_types::private::SolTypeValue::<
38 alloy::sol_types::sol_data::Uint<256>,
39 >::stv_to_tokens(self)
40 }
41 #[inline]
42 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
43 <alloy::sol_types::sol_data::Uint<
44 256,
45 > as alloy_sol_types::SolType>::tokenize(self)
46 .0
47 }
48 #[inline]
49 fn stv_abi_encode_packed_to(
50 &self,
51 out: &mut alloy_sol_types::private::Vec<u8>,
52 ) {
53 <alloy::sol_types::sol_data::Uint<
54 256,
55 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
56 }
57 #[inline]
58 fn stv_abi_packed_encoded_size(&self) -> usize {
59 <alloy::sol_types::sol_data::Uint<
60 256,
61 > as alloy_sol_types::SolType>::abi_encoded_size(self)
62 }
63 }
64 impl BaseField {
65 pub const NAME: &'static str = stringify!(@ name);
67 #[inline]
69 pub const fn from_underlying(
70 value: alloy::sol_types::private::primitives::aliases::U256,
71 ) -> Self {
72 Self(value)
73 }
74 #[inline]
76 pub const fn into_underlying(
77 self,
78 ) -> alloy::sol_types::private::primitives::aliases::U256 {
79 self.0
80 }
81 #[inline]
84 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
85 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
86 }
87 #[inline]
90 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
91 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
92 }
93 }
94 #[automatically_derived]
95 impl From<alloy::sol_types::private::primitives::aliases::U256> for BaseField {
96 fn from(
97 value: alloy::sol_types::private::primitives::aliases::U256,
98 ) -> Self {
99 Self::from_underlying(value)
100 }
101 }
102 #[automatically_derived]
103 impl From<BaseField> for alloy::sol_types::private::primitives::aliases::U256 {
104 fn from(value: BaseField) -> Self {
105 value.into_underlying()
106 }
107 }
108 #[automatically_derived]
109 impl alloy_sol_types::SolType for BaseField {
110 type RustType = alloy::sol_types::private::primitives::aliases::U256;
111 type Token<'a> = <alloy::sol_types::sol_data::Uint<
112 256,
113 > as alloy_sol_types::SolType>::Token<'a>;
114 const SOL_NAME: &'static str = Self::NAME;
115 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
116 256,
117 > as alloy_sol_types::SolType>::ENCODED_SIZE;
118 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
119 256,
120 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
121 #[inline]
122 fn valid_token(token: &Self::Token<'_>) -> bool {
123 Self::type_check(token).is_ok()
124 }
125 #[inline]
126 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
127 <alloy::sol_types::sol_data::Uint<
128 256,
129 > as alloy_sol_types::SolType>::type_check(token)
130 }
131 #[inline]
132 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
133 <alloy::sol_types::sol_data::Uint<
134 256,
135 > as alloy_sol_types::SolType>::detokenize(token)
136 }
137 }
138 #[automatically_derived]
139 impl alloy_sol_types::EventTopic for BaseField {
140 #[inline]
141 fn topic_preimage_length(rust: &Self::RustType) -> usize {
142 <alloy::sol_types::sol_data::Uint<
143 256,
144 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
145 }
146 #[inline]
147 fn encode_topic_preimage(
148 rust: &Self::RustType,
149 out: &mut alloy_sol_types::private::Vec<u8>,
150 ) {
151 <alloy::sol_types::sol_data::Uint<
152 256,
153 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
154 }
155 #[inline]
156 fn encode_topic(
157 rust: &Self::RustType,
158 ) -> alloy_sol_types::abi::token::WordToken {
159 <alloy::sol_types::sol_data::Uint<
160 256,
161 > as alloy_sol_types::EventTopic>::encode_topic(rust)
162 }
163 }
164 };
165 #[derive(serde::Serialize, serde::Deserialize)]
166 #[derive(Default, Debug, PartialEq, Eq, Hash)]
167 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
168 #[derive(Clone)]
169 pub struct ScalarField(alloy::sol_types::private::primitives::aliases::U256);
170 const _: () = {
171 use alloy::sol_types as alloy_sol_types;
172 #[automatically_derived]
173 impl alloy_sol_types::private::SolTypeValue<ScalarField>
174 for alloy::sol_types::private::primitives::aliases::U256 {
175 #[inline]
176 fn stv_to_tokens(
177 &self,
178 ) -> <alloy::sol_types::sol_data::Uint<
179 256,
180 > as alloy_sol_types::SolType>::Token<'_> {
181 alloy_sol_types::private::SolTypeValue::<
182 alloy::sol_types::sol_data::Uint<256>,
183 >::stv_to_tokens(self)
184 }
185 #[inline]
186 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
187 <alloy::sol_types::sol_data::Uint<
188 256,
189 > as alloy_sol_types::SolType>::tokenize(self)
190 .0
191 }
192 #[inline]
193 fn stv_abi_encode_packed_to(
194 &self,
195 out: &mut alloy_sol_types::private::Vec<u8>,
196 ) {
197 <alloy::sol_types::sol_data::Uint<
198 256,
199 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
200 }
201 #[inline]
202 fn stv_abi_packed_encoded_size(&self) -> usize {
203 <alloy::sol_types::sol_data::Uint<
204 256,
205 > as alloy_sol_types::SolType>::abi_encoded_size(self)
206 }
207 }
208 impl ScalarField {
209 pub const NAME: &'static str = stringify!(@ name);
211 #[inline]
213 pub const fn from_underlying(
214 value: alloy::sol_types::private::primitives::aliases::U256,
215 ) -> Self {
216 Self(value)
217 }
218 #[inline]
220 pub const fn into_underlying(
221 self,
222 ) -> alloy::sol_types::private::primitives::aliases::U256 {
223 self.0
224 }
225 #[inline]
228 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
229 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
230 }
231 #[inline]
234 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
235 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
236 }
237 }
238 #[automatically_derived]
239 impl From<alloy::sol_types::private::primitives::aliases::U256> for ScalarField {
240 fn from(
241 value: alloy::sol_types::private::primitives::aliases::U256,
242 ) -> Self {
243 Self::from_underlying(value)
244 }
245 }
246 #[automatically_derived]
247 impl From<ScalarField> for alloy::sol_types::private::primitives::aliases::U256 {
248 fn from(value: ScalarField) -> Self {
249 value.into_underlying()
250 }
251 }
252 #[automatically_derived]
253 impl alloy_sol_types::SolType for ScalarField {
254 type RustType = alloy::sol_types::private::primitives::aliases::U256;
255 type Token<'a> = <alloy::sol_types::sol_data::Uint<
256 256,
257 > as alloy_sol_types::SolType>::Token<'a>;
258 const SOL_NAME: &'static str = Self::NAME;
259 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
260 256,
261 > as alloy_sol_types::SolType>::ENCODED_SIZE;
262 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
263 256,
264 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
265 #[inline]
266 fn valid_token(token: &Self::Token<'_>) -> bool {
267 Self::type_check(token).is_ok()
268 }
269 #[inline]
270 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
271 <alloy::sol_types::sol_data::Uint<
272 256,
273 > as alloy_sol_types::SolType>::type_check(token)
274 }
275 #[inline]
276 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
277 <alloy::sol_types::sol_data::Uint<
278 256,
279 > as alloy_sol_types::SolType>::detokenize(token)
280 }
281 }
282 #[automatically_derived]
283 impl alloy_sol_types::EventTopic for ScalarField {
284 #[inline]
285 fn topic_preimage_length(rust: &Self::RustType) -> usize {
286 <alloy::sol_types::sol_data::Uint<
287 256,
288 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
289 }
290 #[inline]
291 fn encode_topic_preimage(
292 rust: &Self::RustType,
293 out: &mut alloy_sol_types::private::Vec<u8>,
294 ) {
295 <alloy::sol_types::sol_data::Uint<
296 256,
297 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
298 }
299 #[inline]
300 fn encode_topic(
301 rust: &Self::RustType,
302 ) -> alloy_sol_types::abi::token::WordToken {
303 <alloy::sol_types::sol_data::Uint<
304 256,
305 > as alloy_sol_types::EventTopic>::encode_topic(rust)
306 }
307 }
308 };
309 #[derive(serde::Serialize, serde::Deserialize)]
310 #[derive(Default, Debug, PartialEq, Eq, Hash)]
311 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
315 #[derive(Clone)]
316 pub struct G1Point {
317 #[allow(missing_docs)]
318 pub x: <BaseField as alloy::sol_types::SolType>::RustType,
319 #[allow(missing_docs)]
320 pub y: <BaseField as alloy::sol_types::SolType>::RustType,
321 }
322 #[allow(
323 non_camel_case_types,
324 non_snake_case,
325 clippy::pub_underscore_fields,
326 clippy::style
327 )]
328 const _: () = {
329 use alloy::sol_types as alloy_sol_types;
330 #[doc(hidden)]
331 #[allow(dead_code)]
332 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
333 #[doc(hidden)]
334 type UnderlyingRustTuple<'a> = (
335 <BaseField as alloy::sol_types::SolType>::RustType,
336 <BaseField as alloy::sol_types::SolType>::RustType,
337 );
338 #[cfg(test)]
339 #[allow(dead_code, unreachable_patterns)]
340 fn _type_assertion(
341 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
342 ) {
343 match _t {
344 alloy_sol_types::private::AssertTypeEq::<
345 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
346 >(_) => {}
347 }
348 }
349 #[automatically_derived]
350 #[doc(hidden)]
351 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
352 fn from(value: G1Point) -> Self {
353 (value.x, value.y)
354 }
355 }
356 #[automatically_derived]
357 #[doc(hidden)]
358 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
359 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
360 Self { x: tuple.0, y: tuple.1 }
361 }
362 }
363 #[automatically_derived]
364 impl alloy_sol_types::SolValue for G1Point {
365 type SolType = Self;
366 }
367 #[automatically_derived]
368 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
369 #[inline]
370 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
371 (
372 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
373 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
374 )
375 }
376 #[inline]
377 fn stv_abi_encoded_size(&self) -> usize {
378 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
379 return size;
380 }
381 let tuple = <UnderlyingRustTuple<
382 '_,
383 > as ::core::convert::From<Self>>::from(self.clone());
384 <UnderlyingSolTuple<
385 '_,
386 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
387 }
388 #[inline]
389 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
390 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
391 }
392 #[inline]
393 fn stv_abi_encode_packed_to(
394 &self,
395 out: &mut alloy_sol_types::private::Vec<u8>,
396 ) {
397 let tuple = <UnderlyingRustTuple<
398 '_,
399 > as ::core::convert::From<Self>>::from(self.clone());
400 <UnderlyingSolTuple<
401 '_,
402 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
403 }
404 #[inline]
405 fn stv_abi_packed_encoded_size(&self) -> usize {
406 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
407 return size;
408 }
409 let tuple = <UnderlyingRustTuple<
410 '_,
411 > as ::core::convert::From<Self>>::from(self.clone());
412 <UnderlyingSolTuple<
413 '_,
414 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
415 }
416 }
417 #[automatically_derived]
418 impl alloy_sol_types::SolType for G1Point {
419 type RustType = Self;
420 type Token<'a> = <UnderlyingSolTuple<
421 'a,
422 > as alloy_sol_types::SolType>::Token<'a>;
423 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
424 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
425 '_,
426 > as alloy_sol_types::SolType>::ENCODED_SIZE;
427 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
428 '_,
429 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
430 #[inline]
431 fn valid_token(token: &Self::Token<'_>) -> bool {
432 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
433 }
434 #[inline]
435 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
436 let tuple = <UnderlyingSolTuple<
437 '_,
438 > as alloy_sol_types::SolType>::detokenize(token);
439 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
440 }
441 }
442 #[automatically_derived]
443 impl alloy_sol_types::SolStruct for G1Point {
444 const NAME: &'static str = "G1Point";
445 #[inline]
446 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
447 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
448 }
449 #[inline]
450 fn eip712_components() -> alloy_sol_types::private::Vec<
451 alloy_sol_types::private::Cow<'static, str>,
452 > {
453 alloy_sol_types::private::Vec::new()
454 }
455 #[inline]
456 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
457 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
458 }
459 #[inline]
460 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
461 [
462 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
463 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
464 ]
465 .concat()
466 }
467 }
468 #[automatically_derived]
469 impl alloy_sol_types::EventTopic for G1Point {
470 #[inline]
471 fn topic_preimage_length(rust: &Self::RustType) -> usize {
472 0usize
473 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
474 &rust.x,
475 )
476 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
477 &rust.y,
478 )
479 }
480 #[inline]
481 fn encode_topic_preimage(
482 rust: &Self::RustType,
483 out: &mut alloy_sol_types::private::Vec<u8>,
484 ) {
485 out.reserve(
486 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
487 );
488 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
489 &rust.x,
490 out,
491 );
492 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
493 &rust.y,
494 out,
495 );
496 }
497 #[inline]
498 fn encode_topic(
499 rust: &Self::RustType,
500 ) -> alloy_sol_types::abi::token::WordToken {
501 let mut out = alloy_sol_types::private::Vec::new();
502 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
503 rust,
504 &mut out,
505 );
506 alloy_sol_types::abi::token::WordToken(
507 alloy_sol_types::private::keccak256(out),
508 )
509 }
510 }
511 };
512 use alloy::contract as alloy_contract;
513 #[inline]
517 pub const fn new<
518 P: alloy_contract::private::Provider<N>,
519 N: alloy_contract::private::Network,
520 >(address: alloy_sol_types::private::Address, __provider: P) -> BN254Instance<P, N> {
521 BN254Instance::<P, N>::new(address, __provider)
522 }
523 #[derive(Clone)]
535 pub struct BN254Instance<P, N = alloy_contract::private::Ethereum> {
536 address: alloy_sol_types::private::Address,
537 provider: P,
538 _network: ::core::marker::PhantomData<N>,
539 }
540 #[automatically_derived]
541 impl<P, N> ::core::fmt::Debug for BN254Instance<P, N> {
542 #[inline]
543 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
544 f.debug_tuple("BN254Instance").field(&self.address).finish()
545 }
546 }
547 impl<
549 P: alloy_contract::private::Provider<N>,
550 N: alloy_contract::private::Network,
551 > BN254Instance<P, N> {
552 #[inline]
556 pub const fn new(
557 address: alloy_sol_types::private::Address,
558 __provider: P,
559 ) -> Self {
560 Self {
561 address,
562 provider: __provider,
563 _network: ::core::marker::PhantomData,
564 }
565 }
566 #[inline]
568 pub const fn address(&self) -> &alloy_sol_types::private::Address {
569 &self.address
570 }
571 #[inline]
573 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
574 self.address = address;
575 }
576 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
578 self.set_address(address);
579 self
580 }
581 #[inline]
583 pub const fn provider(&self) -> &P {
584 &self.provider
585 }
586 }
587 impl<P: ::core::clone::Clone, N> BN254Instance<&P, N> {
588 #[inline]
590 pub fn with_cloned_provider(self) -> BN254Instance<P, N> {
591 BN254Instance {
592 address: self.address,
593 provider: ::core::clone::Clone::clone(&self.provider),
594 _network: ::core::marker::PhantomData,
595 }
596 }
597 }
598 impl<
600 P: alloy_contract::private::Provider<N>,
601 N: alloy_contract::private::Network,
602 > BN254Instance<P, N> {
603 pub fn call_builder<C: alloy_sol_types::SolCall>(
608 &self,
609 call: &C,
610 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
611 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
612 }
613 }
614 impl<
616 P: alloy_contract::private::Provider<N>,
617 N: alloy_contract::private::Network,
618 > BN254Instance<P, N> {
619 pub fn event_filter<E: alloy_sol_types::SolEvent>(
624 &self,
625 ) -> alloy_contract::Event<&P, E, N> {
626 alloy_contract::Event::new_sol(&self.provider, &self.address)
627 }
628 }
629}
630#[allow(
640 non_camel_case_types,
641 non_snake_case,
642 clippy::pub_underscore_fields,
643 clippy::style,
644 clippy::empty_structs_with_brackets
645)]
646pub mod IPlonkVerifier {
647 use super::*;
648 use alloy::sol_types as alloy_sol_types;
649 #[derive(serde::Serialize, serde::Deserialize)]
650 #[derive()]
651 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
655 #[derive(Clone)]
656 pub struct PlonkProof {
657 #[allow(missing_docs)]
658 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
659 #[allow(missing_docs)]
660 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
661 #[allow(missing_docs)]
662 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
663 #[allow(missing_docs)]
664 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
665 #[allow(missing_docs)]
666 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
667 #[allow(missing_docs)]
668 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
669 #[allow(missing_docs)]
670 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
671 #[allow(missing_docs)]
672 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
673 #[allow(missing_docs)]
674 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
675 #[allow(missing_docs)]
676 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
677 #[allow(missing_docs)]
678 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
679 #[allow(missing_docs)]
680 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
681 #[allow(missing_docs)]
682 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
683 #[allow(missing_docs)]
684 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
685 #[allow(missing_docs)]
686 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
687 #[allow(missing_docs)]
688 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
689 #[allow(missing_docs)]
690 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
691 #[allow(missing_docs)]
692 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
693 #[allow(missing_docs)]
694 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
695 #[allow(missing_docs)]
696 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
697 #[allow(missing_docs)]
698 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
699 #[allow(missing_docs)]
700 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
701 #[allow(missing_docs)]
702 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
703 }
704 #[allow(
705 non_camel_case_types,
706 non_snake_case,
707 clippy::pub_underscore_fields,
708 clippy::style
709 )]
710 const _: () = {
711 use alloy::sol_types as alloy_sol_types;
712 #[doc(hidden)]
713 #[allow(dead_code)]
714 type UnderlyingSolTuple<'a> = (
715 BN254::G1Point,
716 BN254::G1Point,
717 BN254::G1Point,
718 BN254::G1Point,
719 BN254::G1Point,
720 BN254::G1Point,
721 BN254::G1Point,
722 BN254::G1Point,
723 BN254::G1Point,
724 BN254::G1Point,
725 BN254::G1Point,
726 BN254::G1Point,
727 BN254::G1Point,
728 BN254::ScalarField,
729 BN254::ScalarField,
730 BN254::ScalarField,
731 BN254::ScalarField,
732 BN254::ScalarField,
733 BN254::ScalarField,
734 BN254::ScalarField,
735 BN254::ScalarField,
736 BN254::ScalarField,
737 BN254::ScalarField,
738 );
739 #[doc(hidden)]
740 type UnderlyingRustTuple<'a> = (
741 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
742 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
743 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
744 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
745 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
746 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
747 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
748 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
749 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
750 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
751 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
752 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
753 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
754 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
755 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
756 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
757 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
758 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
759 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
760 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
761 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
762 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
763 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
764 );
765 #[cfg(test)]
766 #[allow(dead_code, unreachable_patterns)]
767 fn _type_assertion(
768 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
769 ) {
770 match _t {
771 alloy_sol_types::private::AssertTypeEq::<
772 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
773 >(_) => {}
774 }
775 }
776 #[automatically_derived]
777 #[doc(hidden)]
778 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
779 fn from(value: PlonkProof) -> Self {
780 (
781 value.wire0,
782 value.wire1,
783 value.wire2,
784 value.wire3,
785 value.wire4,
786 value.prodPerm,
787 value.split0,
788 value.split1,
789 value.split2,
790 value.split3,
791 value.split4,
792 value.zeta,
793 value.zetaOmega,
794 value.wireEval0,
795 value.wireEval1,
796 value.wireEval2,
797 value.wireEval3,
798 value.wireEval4,
799 value.sigmaEval0,
800 value.sigmaEval1,
801 value.sigmaEval2,
802 value.sigmaEval3,
803 value.prodPermZetaOmegaEval,
804 )
805 }
806 }
807 #[automatically_derived]
808 #[doc(hidden)]
809 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
810 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
811 Self {
812 wire0: tuple.0,
813 wire1: tuple.1,
814 wire2: tuple.2,
815 wire3: tuple.3,
816 wire4: tuple.4,
817 prodPerm: tuple.5,
818 split0: tuple.6,
819 split1: tuple.7,
820 split2: tuple.8,
821 split3: tuple.9,
822 split4: tuple.10,
823 zeta: tuple.11,
824 zetaOmega: tuple.12,
825 wireEval0: tuple.13,
826 wireEval1: tuple.14,
827 wireEval2: tuple.15,
828 wireEval3: tuple.16,
829 wireEval4: tuple.17,
830 sigmaEval0: tuple.18,
831 sigmaEval1: tuple.19,
832 sigmaEval2: tuple.20,
833 sigmaEval3: tuple.21,
834 prodPermZetaOmegaEval: tuple.22,
835 }
836 }
837 }
838 #[automatically_derived]
839 impl alloy_sol_types::SolValue for PlonkProof {
840 type SolType = Self;
841 }
842 #[automatically_derived]
843 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
844 #[inline]
845 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
846 (
847 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
848 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
849 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
850 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
851 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
852 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
853 &self.prodPerm,
854 ),
855 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
856 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
857 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
858 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
859 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
860 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
861 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
862 &self.zetaOmega,
863 ),
864 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
865 &self.wireEval0,
866 ),
867 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
868 &self.wireEval1,
869 ),
870 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
871 &self.wireEval2,
872 ),
873 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
874 &self.wireEval3,
875 ),
876 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
877 &self.wireEval4,
878 ),
879 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
880 &self.sigmaEval0,
881 ),
882 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
883 &self.sigmaEval1,
884 ),
885 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
886 &self.sigmaEval2,
887 ),
888 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
889 &self.sigmaEval3,
890 ),
891 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
892 &self.prodPermZetaOmegaEval,
893 ),
894 )
895 }
896 #[inline]
897 fn stv_abi_encoded_size(&self) -> usize {
898 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
899 return size;
900 }
901 let tuple = <UnderlyingRustTuple<
902 '_,
903 > as ::core::convert::From<Self>>::from(self.clone());
904 <UnderlyingSolTuple<
905 '_,
906 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
907 }
908 #[inline]
909 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
910 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
911 }
912 #[inline]
913 fn stv_abi_encode_packed_to(
914 &self,
915 out: &mut alloy_sol_types::private::Vec<u8>,
916 ) {
917 let tuple = <UnderlyingRustTuple<
918 '_,
919 > as ::core::convert::From<Self>>::from(self.clone());
920 <UnderlyingSolTuple<
921 '_,
922 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
923 }
924 #[inline]
925 fn stv_abi_packed_encoded_size(&self) -> usize {
926 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
927 return size;
928 }
929 let tuple = <UnderlyingRustTuple<
930 '_,
931 > as ::core::convert::From<Self>>::from(self.clone());
932 <UnderlyingSolTuple<
933 '_,
934 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
935 }
936 }
937 #[automatically_derived]
938 impl alloy_sol_types::SolType for PlonkProof {
939 type RustType = Self;
940 type Token<'a> = <UnderlyingSolTuple<
941 'a,
942 > as alloy_sol_types::SolType>::Token<'a>;
943 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
944 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
945 '_,
946 > as alloy_sol_types::SolType>::ENCODED_SIZE;
947 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
948 '_,
949 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
950 #[inline]
951 fn valid_token(token: &Self::Token<'_>) -> bool {
952 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
953 }
954 #[inline]
955 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
956 let tuple = <UnderlyingSolTuple<
957 '_,
958 > as alloy_sol_types::SolType>::detokenize(token);
959 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
960 }
961 }
962 #[automatically_derived]
963 impl alloy_sol_types::SolStruct for PlonkProof {
964 const NAME: &'static str = "PlonkProof";
965 #[inline]
966 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
967 alloy_sol_types::private::Cow::Borrowed(
968 "PlonkProof(G1Point wire0,G1Point wire1,G1Point wire2,G1Point wire3,G1Point wire4,G1Point prodPerm,G1Point split0,G1Point split1,G1Point split2,G1Point split3,G1Point split4,G1Point zeta,G1Point zetaOmega,uint256 wireEval0,uint256 wireEval1,uint256 wireEval2,uint256 wireEval3,uint256 wireEval4,uint256 sigmaEval0,uint256 sigmaEval1,uint256 sigmaEval2,uint256 sigmaEval3,uint256 prodPermZetaOmegaEval)",
969 )
970 }
971 #[inline]
972 fn eip712_components() -> alloy_sol_types::private::Vec<
973 alloy_sol_types::private::Cow<'static, str>,
974 > {
975 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
976 components
977 .push(
978 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
979 );
980 components
981 .extend(
982 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
983 );
984 components
985 .push(
986 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
987 );
988 components
989 .extend(
990 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
991 );
992 components
993 .push(
994 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
995 );
996 components
997 .extend(
998 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
999 );
1000 components
1001 .push(
1002 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1003 );
1004 components
1005 .extend(
1006 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1007 );
1008 components
1009 .push(
1010 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1011 );
1012 components
1013 .extend(
1014 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1015 );
1016 components
1017 .push(
1018 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1019 );
1020 components
1021 .extend(
1022 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1023 );
1024 components
1025 .push(
1026 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1027 );
1028 components
1029 .extend(
1030 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1031 );
1032 components
1033 .push(
1034 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1035 );
1036 components
1037 .extend(
1038 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1039 );
1040 components
1041 .push(
1042 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1043 );
1044 components
1045 .extend(
1046 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1047 );
1048 components
1049 .push(
1050 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1051 );
1052 components
1053 .extend(
1054 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1055 );
1056 components
1057 .push(
1058 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1059 );
1060 components
1061 .extend(
1062 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1063 );
1064 components
1065 .push(
1066 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1067 );
1068 components
1069 .extend(
1070 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1071 );
1072 components
1073 .push(
1074 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1075 );
1076 components
1077 .extend(
1078 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1079 );
1080 components
1081 }
1082 #[inline]
1083 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1084 [
1085 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1086 &self.wire0,
1087 )
1088 .0,
1089 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1090 &self.wire1,
1091 )
1092 .0,
1093 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1094 &self.wire2,
1095 )
1096 .0,
1097 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1098 &self.wire3,
1099 )
1100 .0,
1101 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1102 &self.wire4,
1103 )
1104 .0,
1105 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1106 &self.prodPerm,
1107 )
1108 .0,
1109 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1110 &self.split0,
1111 )
1112 .0,
1113 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1114 &self.split1,
1115 )
1116 .0,
1117 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1118 &self.split2,
1119 )
1120 .0,
1121 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1122 &self.split3,
1123 )
1124 .0,
1125 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1126 &self.split4,
1127 )
1128 .0,
1129 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1130 &self.zeta,
1131 )
1132 .0,
1133 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1134 &self.zetaOmega,
1135 )
1136 .0,
1137 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1138 &self.wireEval0,
1139 )
1140 .0,
1141 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1142 &self.wireEval1,
1143 )
1144 .0,
1145 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1146 &self.wireEval2,
1147 )
1148 .0,
1149 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1150 &self.wireEval3,
1151 )
1152 .0,
1153 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1154 &self.wireEval4,
1155 )
1156 .0,
1157 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1158 &self.sigmaEval0,
1159 )
1160 .0,
1161 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1162 &self.sigmaEval1,
1163 )
1164 .0,
1165 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1166 &self.sigmaEval2,
1167 )
1168 .0,
1169 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1170 &self.sigmaEval3,
1171 )
1172 .0,
1173 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1174 &self.prodPermZetaOmegaEval,
1175 )
1176 .0,
1177 ]
1178 .concat()
1179 }
1180 }
1181 #[automatically_derived]
1182 impl alloy_sol_types::EventTopic for PlonkProof {
1183 #[inline]
1184 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1185 0usize
1186 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1187 &rust.wire0,
1188 )
1189 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1190 &rust.wire1,
1191 )
1192 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1193 &rust.wire2,
1194 )
1195 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1196 &rust.wire3,
1197 )
1198 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1199 &rust.wire4,
1200 )
1201 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1202 &rust.prodPerm,
1203 )
1204 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1205 &rust.split0,
1206 )
1207 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1208 &rust.split1,
1209 )
1210 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1211 &rust.split2,
1212 )
1213 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1214 &rust.split3,
1215 )
1216 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1217 &rust.split4,
1218 )
1219 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1220 &rust.zeta,
1221 )
1222 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1223 &rust.zetaOmega,
1224 )
1225 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1226 &rust.wireEval0,
1227 )
1228 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1229 &rust.wireEval1,
1230 )
1231 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1232 &rust.wireEval2,
1233 )
1234 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1235 &rust.wireEval3,
1236 )
1237 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1238 &rust.wireEval4,
1239 )
1240 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1241 &rust.sigmaEval0,
1242 )
1243 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1244 &rust.sigmaEval1,
1245 )
1246 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1247 &rust.sigmaEval2,
1248 )
1249 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1250 &rust.sigmaEval3,
1251 )
1252 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1253 &rust.prodPermZetaOmegaEval,
1254 )
1255 }
1256 #[inline]
1257 fn encode_topic_preimage(
1258 rust: &Self::RustType,
1259 out: &mut alloy_sol_types::private::Vec<u8>,
1260 ) {
1261 out.reserve(
1262 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1263 );
1264 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1265 &rust.wire0,
1266 out,
1267 );
1268 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1269 &rust.wire1,
1270 out,
1271 );
1272 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1273 &rust.wire2,
1274 out,
1275 );
1276 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1277 &rust.wire3,
1278 out,
1279 );
1280 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1281 &rust.wire4,
1282 out,
1283 );
1284 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1285 &rust.prodPerm,
1286 out,
1287 );
1288 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1289 &rust.split0,
1290 out,
1291 );
1292 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1293 &rust.split1,
1294 out,
1295 );
1296 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1297 &rust.split2,
1298 out,
1299 );
1300 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1301 &rust.split3,
1302 out,
1303 );
1304 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1305 &rust.split4,
1306 out,
1307 );
1308 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1309 &rust.zeta,
1310 out,
1311 );
1312 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1313 &rust.zetaOmega,
1314 out,
1315 );
1316 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1317 &rust.wireEval0,
1318 out,
1319 );
1320 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1321 &rust.wireEval1,
1322 out,
1323 );
1324 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1325 &rust.wireEval2,
1326 out,
1327 );
1328 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1329 &rust.wireEval3,
1330 out,
1331 );
1332 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1333 &rust.wireEval4,
1334 out,
1335 );
1336 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1337 &rust.sigmaEval0,
1338 out,
1339 );
1340 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1341 &rust.sigmaEval1,
1342 out,
1343 );
1344 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1345 &rust.sigmaEval2,
1346 out,
1347 );
1348 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1349 &rust.sigmaEval3,
1350 out,
1351 );
1352 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1353 &rust.prodPermZetaOmegaEval,
1354 out,
1355 );
1356 }
1357 #[inline]
1358 fn encode_topic(
1359 rust: &Self::RustType,
1360 ) -> alloy_sol_types::abi::token::WordToken {
1361 let mut out = alloy_sol_types::private::Vec::new();
1362 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1363 rust,
1364 &mut out,
1365 );
1366 alloy_sol_types::abi::token::WordToken(
1367 alloy_sol_types::private::keccak256(out),
1368 )
1369 }
1370 }
1371 };
1372 #[derive(serde::Serialize, serde::Deserialize)]
1373 #[derive()]
1374 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1378 #[derive(Clone)]
1379 pub struct VerifyingKey {
1380 #[allow(missing_docs)]
1381 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
1382 #[allow(missing_docs)]
1383 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
1384 #[allow(missing_docs)]
1385 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1386 #[allow(missing_docs)]
1387 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1388 #[allow(missing_docs)]
1389 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1390 #[allow(missing_docs)]
1391 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1392 #[allow(missing_docs)]
1393 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1394 #[allow(missing_docs)]
1395 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1396 #[allow(missing_docs)]
1397 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1398 #[allow(missing_docs)]
1399 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1400 #[allow(missing_docs)]
1401 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1402 #[allow(missing_docs)]
1403 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1404 #[allow(missing_docs)]
1405 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1406 #[allow(missing_docs)]
1407 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1408 #[allow(missing_docs)]
1409 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1410 #[allow(missing_docs)]
1411 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1412 #[allow(missing_docs)]
1413 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1414 #[allow(missing_docs)]
1415 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1416 #[allow(missing_docs)]
1417 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1418 #[allow(missing_docs)]
1419 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1420 #[allow(missing_docs)]
1421 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
1422 #[allow(missing_docs)]
1423 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
1424 }
1425 #[allow(
1426 non_camel_case_types,
1427 non_snake_case,
1428 clippy::pub_underscore_fields,
1429 clippy::style
1430 )]
1431 const _: () = {
1432 use alloy::sol_types as alloy_sol_types;
1433 #[doc(hidden)]
1434 #[allow(dead_code)]
1435 type UnderlyingSolTuple<'a> = (
1436 alloy::sol_types::sol_data::Uint<256>,
1437 alloy::sol_types::sol_data::Uint<256>,
1438 BN254::G1Point,
1439 BN254::G1Point,
1440 BN254::G1Point,
1441 BN254::G1Point,
1442 BN254::G1Point,
1443 BN254::G1Point,
1444 BN254::G1Point,
1445 BN254::G1Point,
1446 BN254::G1Point,
1447 BN254::G1Point,
1448 BN254::G1Point,
1449 BN254::G1Point,
1450 BN254::G1Point,
1451 BN254::G1Point,
1452 BN254::G1Point,
1453 BN254::G1Point,
1454 BN254::G1Point,
1455 BN254::G1Point,
1456 alloy::sol_types::sol_data::FixedBytes<32>,
1457 alloy::sol_types::sol_data::FixedBytes<32>,
1458 );
1459 #[doc(hidden)]
1460 type UnderlyingRustTuple<'a> = (
1461 alloy::sol_types::private::primitives::aliases::U256,
1462 alloy::sol_types::private::primitives::aliases::U256,
1463 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1464 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1465 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1466 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1467 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1468 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1469 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1470 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1471 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1472 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1473 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1474 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1475 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1476 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1477 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1478 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1479 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1480 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1481 alloy::sol_types::private::FixedBytes<32>,
1482 alloy::sol_types::private::FixedBytes<32>,
1483 );
1484 #[cfg(test)]
1485 #[allow(dead_code, unreachable_patterns)]
1486 fn _type_assertion(
1487 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1488 ) {
1489 match _t {
1490 alloy_sol_types::private::AssertTypeEq::<
1491 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1492 >(_) => {}
1493 }
1494 }
1495 #[automatically_derived]
1496 #[doc(hidden)]
1497 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
1498 fn from(value: VerifyingKey) -> Self {
1499 (
1500 value.domainSize,
1501 value.numInputs,
1502 value.sigma0,
1503 value.sigma1,
1504 value.sigma2,
1505 value.sigma3,
1506 value.sigma4,
1507 value.q1,
1508 value.q2,
1509 value.q3,
1510 value.q4,
1511 value.qM12,
1512 value.qM34,
1513 value.qO,
1514 value.qC,
1515 value.qH1,
1516 value.qH2,
1517 value.qH3,
1518 value.qH4,
1519 value.qEcc,
1520 value.g2LSB,
1521 value.g2MSB,
1522 )
1523 }
1524 }
1525 #[automatically_derived]
1526 #[doc(hidden)]
1527 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
1528 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1529 Self {
1530 domainSize: tuple.0,
1531 numInputs: tuple.1,
1532 sigma0: tuple.2,
1533 sigma1: tuple.3,
1534 sigma2: tuple.4,
1535 sigma3: tuple.5,
1536 sigma4: tuple.6,
1537 q1: tuple.7,
1538 q2: tuple.8,
1539 q3: tuple.9,
1540 q4: tuple.10,
1541 qM12: tuple.11,
1542 qM34: tuple.12,
1543 qO: tuple.13,
1544 qC: tuple.14,
1545 qH1: tuple.15,
1546 qH2: tuple.16,
1547 qH3: tuple.17,
1548 qH4: tuple.18,
1549 qEcc: tuple.19,
1550 g2LSB: tuple.20,
1551 g2MSB: tuple.21,
1552 }
1553 }
1554 }
1555 #[automatically_derived]
1556 impl alloy_sol_types::SolValue for VerifyingKey {
1557 type SolType = Self;
1558 }
1559 #[automatically_derived]
1560 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
1561 #[inline]
1562 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1563 (
1564 <alloy::sol_types::sol_data::Uint<
1565 256,
1566 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
1567 <alloy::sol_types::sol_data::Uint<
1568 256,
1569 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
1570 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
1571 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
1572 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
1573 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
1574 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
1575 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
1576 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
1577 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
1578 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
1579 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
1580 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
1581 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
1582 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
1583 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
1584 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
1585 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
1586 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
1587 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
1588 <alloy::sol_types::sol_data::FixedBytes<
1589 32,
1590 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
1591 <alloy::sol_types::sol_data::FixedBytes<
1592 32,
1593 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
1594 )
1595 }
1596 #[inline]
1597 fn stv_abi_encoded_size(&self) -> usize {
1598 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1599 return size;
1600 }
1601 let tuple = <UnderlyingRustTuple<
1602 '_,
1603 > as ::core::convert::From<Self>>::from(self.clone());
1604 <UnderlyingSolTuple<
1605 '_,
1606 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1607 }
1608 #[inline]
1609 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1610 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1611 }
1612 #[inline]
1613 fn stv_abi_encode_packed_to(
1614 &self,
1615 out: &mut alloy_sol_types::private::Vec<u8>,
1616 ) {
1617 let tuple = <UnderlyingRustTuple<
1618 '_,
1619 > as ::core::convert::From<Self>>::from(self.clone());
1620 <UnderlyingSolTuple<
1621 '_,
1622 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1623 }
1624 #[inline]
1625 fn stv_abi_packed_encoded_size(&self) -> usize {
1626 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1627 return size;
1628 }
1629 let tuple = <UnderlyingRustTuple<
1630 '_,
1631 > as ::core::convert::From<Self>>::from(self.clone());
1632 <UnderlyingSolTuple<
1633 '_,
1634 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1635 }
1636 }
1637 #[automatically_derived]
1638 impl alloy_sol_types::SolType for VerifyingKey {
1639 type RustType = Self;
1640 type Token<'a> = <UnderlyingSolTuple<
1641 'a,
1642 > as alloy_sol_types::SolType>::Token<'a>;
1643 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1644 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1645 '_,
1646 > as alloy_sol_types::SolType>::ENCODED_SIZE;
1647 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1648 '_,
1649 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1650 #[inline]
1651 fn valid_token(token: &Self::Token<'_>) -> bool {
1652 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1653 }
1654 #[inline]
1655 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1656 let tuple = <UnderlyingSolTuple<
1657 '_,
1658 > as alloy_sol_types::SolType>::detokenize(token);
1659 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1660 }
1661 }
1662 #[automatically_derived]
1663 impl alloy_sol_types::SolStruct for VerifyingKey {
1664 const NAME: &'static str = "VerifyingKey";
1665 #[inline]
1666 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1667 alloy_sol_types::private::Cow::Borrowed(
1668 "VerifyingKey(uint256 domainSize,uint256 numInputs,G1Point sigma0,G1Point sigma1,G1Point sigma2,G1Point sigma3,G1Point sigma4,G1Point q1,G1Point q2,G1Point q3,G1Point q4,G1Point qM12,G1Point qM34,G1Point qO,G1Point qC,G1Point qH1,G1Point qH2,G1Point qH3,G1Point qH4,G1Point qEcc,bytes32 g2LSB,bytes32 g2MSB)",
1669 )
1670 }
1671 #[inline]
1672 fn eip712_components() -> alloy_sol_types::private::Vec<
1673 alloy_sol_types::private::Cow<'static, str>,
1674 > {
1675 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
1676 components
1677 .push(
1678 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1679 );
1680 components
1681 .extend(
1682 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1683 );
1684 components
1685 .push(
1686 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1687 );
1688 components
1689 .extend(
1690 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1691 );
1692 components
1693 .push(
1694 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1695 );
1696 components
1697 .extend(
1698 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1699 );
1700 components
1701 .push(
1702 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1703 );
1704 components
1705 .extend(
1706 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1707 );
1708 components
1709 .push(
1710 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1711 );
1712 components
1713 .extend(
1714 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1715 );
1716 components
1717 .push(
1718 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1719 );
1720 components
1721 .extend(
1722 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1723 );
1724 components
1725 .push(
1726 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1727 );
1728 components
1729 .extend(
1730 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1731 );
1732 components
1733 .push(
1734 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1735 );
1736 components
1737 .extend(
1738 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1739 );
1740 components
1741 .push(
1742 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1743 );
1744 components
1745 .extend(
1746 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1747 );
1748 components
1749 .push(
1750 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1751 );
1752 components
1753 .extend(
1754 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1755 );
1756 components
1757 .push(
1758 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1759 );
1760 components
1761 .extend(
1762 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1763 );
1764 components
1765 .push(
1766 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1767 );
1768 components
1769 .extend(
1770 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1771 );
1772 components
1773 .push(
1774 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1775 );
1776 components
1777 .extend(
1778 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1779 );
1780 components
1781 .push(
1782 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1783 );
1784 components
1785 .extend(
1786 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1787 );
1788 components
1789 .push(
1790 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1791 );
1792 components
1793 .extend(
1794 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1795 );
1796 components
1797 .push(
1798 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1799 );
1800 components
1801 .extend(
1802 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1803 );
1804 components
1805 .push(
1806 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1807 );
1808 components
1809 .extend(
1810 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1811 );
1812 components
1813 .push(
1814 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1815 );
1816 components
1817 .extend(
1818 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1819 );
1820 components
1821 }
1822 #[inline]
1823 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1824 [
1825 <alloy::sol_types::sol_data::Uint<
1826 256,
1827 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
1828 .0,
1829 <alloy::sol_types::sol_data::Uint<
1830 256,
1831 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
1832 .0,
1833 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1834 &self.sigma0,
1835 )
1836 .0,
1837 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1838 &self.sigma1,
1839 )
1840 .0,
1841 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1842 &self.sigma2,
1843 )
1844 .0,
1845 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1846 &self.sigma3,
1847 )
1848 .0,
1849 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1850 &self.sigma4,
1851 )
1852 .0,
1853 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1854 &self.q1,
1855 )
1856 .0,
1857 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1858 &self.q2,
1859 )
1860 .0,
1861 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1862 &self.q3,
1863 )
1864 .0,
1865 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1866 &self.q4,
1867 )
1868 .0,
1869 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1870 &self.qM12,
1871 )
1872 .0,
1873 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1874 &self.qM34,
1875 )
1876 .0,
1877 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1878 &self.qO,
1879 )
1880 .0,
1881 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1882 &self.qC,
1883 )
1884 .0,
1885 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1886 &self.qH1,
1887 )
1888 .0,
1889 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1890 &self.qH2,
1891 )
1892 .0,
1893 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1894 &self.qH3,
1895 )
1896 .0,
1897 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1898 &self.qH4,
1899 )
1900 .0,
1901 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1902 &self.qEcc,
1903 )
1904 .0,
1905 <alloy::sol_types::sol_data::FixedBytes<
1906 32,
1907 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
1908 .0,
1909 <alloy::sol_types::sol_data::FixedBytes<
1910 32,
1911 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
1912 .0,
1913 ]
1914 .concat()
1915 }
1916 }
1917 #[automatically_derived]
1918 impl alloy_sol_types::EventTopic for VerifyingKey {
1919 #[inline]
1920 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1921 0usize
1922 + <alloy::sol_types::sol_data::Uint<
1923 256,
1924 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1925 &rust.domainSize,
1926 )
1927 + <alloy::sol_types::sol_data::Uint<
1928 256,
1929 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1930 &rust.numInputs,
1931 )
1932 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1933 &rust.sigma0,
1934 )
1935 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1936 &rust.sigma1,
1937 )
1938 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1939 &rust.sigma2,
1940 )
1941 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1942 &rust.sigma3,
1943 )
1944 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1945 &rust.sigma4,
1946 )
1947 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1948 &rust.q1,
1949 )
1950 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1951 &rust.q2,
1952 )
1953 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1954 &rust.q3,
1955 )
1956 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1957 &rust.q4,
1958 )
1959 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1960 &rust.qM12,
1961 )
1962 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1963 &rust.qM34,
1964 )
1965 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1966 &rust.qO,
1967 )
1968 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1969 &rust.qC,
1970 )
1971 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1972 &rust.qH1,
1973 )
1974 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1975 &rust.qH2,
1976 )
1977 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1978 &rust.qH3,
1979 )
1980 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1981 &rust.qH4,
1982 )
1983 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1984 &rust.qEcc,
1985 )
1986 + <alloy::sol_types::sol_data::FixedBytes<
1987 32,
1988 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
1989 + <alloy::sol_types::sol_data::FixedBytes<
1990 32,
1991 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
1992 }
1993 #[inline]
1994 fn encode_topic_preimage(
1995 rust: &Self::RustType,
1996 out: &mut alloy_sol_types::private::Vec<u8>,
1997 ) {
1998 out.reserve(
1999 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
2000 );
2001 <alloy::sol_types::sol_data::Uint<
2002 256,
2003 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2004 &rust.domainSize,
2005 out,
2006 );
2007 <alloy::sol_types::sol_data::Uint<
2008 256,
2009 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2010 &rust.numInputs,
2011 out,
2012 );
2013 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2014 &rust.sigma0,
2015 out,
2016 );
2017 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2018 &rust.sigma1,
2019 out,
2020 );
2021 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2022 &rust.sigma2,
2023 out,
2024 );
2025 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2026 &rust.sigma3,
2027 out,
2028 );
2029 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2030 &rust.sigma4,
2031 out,
2032 );
2033 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2034 &rust.q1,
2035 out,
2036 );
2037 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2038 &rust.q2,
2039 out,
2040 );
2041 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2042 &rust.q3,
2043 out,
2044 );
2045 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2046 &rust.q4,
2047 out,
2048 );
2049 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2050 &rust.qM12,
2051 out,
2052 );
2053 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2054 &rust.qM34,
2055 out,
2056 );
2057 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2058 &rust.qO,
2059 out,
2060 );
2061 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2062 &rust.qC,
2063 out,
2064 );
2065 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2066 &rust.qH1,
2067 out,
2068 );
2069 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2070 &rust.qH2,
2071 out,
2072 );
2073 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2074 &rust.qH3,
2075 out,
2076 );
2077 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2078 &rust.qH4,
2079 out,
2080 );
2081 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2082 &rust.qEcc,
2083 out,
2084 );
2085 <alloy::sol_types::sol_data::FixedBytes<
2086 32,
2087 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2088 &rust.g2LSB,
2089 out,
2090 );
2091 <alloy::sol_types::sol_data::FixedBytes<
2092 32,
2093 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2094 &rust.g2MSB,
2095 out,
2096 );
2097 }
2098 #[inline]
2099 fn encode_topic(
2100 rust: &Self::RustType,
2101 ) -> alloy_sol_types::abi::token::WordToken {
2102 let mut out = alloy_sol_types::private::Vec::new();
2103 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
2104 rust,
2105 &mut out,
2106 );
2107 alloy_sol_types::abi::token::WordToken(
2108 alloy_sol_types::private::keccak256(out),
2109 )
2110 }
2111 }
2112 };
2113 use alloy::contract as alloy_contract;
2114 #[inline]
2118 pub const fn new<
2119 P: alloy_contract::private::Provider<N>,
2120 N: alloy_contract::private::Network,
2121 >(
2122 address: alloy_sol_types::private::Address,
2123 __provider: P,
2124 ) -> IPlonkVerifierInstance<P, N> {
2125 IPlonkVerifierInstance::<P, N>::new(address, __provider)
2126 }
2127 #[derive(Clone)]
2139 pub struct IPlonkVerifierInstance<P, N = alloy_contract::private::Ethereum> {
2140 address: alloy_sol_types::private::Address,
2141 provider: P,
2142 _network: ::core::marker::PhantomData<N>,
2143 }
2144 #[automatically_derived]
2145 impl<P, N> ::core::fmt::Debug for IPlonkVerifierInstance<P, N> {
2146 #[inline]
2147 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2148 f.debug_tuple("IPlonkVerifierInstance").field(&self.address).finish()
2149 }
2150 }
2151 impl<
2153 P: alloy_contract::private::Provider<N>,
2154 N: alloy_contract::private::Network,
2155 > IPlonkVerifierInstance<P, N> {
2156 #[inline]
2160 pub const fn new(
2161 address: alloy_sol_types::private::Address,
2162 __provider: P,
2163 ) -> Self {
2164 Self {
2165 address,
2166 provider: __provider,
2167 _network: ::core::marker::PhantomData,
2168 }
2169 }
2170 #[inline]
2172 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2173 &self.address
2174 }
2175 #[inline]
2177 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2178 self.address = address;
2179 }
2180 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2182 self.set_address(address);
2183 self
2184 }
2185 #[inline]
2187 pub const fn provider(&self) -> &P {
2188 &self.provider
2189 }
2190 }
2191 impl<P: ::core::clone::Clone, N> IPlonkVerifierInstance<&P, N> {
2192 #[inline]
2194 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<P, N> {
2195 IPlonkVerifierInstance {
2196 address: self.address,
2197 provider: ::core::clone::Clone::clone(&self.provider),
2198 _network: ::core::marker::PhantomData,
2199 }
2200 }
2201 }
2202 impl<
2204 P: alloy_contract::private::Provider<N>,
2205 N: alloy_contract::private::Network,
2206 > IPlonkVerifierInstance<P, N> {
2207 pub fn call_builder<C: alloy_sol_types::SolCall>(
2212 &self,
2213 call: &C,
2214 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
2215 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2216 }
2217 }
2218 impl<
2220 P: alloy_contract::private::Provider<N>,
2221 N: alloy_contract::private::Network,
2222 > IPlonkVerifierInstance<P, N> {
2223 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2228 &self,
2229 ) -> alloy_contract::Event<&P, E, N> {
2230 alloy_contract::Event::new_sol(&self.provider, &self.address)
2231 }
2232 }
2233}
2234#[allow(
3001 non_camel_case_types,
3002 non_snake_case,
3003 clippy::pub_underscore_fields,
3004 clippy::style,
3005 clippy::empty_structs_with_brackets
3006)]
3007pub mod PlonkVerifier {
3008 use super::*;
3009 use alloy::sol_types as alloy_sol_types;
3010 #[rustfmt::skip]
3016 #[allow(clippy::all)]
3017 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3018 b"a!~a\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\x004W_5`\xE0\x1C\x80c\xCESzw\x14a\08W[__\xFD[a\0Ka\0F6`\x04a\x1F\x0CV[a\0_V[`@Q\x90\x15\x15\x81R` \x01`@Q\x80\x91\x03\x90\xF3[_a\0i\x82a\0\xD0V[a\0y\x83_[` \x02\x01Qa\x02\x0BV[a\0\x84\x83`\x01a\0oV[a\0\x8F\x83`\x02a\0oV[a\0\x9A\x83`\x03a\0oV[a\0\xA5\x83`\x04a\0oV[a\0\xB0\x83`\x05a\0oV[a\0\xBB\x83`\x06a\0oV[a\0\xC6\x84\x84\x84a\x02=V[\x90P[\x93\x92PPPV[\x80Qa\0\xDB\x90a\x041V[a\0\xE8\x81` \x01Qa\x041V[a\0\xF5\x81`@\x01Qa\x041V[a\x01\x02\x81``\x01Qa\x041V[a\x01\x0F\x81`\x80\x01Qa\x041V[a\x01\x1C\x81`\xA0\x01Qa\x041V[a\x01)\x81`\xC0\x01Qa\x041V[a\x016\x81`\xE0\x01Qa\x041V[a\x01D\x81a\x01\0\x01Qa\x041V[a\x01R\x81a\x01 \x01Qa\x041V[a\x01`\x81a\x01@\x01Qa\x041V[a\x01n\x81a\x01`\x01Qa\x041V[a\x01|\x81a\x01\x80\x01Qa\x041V[a\x01\x8A\x81a\x01\xA0\x01Qa\x02\x0BV[a\x01\x98\x81a\x01\xC0\x01Qa\x02\x0BV[a\x01\xA6\x81a\x01\xE0\x01Qa\x02\x0BV[a\x01\xB4\x81a\x02\0\x01Qa\x02\x0BV[a\x01\xC2\x81a\x02 \x01Qa\x02\x0BV[a\x01\xD0\x81a\x02@\x01Qa\x02\x0BV[a\x01\xDE\x81a\x02`\x01Qa\x02\x0BV[a\x01\xEC\x81a\x02\x80\x01Qa\x02\x0BV[a\x01\xFA\x81a\x02\xA0\x01Qa\x02\x0BV[a\x02\x08\x81a\x02\xC0\x01Qa\x02\x0BV[PV[_Q` a!R_9_Q\x90_R\x81\x10\x80a\x029W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x07\x14a\x02cW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x02o\x85\x85\x85a\x04\xB0V[\x90P_a\x02~\x86_\x01Qa\n\x10V[\x90P_a\x02\x90\x82\x84`\xA0\x01Q\x88a\r\xEEV[\x90Pa\x02\xAD`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x02\xE1\x87a\x01`\x01Qa\x02\xDC\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x0EKV[a\x0E\xAEV[\x91P__a\x02\xF1\x8B\x88\x87\x8Ca\x0F\x15V[\x91P\x91Pa\x03\x02\x81a\x02\xDC\x84a\x11MV[\x92Pa\x03\x1B\x83a\x02\xDC\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x0EKV[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a!R_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x03^\x85a\x02\xDC\x8Da\x01\x80\x01Q\x84a\x0EKV[\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\x04\x1F\x87\x82a\x04\x12\x89a\x11MV[a\x04\x1Aa\x11\xEAV[a\x12\xB7V[\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\x04jWPPPV[\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\x04\xABW`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x04\xF0`@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!R_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\x84Q\x80Qa\x06`\x83\x01R` \x81\x01Qa\x06\x80\x83\x01RP` \x85\x01Q\x80Qa\x06\xA0\x83\x01R` \x81\x01Qa\x06\xC0\x83\x01RP`@\x85\x01Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP``\x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`\x80\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP_\x82Ra\x07\xC0\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\n\x18a\x1B\xE9V[\x81b\x01\0\0\x03a\x0BWW`@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\x80`\xE0\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\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x0C\x97W`@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\x80`\xE0\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\\\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\r\xD5W`@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\x80`\xE0\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\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\x0F`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x0E\x19\x84\x84a\x13hV[\x80\x82Ra\x0E)\x90\x85\x90\x85\x90a\x13\xB9V[` \x82\x01R\x80Qa\x0E?\x90\x85\x90\x84\x90\x86\x90a\x14(V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0Efa\x1C\rV[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x0E\xA6W`@Qc\x03;qM`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0E\xC9a\x1C+V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x80\x84\x01\x91\x90\x91R\x90\x84\x01Q``\x83\x01R_\x90\x83`\x80\x84`\x06Z\xFA\x90P\x80a\x0E\xA6W`@Qc0*\xED\xB5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x0FH\x87\x87\x87\x87a\x15vV[\x90P_Q` a!R_9_Q\x90_R_a\x0Fd\x88\x87\x89a\x1A@V[\x90Pa\x0Fp\x81\x83a \xF9V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x0F\x9C\x85a\x02\xDC\x8A_\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x0F\xC4\x86a\x02\xDC\x8A` \x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x0F\xEC\x86a\x02\xDC\x8A`@\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x14\x86a\x02\xDC\x8A``\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x10<\x86a\x02\xDC\x8A`\x80\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x10d\x86a\x02\xDC\x8D`@\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x8C\x86a\x02\xDC\x8D``\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xB4\x86a\x02\xDC\x8D`\x80\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xDC\x86a\x02\xDC\x8D`\xA0\x01Q\x84a\x0EKV[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x11\x06\x87a\x02\xDC\x8B`\xA0\x01Q\x84a\x0EKV[\x96Pa\x11<a\x116`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x0EKV[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x11tWP\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\x11\xB8\x91\x90a!2V[a\x11\xE2\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa \xF9V[\x90R\x92\x91PPV[a\x12\x11`@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\x13ZW`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a!R_9_Q\x90_R\x90\x83\x80\x15a\x13\xA9W\x84\x93P_[\x82\x81\x10\x15a\x13\x9DW\x83\x85\x86\t\x94P`\x01\x01a\x13\x87V[P`\x01\x84\x03\x93Pa\x13\xB0V[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x13\xCAWP`\x01a\0\xC9V[\x81_\x03a\x13\xD8WP_a\0\xC9V[` \x84\x01Q_Q` a!R_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x14\x06W`\x01\x87\x03\x92Pa\x14\rV[`\x01\x84\x03\x92P[Pa\x14\x17\x82a\x1B+V[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a!R_9_Q\x90_R\x82\x82\x03a\x14\xA1W`\x01_[`\x07\x81\x10\x15a\x14\x96W\x81\x86\x03a\x14sW\x86\x81`\x07\x81\x10a\x14dWa\x14da \xE5V[` \x02\x01Q\x93PPPPa\x13`V[\x82\x80a\x14\x81Wa\x14\x81a!\x1EV[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x14BV[P_\x92PPPa\x13`V[a\x14\xA9a\x1CIV[`@\x87\x01Q`\x01`\xC0\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x07\x81\x10\x15a\x14\xEAW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x14\xBDV[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x07\x81\x10\x15a\x15>W\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\x14\xFEV[PPPP\x80\x92PP_a\x15P\x83a\x1B+V[\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!R_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\x16\xE3\x87`\xA0\x01Q\x86a\x0EKV[\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\x17\xAA\x86a\x02\xDC\x8C`\xC0\x01Q\x88\x85a\x17\xA5\x91\x90a \xF9V[a\x0EKV[\x95Pa\x17\xC3\x86a\x02\xDC\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x0EKV[\x95Pa\x17\xDD\x86a\x02\xDC\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x0EKV[\x95Pa\x17\xF7\x86a\x02\xDC\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x0EKV[\x95Pa\x18\x11\x86a\x02\xDC\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x0EKV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x186\x86a\x02\xDC\x8Ca\x01`\x01Q\x86a\x0EKV[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x18[\x86a\x02\xDC\x8Ca\x01\x80\x01Q\x86a\x0EKV[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\x8A\x86a\x02\xDC\x8Ca\x01\xE0\x01Q\x86a\x0EKV[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\xB9\x86a\x02\xDC\x8Ca\x02\0\x01Q\x86a\x0EKV[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\xE8\x86a\x02\xDC\x8Ca\x02 \x01Q\x86a\x0EKV[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19\x17\x86a\x02\xDC\x8Ca\x02@\x01Q\x86a\x0EKV[\x95Pa\x194\x86a\x02\xDC\x8Ca\x01\xA0\x01Qa\x17\xA5\x8Ba\x02 \x01Qa\x1B\xBDV[\x95Pa\x19E\x86\x8Ba\x01\xC0\x01Qa\x0E\xAEV[\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\x19\x8B\x86a\x02\xDC\x8Ca\x02`\x01Q\x86a\x0EKV[\x95Pa\x19\x99\x88_\x01Qa\x1B\xBDV[\x94Pa\x19\xAD\x86a\x02\xDC\x89`\xC0\x01Q\x88a\x0EKV[\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\x19\xE1\x86a\x02\xDC\x89`\xE0\x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x19\xFC\x86a\x02\xDC\x89a\x01\0\x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x1A\x17\x86a\x02\xDC\x89a\x01 \x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x1A2\x86a\x02\xDC\x89a\x01@\x01Q\x88a\x0EKV[\x9A\x99PPPPPPPPPPV[___Q` a!R_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[_\x81_\x03a\x1BLW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a!R_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\x1B\xB6W`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a!R_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1B\xE0W\x83\x82\x03\x92Pa\x1B\xB6V[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1C\x08a\x1CIV[\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\x80`\xE0\x01`@R\x80`\x07\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\x1C\x9FWa\x1C\x9Fa\x1CgV[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1C\x9FWa\x1C\x9Fa\x1CgV[_`@\x82\x84\x03\x12\x15a\x1C\xD9W__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1C\xFCWa\x1C\xFCa\x1CgV[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\x1D%W__\xFD[`@Q`\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1DHWa\x1DHa\x1CgV[`@R\x80`\xE0\x84\x01\x85\x81\x11\x15a\x1D\\W__\xFD[\x84[\x81\x81\x10\x15a\x1DvW\x805\x83R` \x92\x83\x01\x92\x01a\x1D^V[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\x1D\x92W__\xFD[a\x1D\x9Aa\x1C{V[\x90Pa\x1D\xA6\x83\x83a\x1C\xC9V[\x81Ra\x1D\xB5\x83`@\x84\x01a\x1C\xC9V[` \x82\x01Ra\x1D\xC7\x83`\x80\x84\x01a\x1C\xC9V[`@\x82\x01Ra\x1D\xD9\x83`\xC0\x84\x01a\x1C\xC9V[``\x82\x01Ra\x1D\xEC\x83a\x01\0\x84\x01a\x1C\xC9V[`\x80\x82\x01Ra\x1D\xFF\x83a\x01@\x84\x01a\x1C\xC9V[`\xA0\x82\x01Ra\x1E\x12\x83a\x01\x80\x84\x01a\x1C\xC9V[`\xC0\x82\x01Ra\x1E%\x83a\x01\xC0\x84\x01a\x1C\xC9V[`\xE0\x82\x01Ra\x1E8\x83a\x02\0\x84\x01a\x1C\xC9V[a\x01\0\x82\x01Ra\x1EL\x83a\x02@\x84\x01a\x1C\xC9V[a\x01 \x82\x01Ra\x1E`\x83a\x02\x80\x84\x01a\x1C\xC9V[a\x01@\x82\x01Ra\x1Et\x83a\x02\xC0\x84\x01a\x1C\xC9V[a\x01`\x82\x01Ra\x1E\x88\x83a\x03\0\x84\x01a\x1C\xC9V[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`\x81\x12\x15a\x1F W__\xFD[a\x05\0\x81\x12\x15a\x1F.W__\xFD[Pa\x1F7a\x1C\xA5V[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra\x1FR\x86`@\x87\x01a\x1C\xC9V[`@\x82\x01Ra\x1Fd\x86`\x80\x87\x01a\x1C\xC9V[``\x82\x01Ra\x1Fv\x86`\xC0\x87\x01a\x1C\xC9V[`\x80\x82\x01Ra\x1F\x89\x86a\x01\0\x87\x01a\x1C\xC9V[`\xA0\x82\x01Ra\x1F\x9C\x86a\x01@\x87\x01a\x1C\xC9V[`\xC0\x82\x01Ra\x1F\xAF\x86a\x01\x80\x87\x01a\x1C\xC9V[`\xE0\x82\x01Ra\x1F\xC2\x86a\x01\xC0\x87\x01a\x1C\xC9V[a\x01\0\x82\x01Ra\x1F\xD6\x86a\x02\0\x87\x01a\x1C\xC9V[a\x01 \x82\x01Ra\x1F\xEA\x86a\x02@\x87\x01a\x1C\xC9V[a\x01@\x82\x01Ra\x1F\xFE\x86a\x02\x80\x87\x01a\x1C\xC9V[a\x01`\x82\x01Ra \x12\x86a\x02\xC0\x87\x01a\x1C\xC9V[a\x01\x80\x82\x01Ra &\x86a\x03\0\x87\x01a\x1C\xC9V[a\x01\xA0\x82\x01Ra :\x86a\x03@\x87\x01a\x1C\xC9V[a\x01\xC0\x82\x01Ra N\x86a\x03\x80\x87\x01a\x1C\xC9V[a\x01\xE0\x82\x01Ra b\x86a\x03\xC0\x87\x01a\x1C\xC9V[a\x02\0\x82\x01Ra v\x86a\x04\0\x87\x01a\x1C\xC9V[a\x02 \x82\x01Ra \x8A\x86a\x04@\x87\x01a\x1C\xC9V[a\x02@\x82\x01Ra \x9E\x86a\x04\x80\x87\x01a\x1C\xC9V[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa \xCC\x85a\x05\0\x86\x01a\x1D\x16V[\x91Pa \xDC\x85a\x05\xE0\x86\x01a\x1D\x81V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a!\x18WcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a!LWcNH{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",
3019 );
3020 #[rustfmt::skip]
3026 #[allow(clippy::all)]
3027 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3028 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\x004W_5`\xE0\x1C\x80c\xCESzw\x14a\08W[__\xFD[a\0Ka\0F6`\x04a\x1F\x0CV[a\0_V[`@Q\x90\x15\x15\x81R` \x01`@Q\x80\x91\x03\x90\xF3[_a\0i\x82a\0\xD0V[a\0y\x83_[` \x02\x01Qa\x02\x0BV[a\0\x84\x83`\x01a\0oV[a\0\x8F\x83`\x02a\0oV[a\0\x9A\x83`\x03a\0oV[a\0\xA5\x83`\x04a\0oV[a\0\xB0\x83`\x05a\0oV[a\0\xBB\x83`\x06a\0oV[a\0\xC6\x84\x84\x84a\x02=V[\x90P[\x93\x92PPPV[\x80Qa\0\xDB\x90a\x041V[a\0\xE8\x81` \x01Qa\x041V[a\0\xF5\x81`@\x01Qa\x041V[a\x01\x02\x81``\x01Qa\x041V[a\x01\x0F\x81`\x80\x01Qa\x041V[a\x01\x1C\x81`\xA0\x01Qa\x041V[a\x01)\x81`\xC0\x01Qa\x041V[a\x016\x81`\xE0\x01Qa\x041V[a\x01D\x81a\x01\0\x01Qa\x041V[a\x01R\x81a\x01 \x01Qa\x041V[a\x01`\x81a\x01@\x01Qa\x041V[a\x01n\x81a\x01`\x01Qa\x041V[a\x01|\x81a\x01\x80\x01Qa\x041V[a\x01\x8A\x81a\x01\xA0\x01Qa\x02\x0BV[a\x01\x98\x81a\x01\xC0\x01Qa\x02\x0BV[a\x01\xA6\x81a\x01\xE0\x01Qa\x02\x0BV[a\x01\xB4\x81a\x02\0\x01Qa\x02\x0BV[a\x01\xC2\x81a\x02 \x01Qa\x02\x0BV[a\x01\xD0\x81a\x02@\x01Qa\x02\x0BV[a\x01\xDE\x81a\x02`\x01Qa\x02\x0BV[a\x01\xEC\x81a\x02\x80\x01Qa\x02\x0BV[a\x01\xFA\x81a\x02\xA0\x01Qa\x02\x0BV[a\x02\x08\x81a\x02\xC0\x01Qa\x02\x0BV[PV[_Q` a!R_9_Q\x90_R\x81\x10\x80a\x029W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x07\x14a\x02cW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x02o\x85\x85\x85a\x04\xB0V[\x90P_a\x02~\x86_\x01Qa\n\x10V[\x90P_a\x02\x90\x82\x84`\xA0\x01Q\x88a\r\xEEV[\x90Pa\x02\xAD`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x02\xE1\x87a\x01`\x01Qa\x02\xDC\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x0EKV[a\x0E\xAEV[\x91P__a\x02\xF1\x8B\x88\x87\x8Ca\x0F\x15V[\x91P\x91Pa\x03\x02\x81a\x02\xDC\x84a\x11MV[\x92Pa\x03\x1B\x83a\x02\xDC\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x0EKV[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a!R_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x03^\x85a\x02\xDC\x8Da\x01\x80\x01Q\x84a\x0EKV[\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\x04\x1F\x87\x82a\x04\x12\x89a\x11MV[a\x04\x1Aa\x11\xEAV[a\x12\xB7V[\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\x04jWPPPV[\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\x04\xABW`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x04\xF0`@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!R_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\x84Q\x80Qa\x06`\x83\x01R` \x81\x01Qa\x06\x80\x83\x01RP` \x85\x01Q\x80Qa\x06\xA0\x83\x01R` \x81\x01Qa\x06\xC0\x83\x01RP`@\x85\x01Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP``\x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`\x80\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP_\x82Ra\x07\xC0\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\n\x18a\x1B\xE9V[\x81b\x01\0\0\x03a\x0BWW`@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\x80`\xE0\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\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x0C\x97W`@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\x80`\xE0\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\\\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\r\xD5W`@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\x80`\xE0\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\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\x0F`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x0E\x19\x84\x84a\x13hV[\x80\x82Ra\x0E)\x90\x85\x90\x85\x90a\x13\xB9V[` \x82\x01R\x80Qa\x0E?\x90\x85\x90\x84\x90\x86\x90a\x14(V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0Efa\x1C\rV[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x0E\xA6W`@Qc\x03;qM`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0E\xC9a\x1C+V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x80\x84\x01\x91\x90\x91R\x90\x84\x01Q``\x83\x01R_\x90\x83`\x80\x84`\x06Z\xFA\x90P\x80a\x0E\xA6W`@Qc0*\xED\xB5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x0FH\x87\x87\x87\x87a\x15vV[\x90P_Q` a!R_9_Q\x90_R_a\x0Fd\x88\x87\x89a\x1A@V[\x90Pa\x0Fp\x81\x83a \xF9V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x0F\x9C\x85a\x02\xDC\x8A_\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x0F\xC4\x86a\x02\xDC\x8A` \x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x0F\xEC\x86a\x02\xDC\x8A`@\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x14\x86a\x02\xDC\x8A``\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x10<\x86a\x02\xDC\x8A`\x80\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x10d\x86a\x02\xDC\x8D`@\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x8C\x86a\x02\xDC\x8D``\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xB4\x86a\x02\xDC\x8D`\x80\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xDC\x86a\x02\xDC\x8D`\xA0\x01Q\x84a\x0EKV[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x11\x06\x87a\x02\xDC\x8B`\xA0\x01Q\x84a\x0EKV[\x96Pa\x11<a\x116`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x0EKV[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x11tWP\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\x11\xB8\x91\x90a!2V[a\x11\xE2\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa \xF9V[\x90R\x92\x91PPV[a\x12\x11`@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\x13ZW`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a!R_9_Q\x90_R\x90\x83\x80\x15a\x13\xA9W\x84\x93P_[\x82\x81\x10\x15a\x13\x9DW\x83\x85\x86\t\x94P`\x01\x01a\x13\x87V[P`\x01\x84\x03\x93Pa\x13\xB0V[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x13\xCAWP`\x01a\0\xC9V[\x81_\x03a\x13\xD8WP_a\0\xC9V[` \x84\x01Q_Q` a!R_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x14\x06W`\x01\x87\x03\x92Pa\x14\rV[`\x01\x84\x03\x92P[Pa\x14\x17\x82a\x1B+V[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a!R_9_Q\x90_R\x82\x82\x03a\x14\xA1W`\x01_[`\x07\x81\x10\x15a\x14\x96W\x81\x86\x03a\x14sW\x86\x81`\x07\x81\x10a\x14dWa\x14da \xE5V[` \x02\x01Q\x93PPPPa\x13`V[\x82\x80a\x14\x81Wa\x14\x81a!\x1EV[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x14BV[P_\x92PPPa\x13`V[a\x14\xA9a\x1CIV[`@\x87\x01Q`\x01`\xC0\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x07\x81\x10\x15a\x14\xEAW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x14\xBDV[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x07\x81\x10\x15a\x15>W\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\x14\xFEV[PPPP\x80\x92PP_a\x15P\x83a\x1B+V[\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!R_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\x16\xE3\x87`\xA0\x01Q\x86a\x0EKV[\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\x17\xAA\x86a\x02\xDC\x8C`\xC0\x01Q\x88\x85a\x17\xA5\x91\x90a \xF9V[a\x0EKV[\x95Pa\x17\xC3\x86a\x02\xDC\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x0EKV[\x95Pa\x17\xDD\x86a\x02\xDC\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x0EKV[\x95Pa\x17\xF7\x86a\x02\xDC\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x0EKV[\x95Pa\x18\x11\x86a\x02\xDC\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x0EKV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x186\x86a\x02\xDC\x8Ca\x01`\x01Q\x86a\x0EKV[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x18[\x86a\x02\xDC\x8Ca\x01\x80\x01Q\x86a\x0EKV[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\x8A\x86a\x02\xDC\x8Ca\x01\xE0\x01Q\x86a\x0EKV[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\xB9\x86a\x02\xDC\x8Ca\x02\0\x01Q\x86a\x0EKV[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\xE8\x86a\x02\xDC\x8Ca\x02 \x01Q\x86a\x0EKV[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19\x17\x86a\x02\xDC\x8Ca\x02@\x01Q\x86a\x0EKV[\x95Pa\x194\x86a\x02\xDC\x8Ca\x01\xA0\x01Qa\x17\xA5\x8Ba\x02 \x01Qa\x1B\xBDV[\x95Pa\x19E\x86\x8Ba\x01\xC0\x01Qa\x0E\xAEV[\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\x19\x8B\x86a\x02\xDC\x8Ca\x02`\x01Q\x86a\x0EKV[\x95Pa\x19\x99\x88_\x01Qa\x1B\xBDV[\x94Pa\x19\xAD\x86a\x02\xDC\x89`\xC0\x01Q\x88a\x0EKV[\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\x19\xE1\x86a\x02\xDC\x89`\xE0\x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x19\xFC\x86a\x02\xDC\x89a\x01\0\x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x1A\x17\x86a\x02\xDC\x89a\x01 \x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x1A2\x86a\x02\xDC\x89a\x01@\x01Q\x88a\x0EKV[\x9A\x99PPPPPPPPPPV[___Q` a!R_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[_\x81_\x03a\x1BLW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a!R_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\x1B\xB6W`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a!R_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1B\xE0W\x83\x82\x03\x92Pa\x1B\xB6V[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1C\x08a\x1CIV[\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\x80`\xE0\x01`@R\x80`\x07\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\x1C\x9FWa\x1C\x9Fa\x1CgV[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1C\x9FWa\x1C\x9Fa\x1CgV[_`@\x82\x84\x03\x12\x15a\x1C\xD9W__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1C\xFCWa\x1C\xFCa\x1CgV[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\x1D%W__\xFD[`@Q`\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1DHWa\x1DHa\x1CgV[`@R\x80`\xE0\x84\x01\x85\x81\x11\x15a\x1D\\W__\xFD[\x84[\x81\x81\x10\x15a\x1DvW\x805\x83R` \x92\x83\x01\x92\x01a\x1D^V[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\x1D\x92W__\xFD[a\x1D\x9Aa\x1C{V[\x90Pa\x1D\xA6\x83\x83a\x1C\xC9V[\x81Ra\x1D\xB5\x83`@\x84\x01a\x1C\xC9V[` \x82\x01Ra\x1D\xC7\x83`\x80\x84\x01a\x1C\xC9V[`@\x82\x01Ra\x1D\xD9\x83`\xC0\x84\x01a\x1C\xC9V[``\x82\x01Ra\x1D\xEC\x83a\x01\0\x84\x01a\x1C\xC9V[`\x80\x82\x01Ra\x1D\xFF\x83a\x01@\x84\x01a\x1C\xC9V[`\xA0\x82\x01Ra\x1E\x12\x83a\x01\x80\x84\x01a\x1C\xC9V[`\xC0\x82\x01Ra\x1E%\x83a\x01\xC0\x84\x01a\x1C\xC9V[`\xE0\x82\x01Ra\x1E8\x83a\x02\0\x84\x01a\x1C\xC9V[a\x01\0\x82\x01Ra\x1EL\x83a\x02@\x84\x01a\x1C\xC9V[a\x01 \x82\x01Ra\x1E`\x83a\x02\x80\x84\x01a\x1C\xC9V[a\x01@\x82\x01Ra\x1Et\x83a\x02\xC0\x84\x01a\x1C\xC9V[a\x01`\x82\x01Ra\x1E\x88\x83a\x03\0\x84\x01a\x1C\xC9V[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`\x81\x12\x15a\x1F W__\xFD[a\x05\0\x81\x12\x15a\x1F.W__\xFD[Pa\x1F7a\x1C\xA5V[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra\x1FR\x86`@\x87\x01a\x1C\xC9V[`@\x82\x01Ra\x1Fd\x86`\x80\x87\x01a\x1C\xC9V[``\x82\x01Ra\x1Fv\x86`\xC0\x87\x01a\x1C\xC9V[`\x80\x82\x01Ra\x1F\x89\x86a\x01\0\x87\x01a\x1C\xC9V[`\xA0\x82\x01Ra\x1F\x9C\x86a\x01@\x87\x01a\x1C\xC9V[`\xC0\x82\x01Ra\x1F\xAF\x86a\x01\x80\x87\x01a\x1C\xC9V[`\xE0\x82\x01Ra\x1F\xC2\x86a\x01\xC0\x87\x01a\x1C\xC9V[a\x01\0\x82\x01Ra\x1F\xD6\x86a\x02\0\x87\x01a\x1C\xC9V[a\x01 \x82\x01Ra\x1F\xEA\x86a\x02@\x87\x01a\x1C\xC9V[a\x01@\x82\x01Ra\x1F\xFE\x86a\x02\x80\x87\x01a\x1C\xC9V[a\x01`\x82\x01Ra \x12\x86a\x02\xC0\x87\x01a\x1C\xC9V[a\x01\x80\x82\x01Ra &\x86a\x03\0\x87\x01a\x1C\xC9V[a\x01\xA0\x82\x01Ra :\x86a\x03@\x87\x01a\x1C\xC9V[a\x01\xC0\x82\x01Ra N\x86a\x03\x80\x87\x01a\x1C\xC9V[a\x01\xE0\x82\x01Ra b\x86a\x03\xC0\x87\x01a\x1C\xC9V[a\x02\0\x82\x01Ra v\x86a\x04\0\x87\x01a\x1C\xC9V[a\x02 \x82\x01Ra \x8A\x86a\x04@\x87\x01a\x1C\xC9V[a\x02@\x82\x01Ra \x9E\x86a\x04\x80\x87\x01a\x1C\xC9V[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa \xCC\x85a\x05\0\x86\x01a\x1D\x16V[\x91Pa \xDC\x85a\x05\xE0\x86\x01a\x1D\x81V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a!\x18WcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a!LWcNH{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",
3029 );
3030 #[derive(serde::Serialize, serde::Deserialize)]
3031 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3032 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3037 #[derive(Clone)]
3038 pub struct BN254G1AddFailed;
3039 #[allow(
3040 non_camel_case_types,
3041 non_snake_case,
3042 clippy::pub_underscore_fields,
3043 clippy::style
3044 )]
3045 const _: () = {
3046 use alloy::sol_types as alloy_sol_types;
3047 #[doc(hidden)]
3048 #[allow(dead_code)]
3049 type UnderlyingSolTuple<'a> = ();
3050 #[doc(hidden)]
3051 type UnderlyingRustTuple<'a> = ();
3052 #[cfg(test)]
3053 #[allow(dead_code, unreachable_patterns)]
3054 fn _type_assertion(
3055 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3056 ) {
3057 match _t {
3058 alloy_sol_types::private::AssertTypeEq::<
3059 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3060 >(_) => {}
3061 }
3062 }
3063 #[automatically_derived]
3064 #[doc(hidden)]
3065 impl ::core::convert::From<BN254G1AddFailed> for UnderlyingRustTuple<'_> {
3066 fn from(value: BN254G1AddFailed) -> Self {
3067 ()
3068 }
3069 }
3070 #[automatically_derived]
3071 #[doc(hidden)]
3072 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254G1AddFailed {
3073 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3074 Self
3075 }
3076 }
3077 #[automatically_derived]
3078 impl alloy_sol_types::SolError for BN254G1AddFailed {
3079 type Parameters<'a> = UnderlyingSolTuple<'a>;
3080 type Token<'a> = <Self::Parameters<
3081 'a,
3082 > as alloy_sol_types::SolType>::Token<'a>;
3083 const SIGNATURE: &'static str = "BN254G1AddFailed()";
3084 const SELECTOR: [u8; 4] = [96u8, 85u8, 219u8, 106u8];
3085 #[inline]
3086 fn new<'a>(
3087 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3088 ) -> Self {
3089 tuple.into()
3090 }
3091 #[inline]
3092 fn tokenize(&self) -> Self::Token<'_> {
3093 ()
3094 }
3095 #[inline]
3096 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3097 <Self::Parameters<
3098 '_,
3099 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3100 .map(Self::new)
3101 }
3102 }
3103 };
3104 #[derive(serde::Serialize, serde::Deserialize)]
3105 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3106 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3111 #[derive(Clone)]
3112 pub struct BN254PairingProdFailed;
3113 #[allow(
3114 non_camel_case_types,
3115 non_snake_case,
3116 clippy::pub_underscore_fields,
3117 clippy::style
3118 )]
3119 const _: () = {
3120 use alloy::sol_types as alloy_sol_types;
3121 #[doc(hidden)]
3122 #[allow(dead_code)]
3123 type UnderlyingSolTuple<'a> = ();
3124 #[doc(hidden)]
3125 type UnderlyingRustTuple<'a> = ();
3126 #[cfg(test)]
3127 #[allow(dead_code, unreachable_patterns)]
3128 fn _type_assertion(
3129 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3130 ) {
3131 match _t {
3132 alloy_sol_types::private::AssertTypeEq::<
3133 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3134 >(_) => {}
3135 }
3136 }
3137 #[automatically_derived]
3138 #[doc(hidden)]
3139 impl ::core::convert::From<BN254PairingProdFailed> for UnderlyingRustTuple<'_> {
3140 fn from(value: BN254PairingProdFailed) -> Self {
3141 ()
3142 }
3143 }
3144 #[automatically_derived]
3145 #[doc(hidden)]
3146 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254PairingProdFailed {
3147 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3148 Self
3149 }
3150 }
3151 #[automatically_derived]
3152 impl alloy_sol_types::SolError for BN254PairingProdFailed {
3153 type Parameters<'a> = UnderlyingSolTuple<'a>;
3154 type Token<'a> = <Self::Parameters<
3155 'a,
3156 > as alloy_sol_types::SolType>::Token<'a>;
3157 const SIGNATURE: &'static str = "BN254PairingProdFailed()";
3158 const SELECTOR: [u8; 4] = [194u8, 6u8, 51u8, 79u8];
3159 #[inline]
3160 fn new<'a>(
3161 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3162 ) -> Self {
3163 tuple.into()
3164 }
3165 #[inline]
3166 fn tokenize(&self) -> Self::Token<'_> {
3167 ()
3168 }
3169 #[inline]
3170 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3171 <Self::Parameters<
3172 '_,
3173 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3174 .map(Self::new)
3175 }
3176 }
3177 };
3178 #[derive(serde::Serialize, serde::Deserialize)]
3179 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3180 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3185 #[derive(Clone)]
3186 pub struct BN254ScalarInvZero;
3187 #[allow(
3188 non_camel_case_types,
3189 non_snake_case,
3190 clippy::pub_underscore_fields,
3191 clippy::style
3192 )]
3193 const _: () = {
3194 use alloy::sol_types as alloy_sol_types;
3195 #[doc(hidden)]
3196 #[allow(dead_code)]
3197 type UnderlyingSolTuple<'a> = ();
3198 #[doc(hidden)]
3199 type UnderlyingRustTuple<'a> = ();
3200 #[cfg(test)]
3201 #[allow(dead_code, unreachable_patterns)]
3202 fn _type_assertion(
3203 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3204 ) {
3205 match _t {
3206 alloy_sol_types::private::AssertTypeEq::<
3207 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3208 >(_) => {}
3209 }
3210 }
3211 #[automatically_derived]
3212 #[doc(hidden)]
3213 impl ::core::convert::From<BN254ScalarInvZero> for UnderlyingRustTuple<'_> {
3214 fn from(value: BN254ScalarInvZero) -> Self {
3215 ()
3216 }
3217 }
3218 #[automatically_derived]
3219 #[doc(hidden)]
3220 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarInvZero {
3221 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3222 Self
3223 }
3224 }
3225 #[automatically_derived]
3226 impl alloy_sol_types::SolError for BN254ScalarInvZero {
3227 type Parameters<'a> = UnderlyingSolTuple<'a>;
3228 type Token<'a> = <Self::Parameters<
3229 'a,
3230 > as alloy_sol_types::SolType>::Token<'a>;
3231 const SIGNATURE: &'static str = "BN254ScalarInvZero()";
3232 const SELECTOR: [u8; 4] = [214u8, 219u8, 187u8, 13u8];
3233 #[inline]
3234 fn new<'a>(
3235 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3236 ) -> Self {
3237 tuple.into()
3238 }
3239 #[inline]
3240 fn tokenize(&self) -> Self::Token<'_> {
3241 ()
3242 }
3243 #[inline]
3244 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3245 <Self::Parameters<
3246 '_,
3247 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3248 .map(Self::new)
3249 }
3250 }
3251 };
3252 #[derive(serde::Serialize, serde::Deserialize)]
3253 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3254 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3259 #[derive(Clone)]
3260 pub struct BN254ScalarMulFailed;
3261 #[allow(
3262 non_camel_case_types,
3263 non_snake_case,
3264 clippy::pub_underscore_fields,
3265 clippy::style
3266 )]
3267 const _: () = {
3268 use alloy::sol_types as alloy_sol_types;
3269 #[doc(hidden)]
3270 #[allow(dead_code)]
3271 type UnderlyingSolTuple<'a> = ();
3272 #[doc(hidden)]
3273 type UnderlyingRustTuple<'a> = ();
3274 #[cfg(test)]
3275 #[allow(dead_code, unreachable_patterns)]
3276 fn _type_assertion(
3277 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3278 ) {
3279 match _t {
3280 alloy_sol_types::private::AssertTypeEq::<
3281 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3282 >(_) => {}
3283 }
3284 }
3285 #[automatically_derived]
3286 #[doc(hidden)]
3287 impl ::core::convert::From<BN254ScalarMulFailed> for UnderlyingRustTuple<'_> {
3288 fn from(value: BN254ScalarMulFailed) -> Self {
3289 ()
3290 }
3291 }
3292 #[automatically_derived]
3293 #[doc(hidden)]
3294 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarMulFailed {
3295 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3296 Self
3297 }
3298 }
3299 #[automatically_derived]
3300 impl alloy_sol_types::SolError for BN254ScalarMulFailed {
3301 type Parameters<'a> = UnderlyingSolTuple<'a>;
3302 type Token<'a> = <Self::Parameters<
3303 'a,
3304 > as alloy_sol_types::SolType>::Token<'a>;
3305 const SIGNATURE: &'static str = "BN254ScalarMulFailed()";
3306 const SELECTOR: [u8; 4] = [25u8, 219u8, 138u8, 104u8];
3307 #[inline]
3308 fn new<'a>(
3309 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3310 ) -> Self {
3311 tuple.into()
3312 }
3313 #[inline]
3314 fn tokenize(&self) -> Self::Token<'_> {
3315 ()
3316 }
3317 #[inline]
3318 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3319 <Self::Parameters<
3320 '_,
3321 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3322 .map(Self::new)
3323 }
3324 }
3325 };
3326 #[derive(serde::Serialize, serde::Deserialize)]
3327 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3328 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3333 #[derive(Clone)]
3334 pub struct InvalidG1;
3335 #[allow(
3336 non_camel_case_types,
3337 non_snake_case,
3338 clippy::pub_underscore_fields,
3339 clippy::style
3340 )]
3341 const _: () = {
3342 use alloy::sol_types as alloy_sol_types;
3343 #[doc(hidden)]
3344 #[allow(dead_code)]
3345 type UnderlyingSolTuple<'a> = ();
3346 #[doc(hidden)]
3347 type UnderlyingRustTuple<'a> = ();
3348 #[cfg(test)]
3349 #[allow(dead_code, unreachable_patterns)]
3350 fn _type_assertion(
3351 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3352 ) {
3353 match _t {
3354 alloy_sol_types::private::AssertTypeEq::<
3355 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3356 >(_) => {}
3357 }
3358 }
3359 #[automatically_derived]
3360 #[doc(hidden)]
3361 impl ::core::convert::From<InvalidG1> for UnderlyingRustTuple<'_> {
3362 fn from(value: InvalidG1) -> Self {
3363 ()
3364 }
3365 }
3366 #[automatically_derived]
3367 #[doc(hidden)]
3368 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidG1 {
3369 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3370 Self
3371 }
3372 }
3373 #[automatically_derived]
3374 impl alloy_sol_types::SolError for InvalidG1 {
3375 type Parameters<'a> = UnderlyingSolTuple<'a>;
3376 type Token<'a> = <Self::Parameters<
3377 'a,
3378 > as alloy_sol_types::SolType>::Token<'a>;
3379 const SIGNATURE: &'static str = "InvalidG1()";
3380 const SELECTOR: [u8; 4] = [158u8, 120u8, 209u8, 76u8];
3381 #[inline]
3382 fn new<'a>(
3383 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3384 ) -> Self {
3385 tuple.into()
3386 }
3387 #[inline]
3388 fn tokenize(&self) -> Self::Token<'_> {
3389 ()
3390 }
3391 #[inline]
3392 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3393 <Self::Parameters<
3394 '_,
3395 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3396 .map(Self::new)
3397 }
3398 }
3399 };
3400 #[derive(serde::Serialize, serde::Deserialize)]
3401 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3402 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3407 #[derive(Clone)]
3408 pub struct InvalidPlonkArgs;
3409 #[allow(
3410 non_camel_case_types,
3411 non_snake_case,
3412 clippy::pub_underscore_fields,
3413 clippy::style
3414 )]
3415 const _: () = {
3416 use alloy::sol_types as alloy_sol_types;
3417 #[doc(hidden)]
3418 #[allow(dead_code)]
3419 type UnderlyingSolTuple<'a> = ();
3420 #[doc(hidden)]
3421 type UnderlyingRustTuple<'a> = ();
3422 #[cfg(test)]
3423 #[allow(dead_code, unreachable_patterns)]
3424 fn _type_assertion(
3425 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3426 ) {
3427 match _t {
3428 alloy_sol_types::private::AssertTypeEq::<
3429 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3430 >(_) => {}
3431 }
3432 }
3433 #[automatically_derived]
3434 #[doc(hidden)]
3435 impl ::core::convert::From<InvalidPlonkArgs> for UnderlyingRustTuple<'_> {
3436 fn from(value: InvalidPlonkArgs) -> Self {
3437 ()
3438 }
3439 }
3440 #[automatically_derived]
3441 #[doc(hidden)]
3442 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPlonkArgs {
3443 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3444 Self
3445 }
3446 }
3447 #[automatically_derived]
3448 impl alloy_sol_types::SolError for InvalidPlonkArgs {
3449 type Parameters<'a> = UnderlyingSolTuple<'a>;
3450 type Token<'a> = <Self::Parameters<
3451 'a,
3452 > as alloy_sol_types::SolType>::Token<'a>;
3453 const SIGNATURE: &'static str = "InvalidPlonkArgs()";
3454 const SELECTOR: [u8; 4] = [253u8, 154u8, 45u8, 27u8];
3455 #[inline]
3456 fn new<'a>(
3457 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3458 ) -> Self {
3459 tuple.into()
3460 }
3461 #[inline]
3462 fn tokenize(&self) -> Self::Token<'_> {
3463 ()
3464 }
3465 #[inline]
3466 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3467 <Self::Parameters<
3468 '_,
3469 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3470 .map(Self::new)
3471 }
3472 }
3473 };
3474 #[derive(serde::Serialize, serde::Deserialize)]
3475 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3476 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3481 #[derive(Clone)]
3482 pub struct InvalidScalar;
3483 #[allow(
3484 non_camel_case_types,
3485 non_snake_case,
3486 clippy::pub_underscore_fields,
3487 clippy::style
3488 )]
3489 const _: () = {
3490 use alloy::sol_types as alloy_sol_types;
3491 #[doc(hidden)]
3492 #[allow(dead_code)]
3493 type UnderlyingSolTuple<'a> = ();
3494 #[doc(hidden)]
3495 type UnderlyingRustTuple<'a> = ();
3496 #[cfg(test)]
3497 #[allow(dead_code, unreachable_patterns)]
3498 fn _type_assertion(
3499 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3500 ) {
3501 match _t {
3502 alloy_sol_types::private::AssertTypeEq::<
3503 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3504 >(_) => {}
3505 }
3506 }
3507 #[automatically_derived]
3508 #[doc(hidden)]
3509 impl ::core::convert::From<InvalidScalar> for UnderlyingRustTuple<'_> {
3510 fn from(value: InvalidScalar) -> Self {
3511 ()
3512 }
3513 }
3514 #[automatically_derived]
3515 #[doc(hidden)]
3516 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidScalar {
3517 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3518 Self
3519 }
3520 }
3521 #[automatically_derived]
3522 impl alloy_sol_types::SolError for InvalidScalar {
3523 type Parameters<'a> = UnderlyingSolTuple<'a>;
3524 type Token<'a> = <Self::Parameters<
3525 'a,
3526 > as alloy_sol_types::SolType>::Token<'a>;
3527 const SIGNATURE: &'static str = "InvalidScalar()";
3528 const SELECTOR: [u8; 4] = [5u8, 176u8, 92u8, 204u8];
3529 #[inline]
3530 fn new<'a>(
3531 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3532 ) -> Self {
3533 tuple.into()
3534 }
3535 #[inline]
3536 fn tokenize(&self) -> Self::Token<'_> {
3537 ()
3538 }
3539 #[inline]
3540 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3541 <Self::Parameters<
3542 '_,
3543 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3544 .map(Self::new)
3545 }
3546 }
3547 };
3548 #[derive(serde::Serialize, serde::Deserialize)]
3549 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3550 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3555 #[derive(Clone)]
3556 pub struct PowPrecompileFailed;
3557 #[allow(
3558 non_camel_case_types,
3559 non_snake_case,
3560 clippy::pub_underscore_fields,
3561 clippy::style
3562 )]
3563 const _: () = {
3564 use alloy::sol_types as alloy_sol_types;
3565 #[doc(hidden)]
3566 #[allow(dead_code)]
3567 type UnderlyingSolTuple<'a> = ();
3568 #[doc(hidden)]
3569 type UnderlyingRustTuple<'a> = ();
3570 #[cfg(test)]
3571 #[allow(dead_code, unreachable_patterns)]
3572 fn _type_assertion(
3573 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3574 ) {
3575 match _t {
3576 alloy_sol_types::private::AssertTypeEq::<
3577 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3578 >(_) => {}
3579 }
3580 }
3581 #[automatically_derived]
3582 #[doc(hidden)]
3583 impl ::core::convert::From<PowPrecompileFailed> for UnderlyingRustTuple<'_> {
3584 fn from(value: PowPrecompileFailed) -> Self {
3585 ()
3586 }
3587 }
3588 #[automatically_derived]
3589 #[doc(hidden)]
3590 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PowPrecompileFailed {
3591 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3592 Self
3593 }
3594 }
3595 #[automatically_derived]
3596 impl alloy_sol_types::SolError for PowPrecompileFailed {
3597 type Parameters<'a> = UnderlyingSolTuple<'a>;
3598 type Token<'a> = <Self::Parameters<
3599 'a,
3600 > as alloy_sol_types::SolType>::Token<'a>;
3601 const SIGNATURE: &'static str = "PowPrecompileFailed()";
3602 const SELECTOR: [u8; 4] = [50u8, 116u8, 250u8, 100u8];
3603 #[inline]
3604 fn new<'a>(
3605 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3606 ) -> Self {
3607 tuple.into()
3608 }
3609 #[inline]
3610 fn tokenize(&self) -> Self::Token<'_> {
3611 ()
3612 }
3613 #[inline]
3614 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3615 <Self::Parameters<
3616 '_,
3617 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3618 .map(Self::new)
3619 }
3620 }
3621 };
3622 #[derive(serde::Serialize, serde::Deserialize)]
3623 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3624 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3629 #[derive(Clone)]
3630 pub struct UnsupportedDegree;
3631 #[allow(
3632 non_camel_case_types,
3633 non_snake_case,
3634 clippy::pub_underscore_fields,
3635 clippy::style
3636 )]
3637 const _: () = {
3638 use alloy::sol_types as alloy_sol_types;
3639 #[doc(hidden)]
3640 #[allow(dead_code)]
3641 type UnderlyingSolTuple<'a> = ();
3642 #[doc(hidden)]
3643 type UnderlyingRustTuple<'a> = ();
3644 #[cfg(test)]
3645 #[allow(dead_code, unreachable_patterns)]
3646 fn _type_assertion(
3647 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3648 ) {
3649 match _t {
3650 alloy_sol_types::private::AssertTypeEq::<
3651 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3652 >(_) => {}
3653 }
3654 }
3655 #[automatically_derived]
3656 #[doc(hidden)]
3657 impl ::core::convert::From<UnsupportedDegree> for UnderlyingRustTuple<'_> {
3658 fn from(value: UnsupportedDegree) -> Self {
3659 ()
3660 }
3661 }
3662 #[automatically_derived]
3663 #[doc(hidden)]
3664 impl ::core::convert::From<UnderlyingRustTuple<'_>> for UnsupportedDegree {
3665 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3666 Self
3667 }
3668 }
3669 #[automatically_derived]
3670 impl alloy_sol_types::SolError for UnsupportedDegree {
3671 type Parameters<'a> = UnderlyingSolTuple<'a>;
3672 type Token<'a> = <Self::Parameters<
3673 'a,
3674 > as alloy_sol_types::SolType>::Token<'a>;
3675 const SIGNATURE: &'static str = "UnsupportedDegree()";
3676 const SELECTOR: [u8; 4] = [226u8, 239u8, 9u8, 229u8];
3677 #[inline]
3678 fn new<'a>(
3679 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3680 ) -> Self {
3681 tuple.into()
3682 }
3683 #[inline]
3684 fn tokenize(&self) -> Self::Token<'_> {
3685 ()
3686 }
3687 #[inline]
3688 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3689 <Self::Parameters<
3690 '_,
3691 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3692 .map(Self::new)
3693 }
3694 }
3695 };
3696 #[derive(serde::Serialize, serde::Deserialize)]
3697 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3698 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3703 #[derive(Clone)]
3704 pub struct WrongPlonkVK;
3705 #[allow(
3706 non_camel_case_types,
3707 non_snake_case,
3708 clippy::pub_underscore_fields,
3709 clippy::style
3710 )]
3711 const _: () = {
3712 use alloy::sol_types as alloy_sol_types;
3713 #[doc(hidden)]
3714 #[allow(dead_code)]
3715 type UnderlyingSolTuple<'a> = ();
3716 #[doc(hidden)]
3717 type UnderlyingRustTuple<'a> = ();
3718 #[cfg(test)]
3719 #[allow(dead_code, unreachable_patterns)]
3720 fn _type_assertion(
3721 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3722 ) {
3723 match _t {
3724 alloy_sol_types::private::AssertTypeEq::<
3725 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3726 >(_) => {}
3727 }
3728 }
3729 #[automatically_derived]
3730 #[doc(hidden)]
3731 impl ::core::convert::From<WrongPlonkVK> for UnderlyingRustTuple<'_> {
3732 fn from(value: WrongPlonkVK) -> Self {
3733 ()
3734 }
3735 }
3736 #[automatically_derived]
3737 #[doc(hidden)]
3738 impl ::core::convert::From<UnderlyingRustTuple<'_>> for WrongPlonkVK {
3739 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3740 Self
3741 }
3742 }
3743 #[automatically_derived]
3744 impl alloy_sol_types::SolError for WrongPlonkVK {
3745 type Parameters<'a> = UnderlyingSolTuple<'a>;
3746 type Token<'a> = <Self::Parameters<
3747 'a,
3748 > as alloy_sol_types::SolType>::Token<'a>;
3749 const SIGNATURE: &'static str = "WrongPlonkVK()";
3750 const SELECTOR: [u8; 4] = [65u8, 245u8, 59u8, 18u8];
3751 #[inline]
3752 fn new<'a>(
3753 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3754 ) -> Self {
3755 tuple.into()
3756 }
3757 #[inline]
3758 fn tokenize(&self) -> Self::Token<'_> {
3759 ()
3760 }
3761 #[inline]
3762 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3763 <Self::Parameters<
3764 '_,
3765 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3766 .map(Self::new)
3767 }
3768 }
3769 };
3770 #[derive(serde::Serialize, serde::Deserialize)]
3771 #[derive()]
3772 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3777 #[derive(Clone)]
3778 pub struct verifyCall {
3779 #[allow(missing_docs)]
3780 pub verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
3781 #[allow(missing_docs)]
3782 pub publicInput: [alloy::sol_types::private::primitives::aliases::U256; 7usize],
3783 #[allow(missing_docs)]
3784 pub proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
3785 }
3786 #[derive(serde::Serialize, serde::Deserialize)]
3787 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3788 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3790 #[derive(Clone)]
3791 pub struct verifyReturn {
3792 #[allow(missing_docs)]
3793 pub _0: bool,
3794 }
3795 #[allow(
3796 non_camel_case_types,
3797 non_snake_case,
3798 clippy::pub_underscore_fields,
3799 clippy::style
3800 )]
3801 const _: () = {
3802 use alloy::sol_types as alloy_sol_types;
3803 {
3804 #[doc(hidden)]
3805 #[allow(dead_code)]
3806 type UnderlyingSolTuple<'a> = (
3807 IPlonkVerifier::VerifyingKey,
3808 alloy::sol_types::sol_data::FixedArray<
3809 alloy::sol_types::sol_data::Uint<256>,
3810 7usize,
3811 >,
3812 IPlonkVerifier::PlonkProof,
3813 );
3814 #[doc(hidden)]
3815 type UnderlyingRustTuple<'a> = (
3816 <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
3817 [alloy::sol_types::private::primitives::aliases::U256; 7usize],
3818 <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
3819 );
3820 #[cfg(test)]
3821 #[allow(dead_code, unreachable_patterns)]
3822 fn _type_assertion(
3823 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3824 ) {
3825 match _t {
3826 alloy_sol_types::private::AssertTypeEq::<
3827 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3828 >(_) => {}
3829 }
3830 }
3831 #[automatically_derived]
3832 #[doc(hidden)]
3833 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
3834 fn from(value: verifyCall) -> Self {
3835 (value.verifyingKey, value.publicInput, value.proof)
3836 }
3837 }
3838 #[automatically_derived]
3839 #[doc(hidden)]
3840 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
3841 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3842 Self {
3843 verifyingKey: tuple.0,
3844 publicInput: tuple.1,
3845 proof: tuple.2,
3846 }
3847 }
3848 }
3849 }
3850 {
3851 #[doc(hidden)]
3852 #[allow(dead_code)]
3853 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
3854 #[doc(hidden)]
3855 type UnderlyingRustTuple<'a> = (bool,);
3856 #[cfg(test)]
3857 #[allow(dead_code, unreachable_patterns)]
3858 fn _type_assertion(
3859 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3860 ) {
3861 match _t {
3862 alloy_sol_types::private::AssertTypeEq::<
3863 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3864 >(_) => {}
3865 }
3866 }
3867 #[automatically_derived]
3868 #[doc(hidden)]
3869 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
3870 fn from(value: verifyReturn) -> Self {
3871 (value._0,)
3872 }
3873 }
3874 #[automatically_derived]
3875 #[doc(hidden)]
3876 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
3877 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3878 Self { _0: tuple.0 }
3879 }
3880 }
3881 }
3882 #[automatically_derived]
3883 impl alloy_sol_types::SolCall for verifyCall {
3884 type Parameters<'a> = (
3885 IPlonkVerifier::VerifyingKey,
3886 alloy::sol_types::sol_data::FixedArray<
3887 alloy::sol_types::sol_data::Uint<256>,
3888 7usize,
3889 >,
3890 IPlonkVerifier::PlonkProof,
3891 );
3892 type Token<'a> = <Self::Parameters<
3893 'a,
3894 > as alloy_sol_types::SolType>::Token<'a>;
3895 type Return = bool;
3896 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
3897 type ReturnToken<'a> = <Self::ReturnTuple<
3898 'a,
3899 > as alloy_sol_types::SolType>::Token<'a>;
3900 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[7],((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))";
3901 const SELECTOR: [u8; 4] = [119u8, 174u8, 63u8, 7u8];
3902 #[inline]
3903 fn new<'a>(
3904 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3905 ) -> Self {
3906 tuple.into()
3907 }
3908 #[inline]
3909 fn tokenize(&self) -> Self::Token<'_> {
3910 (
3911 <IPlonkVerifier::VerifyingKey as alloy_sol_types::SolType>::tokenize(
3912 &self.verifyingKey,
3913 ),
3914 <alloy::sol_types::sol_data::FixedArray<
3915 alloy::sol_types::sol_data::Uint<256>,
3916 7usize,
3917 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
3918 <IPlonkVerifier::PlonkProof as alloy_sol_types::SolType>::tokenize(
3919 &self.proof,
3920 ),
3921 )
3922 }
3923 #[inline]
3924 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
3925 (
3926 <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
3927 ret,
3928 ),
3929 )
3930 }
3931 #[inline]
3932 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
3933 <Self::ReturnTuple<
3934 '_,
3935 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
3936 .map(|r| {
3937 let r: verifyReturn = r.into();
3938 r._0
3939 })
3940 }
3941 #[inline]
3942 fn abi_decode_returns_validate(
3943 data: &[u8],
3944 ) -> alloy_sol_types::Result<Self::Return> {
3945 <Self::ReturnTuple<
3946 '_,
3947 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3948 .map(|r| {
3949 let r: verifyReturn = r.into();
3950 r._0
3951 })
3952 }
3953 }
3954 };
3955 #[derive(Clone)]
3957 #[derive(serde::Serialize, serde::Deserialize)]
3958 #[derive()]
3959 pub enum PlonkVerifierCalls {
3960 #[allow(missing_docs)]
3961 verify(verifyCall),
3962 }
3963 impl PlonkVerifierCalls {
3964 pub const SELECTORS: &'static [[u8; 4usize]] = &[[119u8, 174u8, 63u8, 7u8]];
3971 pub const VARIANT_NAMES: &'static [&'static str] = &[::core::stringify!(verify)];
3973 pub const SIGNATURES: &'static [&'static str] = &[
3975 <verifyCall as alloy_sol_types::SolCall>::SIGNATURE,
3976 ];
3977 #[inline]
3979 pub fn signature_by_selector(
3980 selector: [u8; 4usize],
3981 ) -> ::core::option::Option<&'static str> {
3982 match Self::SELECTORS.binary_search(&selector) {
3983 ::core::result::Result::Ok(idx) => {
3984 ::core::option::Option::Some(Self::SIGNATURES[idx])
3985 }
3986 ::core::result::Result::Err(_) => ::core::option::Option::None,
3987 }
3988 }
3989 #[inline]
3991 pub fn name_by_selector(
3992 selector: [u8; 4usize],
3993 ) -> ::core::option::Option<&'static str> {
3994 let sig = Self::signature_by_selector(selector)?;
3995 sig.split_once('(').map(|(name, _)| name)
3996 }
3997 }
3998 #[automatically_derived]
3999 impl alloy_sol_types::SolInterface for PlonkVerifierCalls {
4000 const NAME: &'static str = "PlonkVerifierCalls";
4001 const MIN_DATA_LENGTH: usize = 672usize;
4002 const COUNT: usize = 1usize;
4003 #[inline]
4004 fn selector(&self) -> [u8; 4] {
4005 match self {
4006 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
4007 }
4008 }
4009 #[inline]
4010 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
4011 Self::SELECTORS.get(i).copied()
4012 }
4013 #[inline]
4014 fn valid_selector(selector: [u8; 4]) -> bool {
4015 Self::SELECTORS.binary_search(&selector).is_ok()
4016 }
4017 #[inline]
4018 #[allow(non_snake_case)]
4019 fn abi_decode_raw(
4020 selector: [u8; 4],
4021 data: &[u8],
4022 ) -> alloy_sol_types::Result<Self> {
4023 static DECODE_SHIMS: &[fn(
4024 &[u8],
4025 ) -> alloy_sol_types::Result<PlonkVerifierCalls>] = &[
4026 {
4027 fn verify(
4028 data: &[u8],
4029 ) -> alloy_sol_types::Result<PlonkVerifierCalls> {
4030 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
4031 .map(PlonkVerifierCalls::verify)
4032 }
4033 verify
4034 },
4035 ];
4036 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4037 return Err(
4038 alloy_sol_types::Error::unknown_selector(
4039 <Self as alloy_sol_types::SolInterface>::NAME,
4040 selector,
4041 ),
4042 );
4043 };
4044 DECODE_SHIMS[idx](data)
4045 }
4046 #[inline]
4047 #[allow(non_snake_case)]
4048 fn abi_decode_raw_validate(
4049 selector: [u8; 4],
4050 data: &[u8],
4051 ) -> alloy_sol_types::Result<Self> {
4052 static DECODE_VALIDATE_SHIMS: &[fn(
4053 &[u8],
4054 ) -> alloy_sol_types::Result<PlonkVerifierCalls>] = &[
4055 {
4056 fn verify(
4057 data: &[u8],
4058 ) -> alloy_sol_types::Result<PlonkVerifierCalls> {
4059 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
4060 data,
4061 )
4062 .map(PlonkVerifierCalls::verify)
4063 }
4064 verify
4065 },
4066 ];
4067 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4068 return Err(
4069 alloy_sol_types::Error::unknown_selector(
4070 <Self as alloy_sol_types::SolInterface>::NAME,
4071 selector,
4072 ),
4073 );
4074 };
4075 DECODE_VALIDATE_SHIMS[idx](data)
4076 }
4077 #[inline]
4078 fn abi_encoded_size(&self) -> usize {
4079 match self {
4080 Self::verify(inner) => {
4081 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4082 }
4083 }
4084 }
4085 #[inline]
4086 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
4087 match self {
4088 Self::verify(inner) => {
4089 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4090 }
4091 }
4092 }
4093 }
4094 #[derive(Clone)]
4096 #[derive(serde::Serialize, serde::Deserialize)]
4097 #[derive(Debug, PartialEq, Eq, Hash)]
4098 pub enum PlonkVerifierErrors {
4099 #[allow(missing_docs)]
4100 BN254G1AddFailed(BN254G1AddFailed),
4101 #[allow(missing_docs)]
4102 BN254PairingProdFailed(BN254PairingProdFailed),
4103 #[allow(missing_docs)]
4104 BN254ScalarInvZero(BN254ScalarInvZero),
4105 #[allow(missing_docs)]
4106 BN254ScalarMulFailed(BN254ScalarMulFailed),
4107 #[allow(missing_docs)]
4108 InvalidG1(InvalidG1),
4109 #[allow(missing_docs)]
4110 InvalidPlonkArgs(InvalidPlonkArgs),
4111 #[allow(missing_docs)]
4112 InvalidScalar(InvalidScalar),
4113 #[allow(missing_docs)]
4114 PowPrecompileFailed(PowPrecompileFailed),
4115 #[allow(missing_docs)]
4116 UnsupportedDegree(UnsupportedDegree),
4117 #[allow(missing_docs)]
4118 WrongPlonkVK(WrongPlonkVK),
4119 }
4120 impl PlonkVerifierErrors {
4121 pub const SELECTORS: &'static [[u8; 4usize]] = &[
4128 [5u8, 176u8, 92u8, 204u8],
4129 [25u8, 219u8, 138u8, 104u8],
4130 [50u8, 116u8, 250u8, 100u8],
4131 [65u8, 245u8, 59u8, 18u8],
4132 [96u8, 85u8, 219u8, 106u8],
4133 [158u8, 120u8, 209u8, 76u8],
4134 [194u8, 6u8, 51u8, 79u8],
4135 [214u8, 219u8, 187u8, 13u8],
4136 [226u8, 239u8, 9u8, 229u8],
4137 [253u8, 154u8, 45u8, 27u8],
4138 ];
4139 pub const VARIANT_NAMES: &'static [&'static str] = &[
4141 ::core::stringify!(InvalidScalar),
4142 ::core::stringify!(BN254ScalarMulFailed),
4143 ::core::stringify!(PowPrecompileFailed),
4144 ::core::stringify!(WrongPlonkVK),
4145 ::core::stringify!(BN254G1AddFailed),
4146 ::core::stringify!(InvalidG1),
4147 ::core::stringify!(BN254PairingProdFailed),
4148 ::core::stringify!(BN254ScalarInvZero),
4149 ::core::stringify!(UnsupportedDegree),
4150 ::core::stringify!(InvalidPlonkArgs),
4151 ];
4152 pub const SIGNATURES: &'static [&'static str] = &[
4154 <InvalidScalar as alloy_sol_types::SolError>::SIGNATURE,
4155 <BN254ScalarMulFailed as alloy_sol_types::SolError>::SIGNATURE,
4156 <PowPrecompileFailed as alloy_sol_types::SolError>::SIGNATURE,
4157 <WrongPlonkVK as alloy_sol_types::SolError>::SIGNATURE,
4158 <BN254G1AddFailed as alloy_sol_types::SolError>::SIGNATURE,
4159 <InvalidG1 as alloy_sol_types::SolError>::SIGNATURE,
4160 <BN254PairingProdFailed as alloy_sol_types::SolError>::SIGNATURE,
4161 <BN254ScalarInvZero as alloy_sol_types::SolError>::SIGNATURE,
4162 <UnsupportedDegree as alloy_sol_types::SolError>::SIGNATURE,
4163 <InvalidPlonkArgs as alloy_sol_types::SolError>::SIGNATURE,
4164 ];
4165 #[inline]
4167 pub fn signature_by_selector(
4168 selector: [u8; 4usize],
4169 ) -> ::core::option::Option<&'static str> {
4170 match Self::SELECTORS.binary_search(&selector) {
4171 ::core::result::Result::Ok(idx) => {
4172 ::core::option::Option::Some(Self::SIGNATURES[idx])
4173 }
4174 ::core::result::Result::Err(_) => ::core::option::Option::None,
4175 }
4176 }
4177 #[inline]
4179 pub fn name_by_selector(
4180 selector: [u8; 4usize],
4181 ) -> ::core::option::Option<&'static str> {
4182 let sig = Self::signature_by_selector(selector)?;
4183 sig.split_once('(').map(|(name, _)| name)
4184 }
4185 }
4186 #[automatically_derived]
4187 impl alloy_sol_types::SolInterface for PlonkVerifierErrors {
4188 const NAME: &'static str = "PlonkVerifierErrors";
4189 const MIN_DATA_LENGTH: usize = 0usize;
4190 const COUNT: usize = 10usize;
4191 #[inline]
4192 fn selector(&self) -> [u8; 4] {
4193 match self {
4194 Self::BN254G1AddFailed(_) => {
4195 <BN254G1AddFailed as alloy_sol_types::SolError>::SELECTOR
4196 }
4197 Self::BN254PairingProdFailed(_) => {
4198 <BN254PairingProdFailed as alloy_sol_types::SolError>::SELECTOR
4199 }
4200 Self::BN254ScalarInvZero(_) => {
4201 <BN254ScalarInvZero as alloy_sol_types::SolError>::SELECTOR
4202 }
4203 Self::BN254ScalarMulFailed(_) => {
4204 <BN254ScalarMulFailed as alloy_sol_types::SolError>::SELECTOR
4205 }
4206 Self::InvalidG1(_) => <InvalidG1 as alloy_sol_types::SolError>::SELECTOR,
4207 Self::InvalidPlonkArgs(_) => {
4208 <InvalidPlonkArgs as alloy_sol_types::SolError>::SELECTOR
4209 }
4210 Self::InvalidScalar(_) => {
4211 <InvalidScalar as alloy_sol_types::SolError>::SELECTOR
4212 }
4213 Self::PowPrecompileFailed(_) => {
4214 <PowPrecompileFailed as alloy_sol_types::SolError>::SELECTOR
4215 }
4216 Self::UnsupportedDegree(_) => {
4217 <UnsupportedDegree as alloy_sol_types::SolError>::SELECTOR
4218 }
4219 Self::WrongPlonkVK(_) => {
4220 <WrongPlonkVK as alloy_sol_types::SolError>::SELECTOR
4221 }
4222 }
4223 }
4224 #[inline]
4225 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
4226 Self::SELECTORS.get(i).copied()
4227 }
4228 #[inline]
4229 fn valid_selector(selector: [u8; 4]) -> bool {
4230 Self::SELECTORS.binary_search(&selector).is_ok()
4231 }
4232 #[inline]
4233 #[allow(non_snake_case)]
4234 fn abi_decode_raw(
4235 selector: [u8; 4],
4236 data: &[u8],
4237 ) -> alloy_sol_types::Result<Self> {
4238 static DECODE_SHIMS: &[fn(
4239 &[u8],
4240 ) -> alloy_sol_types::Result<PlonkVerifierErrors>] = &[
4241 {
4242 fn InvalidScalar(
4243 data: &[u8],
4244 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4245 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw(
4246 data,
4247 )
4248 .map(PlonkVerifierErrors::InvalidScalar)
4249 }
4250 InvalidScalar
4251 },
4252 {
4253 fn BN254ScalarMulFailed(
4254 data: &[u8],
4255 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4256 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw(
4257 data,
4258 )
4259 .map(PlonkVerifierErrors::BN254ScalarMulFailed)
4260 }
4261 BN254ScalarMulFailed
4262 },
4263 {
4264 fn PowPrecompileFailed(
4265 data: &[u8],
4266 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4267 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw(
4268 data,
4269 )
4270 .map(PlonkVerifierErrors::PowPrecompileFailed)
4271 }
4272 PowPrecompileFailed
4273 },
4274 {
4275 fn WrongPlonkVK(
4276 data: &[u8],
4277 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4278 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw(data)
4279 .map(PlonkVerifierErrors::WrongPlonkVK)
4280 }
4281 WrongPlonkVK
4282 },
4283 {
4284 fn BN254G1AddFailed(
4285 data: &[u8],
4286 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4287 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw(
4288 data,
4289 )
4290 .map(PlonkVerifierErrors::BN254G1AddFailed)
4291 }
4292 BN254G1AddFailed
4293 },
4294 {
4295 fn InvalidG1(
4296 data: &[u8],
4297 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4298 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw(data)
4299 .map(PlonkVerifierErrors::InvalidG1)
4300 }
4301 InvalidG1
4302 },
4303 {
4304 fn BN254PairingProdFailed(
4305 data: &[u8],
4306 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4307 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw(
4308 data,
4309 )
4310 .map(PlonkVerifierErrors::BN254PairingProdFailed)
4311 }
4312 BN254PairingProdFailed
4313 },
4314 {
4315 fn BN254ScalarInvZero(
4316 data: &[u8],
4317 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4318 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw(
4319 data,
4320 )
4321 .map(PlonkVerifierErrors::BN254ScalarInvZero)
4322 }
4323 BN254ScalarInvZero
4324 },
4325 {
4326 fn UnsupportedDegree(
4327 data: &[u8],
4328 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4329 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw(
4330 data,
4331 )
4332 .map(PlonkVerifierErrors::UnsupportedDegree)
4333 }
4334 UnsupportedDegree
4335 },
4336 {
4337 fn InvalidPlonkArgs(
4338 data: &[u8],
4339 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4340 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw(
4341 data,
4342 )
4343 .map(PlonkVerifierErrors::InvalidPlonkArgs)
4344 }
4345 InvalidPlonkArgs
4346 },
4347 ];
4348 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4349 return Err(
4350 alloy_sol_types::Error::unknown_selector(
4351 <Self as alloy_sol_types::SolInterface>::NAME,
4352 selector,
4353 ),
4354 );
4355 };
4356 DECODE_SHIMS[idx](data)
4357 }
4358 #[inline]
4359 #[allow(non_snake_case)]
4360 fn abi_decode_raw_validate(
4361 selector: [u8; 4],
4362 data: &[u8],
4363 ) -> alloy_sol_types::Result<Self> {
4364 static DECODE_VALIDATE_SHIMS: &[fn(
4365 &[u8],
4366 ) -> alloy_sol_types::Result<PlonkVerifierErrors>] = &[
4367 {
4368 fn InvalidScalar(
4369 data: &[u8],
4370 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4371 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw_validate(
4372 data,
4373 )
4374 .map(PlonkVerifierErrors::InvalidScalar)
4375 }
4376 InvalidScalar
4377 },
4378 {
4379 fn BN254ScalarMulFailed(
4380 data: &[u8],
4381 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4382 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
4383 data,
4384 )
4385 .map(PlonkVerifierErrors::BN254ScalarMulFailed)
4386 }
4387 BN254ScalarMulFailed
4388 },
4389 {
4390 fn PowPrecompileFailed(
4391 data: &[u8],
4392 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4393 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
4394 data,
4395 )
4396 .map(PlonkVerifierErrors::PowPrecompileFailed)
4397 }
4398 PowPrecompileFailed
4399 },
4400 {
4401 fn WrongPlonkVK(
4402 data: &[u8],
4403 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4404 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw_validate(
4405 data,
4406 )
4407 .map(PlonkVerifierErrors::WrongPlonkVK)
4408 }
4409 WrongPlonkVK
4410 },
4411 {
4412 fn BN254G1AddFailed(
4413 data: &[u8],
4414 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4415 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
4416 data,
4417 )
4418 .map(PlonkVerifierErrors::BN254G1AddFailed)
4419 }
4420 BN254G1AddFailed
4421 },
4422 {
4423 fn InvalidG1(
4424 data: &[u8],
4425 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4426 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw_validate(
4427 data,
4428 )
4429 .map(PlonkVerifierErrors::InvalidG1)
4430 }
4431 InvalidG1
4432 },
4433 {
4434 fn BN254PairingProdFailed(
4435 data: &[u8],
4436 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4437 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
4438 data,
4439 )
4440 .map(PlonkVerifierErrors::BN254PairingProdFailed)
4441 }
4442 BN254PairingProdFailed
4443 },
4444 {
4445 fn BN254ScalarInvZero(
4446 data: &[u8],
4447 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4448 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
4449 data,
4450 )
4451 .map(PlonkVerifierErrors::BN254ScalarInvZero)
4452 }
4453 BN254ScalarInvZero
4454 },
4455 {
4456 fn UnsupportedDegree(
4457 data: &[u8],
4458 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4459 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw_validate(
4460 data,
4461 )
4462 .map(PlonkVerifierErrors::UnsupportedDegree)
4463 }
4464 UnsupportedDegree
4465 },
4466 {
4467 fn InvalidPlonkArgs(
4468 data: &[u8],
4469 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4470 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw_validate(
4471 data,
4472 )
4473 .map(PlonkVerifierErrors::InvalidPlonkArgs)
4474 }
4475 InvalidPlonkArgs
4476 },
4477 ];
4478 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4479 return Err(
4480 alloy_sol_types::Error::unknown_selector(
4481 <Self as alloy_sol_types::SolInterface>::NAME,
4482 selector,
4483 ),
4484 );
4485 };
4486 DECODE_VALIDATE_SHIMS[idx](data)
4487 }
4488 #[inline]
4489 fn abi_encoded_size(&self) -> usize {
4490 match self {
4491 Self::BN254G1AddFailed(inner) => {
4492 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encoded_size(
4493 inner,
4494 )
4495 }
4496 Self::BN254PairingProdFailed(inner) => {
4497 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encoded_size(
4498 inner,
4499 )
4500 }
4501 Self::BN254ScalarInvZero(inner) => {
4502 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encoded_size(
4503 inner,
4504 )
4505 }
4506 Self::BN254ScalarMulFailed(inner) => {
4507 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encoded_size(
4508 inner,
4509 )
4510 }
4511 Self::InvalidG1(inner) => {
4512 <InvalidG1 as alloy_sol_types::SolError>::abi_encoded_size(inner)
4513 }
4514 Self::InvalidPlonkArgs(inner) => {
4515 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encoded_size(
4516 inner,
4517 )
4518 }
4519 Self::InvalidScalar(inner) => {
4520 <InvalidScalar as alloy_sol_types::SolError>::abi_encoded_size(inner)
4521 }
4522 Self::PowPrecompileFailed(inner) => {
4523 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encoded_size(
4524 inner,
4525 )
4526 }
4527 Self::UnsupportedDegree(inner) => {
4528 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encoded_size(
4529 inner,
4530 )
4531 }
4532 Self::WrongPlonkVK(inner) => {
4533 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encoded_size(inner)
4534 }
4535 }
4536 }
4537 #[inline]
4538 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
4539 match self {
4540 Self::BN254G1AddFailed(inner) => {
4541 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encode_raw(
4542 inner,
4543 out,
4544 )
4545 }
4546 Self::BN254PairingProdFailed(inner) => {
4547 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encode_raw(
4548 inner,
4549 out,
4550 )
4551 }
4552 Self::BN254ScalarInvZero(inner) => {
4553 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encode_raw(
4554 inner,
4555 out,
4556 )
4557 }
4558 Self::BN254ScalarMulFailed(inner) => {
4559 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encode_raw(
4560 inner,
4561 out,
4562 )
4563 }
4564 Self::InvalidG1(inner) => {
4565 <InvalidG1 as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
4566 }
4567 Self::InvalidPlonkArgs(inner) => {
4568 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encode_raw(
4569 inner,
4570 out,
4571 )
4572 }
4573 Self::InvalidScalar(inner) => {
4574 <InvalidScalar as alloy_sol_types::SolError>::abi_encode_raw(
4575 inner,
4576 out,
4577 )
4578 }
4579 Self::PowPrecompileFailed(inner) => {
4580 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encode_raw(
4581 inner,
4582 out,
4583 )
4584 }
4585 Self::UnsupportedDegree(inner) => {
4586 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encode_raw(
4587 inner,
4588 out,
4589 )
4590 }
4591 Self::WrongPlonkVK(inner) => {
4592 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encode_raw(
4593 inner,
4594 out,
4595 )
4596 }
4597 }
4598 }
4599 }
4600 use alloy::contract as alloy_contract;
4601 #[inline]
4605 pub const fn new<
4606 P: alloy_contract::private::Provider<N>,
4607 N: alloy_contract::private::Network,
4608 >(
4609 address: alloy_sol_types::private::Address,
4610 __provider: P,
4611 ) -> PlonkVerifierInstance<P, N> {
4612 PlonkVerifierInstance::<P, N>::new(address, __provider)
4613 }
4614 #[inline]
4620 pub fn deploy<
4621 P: alloy_contract::private::Provider<N>,
4622 N: alloy_contract::private::Network,
4623 >(
4624 __provider: P,
4625 ) -> impl ::core::future::Future<
4626 Output = alloy_contract::Result<PlonkVerifierInstance<P, N>>,
4627 > {
4628 PlonkVerifierInstance::<P, N>::deploy(__provider)
4629 }
4630 #[inline]
4636 pub fn deploy_builder<
4637 P: alloy_contract::private::Provider<N>,
4638 N: alloy_contract::private::Network,
4639 >(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
4640 PlonkVerifierInstance::<P, N>::deploy_builder(__provider)
4641 }
4642 #[derive(Clone)]
4654 pub struct PlonkVerifierInstance<P, N = alloy_contract::private::Ethereum> {
4655 address: alloy_sol_types::private::Address,
4656 provider: P,
4657 _network: ::core::marker::PhantomData<N>,
4658 }
4659 #[automatically_derived]
4660 impl<P, N> ::core::fmt::Debug for PlonkVerifierInstance<P, N> {
4661 #[inline]
4662 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4663 f.debug_tuple("PlonkVerifierInstance").field(&self.address).finish()
4664 }
4665 }
4666 impl<
4668 P: alloy_contract::private::Provider<N>,
4669 N: alloy_contract::private::Network,
4670 > PlonkVerifierInstance<P, N> {
4671 #[inline]
4675 pub const fn new(
4676 address: alloy_sol_types::private::Address,
4677 __provider: P,
4678 ) -> Self {
4679 Self {
4680 address,
4681 provider: __provider,
4682 _network: ::core::marker::PhantomData,
4683 }
4684 }
4685 #[inline]
4691 pub async fn deploy(
4692 __provider: P,
4693 ) -> alloy_contract::Result<PlonkVerifierInstance<P, N>> {
4694 let call_builder = Self::deploy_builder(__provider);
4695 let contract_address = call_builder.deploy().await?;
4696 Ok(Self::new(contract_address, call_builder.provider))
4697 }
4698 #[inline]
4704 pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
4705 alloy_contract::RawCallBuilder::new_raw_deploy(
4706 __provider,
4707 ::core::clone::Clone::clone(&BYTECODE),
4708 )
4709 }
4710 #[inline]
4712 pub const fn address(&self) -> &alloy_sol_types::private::Address {
4713 &self.address
4714 }
4715 #[inline]
4717 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
4718 self.address = address;
4719 }
4720 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
4722 self.set_address(address);
4723 self
4724 }
4725 #[inline]
4727 pub const fn provider(&self) -> &P {
4728 &self.provider
4729 }
4730 }
4731 impl<P: ::core::clone::Clone, N> PlonkVerifierInstance<&P, N> {
4732 #[inline]
4734 pub fn with_cloned_provider(self) -> PlonkVerifierInstance<P, N> {
4735 PlonkVerifierInstance {
4736 address: self.address,
4737 provider: ::core::clone::Clone::clone(&self.provider),
4738 _network: ::core::marker::PhantomData,
4739 }
4740 }
4741 }
4742 impl<
4744 P: alloy_contract::private::Provider<N>,
4745 N: alloy_contract::private::Network,
4746 > PlonkVerifierInstance<P, N> {
4747 pub fn call_builder<C: alloy_sol_types::SolCall>(
4752 &self,
4753 call: &C,
4754 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
4755 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
4756 }
4757 pub fn verify(
4759 &self,
4760 verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
4761 publicInput: [alloy::sol_types::private::primitives::aliases::U256; 7usize],
4762 proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
4763 ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> {
4764 self.call_builder(
4765 &verifyCall {
4766 verifyingKey,
4767 publicInput,
4768 proof,
4769 },
4770 )
4771 }
4772 }
4773 impl<
4775 P: alloy_contract::private::Provider<N>,
4776 N: alloy_contract::private::Network,
4777 > PlonkVerifierInstance<P, N> {
4778 pub fn event_filter<E: alloy_sol_types::SolEvent>(
4783 &self,
4784 ) -> alloy_contract::Event<&P, E, N> {
4785 alloy_contract::Event::new_sol(&self.provider, &self.address)
4786 }
4787 }
4788}