1use crate::jet::type_name::TypeName;
4use crate::jet::Jet;
5use crate::merkle::cmr::Cmr;
6use crate::decode_bits;
7use crate::{decode, BitIter, BitWriter};
8use crate::analysis::Cost;
9use hashes::sha256::Midstate;
10use simplicity_sys::CFrameItem;
11use std::io::Write;
12use std::{fmt, str};
13
14#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
16pub enum Core {
17 Add16,
18 Add32,
19 Add64,
20 Add8,
21 All16,
22 All32,
23 All64,
24 All8,
25 And1,
26 And16,
27 And32,
28 And64,
29 And8,
30 Bip0340Verify,
31 Ch1,
32 Ch16,
33 Ch32,
34 Ch64,
35 Ch8,
36 CheckSigVerify,
37 Complement1,
38 Complement16,
39 Complement32,
40 Complement64,
41 Complement8,
42 Decompress,
43 Decrement16,
44 Decrement32,
45 Decrement64,
46 Decrement8,
47 DivMod128_64,
48 DivMod16,
49 DivMod32,
50 DivMod64,
51 DivMod8,
52 Divide16,
53 Divide32,
54 Divide64,
55 Divide8,
56 Divides16,
57 Divides32,
58 Divides64,
59 Divides8,
60 Eq1,
61 Eq16,
62 Eq256,
63 Eq32,
64 Eq64,
65 Eq8,
66 FeAdd,
67 FeInvert,
68 FeIsOdd,
69 FeIsZero,
70 FeMultiply,
71 FeMultiplyBeta,
72 FeNegate,
73 FeNormalize,
74 FeSquare,
75 FeSquareRoot,
76 FullAdd16,
77 FullAdd32,
78 FullAdd64,
79 FullAdd8,
80 FullDecrement16,
81 FullDecrement32,
82 FullDecrement64,
83 FullDecrement8,
84 FullIncrement16,
85 FullIncrement32,
86 FullIncrement64,
87 FullIncrement8,
88 FullLeftShift16_1,
89 FullLeftShift16_2,
90 FullLeftShift16_4,
91 FullLeftShift16_8,
92 FullLeftShift32_1,
93 FullLeftShift32_16,
94 FullLeftShift32_2,
95 FullLeftShift32_4,
96 FullLeftShift32_8,
97 FullLeftShift64_1,
98 FullLeftShift64_16,
99 FullLeftShift64_2,
100 FullLeftShift64_32,
101 FullLeftShift64_4,
102 FullLeftShift64_8,
103 FullLeftShift8_1,
104 FullLeftShift8_2,
105 FullLeftShift8_4,
106 FullMultiply16,
107 FullMultiply32,
108 FullMultiply64,
109 FullMultiply8,
110 FullRightShift16_1,
111 FullRightShift16_2,
112 FullRightShift16_4,
113 FullRightShift16_8,
114 FullRightShift32_1,
115 FullRightShift32_16,
116 FullRightShift32_2,
117 FullRightShift32_4,
118 FullRightShift32_8,
119 FullRightShift64_1,
120 FullRightShift64_16,
121 FullRightShift64_2,
122 FullRightShift64_32,
123 FullRightShift64_4,
124 FullRightShift64_8,
125 FullRightShift8_1,
126 FullRightShift8_2,
127 FullRightShift8_4,
128 FullSubtract16,
129 FullSubtract32,
130 FullSubtract64,
131 FullSubtract8,
132 GeIsOnCurve,
133 GeNegate,
134 GejAdd,
135 GejDouble,
136 GejEquiv,
137 GejGeAdd,
138 GejGeAddEx,
139 GejGeEquiv,
140 GejInfinity,
141 GejIsInfinity,
142 GejIsOnCurve,
143 GejNegate,
144 GejNormalize,
145 GejRescale,
146 GejXEquiv,
147 GejYIsOdd,
148 Generate,
149 HashToCurve,
150 High1,
151 High16,
152 High32,
153 High64,
154 High8,
155 Increment16,
156 Increment32,
157 Increment64,
158 Increment8,
159 IsOne16,
160 IsOne32,
161 IsOne64,
162 IsOne8,
163 IsZero16,
164 IsZero32,
165 IsZero64,
166 IsZero8,
167 Le16,
168 Le32,
169 Le64,
170 Le8,
171 LeftExtend16_32,
172 LeftExtend16_64,
173 LeftExtend1_16,
174 LeftExtend1_32,
175 LeftExtend1_64,
176 LeftExtend1_8,
177 LeftExtend32_64,
178 LeftExtend8_16,
179 LeftExtend8_32,
180 LeftExtend8_64,
181 LeftPadHigh16_32,
182 LeftPadHigh16_64,
183 LeftPadHigh1_16,
184 LeftPadHigh1_32,
185 LeftPadHigh1_64,
186 LeftPadHigh1_8,
187 LeftPadHigh32_64,
188 LeftPadHigh8_16,
189 LeftPadHigh8_32,
190 LeftPadHigh8_64,
191 LeftPadLow16_32,
192 LeftPadLow16_64,
193 LeftPadLow1_16,
194 LeftPadLow1_32,
195 LeftPadLow1_64,
196 LeftPadLow1_8,
197 LeftPadLow32_64,
198 LeftPadLow8_16,
199 LeftPadLow8_32,
200 LeftPadLow8_64,
201 LeftRotate16,
202 LeftRotate32,
203 LeftRotate64,
204 LeftRotate8,
205 LeftShift16,
206 LeftShift32,
207 LeftShift64,
208 LeftShift8,
209 LeftShiftWith16,
210 LeftShiftWith32,
211 LeftShiftWith64,
212 LeftShiftWith8,
213 Leftmost16_1,
214 Leftmost16_2,
215 Leftmost16_4,
216 Leftmost16_8,
217 Leftmost32_1,
218 Leftmost32_16,
219 Leftmost32_2,
220 Leftmost32_4,
221 Leftmost32_8,
222 Leftmost64_1,
223 Leftmost64_16,
224 Leftmost64_2,
225 Leftmost64_32,
226 Leftmost64_4,
227 Leftmost64_8,
228 Leftmost8_1,
229 Leftmost8_2,
230 Leftmost8_4,
231 LinearCombination1,
232 LinearVerify1,
233 Low1,
234 Low16,
235 Low32,
236 Low64,
237 Low8,
238 Lt16,
239 Lt32,
240 Lt64,
241 Lt8,
242 Maj1,
243 Maj16,
244 Maj32,
245 Maj64,
246 Maj8,
247 Max16,
248 Max32,
249 Max64,
250 Max8,
251 Median16,
252 Median32,
253 Median64,
254 Median8,
255 Min16,
256 Min32,
257 Min64,
258 Min8,
259 Modulo16,
260 Modulo32,
261 Modulo64,
262 Modulo8,
263 Multiply16,
264 Multiply32,
265 Multiply64,
266 Multiply8,
267 Negate16,
268 Negate32,
269 Negate64,
270 Negate8,
271 One16,
272 One32,
273 One64,
274 One8,
275 Or1,
276 Or16,
277 Or32,
278 Or64,
279 Or8,
280 ParseLock,
281 ParseSequence,
282 PointVerify1,
283 RightExtend16_32,
284 RightExtend16_64,
285 RightExtend32_64,
286 RightExtend8_16,
287 RightExtend8_32,
288 RightExtend8_64,
289 RightPadHigh16_32,
290 RightPadHigh16_64,
291 RightPadHigh1_16,
292 RightPadHigh1_32,
293 RightPadHigh1_64,
294 RightPadHigh1_8,
295 RightPadHigh32_64,
296 RightPadHigh8_16,
297 RightPadHigh8_32,
298 RightPadHigh8_64,
299 RightPadLow16_32,
300 RightPadLow16_64,
301 RightPadLow1_16,
302 RightPadLow1_32,
303 RightPadLow1_64,
304 RightPadLow1_8,
305 RightPadLow32_64,
306 RightPadLow8_16,
307 RightPadLow8_32,
308 RightPadLow8_64,
309 RightRotate16,
310 RightRotate32,
311 RightRotate64,
312 RightRotate8,
313 RightShift16,
314 RightShift32,
315 RightShift64,
316 RightShift8,
317 RightShiftWith16,
318 RightShiftWith32,
319 RightShiftWith64,
320 RightShiftWith8,
321 Rightmost16_1,
322 Rightmost16_2,
323 Rightmost16_4,
324 Rightmost16_8,
325 Rightmost32_1,
326 Rightmost32_16,
327 Rightmost32_2,
328 Rightmost32_4,
329 Rightmost32_8,
330 Rightmost64_1,
331 Rightmost64_16,
332 Rightmost64_2,
333 Rightmost64_32,
334 Rightmost64_4,
335 Rightmost64_8,
336 Rightmost8_1,
337 Rightmost8_2,
338 Rightmost8_4,
339 ScalarAdd,
340 ScalarInvert,
341 ScalarIsZero,
342 ScalarMultiply,
343 ScalarMultiplyLambda,
344 ScalarNegate,
345 ScalarNormalize,
346 ScalarSquare,
347 Scale,
348 Sha256Block,
349 Sha256Ctx8Add1,
350 Sha256Ctx8Add128,
351 Sha256Ctx8Add16,
352 Sha256Ctx8Add2,
353 Sha256Ctx8Add256,
354 Sha256Ctx8Add32,
355 Sha256Ctx8Add4,
356 Sha256Ctx8Add512,
357 Sha256Ctx8Add64,
358 Sha256Ctx8Add8,
359 Sha256Ctx8AddBuffer511,
360 Sha256Ctx8Finalize,
361 Sha256Ctx8Init,
362 Sha256Iv,
363 Some1,
364 Some16,
365 Some32,
366 Some64,
367 Some8,
368 Subtract16,
369 Subtract32,
370 Subtract64,
371 Subtract8,
372 Swu,
373 TapdataInit,
374 Verify,
375 Xor1,
376 Xor16,
377 Xor32,
378 Xor64,
379 Xor8,
380 XorXor1,
381 XorXor16,
382 XorXor32,
383 XorXor64,
384 XorXor8,
385}
386
387impl Core {
388 pub const ALL: [Self; 368] = [
390 Self::Add16,
391 Self::Add32,
392 Self::Add64,
393 Self::Add8,
394 Self::All16,
395 Self::All32,
396 Self::All64,
397 Self::All8,
398 Self::And1,
399 Self::And16,
400 Self::And32,
401 Self::And64,
402 Self::And8,
403 Self::Bip0340Verify,
404 Self::Ch1,
405 Self::Ch16,
406 Self::Ch32,
407 Self::Ch64,
408 Self::Ch8,
409 Self::CheckSigVerify,
410 Self::Complement1,
411 Self::Complement16,
412 Self::Complement32,
413 Self::Complement64,
414 Self::Complement8,
415 Self::Decompress,
416 Self::Decrement16,
417 Self::Decrement32,
418 Self::Decrement64,
419 Self::Decrement8,
420 Self::DivMod128_64,
421 Self::DivMod16,
422 Self::DivMod32,
423 Self::DivMod64,
424 Self::DivMod8,
425 Self::Divide16,
426 Self::Divide32,
427 Self::Divide64,
428 Self::Divide8,
429 Self::Divides16,
430 Self::Divides32,
431 Self::Divides64,
432 Self::Divides8,
433 Self::Eq1,
434 Self::Eq16,
435 Self::Eq256,
436 Self::Eq32,
437 Self::Eq64,
438 Self::Eq8,
439 Self::FeAdd,
440 Self::FeInvert,
441 Self::FeIsOdd,
442 Self::FeIsZero,
443 Self::FeMultiply,
444 Self::FeMultiplyBeta,
445 Self::FeNegate,
446 Self::FeNormalize,
447 Self::FeSquare,
448 Self::FeSquareRoot,
449 Self::FullAdd16,
450 Self::FullAdd32,
451 Self::FullAdd64,
452 Self::FullAdd8,
453 Self::FullDecrement16,
454 Self::FullDecrement32,
455 Self::FullDecrement64,
456 Self::FullDecrement8,
457 Self::FullIncrement16,
458 Self::FullIncrement32,
459 Self::FullIncrement64,
460 Self::FullIncrement8,
461 Self::FullLeftShift16_1,
462 Self::FullLeftShift16_2,
463 Self::FullLeftShift16_4,
464 Self::FullLeftShift16_8,
465 Self::FullLeftShift32_1,
466 Self::FullLeftShift32_16,
467 Self::FullLeftShift32_2,
468 Self::FullLeftShift32_4,
469 Self::FullLeftShift32_8,
470 Self::FullLeftShift64_1,
471 Self::FullLeftShift64_16,
472 Self::FullLeftShift64_2,
473 Self::FullLeftShift64_32,
474 Self::FullLeftShift64_4,
475 Self::FullLeftShift64_8,
476 Self::FullLeftShift8_1,
477 Self::FullLeftShift8_2,
478 Self::FullLeftShift8_4,
479 Self::FullMultiply16,
480 Self::FullMultiply32,
481 Self::FullMultiply64,
482 Self::FullMultiply8,
483 Self::FullRightShift16_1,
484 Self::FullRightShift16_2,
485 Self::FullRightShift16_4,
486 Self::FullRightShift16_8,
487 Self::FullRightShift32_1,
488 Self::FullRightShift32_16,
489 Self::FullRightShift32_2,
490 Self::FullRightShift32_4,
491 Self::FullRightShift32_8,
492 Self::FullRightShift64_1,
493 Self::FullRightShift64_16,
494 Self::FullRightShift64_2,
495 Self::FullRightShift64_32,
496 Self::FullRightShift64_4,
497 Self::FullRightShift64_8,
498 Self::FullRightShift8_1,
499 Self::FullRightShift8_2,
500 Self::FullRightShift8_4,
501 Self::FullSubtract16,
502 Self::FullSubtract32,
503 Self::FullSubtract64,
504 Self::FullSubtract8,
505 Self::GeIsOnCurve,
506 Self::GeNegate,
507 Self::GejAdd,
508 Self::GejDouble,
509 Self::GejEquiv,
510 Self::GejGeAdd,
511 Self::GejGeAddEx,
512 Self::GejGeEquiv,
513 Self::GejInfinity,
514 Self::GejIsInfinity,
515 Self::GejIsOnCurve,
516 Self::GejNegate,
517 Self::GejNormalize,
518 Self::GejRescale,
519 Self::GejXEquiv,
520 Self::GejYIsOdd,
521 Self::Generate,
522 Self::HashToCurve,
523 Self::High1,
524 Self::High16,
525 Self::High32,
526 Self::High64,
527 Self::High8,
528 Self::Increment16,
529 Self::Increment32,
530 Self::Increment64,
531 Self::Increment8,
532 Self::IsOne16,
533 Self::IsOne32,
534 Self::IsOne64,
535 Self::IsOne8,
536 Self::IsZero16,
537 Self::IsZero32,
538 Self::IsZero64,
539 Self::IsZero8,
540 Self::Le16,
541 Self::Le32,
542 Self::Le64,
543 Self::Le8,
544 Self::LeftExtend16_32,
545 Self::LeftExtend16_64,
546 Self::LeftExtend1_16,
547 Self::LeftExtend1_32,
548 Self::LeftExtend1_64,
549 Self::LeftExtend1_8,
550 Self::LeftExtend32_64,
551 Self::LeftExtend8_16,
552 Self::LeftExtend8_32,
553 Self::LeftExtend8_64,
554 Self::LeftPadHigh16_32,
555 Self::LeftPadHigh16_64,
556 Self::LeftPadHigh1_16,
557 Self::LeftPadHigh1_32,
558 Self::LeftPadHigh1_64,
559 Self::LeftPadHigh1_8,
560 Self::LeftPadHigh32_64,
561 Self::LeftPadHigh8_16,
562 Self::LeftPadHigh8_32,
563 Self::LeftPadHigh8_64,
564 Self::LeftPadLow16_32,
565 Self::LeftPadLow16_64,
566 Self::LeftPadLow1_16,
567 Self::LeftPadLow1_32,
568 Self::LeftPadLow1_64,
569 Self::LeftPadLow1_8,
570 Self::LeftPadLow32_64,
571 Self::LeftPadLow8_16,
572 Self::LeftPadLow8_32,
573 Self::LeftPadLow8_64,
574 Self::LeftRotate16,
575 Self::LeftRotate32,
576 Self::LeftRotate64,
577 Self::LeftRotate8,
578 Self::LeftShift16,
579 Self::LeftShift32,
580 Self::LeftShift64,
581 Self::LeftShift8,
582 Self::LeftShiftWith16,
583 Self::LeftShiftWith32,
584 Self::LeftShiftWith64,
585 Self::LeftShiftWith8,
586 Self::Leftmost16_1,
587 Self::Leftmost16_2,
588 Self::Leftmost16_4,
589 Self::Leftmost16_8,
590 Self::Leftmost32_1,
591 Self::Leftmost32_16,
592 Self::Leftmost32_2,
593 Self::Leftmost32_4,
594 Self::Leftmost32_8,
595 Self::Leftmost64_1,
596 Self::Leftmost64_16,
597 Self::Leftmost64_2,
598 Self::Leftmost64_32,
599 Self::Leftmost64_4,
600 Self::Leftmost64_8,
601 Self::Leftmost8_1,
602 Self::Leftmost8_2,
603 Self::Leftmost8_4,
604 Self::LinearCombination1,
605 Self::LinearVerify1,
606 Self::Low1,
607 Self::Low16,
608 Self::Low32,
609 Self::Low64,
610 Self::Low8,
611 Self::Lt16,
612 Self::Lt32,
613 Self::Lt64,
614 Self::Lt8,
615 Self::Maj1,
616 Self::Maj16,
617 Self::Maj32,
618 Self::Maj64,
619 Self::Maj8,
620 Self::Max16,
621 Self::Max32,
622 Self::Max64,
623 Self::Max8,
624 Self::Median16,
625 Self::Median32,
626 Self::Median64,
627 Self::Median8,
628 Self::Min16,
629 Self::Min32,
630 Self::Min64,
631 Self::Min8,
632 Self::Modulo16,
633 Self::Modulo32,
634 Self::Modulo64,
635 Self::Modulo8,
636 Self::Multiply16,
637 Self::Multiply32,
638 Self::Multiply64,
639 Self::Multiply8,
640 Self::Negate16,
641 Self::Negate32,
642 Self::Negate64,
643 Self::Negate8,
644 Self::One16,
645 Self::One32,
646 Self::One64,
647 Self::One8,
648 Self::Or1,
649 Self::Or16,
650 Self::Or32,
651 Self::Or64,
652 Self::Or8,
653 Self::ParseLock,
654 Self::ParseSequence,
655 Self::PointVerify1,
656 Self::RightExtend16_32,
657 Self::RightExtend16_64,
658 Self::RightExtend32_64,
659 Self::RightExtend8_16,
660 Self::RightExtend8_32,
661 Self::RightExtend8_64,
662 Self::RightPadHigh16_32,
663 Self::RightPadHigh16_64,
664 Self::RightPadHigh1_16,
665 Self::RightPadHigh1_32,
666 Self::RightPadHigh1_64,
667 Self::RightPadHigh1_8,
668 Self::RightPadHigh32_64,
669 Self::RightPadHigh8_16,
670 Self::RightPadHigh8_32,
671 Self::RightPadHigh8_64,
672 Self::RightPadLow16_32,
673 Self::RightPadLow16_64,
674 Self::RightPadLow1_16,
675 Self::RightPadLow1_32,
676 Self::RightPadLow1_64,
677 Self::RightPadLow1_8,
678 Self::RightPadLow32_64,
679 Self::RightPadLow8_16,
680 Self::RightPadLow8_32,
681 Self::RightPadLow8_64,
682 Self::RightRotate16,
683 Self::RightRotate32,
684 Self::RightRotate64,
685 Self::RightRotate8,
686 Self::RightShift16,
687 Self::RightShift32,
688 Self::RightShift64,
689 Self::RightShift8,
690 Self::RightShiftWith16,
691 Self::RightShiftWith32,
692 Self::RightShiftWith64,
693 Self::RightShiftWith8,
694 Self::Rightmost16_1,
695 Self::Rightmost16_2,
696 Self::Rightmost16_4,
697 Self::Rightmost16_8,
698 Self::Rightmost32_1,
699 Self::Rightmost32_16,
700 Self::Rightmost32_2,
701 Self::Rightmost32_4,
702 Self::Rightmost32_8,
703 Self::Rightmost64_1,
704 Self::Rightmost64_16,
705 Self::Rightmost64_2,
706 Self::Rightmost64_32,
707 Self::Rightmost64_4,
708 Self::Rightmost64_8,
709 Self::Rightmost8_1,
710 Self::Rightmost8_2,
711 Self::Rightmost8_4,
712 Self::ScalarAdd,
713 Self::ScalarInvert,
714 Self::ScalarIsZero,
715 Self::ScalarMultiply,
716 Self::ScalarMultiplyLambda,
717 Self::ScalarNegate,
718 Self::ScalarNormalize,
719 Self::ScalarSquare,
720 Self::Scale,
721 Self::Sha256Block,
722 Self::Sha256Ctx8Add1,
723 Self::Sha256Ctx8Add128,
724 Self::Sha256Ctx8Add16,
725 Self::Sha256Ctx8Add2,
726 Self::Sha256Ctx8Add256,
727 Self::Sha256Ctx8Add32,
728 Self::Sha256Ctx8Add4,
729 Self::Sha256Ctx8Add512,
730 Self::Sha256Ctx8Add64,
731 Self::Sha256Ctx8Add8,
732 Self::Sha256Ctx8AddBuffer511,
733 Self::Sha256Ctx8Finalize,
734 Self::Sha256Ctx8Init,
735 Self::Sha256Iv,
736 Self::Some1,
737 Self::Some16,
738 Self::Some32,
739 Self::Some64,
740 Self::Some8,
741 Self::Subtract16,
742 Self::Subtract32,
743 Self::Subtract64,
744 Self::Subtract8,
745 Self::Swu,
746 Self::TapdataInit,
747 Self::Verify,
748 Self::Xor1,
749 Self::Xor16,
750 Self::Xor32,
751 Self::Xor64,
752 Self::Xor8,
753 Self::XorXor1,
754 Self::XorXor16,
755 Self::XorXor32,
756 Self::XorXor64,
757 Self::XorXor8,
758 ];
759}
760
761impl Jet for Core {
762
763 type Environment = ();
764 type CJetEnvironment = ();
765
766 fn c_jet_env(env: &Self::Environment) -> &Self::CJetEnvironment {
767 env
768 }
769
770 fn cmr(&self) -> Cmr {
771 let bytes = match self {
772 Core::Add16 => [
773 0x26, 0xae, 0x09, 0x94, 0xce, 0x8b, 0x77, 0x1a, 0xf7, 0xad, 0x28, 0x51, 0xb8, 0x3b,
774 0x49, 0xa5, 0x95, 0x05, 0x36, 0x58, 0x9f, 0x67, 0xbd, 0x85, 0x59, 0x47, 0x04, 0x60,
775 0x29, 0x75, 0x1c, 0x0d,
776 ],
777 Core::Add32 => [
778 0x3d, 0x76, 0x74, 0x46, 0x6e, 0xd6, 0x9e, 0x1d, 0xbe, 0xdc, 0xd4, 0x80, 0x57, 0xa9,
779 0xe6, 0x28, 0x8c, 0x22, 0x25, 0x32, 0xfb, 0xc5, 0x04, 0x80, 0x49, 0x92, 0x8c, 0xfb,
780 0x77, 0xf8, 0x29, 0xd9,
781 ],
782 Core::Add64 => [
783 0x9b, 0x56, 0xe6, 0x1e, 0xef, 0xe2, 0x80, 0x5c, 0xa8, 0x73, 0x96, 0xbd, 0xfb, 0x03,
784 0xf5, 0xe1, 0xb1, 0x38, 0x5f, 0x7a, 0xc4, 0xbf, 0xf7, 0x68, 0x40, 0x26, 0xa0, 0x7c,
785 0xf9, 0x7f, 0xb6, 0xf6,
786 ],
787 Core::Add8 => [
788 0xd7, 0x32, 0x8c, 0x09, 0x14, 0xee, 0x99, 0x9e, 0xfa, 0x0a, 0x6c, 0xb2, 0x6e, 0xb4,
789 0x09, 0x12, 0xc2, 0x15, 0xc0, 0x62, 0xe5, 0x8a, 0x98, 0x1a, 0xe6, 0xb2, 0xe4, 0xa8,
790 0x04, 0x74, 0xa1, 0xda,
791 ],
792 Core::All16 => [
793 0x16, 0xf0, 0xc9, 0x30, 0x7e, 0xb8, 0xf4, 0xc1, 0xfd, 0xd1, 0xba, 0xfa, 0xef, 0x28,
794 0x79, 0x24, 0x29, 0x58, 0x49, 0x8e, 0x8f, 0x5b, 0x2e, 0x0d, 0x29, 0xf0, 0x65, 0x53,
795 0xdc, 0x06, 0xa0, 0xbd,
796 ],
797 Core::All32 => [
798 0x0e, 0xb8, 0xb4, 0x0d, 0x29, 0x02, 0x17, 0x47, 0xee, 0xc4, 0x51, 0xd4, 0xe6, 0x63,
799 0x58, 0x6a, 0x43, 0x6c, 0x2d, 0xb0, 0x93, 0x26, 0x75, 0xda, 0xf2, 0x16, 0x61, 0x23,
800 0xbf, 0xe4, 0x52, 0xa6,
801 ],
802 Core::All64 => [
803 0xa6, 0x5c, 0x82, 0xd5, 0x3d, 0x38, 0x2e, 0xe2, 0x9a, 0xa8, 0x8b, 0x77, 0x18, 0xa9,
804 0x7f, 0xbb, 0xce, 0x64, 0x75, 0xec, 0x32, 0xc4, 0xb4, 0xcd, 0x69, 0x08, 0xfd, 0xe4,
805 0x5d, 0x81, 0xb6, 0x24,
806 ],
807 Core::All8 => [
808 0x1d, 0x3e, 0xc7, 0xfb, 0x6a, 0x07, 0x84, 0x7c, 0x92, 0xb8, 0xa9, 0x98, 0xe1, 0xf6,
809 0xb4, 0x78, 0x31, 0x9d, 0x05, 0x0a, 0x38, 0x76, 0x42, 0xf4, 0x03, 0x2d, 0x2f, 0x7d,
810 0x2e, 0x02, 0x7f, 0xcd,
811 ],
812 Core::And1 => [
813 0xb7, 0x73, 0xce, 0xfa, 0x41, 0x89, 0x57, 0xfe, 0xa7, 0xdf, 0xb4, 0x9c, 0x6c, 0x43,
814 0xb3, 0xdb, 0xfa, 0x35, 0xfa, 0x3d, 0x80, 0xde, 0x8c, 0xfd, 0x4d, 0x70, 0xc0, 0x8d,
815 0x94, 0x5f, 0x5f, 0xba,
816 ],
817 Core::And16 => [
818 0x57, 0xdd, 0x73, 0x0b, 0x1c, 0x8d, 0xdf, 0xf1, 0x3c, 0xae, 0x27, 0x69, 0x56, 0x2b,
819 0xe0, 0xab, 0xc6, 0xca, 0x3b, 0xc8, 0x02, 0xda, 0x0a, 0xbb, 0xb7, 0xfc, 0x13, 0x8c,
820 0xa4, 0x63, 0xda, 0x59,
821 ],
822 Core::And32 => [
823 0x75, 0x3e, 0x33, 0x2d, 0xdf, 0xa0, 0x96, 0xf0, 0x83, 0x99, 0xff, 0xaa, 0x7e, 0xc4,
824 0xda, 0x40, 0x35, 0xbc, 0xba, 0xa1, 0x42, 0xe6, 0xe3, 0x8d, 0x4c, 0xb6, 0x07, 0xce,
825 0x1f, 0x0b, 0x05, 0x1d,
826 ],
827 Core::And64 => [
828 0xf1, 0xad, 0x5e, 0x6c, 0x63, 0xee, 0x5c, 0x89, 0x0b, 0x0f, 0x2e, 0x71, 0x15, 0x61,
829 0xb9, 0x05, 0x31, 0x64, 0x87, 0xac, 0x40, 0x44, 0xdd, 0x23, 0x0c, 0xf6, 0xa7, 0x36,
830 0xf8, 0x1b, 0xd4, 0xf3,
831 ],
832 Core::And8 => [
833 0xac, 0x82, 0x8b, 0x72, 0x4c, 0x5f, 0x53, 0x40, 0xb5, 0x1e, 0x76, 0xe7, 0xb6, 0xe8,
834 0xb2, 0x3a, 0xea, 0xb7, 0x53, 0x3f, 0xd8, 0xc0, 0x91, 0xae, 0x2a, 0x51, 0x55, 0x30,
835 0xae, 0x7a, 0xb2, 0x00,
836 ],
837 Core::Bip0340Verify => [
838 0xc9, 0xc4, 0x5a, 0x8a, 0xec, 0x86, 0x59, 0x14, 0x3b, 0xfe, 0x2a, 0xf6, 0xea, 0xd4,
839 0x8d, 0x4e, 0x05, 0x42, 0x45, 0x3a, 0xca, 0xe8, 0x4b, 0x9b, 0xbb, 0x97, 0x65, 0x6b,
840 0x67, 0x0b, 0xdf, 0xdd,
841 ],
842 Core::Ch1 => [
843 0xb8, 0x41, 0xb8, 0x57, 0xa4, 0xaa, 0x50, 0xea, 0xca, 0x27, 0xa2, 0x6f, 0x74, 0x42,
844 0xfc, 0xbf, 0xe9, 0x54, 0x67, 0x7a, 0xe6, 0xd4, 0x55, 0xf6, 0x05, 0x65, 0x49, 0x89,
845 0xe3, 0x5a, 0xeb, 0x13,
846 ],
847 Core::Ch16 => [
848 0x9c, 0xff, 0x11, 0xa0, 0x9b, 0x60, 0x41, 0xe5, 0xf2, 0x63, 0x9a, 0xe4, 0xc0, 0x65,
849 0xa1, 0x8f, 0xc6, 0x75, 0xdb, 0x2f, 0xbd, 0x98, 0x54, 0x08, 0xe2, 0x8f, 0x02, 0x7a,
850 0x99, 0x11, 0x0e, 0x11,
851 ],
852 Core::Ch32 => [
853 0x07, 0x1c, 0xef, 0x80, 0x39, 0xc7, 0x9f, 0x71, 0x31, 0xcd, 0x6a, 0x5f, 0xe4, 0x93,
854 0xdc, 0x26, 0x8f, 0x9d, 0xb5, 0x8f, 0x7b, 0x20, 0xa8, 0x55, 0x55, 0xe2, 0x97, 0xbd,
855 0xd2, 0x16, 0xcf, 0x40,
856 ],
857 Core::Ch64 => [
858 0xd5, 0x55, 0xd2, 0x19, 0x63, 0xb0, 0x19, 0x2f, 0xc9, 0x72, 0x14, 0xb6, 0x3d, 0xc1,
859 0xc3, 0xaf, 0x75, 0x8b, 0x29, 0x11, 0x58, 0xf0, 0xe1, 0xa3, 0xbc, 0xfd, 0xea, 0x67,
860 0x9c, 0x66, 0x6d, 0xa6,
861 ],
862 Core::Ch8 => [
863 0x35, 0x3f, 0x63, 0xb0, 0xf8, 0xcb, 0x54, 0xf5, 0xae, 0x65, 0x75, 0xaf, 0x8c, 0xa2,
864 0x24, 0x2c, 0xee, 0xe9, 0xf2, 0x7a, 0x84, 0x18, 0x6e, 0xb8, 0x0e, 0x62, 0x0d, 0x5e,
865 0x2e, 0x85, 0x48, 0xec,
866 ],
867 Core::CheckSigVerify => [
868 0xb5, 0x80, 0x15, 0x54, 0x6d, 0x28, 0x52, 0x66, 0x5d, 0xd2, 0x1b, 0xf1, 0x12, 0x66,
869 0x26, 0x70, 0x20, 0xfa, 0x5e, 0x27, 0x50, 0x01, 0xdd, 0x46, 0x18, 0xfa, 0x41, 0x56,
870 0x25, 0x95, 0x2e, 0x68,
871 ],
872 Core::Complement1 => [
873 0xed, 0x74, 0xee, 0xb8, 0x3a, 0x00, 0xc7, 0x13, 0xcc, 0x14, 0xf3, 0x3e, 0xfe, 0x55,
874 0x33, 0x83, 0xcd, 0x04, 0x11, 0xcc, 0x30, 0x20, 0xfd, 0x89, 0x27, 0x93, 0x16, 0x67,
875 0x5d, 0x91, 0x0e, 0x66,
876 ],
877 Core::Complement16 => [
878 0x61, 0xfd, 0xd9, 0x04, 0xa4, 0xae, 0xb7, 0xeb, 0x76, 0x84, 0xaf, 0x61, 0x8e, 0x25,
879 0xaa, 0xe9, 0x07, 0xcd, 0x1d, 0xb0, 0xf6, 0x2d, 0x97, 0x03, 0xc5, 0xb8, 0x54, 0xe1,
880 0x66, 0x3c, 0xac, 0x9f,
881 ],
882 Core::Complement32 => [
883 0xfe, 0xb0, 0x2c, 0xc3, 0x6e, 0x19, 0x5b, 0x46, 0x2a, 0xe5, 0x04, 0xa9, 0x12, 0xda,
884 0xdf, 0xe6, 0x6a, 0xd4, 0x7f, 0x23, 0xa0, 0xcb, 0x3b, 0xae, 0xa2, 0x1d, 0x31, 0xaa,
885 0xa0, 0xce, 0x10, 0x1d,
886 ],
887 Core::Complement64 => [
888 0x45, 0x07, 0x2d, 0x5a, 0xa0, 0xe5, 0xc3, 0x7c, 0x9e, 0x52, 0x1d, 0xcc, 0x92, 0xe8,
889 0xf3, 0x9a, 0x5f, 0x75, 0xe7, 0xd9, 0x28, 0x67, 0x0a, 0xca, 0xb7, 0x9c, 0xd8, 0xc8,
890 0xb5, 0xb5, 0x9e, 0x1a,
891 ],
892 Core::Complement8 => [
893 0x69, 0x16, 0xb2, 0x8f, 0xb5, 0x74, 0xd9, 0xc9, 0x08, 0xa3, 0xf3, 0x3f, 0x74, 0xbf,
894 0x06, 0xf7, 0xed, 0x93, 0x72, 0x54, 0x24, 0x7f, 0x9e, 0xfc, 0x26, 0x03, 0xd7, 0x17,
895 0x1d, 0xd4, 0x97, 0xbe,
896 ],
897 Core::Decompress => [
898 0x13, 0x97, 0x33, 0x17, 0xd5, 0x87, 0x41, 0x8e, 0xf3, 0x06, 0x36, 0x31, 0xa6, 0xed,
899 0xb0, 0xac, 0xfa, 0x1c, 0xbe, 0x49, 0x83, 0xd7, 0x57, 0x4b, 0x1b, 0x30, 0x5f, 0x96,
900 0x61, 0xc0, 0x48, 0xcb,
901 ],
902 Core::Decrement16 => [
903 0xe3, 0x4d, 0xb1, 0x18, 0x79, 0x27, 0x2b, 0x32, 0x7a, 0x3b, 0xd0, 0x34, 0xc0, 0xf6,
904 0x1e, 0xf6, 0x0a, 0x2b, 0xe9, 0x6f, 0xdf, 0xe0, 0xb2, 0xd5, 0x7f, 0xfe, 0x39, 0xce,
905 0x71, 0x4c, 0x78, 0xfb,
906 ],
907 Core::Decrement32 => [
908 0x01, 0x9e, 0xad, 0x5a, 0x73, 0x05, 0x60, 0x6d, 0xc9, 0x50, 0xfb, 0x55, 0x47, 0x6d,
909 0x09, 0xc1, 0x7d, 0x66, 0xf5, 0x70, 0xda, 0xb5, 0x10, 0xb9, 0x0d, 0x2a, 0x27, 0xe2,
910 0x26, 0x65, 0x99, 0xcf,
911 ],
912 Core::Decrement64 => [
913 0x34, 0x75, 0x2c, 0xf4, 0xe1, 0xd0, 0xa4, 0x31, 0xf0, 0x17, 0xa6, 0x8b, 0xeb, 0xfa,
914 0xb7, 0x41, 0xbb, 0xc8, 0x8a, 0xff, 0xb5, 0x7c, 0xc0, 0xb3, 0x02, 0x5c, 0xcf, 0xdd,
915 0x67, 0x62, 0x2f, 0x35,
916 ],
917 Core::Decrement8 => [
918 0x28, 0x92, 0xce, 0xb3, 0xb6, 0xec, 0x53, 0x25, 0xd0, 0xc1, 0xb9, 0xf5, 0x20, 0x42,
919 0x5e, 0x4b, 0x05, 0xc2, 0xe1, 0xf4, 0x37, 0xe0, 0xb3, 0xf5, 0x81, 0xf4, 0x1b, 0x9d,
920 0x0f, 0x7d, 0xff, 0x4d,
921 ],
922 Core::DivMod128_64 => [
923 0x22, 0x96, 0xb7, 0x0f, 0x60, 0x0e, 0x8a, 0x21, 0x4a, 0xd0, 0x70, 0xb2, 0x19, 0x4a,
924 0x67, 0x7d, 0x30, 0x51, 0xbc, 0x1c, 0x49, 0x01, 0x83, 0x97, 0x5f, 0x2a, 0x1d, 0x3e,
925 0x0c, 0xad, 0xe3, 0x78,
926 ],
927 Core::DivMod16 => [
928 0x64, 0x8f, 0xab, 0x86, 0x43, 0x74, 0x84, 0x6a, 0xbf, 0x4f, 0x9d, 0x9d, 0xef, 0xe2,
929 0x75, 0x61, 0x4d, 0x33, 0xf4, 0x82, 0x9c, 0x36, 0xa4, 0x7e, 0xcb, 0x53, 0xd7, 0xbf,
930 0xb6, 0x05, 0x48, 0x5f,
931 ],
932 Core::DivMod32 => [
933 0xbd, 0x3d, 0x4d, 0x55, 0x2d, 0x7b, 0x34, 0x7b, 0xd8, 0xa4, 0x4e, 0x3e, 0xe2, 0x24,
934 0xc8, 0x46, 0xbe, 0x23, 0x0f, 0xf6, 0xe2, 0x04, 0x4d, 0xdb, 0x97, 0xf4, 0x8e, 0x27,
935 0xd2, 0x0c, 0x42, 0x25,
936 ],
937 Core::DivMod64 => [
938 0xfa, 0x6b, 0xad, 0x6a, 0x95, 0xe2, 0xab, 0xa4, 0x30, 0x5b, 0xfe, 0x91, 0xcc, 0x47,
939 0xac, 0xc3, 0xd9, 0x9b, 0x92, 0xe6, 0x75, 0xe6, 0x9d, 0x3b, 0x37, 0xbb, 0x09, 0x13,
940 0x3d, 0x39, 0x0d, 0x0f,
941 ],
942 Core::DivMod8 => [
943 0x48, 0xcd, 0x50, 0x1b, 0xb2, 0xaa, 0x2a, 0xca, 0xe0, 0x14, 0xfe, 0x20, 0x8b, 0xb9,
944 0x94, 0x1d, 0x07, 0xa9, 0xbf, 0xfe, 0x1a, 0xd6, 0xcd, 0x3d, 0x36, 0xfc, 0x6b, 0x08,
945 0x60, 0xf6, 0xeb, 0xa7,
946 ],
947 Core::Divide16 => [
948 0x47, 0x0b, 0x01, 0xa5, 0x7c, 0x4f, 0x9d, 0x8f, 0x99, 0x7f, 0xcd, 0xe0, 0x06, 0x19,
949 0x16, 0x11, 0xdd, 0xa4, 0xc9, 0x8b, 0xa2, 0xa5, 0xf1, 0xda, 0x13, 0x4a, 0xe4, 0xc2,
950 0x2d, 0x52, 0xe9, 0x20,
951 ],
952 Core::Divide32 => [
953 0xab, 0x03, 0xac, 0xd8, 0x93, 0x61, 0x0c, 0x3c, 0x65, 0x82, 0xe7, 0xf7, 0xfb, 0xe5,
954 0xe7, 0x56, 0x25, 0x74, 0xa7, 0xb2, 0x66, 0x46, 0xf1, 0xc2, 0xfd, 0xc6, 0xe7, 0x6e,
955 0x44, 0x5a, 0x77, 0xa1,
956 ],
957 Core::Divide64 => [
958 0xeb, 0xfc, 0x56, 0xfb, 0xb8, 0xa4, 0x7e, 0x73, 0xff, 0xab, 0xb7, 0xea, 0x22, 0x8a,
959 0xc7, 0x84, 0x37, 0xbe, 0x82, 0x0e, 0xdd, 0xfa, 0x47, 0x81, 0x4c, 0xce, 0xbd, 0x26,
960 0x1b, 0xd8, 0xcf, 0xff,
961 ],
962 Core::Divide8 => [
963 0x2c, 0xcf, 0xbc, 0x7c, 0x02, 0xbf, 0x4d, 0x53, 0x04, 0x93, 0xbb, 0x22, 0x86, 0x7a,
964 0x95, 0x1d, 0x8a, 0xe9, 0x13, 0x12, 0x66, 0x87, 0x59, 0x72, 0x84, 0xe9, 0xbb, 0xb3,
965 0xe1, 0xe7, 0xe3, 0x49,
966 ],
967 Core::Divides16 => [
968 0x5f, 0xc3, 0xac, 0x38, 0x4d, 0x5f, 0x45, 0x40, 0x41, 0x56, 0x97, 0x1a, 0x76, 0x8d,
969 0x93, 0xbc, 0x06, 0x4b, 0xc1, 0x7c, 0x15, 0xa3, 0x7c, 0x27, 0x01, 0x9d, 0xde, 0xef,
970 0x17, 0x04, 0x6d, 0xd4,
971 ],
972 Core::Divides32 => [
973 0xcc, 0x45, 0xb4, 0x05, 0x24, 0x64, 0x38, 0xf7, 0x65, 0x74, 0x0b, 0x4f, 0xb0, 0xa3,
974 0x4d, 0xc8, 0x1b, 0x34, 0x78, 0x01, 0x98, 0x86, 0x3b, 0x0f, 0xb1, 0x86, 0x44, 0x6a,
975 0xdf, 0xbb, 0x09, 0xde,
976 ],
977 Core::Divides64 => [
978 0xdc, 0x47, 0x3b, 0xfd, 0xec, 0x30, 0xab, 0x98, 0xd4, 0x8c, 0xd0, 0x88, 0x84, 0xef,
979 0x4f, 0xff, 0xef, 0x3d, 0x4b, 0x16, 0xad, 0x5c, 0x37, 0x11, 0x2a, 0x20, 0x35, 0xb9,
980 0x9b, 0xb7, 0x74, 0x58,
981 ],
982 Core::Divides8 => [
983 0x0b, 0x55, 0x02, 0xac, 0x4f, 0x21, 0xf2, 0x30, 0xa0, 0x9c, 0xcf, 0xaf, 0xfa, 0xac,
984 0x77, 0xa7, 0xc4, 0x1b, 0x2b, 0xf3, 0x0b, 0x14, 0x68, 0x48, 0x1e, 0x4d, 0xfb, 0x98,
985 0xb6, 0x18, 0x7a, 0x0d,
986 ],
987 Core::Eq1 => [
988 0x60, 0x7f, 0x6b, 0x8f, 0x5d, 0x25, 0xb8, 0x0e, 0x05, 0xa2, 0xbf, 0x79, 0xd6, 0x2e,
989 0x87, 0x07, 0x99, 0x52, 0x2c, 0xc3, 0xe3, 0x9c, 0xe9, 0x62, 0x57, 0x45, 0x52, 0x93,
990 0xf9, 0xb2, 0xb2, 0xed,
991 ],
992 Core::Eq16 => [
993 0xc9, 0x96, 0xe4, 0x2b, 0x97, 0x9a, 0xbc, 0x53, 0x0c, 0xc2, 0x71, 0x63, 0x66, 0x71,
994 0xe9, 0x20, 0x54, 0x87, 0x6a, 0x1e, 0xca, 0xed, 0x14, 0x33, 0xfd, 0x61, 0x9a, 0x25,
995 0xfe, 0x6d, 0x03, 0xad,
996 ],
997 Core::Eq256 => [
998 0x77, 0x8d, 0x15, 0x06, 0xc7, 0x35, 0xd2, 0x77, 0x6b, 0x95, 0x0f, 0xac, 0xef, 0xc1,
999 0x59, 0xb6, 0x78, 0xde, 0xc0, 0x38, 0x28, 0xcf, 0x02, 0x73, 0xee, 0xea, 0x64, 0xa9,
1000 0xda, 0x98, 0xc1, 0x2c,
1001 ],
1002 Core::Eq32 => [
1003 0x66, 0xd3, 0x89, 0x03, 0xe7, 0x3b, 0x1a, 0x13, 0x20, 0xc6, 0x8a, 0x4a, 0x39, 0x70,
1004 0xd7, 0x1f, 0x94, 0xba, 0x9e, 0x2b, 0x15, 0x16, 0x83, 0x99, 0x43, 0xfb, 0x15, 0xe4,
1005 0x4e, 0xbf, 0x57, 0xfb,
1006 ],
1007 Core::Eq64 => [
1008 0xd6, 0xa6, 0x66, 0xb4, 0xe0, 0xf9, 0xf5, 0x75, 0x50, 0x8d, 0xbf, 0x3b, 0x31, 0xce,
1009 0xea, 0x68, 0x39, 0x3c, 0x7d, 0xb2, 0xe9, 0x8b, 0xc5, 0x92, 0xfd, 0xd2, 0x6f, 0xae,
1010 0x83, 0x7a, 0x0b, 0x87,
1011 ],
1012 Core::Eq8 => [
1013 0x99, 0x78, 0x7b, 0xa2, 0x67, 0x2d, 0xd0, 0xeb, 0x4d, 0x7d, 0x2e, 0xa9, 0x94, 0x49,
1014 0xde, 0x8f, 0x79, 0x8e, 0x7c, 0xb1, 0x81, 0xa5, 0xe1, 0x66, 0xe1, 0xa5, 0x3f, 0x98,
1015 0x02, 0xb6, 0x20, 0x64,
1016 ],
1017 Core::FeAdd => [
1018 0xb0, 0x59, 0x3e, 0x18, 0x7e, 0xe7, 0x33, 0x3c, 0x47, 0xa0, 0x54, 0x67, 0xdf, 0x66,
1019 0xd5, 0x82, 0x0a, 0x6f, 0x5b, 0xef, 0x91, 0x4a, 0x4b, 0x76, 0xe5, 0xd1, 0x63, 0x31,
1020 0x4b, 0x5e, 0xf2, 0x0e,
1021 ],
1022 Core::FeInvert => [
1023 0x34, 0x3e, 0x9c, 0x90, 0xf1, 0x28, 0x50, 0x60, 0x56, 0xb5, 0x48, 0xd2, 0xed, 0x5e,
1024 0x22, 0x3c, 0x81, 0xf5, 0xb0, 0x6a, 0x1e, 0xd8, 0x6b, 0x7c, 0xd9, 0x35, 0x40, 0x57,
1025 0xaa, 0x59, 0x51, 0x02,
1026 ],
1027 Core::FeIsOdd => [
1028 0xdc, 0xf0, 0x37, 0x5d, 0x20, 0x81, 0x8a, 0x99, 0xf7, 0x23, 0xf8, 0x12, 0x3c, 0xbd,
1029 0x05, 0x1a, 0x38, 0x78, 0xa4, 0x28, 0x24, 0xb3, 0x74, 0x0f, 0x68, 0x21, 0xa5, 0xfa,
1030 0x12, 0x3f, 0x14, 0xc7,
1031 ],
1032 Core::FeIsZero => [
1033 0x28, 0xff, 0x41, 0x69, 0x9a, 0x88, 0x1a, 0xaf, 0xb7, 0xa9, 0x76, 0xc0, 0xc5, 0x76,
1034 0x35, 0x3f, 0x7f, 0xe5, 0x44, 0x63, 0xb6, 0xaa, 0x75, 0x4c, 0xf2, 0xc6, 0x32, 0x9a,
1035 0xf2, 0x65, 0x0e, 0x3b,
1036 ],
1037 Core::FeMultiply => [
1038 0x56, 0x69, 0x92, 0x9b, 0x5f, 0x31, 0xfa, 0x3d, 0x02, 0xc5, 0x83, 0x9d, 0xd0, 0x63,
1039 0x54, 0xcd, 0x17, 0x16, 0x35, 0xf3, 0xa0, 0x72, 0x7f, 0x32, 0x2a, 0xbf, 0xc9, 0x94,
1040 0xba, 0x62, 0x90, 0xde,
1041 ],
1042 Core::FeMultiplyBeta => [
1043 0x7a, 0x78, 0x13, 0x45, 0x0d, 0x82, 0xe9, 0x35, 0x69, 0x0f, 0x43, 0x3e, 0x65, 0xdf,
1044 0x70, 0x7a, 0x4d, 0xd1, 0x75, 0x34, 0xa0, 0x0d, 0xdd, 0x40, 0xdd, 0x85, 0xe3, 0xe3,
1045 0xf7, 0x84, 0x02, 0xc3,
1046 ],
1047 Core::FeNegate => [
1048 0x3b, 0x0d, 0x7b, 0x5c, 0x2e, 0x6c, 0x3a, 0xeb, 0x5e, 0x00, 0x08, 0x5b, 0x9d, 0x30,
1049 0x58, 0x5a, 0xff, 0x05, 0x4e, 0x32, 0x5a, 0x99, 0x83, 0x61, 0x11, 0x3b, 0xfd, 0x23,
1050 0x28, 0xc0, 0x08, 0xf6,
1051 ],
1052 Core::FeNormalize => [
1053 0xc5, 0x1b, 0xef, 0xfa, 0x21, 0x5e, 0x9c, 0xde, 0x8e, 0x93, 0x3b, 0xb9, 0x46, 0x80,
1054 0xba, 0xe0, 0x12, 0xc4, 0xda, 0xab, 0x3d, 0x04, 0xb6, 0xcb, 0xf0, 0x73, 0x3f, 0xd7,
1055 0x35, 0x73, 0x35, 0x38,
1056 ],
1057 Core::FeSquare => [
1058 0x5a, 0x6e, 0x7b, 0x2e, 0xac, 0x73, 0xf4, 0xe4, 0x4d, 0xfa, 0x28, 0xfb, 0x86, 0xbb,
1059 0x11, 0x7b, 0x65, 0x60, 0x6f, 0x28, 0x74, 0xd5, 0x65, 0xc9, 0x79, 0x9c, 0x63, 0xe0,
1060 0xfe, 0x69, 0x2b, 0x1a,
1061 ],
1062 Core::FeSquareRoot => [
1063 0xe0, 0x01, 0x42, 0xea, 0x03, 0x09, 0x4a, 0x30, 0x4a, 0xc8, 0x2b, 0xc1, 0xe2, 0xd2,
1064 0xdc, 0x71, 0xfb, 0x06, 0x4e, 0xd0, 0x82, 0x85, 0x67, 0x35, 0xb1, 0x4f, 0xf2, 0xc7,
1065 0xfa, 0xf0, 0x36, 0xf0,
1066 ],
1067 Core::FullAdd16 => [
1068 0xfc, 0x9e, 0x5d, 0xf8, 0x3b, 0xfd, 0xb9, 0x02, 0x8c, 0x87, 0xd1, 0x39, 0xf8, 0x58,
1069 0x39, 0x03, 0xcb, 0x2a, 0x07, 0x04, 0x2a, 0x73, 0xe5, 0x34, 0x81, 0xde, 0xb5, 0x2f,
1070 0xf1, 0xf1, 0xf8, 0x84,
1071 ],
1072 Core::FullAdd32 => [
1073 0xa7, 0xd9, 0x8d, 0x50, 0xd0, 0x45, 0xcb, 0x90, 0x6b, 0x19, 0x5e, 0x65, 0x11, 0x87,
1074 0x94, 0x95, 0xc8, 0x51, 0x09, 0x59, 0x49, 0xa9, 0xc0, 0x1e, 0x60, 0x39, 0xa8, 0x4b,
1075 0x2a, 0x5e, 0xc9, 0x09,
1076 ],
1077 Core::FullAdd64 => [
1078 0x7a, 0xec, 0xc8, 0xc9, 0x05, 0x3b, 0xb2, 0xfb, 0x17, 0x0c, 0x1c, 0x97, 0x2f, 0xd4,
1079 0x00, 0x25, 0x64, 0xe1, 0x52, 0xa0, 0x6d, 0x9f, 0x45, 0x80, 0x75, 0xe3, 0x8c, 0x7a,
1080 0x06, 0x98, 0xa7, 0xf4,
1081 ],
1082 Core::FullAdd8 => [
1083 0xed, 0x3b, 0xa5, 0xb7, 0x9e, 0xa4, 0x5b, 0x18, 0x7a, 0x2d, 0x43, 0xe8, 0xed, 0x80,
1084 0x2d, 0xe1, 0xed, 0x44, 0x26, 0x59, 0x6c, 0xbe, 0x32, 0xe7, 0x57, 0xc8, 0x51, 0x19,
1085 0x15, 0xff, 0xa5, 0xcf,
1086 ],
1087 Core::FullDecrement16 => [
1088 0xd4, 0xc2, 0xed, 0xda, 0x87, 0x2c, 0x05, 0x50, 0x6f, 0x79, 0x2c, 0xf5, 0x46, 0xa8,
1089 0x9d, 0x4d, 0x7c, 0xff, 0xcb, 0x1e, 0x17, 0xf5, 0xda, 0x61, 0x03, 0x10, 0x0e, 0x7e,
1090 0x73, 0xa7, 0x73, 0x7d,
1091 ],
1092 Core::FullDecrement32 => [
1093 0x7c, 0xc2, 0x30, 0x4d, 0x17, 0x43, 0x12, 0x10, 0x2e, 0x9b, 0x73, 0x63, 0x45, 0xc7,
1094 0x7f, 0x77, 0x1d, 0x1f, 0x6a, 0x9c, 0x9e, 0x1d, 0x1c, 0xd8, 0xdb, 0x8c, 0xb4, 0x61,
1095 0x39, 0x80, 0xc8, 0xc2,
1096 ],
1097 Core::FullDecrement64 => [
1098 0x15, 0xc1, 0x63, 0x45, 0x4b, 0xcd, 0x75, 0x44, 0x30, 0xda, 0x55, 0x79, 0xbb, 0xca,
1099 0xad, 0x26, 0xe5, 0x7e, 0x95, 0xc7, 0x72, 0x22, 0x4b, 0x7b, 0x83, 0xc7, 0x05, 0xf7,
1100 0xde, 0xb6, 0x4a, 0xa6,
1101 ],
1102 Core::FullDecrement8 => [
1103 0x7c, 0x5e, 0x94, 0xa9, 0x98, 0x02, 0x81, 0x82, 0x17, 0x37, 0xb1, 0xce, 0x73, 0xbf,
1104 0xda, 0x4c, 0x79, 0xef, 0x64, 0x9b, 0x3d, 0x05, 0xcc, 0x1c, 0x00, 0xc4, 0xa8, 0xb6,
1105 0x4b, 0x94, 0x9b, 0xbe,
1106 ],
1107 Core::FullIncrement16 => [
1108 0x81, 0x38, 0x0a, 0xda, 0xa3, 0xa5, 0x47, 0xf1, 0xbc, 0x4b, 0xbb, 0x64, 0x6b, 0xda,
1109 0x9d, 0x9f, 0xb7, 0xbd, 0x4d, 0xc1, 0xb3, 0xa9, 0xf3, 0xdd, 0x22, 0x0b, 0x56, 0xa4,
1110 0x7c, 0x27, 0x98, 0xfb,
1111 ],
1112 Core::FullIncrement32 => [
1113 0xa7, 0x60, 0xa8, 0x44, 0x9a, 0x2a, 0xb5, 0xde, 0xdb, 0x4e, 0xe5, 0x1b, 0xf5, 0xc2,
1114 0x5a, 0x8f, 0x06, 0xaf, 0x06, 0x66, 0xdf, 0x7f, 0xc4, 0x19, 0xb4, 0x98, 0xb9, 0x09,
1115 0x76, 0xd6, 0x98, 0xcb,
1116 ],
1117 Core::FullIncrement64 => [
1118 0xc6, 0xaf, 0x30, 0xdd, 0x28, 0x6d, 0x6e, 0x21, 0xc3, 0x88, 0x60, 0xed, 0x1e, 0x2f,
1119 0x21, 0x2a, 0x21, 0xb2, 0xfd, 0x1e, 0xde, 0xad, 0xb5, 0xe0, 0xfc, 0xe2, 0xe3, 0xfd,
1120 0x75, 0xb7, 0xf3, 0xc2,
1121 ],
1122 Core::FullIncrement8 => [
1123 0xd3, 0x04, 0xea, 0x28, 0xa9, 0x5d, 0x49, 0x6d, 0x14, 0xb4, 0xf2, 0xfb, 0x5c, 0x86,
1124 0x03, 0x72, 0xec, 0xf2, 0x47, 0xbe, 0xfd, 0xe3, 0xea, 0x3b, 0x2a, 0xd6, 0x7b, 0xce,
1125 0x99, 0x03, 0x9d, 0xbc,
1126 ],
1127 Core::FullLeftShift16_1 => [
1128 0x14, 0xdc, 0xc3, 0x46, 0x6f, 0xa8, 0x28, 0xa3, 0xf0, 0x74, 0x04, 0x51, 0xb8, 0x03,
1129 0x7d, 0x7a, 0xd6, 0x03, 0xea, 0xdc, 0x80, 0xaa, 0xea, 0xdc, 0x66, 0x44, 0x34, 0xac,
1130 0x2a, 0xd7, 0xfd, 0x9c,
1131 ],
1132 Core::FullLeftShift16_2 => [
1133 0xaf, 0xb7, 0xe9, 0x28, 0xb0, 0x52, 0xc2, 0x28, 0x79, 0x21, 0x66, 0x2c, 0xd8, 0xab,
1134 0x12, 0x2f, 0xe0, 0x74, 0xef, 0xd2, 0x51, 0xa5, 0xc9, 0xcf, 0xbc, 0xaa, 0x36, 0x9d,
1135 0x06, 0x33, 0x73, 0x92,
1136 ],
1137 Core::FullLeftShift16_4 => [
1138 0x16, 0x6f, 0x34, 0x8c, 0x59, 0xe2, 0x6f, 0x89, 0xa8, 0x3a, 0x99, 0x1f, 0x67, 0xe5,
1139 0xdb, 0xf7, 0x10, 0xcf, 0xae, 0x3d, 0x6d, 0x96, 0x93, 0x82, 0x82, 0xbb, 0x44, 0xc1,
1140 0xaf, 0xa7, 0x10, 0x9b,
1141 ],
1142 Core::FullLeftShift16_8 => [
1143 0xc0, 0xcd, 0x01, 0x5d, 0xe8, 0xac, 0x4f, 0xcc, 0xd8, 0xdb, 0x89, 0xf4, 0xe5, 0x14,
1144 0x2f, 0xde, 0x27, 0x97, 0x55, 0xb5, 0x42, 0xa2, 0x4f, 0x57, 0xa2, 0xa3, 0xc7, 0xc1,
1145 0xf5, 0x0d, 0x1d, 0xb5,
1146 ],
1147 Core::FullLeftShift32_1 => [
1148 0xce, 0x33, 0xb5, 0xd0, 0xc5, 0x8d, 0x2d, 0x0b, 0x9b, 0x5a, 0x99, 0x44, 0xd3, 0xda,
1149 0xbd, 0xa0, 0x23, 0xcd, 0x44, 0x64, 0x7b, 0xe6, 0x7c, 0xf4, 0x08, 0x28, 0x30, 0xbb,
1150 0x20, 0x5f, 0x8f, 0xbb,
1151 ],
1152 Core::FullLeftShift32_16 => [
1153 0x1c, 0xb3, 0x6e, 0x6f, 0x99, 0x30, 0x85, 0x15, 0xd4, 0xb7, 0x11, 0x90, 0x9c, 0x57,
1154 0x4b, 0x21, 0x24, 0xc1, 0xff, 0x42, 0x2d, 0x8d, 0x7d, 0x94, 0x82, 0xe2, 0x5d, 0x87,
1155 0x88, 0xb3, 0xb9, 0x57,
1156 ],
1157 Core::FullLeftShift32_2 => [
1158 0x3f, 0xae, 0xa9, 0xb5, 0x73, 0xfc, 0x06, 0x9d, 0x8f, 0x43, 0x0f, 0xac, 0xa8, 0x97,
1159 0xb6, 0x87, 0x1e, 0xa0, 0x95, 0x73, 0xc7, 0x15, 0x09, 0x4b, 0x1f, 0x1b, 0xe0, 0x81,
1160 0x84, 0x88, 0xa7, 0x16,
1161 ],
1162 Core::FullLeftShift32_4 => [
1163 0xcd, 0xbb, 0x0d, 0x23, 0x31, 0x05, 0x90, 0x11, 0x3c, 0x93, 0x4f, 0xe6, 0x60, 0x04,
1164 0xd2, 0xa1, 0x1d, 0xa9, 0xcb, 0xf8, 0x87, 0x3d, 0x00, 0xde, 0xe7, 0xf0, 0x22, 0x96,
1165 0xff, 0x0a, 0x2f, 0x12,
1166 ],
1167 Core::FullLeftShift32_8 => [
1168 0xcc, 0xd9, 0x24, 0xe1, 0xa6, 0x18, 0x49, 0x42, 0x0f, 0xf6, 0x2e, 0xd8, 0xb2, 0x45,
1169 0xa3, 0xaa, 0x18, 0xc9, 0x8c, 0x41, 0xf9, 0xc5, 0xa3, 0xc0, 0xb8, 0x85, 0x86, 0x3c,
1170 0x44, 0x9b, 0x7d, 0x14,
1171 ],
1172 Core::FullLeftShift64_1 => [
1173 0xd4, 0x63, 0xcc, 0xdc, 0x7f, 0xd1, 0x4e, 0x5e, 0x89, 0x41, 0x62, 0xb2, 0xae, 0x71,
1174 0x41, 0x28, 0xa1, 0x0d, 0xc9, 0x20, 0x00, 0xb5, 0x4c, 0x84, 0x3b, 0x64, 0x9c, 0xcb,
1175 0x77, 0x56, 0x26, 0xe5,
1176 ],
1177 Core::FullLeftShift64_16 => [
1178 0x88, 0x2d, 0xce, 0x21, 0x2a, 0x0e, 0x61, 0xf8, 0xf9, 0x4c, 0xb5, 0xe3, 0x2e, 0x00,
1179 0xa5, 0x28, 0x7c, 0xf6, 0x4f, 0x20, 0xc2, 0x1f, 0xca, 0x84, 0xf1, 0xe3, 0xdf, 0x7f,
1180 0x4a, 0x62, 0x91, 0xcd,
1181 ],
1182 Core::FullLeftShift64_2 => [
1183 0x48, 0xc8, 0x9b, 0x19, 0x1a, 0x51, 0xb6, 0xab, 0x03, 0x4c, 0x80, 0xea, 0xff, 0x34,
1184 0x82, 0x38, 0xd9, 0x3f, 0xb3, 0x1c, 0x1e, 0x92, 0xe7, 0xf2, 0xae, 0x49, 0x31, 0x7e,
1185 0x0e, 0x33, 0xf8, 0x2d,
1186 ],
1187 Core::FullLeftShift64_32 => [
1188 0x39, 0x75, 0x90, 0x73, 0x33, 0xe1, 0x27, 0x30, 0x62, 0x55, 0xb7, 0xf8, 0x89, 0x39,
1189 0xe2, 0x85, 0x7f, 0x42, 0xae, 0x1b, 0xf0, 0xc6, 0x62, 0x40, 0xa8, 0x22, 0x4c, 0x8d,
1190 0xa3, 0x8b, 0xb1, 0xbe,
1191 ],
1192 Core::FullLeftShift64_4 => [
1193 0x29, 0x31, 0x32, 0xeb, 0x15, 0xdd, 0xf4, 0x17, 0x74, 0xb0, 0x00, 0x5a, 0x3b, 0x5c,
1194 0x50, 0x95, 0x9f, 0xa8, 0x98, 0x2b, 0x75, 0x9e, 0x83, 0x28, 0x27, 0xc7, 0x4f, 0xa8,
1195 0x28, 0x50, 0x66, 0x6c,
1196 ],
1197 Core::FullLeftShift64_8 => [
1198 0xe6, 0xab, 0xde, 0xd8, 0xbe, 0x58, 0x5e, 0xb0, 0xb6, 0xd4, 0x6e, 0x0c, 0x5e, 0xb2,
1199 0x8a, 0x74, 0x5f, 0x4e, 0x5c, 0x56, 0xfd, 0x65, 0x21, 0xf8, 0xf3, 0x96, 0xcb, 0x21,
1200 0xa7, 0x58, 0xf7, 0x4c,
1201 ],
1202 Core::FullLeftShift8_1 => [
1203 0x73, 0x3f, 0xed, 0x08, 0x47, 0xa2, 0xff, 0xac, 0x9a, 0xab, 0xf5, 0x0a, 0x2f, 0xeb,
1204 0x50, 0x59, 0x89, 0x84, 0xf1, 0x6d, 0x8b, 0x73, 0x24, 0x68, 0xb3, 0xd3, 0x15, 0xc0,
1205 0x1e, 0xa4, 0x29, 0x9b,
1206 ],
1207 Core::FullLeftShift8_2 => [
1208 0xb4, 0x47, 0x4d, 0x0b, 0xa1, 0xcf, 0x4f, 0xa2, 0xd6, 0x4c, 0xd4, 0xfe, 0x67, 0xbd,
1209 0xc9, 0x2c, 0xb8, 0x9e, 0xfa, 0x70, 0xcb, 0x99, 0xaf, 0x77, 0x91, 0xbf, 0x7e, 0xf6,
1210 0xe9, 0x09, 0xd2, 0xc7,
1211 ],
1212 Core::FullLeftShift8_4 => [
1213 0x8e, 0xb5, 0x22, 0xb9, 0x97, 0x04, 0x74, 0xad, 0xbb, 0x7a, 0xb0, 0xde, 0x37, 0xc4,
1214 0xe7, 0xa0, 0x56, 0xa1, 0xcb, 0x21, 0x2e, 0x41, 0x03, 0xe4, 0xa8, 0xcb, 0xbb, 0xb6,
1215 0x3d, 0x97, 0x56, 0x06,
1216 ],
1217 Core::FullMultiply16 => [
1218 0x88, 0x47, 0x0c, 0xbf, 0x9b, 0x4d, 0xec, 0x37, 0xea, 0x05, 0xd7, 0xb6, 0x30, 0xf2,
1219 0xf1, 0x12, 0x54, 0x75, 0x67, 0xd3, 0x4f, 0x33, 0xd9, 0x6e, 0x5f, 0x61, 0x1b, 0xd9,
1220 0xda, 0x97, 0xab, 0xb5,
1221 ],
1222 Core::FullMultiply32 => [
1223 0x28, 0x04, 0x06, 0x00, 0xa6, 0x6e, 0x1a, 0x0c, 0x52, 0x25, 0x85, 0x20, 0x48, 0x8b,
1224 0x94, 0xc8, 0x20, 0xc6, 0xcf, 0x86, 0xca, 0x27, 0xae, 0x39, 0x03, 0x4d, 0xdd, 0xca,
1225 0xb9, 0x04, 0xd1, 0xd5,
1226 ],
1227 Core::FullMultiply64 => [
1228 0x53, 0x01, 0x4f, 0x35, 0xa8, 0xdf, 0x20, 0x91, 0xaf, 0x3e, 0xf9, 0xb8, 0xd1, 0x6b,
1229 0x38, 0xb9, 0xbc, 0x96, 0x61, 0xbf, 0xdb, 0xc9, 0x57, 0x33, 0x3f, 0xba, 0x2a, 0x94,
1230 0x8c, 0x1e, 0x8c, 0x25,
1231 ],
1232 Core::FullMultiply8 => [
1233 0xd3, 0xd2, 0x45, 0x54, 0xc4, 0x66, 0xdd, 0x60, 0x37, 0x54, 0x52, 0x47, 0x36, 0xa7,
1234 0x1e, 0xb2, 0x35, 0xde, 0xf9, 0xb5, 0x06, 0x96, 0x5e, 0x32, 0xd5, 0x68, 0x26, 0xe1,
1235 0x9f, 0xba, 0xd6, 0xc1,
1236 ],
1237 Core::FullRightShift16_1 => [
1238 0xb3, 0x79, 0xe2, 0x96, 0xe9, 0xa9, 0x8f, 0xb3, 0xb5, 0x66, 0x2b, 0x8b, 0xa0, 0x4e,
1239 0x3c, 0xc1, 0xa4, 0x3c, 0x74, 0x42, 0x9e, 0x93, 0x12, 0x33, 0xfd, 0xd7, 0xfc, 0x8f,
1240 0xe6, 0xb7, 0xa2, 0xe0,
1241 ],
1242 Core::FullRightShift16_2 => [
1243 0xae, 0xb8, 0xc6, 0x08, 0x06, 0xa4, 0x79, 0x20, 0x77, 0x58, 0xe3, 0x90, 0x83, 0xb4,
1244 0xa9, 0xa7, 0xa1, 0x4d, 0xa4, 0xee, 0x9b, 0xc1, 0x09, 0x7f, 0xc5, 0xcb, 0x4b, 0x75,
1245 0x54, 0x0d, 0x75, 0x78,
1246 ],
1247 Core::FullRightShift16_4 => [
1248 0x60, 0xb7, 0xf0, 0x84, 0x75, 0xcc, 0x0c, 0xce, 0x64, 0xdc, 0xa1, 0x2d, 0x9f, 0x6a,
1249 0x91, 0x9c, 0x30, 0x61, 0x81, 0x10, 0xed, 0xa1, 0x40, 0x65, 0x92, 0x9c, 0x00, 0x4e,
1250 0x7f, 0xc1, 0xb0, 0xfb,
1251 ],
1252 Core::FullRightShift16_8 => [
1253 0xf7, 0x9d, 0xba, 0x3e, 0x0a, 0xf3, 0xd6, 0xa5, 0x59, 0xa9, 0xe9, 0xdf, 0xfe, 0xa7,
1254 0x10, 0xaf, 0x62, 0x3f, 0xe6, 0xe6, 0x64, 0x4b, 0x89, 0x79, 0x95, 0xd7, 0x1b, 0x8a,
1255 0x41, 0x67, 0xdd, 0xb0,
1256 ],
1257 Core::FullRightShift32_1 => [
1258 0xad, 0x0d, 0x5c, 0x75, 0xea, 0x68, 0x43, 0x71, 0x91, 0x77, 0x0d, 0x7f, 0xdf, 0x80,
1259 0x4b, 0xbc, 0x9d, 0x57, 0x3d, 0x5f, 0x10, 0x19, 0x98, 0x23, 0xd8, 0x09, 0xc9, 0xc4,
1260 0x6c, 0xd2, 0x75, 0xad,
1261 ],
1262 Core::FullRightShift32_16 => [
1263 0x45, 0x52, 0x99, 0xfd, 0x6f, 0x42, 0xab, 0x49, 0xdb, 0xb7, 0x09, 0xe6, 0x5a, 0x3b,
1264 0x53, 0x66, 0x25, 0x0b, 0xdc, 0x54, 0x5d, 0x62, 0x29, 0xe8, 0xe2, 0x36, 0x05, 0x6d,
1265 0xdd, 0x19, 0x77, 0xfd,
1266 ],
1267 Core::FullRightShift32_2 => [
1268 0x44, 0x38, 0x4b, 0x15, 0x06, 0xd4, 0x43, 0xd2, 0xf8, 0xa2, 0x88, 0x2b, 0x45, 0x63,
1269 0xd7, 0x93, 0x1a, 0x7e, 0xbc, 0xe6, 0x4a, 0xcf, 0x0d, 0x02, 0xee, 0x59, 0xec, 0x69,
1270 0xd3, 0x06, 0x52, 0x39,
1271 ],
1272 Core::FullRightShift32_4 => [
1273 0x2e, 0x9a, 0x8a, 0xb5, 0xa1, 0x81, 0x7b, 0xd0, 0xb8, 0xa4, 0x66, 0x26, 0x99, 0x49,
1274 0x17, 0xa0, 0xde, 0x1a, 0x74, 0x5e, 0x99, 0x52, 0x0c, 0xe6, 0xeb, 0xcc, 0x67, 0xd4,
1275 0x63, 0x65, 0x51, 0xb7,
1276 ],
1277 Core::FullRightShift32_8 => [
1278 0xaf, 0x47, 0xd4, 0xf9, 0x6e, 0x7d, 0x80, 0x26, 0xd4, 0x4e, 0x6e, 0xca, 0x1b, 0x80,
1279 0x7f, 0x73, 0x34, 0x4c, 0xe2, 0xea, 0xf7, 0x00, 0xb2, 0xc8, 0x2b, 0x4b, 0xb0, 0x02,
1280 0x61, 0xa8, 0x6f, 0x94,
1281 ],
1282 Core::FullRightShift64_1 => [
1283 0x03, 0xaf, 0xb5, 0x47, 0xc3, 0x09, 0x13, 0xf1, 0x6f, 0x3e, 0x37, 0x0d, 0x7f, 0x9c,
1284 0xa0, 0x29, 0x0b, 0x61, 0x5b, 0x42, 0x85, 0x05, 0x1b, 0xb9, 0x3c, 0x3c, 0x1a, 0x9b,
1285 0x72, 0xee, 0x8d, 0xe4,
1286 ],
1287 Core::FullRightShift64_16 => [
1288 0x1f, 0xb0, 0x56, 0xfc, 0xb6, 0x90, 0xce, 0xe3, 0xcf, 0xf7, 0x2c, 0x7d, 0xec, 0xda,
1289 0x80, 0x6d, 0x21, 0x46, 0xc4, 0x92, 0xae, 0x73, 0x1a, 0x6b, 0x94, 0xb8, 0xbb, 0x4f,
1290 0x15, 0x99, 0xb0, 0xcc,
1291 ],
1292 Core::FullRightShift64_2 => [
1293 0x06, 0x73, 0xbf, 0xf2, 0x1e, 0x37, 0x5e, 0x5d, 0xbc, 0xaf, 0x38, 0x04, 0x66, 0x48,
1294 0x25, 0xdd, 0x67, 0x48, 0x44, 0xd2, 0xfd, 0xb7, 0x84, 0xa4, 0xfe, 0xfb, 0xc9, 0x25,
1295 0xcf, 0x6b, 0x27, 0xad,
1296 ],
1297 Core::FullRightShift64_32 => [
1298 0x35, 0x6f, 0x7d, 0xd4, 0x6b, 0xa3, 0x3f, 0x84, 0xb0, 0x66, 0x72, 0xfd, 0xe9, 0xa2,
1299 0x97, 0x2e, 0x80, 0xf3, 0xea, 0x96, 0x5a, 0xe8, 0xbc, 0x0b, 0xff, 0x67, 0xaa, 0x2f,
1300 0x69, 0xf1, 0x0b, 0x56,
1301 ],
1302 Core::FullRightShift64_4 => [
1303 0x4c, 0x25, 0xf6, 0x01, 0x1f, 0xd3, 0xd1, 0xac, 0x18, 0xe1, 0x1e, 0xb4, 0x30, 0x61,
1304 0xfa, 0xd6, 0x9f, 0x3c, 0xe3, 0x9f, 0x7a, 0x99, 0xce, 0xde, 0x50, 0xcc, 0x85, 0xbf,
1305 0x88, 0xbf, 0xba, 0x82,
1306 ],
1307 Core::FullRightShift64_8 => [
1308 0xa5, 0x1d, 0xf9, 0x44, 0x86, 0x02, 0xfa, 0x81, 0x00, 0x1a, 0xa1, 0xb5, 0xb1, 0x3b,
1309 0xe8, 0x8d, 0x4b, 0x2f, 0x4d, 0x0f, 0x60, 0x74, 0x08, 0x01, 0xce, 0xf9, 0x91, 0x00,
1310 0x2f, 0xe3, 0x7d, 0x6d,
1311 ],
1312 Core::FullRightShift8_1 => [
1313 0xd9, 0xd4, 0xb1, 0x6d, 0x37, 0xe4, 0xeb, 0x5c, 0xc5, 0x15, 0x04, 0x26, 0xe3, 0xe8,
1314 0x6c, 0xf6, 0x0a, 0xbb, 0xdf, 0xa1, 0xd0, 0xec, 0xb4, 0x15, 0x82, 0x96, 0x5e, 0x80,
1315 0x00, 0xcb, 0xd2, 0x91,
1316 ],
1317 Core::FullRightShift8_2 => [
1318 0x07, 0x9a, 0xa1, 0x66, 0x17, 0x19, 0x8a, 0xd5, 0xdf, 0x2c, 0x98, 0xa6, 0x3a, 0xf7,
1319 0x6c, 0x1b, 0x3e, 0x12, 0x0f, 0xd2, 0x10, 0x6b, 0x22, 0x5f, 0x63, 0xfd, 0x06, 0xac,
1320 0x57, 0x1d, 0x04, 0xa4,
1321 ],
1322 Core::FullRightShift8_4 => [
1323 0x9d, 0x9d, 0x3f, 0x63, 0x8a, 0x84, 0x63, 0x86, 0xa2, 0x1e, 0x71, 0x5f, 0x39, 0x46,
1324 0x16, 0x86, 0x4a, 0x2e, 0xf7, 0x98, 0x4a, 0x88, 0xcd, 0x95, 0x50, 0x55, 0x66, 0x29,
1325 0x7b, 0xe7, 0xe0, 0x6c,
1326 ],
1327 Core::FullSubtract16 => [
1328 0x1f, 0xc8, 0x8e, 0x23, 0x29, 0xf4, 0xaa, 0xf1, 0x2b, 0x30, 0x51, 0x3f, 0x7a, 0x21,
1329 0xcf, 0x5d, 0x8d, 0xe2, 0x4b, 0x60, 0x0a, 0x19, 0xa2, 0x17, 0x41, 0x28, 0x1b, 0x4d,
1330 0x61, 0xaa, 0xc6, 0x33,
1331 ],
1332 Core::FullSubtract32 => [
1333 0x78, 0x27, 0x05, 0xfb, 0x42, 0xe3, 0x6a, 0x7e, 0xf8, 0x31, 0x20, 0x0c, 0x61, 0x77,
1334 0x38, 0xd3, 0x1e, 0x13, 0xb1, 0xd0, 0xe7, 0xce, 0xed, 0x69, 0x3f, 0x13, 0x33, 0x88,
1335 0x35, 0xb3, 0x0a, 0xcb,
1336 ],
1337 Core::FullSubtract64 => [
1338 0xb2, 0x85, 0x6a, 0x91, 0x80, 0x23, 0x1b, 0xee, 0x3c, 0xb8, 0x92, 0x30, 0xf7, 0x5c,
1339 0x29, 0x2a, 0xf3, 0xe7, 0x52, 0x39, 0xdb, 0xeb, 0x39, 0x65, 0x48, 0x44, 0x1e, 0x6b,
1340 0x5a, 0x27, 0xe8, 0x13,
1341 ],
1342 Core::FullSubtract8 => [
1343 0x68, 0x85, 0xe1, 0x41, 0xae, 0x23, 0x4c, 0x1e, 0x2a, 0x7e, 0x4f, 0x23, 0x52, 0x98,
1344 0x93, 0x90, 0x36, 0x96, 0x9c, 0x95, 0x0f, 0x2c, 0xef, 0xd4, 0x59, 0xb4, 0x98, 0xac,
1345 0x3d, 0xd8, 0x92, 0x20,
1346 ],
1347 Core::GeIsOnCurve => [
1348 0x69, 0xf0, 0xe7, 0xa0, 0xc5, 0xff, 0xf8, 0x70, 0x84, 0xed, 0x69, 0x25, 0xf8, 0xdb,
1349 0x76, 0x2e, 0x41, 0x9e, 0x05, 0x7b, 0x96, 0x83, 0x4d, 0xce, 0x96, 0x99, 0xb0, 0xb0,
1350 0x09, 0x42, 0x30, 0x59,
1351 ],
1352 Core::GeNegate => [
1353 0x1e, 0xd0, 0xce, 0xd8, 0xdd, 0x25, 0x58, 0xe3, 0x48, 0x5f, 0x6f, 0xc3, 0x2d, 0x69,
1354 0xa2, 0x40, 0x5e, 0xca, 0xee, 0x31, 0x2d, 0xc4, 0xdc, 0x65, 0xe0, 0xfd, 0x34, 0x77,
1355 0x73, 0xf5, 0x98, 0x3d,
1356 ],
1357 Core::GejAdd => [
1358 0x5a, 0x1c, 0x31, 0x03, 0x49, 0xe8, 0xff, 0x5c, 0x5a, 0x61, 0xac, 0x3e, 0x10, 0x12,
1359 0x3f, 0x74, 0xe8, 0x7f, 0xab, 0xa1, 0x4c, 0x78, 0xbc, 0x83, 0xf9, 0xe3, 0x41, 0x36,
1360 0x87, 0xec, 0xf2, 0x8b,
1361 ],
1362 Core::GejDouble => [
1363 0x1e, 0xdd, 0x05, 0x82, 0xe2, 0xfc, 0xad, 0x99, 0xb1, 0x2d, 0x50, 0x6d, 0x29, 0xb5,
1364 0x0a, 0x63, 0x01, 0x7f, 0x67, 0x69, 0x28, 0xbe, 0x51, 0x13, 0x69, 0x00, 0x6e, 0x07,
1365 0xcb, 0x80, 0xd9, 0x82,
1366 ],
1367 Core::GejEquiv => [
1368 0x02, 0x74, 0x71, 0x05, 0x94, 0x87, 0xa1, 0x2c, 0xa2, 0x07, 0xf0, 0x94, 0x05, 0x94,
1369 0xd6, 0xcd, 0x87, 0xfc, 0x93, 0x0a, 0x8b, 0x5b, 0x31, 0x43, 0x4a, 0x16, 0xa2, 0xd6,
1370 0x7f, 0x1d, 0x8d, 0xd4,
1371 ],
1372 Core::GejGeAdd => [
1373 0x1e, 0xa7, 0x10, 0xd5, 0x6e, 0xaf, 0xee, 0x32, 0x5d, 0x26, 0x07, 0xdd, 0xb4, 0x5f,
1374 0xf0, 0x17, 0x0a, 0xde, 0xc2, 0xe0, 0xee, 0x9b, 0xcc, 0x68, 0xe4, 0xb9, 0x3e, 0x1d,
1375 0xe6, 0xad, 0x35, 0x68,
1376 ],
1377 Core::GejGeAddEx => [
1378 0x78, 0xf0, 0x87, 0x1b, 0x81, 0x73, 0xab, 0xde, 0x71, 0x87, 0x11, 0x26, 0x3b, 0x3a,
1379 0xc1, 0xd9, 0x22, 0x33, 0x7e, 0xd5, 0xed, 0x13, 0x8d, 0x29, 0x49, 0x62, 0xd6, 0x5c,
1380 0xe5, 0x59, 0xbd, 0x92,
1381 ],
1382 Core::GejGeEquiv => [
1383 0xba, 0x89, 0x9a, 0x00, 0x62, 0x16, 0xd1, 0xc9, 0x3b, 0xd5, 0xec, 0xbe, 0x00, 0x80,
1384 0xd9, 0x07, 0x8a, 0x50, 0x0a, 0x72, 0x9b, 0xbd, 0x39, 0x6a, 0x00, 0x4a, 0xf5, 0x1d,
1385 0x4f, 0xf7, 0xd9, 0x3a,
1386 ],
1387 Core::GejInfinity => [
1388 0x88, 0xa9, 0x52, 0xdb, 0x38, 0x16, 0xe9, 0x42, 0x59, 0xa6, 0x75, 0x37, 0xfa, 0x8f,
1389 0xca, 0x1a, 0x35, 0xa9, 0x07, 0xa8, 0x6f, 0x51, 0xed, 0xe4, 0x51, 0xfd, 0x32, 0xec,
1390 0x25, 0x3d, 0x9c, 0x62,
1391 ],
1392 Core::GejIsInfinity => [
1393 0x29, 0x80, 0xa7, 0x35, 0x41, 0x4e, 0x43, 0x21, 0xaf, 0xef, 0xfe, 0xfa, 0x88, 0x37,
1394 0xed, 0xb0, 0xa3, 0x30, 0x9a, 0x33, 0x7d, 0x59, 0xb7, 0xbd, 0xea, 0x92, 0x1c, 0x13,
1395 0x05, 0x6b, 0x04, 0x28,
1396 ],
1397 Core::GejIsOnCurve => [
1398 0x01, 0x87, 0xe1, 0xe5, 0xef, 0x76, 0x34, 0xa5, 0xf0, 0x16, 0x12, 0x4d, 0x4f, 0xeb,
1399 0x5a, 0x93, 0xdd, 0xe6, 0xaa, 0x78, 0x17, 0x6c, 0xda, 0x48, 0xb1, 0x65, 0xa9, 0xaa,
1400 0x8e, 0x04, 0x49, 0xf2,
1401 ],
1402 Core::GejNegate => [
1403 0xb3, 0x2c, 0x74, 0xca, 0xb2, 0xc7, 0x50, 0x0b, 0x73, 0xf8, 0xec, 0x05, 0x60, 0xfe,
1404 0x23, 0xfc, 0x4c, 0x21, 0xaa, 0x66, 0x59, 0x6d, 0x7f, 0x2a, 0xcf, 0x49, 0x67, 0x88,
1405 0x6b, 0x76, 0xd8, 0x56,
1406 ],
1407 Core::GejNormalize => [
1408 0x5d, 0xe0, 0x97, 0x6a, 0xe7, 0xf3, 0x8b, 0x36, 0xf0, 0x02, 0x28, 0x14, 0x96, 0x6d,
1409 0xb2, 0xba, 0xed, 0x5c, 0x47, 0x67, 0x14, 0x94, 0x4d, 0x74, 0x1a, 0x89, 0x79, 0xc4,
1410 0xbc, 0xf8, 0xbe, 0x25,
1411 ],
1412 Core::GejRescale => [
1413 0xdc, 0xfc, 0x72, 0xa7, 0x68, 0xd5, 0xbe, 0x77, 0x0f, 0x8d, 0xb2, 0x78, 0xae, 0xaf,
1414 0xd1, 0x8e, 0x27, 0x70, 0x4c, 0x64, 0xf8, 0xb4, 0x0f, 0xa6, 0xfe, 0x54, 0xca, 0x94,
1415 0x72, 0x7a, 0x07, 0x6e,
1416 ],
1417 Core::GejXEquiv => [
1418 0x52, 0xcc, 0x21, 0x47, 0x09, 0xc0, 0xd9, 0xfc, 0xa9, 0xdb, 0x1d, 0x09, 0xcc, 0x80,
1419 0x7c, 0x75, 0xcf, 0x5a, 0x63, 0x13, 0xca, 0x54, 0x0a, 0x77, 0x2d, 0x4e, 0xa9, 0x92,
1420 0x1f, 0x37, 0xe6, 0x24,
1421 ],
1422 Core::GejYIsOdd => [
1423 0xfe, 0x01, 0x06, 0xaf, 0xb9, 0xd9, 0xe2, 0x4f, 0xd4, 0xdb, 0xe5, 0x45, 0x11, 0xfe,
1424 0x27, 0x2f, 0x4d, 0xcb, 0x30, 0x7a, 0x0e, 0xa5, 0x6d, 0x59, 0x1c, 0xeb, 0x93, 0xab,
1425 0x4b, 0xf8, 0x87, 0x45,
1426 ],
1427 Core::Generate => [
1428 0xdf, 0x44, 0xe1, 0x7d, 0x2a, 0x55, 0x9d, 0xd0, 0xa7, 0x03, 0x49, 0x54, 0xab, 0x33,
1429 0x37, 0x77, 0x78, 0xb1, 0x51, 0xf1, 0xcd, 0x1e, 0x4f, 0x9f, 0xd3, 0x1b, 0x36, 0x1d,
1430 0x34, 0xa8, 0xd9, 0x73,
1431 ],
1432 Core::HashToCurve => [
1433 0x76, 0xf7, 0xca, 0x1d, 0xb9, 0x44, 0xee, 0x31, 0x5e, 0xd3, 0x62, 0xfe, 0xe0, 0x67,
1434 0x3c, 0x58, 0x94, 0xf8, 0x85, 0x3b, 0x44, 0x60, 0x70, 0x90, 0x1b, 0x85, 0x79, 0x01,
1435 0xf9, 0x49, 0x9d, 0x9b,
1436 ],
1437 Core::High1 => [
1438 0xc3, 0x2d, 0x87, 0x7e, 0x67, 0x0d, 0x6c, 0x03, 0x7c, 0xb3, 0x35, 0x33, 0x28, 0x9e,
1439 0x19, 0xa7, 0x24, 0xc3, 0x68, 0xaa, 0x75, 0x51, 0xda, 0xa6, 0xd2, 0xda, 0xcc, 0xcd,
1440 0x8c, 0x95, 0xf4, 0xd0,
1441 ],
1442 Core::High16 => [
1443 0x41, 0x64, 0xab, 0x6e, 0x2f, 0xf8, 0xee, 0xf6, 0x3c, 0x06, 0xc0, 0x80, 0xf1, 0xde,
1444 0xc6, 0x97, 0x0b, 0x4c, 0x5c, 0x31, 0xc0, 0x23, 0x05, 0xab, 0xcc, 0xd8, 0xed, 0x2c,
1445 0x5e, 0x1c, 0x45, 0xce,
1446 ],
1447 Core::High32 => [
1448 0xd3, 0xa7, 0xce, 0x9c, 0xd5, 0xd5, 0xfb, 0x67, 0x9a, 0x98, 0xef, 0x57, 0xb8, 0x63,
1449 0x22, 0x77, 0x0c, 0xb6, 0x6f, 0xb6, 0xf0, 0x61, 0x6e, 0x16, 0x34, 0xcf, 0xa8, 0x4c,
1450 0x8f, 0x68, 0x09, 0xc6,
1451 ],
1452 Core::High64 => [
1453 0x4a, 0xf9, 0x1f, 0xaf, 0x8e, 0x39, 0xf4, 0xda, 0x7c, 0x28, 0xa8, 0x79, 0x65, 0x94,
1454 0xa9, 0x22, 0x82, 0x13, 0xd7, 0x32, 0x3e, 0xea, 0x2c, 0xa6, 0x30, 0x75, 0x2c, 0xe4,
1455 0xc5, 0x7f, 0x16, 0xe1,
1456 ],
1457 Core::High8 => [
1458 0xcb, 0xd7, 0x8d, 0x50, 0xaf, 0x77, 0x99, 0x85, 0x5a, 0xdc, 0x49, 0x03, 0xdb, 0xbe,
1459 0xfc, 0x13, 0x45, 0xd5, 0x14, 0x84, 0xf0, 0x3d, 0x3c, 0x75, 0x5c, 0xaa, 0xa5, 0xca,
1460 0xa9, 0x7d, 0x4a, 0x14,
1461 ],
1462 Core::Increment16 => [
1463 0xdf, 0x27, 0x48, 0x88, 0xce, 0x4c, 0xeb, 0xdd, 0x57, 0x08, 0xb3, 0x8d, 0xc3, 0xdb,
1464 0xb1, 0x9c, 0xc2, 0xf0, 0x36, 0x4b, 0x24, 0x63, 0xe9, 0x9c, 0xf5, 0xaa, 0xb4, 0xf8,
1465 0xa2, 0x3e, 0xa5, 0x8a,
1466 ],
1467 Core::Increment32 => [
1468 0x54, 0xf7, 0x57, 0xae, 0xa7, 0x6b, 0xc7, 0xa3, 0x9f, 0xc4, 0x3d, 0x19, 0xb8, 0xdd,
1469 0x56, 0x3a, 0x68, 0x07, 0xdf, 0x02, 0x77, 0xa5, 0x6f, 0xcb, 0x50, 0x10, 0x89, 0xce,
1470 0x7d, 0x06, 0x77, 0x4c,
1471 ],
1472 Core::Increment64 => [
1473 0x79, 0xed, 0x5f, 0x77, 0x99, 0xfb, 0x09, 0xda, 0x51, 0x04, 0x29, 0xa2, 0x01, 0x28,
1474 0xbe, 0xd0, 0x91, 0xd8, 0x58, 0x76, 0x47, 0x07, 0x12, 0x85, 0xcd, 0xec, 0x3a, 0x0c,
1475 0x95, 0x70, 0x9e, 0x5b,
1476 ],
1477 Core::Increment8 => [
1478 0x0c, 0x71, 0x7e, 0x84, 0xdf, 0x67, 0x82, 0x3f, 0x57, 0x41, 0xb3, 0xd5, 0x5d, 0xbe,
1479 0xb4, 0x72, 0x9c, 0x2b, 0xd6, 0x2f, 0x5d, 0x1d, 0xef, 0x3c, 0xab, 0xcc, 0xdd, 0x6c,
1480 0xb8, 0xdc, 0xb5, 0x6c,
1481 ],
1482 Core::IsOne16 => [
1483 0x84, 0x35, 0x87, 0x9c, 0xcb, 0x86, 0x44, 0x19, 0x8d, 0xcb, 0x9a, 0x0c, 0xd7, 0x35,
1484 0x46, 0xd7, 0x01, 0xfd, 0xd5, 0xa4, 0xc4, 0x43, 0x23, 0xf5, 0x63, 0x97, 0x15, 0x99,
1485 0xc3, 0x7d, 0x16, 0xfb,
1486 ],
1487 Core::IsOne32 => [
1488 0xdd, 0xfb, 0xd9, 0xf0, 0xa2, 0xe6, 0x7c, 0x07, 0xde, 0xdb, 0x89, 0xe8, 0x96, 0xb6,
1489 0xc4, 0xf7, 0xd4, 0x5c, 0x51, 0x47, 0xee, 0xd0, 0x61, 0x4e, 0x4c, 0xe7, 0xd0, 0x87,
1490 0x69, 0xaf, 0xf8, 0x2d,
1491 ],
1492 Core::IsOne64 => [
1493 0x35, 0xc5, 0x25, 0x54, 0x8e, 0x48, 0xee, 0xa0, 0xf7, 0x7b, 0x3b, 0xf9, 0x7a, 0xb6,
1494 0x7a, 0x1f, 0xfe, 0x8f, 0xb0, 0x94, 0xed, 0xe3, 0x32, 0x5e, 0x40, 0x64, 0xb1, 0x65,
1495 0x9c, 0x6d, 0x07, 0x65,
1496 ],
1497 Core::IsOne8 => [
1498 0x0a, 0xba, 0x9e, 0x57, 0x6e, 0x64, 0xd2, 0x80, 0x4c, 0x8a, 0xc4, 0x68, 0x2b, 0xbb,
1499 0xa5, 0x39, 0x0e, 0xbc, 0x31, 0xa6, 0xe3, 0xe2, 0x65, 0x0f, 0x92, 0x19, 0x23, 0x5d,
1500 0xf4, 0xa6, 0xec, 0xbb,
1501 ],
1502 Core::IsZero16 => [
1503 0xa2, 0x5a, 0xbd, 0x9c, 0xd2, 0xa4, 0x07, 0x0c, 0x74, 0x2e, 0xf8, 0xde, 0xb0, 0x68,
1504 0x29, 0x22, 0x46, 0x03, 0x2b, 0x96, 0xa5, 0x17, 0x22, 0x3b, 0x12, 0x8c, 0xfc, 0x12,
1505 0xd2, 0x15, 0xc5, 0xba,
1506 ],
1507 Core::IsZero32 => [
1508 0x61, 0x2a, 0x48, 0x0c, 0xed, 0x6a, 0x79, 0xda, 0x61, 0x19, 0x54, 0x6e, 0x05, 0x6b,
1509 0x8d, 0xf9, 0xfa, 0x95, 0xd1, 0x12, 0x4b, 0x96, 0xd6, 0x01, 0xe1, 0xd3, 0xea, 0x91,
1510 0x8c, 0xc5, 0x60, 0x69,
1511 ],
1512 Core::IsZero64 => [
1513 0x18, 0xe8, 0xe1, 0x77, 0x6b, 0xa0, 0x80, 0xcc, 0xd3, 0xe1, 0xd6, 0x0c, 0xb7, 0x53,
1514 0x41, 0x45, 0x36, 0xbf, 0x70, 0xdf, 0x18, 0x5f, 0x72, 0xc9, 0xe0, 0x70, 0x79, 0x6f,
1515 0x4c, 0x63, 0xcc, 0x71,
1516 ],
1517 Core::IsZero8 => [
1518 0xb4, 0xba, 0xa5, 0x09, 0x38, 0x10, 0x84, 0x26, 0x74, 0x0d, 0x82, 0xcf, 0x12, 0x11,
1519 0xe0, 0xed, 0x12, 0x6d, 0xe3, 0xb7, 0x6b, 0x8d, 0x25, 0x9c, 0x50, 0xad, 0x4b, 0x8f,
1520 0xca, 0xb1, 0x0a, 0xb6,
1521 ],
1522 Core::Le16 => [
1523 0x63, 0xda, 0x72, 0x7c, 0xcb, 0x4c, 0x6a, 0x9d, 0x4e, 0x00, 0x09, 0x64, 0xe7, 0x63,
1524 0xbf, 0xf9, 0x34, 0xea, 0xaf, 0xd0, 0x44, 0x28, 0x7e, 0x12, 0x68, 0xd0, 0x7e, 0xcd,
1525 0xfd, 0xe2, 0x07, 0xe1,
1526 ],
1527 Core::Le32 => [
1528 0xde, 0xe2, 0x9a, 0x91, 0x65, 0x6d, 0x7a, 0xe7, 0x3d, 0xf4, 0x95, 0x6f, 0xd8, 0xa2,
1529 0xc6, 0xb6, 0x27, 0xaa, 0xb5, 0x1c, 0x11, 0x29, 0xf9, 0xfe, 0x7f, 0x6e, 0xd3, 0xe3,
1530 0x47, 0x92, 0xc7, 0x62,
1531 ],
1532 Core::Le64 => [
1533 0x01, 0xc5, 0x5d, 0xf7, 0xd4, 0x46, 0x59, 0x66, 0x65, 0x9d, 0xdf, 0xc9, 0x4b, 0x36,
1534 0xd0, 0x33, 0x24, 0x2c, 0x2e, 0xc5, 0x93, 0xce, 0xe1, 0x21, 0x22, 0x44, 0x07, 0x75,
1535 0x66, 0xed, 0x01, 0x5f,
1536 ],
1537 Core::Le8 => [
1538 0x0f, 0xb7, 0x2d, 0x9f, 0x8e, 0xe2, 0x37, 0x0a, 0xba, 0x55, 0x66, 0x3a, 0x48, 0x99,
1539 0x16, 0x2e, 0x40, 0xca, 0x55, 0x14, 0x71, 0x3e, 0xfb, 0x25, 0xe4, 0xa8, 0x9e, 0x2a,
1540 0x10, 0x4b, 0x34, 0xdb,
1541 ],
1542 Core::LeftExtend16_32 => [
1543 0xdc, 0xf4, 0x2b, 0x65, 0x42, 0xf6, 0xd4, 0x1c, 0xb7, 0xb5, 0x0e, 0x7c, 0x77, 0x2f,
1544 0x3c, 0x7f, 0x6e, 0x43, 0x22, 0x32, 0xf2, 0xba, 0x20, 0x79, 0xb3, 0x86, 0xa0, 0x5d,
1545 0x7b, 0x46, 0x6a, 0xdd,
1546 ],
1547 Core::LeftExtend16_64 => [
1548 0x2e, 0xee, 0x48, 0xa9, 0x22, 0x37, 0x94, 0x7c, 0x1a, 0x51, 0x7d, 0xf9, 0x95, 0xf4,
1549 0x4f, 0x1d, 0xfe, 0xf2, 0x0d, 0xdb, 0x4e, 0x9b, 0x53, 0x0b, 0x22, 0xd1, 0x8a, 0x0a,
1550 0x7f, 0xd6, 0x28, 0xaa,
1551 ],
1552 Core::LeftExtend1_16 => [
1553 0x9a, 0x48, 0xa4, 0x77, 0x8e, 0x7c, 0x3c, 0x28, 0x5a, 0xb6, 0x53, 0x29, 0xd1, 0xcc,
1554 0xc4, 0x99, 0x9d, 0x2d, 0x19, 0x4e, 0x00, 0x5b, 0xd7, 0x94, 0x69, 0x49, 0x53, 0x3d,
1555 0x8c, 0xba, 0x80, 0x6c,
1556 ],
1557 Core::LeftExtend1_32 => [
1558 0xda, 0xb6, 0xa5, 0x33, 0xcb, 0xcb, 0xe8, 0x36, 0x2c, 0xf1, 0xd5, 0xa1, 0x6e, 0xa3,
1559 0x7c, 0xbc, 0x7e, 0xdc, 0x7f, 0xc8, 0xa9, 0x42, 0x85, 0x71, 0xe1, 0x71, 0xec, 0x6e,
1560 0xe4, 0x4d, 0x08, 0x00,
1561 ],
1562 Core::LeftExtend1_64 => [
1563 0x11, 0x0e, 0x5c, 0x1e, 0xf0, 0xb4, 0x69, 0xa7, 0x63, 0x85, 0x70, 0xda, 0x94, 0x4d,
1564 0x23, 0x2e, 0x0f, 0x28, 0xc4, 0x61, 0x51, 0xa2, 0x25, 0x35, 0x7d, 0xe3, 0xe9, 0x04,
1565 0x57, 0xa8, 0x8e, 0xa2,
1566 ],
1567 Core::LeftExtend1_8 => [
1568 0x5a, 0x83, 0x1c, 0xa9, 0x96, 0x21, 0x51, 0x7a, 0x2b, 0x35, 0x4e, 0x5c, 0xac, 0x38,
1569 0xbc, 0x3a, 0x30, 0xc4, 0x00, 0x1f, 0x20, 0xd2, 0x5d, 0x77, 0x97, 0xad, 0xdc, 0xac,
1570 0x5d, 0xa8, 0x61, 0x06,
1571 ],
1572 Core::LeftExtend32_64 => [
1573 0x84, 0xfc, 0xc6, 0x9b, 0xa1, 0xdb, 0x50, 0xdb, 0xd5, 0x36, 0x3c, 0xf2, 0x77, 0x79,
1574 0x57, 0x60, 0x1d, 0xe2, 0x56, 0x8a, 0xdf, 0x07, 0xaf, 0x41, 0x61, 0xde, 0xbb, 0x1e,
1575 0x5e, 0x37, 0x31, 0x0a,
1576 ],
1577 Core::LeftExtend8_16 => [
1578 0xfe, 0xa1, 0xf2, 0x5a, 0x82, 0xfd, 0xf6, 0xf8, 0x66, 0x9c, 0xc4, 0x0f, 0xbb, 0x8e,
1579 0x54, 0xa9, 0x26, 0x58, 0xbf, 0xab, 0x94, 0xeb, 0x08, 0x2f, 0x71, 0x7b, 0xa2, 0x65,
1580 0xb5, 0xd8, 0x44, 0xb4,
1581 ],
1582 Core::LeftExtend8_32 => [
1583 0x09, 0xd7, 0x03, 0xca, 0x46, 0xf7, 0x5d, 0x05, 0x1a, 0x93, 0xd0, 0xe8, 0xa2, 0xaf,
1584 0x05, 0x01, 0xa3, 0x8e, 0x84, 0x86, 0x83, 0xef, 0x10, 0x9c, 0x1f, 0xb4, 0xb5, 0xbe,
1585 0x20, 0xe6, 0x31, 0x5d,
1586 ],
1587 Core::LeftExtend8_64 => [
1588 0xd3, 0xda, 0xfc, 0xbd, 0xab, 0x69, 0xa2, 0xbb, 0x32, 0x0f, 0x8d, 0x23, 0x0c, 0xef,
1589 0xd0, 0x9c, 0x27, 0xa1, 0x54, 0xc5, 0x1e, 0x7e, 0x5c, 0xd5, 0x33, 0x4e, 0xaf, 0xed,
1590 0x19, 0xe2, 0x0d, 0xf4,
1591 ],
1592 Core::LeftPadHigh16_32 => [
1593 0x88, 0x8c, 0x7e, 0x0a, 0xb0, 0x03, 0x14, 0x75, 0xc5, 0x14, 0xf9, 0xb3, 0x7c, 0x81,
1594 0xf4, 0x5a, 0x47, 0x31, 0x49, 0x84, 0xe5, 0x02, 0x75, 0x08, 0xdd, 0xc5, 0xeb, 0x8d,
1595 0x8d, 0x10, 0xbe, 0xb9,
1596 ],
1597 Core::LeftPadHigh16_64 => [
1598 0x52, 0x6b, 0x35, 0x05, 0x45, 0x01, 0x36, 0xd6, 0x81, 0xa5, 0x0b, 0x4b, 0xde, 0x4f,
1599 0xa6, 0x12, 0xda, 0x9d, 0x69, 0xbd, 0x08, 0x17, 0x0e, 0xa3, 0x2d, 0x0a, 0x26, 0x51,
1600 0x11, 0x50, 0x72, 0xeb,
1601 ],
1602 Core::LeftPadHigh1_16 => [
1603 0x93, 0xae, 0xd6, 0xf6, 0x87, 0x50, 0x77, 0x4b, 0x2d, 0xbf, 0x83, 0x14, 0xca, 0xde,
1604 0xbe, 0x5a, 0x41, 0x52, 0x43, 0xfb, 0xdf, 0x7c, 0x2e, 0xea, 0x8b, 0x22, 0x3d, 0xf3,
1605 0x26, 0x1e, 0x3b, 0xdb,
1606 ],
1607 Core::LeftPadHigh1_32 => [
1608 0x00, 0x82, 0x98, 0xf8, 0x2f, 0xb6, 0xcf, 0x37, 0xe9, 0xdc, 0x70, 0x3e, 0xa4, 0xf9,
1609 0x49, 0x56, 0x5c, 0x29, 0x65, 0xa7, 0xc7, 0xf4, 0xfa, 0x22, 0xf5, 0x54, 0x56, 0x42,
1610 0x34, 0x08, 0xa3, 0xab,
1611 ],
1612 Core::LeftPadHigh1_64 => [
1613 0x2b, 0x45, 0x4e, 0xbd, 0x79, 0x1e, 0xc7, 0xda, 0xce, 0xdc, 0xb8, 0x6c, 0x69, 0xd0,
1614 0x26, 0x79, 0x4a, 0x5d, 0xc3, 0x72, 0x52, 0x61, 0xe7, 0xdc, 0x16, 0x50, 0xcc, 0x88,
1615 0x81, 0x17, 0xfc, 0x4f,
1616 ],
1617 Core::LeftPadHigh1_8 => [
1618 0x6c, 0x27, 0x7c, 0x4c, 0xd0, 0x53, 0xdd, 0x35, 0x02, 0xdb, 0xe0, 0xbb, 0xc1, 0x4e,
1619 0xb0, 0xb3, 0x6a, 0x20, 0x1a, 0xbe, 0xf3, 0xb1, 0x74, 0xb0, 0xeb, 0xfe, 0x05, 0x20,
1620 0x18, 0xb6, 0x7e, 0x67,
1621 ],
1622 Core::LeftPadHigh32_64 => [
1623 0x5d, 0x41, 0x22, 0x1c, 0xf6, 0x15, 0x82, 0x97, 0xb0, 0x6c, 0x19, 0x57, 0x11, 0x2c,
1624 0x0d, 0x12, 0xf3, 0xeb, 0x91, 0x7a, 0x2f, 0x50, 0x9a, 0x53, 0x9d, 0x5c, 0x9b, 0x79,
1625 0x10, 0x21, 0x9b, 0x65,
1626 ],
1627 Core::LeftPadHigh8_16 => [
1628 0x21, 0x78, 0xdc, 0x76, 0xc0, 0x4c, 0x79, 0xd9, 0x18, 0x15, 0xd3, 0x8c, 0x96, 0x7f,
1629 0x34, 0x21, 0x3f, 0xfc, 0xc6, 0xc5, 0xf2, 0x43, 0xc9, 0x56, 0x29, 0x73, 0xf0, 0x90,
1630 0xca, 0x5c, 0xae, 0xfa,
1631 ],
1632 Core::LeftPadHigh8_32 => [
1633 0xa4, 0xe8, 0x6b, 0x53, 0xe5, 0xd0, 0x0f, 0xaf, 0x0b, 0x3e, 0x9d, 0x53, 0x20, 0x2a,
1634 0xf7, 0x73, 0x8d, 0xcb, 0x88, 0x87, 0xa1, 0x8d, 0xfe, 0xe5, 0xbe, 0x34, 0xc4, 0x97,
1635 0x69, 0x8c, 0xa6, 0xb7,
1636 ],
1637 Core::LeftPadHigh8_64 => [
1638 0xc8, 0x43, 0xa7, 0x2c, 0x41, 0x17, 0x0f, 0x40, 0x34, 0x33, 0xc4, 0x36, 0xa3, 0x9b,
1639 0x05, 0xcf, 0x19, 0x3c, 0x27, 0xd8, 0xbe, 0x35, 0x30, 0xf9, 0xb9, 0x4e, 0x42, 0xd7,
1640 0x63, 0x00, 0x3d, 0x54,
1641 ],
1642 Core::LeftPadLow16_32 => [
1643 0x21, 0x53, 0x7f, 0x7d, 0x8f, 0x97, 0xf2, 0x20, 0x3c, 0xcc, 0xb0, 0x35, 0xef, 0x1d,
1644 0x46, 0x28, 0x9e, 0xe8, 0xaa, 0x50, 0xf0, 0x23, 0x60, 0x77, 0xd0, 0xd0, 0xb2, 0x10,
1645 0x70, 0x04, 0x40, 0xa1,
1646 ],
1647 Core::LeftPadLow16_64 => [
1648 0x6b, 0x2e, 0xa9, 0x63, 0x0c, 0x5d, 0xde, 0x03, 0x7a, 0xab, 0x2b, 0xf7, 0x33, 0x21,
1649 0x9b, 0x99, 0xc7, 0xed, 0xc2, 0xec, 0xed, 0xb9, 0xa0, 0x3a, 0xdf, 0xd1, 0x69, 0x43,
1650 0x0b, 0x08, 0xbb, 0x9c,
1651 ],
1652 Core::LeftPadLow1_16 => [
1653 0x4a, 0xa4, 0x05, 0x20, 0xfa, 0xed, 0x72, 0xe6, 0xe9, 0xbe, 0x3b, 0xe6, 0x93, 0x0f,
1654 0x1e, 0x32, 0xb0, 0xb1, 0x82, 0xc4, 0x32, 0x7a, 0xda, 0x94, 0xa7, 0x1f, 0x00, 0x6d,
1655 0x14, 0x90, 0x15, 0xf9,
1656 ],
1657 Core::LeftPadLow1_32 => [
1658 0xcf, 0xb4, 0x75, 0x3b, 0xb9, 0xba, 0x36, 0x21, 0xba, 0x09, 0x37, 0x82, 0x5f, 0xad,
1659 0xe6, 0x43, 0x09, 0x8e, 0x38, 0x5e, 0xd6, 0x8e, 0xfb, 0x16, 0xff, 0x58, 0xec, 0xf3,
1660 0x65, 0xd7, 0xe5, 0xe2,
1661 ],
1662 Core::LeftPadLow1_64 => [
1663 0xe6, 0xf1, 0xc0, 0x9b, 0x5f, 0xe1, 0x26, 0xd0, 0xea, 0x86, 0xe7, 0xbf, 0xc0, 0xb2,
1664 0x8e, 0x84, 0x9f, 0x8f, 0x7e, 0xfd, 0x31, 0x06, 0x4e, 0xa4, 0xfd, 0x1c, 0xca, 0x07,
1665 0x1b, 0x45, 0xdb, 0x93,
1666 ],
1667 Core::LeftPadLow1_8 => [
1668 0xdc, 0x5a, 0x47, 0xf8, 0xd7, 0x77, 0x65, 0xc9, 0x94, 0xcb, 0xe8, 0x6a, 0xae, 0x44,
1669 0xa9, 0xc5, 0xff, 0x2e, 0xbc, 0x38, 0x10, 0xd7, 0x9c, 0xd8, 0x3b, 0xd2, 0xc4, 0x09,
1670 0x8c, 0x76, 0x2b, 0xf5,
1671 ],
1672 Core::LeftPadLow32_64 => [
1673 0x2d, 0x88, 0xe4, 0xd0, 0x1e, 0x01, 0x08, 0xc0, 0xd6, 0x88, 0x0f, 0x3c, 0xe8, 0x48,
1674 0x2b, 0xb0, 0x95, 0x1f, 0x2b, 0x3f, 0xc5, 0xdf, 0x4b, 0x1a, 0xdb, 0x18, 0x4a, 0x1b,
1675 0xfd, 0x1f, 0x64, 0x65,
1676 ],
1677 Core::LeftPadLow8_16 => [
1678 0xac, 0x1a, 0x4c, 0x97, 0x83, 0xe4, 0xdb, 0xed, 0x27, 0x00, 0xeb, 0x29, 0x52, 0xe3,
1679 0x06, 0x2a, 0x5a, 0x72, 0x71, 0x2f, 0x82, 0x15, 0x98, 0x61, 0xb0, 0x8e, 0x67, 0xef,
1680 0x4a, 0x71, 0xf5, 0xf2,
1681 ],
1682 Core::LeftPadLow8_32 => [
1683 0x3d, 0xa5, 0xf1, 0xa8, 0xc9, 0x78, 0x19, 0xae, 0x7e, 0x10, 0xb9, 0x36, 0x4f, 0xf8,
1684 0x49, 0x96, 0xd0, 0xd7, 0x3e, 0x69, 0x8a, 0x49, 0xda, 0x69, 0x1f, 0x69, 0xa2, 0x73,
1685 0x25, 0x42, 0x01, 0xcd,
1686 ],
1687 Core::LeftPadLow8_64 => [
1688 0x25, 0xbc, 0x18, 0xd4, 0x9f, 0x93, 0x40, 0x72, 0x27, 0x7d, 0x3f, 0x61, 0x3b, 0xf1,
1689 0x6c, 0x11, 0x8d, 0xf1, 0x97, 0xbc, 0x92, 0x87, 0x2d, 0x2a, 0xff, 0xe4, 0x17, 0xad,
1690 0xea, 0xaf, 0x1a, 0x85,
1691 ],
1692 Core::LeftRotate16 => [
1693 0x88, 0xc1, 0x23, 0x37, 0xcd, 0x75, 0x4f, 0x83, 0x80, 0x98, 0x6d, 0x86, 0xfe, 0x3a,
1694 0x89, 0xe2, 0x62, 0x74, 0x66, 0x53, 0xe1, 0xba, 0xdd, 0x9c, 0xc9, 0xb4, 0x76, 0x45,
1695 0xfe, 0x57, 0x19, 0x5a,
1696 ],
1697 Core::LeftRotate32 => [
1698 0x39, 0x81, 0x6c, 0xcd, 0x9e, 0x9c, 0xf1, 0x19, 0x1f, 0x06, 0x5d, 0x2e, 0xb7, 0xa7,
1699 0xfb, 0x83, 0x82, 0x8d, 0x91, 0xec, 0x7d, 0x99, 0x77, 0xa1, 0xfc, 0x70, 0xbe, 0x9b,
1700 0x31, 0xa4, 0x68, 0xb9,
1701 ],
1702 Core::LeftRotate64 => [
1703 0x8b, 0x23, 0x55, 0xc3, 0x1e, 0x3b, 0x61, 0x4b, 0xd4, 0xb4, 0x1c, 0x3e, 0xcf, 0x27,
1704 0x74, 0x24, 0xd0, 0x26, 0x76, 0x6b, 0x37, 0xbc, 0x6c, 0x10, 0x56, 0x21, 0xf4, 0xf6,
1705 0xa1, 0x6f, 0x9b, 0xdf,
1706 ],
1707 Core::LeftRotate8 => [
1708 0x9e, 0x96, 0x6e, 0x88, 0x0c, 0x6b, 0x0c, 0x48, 0x3c, 0x90, 0xbe, 0xee, 0xd7, 0xc5,
1709 0x73, 0x7c, 0xa5, 0xf3, 0xfa, 0xcf, 0x85, 0xaa, 0xb3, 0xd5, 0x31, 0xad, 0x34, 0xbd,
1710 0x7b, 0x1a, 0x9b, 0x68,
1711 ],
1712 Core::LeftShift16 => [
1713 0xb0, 0x53, 0x60, 0x18, 0x4d, 0x06, 0x02, 0xb5, 0x81, 0x40, 0x5e, 0x32, 0x96, 0x0b,
1714 0x31, 0xc0, 0x52, 0x19, 0x35, 0x8d, 0xe8, 0x9e, 0xfd, 0xf4, 0x94, 0x64, 0x72, 0x3d,
1715 0xd6, 0x25, 0x61, 0x7a,
1716 ],
1717 Core::LeftShift32 => [
1718 0x34, 0xbf, 0x54, 0xf5, 0x94, 0xc2, 0x62, 0x10, 0x07, 0xf8, 0xc7, 0x8b, 0x30, 0xfa,
1719 0xd3, 0x96, 0x72, 0x00, 0x9b, 0xb3, 0x66, 0xaa, 0xce, 0x1e, 0x5e, 0x41, 0xee, 0x4d,
1720 0x9c, 0xc5, 0x41, 0xa8,
1721 ],
1722 Core::LeftShift64 => [
1723 0x5d, 0xe9, 0x53, 0xf0, 0x4d, 0xea, 0xed, 0x90, 0x47, 0x56, 0x76, 0x47, 0xa1, 0xeb,
1724 0x7a, 0xbe, 0x66, 0x5f, 0xec, 0xcb, 0xe7, 0xed, 0x10, 0xcb, 0x7d, 0xbe, 0x69, 0x12,
1725 0x73, 0xc0, 0x94, 0xb0,
1726 ],
1727 Core::LeftShift8 => [
1728 0xab, 0x9d, 0x3e, 0x9a, 0xc3, 0x90, 0x38, 0xad, 0x88, 0xb1, 0x03, 0xf0, 0x72, 0x25,
1729 0x4c, 0x0e, 0xc6, 0xe2, 0x74, 0x75, 0xe2, 0x75, 0xc2, 0x45, 0xe8, 0x8c, 0xce, 0x0d,
1730 0x07, 0x2e, 0x64, 0x46,
1731 ],
1732 Core::LeftShiftWith16 => [
1733 0xe2, 0x91, 0x07, 0x88, 0x55, 0x50, 0x45, 0x0e, 0xb7, 0x27, 0xd0, 0xcf, 0x14, 0xe1,
1734 0x04, 0xae, 0x12, 0xf8, 0x3a, 0x24, 0xe2, 0xe2, 0xac, 0xa3, 0xcc, 0xe4, 0x33, 0xde,
1735 0x2f, 0x35, 0xd7, 0xb3,
1736 ],
1737 Core::LeftShiftWith32 => [
1738 0xf3, 0x92, 0x50, 0xc4, 0x5a, 0x13, 0x10, 0xcc, 0x63, 0x8c, 0x78, 0x8d, 0xee, 0xc5,
1739 0xc3, 0x65, 0xb4, 0xd1, 0x76, 0xd1, 0x0e, 0xfb, 0xf4, 0xc6, 0x01, 0xcf, 0x5e, 0xeb,
1740 0xe0, 0xa5, 0x73, 0xe9,
1741 ],
1742 Core::LeftShiftWith64 => [
1743 0xad, 0x87, 0x94, 0xcf, 0xae, 0xf2, 0xb7, 0xf7, 0x74, 0xfa, 0x68, 0xd3, 0x09, 0xbb,
1744 0xc9, 0x8d, 0xfe, 0xe5, 0x8c, 0x40, 0x40, 0x0b, 0x2e, 0xb5, 0x78, 0xa2, 0x12, 0xf4,
1745 0x38, 0xbd, 0x07, 0xab,
1746 ],
1747 Core::LeftShiftWith8 => [
1748 0xdd, 0x9c, 0xc1, 0xce, 0xa7, 0x49, 0x09, 0x48, 0x1f, 0xf5, 0x8f, 0x87, 0x6f, 0xf6,
1749 0x6e, 0x0f, 0x5d, 0x52, 0xbf, 0x89, 0xb0, 0x25, 0x8f, 0xa9, 0x5b, 0x32, 0x00, 0x02,
1750 0xc3, 0x2a, 0x79, 0x15,
1751 ],
1752 Core::Leftmost16_1 => [
1753 0xde, 0x6a, 0x4c, 0x98, 0x33, 0x7e, 0x68, 0x0d, 0x6e, 0x6e, 0xe2, 0xbf, 0x36, 0xd3,
1754 0xa0, 0x81, 0x7d, 0x2a, 0x9a, 0x98, 0x32, 0x5f, 0x87, 0xe5, 0xec, 0xeb, 0x8a, 0x6f,
1755 0x11, 0x68, 0xf5, 0xca,
1756 ],
1757 Core::Leftmost16_2 => [
1758 0x00, 0x58, 0x09, 0xb8, 0x05, 0x1a, 0x2a, 0x50, 0x28, 0x33, 0xb2, 0x2c, 0x2c, 0x17,
1759 0x98, 0x1e, 0xaf, 0x9d, 0xd1, 0xd3, 0xdb, 0xc8, 0xf8, 0xc8, 0x94, 0x51, 0x6c, 0x1d,
1760 0x5f, 0x31, 0x14, 0x6c,
1761 ],
1762 Core::Leftmost16_4 => [
1763 0x9c, 0x50, 0xee, 0x22, 0x84, 0xd8, 0x57, 0xc4, 0x7c, 0x05, 0x44, 0x47, 0x13, 0x54,
1764 0x10, 0x5e, 0x98, 0xdf, 0xe0, 0x27, 0x54, 0xd2, 0xe4, 0x2d, 0xe1, 0x1d, 0x32, 0x34,
1765 0xed, 0x10, 0xb6, 0x42,
1766 ],
1767 Core::Leftmost16_8 => [
1768 0x5a, 0x1a, 0x72, 0x91, 0x4e, 0x14, 0x9c, 0x22, 0xb4, 0x64, 0xc8, 0xf6, 0xa3, 0xd9,
1769 0xcf, 0x41, 0xb0, 0x71, 0x92, 0xbe, 0xf0, 0xd8, 0xa1, 0xcc, 0x7c, 0xbe, 0x57, 0x04,
1770 0xa9, 0xe8, 0xea, 0x70,
1771 ],
1772 Core::Leftmost32_1 => [
1773 0x5f, 0xb8, 0xe6, 0x34, 0x2a, 0xb7, 0x4e, 0xe2, 0xc9, 0x22, 0x5b, 0x87, 0x2f, 0xa0,
1774 0xc9, 0x12, 0x04, 0x6a, 0x69, 0xdb, 0xb7, 0x19, 0xbc, 0xd6, 0xc8, 0xd7, 0x9b, 0x76,
1775 0x60, 0xc4, 0xeb, 0xca,
1776 ],
1777 Core::Leftmost32_16 => [
1778 0x54, 0xae, 0x50, 0xb4, 0x6b, 0x5b, 0x2e, 0x68, 0xf5, 0x36, 0xc0, 0x1c, 0x39, 0x61,
1779 0x7b, 0x0c, 0xee, 0x42, 0xe1, 0xc4, 0x9a, 0x2c, 0xd1, 0xd2, 0x6a, 0xf8, 0xea, 0x87,
1780 0x15, 0xac, 0x4d, 0x11,
1781 ],
1782 Core::Leftmost32_2 => [
1783 0x12, 0x30, 0x68, 0x55, 0x45, 0x95, 0x42, 0x7e, 0x3c, 0x1d, 0xe2, 0x43, 0xba, 0xb6,
1784 0x6f, 0x33, 0x48, 0x36, 0x8a, 0xaa, 0x44, 0x61, 0x7d, 0x6a, 0x02, 0x47, 0x9f, 0xb7,
1785 0x04, 0xbc, 0xfd, 0x1e,
1786 ],
1787 Core::Leftmost32_4 => [
1788 0x55, 0xa8, 0x7b, 0x66, 0xc3, 0x39, 0xe3, 0x63, 0xe0, 0x3d, 0x4d, 0xaa, 0xc6, 0x22,
1789 0x90, 0xeb, 0xa9, 0x3c, 0x1a, 0x3a, 0x73, 0x82, 0xcb, 0xf6, 0x1f, 0x20, 0xb3, 0x4a,
1790 0x50, 0x51, 0x24, 0xad,
1791 ],
1792 Core::Leftmost32_8 => [
1793 0x9f, 0x34, 0x5b, 0xee, 0x0b, 0x16, 0x2d, 0x42, 0xa0, 0x35, 0x71, 0x8f, 0x8c, 0xa1,
1794 0xad, 0xc8, 0xac, 0x2f, 0x71, 0x0d, 0xc4, 0x00, 0x52, 0xa8, 0x25, 0x66, 0xe6, 0xd8,
1795 0x07, 0xbe, 0xf8, 0xb8,
1796 ],
1797 Core::Leftmost64_1 => [
1798 0xb9, 0x24, 0xd3, 0x3b, 0x5e, 0xfe, 0xfc, 0x8e, 0x20, 0x42, 0x08, 0x19, 0x25, 0x91,
1799 0x7c, 0xff, 0x23, 0x9b, 0x31, 0xc8, 0xbd, 0xbd, 0xf4, 0xac, 0xae, 0x6b, 0xb8, 0xd9,
1800 0xcd, 0x21, 0x7b, 0x4f,
1801 ],
1802 Core::Leftmost64_16 => [
1803 0x12, 0xaa, 0x85, 0xe0, 0x5c, 0x1e, 0x96, 0x22, 0x27, 0x9c, 0x4c, 0x2d, 0xdc, 0xf8,
1804 0x97, 0xc9, 0x5d, 0xdc, 0xc0, 0x11, 0x39, 0x97, 0x28, 0x3b, 0x6b, 0x3e, 0x09, 0x49,
1805 0xbc, 0x81, 0x13, 0xcb,
1806 ],
1807 Core::Leftmost64_2 => [
1808 0xbc, 0xec, 0x97, 0xf4, 0x3b, 0xa5, 0x5c, 0xd4, 0x0d, 0x85, 0xa1, 0xe7, 0x6c, 0xba,
1809 0xde, 0x7b, 0x0b, 0x1e, 0x9f, 0x13, 0x97, 0x47, 0x79, 0x3d, 0xcb, 0x34, 0x80, 0xbe,
1810 0xe1, 0xf7, 0x51, 0xca,
1811 ],
1812 Core::Leftmost64_32 => [
1813 0x9c, 0x89, 0x69, 0x39, 0x86, 0xe5, 0x57, 0x33, 0xab, 0x96, 0x2a, 0x30, 0x0b, 0x05,
1814 0x79, 0x50, 0x3d, 0x83, 0xde, 0x8a, 0xc1, 0x9b, 0x17, 0x9b, 0x41, 0x7e, 0x1c, 0xa2,
1815 0x53, 0x85, 0xb3, 0x8f,
1816 ],
1817 Core::Leftmost64_4 => [
1818 0xd2, 0xd6, 0x45, 0x20, 0x92, 0xd6, 0x56, 0x6f, 0x89, 0xa1, 0xf6, 0x4e, 0x73, 0x65,
1819 0x96, 0xf9, 0x00, 0x0e, 0x5e, 0x6f, 0x63, 0xe4, 0x00, 0x17, 0xd0, 0xcb, 0x80, 0xf3,
1820 0xf7, 0xad, 0xfd, 0x18,
1821 ],
1822 Core::Leftmost64_8 => [
1823 0xf7, 0x7b, 0x62, 0xbb, 0x01, 0xb9, 0x05, 0x11, 0xb6, 0xd0, 0x6e, 0xbf, 0x2e, 0x36,
1824 0xc0, 0x65, 0x65, 0xac, 0xb5, 0xaa, 0xd1, 0xef, 0xc7, 0x7c, 0x36, 0xa1, 0x0a, 0x26,
1825 0x1d, 0xe9, 0x21, 0xda,
1826 ],
1827 Core::Leftmost8_1 => [
1828 0x5a, 0x73, 0x0b, 0x58, 0xe3, 0xab, 0xcb, 0x2f, 0x4d, 0xe2, 0x21, 0x59, 0x80, 0x30,
1829 0x23, 0x10, 0x2c, 0xd6, 0x64, 0x21, 0x91, 0x19, 0x20, 0xca, 0x21, 0xa2, 0xa0, 0x5c,
1830 0x9b, 0x21, 0x1c, 0xe8,
1831 ],
1832 Core::Leftmost8_2 => [
1833 0x25, 0x79, 0x08, 0x56, 0x10, 0x3d, 0xce, 0x6c, 0x7b, 0xbb, 0x3d, 0xd7, 0x18, 0xb1,
1834 0x69, 0x10, 0x9c, 0xae, 0x85, 0x37, 0x99, 0xd1, 0x24, 0x56, 0xc8, 0x5d, 0x83, 0x49,
1835 0xec, 0x18, 0xdc, 0x53,
1836 ],
1837 Core::Leftmost8_4 => [
1838 0x73, 0xd9, 0xf0, 0x18, 0x15, 0x7a, 0x14, 0x78, 0x4e, 0xe7, 0x0b, 0x21, 0x9c, 0xeb,
1839 0x40, 0x42, 0xfa, 0x62, 0x1d, 0x0e, 0xe6, 0xd5, 0x45, 0xa0, 0xfd, 0xba, 0xb9, 0x44,
1840 0x43, 0x46, 0xe3, 0x31,
1841 ],
1842 Core::LinearCombination1 => [
1843 0x6d, 0x9f, 0x4a, 0x87, 0x0f, 0xbf, 0x74, 0x0c, 0x22, 0x0e, 0xff, 0xf3, 0x07, 0xb5,
1844 0xed, 0x91, 0xa5, 0x8c, 0x5e, 0x51, 0xa8, 0xad, 0xfc, 0x3b, 0x15, 0x90, 0x30, 0xf5,
1845 0x12, 0xd3, 0x99, 0x41,
1846 ],
1847 Core::LinearVerify1 => [
1848 0x27, 0x83, 0x13, 0xd7, 0xce, 0x4a, 0xd5, 0x89, 0x11, 0xde, 0x24, 0xee, 0x54, 0x0d,
1849 0x19, 0xec, 0xeb, 0xb6, 0x2f, 0x4a, 0xb4, 0xa7, 0x1e, 0x2a, 0xad, 0xd4, 0x51, 0x2b,
1850 0x2e, 0x4b, 0xc2, 0xe2,
1851 ],
1852 Core::Low1 => [
1853 0xf2, 0x7b, 0x69, 0xbb, 0x09, 0x16, 0x09, 0xf5, 0x9e, 0x00, 0x33, 0x05, 0x0d, 0x01,
1854 0xa5, 0xbc, 0x77, 0xff, 0x07, 0xd9, 0x42, 0x70, 0x7a, 0x79, 0xcf, 0x5e, 0xe4, 0x10,
1855 0xa9, 0x98, 0xa0, 0x43,
1856 ],
1857 Core::Low16 => [
1858 0x97, 0x7c, 0xbd, 0x1e, 0x7f, 0xfc, 0x05, 0xe7, 0x16, 0xd9, 0xc1, 0xb4, 0x9f, 0x7d,
1859 0x51, 0x7f, 0x85, 0x3d, 0xbf, 0x3e, 0x98, 0xa4, 0xc7, 0x48, 0x04, 0x6e, 0xac, 0xf4,
1860 0x17, 0xf8, 0x9c, 0x2f,
1861 ],
1862 Core::Low32 => [
1863 0xbe, 0x41, 0x69, 0x82, 0x8f, 0x07, 0x67, 0x78, 0xb6, 0x0d, 0x54, 0x56, 0xf7, 0x88,
1864 0x6e, 0xd7, 0xf3, 0x0b, 0x10, 0x1d, 0x6c, 0xcb, 0xd9, 0xea, 0x0c, 0x4d, 0xb1, 0x42,
1865 0xea, 0xc6, 0x6b, 0x12,
1866 ],
1867 Core::Low64 => [
1868 0x01, 0x9a, 0x66, 0xbf, 0xba, 0x17, 0x51, 0x68, 0x8b, 0xe7, 0x13, 0x89, 0xed, 0x7b,
1869 0xf3, 0x71, 0xb3, 0x01, 0x4d, 0xfb, 0x32, 0x95, 0x62, 0xac, 0x3b, 0x3e, 0x9d, 0xfe,
1870 0x92, 0x06, 0xa5, 0xbc,
1871 ],
1872 Core::Low8 => [
1873 0x21, 0x7b, 0x56, 0x43, 0x95, 0x6b, 0x48, 0x33, 0xaa, 0x56, 0x22, 0xf0, 0x0f, 0x06,
1874 0x88, 0xba, 0x86, 0x0d, 0x4a, 0xdb, 0xf9, 0x40, 0xcb, 0xdc, 0xd2, 0xb5, 0x9f, 0x26,
1875 0xd6, 0x15, 0x93, 0xb1,
1876 ],
1877 Core::Lt16 => [
1878 0x56, 0xa2, 0x0d, 0x55, 0xed, 0xb4, 0x43, 0x88, 0x18, 0x05, 0x44, 0xc3, 0xed, 0x40,
1879 0x41, 0x45, 0xa3, 0xb6, 0x6f, 0xd2, 0xc4, 0x11, 0x38, 0x42, 0xf6, 0x4e, 0xae, 0xaf,
1880 0xba, 0xd4, 0xbb, 0x06,
1881 ],
1882 Core::Lt32 => [
1883 0xca, 0xb0, 0xdc, 0x5b, 0x0e, 0xcb, 0xf6, 0xd2, 0x48, 0x16, 0xfc, 0x20, 0x10, 0xfc,
1884 0x31, 0x19, 0x36, 0x63, 0xc3, 0x06, 0x96, 0x8d, 0x9c, 0xee, 0x3b, 0x00, 0x4c, 0x0b,
1885 0xc1, 0x84, 0xb4, 0x78,
1886 ],
1887 Core::Lt64 => [
1888 0x47, 0xd6, 0x7e, 0x52, 0xb2, 0x7b, 0xa7, 0x8e, 0xdd, 0x07, 0x5a, 0xa2, 0x70, 0xde,
1889 0xd0, 0x07, 0xa7, 0xa9, 0xa6, 0x84, 0x99, 0x34, 0x4f, 0x28, 0x62, 0xf5, 0x06, 0x90,
1890 0x49, 0xa0, 0xce, 0xfe,
1891 ],
1892 Core::Lt8 => [
1893 0x73, 0xd0, 0x04, 0x46, 0x55, 0xc0, 0xdf, 0x45, 0xc2, 0x71, 0xa1, 0x71, 0x3f, 0xf9,
1894 0xb9, 0xa4, 0x3d, 0xde, 0x56, 0xe6, 0x74, 0xd1, 0x75, 0x4e, 0x76, 0xed, 0xb1, 0x6f,
1895 0x94, 0x9c, 0x4f, 0xab,
1896 ],
1897 Core::Maj1 => [
1898 0xcb, 0x2d, 0x98, 0x6d, 0x7f, 0x00, 0x10, 0x7a, 0x3c, 0x25, 0xf6, 0xb2, 0xf1, 0x48,
1899 0x91, 0xd0, 0x2e, 0x20, 0xae, 0x16, 0xf0, 0xa1, 0x25, 0x2c, 0x92, 0xd9, 0xb5, 0x8a,
1900 0xe7, 0x33, 0x88, 0xaa,
1901 ],
1902 Core::Maj16 => [
1903 0x0a, 0xf6, 0xd0, 0xc1, 0x71, 0xfe, 0x33, 0xa2, 0x15, 0x9b, 0xf9, 0x88, 0x00, 0xf0,
1904 0x41, 0x2c, 0x25, 0x97, 0xe9, 0x97, 0x84, 0xd0, 0x74, 0xfd, 0xfa, 0x33, 0xd7, 0xfd,
1905 0xe5, 0x97, 0xdd, 0xfd,
1906 ],
1907 Core::Maj32 => [
1908 0x30, 0x60, 0x83, 0x8d, 0x48, 0x45, 0x6f, 0x33, 0x92, 0xd5, 0xd6, 0x9b, 0x5e, 0xec,
1909 0x08, 0x92, 0x76, 0xcd, 0x58, 0xbb, 0x67, 0xa1, 0x2c, 0x64, 0x2e, 0xc7, 0x3a, 0xeb,
1910 0x9a, 0xda, 0xcb, 0xdd,
1911 ],
1912 Core::Maj64 => [
1913 0x8e, 0xbc, 0xc1, 0x74, 0x57, 0xea, 0x2b, 0x14, 0x23, 0x1b, 0x0e, 0x90, 0x1e, 0xa7,
1914 0xb1, 0xd4, 0x7b, 0x9b, 0x78, 0x98, 0x63, 0x72, 0xa4, 0x41, 0x6f, 0xe7, 0x3f, 0x67,
1915 0x63, 0xfe, 0xb2, 0x4b,
1916 ],
1917 Core::Maj8 => [
1918 0x89, 0x30, 0xd1, 0xd0, 0x99, 0x1b, 0x0a, 0x58, 0x1d, 0x0b, 0x1d, 0x85, 0xad, 0x72,
1919 0x14, 0x7d, 0x66, 0x49, 0xa3, 0x59, 0x93, 0x28, 0x3f, 0xc9, 0x72, 0x14, 0x43, 0x1f,
1920 0x0b, 0x6a, 0x7a, 0xa8,
1921 ],
1922 Core::Max16 => [
1923 0xe0, 0x11, 0x47, 0x17, 0x69, 0x1a, 0xc1, 0xa7, 0x39, 0x28, 0x8f, 0xc6, 0xff, 0xa1,
1924 0xc6, 0x50, 0x7c, 0x43, 0xe6, 0xf1, 0xd4, 0xc1, 0x87, 0x70, 0xff, 0xa1, 0x66, 0xae,
1925 0x83, 0x9d, 0xd5, 0x33,
1926 ],
1927 Core::Max32 => [
1928 0x1d, 0x72, 0x3c, 0xb3, 0x89, 0x94, 0x22, 0x19, 0xec, 0x10, 0x34, 0x85, 0x31, 0x7f,
1929 0xa5, 0xd8, 0x7e, 0xe1, 0x5c, 0x24, 0xb2, 0x08, 0x0f, 0x50, 0x46, 0x65, 0x0d, 0x80,
1930 0x30, 0x8b, 0x18, 0x9d,
1931 ],
1932 Core::Max64 => [
1933 0x00, 0x73, 0xac, 0x3c, 0x6e, 0xa9, 0x39, 0xdc, 0xc7, 0xee, 0xe4, 0xea, 0x63, 0xdc,
1934 0xfd, 0x75, 0x20, 0x37, 0x35, 0x5b, 0x48, 0x4f, 0x6e, 0x70, 0x16, 0xb3, 0x00, 0xe2,
1935 0xd2, 0x8c, 0x07, 0xc3,
1936 ],
1937 Core::Max8 => [
1938 0x6b, 0xc1, 0x03, 0x70, 0xf3, 0xe7, 0xa7, 0xb9, 0x2a, 0xcb, 0x14, 0x23, 0xbb, 0xdf,
1939 0x0b, 0x3d, 0x7e, 0x3c, 0xd0, 0xd2, 0xdb, 0xc7, 0x05, 0xa3, 0x4d, 0x8d, 0xc9, 0x9c,
1940 0x91, 0x04, 0x22, 0xfb,
1941 ],
1942 Core::Median16 => [
1943 0x24, 0x14, 0xe3, 0xc4, 0x39, 0x65, 0x9d, 0x8a, 0xa9, 0xd0, 0x87, 0xe1, 0xad, 0xe7,
1944 0x72, 0x66, 0x67, 0x3d, 0x1c, 0x8b, 0xd4, 0xe7, 0x50, 0x1b, 0x22, 0xac, 0x46, 0xa3,
1945 0xff, 0x39, 0x97, 0x5d,
1946 ],
1947 Core::Median32 => [
1948 0x07, 0x92, 0x35, 0x6b, 0x61, 0x0b, 0x57, 0xd0, 0xec, 0x19, 0x9e, 0x98, 0x53, 0x5e,
1949 0xa9, 0xbc, 0xcc, 0xe8, 0x43, 0xa5, 0xdf, 0x5d, 0xd2, 0x40, 0x8c, 0x41, 0x48, 0x86,
1950 0xdf, 0xd6, 0xbd, 0x1e,
1951 ],
1952 Core::Median64 => [
1953 0x07, 0x66, 0xd8, 0x9b, 0x43, 0x0f, 0xfd, 0xf0, 0x38, 0x69, 0x1b, 0x18, 0x43, 0x9c,
1954 0xd6, 0xfc, 0x49, 0x29, 0x17, 0x2e, 0xa8, 0x84, 0xfd, 0xaf, 0x16, 0x69, 0x36, 0xb3,
1955 0x8b, 0x15, 0xfd, 0x0c,
1956 ],
1957 Core::Median8 => [
1958 0xa4, 0xa0, 0xb6, 0x31, 0x0f, 0xf0, 0xed, 0x4a, 0x4c, 0x3e, 0x03, 0xeb, 0xc7, 0xa9,
1959 0x13, 0x06, 0xef, 0x66, 0x04, 0x24, 0xbc, 0x95, 0xa0, 0xd3, 0xf2, 0xfd, 0xb7, 0x1f,
1960 0xb6, 0xaf, 0xd8, 0xb7,
1961 ],
1962 Core::Min16 => [
1963 0xf1, 0x58, 0xf4, 0x0a, 0x86, 0x09, 0x93, 0xb4, 0x10, 0x7f, 0xb2, 0x71, 0xfb, 0x4c,
1964 0x8f, 0x95, 0x5b, 0xa4, 0x54, 0x2a, 0xd1, 0x82, 0x1c, 0xd2, 0xf1, 0x3c, 0x88, 0x0c,
1965 0xa4, 0xbe, 0xe2, 0xe2,
1966 ],
1967 Core::Min32 => [
1968 0xe5, 0xe4, 0x13, 0xdc, 0x5d, 0xe5, 0xe2, 0x2d, 0x66, 0xf3, 0x2d, 0x8d, 0xbf, 0x50,
1969 0x05, 0x3e, 0xd2, 0x78, 0xe1, 0x75, 0xc0, 0xd4, 0xb3, 0x44, 0xeb, 0xd4, 0x61, 0xbe,
1970 0xb1, 0x08, 0xe5, 0x5e,
1971 ],
1972 Core::Min64 => [
1973 0x43, 0xd8, 0x2f, 0x6c, 0x61, 0x28, 0xaa, 0x01, 0xa9, 0x97, 0xbb, 0x17, 0xe5, 0xe7,
1974 0xf5, 0x01, 0xe7, 0xbe, 0x7d, 0xb9, 0x58, 0x9e, 0x56, 0x6d, 0xe9, 0x7a, 0x32, 0xea,
1975 0xe7, 0xe7, 0xb3, 0x39,
1976 ],
1977 Core::Min8 => [
1978 0x6b, 0x01, 0x2c, 0xa3, 0x18, 0x5d, 0xc0, 0x05, 0xe8, 0x94, 0x2c, 0xfb, 0xc9, 0xf2,
1979 0x38, 0xdc, 0xed, 0xaf, 0x0c, 0x00, 0x43, 0x52, 0x64, 0x47, 0xe3, 0xec, 0x31, 0xce,
1980 0xfa, 0x6e, 0x40, 0x64,
1981 ],
1982 Core::Modulo16 => [
1983 0x62, 0xc1, 0x79, 0xac, 0x84, 0xc5, 0x75, 0x0b, 0x42, 0x5f, 0x9a, 0x1b, 0x8f, 0x81,
1984 0xed, 0xaa, 0x7f, 0x5c, 0xf2, 0x2c, 0x19, 0xd8, 0x6b, 0x0d, 0xcf, 0x96, 0xde, 0xa6,
1985 0xba, 0xd9, 0x9b, 0x3b,
1986 ],
1987 Core::Modulo32 => [
1988 0xa1, 0xf0, 0x1c, 0x10, 0x6f, 0xc3, 0x6a, 0x76, 0x4e, 0x99, 0xb2, 0x33, 0x98, 0xe2,
1989 0x1e, 0x7c, 0x26, 0x7f, 0x88, 0x9f, 0xcc, 0xeb, 0xd1, 0x48, 0x7d, 0x3d, 0xe1, 0xcc,
1990 0x67, 0xc3, 0x2b, 0xd9,
1991 ],
1992 Core::Modulo64 => [
1993 0x50, 0xc8, 0x2f, 0xd0, 0x31, 0x09, 0xc9, 0x8b, 0x72, 0x37, 0xe9, 0x16, 0x74, 0x04,
1994 0x19, 0x64, 0x38, 0x1e, 0x6c, 0x2e, 0xbb, 0xe2, 0x5b, 0xf3, 0xe0, 0xd3, 0x7a, 0x9f,
1995 0x06, 0x0f, 0x15, 0x02,
1996 ],
1997 Core::Modulo8 => [
1998 0x5c, 0x63, 0xc7, 0x7a, 0x16, 0x08, 0xe2, 0xf6, 0xa3, 0x74, 0x8c, 0x11, 0x0f, 0xbb,
1999 0x9a, 0x1c, 0x56, 0x9f, 0xb4, 0xd5, 0x40, 0xf3, 0xdd, 0x2e, 0x4f, 0x80, 0xe9, 0x0d,
2000 0xd5, 0xea, 0x99, 0x82,
2001 ],
2002 Core::Multiply16 => [
2003 0x46, 0xe6, 0x2a, 0xbf, 0x8e, 0x30, 0xa7, 0x74, 0x6d, 0xe0, 0xe9, 0x29, 0xf7, 0xbe,
2004 0xed, 0xdb, 0xde, 0x8b, 0x26, 0x9b, 0xab, 0x08, 0xf7, 0x6e, 0x95, 0x47, 0x10, 0x8b,
2005 0x1c, 0x36, 0x01, 0x74,
2006 ],
2007 Core::Multiply32 => [
2008 0x2d, 0xec, 0xdc, 0x5b, 0x0c, 0x6f, 0xf6, 0x3d, 0x11, 0xf5, 0x38, 0x52, 0xe0, 0xde,
2009 0xed, 0x11, 0x44, 0x81, 0x35, 0x5b, 0xb6, 0xc6, 0xce, 0x15, 0x46, 0xae, 0x9f, 0x81,
2010 0x5b, 0xee, 0x77, 0x50,
2011 ],
2012 Core::Multiply64 => [
2013 0xbf, 0xa8, 0x62, 0x6d, 0xbf, 0x10, 0x00, 0x1d, 0xe3, 0x90, 0xd9, 0x97, 0xf2, 0xee,
2014 0x7b, 0x19, 0x0c, 0x24, 0xa7, 0x8c, 0xfe, 0xcb, 0x91, 0xf5, 0xd7, 0xc1, 0x0c, 0x3f,
2015 0x9d, 0xdb, 0xb1, 0xe6,
2016 ],
2017 Core::Multiply8 => [
2018 0x29, 0xda, 0x13, 0x37, 0x4f, 0x7c, 0xb3, 0x08, 0x40, 0x5f, 0xe2, 0x30, 0xf8, 0x99,
2019 0x48, 0x5c, 0x50, 0x0e, 0x6e, 0x95, 0x20, 0xc1, 0x5e, 0x8a, 0x76, 0xe5, 0x3a, 0x92,
2020 0xe7, 0xac, 0x64, 0xd6,
2021 ],
2022 Core::Negate16 => [
2023 0xf6, 0x42, 0x17, 0x3b, 0x85, 0xef, 0x21, 0x96, 0x9d, 0x8d, 0x90, 0x48, 0x80, 0x7e,
2024 0x3d, 0x4f, 0xac, 0xf3, 0xf5, 0xf9, 0xe5, 0x9a, 0xa5, 0xcf, 0x0c, 0x60, 0xf8, 0x74,
2025 0x22, 0xed, 0x7c, 0x8f,
2026 ],
2027 Core::Negate32 => [
2028 0x54, 0x9b, 0x65, 0xce, 0x97, 0xc6, 0xb3, 0x34, 0xb8, 0xae, 0x94, 0x56, 0x96, 0x0e,
2029 0x36, 0x5b, 0xb2, 0x84, 0xd7, 0x6d, 0x40, 0x05, 0xe9, 0x21, 0xf4, 0x89, 0xbc, 0x36,
2030 0x26, 0x17, 0x1b, 0x06,
2031 ],
2032 Core::Negate64 => [
2033 0x35, 0xac, 0xca, 0x27, 0xce, 0x65, 0x85, 0x79, 0xef, 0x1c, 0x55, 0xad, 0x1a, 0xbe,
2034 0xa0, 0x05, 0x0d, 0x93, 0x66, 0xd1, 0x22, 0x09, 0xad, 0x13, 0x05, 0x25, 0x49, 0xc3,
2035 0x43, 0x64, 0x91, 0xd0,
2036 ],
2037 Core::Negate8 => [
2038 0xd8, 0x71, 0xc5, 0x42, 0x47, 0x3f, 0x4d, 0xd9, 0x02, 0xd3, 0x1f, 0xe3, 0xfc, 0x9a,
2039 0xc0, 0xf3, 0x31, 0x9e, 0x42, 0xe8, 0x0c, 0xae, 0x21, 0x81, 0xff, 0xc8, 0x5e, 0x6c,
2040 0x60, 0xfb, 0x09, 0x88,
2041 ],
2042 Core::One16 => [
2043 0x3f, 0x9f, 0x8d, 0xd1, 0x4c, 0x46, 0xee, 0x02, 0x47, 0x15, 0x57, 0x92, 0x9a, 0xc2,
2044 0xbb, 0x6c, 0x1a, 0xca, 0x00, 0x52, 0x1d, 0x8a, 0xfa, 0xf0, 0xdc, 0xd9, 0xf2, 0xca,
2045 0x7f, 0x31, 0xe6, 0x04,
2046 ],
2047 Core::One32 => [
2048 0x47, 0x8d, 0xc3, 0x9d, 0xc3, 0x99, 0x5e, 0x2e, 0xdb, 0x7e, 0xc6, 0x74, 0x65, 0x6c,
2049 0xae, 0x79, 0x8f, 0x52, 0xe5, 0x72, 0x92, 0x61, 0x74, 0xa6, 0x68, 0xcc, 0x97, 0xbc,
2050 0xa4, 0x48, 0xd1, 0xcc,
2051 ],
2052 Core::One64 => [
2053 0xa3, 0x92, 0xce, 0xfc, 0x0d, 0xa5, 0x3c, 0x65, 0xae, 0xe6, 0x12, 0xf5, 0xc6, 0x81,
2054 0x6c, 0xa8, 0x92, 0xfc, 0x15, 0x6d, 0x43, 0x71, 0x48, 0x76, 0xb3, 0xa0, 0x05, 0x68,
2055 0xe1, 0xba, 0x3e, 0xba,
2056 ],
2057 Core::One8 => [
2058 0xff, 0x59, 0x4e, 0x22, 0xbf, 0xd7, 0x58, 0x13, 0xc0, 0x56, 0xe0, 0xa2, 0x34, 0xed,
2059 0x12, 0xfa, 0x82, 0x87, 0xd1, 0xd5, 0x31, 0x6f, 0x23, 0x90, 0x2b, 0xf0, 0x79, 0xdb,
2060 0xcc, 0x4f, 0x4e, 0xa8,
2061 ],
2062 Core::Or1 => [
2063 0x9b, 0xf5, 0x91, 0x74, 0x41, 0x0a, 0x80, 0x9d, 0x3d, 0xa2, 0xb5, 0x8c, 0x7e, 0x0d,
2064 0x05, 0xc5, 0x5c, 0xec, 0x38, 0xbd, 0xaa, 0x5f, 0xca, 0xc3, 0x82, 0xa3, 0x11, 0x77,
2065 0x0e, 0xe0, 0xeb, 0x38,
2066 ],
2067 Core::Or16 => [
2068 0xdd, 0x9a, 0x31, 0x93, 0xd6, 0x19, 0xd9, 0x59, 0xfa, 0x0b, 0x6d, 0x8b, 0x47, 0xaf,
2069 0x78, 0x54, 0xf7, 0xe0, 0x46, 0x7b, 0xa3, 0x59, 0x01, 0xce, 0x43, 0xd8, 0x00, 0xfc,
2070 0xaf, 0x73, 0x0f, 0xf9,
2071 ],
2072 Core::Or32 => [
2073 0x9a, 0x01, 0x9f, 0x07, 0xdf, 0x49, 0x96, 0xb3, 0x3e, 0x64, 0x7f, 0x4d, 0xe7, 0xe5,
2074 0x6c, 0x1d, 0x8f, 0x03, 0x26, 0x9c, 0xbf, 0xa3, 0xc7, 0x58, 0x2c, 0xfe, 0x80, 0x8e,
2075 0x90, 0x98, 0x70, 0xb7,
2076 ],
2077 Core::Or64 => [
2078 0xc2, 0x4f, 0x35, 0x80, 0x05, 0xf8, 0x03, 0x77, 0x2b, 0x1c, 0x3e, 0x43, 0x9c, 0xf1,
2079 0xb7, 0x09, 0xbd, 0x9f, 0x4d, 0x42, 0x52, 0x75, 0x91, 0x30, 0x3a, 0x36, 0xf6, 0xb1,
2080 0xc3, 0xcf, 0x29, 0xcc,
2081 ],
2082 Core::Or8 => [
2083 0x84, 0xb5, 0x36, 0x89, 0xf2, 0x1d, 0x4e, 0x69, 0x7d, 0x0f, 0xe8, 0x98, 0x8c, 0xe7,
2084 0x36, 0xab, 0x72, 0xc9, 0xc8, 0x6f, 0x84, 0x75, 0x89, 0xda, 0xa9, 0xae, 0x6a, 0x78,
2085 0x46, 0x30, 0xe6, 0x20,
2086 ],
2087 Core::ParseLock => [
2088 0x3d, 0x38, 0x36, 0xfd, 0x30, 0x85, 0xc1, 0xfb, 0xac, 0x6c, 0xd5, 0xfa, 0x0d, 0xbf,
2089 0x4a, 0x3f, 0xb2, 0x55, 0x45, 0x93, 0x17, 0xa2, 0x66, 0xd6, 0xd6, 0xf7, 0x38, 0x2b,
2090 0xb0, 0x5f, 0x07, 0xad,
2091 ],
2092 Core::ParseSequence => [
2093 0x74, 0xf3, 0x5c, 0x01, 0x9e, 0xf5, 0x14, 0xb7, 0x0a, 0xb0, 0x08, 0xbf, 0x2a, 0x12,
2094 0x6d, 0xe7, 0xe0, 0x0f, 0x6e, 0x3c, 0xcd, 0x28, 0x5d, 0x51, 0xdb, 0xd3, 0xac, 0x71,
2095 0xbe, 0xa9, 0xc8, 0x8d,
2096 ],
2097 Core::PointVerify1 => [
2098 0x90, 0xa3, 0xd6, 0x69, 0xb0, 0x0d, 0xa7, 0x95, 0xef, 0xb2, 0xbe, 0xd8, 0xc3, 0x70,
2099 0xc9, 0xe3, 0xea, 0x0f, 0x19, 0xc4, 0x1c, 0x7c, 0xf2, 0x3e, 0x49, 0x2e, 0x33, 0x17,
2100 0x1a, 0x47, 0xf5, 0xff,
2101 ],
2102 Core::RightExtend16_32 => [
2103 0x78, 0x07, 0x16, 0xd3, 0xe8, 0x29, 0x1a, 0x51, 0xe4, 0x5a, 0xda, 0x50, 0x55, 0x8e,
2104 0xfe, 0x41, 0x1c, 0x47, 0x5c, 0x08, 0x5e, 0xec, 0x5a, 0x28, 0xad, 0x97, 0x91, 0xc3,
2105 0x12, 0xfe, 0xe2, 0xbc,
2106 ],
2107 Core::RightExtend16_64 => [
2108 0xc7, 0x70, 0x49, 0x7e, 0x45, 0x23, 0x08, 0xeb, 0xf5, 0x2e, 0x51, 0xb0, 0x58, 0x5e,
2109 0x91, 0x51, 0xe0, 0xff, 0xc3, 0x50, 0x86, 0xab, 0x77, 0x2d, 0x72, 0x41, 0x53, 0x2a,
2110 0x1b, 0xe1, 0x5e, 0x07,
2111 ],
2112 Core::RightExtend32_64 => [
2113 0x42, 0xb4, 0x3a, 0xdc, 0x74, 0xb5, 0x26, 0x6c, 0x91, 0xd7, 0x3d, 0xf4, 0x91, 0xdc,
2114 0xae, 0x59, 0x73, 0x88, 0x04, 0xeb, 0x44, 0x0b, 0x23, 0xda, 0x32, 0x75, 0x30, 0x48,
2115 0x74, 0x86, 0xb7, 0xe8,
2116 ],
2117 Core::RightExtend8_16 => [
2118 0xbc, 0xb2, 0x68, 0x3a, 0x8c, 0xb8, 0xb8, 0xc2, 0x35, 0xfa, 0xa8, 0x96, 0xa9, 0xc0,
2119 0x69, 0xe1, 0xb5, 0x5b, 0xb0, 0x55, 0x8e, 0x73, 0x9e, 0x70, 0xe2, 0x89, 0x14, 0x21,
2120 0x1e, 0x32, 0x75, 0xc8,
2121 ],
2122 Core::RightExtend8_32 => [
2123 0x6d, 0xdb, 0x55, 0x48, 0xfd, 0x58, 0x3c, 0xd2, 0xd3, 0x58, 0x6e, 0x6b, 0x8b, 0xf9,
2124 0x95, 0x24, 0x6b, 0x61, 0x93, 0x4f, 0x49, 0x76, 0x44, 0x67, 0x77, 0xdd, 0x57, 0x40,
2125 0xb3, 0x19, 0xe4, 0x62,
2126 ],
2127 Core::RightExtend8_64 => [
2128 0xda, 0x4f, 0x9c, 0x21, 0x45, 0x51, 0x26, 0x82, 0x07, 0x58, 0xa2, 0xe4, 0xb5, 0x3f,
2129 0xce, 0xb4, 0x52, 0x3e, 0x6e, 0x7a, 0x29, 0x23, 0xa1, 0xa1, 0x61, 0xfc, 0x37, 0x89,
2130 0x2a, 0xc8, 0xda, 0x2a,
2131 ],
2132 Core::RightPadHigh16_32 => [
2133 0x3e, 0x4e, 0x5e, 0x9e, 0x71, 0xe1, 0x37, 0xa2, 0x68, 0x63, 0x43, 0xe0, 0x5a, 0xc5,
2134 0x63, 0x16, 0xac, 0xfc, 0x58, 0x99, 0x1c, 0xb3, 0x8d, 0xb1, 0xb3, 0x23, 0x44, 0x13,
2135 0xf7, 0x30, 0xa1, 0x42,
2136 ],
2137 Core::RightPadHigh16_64 => [
2138 0xde, 0x09, 0xdf, 0x9d, 0x43, 0xdd, 0xad, 0x2d, 0x69, 0x12, 0x04, 0x98, 0x6c, 0xf0,
2139 0x81, 0x9d, 0x6b, 0x80, 0x45, 0xbc, 0xa4, 0x14, 0xd8, 0x0a, 0xf2, 0x16, 0x28, 0x92,
2140 0xa9, 0x25, 0x7e, 0xad,
2141 ],
2142 Core::RightPadHigh1_16 => [
2143 0xff, 0x12, 0x97, 0xd8, 0x78, 0xe2, 0x6e, 0x19, 0x59, 0xbc, 0xc7, 0xe8, 0xae, 0xf9,
2144 0x7a, 0xc0, 0xb6, 0x5a, 0xdc, 0x39, 0x92, 0x3e, 0xc6, 0x50, 0x5e, 0x50, 0xf9, 0x83,
2145 0x05, 0x73, 0x3b, 0x6c,
2146 ],
2147 Core::RightPadHigh1_32 => [
2148 0x28, 0x3f, 0x8a, 0xfb, 0x41, 0x38, 0x2d, 0x2b, 0xe1, 0x8f, 0x8a, 0x77, 0xc3, 0x14,
2149 0xba, 0x17, 0x76, 0xcb, 0x80, 0xc8, 0xec, 0x36, 0xca, 0x12, 0xaa, 0x67, 0xb3, 0x2b,
2150 0xb6, 0x4e, 0xd8, 0x43,
2151 ],
2152 Core::RightPadHigh1_64 => [
2153 0xa3, 0x42, 0x35, 0x28, 0x60, 0xa3, 0x35, 0x0d, 0x79, 0xc3, 0xe9, 0xfc, 0x7a, 0x4a,
2154 0xb3, 0x78, 0x9b, 0x8b, 0x02, 0x97, 0x85, 0x6f, 0xd1, 0x69, 0xca, 0x4d, 0x7d, 0xe2,
2155 0x5f, 0x7d, 0x7c, 0xc4,
2156 ],
2157 Core::RightPadHigh1_8 => [
2158 0x71, 0x03, 0xc0, 0xfe, 0x00, 0xf5, 0x22, 0xa2, 0x21, 0x6c, 0x4a, 0x6b, 0xe5, 0xf7,
2159 0xe0, 0xeb, 0x4d, 0x70, 0x3c, 0xa7, 0x8f, 0x9c, 0x59, 0x8f, 0x6b, 0x3d, 0xfd, 0xe4,
2160 0x37, 0xd8, 0x0c, 0x84,
2161 ],
2162 Core::RightPadHigh32_64 => [
2163 0x5d, 0xc9, 0x10, 0x7d, 0x45, 0x34, 0x95, 0x8c, 0xe4, 0x42, 0x27, 0x67, 0x56, 0x3a,
2164 0x03, 0x1a, 0x38, 0x0f, 0x60, 0xd3, 0x83, 0x71, 0x48, 0xab, 0x3c, 0x8c, 0xc9, 0xc4,
2165 0xc7, 0xd9, 0x96, 0xa2,
2166 ],
2167 Core::RightPadHigh8_16 => [
2168 0xc0, 0xe2, 0xfd, 0x46, 0xf7, 0x88, 0x3b, 0x12, 0x85, 0xa6, 0xf1, 0xa1, 0xdb, 0x96,
2169 0xd9, 0x3c, 0x25, 0x48, 0x04, 0x0f, 0xcd, 0x3f, 0x5c, 0x23, 0xfb, 0xb2, 0x0b, 0x5e,
2170 0x83, 0x03, 0x7c, 0x96,
2171 ],
2172 Core::RightPadHigh8_32 => [
2173 0x29, 0x1e, 0x62, 0x77, 0x08, 0x52, 0x0c, 0x2c, 0xa6, 0xae, 0xce, 0x32, 0xa8, 0x77,
2174 0xb7, 0x78, 0x49, 0xc4, 0xa7, 0xa2, 0x13, 0xcb, 0x89, 0xe1, 0xbd, 0xa7, 0xc5, 0xc5,
2175 0xfe, 0x75, 0x5f, 0x73,
2176 ],
2177 Core::RightPadHigh8_64 => [
2178 0x6b, 0x6f, 0xa2, 0x37, 0x2e, 0xd2, 0x5e, 0x4a, 0x34, 0xd4, 0xae, 0x17, 0x23, 0x42,
2179 0xad, 0xbb, 0x25, 0x9b, 0xe8, 0x98, 0x76, 0x00, 0xdb, 0x19, 0x2e, 0xcb, 0x8d, 0xa4,
2180 0x34, 0xb9, 0xd8, 0x8f,
2181 ],
2182 Core::RightPadLow16_32 => [
2183 0x77, 0x31, 0xd5, 0x60, 0xd3, 0x75, 0x92, 0xd1, 0xa3, 0x1f, 0x73, 0x62, 0x96, 0x7a,
2184 0xb2, 0xe4, 0x75, 0x92, 0xac, 0xa6, 0xe9, 0x2a, 0xb8, 0x58, 0x82, 0x37, 0x92, 0xda,
2185 0xe5, 0xd2, 0xdb, 0x52,
2186 ],
2187 Core::RightPadLow16_64 => [
2188 0x0f, 0xe1, 0xc0, 0xdb, 0x9d, 0x4a, 0x2d, 0x63, 0xe2, 0xba, 0x4a, 0x33, 0x11, 0x7a,
2189 0xad, 0xba, 0x64, 0x51, 0x4a, 0x2b, 0x87, 0xa7, 0xa4, 0xe7, 0x93, 0xfa, 0xac, 0xfe,
2190 0x6b, 0x36, 0x34, 0x47,
2191 ],
2192 Core::RightPadLow1_16 => [
2193 0x79, 0x14, 0xc8, 0xf2, 0x22, 0x47, 0xc2, 0xc3, 0x4b, 0x9c, 0x84, 0xe9, 0x2d, 0x14,
2194 0x44, 0xae, 0xc2, 0xe1, 0x7a, 0x0e, 0xf5, 0x86, 0xba, 0xb2, 0x78, 0x8e, 0xe6, 0xef,
2195 0x68, 0x84, 0x0d, 0x98,
2196 ],
2197 Core::RightPadLow1_32 => [
2198 0x31, 0xb6, 0xce, 0x26, 0xe5, 0x59, 0xf7, 0x6c, 0xf3, 0x66, 0xf4, 0x80, 0x69, 0x85,
2199 0xec, 0xc2, 0x99, 0x55, 0x0f, 0x15, 0xd4, 0xc3, 0xa6, 0x72, 0x9e, 0x29, 0xd7, 0x0e,
2200 0x39, 0x89, 0x56, 0x52,
2201 ],
2202 Core::RightPadLow1_64 => [
2203 0xc5, 0x52, 0x4a, 0xe6, 0x54, 0x8a, 0xcd, 0x63, 0x08, 0x2d, 0x94, 0x89, 0x3e, 0x18,
2204 0xf9, 0xed, 0xbb, 0x92, 0x31, 0xe7, 0x6b, 0xb4, 0xe1, 0x1b, 0xbf, 0xf6, 0xa7, 0xbd,
2205 0x16, 0xf4, 0xb0, 0x29,
2206 ],
2207 Core::RightPadLow1_8 => [
2208 0x59, 0xd7, 0x22, 0x70, 0xef, 0x0e, 0x8f, 0x77, 0x0c, 0x8d, 0x11, 0xf3, 0x17, 0x73,
2209 0xf9, 0xb6, 0xe9, 0x0a, 0x4a, 0xec, 0xeb, 0x5b, 0xfb, 0x3d, 0xfe, 0x96, 0x8c, 0x4e,
2210 0x9d, 0xac, 0x5f, 0xe8,
2211 ],
2212 Core::RightPadLow32_64 => [
2213 0xd4, 0x22, 0x7d, 0x06, 0x6f, 0x18, 0xb9, 0x11, 0xd6, 0xf5, 0xd9, 0xbf, 0xb9, 0xd9,
2214 0xf4, 0x6e, 0x9a, 0xea, 0xdb, 0xbe, 0xfa, 0x34, 0xd4, 0x74, 0x43, 0x2a, 0x1e, 0x78,
2215 0x9e, 0x48, 0x86, 0xff,
2216 ],
2217 Core::RightPadLow8_16 => [
2218 0xab, 0xa4, 0x7a, 0x53, 0x6e, 0x12, 0x27, 0xe1, 0x22, 0xba, 0xac, 0xf1, 0x9c, 0xfd,
2219 0x28, 0x23, 0xb9, 0xb7, 0x8d, 0x79, 0xcc, 0x06, 0xd3, 0x4c, 0x34, 0x8b, 0x14, 0xa1,
2220 0xa1, 0x5a, 0xbd, 0x64,
2221 ],
2222 Core::RightPadLow8_32 => [
2223 0x8f, 0x80, 0xa6, 0xc2, 0x74, 0x71, 0x6b, 0x67, 0x22, 0x04, 0x11, 0x34, 0xea, 0x1c,
2224 0x68, 0xaa, 0xbf, 0x02, 0x13, 0x29, 0x8f, 0x4e, 0x18, 0xf8, 0xf4, 0x92, 0xdc, 0x53,
2225 0x80, 0x8a, 0x31, 0x74,
2226 ],
2227 Core::RightPadLow8_64 => [
2228 0xd6, 0x9c, 0x85, 0xe7, 0xb2, 0xd7, 0xe9, 0x49, 0x43, 0x6c, 0xb1, 0x29, 0x5e, 0x4a,
2229 0xa7, 0x05, 0x57, 0xd7, 0x5e, 0x7c, 0xbd, 0xec, 0x02, 0xcc, 0xa8, 0x5f, 0xbf, 0xb1,
2230 0x33, 0x08, 0xb2, 0x10,
2231 ],
2232 Core::RightRotate16 => [
2233 0xe5, 0x10, 0x70, 0x82, 0x47, 0xf9, 0x1b, 0x4f, 0x0a, 0x8a, 0x22, 0xa4, 0x46, 0xb8,
2234 0x13, 0x7d, 0x0d, 0x42, 0xbe, 0xe7, 0x4c, 0x8c, 0x1e, 0xdd, 0x6d, 0x44, 0x6e, 0xdb,
2235 0x20, 0x13, 0xb5, 0x98,
2236 ],
2237 Core::RightRotate32 => [
2238 0x98, 0x91, 0x57, 0x31, 0x41, 0x29, 0x22, 0xdb, 0xc5, 0x16, 0xa7, 0x37, 0x3a, 0xfc,
2239 0x4d, 0xe6, 0x48, 0x09, 0xf8, 0x3b, 0x26, 0x4b, 0xcf, 0xca, 0x6a, 0xe7, 0x48, 0x83,
2240 0xdb, 0xe1, 0x04, 0xd6,
2241 ],
2242 Core::RightRotate64 => [
2243 0x9e, 0x2f, 0xb9, 0x8a, 0xdf, 0x10, 0x29, 0x33, 0x9d, 0xbe, 0x45, 0xa2, 0x2a, 0x54,
2244 0xa3, 0x90, 0xca, 0x09, 0x86, 0xed, 0xce, 0xa3, 0x2e, 0xac, 0xb8, 0x2e, 0xbc, 0xc8,
2245 0x94, 0xa2, 0x71, 0x1a,
2246 ],
2247 Core::RightRotate8 => [
2248 0x00, 0xc7, 0xc2, 0x6d, 0x95, 0xa5, 0x0b, 0x5a, 0xf9, 0x34, 0x9f, 0xfe, 0x47, 0xe1,
2249 0xd4, 0x3f, 0x3d, 0x76, 0x1f, 0x17, 0xa7, 0x45, 0x3c, 0x98, 0x47, 0x91, 0xe8, 0x7d,
2250 0xc6, 0xa3, 0x11, 0xc8,
2251 ],
2252 Core::RightShift16 => [
2253 0x8b, 0x5e, 0x0f, 0xeb, 0x95, 0x81, 0x30, 0xf0, 0x50, 0x83, 0x32, 0x15, 0x9e, 0x54,
2254 0xc2, 0xdf, 0x98, 0xaf, 0x83, 0x52, 0x1a, 0xca, 0xb3, 0x08, 0x4f, 0xd4, 0xf7, 0xc3,
2255 0xa2, 0xcc, 0xea, 0x77,
2256 ],
2257 Core::RightShift32 => [
2258 0x4b, 0x1f, 0x25, 0x80, 0xe0, 0x85, 0x0d, 0x38, 0xe2, 0xa1, 0x15, 0x73, 0x38, 0x05,
2259 0x2f, 0x1c, 0x37, 0x9f, 0x9d, 0x81, 0x57, 0xf6, 0x2d, 0x33, 0x89, 0x0a, 0xf2, 0x4f,
2260 0xd9, 0xa7, 0xf7, 0x3e,
2261 ],
2262 Core::RightShift64 => [
2263 0x91, 0xa2, 0x97, 0xd7, 0xb5, 0x8a, 0x39, 0x3b, 0xf5, 0x90, 0x25, 0x94, 0x77, 0x47,
2264 0xc8, 0x6d, 0xd4, 0x87, 0x65, 0x9c, 0xc5, 0x6f, 0xb5, 0xa6, 0xf6, 0x43, 0x99, 0x55,
2265 0x12, 0x9a, 0x95, 0x63,
2266 ],
2267 Core::RightShift8 => [
2268 0xa4, 0xc3, 0x54, 0x6f, 0xf2, 0x7e, 0x56, 0xd6, 0x4e, 0x91, 0x8a, 0xb2, 0xfa, 0x6d,
2269 0x00, 0xfc, 0x27, 0x04, 0x58, 0x5b, 0x25, 0xbd, 0xe0, 0x04, 0x9d, 0x6d, 0x8f, 0x48,
2270 0xd8, 0xcf, 0x1c, 0xd0,
2271 ],
2272 Core::RightShiftWith16 => [
2273 0xfd, 0x97, 0x70, 0x30, 0xe3, 0xa2, 0x5a, 0x32, 0xe7, 0x75, 0xb8, 0xd5, 0xe8, 0x71,
2274 0x74, 0xa7, 0xa9, 0xe8, 0x73, 0x1e, 0xc3, 0x6c, 0xf1, 0x32, 0x64, 0x20, 0xad, 0x91,
2275 0x50, 0x2e, 0x6e, 0x98,
2276 ],
2277 Core::RightShiftWith32 => [
2278 0x28, 0x29, 0xba, 0x02, 0x1f, 0x54, 0x07, 0x7a, 0xff, 0xb6, 0x6a, 0xc6, 0xb6, 0xdf,
2279 0xd3, 0xfe, 0xf3, 0x8b, 0xc4, 0x14, 0x91, 0x84, 0x5a, 0x41, 0xce, 0x9d, 0xd3, 0x70,
2280 0x58, 0x6c, 0x2d, 0x04,
2281 ],
2282 Core::RightShiftWith64 => [
2283 0x00, 0x6f, 0xa3, 0xc5, 0x45, 0x79, 0x75, 0x47, 0x86, 0xfc, 0x64, 0xdc, 0x32, 0xe1,
2284 0x9a, 0x22, 0x5c, 0xc1, 0x52, 0xc9, 0x4d, 0xee, 0xb3, 0xc6, 0xab, 0x29, 0x67, 0xdd,
2285 0xbf, 0xc6, 0x46, 0x53,
2286 ],
2287 Core::RightShiftWith8 => [
2288 0xfc, 0xb5, 0xbe, 0x65, 0x07, 0xf0, 0xca, 0x44, 0xbe, 0x2b, 0xe1, 0xcc, 0x3c, 0x3c,
2289 0xfe, 0x39, 0x94, 0x40, 0x4b, 0x80, 0x83, 0xbd, 0x76, 0x02, 0xb2, 0x10, 0x2c, 0xb1,
2290 0xfc, 0xfa, 0x2c, 0x61,
2291 ],
2292 Core::Rightmost16_1 => [
2293 0x3f, 0x3c, 0x43, 0x46, 0x87, 0x17, 0x42, 0x26, 0x5e, 0x87, 0xf0, 0x01, 0xb4, 0x6d,
2294 0xe7, 0xd1, 0x98, 0x75, 0x1b, 0x34, 0xfa, 0xa1, 0x80, 0x18, 0xde, 0x60, 0xc8, 0x46,
2295 0x8d, 0x9b, 0x98, 0xa4,
2296 ],
2297 Core::Rightmost16_2 => [
2298 0x78, 0xf1, 0x71, 0x47, 0x6a, 0x3b, 0x0e, 0xd1, 0xe3, 0xa5, 0x45, 0x5a, 0x5f, 0xbb,
2299 0xcc, 0x90, 0x19, 0x81, 0xb3, 0x23, 0x0f, 0xea, 0x12, 0x64, 0x20, 0x4d, 0xac, 0xd0,
2300 0x81, 0xf9, 0x40, 0x80,
2301 ],
2302 Core::Rightmost16_4 => [
2303 0x75, 0xa1, 0xdf, 0xb6, 0xae, 0x2c, 0x06, 0x6b, 0x2d, 0x0e, 0x20, 0x93, 0x04, 0x8a,
2304 0xdb, 0xc5, 0x0d, 0x46, 0x50, 0x65, 0x6f, 0xb2, 0xd3, 0x57, 0x8b, 0x57, 0xd9, 0xde,
2305 0x4c, 0x61, 0xc8, 0xb5,
2306 ],
2307 Core::Rightmost16_8 => [
2308 0xee, 0x76, 0x9c, 0x1c, 0xc8, 0xa3, 0xfd, 0xd1, 0x83, 0x8f, 0xc9, 0xf0, 0x49, 0x0c,
2309 0xe7, 0x03, 0x93, 0xfd, 0x91, 0xba, 0x3c, 0xbd, 0x4a, 0xbd, 0x08, 0x64, 0x9f, 0xb9,
2310 0xc4, 0x43, 0x11, 0xbd,
2311 ],
2312 Core::Rightmost32_1 => [
2313 0xcb, 0x0d, 0xb5, 0x69, 0xa3, 0x61, 0x86, 0xa2, 0x56, 0x05, 0xa9, 0xd2, 0xe4, 0xe1,
2314 0x0a, 0x20, 0xc1, 0x11, 0xd5, 0x0c, 0x34, 0xf1, 0x72, 0x46, 0x52, 0x0b, 0xc4, 0x54,
2315 0xd8, 0x68, 0x28, 0x36,
2316 ],
2317 Core::Rightmost32_16 => [
2318 0x06, 0xfa, 0xa3, 0xbe, 0x67, 0x8c, 0xd6, 0xfd, 0xd7, 0xf3, 0x11, 0x2e, 0xbf, 0x2c,
2319 0x48, 0x62, 0x7a, 0xfa, 0x78, 0x75, 0xf7, 0x06, 0x8d, 0x26, 0xa9, 0xcc, 0x04, 0x5b,
2320 0x2c, 0x8f, 0x11, 0xbc,
2321 ],
2322 Core::Rightmost32_2 => [
2323 0x00, 0xb8, 0x81, 0x5a, 0xd7, 0x42, 0x3d, 0xd5, 0x8c, 0xb9, 0x8b, 0xe8, 0x2c, 0xad,
2324 0x26, 0x67, 0x5c, 0x3b, 0xf5, 0x4a, 0x0b, 0xed, 0xba, 0xde, 0x34, 0x64, 0xb4, 0xfe,
2325 0x5a, 0x4e, 0x8c, 0xe6,
2326 ],
2327 Core::Rightmost32_4 => [
2328 0x3d, 0xfa, 0x7a, 0x20, 0x19, 0x8e, 0x42, 0xd6, 0xa7, 0x94, 0x8c, 0x8e, 0xd8, 0xe0,
2329 0xd4, 0x7e, 0xc7, 0xc0, 0x00, 0x7b, 0x3d, 0x68, 0x66, 0xca, 0x15, 0xe3, 0xda, 0x04,
2330 0x5b, 0x85, 0x63, 0xc7,
2331 ],
2332 Core::Rightmost32_8 => [
2333 0x17, 0xb5, 0x8d, 0x6e, 0x30, 0x4b, 0x1c, 0x7e, 0x5d, 0xbf, 0x0c, 0x4d, 0xf6, 0xfc,
2334 0xc8, 0x03, 0xc0, 0x08, 0x94, 0x4c, 0x79, 0x95, 0x55, 0x5b, 0x94, 0xe1, 0x28, 0x9b,
2335 0x25, 0x49, 0xbe, 0x99,
2336 ],
2337 Core::Rightmost64_1 => [
2338 0x5e, 0x8f, 0xb4, 0x9f, 0xac, 0xe0, 0x34, 0x48, 0x1d, 0xc6, 0x53, 0x61, 0x8e, 0x2a,
2339 0x8b, 0x65, 0xea, 0xf0, 0x99, 0x3f, 0x28, 0x84, 0x4c, 0xc9, 0xb1, 0x30, 0xca, 0xcc,
2340 0xe4, 0x5e, 0x82, 0xde,
2341 ],
2342 Core::Rightmost64_16 => [
2343 0xc6, 0x4c, 0xa9, 0x96, 0x55, 0x36, 0xf2, 0x37, 0xbc, 0x4d, 0x16, 0x6e, 0x4a, 0xec,
2344 0xa5, 0x6e, 0xac, 0x26, 0x62, 0xe6, 0x3a, 0xcc, 0xb9, 0x8b, 0x6e, 0x54, 0x25, 0x60,
2345 0xf9, 0xe5, 0x38, 0xda,
2346 ],
2347 Core::Rightmost64_2 => [
2348 0x83, 0xd2, 0xda, 0x6f, 0x34, 0x20, 0xd7, 0x79, 0xbc, 0xb8, 0xf6, 0x0d, 0x0b, 0x69,
2349 0x6e, 0xed, 0x74, 0xc3, 0x1d, 0xb0, 0x8a, 0xdd, 0xbe, 0xbd, 0x12, 0x35, 0xa5, 0xdf,
2350 0x8f, 0x59, 0xc4, 0x2f,
2351 ],
2352 Core::Rightmost64_32 => [
2353 0x7d, 0x2d, 0xff, 0x6e, 0x3d, 0xd5, 0x04, 0xbb, 0x0e, 0x57, 0x03, 0xa0, 0x33, 0x58,
2354 0x6d, 0x27, 0xd9, 0x66, 0x44, 0xc0, 0x48, 0xab, 0x34, 0xa4, 0x5b, 0xf5, 0x35, 0x12,
2355 0x9d, 0x50, 0x11, 0x67,
2356 ],
2357 Core::Rightmost64_4 => [
2358 0x84, 0x1b, 0xbd, 0x65, 0x27, 0x42, 0xdd, 0xd3, 0xad, 0xea, 0xe4, 0x3c, 0xfe, 0xd6,
2359 0x32, 0x9f, 0x2f, 0xd6, 0x2e, 0x6f, 0xec, 0xd0, 0xfd, 0x58, 0xe3, 0xc3, 0xfb, 0x8b,
2360 0x5a, 0x0e, 0x4d, 0xd5,
2361 ],
2362 Core::Rightmost64_8 => [
2363 0xa0, 0xa6, 0x1c, 0x76, 0x58, 0xa1, 0x86, 0x23, 0xbf, 0x1d, 0x01, 0x1a, 0x97, 0x92,
2364 0xd5, 0x18, 0xfb, 0xd0, 0x24, 0x14, 0x2a, 0x90, 0x44, 0x00, 0xec, 0xde, 0xea, 0x92,
2365 0x45, 0x7a, 0x0a, 0x81,
2366 ],
2367 Core::Rightmost8_1 => [
2368 0x99, 0x9b, 0x68, 0x6e, 0x60, 0xb3, 0xd1, 0xec, 0xd6, 0xc6, 0xd7, 0x7f, 0xbc, 0xa8,
2369 0x2c, 0xb2, 0xab, 0xbd, 0x41, 0x82, 0xc8, 0x21, 0x12, 0x67, 0x47, 0x5f, 0xa0, 0xc1,
2370 0x90, 0x1d, 0x89, 0xf9,
2371 ],
2372 Core::Rightmost8_2 => [
2373 0x53, 0x07, 0xff, 0xbf, 0x51, 0x6c, 0xd0, 0xee, 0xf3, 0xff, 0x43, 0x87, 0xb9, 0x05,
2374 0x2c, 0x14, 0x4a, 0x4d, 0xfa, 0x23, 0x29, 0x23, 0x7c, 0x6b, 0x27, 0x49, 0x92, 0xb2,
2375 0xc8, 0x04, 0x7b, 0x60,
2376 ],
2377 Core::Rightmost8_4 => [
2378 0x7f, 0x52, 0xe6, 0x45, 0xbb, 0xbb, 0xd7, 0x92, 0x69, 0xc4, 0x3e, 0xf0, 0x2d, 0xb9,
2379 0x82, 0xf8, 0xc6, 0x36, 0x33, 0xc1, 0x79, 0xe4, 0x06, 0x91, 0x73, 0x93, 0x36, 0x04,
2380 0xcc, 0x63, 0x5b, 0xca,
2381 ],
2382 Core::ScalarAdd => [
2383 0x34, 0xba, 0xa4, 0x0b, 0x2e, 0x0a, 0xa8, 0xcb, 0x7e, 0x97, 0xc7, 0x3e, 0x3e, 0xd3,
2384 0xb3, 0x65, 0xa1, 0x5b, 0x7c, 0x3f, 0x76, 0x61, 0xfb, 0x19, 0x71, 0x5e, 0xc6, 0x05,
2385 0xc1, 0x14, 0x9d, 0x11,
2386 ],
2387 Core::ScalarInvert => [
2388 0x62, 0x31, 0xbd, 0xab, 0x73, 0xca, 0x34, 0xea, 0x7e, 0x83, 0x7d, 0xaa, 0xd6, 0x92,
2389 0xed, 0xe5, 0xba, 0xbf, 0xae, 0x09, 0xb5, 0x75, 0x6d, 0x2a, 0xb3, 0x6c, 0x5a, 0x36,
2390 0x47, 0x5a, 0x65, 0x89,
2391 ],
2392 Core::ScalarIsZero => [
2393 0xf7, 0x5e, 0xda, 0x06, 0xce, 0x6a, 0xf0, 0x9f, 0xae, 0x37, 0xdb, 0x4e, 0x62, 0x25,
2394 0xe6, 0xa8, 0xac, 0x86, 0xa2, 0x36, 0x37, 0x62, 0x7d, 0x62, 0x64, 0x09, 0x19, 0x0f,
2395 0xf3, 0xb3, 0x9d, 0x90,
2396 ],
2397 Core::ScalarMultiply => [
2398 0xb2, 0xbc, 0xc3, 0x90, 0xd6, 0x37, 0xb9, 0xe0, 0x3f, 0xbf, 0xc4, 0x2f, 0xff, 0x71,
2399 0xd2, 0x2e, 0x72, 0x00, 0xf6, 0x93, 0x29, 0xce, 0xf7, 0x16, 0x9e, 0x68, 0xa8, 0xc7,
2400 0x1a, 0x7f, 0x0a, 0x4b,
2401 ],
2402 Core::ScalarMultiplyLambda => [
2403 0x89, 0xd5, 0x85, 0x5c, 0x5f, 0x85, 0xc0, 0x03, 0x5d, 0x27, 0xb0, 0xc0, 0x9e, 0x20,
2404 0x33, 0x0b, 0x00, 0x1c, 0x68, 0x4b, 0x59, 0x86, 0xab, 0xce, 0xd8, 0x36, 0x0c, 0xd3,
2405 0x9b, 0x08, 0xc4, 0xe1,
2406 ],
2407 Core::ScalarNegate => [
2408 0x07, 0x05, 0xac, 0xdf, 0xb8, 0x66, 0x40, 0x00, 0x0e, 0x3d, 0x3b, 0xad, 0x50, 0x9a,
2409 0x14, 0xa7, 0x8c, 0x17, 0x1f, 0x61, 0xed, 0xc0, 0x84, 0x23, 0xb0, 0x42, 0xb9, 0x47,
2410 0x48, 0x43, 0x9c, 0xf8,
2411 ],
2412 Core::ScalarNormalize => [
2413 0xa0, 0x61, 0xe1, 0x9d, 0x75, 0xc3, 0x25, 0xa2, 0x6d, 0x56, 0x5a, 0xad, 0x7e, 0x3f,
2414 0x9a, 0xe2, 0x6b, 0x22, 0x2f, 0x25, 0xe8, 0x02, 0x17, 0x4f, 0x6b, 0xac, 0xd5, 0x11,
2415 0x27, 0x7a, 0xea, 0xa5,
2416 ],
2417 Core::ScalarSquare => [
2418 0x49, 0xf7, 0x34, 0xa2, 0x65, 0x9c, 0xa0, 0xab, 0x7c, 0x9e, 0x67, 0xfc, 0xfc, 0x3c,
2419 0x0d, 0x72, 0xaf, 0x0f, 0x91, 0x7c, 0x9e, 0xdc, 0xb9, 0x92, 0x9d, 0x17, 0x7a, 0x0f,
2420 0x0d, 0xe8, 0x9d, 0x59,
2421 ],
2422 Core::Scale => [
2423 0xc0, 0x45, 0x43, 0xdc, 0x85, 0xef, 0x11, 0x37, 0x4a, 0x93, 0x0f, 0x4a, 0x94, 0x8e,
2424 0xb7, 0x35, 0xa6, 0x50, 0x0a, 0x1a, 0x71, 0x58, 0xd5, 0x73, 0x12, 0x3f, 0x07, 0x21,
2425 0x71, 0x75, 0xf3, 0x18,
2426 ],
2427 Core::Sha256Block => [
2428 0x0c, 0x97, 0xa0, 0x08, 0xad, 0xe8, 0x7b, 0xb1, 0xe0, 0xac, 0x06, 0xb7, 0xd0, 0x31,
2429 0x30, 0x23, 0x36, 0x28, 0x58, 0xef, 0x90, 0xec, 0x14, 0xec, 0x9c, 0xb9, 0x5f, 0x0d,
2430 0xa9, 0x64, 0xe0, 0x08,
2431 ],
2432 Core::Sha256Ctx8Add1 => [
2433 0x37, 0x06, 0x6c, 0x67, 0xad, 0x95, 0x24, 0x9d, 0x4b, 0xa6, 0xe1, 0x81, 0x44, 0xca,
2434 0x0a, 0x41, 0x5d, 0x9c, 0x83, 0x2a, 0xa6, 0xb6, 0x06, 0x28, 0xe9, 0x7c, 0x96, 0x7e,
2435 0xb1, 0x79, 0x33, 0x83,
2436 ],
2437 Core::Sha256Ctx8Add128 => [
2438 0x2d, 0xcf, 0x48, 0x4c, 0x25, 0x7f, 0x67, 0x94, 0x0c, 0xa3, 0x75, 0xba, 0x98, 0xe8,
2439 0x3c, 0xe0, 0xe2, 0xa7, 0x1e, 0x16, 0xda, 0x50, 0x51, 0xd1, 0xbb, 0x19, 0xfb, 0x5f,
2440 0x34, 0x6f, 0x15, 0x4f,
2441 ],
2442 Core::Sha256Ctx8Add16 => [
2443 0x82, 0x99, 0x25, 0x20, 0x40, 0xcb, 0x39, 0xe3, 0x26, 0xa2, 0x48, 0xd5, 0xc7, 0x88,
2444 0xf9, 0x51, 0x6d, 0x15, 0xa2, 0xff, 0x41, 0x45, 0xbb, 0x64, 0xad, 0x65, 0x77, 0xae,
2445 0x1a, 0x3e, 0xf7, 0x27,
2446 ],
2447 Core::Sha256Ctx8Add2 => [
2448 0x8b, 0xae, 0x3e, 0x7e, 0x1e, 0xd4, 0xdc, 0xba, 0x6e, 0x64, 0x5a, 0xa1, 0x43, 0x41,
2449 0xbb, 0xae, 0x0d, 0xbb, 0x3a, 0xe2, 0x1b, 0xb6, 0x3d, 0xc0, 0x30, 0xca, 0x0e, 0x44,
2450 0x7a, 0x85, 0x7e, 0xc2,
2451 ],
2452 Core::Sha256Ctx8Add256 => [
2453 0x44, 0xb7, 0x17, 0xe1, 0x97, 0x09, 0x99, 0xb6, 0x6b, 0x69, 0x3d, 0x8c, 0x9d, 0x1d,
2454 0x3b, 0x06, 0x05, 0xc2, 0xb7, 0xa6, 0x21, 0x3e, 0x6b, 0xa5, 0x6c, 0x69, 0xaf, 0x8d,
2455 0x7f, 0xae, 0x16, 0x86,
2456 ],
2457 Core::Sha256Ctx8Add32 => [
2458 0x39, 0x23, 0x9a, 0x43, 0xa8, 0x4b, 0xac, 0x6f, 0x29, 0x69, 0xbf, 0xa9, 0x5b, 0xfe,
2459 0x6a, 0x04, 0xfc, 0xba, 0x80, 0x92, 0x89, 0x59, 0x39, 0xf1, 0x2a, 0x1c, 0xe0, 0xe2,
2460 0x63, 0x21, 0xec, 0x10,
2461 ],
2462 Core::Sha256Ctx8Add4 => [
2463 0xd7, 0xd7, 0x45, 0x61, 0x4b, 0x37, 0xa7, 0xe0, 0x7d, 0xce, 0x22, 0xf6, 0x4e, 0x7b,
2464 0x1e, 0xdf, 0xe2, 0x3b, 0xed, 0xa8, 0x51, 0xf1, 0xe7, 0x6f, 0x1a, 0x6b, 0x02, 0x8f,
2465 0xcc, 0x5e, 0x9f, 0xc0,
2466 ],
2467 Core::Sha256Ctx8Add512 => [
2468 0xbe, 0x36, 0x80, 0x32, 0xd8, 0x6e, 0xbc, 0xf2, 0x13, 0xca, 0x45, 0xba, 0x6e, 0xca,
2469 0xb5, 0x4c, 0xb1, 0xf2, 0x66, 0x1d, 0x40, 0x3d, 0xa0, 0x59, 0x06, 0x30, 0x0b, 0xc5,
2470 0x11, 0x37, 0xaa, 0xb5,
2471 ],
2472 Core::Sha256Ctx8Add64 => [
2473 0xfd, 0xc4, 0x34, 0xce, 0x83, 0xdb, 0xdc, 0xe0, 0x78, 0x2a, 0xa3, 0x6d, 0x41, 0x8d,
2474 0xef, 0x7f, 0x99, 0xaf, 0x82, 0x93, 0xaf, 0xb2, 0x9e, 0x83, 0x9f, 0xe4, 0x94, 0x8f,
2475 0x62, 0x34, 0xf7, 0x7f,
2476 ],
2477 Core::Sha256Ctx8Add8 => [
2478 0x9c, 0x98, 0x83, 0x30, 0x79, 0x9a, 0x68, 0x0b, 0xfe, 0x73, 0xd7, 0xca, 0xa3, 0x68,
2479 0x9f, 0xe4, 0xe4, 0x83, 0xda, 0x4e, 0xe6, 0xd8, 0x18, 0x58, 0x79, 0x27, 0xc7, 0xf4,
2480 0x33, 0x92, 0xde, 0xf7,
2481 ],
2482 Core::Sha256Ctx8AddBuffer511 => [
2483 0xc0, 0x27, 0xe1, 0x06, 0x29, 0x96, 0xae, 0x94, 0xac, 0x39, 0x71, 0xa2, 0xc4, 0xfa,
2484 0xe5, 0x49, 0x97, 0xeb, 0xf0, 0x9b, 0x9f, 0x7d, 0xa5, 0x75, 0x63, 0x9b, 0xe6, 0x17,
2485 0x16, 0x7f, 0x02, 0xe3,
2486 ],
2487 Core::Sha256Ctx8Finalize => [
2488 0xcb, 0xba, 0x1f, 0x1d, 0x8a, 0x97, 0xab, 0x4d, 0x1f, 0xa9, 0x68, 0x6e, 0x7a, 0xee,
2489 0xf0, 0x66, 0xfb, 0x5b, 0xf2, 0x90, 0x71, 0x6e, 0xae, 0x10, 0xe7, 0x0b, 0x61, 0x99,
2490 0x96, 0xc5, 0x95, 0x94,
2491 ],
2492 Core::Sha256Ctx8Init => [
2493 0xa5, 0x3c, 0x76, 0x79, 0xe3, 0xae, 0x03, 0x47, 0xd4, 0xd7, 0x91, 0x26, 0xa7, 0xc7,
2494 0xe4, 0x9a, 0xc0, 0xde, 0xc9, 0x0c, 0xdf, 0x93, 0x57, 0x99, 0xcd, 0xdb, 0x58, 0xda,
2495 0x8f, 0x44, 0x96, 0xe4,
2496 ],
2497 Core::Sha256Iv => [
2498 0x73, 0x89, 0xf0, 0x02, 0x53, 0x05, 0xdc, 0xe8, 0x28, 0xd4, 0xa1, 0xfe, 0x83, 0x74,
2499 0x30, 0x46, 0xa3, 0x67, 0xc9, 0x23, 0xf1, 0x8a, 0xbf, 0x36, 0x5e, 0x39, 0x1e, 0x5b,
2500 0x04, 0xaf, 0x1a, 0x47,
2501 ],
2502 Core::Some1 => [
2503 0xfb, 0xda, 0xd6, 0xb0, 0x22, 0xa0, 0xc7, 0x8f, 0xf3, 0x56, 0x04, 0xaa, 0xfa, 0xcd,
2504 0x27, 0xcc, 0x10, 0xf5, 0x1e, 0xe0, 0x69, 0x8c, 0x41, 0xf1, 0xad, 0xa9, 0x03, 0x97,
2505 0x61, 0x8d, 0x52, 0x6f,
2506 ],
2507 Core::Some16 => [
2508 0x7e, 0x2c, 0xcd, 0xbf, 0xc2, 0x4d, 0xd8, 0xd8, 0xa9, 0x04, 0xb0, 0x17, 0xdd, 0x4f,
2509 0x57, 0xe7, 0xc8, 0x74, 0x96, 0x34, 0x8a, 0xca, 0x7d, 0x04, 0x58, 0xc9, 0xd1, 0x6b,
2510 0x68, 0xbc, 0xda, 0x1c,
2511 ],
2512 Core::Some32 => [
2513 0x45, 0x36, 0xae, 0xb1, 0x21, 0xc4, 0x27, 0x3f, 0xfc, 0x2a, 0x48, 0xfe, 0xd9, 0xee,
2514 0xd0, 0x31, 0x2e, 0xbd, 0x97, 0x2d, 0xec, 0x56, 0x81, 0xf4, 0x7e, 0xad, 0x0f, 0x62,
2515 0xd9, 0x54, 0x45, 0x2a,
2516 ],
2517 Core::Some64 => [
2518 0x7f, 0x0b, 0xbd, 0x9d, 0x66, 0x31, 0xc1, 0x30, 0x9f, 0x90, 0x1c, 0x2f, 0x0d, 0x7a,
2519 0x0d, 0x28, 0x4a, 0x34, 0x41, 0x6c, 0xf7, 0x50, 0xdb, 0x1f, 0xe2, 0xb9, 0xf3, 0xd6,
2520 0xed, 0x70, 0x94, 0x09,
2521 ],
2522 Core::Some8 => [
2523 0x2d, 0x8c, 0x8f, 0x71, 0xee, 0x5e, 0x75, 0x82, 0xf0, 0xed, 0x65, 0xf5, 0x26, 0xc0,
2524 0x26, 0x05, 0xdc, 0xb9, 0x3c, 0x0b, 0xdd, 0xb9, 0x43, 0x3a, 0xff, 0x3f, 0x25, 0xc2,
2525 0x28, 0xac, 0xda, 0x8a,
2526 ],
2527 Core::Subtract16 => [
2528 0x56, 0x9e, 0x6c, 0x6b, 0x39, 0xe7, 0xd8, 0x12, 0x65, 0x9b, 0x67, 0xaa, 0xc0, 0x8a,
2529 0xd1, 0x50, 0x99, 0xee, 0xad, 0x79, 0x8f, 0xd1, 0xd4, 0x2d, 0xa1, 0x7e, 0xe3, 0xf0,
2530 0xd4, 0xd4, 0x49, 0x2a,
2531 ],
2532 Core::Subtract32 => [
2533 0x19, 0xd3, 0x5e, 0x0a, 0xf1, 0xe1, 0x65, 0x14, 0xa6, 0xdf, 0xc2, 0x9a, 0x91, 0x41,
2534 0x87, 0x13, 0x39, 0x64, 0xc4, 0x80, 0xf6, 0x60, 0xe7, 0xeb, 0x92, 0x4e, 0xe1, 0x6d,
2535 0xba, 0xa2, 0x49, 0xcb,
2536 ],
2537 Core::Subtract64 => [
2538 0x52, 0x3e, 0x11, 0x86, 0x28, 0xbf, 0x3a, 0xc1, 0xa6, 0xbe, 0x5a, 0x72, 0xbd, 0xb1,
2539 0x14, 0x1b, 0x89, 0xe0, 0xe0, 0x01, 0xe4, 0x02, 0xad, 0xda, 0x82, 0x58, 0x79, 0x00,
2540 0x03, 0xf8, 0x8a, 0xd8,
2541 ],
2542 Core::Subtract8 => [
2543 0x40, 0x95, 0x0b, 0x86, 0xf6, 0xf1, 0xf9, 0x93, 0x55, 0xde, 0xe1, 0x1f, 0x77, 0xda,
2544 0xf2, 0x79, 0xa0, 0xcb, 0x6c, 0x6d, 0x15, 0x6a, 0xe4, 0x4b, 0x7d, 0x5d, 0x25, 0x71,
2545 0x64, 0xb2, 0x67, 0xc5,
2546 ],
2547 Core::Swu => [
2548 0xab, 0xf7, 0x0b, 0xe0, 0x0b, 0x30, 0xf5, 0x77, 0xf9, 0x87, 0xcb, 0x50, 0x48, 0x89,
2549 0x96, 0xba, 0x35, 0x96, 0xdb, 0xf9, 0xc1, 0xe8, 0x44, 0xa8, 0xb1, 0xb8, 0xb7, 0x10,
2550 0x85, 0x3b, 0x65, 0xeb,
2551 ],
2552 Core::TapdataInit => [
2553 0x6c, 0x67, 0xe5, 0xc1, 0x07, 0x35, 0x30, 0x5e, 0xe7, 0xde, 0xb5, 0x9a, 0x6c, 0x6a,
2554 0xc2, 0xef, 0xfc, 0xab, 0x4f, 0xf7, 0xbb, 0x47, 0x9e, 0xa7, 0x00, 0x81, 0x60, 0x6e,
2555 0x60, 0x48, 0x4c, 0xa7,
2556 ],
2557 Core::Verify => [
2558 0x34, 0x3e, 0x6d, 0xc1, 0x6b, 0x3f, 0x52, 0xe8, 0x3e, 0x3b, 0x4c, 0xcc, 0x99, 0xb8,
2559 0xc6, 0xf9, 0x6a, 0x07, 0x4f, 0xe3, 0x99, 0x32, 0x7a, 0xf3, 0x64, 0xbc, 0x28, 0x5e,
2560 0x29, 0x97, 0x45, 0xa2,
2561 ],
2562 Core::Xor1 => [
2563 0x9d, 0xc9, 0xfe, 0x42, 0xf7, 0xeb, 0x34, 0x64, 0x9f, 0x1c, 0x72, 0xd2, 0xe5, 0xdd,
2564 0x16, 0x7d, 0xb2, 0x1b, 0xe5, 0x32, 0x13, 0x72, 0xd5, 0xca, 0x7f, 0x6a, 0x18, 0x4f,
2565 0x93, 0xe0, 0x5e, 0xe3,
2566 ],
2567 Core::Xor16 => [
2568 0x1f, 0xca, 0xf4, 0x0b, 0xde, 0xdd, 0x72, 0xe7, 0x97, 0xb0, 0x9f, 0xe7, 0x87, 0x53,
2569 0xb0, 0xab, 0x27, 0x87, 0x2c, 0x0b, 0xd1, 0x2b, 0x03, 0x49, 0x55, 0xfb, 0xfa, 0xc2,
2570 0x38, 0x12, 0xef, 0x26,
2571 ],
2572 Core::Xor32 => [
2573 0x1d, 0x49, 0xfc, 0x94, 0xf2, 0x2b, 0x5d, 0x31, 0xb7, 0xf9, 0xef, 0xb5, 0x37, 0x8e,
2574 0x5f, 0x8a, 0x42, 0x62, 0x6a, 0xed, 0x4e, 0x92, 0x79, 0x93, 0x48, 0xd6, 0xb7, 0x88,
2575 0xdf, 0xe8, 0x6b, 0x1c,
2576 ],
2577 Core::Xor64 => [
2578 0x7a, 0x3f, 0x3f, 0x55, 0x20, 0x47, 0x83, 0x65, 0x33, 0x44, 0x31, 0x1d, 0x1d, 0xc5,
2579 0x09, 0xd3, 0x5b, 0x66, 0x39, 0xc0, 0xd8, 0xb9, 0x67, 0xa2, 0x07, 0x80, 0x6c, 0xd8,
2580 0x7d, 0x31, 0xd6, 0xe6,
2581 ],
2582 Core::Xor8 => [
2583 0xd8, 0x33, 0x5f, 0x48, 0x90, 0xc1, 0xd8, 0xed, 0x76, 0x6c, 0x71, 0x35, 0x90, 0x2e,
2584 0x01, 0xa0, 0x09, 0x4e, 0x3a, 0x98, 0x16, 0xf7, 0x0c, 0x84, 0x7c, 0xc3, 0xd7, 0xc0,
2585 0x00, 0x40, 0x6e, 0xfe,
2586 ],
2587 Core::XorXor1 => [
2588 0x1e, 0x10, 0x7b, 0x05, 0xff, 0x94, 0x1d, 0x31, 0xd7, 0x57, 0x8b, 0x43, 0x73, 0x28,
2589 0xba, 0x52, 0xf3, 0xff, 0x20, 0xa0, 0x68, 0xc0, 0xd2, 0xbd, 0xef, 0x08, 0x76, 0x80,
2590 0x93, 0xcc, 0x7c, 0x63,
2591 ],
2592 Core::XorXor16 => [
2593 0xb7, 0x76, 0x98, 0x9d, 0xa5, 0x09, 0x5c, 0x4b, 0xe9, 0x4b, 0x1a, 0xef, 0x75, 0x94,
2594 0x66, 0xe1, 0x1f, 0x63, 0x9c, 0x19, 0x39, 0x47, 0x1f, 0xa1, 0x8e, 0x36, 0xe7, 0xe4,
2595 0x90, 0xc3, 0x89, 0x61,
2596 ],
2597 Core::XorXor32 => [
2598 0xd1, 0x68, 0xfa, 0xc1, 0xac, 0x7f, 0xc4, 0x83, 0x57, 0xbe, 0x1b, 0x65, 0x33, 0x75,
2599 0xec, 0x5e, 0x3f, 0x05, 0x82, 0x3a, 0xae, 0x6a, 0xc9, 0x85, 0xe9, 0x40, 0x3e, 0xea,
2600 0xb1, 0x2b, 0xb9, 0xf8,
2601 ],
2602 Core::XorXor64 => [
2603 0x36, 0x1c, 0x57, 0x93, 0x0e, 0xf9, 0x7d, 0x49, 0xcb, 0xc6, 0x79, 0xfa, 0xef, 0x1e,
2604 0x3b, 0xcf, 0xfb, 0x78, 0x79, 0x95, 0xb9, 0x61, 0xe5, 0x53, 0x7d, 0x2b, 0x1e, 0xeb,
2605 0xc9, 0xc9, 0xa6, 0xe8,
2606 ],
2607 Core::XorXor8 => [
2608 0xc2, 0xda, 0x6e, 0x9c, 0xa6, 0x4d, 0x8a, 0x73, 0xc1, 0x77, 0x26, 0x67, 0xb3, 0xd7,
2609 0xa0, 0x93, 0x8b, 0xcb, 0x8a, 0x6c, 0x43, 0xfd, 0x04, 0x73, 0xee, 0xc7, 0x1b, 0x77,
2610 0x49, 0x4a, 0xad, 0x94,
2611 ],
2612 };
2613
2614 Cmr(Midstate(bytes))
2615 }
2616
2617 fn source_ty(&self) -> TypeName {
2618 let name: &'static [u8] = match self {
2619 Core::Add16 => b"i",
2620 Core::Add32 => b"l",
2621 Core::Add64 => b"*ll",
2622 Core::Add8 => b"****22*22**22*22***22*22**22*22",
2623 Core::All16 => b"****22*22**22*22***22*22**22*22",
2624 Core::All32 => b"i",
2625 Core::All64 => b"l",
2626 Core::All8 => b"***22*22**22*22",
2627 Core::And1 => b"*22",
2628 Core::And16 => b"i",
2629 Core::And32 => b"l",
2630 Core::And64 => b"*ll",
2631 Core::And8 => b"****22*22**22*22***22*22**22*22",
2632 Core::Bip0340Verify => b"**hh*hh",
2633 Core::Ch1 => b"*2*22",
2634 Core::Ch16 => b"*****22*22**22*22***22*22**22*22i",
2635 Core::Ch32 => b"*il",
2636 Core::Ch64 => b"*l*ll",
2637 Core::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2638 Core::CheckSigVerify => b"**h*hh*hh",
2639 Core::Complement1 => b"2",
2640 Core::Complement16 => b"****22*22**22*22***22*22**22*22",
2641 Core::Complement32 => b"i",
2642 Core::Complement64 => b"l",
2643 Core::Complement8 => b"***22*22**22*22",
2644 Core::Decompress => b"*2h",
2645 Core::Decrement16 => b"****22*22**22*22***22*22**22*22",
2646 Core::Decrement32 => b"i",
2647 Core::Decrement64 => b"l",
2648 Core::Decrement8 => b"***22*22**22*22",
2649 Core::DivMod128_64 => b"**lll",
2650 Core::DivMod16 => b"i",
2651 Core::DivMod32 => b"l",
2652 Core::DivMod64 => b"*ll",
2653 Core::DivMod8 => b"****22*22**22*22***22*22**22*22",
2654 Core::Divide16 => b"i",
2655 Core::Divide32 => b"l",
2656 Core::Divide64 => b"*ll",
2657 Core::Divide8 => b"****22*22**22*22***22*22**22*22",
2658 Core::Divides16 => b"i",
2659 Core::Divides32 => b"l",
2660 Core::Divides64 => b"*ll",
2661 Core::Divides8 => b"****22*22**22*22***22*22**22*22",
2662 Core::Eq1 => b"*22",
2663 Core::Eq16 => b"i",
2664 Core::Eq256 => b"*hh",
2665 Core::Eq32 => b"l",
2666 Core::Eq64 => b"*ll",
2667 Core::Eq8 => b"****22*22**22*22***22*22**22*22",
2668 Core::FeAdd => b"*hh",
2669 Core::FeInvert => b"h",
2670 Core::FeIsOdd => b"h",
2671 Core::FeIsZero => b"h",
2672 Core::FeMultiply => b"*hh",
2673 Core::FeMultiplyBeta => b"h",
2674 Core::FeNegate => b"h",
2675 Core::FeNormalize => b"h",
2676 Core::FeSquare => b"h",
2677 Core::FeSquareRoot => b"h",
2678 Core::FullAdd16 => b"*2i",
2679 Core::FullAdd32 => b"*2l",
2680 Core::FullAdd64 => b"*2*ll",
2681 Core::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
2682 Core::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
2683 Core::FullDecrement32 => b"*2i",
2684 Core::FullDecrement64 => b"*2l",
2685 Core::FullDecrement8 => b"*2***22*22**22*22",
2686 Core::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
2687 Core::FullIncrement32 => b"*2i",
2688 Core::FullIncrement64 => b"*2l",
2689 Core::FullIncrement8 => b"*2***22*22**22*22",
2690 Core::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
2691 Core::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
2692 Core::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
2693 Core::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
2694 Core::FullLeftShift32_1 => b"*i2",
2695 Core::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
2696 Core::FullLeftShift32_2 => b"*i*22",
2697 Core::FullLeftShift32_4 => b"*i**22*22",
2698 Core::FullLeftShift32_8 => b"*i***22*22**22*22",
2699 Core::FullLeftShift64_1 => b"*l2",
2700 Core::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
2701 Core::FullLeftShift64_2 => b"*l*22",
2702 Core::FullLeftShift64_32 => b"*li",
2703 Core::FullLeftShift64_4 => b"*l**22*22",
2704 Core::FullLeftShift64_8 => b"*l***22*22**22*22",
2705 Core::FullLeftShift8_1 => b"****22*22**22*222",
2706 Core::FullLeftShift8_2 => b"****22*22**22*22*22",
2707 Core::FullLeftShift8_4 => b"****22*22**22*22**22*22",
2708 Core::FullMultiply16 => b"l",
2709 Core::FullMultiply32 => b"*ll",
2710 Core::FullMultiply64 => b"h",
2711 Core::FullMultiply8 => b"i",
2712 Core::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
2713 Core::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
2714 Core::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
2715 Core::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2716 Core::FullRightShift32_1 => b"*2i",
2717 Core::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
2718 Core::FullRightShift32_2 => b"**22i",
2719 Core::FullRightShift32_4 => b"***22*22i",
2720 Core::FullRightShift32_8 => b"****22*22**22*22i",
2721 Core::FullRightShift64_1 => b"*2l",
2722 Core::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
2723 Core::FullRightShift64_2 => b"**22l",
2724 Core::FullRightShift64_32 => b"*il",
2725 Core::FullRightShift64_4 => b"***22*22l",
2726 Core::FullRightShift64_8 => b"****22*22**22*22l",
2727 Core::FullRightShift8_1 => b"*2***22*22**22*22",
2728 Core::FullRightShift8_2 => b"**22***22*22**22*22",
2729 Core::FullRightShift8_4 => b"***22*22***22*22**22*22",
2730 Core::FullSubtract16 => b"*2i",
2731 Core::FullSubtract32 => b"*2l",
2732 Core::FullSubtract64 => b"*2*ll",
2733 Core::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
2734 Core::GeIsOnCurve => b"*hh",
2735 Core::GeNegate => b"*hh",
2736 Core::GejAdd => b"***hhh**hhh",
2737 Core::GejDouble => b"**hhh",
2738 Core::GejEquiv => b"***hhh**hhh",
2739 Core::GejGeAdd => b"***hhh*hh",
2740 Core::GejGeAddEx => b"***hhh*hh",
2741 Core::GejGeEquiv => b"***hhh*hh",
2742 Core::GejInfinity => b"1",
2743 Core::GejIsInfinity => b"**hhh",
2744 Core::GejIsOnCurve => b"**hhh",
2745 Core::GejNegate => b"**hhh",
2746 Core::GejNormalize => b"**hhh",
2747 Core::GejRescale => b"***hhhh",
2748 Core::GejXEquiv => b"*h**hhh",
2749 Core::GejYIsOdd => b"**hhh",
2750 Core::Generate => b"h",
2751 Core::HashToCurve => b"h",
2752 Core::High1 => b"1",
2753 Core::High16 => b"1",
2754 Core::High32 => b"1",
2755 Core::High64 => b"1",
2756 Core::High8 => b"1",
2757 Core::Increment16 => b"****22*22**22*22***22*22**22*22",
2758 Core::Increment32 => b"i",
2759 Core::Increment64 => b"l",
2760 Core::Increment8 => b"***22*22**22*22",
2761 Core::IsOne16 => b"****22*22**22*22***22*22**22*22",
2762 Core::IsOne32 => b"i",
2763 Core::IsOne64 => b"l",
2764 Core::IsOne8 => b"***22*22**22*22",
2765 Core::IsZero16 => b"****22*22**22*22***22*22**22*22",
2766 Core::IsZero32 => b"i",
2767 Core::IsZero64 => b"l",
2768 Core::IsZero8 => b"***22*22**22*22",
2769 Core::Le16 => b"i",
2770 Core::Le32 => b"l",
2771 Core::Le64 => b"*ll",
2772 Core::Le8 => b"****22*22**22*22***22*22**22*22",
2773 Core::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
2774 Core::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
2775 Core::LeftExtend1_16 => b"2",
2776 Core::LeftExtend1_32 => b"2",
2777 Core::LeftExtend1_64 => b"2",
2778 Core::LeftExtend1_8 => b"2",
2779 Core::LeftExtend32_64 => b"i",
2780 Core::LeftExtend8_16 => b"***22*22**22*22",
2781 Core::LeftExtend8_32 => b"***22*22**22*22",
2782 Core::LeftExtend8_64 => b"***22*22**22*22",
2783 Core::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
2784 Core::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
2785 Core::LeftPadHigh1_16 => b"2",
2786 Core::LeftPadHigh1_32 => b"2",
2787 Core::LeftPadHigh1_64 => b"2",
2788 Core::LeftPadHigh1_8 => b"2",
2789 Core::LeftPadHigh32_64 => b"i",
2790 Core::LeftPadHigh8_16 => b"***22*22**22*22",
2791 Core::LeftPadHigh8_32 => b"***22*22**22*22",
2792 Core::LeftPadHigh8_64 => b"***22*22**22*22",
2793 Core::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
2794 Core::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
2795 Core::LeftPadLow1_16 => b"2",
2796 Core::LeftPadLow1_32 => b"2",
2797 Core::LeftPadLow1_64 => b"2",
2798 Core::LeftPadLow1_8 => b"2",
2799 Core::LeftPadLow32_64 => b"i",
2800 Core::LeftPadLow8_16 => b"***22*22**22*22",
2801 Core::LeftPadLow8_32 => b"***22*22**22*22",
2802 Core::LeftPadLow8_64 => b"***22*22**22*22",
2803 Core::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
2804 Core::LeftRotate32 => b"****22*22**22*22i",
2805 Core::LeftRotate64 => b"****22*22**22*22l",
2806 Core::LeftRotate8 => b"***22*22***22*22**22*22",
2807 Core::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
2808 Core::LeftShift32 => b"****22*22**22*22i",
2809 Core::LeftShift64 => b"****22*22**22*22l",
2810 Core::LeftShift8 => b"***22*22***22*22**22*22",
2811 Core::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
2812 Core::LeftShiftWith32 => b"*2****22*22**22*22i",
2813 Core::LeftShiftWith64 => b"*2****22*22**22*22l",
2814 Core::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
2815 Core::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
2816 Core::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
2817 Core::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
2818 Core::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
2819 Core::Leftmost32_1 => b"i",
2820 Core::Leftmost32_16 => b"i",
2821 Core::Leftmost32_2 => b"i",
2822 Core::Leftmost32_4 => b"i",
2823 Core::Leftmost32_8 => b"i",
2824 Core::Leftmost64_1 => b"l",
2825 Core::Leftmost64_16 => b"l",
2826 Core::Leftmost64_2 => b"l",
2827 Core::Leftmost64_32 => b"l",
2828 Core::Leftmost64_4 => b"l",
2829 Core::Leftmost64_8 => b"l",
2830 Core::Leftmost8_1 => b"***22*22**22*22",
2831 Core::Leftmost8_2 => b"***22*22**22*22",
2832 Core::Leftmost8_4 => b"***22*22**22*22",
2833 Core::LinearCombination1 => b"**h**hhhh",
2834 Core::LinearVerify1 => b"***h*hhh*hh",
2835 Core::Low1 => b"1",
2836 Core::Low16 => b"1",
2837 Core::Low32 => b"1",
2838 Core::Low64 => b"1",
2839 Core::Low8 => b"1",
2840 Core::Lt16 => b"i",
2841 Core::Lt32 => b"l",
2842 Core::Lt64 => b"*ll",
2843 Core::Lt8 => b"****22*22**22*22***22*22**22*22",
2844 Core::Maj1 => b"*2*22",
2845 Core::Maj16 => b"*****22*22**22*22***22*22**22*22i",
2846 Core::Maj32 => b"*il",
2847 Core::Maj64 => b"*l*ll",
2848 Core::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2849 Core::Max16 => b"i",
2850 Core::Max32 => b"l",
2851 Core::Max64 => b"*ll",
2852 Core::Max8 => b"****22*22**22*22***22*22**22*22",
2853 Core::Median16 => b"*****22*22**22*22***22*22**22*22i",
2854 Core::Median32 => b"*il",
2855 Core::Median64 => b"*l*ll",
2856 Core::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2857 Core::Min16 => b"i",
2858 Core::Min32 => b"l",
2859 Core::Min64 => b"*ll",
2860 Core::Min8 => b"****22*22**22*22***22*22**22*22",
2861 Core::Modulo16 => b"i",
2862 Core::Modulo32 => b"l",
2863 Core::Modulo64 => b"*ll",
2864 Core::Modulo8 => b"****22*22**22*22***22*22**22*22",
2865 Core::Multiply16 => b"i",
2866 Core::Multiply32 => b"l",
2867 Core::Multiply64 => b"*ll",
2868 Core::Multiply8 => b"****22*22**22*22***22*22**22*22",
2869 Core::Negate16 => b"****22*22**22*22***22*22**22*22",
2870 Core::Negate32 => b"i",
2871 Core::Negate64 => b"l",
2872 Core::Negate8 => b"***22*22**22*22",
2873 Core::One16 => b"1",
2874 Core::One32 => b"1",
2875 Core::One64 => b"1",
2876 Core::One8 => b"1",
2877 Core::Or1 => b"*22",
2878 Core::Or16 => b"i",
2879 Core::Or32 => b"l",
2880 Core::Or64 => b"*ll",
2881 Core::Or8 => b"****22*22**22*22***22*22**22*22",
2882 Core::ParseLock => b"i",
2883 Core::ParseSequence => b"i",
2884 Core::PointVerify1 => b"***h*2hh*2h",
2885 Core::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
2886 Core::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
2887 Core::RightExtend32_64 => b"i",
2888 Core::RightExtend8_16 => b"***22*22**22*22",
2889 Core::RightExtend8_32 => b"***22*22**22*22",
2890 Core::RightExtend8_64 => b"***22*22**22*22",
2891 Core::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
2892 Core::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
2893 Core::RightPadHigh1_16 => b"2",
2894 Core::RightPadHigh1_32 => b"2",
2895 Core::RightPadHigh1_64 => b"2",
2896 Core::RightPadHigh1_8 => b"2",
2897 Core::RightPadHigh32_64 => b"i",
2898 Core::RightPadHigh8_16 => b"***22*22**22*22",
2899 Core::RightPadHigh8_32 => b"***22*22**22*22",
2900 Core::RightPadHigh8_64 => b"***22*22**22*22",
2901 Core::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
2902 Core::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
2903 Core::RightPadLow1_16 => b"2",
2904 Core::RightPadLow1_32 => b"2",
2905 Core::RightPadLow1_64 => b"2",
2906 Core::RightPadLow1_8 => b"2",
2907 Core::RightPadLow32_64 => b"i",
2908 Core::RightPadLow8_16 => b"***22*22**22*22",
2909 Core::RightPadLow8_32 => b"***22*22**22*22",
2910 Core::RightPadLow8_64 => b"***22*22**22*22",
2911 Core::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
2912 Core::RightRotate32 => b"****22*22**22*22i",
2913 Core::RightRotate64 => b"****22*22**22*22l",
2914 Core::RightRotate8 => b"***22*22***22*22**22*22",
2915 Core::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
2916 Core::RightShift32 => b"****22*22**22*22i",
2917 Core::RightShift64 => b"****22*22**22*22l",
2918 Core::RightShift8 => b"***22*22***22*22**22*22",
2919 Core::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
2920 Core::RightShiftWith32 => b"*2****22*22**22*22i",
2921 Core::RightShiftWith64 => b"*2****22*22**22*22l",
2922 Core::RightShiftWith8 => b"*2***22*22***22*22**22*22",
2923 Core::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
2924 Core::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
2925 Core::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
2926 Core::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
2927 Core::Rightmost32_1 => b"i",
2928 Core::Rightmost32_16 => b"i",
2929 Core::Rightmost32_2 => b"i",
2930 Core::Rightmost32_4 => b"i",
2931 Core::Rightmost32_8 => b"i",
2932 Core::Rightmost64_1 => b"l",
2933 Core::Rightmost64_16 => b"l",
2934 Core::Rightmost64_2 => b"l",
2935 Core::Rightmost64_32 => b"l",
2936 Core::Rightmost64_4 => b"l",
2937 Core::Rightmost64_8 => b"l",
2938 Core::Rightmost8_1 => b"***22*22**22*22",
2939 Core::Rightmost8_2 => b"***22*22**22*22",
2940 Core::Rightmost8_4 => b"***22*22**22*22",
2941 Core::ScalarAdd => b"*hh",
2942 Core::ScalarInvert => b"h",
2943 Core::ScalarIsZero => b"h",
2944 Core::ScalarMultiply => b"*hh",
2945 Core::ScalarMultiplyLambda => b"h",
2946 Core::ScalarNegate => b"h",
2947 Core::ScalarNormalize => b"h",
2948 Core::ScalarSquare => b"h",
2949 Core::Scale => b"*h**hhh",
2950 Core::Sha256Block => b"*h*hh",
2951 Core::Sha256Ctx8Add1 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh***22*22**22*22",
2952 Core::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
2953 Core::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
2954 Core::Sha256Ctx8Add2 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh****22*22**22*22***22*22**22*22",
2955 Core::Sha256Ctx8Add256 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh***hh*hh**hh*hh",
2956 Core::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
2957 Core::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
2958 Core::Sha256Ctx8Add512 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh****hh*hh**hh*hh***hh*hh**hh*hh",
2959 Core::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
2960 Core::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
2961 Core::Sha256Ctx8AddBuffer511 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+1***hh*hh**hh*hh*+1**hh*hh*+1*hh*+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22",
2962 Core::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
2963 Core::Sha256Ctx8Init => b"1",
2964 Core::Sha256Iv => b"1",
2965 Core::Some1 => b"2",
2966 Core::Some16 => b"****22*22**22*22***22*22**22*22",
2967 Core::Some32 => b"i",
2968 Core::Some64 => b"l",
2969 Core::Some8 => b"***22*22**22*22",
2970 Core::Subtract16 => b"i",
2971 Core::Subtract32 => b"l",
2972 Core::Subtract64 => b"*ll",
2973 Core::Subtract8 => b"****22*22**22*22***22*22**22*22",
2974 Core::Swu => b"h",
2975 Core::TapdataInit => b"1",
2976 Core::Verify => b"2",
2977 Core::Xor1 => b"*22",
2978 Core::Xor16 => b"i",
2979 Core::Xor32 => b"l",
2980 Core::Xor64 => b"*ll",
2981 Core::Xor8 => b"****22*22**22*22***22*22**22*22",
2982 Core::XorXor1 => b"*2*22",
2983 Core::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
2984 Core::XorXor32 => b"*il",
2985 Core::XorXor64 => b"*l*ll",
2986 Core::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2987 };
2988
2989 TypeName(name)
2990 }
2991
2992 fn target_ty(&self) -> TypeName {
2993 let name: &'static [u8] = match self {
2994 Core::Add16 => b"*2****22*22**22*22***22*22**22*22",
2995 Core::Add32 => b"*2i",
2996 Core::Add64 => b"*2l",
2997 Core::Add8 => b"*2***22*22**22*22",
2998 Core::All16 => b"2",
2999 Core::All32 => b"2",
3000 Core::All64 => b"2",
3001 Core::All8 => b"2",
3002 Core::And1 => b"2",
3003 Core::And16 => b"****22*22**22*22***22*22**22*22",
3004 Core::And32 => b"i",
3005 Core::And64 => b"l",
3006 Core::And8 => b"***22*22**22*22",
3007 Core::Bip0340Verify => b"1",
3008 Core::Ch1 => b"2",
3009 Core::Ch16 => b"****22*22**22*22***22*22**22*22",
3010 Core::Ch32 => b"i",
3011 Core::Ch64 => b"l",
3012 Core::Ch8 => b"***22*22**22*22",
3013 Core::CheckSigVerify => b"1",
3014 Core::Complement1 => b"2",
3015 Core::Complement16 => b"****22*22**22*22***22*22**22*22",
3016 Core::Complement32 => b"i",
3017 Core::Complement64 => b"l",
3018 Core::Complement8 => b"***22*22**22*22",
3019 Core::Decompress => b"+1*hh",
3020 Core::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
3021 Core::Decrement32 => b"*2i",
3022 Core::Decrement64 => b"*2l",
3023 Core::Decrement8 => b"*2***22*22**22*22",
3024 Core::DivMod128_64 => b"*ll",
3025 Core::DivMod16 => b"i",
3026 Core::DivMod32 => b"l",
3027 Core::DivMod64 => b"*ll",
3028 Core::DivMod8 => b"****22*22**22*22***22*22**22*22",
3029 Core::Divide16 => b"****22*22**22*22***22*22**22*22",
3030 Core::Divide32 => b"i",
3031 Core::Divide64 => b"l",
3032 Core::Divide8 => b"***22*22**22*22",
3033 Core::Divides16 => b"2",
3034 Core::Divides32 => b"2",
3035 Core::Divides64 => b"2",
3036 Core::Divides8 => b"2",
3037 Core::Eq1 => b"2",
3038 Core::Eq16 => b"2",
3039 Core::Eq256 => b"2",
3040 Core::Eq32 => b"2",
3041 Core::Eq64 => b"2",
3042 Core::Eq8 => b"2",
3043 Core::FeAdd => b"h",
3044 Core::FeInvert => b"h",
3045 Core::FeIsOdd => b"2",
3046 Core::FeIsZero => b"2",
3047 Core::FeMultiply => b"h",
3048 Core::FeMultiplyBeta => b"h",
3049 Core::FeNegate => b"h",
3050 Core::FeNormalize => b"h",
3051 Core::FeSquare => b"h",
3052 Core::FeSquareRoot => b"+1h",
3053 Core::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
3054 Core::FullAdd32 => b"*2i",
3055 Core::FullAdd64 => b"*2l",
3056 Core::FullAdd8 => b"*2***22*22**22*22",
3057 Core::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3058 Core::FullDecrement32 => b"*2i",
3059 Core::FullDecrement64 => b"*2l",
3060 Core::FullDecrement8 => b"*2***22*22**22*22",
3061 Core::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3062 Core::FullIncrement32 => b"*2i",
3063 Core::FullIncrement64 => b"*2l",
3064 Core::FullIncrement8 => b"*2***22*22**22*22",
3065 Core::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3066 Core::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3067 Core::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3068 Core::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3069 Core::FullLeftShift32_1 => b"*2i",
3070 Core::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3071 Core::FullLeftShift32_2 => b"**22i",
3072 Core::FullLeftShift32_4 => b"***22*22i",
3073 Core::FullLeftShift32_8 => b"****22*22**22*22i",
3074 Core::FullLeftShift64_1 => b"*2l",
3075 Core::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3076 Core::FullLeftShift64_2 => b"**22l",
3077 Core::FullLeftShift64_32 => b"*il",
3078 Core::FullLeftShift64_4 => b"***22*22l",
3079 Core::FullLeftShift64_8 => b"****22*22**22*22l",
3080 Core::FullLeftShift8_1 => b"*2***22*22**22*22",
3081 Core::FullLeftShift8_2 => b"**22***22*22**22*22",
3082 Core::FullLeftShift8_4 => b"***22*22***22*22**22*22",
3083 Core::FullMultiply16 => b"i",
3084 Core::FullMultiply32 => b"l",
3085 Core::FullMultiply64 => b"*ll",
3086 Core::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
3087 Core::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
3088 Core::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3089 Core::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3090 Core::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3091 Core::FullRightShift32_1 => b"*i2",
3092 Core::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3093 Core::FullRightShift32_2 => b"*i*22",
3094 Core::FullRightShift32_4 => b"*i**22*22",
3095 Core::FullRightShift32_8 => b"*i***22*22**22*22",
3096 Core::FullRightShift64_1 => b"*l2",
3097 Core::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3098 Core::FullRightShift64_2 => b"*l*22",
3099 Core::FullRightShift64_32 => b"*li",
3100 Core::FullRightShift64_4 => b"*l**22*22",
3101 Core::FullRightShift64_8 => b"*l***22*22**22*22",
3102 Core::FullRightShift8_1 => b"****22*22**22*222",
3103 Core::FullRightShift8_2 => b"****22*22**22*22*22",
3104 Core::FullRightShift8_4 => b"****22*22**22*22**22*22",
3105 Core::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
3106 Core::FullSubtract32 => b"*2i",
3107 Core::FullSubtract64 => b"*2l",
3108 Core::FullSubtract8 => b"*2***22*22**22*22",
3109 Core::GeIsOnCurve => b"2",
3110 Core::GeNegate => b"*hh",
3111 Core::GejAdd => b"**hhh",
3112 Core::GejDouble => b"**hhh",
3113 Core::GejEquiv => b"2",
3114 Core::GejGeAdd => b"**hhh",
3115 Core::GejGeAddEx => b"*h**hhh",
3116 Core::GejGeEquiv => b"2",
3117 Core::GejInfinity => b"**hhh",
3118 Core::GejIsInfinity => b"2",
3119 Core::GejIsOnCurve => b"2",
3120 Core::GejNegate => b"**hhh",
3121 Core::GejNormalize => b"+1*hh",
3122 Core::GejRescale => b"**hhh",
3123 Core::GejXEquiv => b"2",
3124 Core::GejYIsOdd => b"2",
3125 Core::Generate => b"**hhh",
3126 Core::HashToCurve => b"*hh",
3127 Core::High1 => b"2",
3128 Core::High16 => b"****22*22**22*22***22*22**22*22",
3129 Core::High32 => b"i",
3130 Core::High64 => b"l",
3131 Core::High8 => b"***22*22**22*22",
3132 Core::Increment16 => b"*2****22*22**22*22***22*22**22*22",
3133 Core::Increment32 => b"*2i",
3134 Core::Increment64 => b"*2l",
3135 Core::Increment8 => b"*2***22*22**22*22",
3136 Core::IsOne16 => b"2",
3137 Core::IsOne32 => b"2",
3138 Core::IsOne64 => b"2",
3139 Core::IsOne8 => b"2",
3140 Core::IsZero16 => b"2",
3141 Core::IsZero32 => b"2",
3142 Core::IsZero64 => b"2",
3143 Core::IsZero8 => b"2",
3144 Core::Le16 => b"2",
3145 Core::Le32 => b"2",
3146 Core::Le64 => b"2",
3147 Core::Le8 => b"2",
3148 Core::LeftExtend16_32 => b"i",
3149 Core::LeftExtend16_64 => b"l",
3150 Core::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
3151 Core::LeftExtend1_32 => b"i",
3152 Core::LeftExtend1_64 => b"l",
3153 Core::LeftExtend1_8 => b"***22*22**22*22",
3154 Core::LeftExtend32_64 => b"l",
3155 Core::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
3156 Core::LeftExtend8_32 => b"i",
3157 Core::LeftExtend8_64 => b"l",
3158 Core::LeftPadHigh16_32 => b"i",
3159 Core::LeftPadHigh16_64 => b"l",
3160 Core::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
3161 Core::LeftPadHigh1_32 => b"i",
3162 Core::LeftPadHigh1_64 => b"l",
3163 Core::LeftPadHigh1_8 => b"***22*22**22*22",
3164 Core::LeftPadHigh32_64 => b"l",
3165 Core::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
3166 Core::LeftPadHigh8_32 => b"i",
3167 Core::LeftPadHigh8_64 => b"l",
3168 Core::LeftPadLow16_32 => b"i",
3169 Core::LeftPadLow16_64 => b"l",
3170 Core::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
3171 Core::LeftPadLow1_32 => b"i",
3172 Core::LeftPadLow1_64 => b"l",
3173 Core::LeftPadLow1_8 => b"***22*22**22*22",
3174 Core::LeftPadLow32_64 => b"l",
3175 Core::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
3176 Core::LeftPadLow8_32 => b"i",
3177 Core::LeftPadLow8_64 => b"l",
3178 Core::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
3179 Core::LeftRotate32 => b"i",
3180 Core::LeftRotate64 => b"l",
3181 Core::LeftRotate8 => b"***22*22**22*22",
3182 Core::LeftShift16 => b"****22*22**22*22***22*22**22*22",
3183 Core::LeftShift32 => b"i",
3184 Core::LeftShift64 => b"l",
3185 Core::LeftShift8 => b"***22*22**22*22",
3186 Core::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
3187 Core::LeftShiftWith32 => b"i",
3188 Core::LeftShiftWith64 => b"l",
3189 Core::LeftShiftWith8 => b"***22*22**22*22",
3190 Core::Leftmost16_1 => b"2",
3191 Core::Leftmost16_2 => b"*22",
3192 Core::Leftmost16_4 => b"**22*22",
3193 Core::Leftmost16_8 => b"***22*22**22*22",
3194 Core::Leftmost32_1 => b"2",
3195 Core::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
3196 Core::Leftmost32_2 => b"*22",
3197 Core::Leftmost32_4 => b"**22*22",
3198 Core::Leftmost32_8 => b"***22*22**22*22",
3199 Core::Leftmost64_1 => b"2",
3200 Core::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
3201 Core::Leftmost64_2 => b"*22",
3202 Core::Leftmost64_32 => b"i",
3203 Core::Leftmost64_4 => b"**22*22",
3204 Core::Leftmost64_8 => b"***22*22**22*22",
3205 Core::Leftmost8_1 => b"2",
3206 Core::Leftmost8_2 => b"*22",
3207 Core::Leftmost8_4 => b"**22*22",
3208 Core::LinearCombination1 => b"**hhh",
3209 Core::LinearVerify1 => b"1",
3210 Core::Low1 => b"2",
3211 Core::Low16 => b"****22*22**22*22***22*22**22*22",
3212 Core::Low32 => b"i",
3213 Core::Low64 => b"l",
3214 Core::Low8 => b"***22*22**22*22",
3215 Core::Lt16 => b"2",
3216 Core::Lt32 => b"2",
3217 Core::Lt64 => b"2",
3218 Core::Lt8 => b"2",
3219 Core::Maj1 => b"2",
3220 Core::Maj16 => b"****22*22**22*22***22*22**22*22",
3221 Core::Maj32 => b"i",
3222 Core::Maj64 => b"l",
3223 Core::Maj8 => b"***22*22**22*22",
3224 Core::Max16 => b"****22*22**22*22***22*22**22*22",
3225 Core::Max32 => b"i",
3226 Core::Max64 => b"l",
3227 Core::Max8 => b"***22*22**22*22",
3228 Core::Median16 => b"****22*22**22*22***22*22**22*22",
3229 Core::Median32 => b"i",
3230 Core::Median64 => b"l",
3231 Core::Median8 => b"***22*22**22*22",
3232 Core::Min16 => b"****22*22**22*22***22*22**22*22",
3233 Core::Min32 => b"i",
3234 Core::Min64 => b"l",
3235 Core::Min8 => b"***22*22**22*22",
3236 Core::Modulo16 => b"****22*22**22*22***22*22**22*22",
3237 Core::Modulo32 => b"i",
3238 Core::Modulo64 => b"l",
3239 Core::Modulo8 => b"***22*22**22*22",
3240 Core::Multiply16 => b"i",
3241 Core::Multiply32 => b"l",
3242 Core::Multiply64 => b"*ll",
3243 Core::Multiply8 => b"****22*22**22*22***22*22**22*22",
3244 Core::Negate16 => b"*2****22*22**22*22***22*22**22*22",
3245 Core::Negate32 => b"*2i",
3246 Core::Negate64 => b"*2l",
3247 Core::Negate8 => b"*2***22*22**22*22",
3248 Core::One16 => b"****22*22**22*22***22*22**22*22",
3249 Core::One32 => b"i",
3250 Core::One64 => b"l",
3251 Core::One8 => b"***22*22**22*22",
3252 Core::Or1 => b"2",
3253 Core::Or16 => b"****22*22**22*22***22*22**22*22",
3254 Core::Or32 => b"i",
3255 Core::Or64 => b"l",
3256 Core::Or8 => b"***22*22**22*22",
3257 Core::ParseLock => b"+ii",
3258 Core::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
3259 Core::PointVerify1 => b"1",
3260 Core::RightExtend16_32 => b"i",
3261 Core::RightExtend16_64 => b"l",
3262 Core::RightExtend32_64 => b"l",
3263 Core::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
3264 Core::RightExtend8_32 => b"i",
3265 Core::RightExtend8_64 => b"l",
3266 Core::RightPadHigh16_32 => b"i",
3267 Core::RightPadHigh16_64 => b"l",
3268 Core::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
3269 Core::RightPadHigh1_32 => b"i",
3270 Core::RightPadHigh1_64 => b"l",
3271 Core::RightPadHigh1_8 => b"***22*22**22*22",
3272 Core::RightPadHigh32_64 => b"l",
3273 Core::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
3274 Core::RightPadHigh8_32 => b"i",
3275 Core::RightPadHigh8_64 => b"l",
3276 Core::RightPadLow16_32 => b"i",
3277 Core::RightPadLow16_64 => b"l",
3278 Core::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
3279 Core::RightPadLow1_32 => b"i",
3280 Core::RightPadLow1_64 => b"l",
3281 Core::RightPadLow1_8 => b"***22*22**22*22",
3282 Core::RightPadLow32_64 => b"l",
3283 Core::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
3284 Core::RightPadLow8_32 => b"i",
3285 Core::RightPadLow8_64 => b"l",
3286 Core::RightRotate16 => b"****22*22**22*22***22*22**22*22",
3287 Core::RightRotate32 => b"i",
3288 Core::RightRotate64 => b"l",
3289 Core::RightRotate8 => b"***22*22**22*22",
3290 Core::RightShift16 => b"****22*22**22*22***22*22**22*22",
3291 Core::RightShift32 => b"i",
3292 Core::RightShift64 => b"l",
3293 Core::RightShift8 => b"***22*22**22*22",
3294 Core::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
3295 Core::RightShiftWith32 => b"i",
3296 Core::RightShiftWith64 => b"l",
3297 Core::RightShiftWith8 => b"***22*22**22*22",
3298 Core::Rightmost16_1 => b"2",
3299 Core::Rightmost16_2 => b"*22",
3300 Core::Rightmost16_4 => b"**22*22",
3301 Core::Rightmost16_8 => b"***22*22**22*22",
3302 Core::Rightmost32_1 => b"2",
3303 Core::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
3304 Core::Rightmost32_2 => b"*22",
3305 Core::Rightmost32_4 => b"**22*22",
3306 Core::Rightmost32_8 => b"***22*22**22*22",
3307 Core::Rightmost64_1 => b"2",
3308 Core::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
3309 Core::Rightmost64_2 => b"*22",
3310 Core::Rightmost64_32 => b"i",
3311 Core::Rightmost64_4 => b"**22*22",
3312 Core::Rightmost64_8 => b"***22*22**22*22",
3313 Core::Rightmost8_1 => b"2",
3314 Core::Rightmost8_2 => b"*22",
3315 Core::Rightmost8_4 => b"**22*22",
3316 Core::ScalarAdd => b"h",
3317 Core::ScalarInvert => b"h",
3318 Core::ScalarIsZero => b"2",
3319 Core::ScalarMultiply => b"h",
3320 Core::ScalarMultiplyLambda => b"h",
3321 Core::ScalarNegate => b"h",
3322 Core::ScalarNormalize => b"h",
3323 Core::ScalarSquare => b"h",
3324 Core::Scale => b"**hhh",
3325 Core::Sha256Block => b"h",
3326 Core::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3327 Core::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3328 Core::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3329 Core::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3330 Core::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3331 Core::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3332 Core::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3333 Core::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3334 Core::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3335 Core::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3336 Core::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3337 Core::Sha256Ctx8Finalize => b"h",
3338 Core::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3339 Core::Sha256Iv => b"h",
3340 Core::Some1 => b"2",
3341 Core::Some16 => b"2",
3342 Core::Some32 => b"2",
3343 Core::Some64 => b"2",
3344 Core::Some8 => b"2",
3345 Core::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
3346 Core::Subtract32 => b"*2i",
3347 Core::Subtract64 => b"*2l",
3348 Core::Subtract8 => b"*2***22*22**22*22",
3349 Core::Swu => b"*hh",
3350 Core::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3351 Core::Verify => b"1",
3352 Core::Xor1 => b"2",
3353 Core::Xor16 => b"****22*22**22*22***22*22**22*22",
3354 Core::Xor32 => b"i",
3355 Core::Xor64 => b"l",
3356 Core::Xor8 => b"***22*22**22*22",
3357 Core::XorXor1 => b"2",
3358 Core::XorXor16 => b"****22*22**22*22***22*22**22*22",
3359 Core::XorXor32 => b"i",
3360 Core::XorXor64 => b"l",
3361 Core::XorXor8 => b"***22*22**22*22",
3362 };
3363
3364 TypeName(name)
3365 }
3366
3367 fn encode<W: Write>(&self, w: &mut BitWriter<W>) -> std::io::Result<usize> {
3368 let (n, len) = match self {
3369 Core::Verify => (0, 2),
3370 Core::Low1 => (8, 5),
3371 Core::Low8 => (37, 7),
3372 Core::Low16 => (304, 10),
3373 Core::Low32 => (305, 10),
3374 Core::Low64 => (306, 10),
3375 Core::High1 => (10, 5),
3376 Core::High8 => (45, 7),
3377 Core::High16 => (368, 10),
3378 Core::High32 => (369, 10),
3379 Core::High64 => (370, 10),
3380 Core::Complement1 => (96, 8),
3381 Core::Complement8 => (389, 10),
3382 Core::Complement16 => (3120, 13),
3383 Core::Complement32 => (3121, 13),
3384 Core::Complement64 => (3122, 13),
3385 Core::And1 => (98, 8),
3386 Core::And8 => (397, 10),
3387 Core::And16 => (3184, 13),
3388 Core::And32 => (3185, 13),
3389 Core::And64 => (3186, 13),
3390 Core::Or1 => (100, 8),
3391 Core::Or8 => (405, 10),
3392 Core::Or16 => (3248, 13),
3393 Core::Or32 => (3249, 13),
3394 Core::Or64 => (3250, 13),
3395 Core::Xor1 => (102, 8),
3396 Core::Xor8 => (413, 10),
3397 Core::Xor16 => (3312, 13),
3398 Core::Xor32 => (3313, 13),
3399 Core::Xor64 => (3314, 13),
3400 Core::Maj1 => (208, 9),
3401 Core::Maj8 => (837, 11),
3402 Core::Maj16 => (6704, 14),
3403 Core::Maj32 => (6705, 14),
3404 Core::Maj64 => (6706, 14),
3405 Core::XorXor1 => (210, 9),
3406 Core::XorXor8 => (845, 11),
3407 Core::XorXor16 => (6768, 14),
3408 Core::XorXor32 => (6769, 14),
3409 Core::XorXor64 => (6770, 14),
3410 Core::Ch1 => (212, 9),
3411 Core::Ch8 => (853, 11),
3412 Core::Ch16 => (6832, 14),
3413 Core::Ch32 => (6833, 14),
3414 Core::Ch64 => (6834, 14),
3415 Core::Some1 => (214, 9),
3416 Core::Some8 => (861, 11),
3417 Core::Some16 => (6896, 14),
3418 Core::Some32 => (6897, 14),
3419 Core::Some64 => (6898, 14),
3420 Core::All8 => (869, 11),
3421 Core::All16 => (6960, 14),
3422 Core::All32 => (6961, 14),
3423 Core::All64 => (6962, 14),
3424 Core::Eq1 => (218, 9),
3425 Core::Eq8 => (877, 11),
3426 Core::Eq16 => (7024, 14),
3427 Core::Eq32 => (7025, 14),
3428 Core::Eq64 => (7026, 14),
3429 Core::Eq256 => (14056, 15),
3430 Core::FullLeftShift8_1 => (1765, 12),
3431 Core::FullLeftShift16_1 => (14128, 15),
3432 Core::FullLeftShift32_1 => (14129, 15),
3433 Core::FullLeftShift64_1 => (14130, 15),
3434 Core::FullLeftShift8_2 => (7076, 14),
3435 Core::FullLeftShift16_2 => (7077, 14),
3436 Core::FullLeftShift32_2 => (56624, 17),
3437 Core::FullLeftShift64_2 => (56625, 17),
3438 Core::FullLeftShift8_4 => (1770, 12),
3439 Core::FullLeftShift16_4 => (7084, 14),
3440 Core::FullLeftShift32_4 => (7085, 14),
3441 Core::FullLeftShift64_4 => (56688, 17),
3442 Core::FullLeftShift16_8 => (14176, 15),
3443 Core::FullLeftShift32_8 => (56708, 17),
3444 Core::FullLeftShift64_8 => (56709, 17),
3445 Core::FullLeftShift32_16 => (14178, 15),
3446 Core::FullLeftShift64_16 => (56716, 17),
3447 Core::FullLeftShift64_32 => (14180, 15),
3448 Core::FullRightShift8_1 => (1781, 12),
3449 Core::FullRightShift16_1 => (14256, 15),
3450 Core::FullRightShift32_1 => (14257, 15),
3451 Core::FullRightShift64_1 => (14258, 15),
3452 Core::FullRightShift8_2 => (7140, 14),
3453 Core::FullRightShift16_2 => (7141, 14),
3454 Core::FullRightShift32_2 => (57136, 17),
3455 Core::FullRightShift64_2 => (57137, 17),
3456 Core::FullRightShift8_4 => (1786, 12),
3457 Core::FullRightShift16_4 => (7148, 14),
3458 Core::FullRightShift32_4 => (7149, 14),
3459 Core::FullRightShift64_4 => (57200, 17),
3460 Core::FullRightShift16_8 => (14304, 15),
3461 Core::FullRightShift32_8 => (57220, 17),
3462 Core::FullRightShift64_8 => (57221, 17),
3463 Core::FullRightShift32_16 => (14306, 15),
3464 Core::FullRightShift64_16 => (57228, 17),
3465 Core::FullRightShift64_32 => (14308, 15),
3466 Core::Leftmost8_1 => (28677, 16),
3467 Core::Leftmost16_1 => (229424, 19),
3468 Core::Leftmost32_1 => (229425, 19),
3469 Core::Leftmost64_1 => (229426, 19),
3470 Core::Leftmost8_2 => (114724, 18),
3471 Core::Leftmost16_2 => (114725, 18),
3472 Core::Leftmost32_2 => (917808, 21),
3473 Core::Leftmost64_2 => (917809, 21),
3474 Core::Leftmost8_4 => (28682, 16),
3475 Core::Leftmost16_4 => (114732, 18),
3476 Core::Leftmost32_4 => (114733, 18),
3477 Core::Leftmost64_4 => (917872, 21),
3478 Core::Leftmost16_8 => (229472, 19),
3479 Core::Leftmost32_8 => (917892, 21),
3480 Core::Leftmost64_8 => (917893, 21),
3481 Core::Leftmost32_16 => (229474, 19),
3482 Core::Leftmost64_16 => (917900, 21),
3483 Core::Leftmost64_32 => (229476, 19),
3484 Core::Rightmost8_1 => (28693, 16),
3485 Core::Rightmost16_1 => (229552, 19),
3486 Core::Rightmost32_1 => (229553, 19),
3487 Core::Rightmost64_1 => (229554, 19),
3488 Core::Rightmost8_2 => (114788, 18),
3489 Core::Rightmost16_2 => (114789, 18),
3490 Core::Rightmost32_2 => (918320, 21),
3491 Core::Rightmost64_2 => (918321, 21),
3492 Core::Rightmost8_4 => (28698, 16),
3493 Core::Rightmost16_4 => (114796, 18),
3494 Core::Rightmost32_4 => (114797, 18),
3495 Core::Rightmost64_4 => (918384, 21),
3496 Core::Rightmost16_8 => (229600, 19),
3497 Core::Rightmost32_8 => (918404, 21),
3498 Core::Rightmost64_8 => (918405, 21),
3499 Core::Rightmost32_16 => (229602, 19),
3500 Core::Rightmost64_16 => (918412, 21),
3501 Core::Rightmost64_32 => (229604, 19),
3502 Core::LeftPadLow1_8 => (28709, 16),
3503 Core::LeftPadLow1_16 => (229680, 19),
3504 Core::LeftPadLow1_32 => (229681, 19),
3505 Core::LeftPadLow1_64 => (229682, 19),
3506 Core::LeftPadLow8_16 => (229728, 19),
3507 Core::LeftPadLow8_32 => (918916, 21),
3508 Core::LeftPadLow8_64 => (918917, 21),
3509 Core::LeftPadLow16_32 => (229730, 19),
3510 Core::LeftPadLow16_64 => (918924, 21),
3511 Core::LeftPadLow32_64 => (229732, 19),
3512 Core::LeftPadHigh1_8 => (28725, 16),
3513 Core::LeftPadHigh1_16 => (229808, 19),
3514 Core::LeftPadHigh1_32 => (229809, 19),
3515 Core::LeftPadHigh1_64 => (229810, 19),
3516 Core::LeftPadHigh8_16 => (229856, 19),
3517 Core::LeftPadHigh8_32 => (919428, 21),
3518 Core::LeftPadHigh8_64 => (919429, 21),
3519 Core::LeftPadHigh16_32 => (229858, 19),
3520 Core::LeftPadHigh16_64 => (919436, 21),
3521 Core::LeftPadHigh32_64 => (229860, 19),
3522 Core::LeftExtend1_8 => (28741, 16),
3523 Core::LeftExtend1_16 => (229936, 19),
3524 Core::LeftExtend1_32 => (229937, 19),
3525 Core::LeftExtend1_64 => (229938, 19),
3526 Core::LeftExtend8_16 => (229984, 19),
3527 Core::LeftExtend8_32 => (919940, 21),
3528 Core::LeftExtend8_64 => (919941, 21),
3529 Core::LeftExtend16_32 => (229986, 19),
3530 Core::LeftExtend16_64 => (919948, 21),
3531 Core::LeftExtend32_64 => (229988, 19),
3532 Core::RightPadLow1_8 => (28757, 16),
3533 Core::RightPadLow1_16 => (230064, 19),
3534 Core::RightPadLow1_32 => (230065, 19),
3535 Core::RightPadLow1_64 => (230066, 19),
3536 Core::RightPadLow8_16 => (230112, 19),
3537 Core::RightPadLow8_32 => (920452, 21),
3538 Core::RightPadLow8_64 => (920453, 21),
3539 Core::RightPadLow16_32 => (230114, 19),
3540 Core::RightPadLow16_64 => (920460, 21),
3541 Core::RightPadLow32_64 => (230116, 19),
3542 Core::RightPadHigh1_8 => (28773, 16),
3543 Core::RightPadHigh1_16 => (230192, 19),
3544 Core::RightPadHigh1_32 => (230193, 19),
3545 Core::RightPadHigh1_64 => (230194, 19),
3546 Core::RightPadHigh8_16 => (230240, 19),
3547 Core::RightPadHigh8_32 => (920964, 21),
3548 Core::RightPadHigh8_64 => (920965, 21),
3549 Core::RightPadHigh16_32 => (230242, 19),
3550 Core::RightPadHigh16_64 => (920972, 21),
3551 Core::RightPadHigh32_64 => (230244, 19),
3552 Core::RightExtend8_16 => (230368, 19),
3553 Core::RightExtend8_32 => (921476, 21),
3554 Core::RightExtend8_64 => (921477, 21),
3555 Core::RightExtend16_32 => (230370, 19),
3556 Core::RightExtend16_64 => (921484, 21),
3557 Core::RightExtend32_64 => (230372, 19),
3558 Core::LeftShiftWith8 => (14405, 15),
3559 Core::LeftShiftWith16 => (115248, 18),
3560 Core::LeftShiftWith32 => (115249, 18),
3561 Core::LeftShiftWith64 => (115250, 18),
3562 Core::RightShiftWith8 => (14413, 15),
3563 Core::RightShiftWith16 => (115312, 18),
3564 Core::RightShiftWith32 => (115313, 18),
3565 Core::RightShiftWith64 => (115314, 18),
3566 Core::LeftShift8 => (14421, 15),
3567 Core::LeftShift16 => (115376, 18),
3568 Core::LeftShift32 => (115377, 18),
3569 Core::LeftShift64 => (115378, 18),
3570 Core::RightShift8 => (14429, 15),
3571 Core::RightShift16 => (115440, 18),
3572 Core::RightShift32 => (115441, 18),
3573 Core::RightShift64 => (115442, 18),
3574 Core::LeftRotate8 => (14437, 15),
3575 Core::LeftRotate16 => (115504, 18),
3576 Core::LeftRotate32 => (115505, 18),
3577 Core::LeftRotate64 => (115506, 18),
3578 Core::RightRotate8 => (14445, 15),
3579 Core::RightRotate16 => (115568, 18),
3580 Core::RightRotate32 => (115569, 18),
3581 Core::RightRotate64 => (115570, 18),
3582 Core::One8 => (69, 7),
3583 Core::One16 => (560, 10),
3584 Core::One32 => (561, 10),
3585 Core::One64 => (562, 10),
3586 Core::FullAdd8 => (293, 9),
3587 Core::FullAdd16 => (2352, 12),
3588 Core::FullAdd32 => (2353, 12),
3589 Core::FullAdd64 => (2354, 12),
3590 Core::Add8 => (301, 9),
3591 Core::Add16 => (2416, 12),
3592 Core::Add32 => (2417, 12),
3593 Core::Add64 => (2418, 12),
3594 Core::FullIncrement8 => (2437, 12),
3595 Core::FullIncrement16 => (19504, 15),
3596 Core::FullIncrement32 => (19505, 15),
3597 Core::FullIncrement64 => (19506, 15),
3598 Core::Increment8 => (2445, 12),
3599 Core::Increment16 => (19568, 15),
3600 Core::Increment32 => (19569, 15),
3601 Core::Increment64 => (19570, 15),
3602 Core::FullSubtract8 => (2461, 12),
3603 Core::FullSubtract16 => (19696, 15),
3604 Core::FullSubtract32 => (19697, 15),
3605 Core::FullSubtract64 => (19698, 15),
3606 Core::Subtract8 => (4933, 13),
3607 Core::Subtract16 => (39472, 16),
3608 Core::Subtract32 => (39473, 16),
3609 Core::Subtract64 => (39474, 16),
3610 Core::Negate8 => (4941, 13),
3611 Core::Negate16 => (39536, 16),
3612 Core::Negate32 => (39537, 16),
3613 Core::Negate64 => (39538, 16),
3614 Core::FullDecrement8 => (4949, 13),
3615 Core::FullDecrement16 => (39600, 16),
3616 Core::FullDecrement32 => (39601, 16),
3617 Core::FullDecrement64 => (39602, 16),
3618 Core::Decrement8 => (4957, 13),
3619 Core::Decrement16 => (39664, 16),
3620 Core::Decrement32 => (39665, 16),
3621 Core::Decrement64 => (39666, 16),
3622 Core::FullMultiply8 => (4965, 13),
3623 Core::FullMultiply16 => (39728, 16),
3624 Core::FullMultiply32 => (39729, 16),
3625 Core::FullMultiply64 => (39730, 16),
3626 Core::Multiply8 => (4973, 13),
3627 Core::Multiply16 => (39792, 16),
3628 Core::Multiply32 => (39793, 16),
3629 Core::Multiply64 => (39794, 16),
3630 Core::IsZero8 => (4981, 13),
3631 Core::IsZero16 => (39856, 16),
3632 Core::IsZero32 => (39857, 16),
3633 Core::IsZero64 => (39858, 16),
3634 Core::IsOne8 => (4989, 13),
3635 Core::IsOne16 => (39920, 16),
3636 Core::IsOne32 => (39921, 16),
3637 Core::IsOne64 => (39922, 16),
3638 Core::Le8 => (79877, 17),
3639 Core::Le16 => (639024, 20),
3640 Core::Le32 => (639025, 20),
3641 Core::Le64 => (639026, 20),
3642 Core::Lt8 => (79885, 17),
3643 Core::Lt16 => (639088, 20),
3644 Core::Lt32 => (639089, 20),
3645 Core::Lt64 => (639090, 20),
3646 Core::Min8 => (79893, 17),
3647 Core::Min16 => (639152, 20),
3648 Core::Min32 => (639153, 20),
3649 Core::Min64 => (639154, 20),
3650 Core::Max8 => (79901, 17),
3651 Core::Max16 => (639216, 20),
3652 Core::Max32 => (639217, 20),
3653 Core::Max64 => (639218, 20),
3654 Core::Median8 => (79909, 17),
3655 Core::Median16 => (639280, 20),
3656 Core::Median32 => (639281, 20),
3657 Core::Median64 => (639282, 20),
3658 Core::DivMod128_64 => (639346, 20),
3659 Core::DivMod8 => (79925, 17),
3660 Core::DivMod16 => (639408, 20),
3661 Core::DivMod32 => (639409, 20),
3662 Core::DivMod64 => (639410, 20),
3663 Core::Divide8 => (79933, 17),
3664 Core::Divide16 => (639472, 20),
3665 Core::Divide32 => (639473, 20),
3666 Core::Divide64 => (639474, 20),
3667 Core::Modulo8 => (79941, 17),
3668 Core::Modulo16 => (639536, 20),
3669 Core::Modulo32 => (639537, 20),
3670 Core::Modulo64 => (639538, 20),
3671 Core::Divides8 => (79949, 17),
3672 Core::Divides16 => (639600, 20),
3673 Core::Divides32 => (639601, 20),
3674 Core::Divides64 => (639602, 20),
3675 Core::Sha256Block => (20, 5),
3676 Core::Sha256Iv => (84, 7),
3677 Core::Sha256Ctx8Add1 => (170, 8),
3678 Core::Sha256Ctx8Add2 => (684, 10),
3679 Core::Sha256Ctx8Add4 => (685, 10),
3680 Core::Sha256Ctx8Add8 => (5488, 13),
3681 Core::Sha256Ctx8Add16 => (5489, 13),
3682 Core::Sha256Ctx8Add32 => (5490, 13),
3683 Core::Sha256Ctx8Add64 => (5491, 13),
3684 Core::Sha256Ctx8Add128 => (10984, 14),
3685 Core::Sha256Ctx8Add256 => (10985, 14),
3686 Core::Sha256Ctx8Add512 => (10986, 14),
3687 Core::Sha256Ctx8AddBuffer511 => (688, 10),
3688 Core::Sha256Ctx8Finalize => (689, 10),
3689 Core::Sha256Ctx8Init => (690, 10),
3690 Core::PointVerify1 => (192, 8),
3691 Core::Decompress => (388, 9),
3692 Core::LinearVerify1 => (778, 10),
3693 Core::LinearCombination1 => (6240, 13),
3694 Core::Scale => (3121, 12),
3695 Core::Generate => (3122, 12),
3696 Core::GejInfinity => (3123, 12),
3697 Core::GejNormalize => (6248, 13),
3698 Core::GejNegate => (6249, 13),
3699 Core::GeNegate => (6250, 13),
3700 Core::GejDouble => (6251, 13),
3701 Core::GejAdd => (6252, 13),
3702 Core::GejGeAddEx => (6253, 13),
3703 Core::GejGeAdd => (6254, 13),
3704 Core::GejRescale => (6255, 13),
3705 Core::GejIsInfinity => (100096, 17),
3706 Core::GejEquiv => (100097, 17),
3707 Core::GejGeEquiv => (100098, 17),
3708 Core::GejXEquiv => (100099, 17),
3709 Core::GejYIsOdd => (100100, 17),
3710 Core::GejIsOnCurve => (100101, 17),
3711 Core::GeIsOnCurve => (100102, 17),
3712 Core::ScalarNormalize => (100103, 17),
3713 Core::ScalarNegate => (100104, 17),
3714 Core::ScalarAdd => (100105, 17),
3715 Core::ScalarSquare => (100106, 17),
3716 Core::ScalarMultiply => (100107, 17),
3717 Core::ScalarMultiplyLambda => (100108, 17),
3718 Core::ScalarInvert => (100109, 17),
3719 Core::ScalarIsZero => (100110, 17),
3720 Core::FeNormalize => (200227, 18),
3721 Core::FeNegate => (200228, 18),
3722 Core::FeAdd => (200229, 18),
3723 Core::FeSquare => (200230, 18),
3724 Core::FeMultiply => (200231, 18),
3725 Core::FeMultiplyBeta => (200232, 18),
3726 Core::FeInvert => (200233, 18),
3727 Core::FeSquareRoot => (200234, 18),
3728 Core::FeIsZero => (200235, 18),
3729 Core::FeIsOdd => (200236, 18),
3730 Core::HashToCurve => (200238, 18),
3731 Core::Swu => (200239, 18),
3732 Core::CheckSigVerify => (98, 7),
3733 Core::Bip0340Verify => (396, 9),
3734 Core::ParseLock => (102, 7),
3735 Core::ParseSequence => (412, 9),
3736 Core::TapdataInit => (413, 9),
3737 };
3738
3739 w.write_bits_be(n, len)
3740 }
3741
3742 fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> {
3743 decode_bits!(bits, {
3744 0 => {
3745 0 => {Core::Verify},
3746 1 => {
3747 0 => {
3748 0 => {
3749 0 => {Core::Low1},
3750 1 => {
3751 0 => {
3752 0 => {},
3753 1 => {Core::Low8}
3754 },
3755 1 => {
3756 0 => {
3757 0 => {
3758 0 => {
3759 0 => {Core::Low16},
3760 1 => {Core::Low32}
3761 },
3762 1 => {
3763 0 => {Core::Low64},
3764 1 => {}
3765 }
3766 },
3767 1 => {}
3768 },
3769 1 => {}
3770 }
3771 }
3772 },
3773 1 => {
3774 0 => {Core::High1},
3775 1 => {
3776 0 => {
3777 0 => {},
3778 1 => {Core::High8}
3779 },
3780 1 => {
3781 0 => {
3782 0 => {
3783 0 => {
3784 0 => {Core::High16},
3785 1 => {Core::High32}
3786 },
3787 1 => {
3788 0 => {Core::High64},
3789 1 => {}
3790 }
3791 },
3792 1 => {}
3793 },
3794 1 => {}
3795 }
3796 }
3797 }
3798 },
3799 1 => {
3800 0 => {
3801 0 => {
3802 0 => {
3803 0 => {
3804 0 => {Core::Complement1},
3805 1 => {
3806 0 => {
3807 0 => {},
3808 1 => {Core::Complement8}
3809 },
3810 1 => {
3811 0 => {
3812 0 => {
3813 0 => {
3814 0 => {Core::Complement16},
3815 1 => {Core::Complement32}
3816 },
3817 1 => {
3818 0 => {Core::Complement64},
3819 1 => {}
3820 }
3821 },
3822 1 => {}
3823 },
3824 1 => {}
3825 }
3826 }
3827 },
3828 1 => {
3829 0 => {Core::And1},
3830 1 => {
3831 0 => {
3832 0 => {},
3833 1 => {Core::And8}
3834 },
3835 1 => {
3836 0 => {
3837 0 => {
3838 0 => {
3839 0 => {Core::And16},
3840 1 => {Core::And32}
3841 },
3842 1 => {
3843 0 => {Core::And64},
3844 1 => {}
3845 }
3846 },
3847 1 => {}
3848 },
3849 1 => {}
3850 }
3851 }
3852 }
3853 },
3854 1 => {
3855 0 => {
3856 0 => {Core::Or1},
3857 1 => {
3858 0 => {
3859 0 => {},
3860 1 => {Core::Or8}
3861 },
3862 1 => {
3863 0 => {
3864 0 => {
3865 0 => {
3866 0 => {Core::Or16},
3867 1 => {Core::Or32}
3868 },
3869 1 => {
3870 0 => {Core::Or64},
3871 1 => {}
3872 }
3873 },
3874 1 => {}
3875 },
3876 1 => {}
3877 }
3878 }
3879 },
3880 1 => {
3881 0 => {Core::Xor1},
3882 1 => {
3883 0 => {
3884 0 => {},
3885 1 => {Core::Xor8}
3886 },
3887 1 => {
3888 0 => {
3889 0 => {
3890 0 => {
3891 0 => {Core::Xor16},
3892 1 => {Core::Xor32}
3893 },
3894 1 => {
3895 0 => {Core::Xor64},
3896 1 => {}
3897 }
3898 },
3899 1 => {}
3900 },
3901 1 => {}
3902 }
3903 }
3904 }
3905 }
3906 },
3907 1 => {
3908 0 => {
3909 0 => {
3910 0 => {
3911 0 => {Core::Maj1},
3912 1 => {
3913 0 => {
3914 0 => {},
3915 1 => {Core::Maj8}
3916 },
3917 1 => {
3918 0 => {
3919 0 => {
3920 0 => {
3921 0 => {Core::Maj16},
3922 1 => {Core::Maj32}
3923 },
3924 1 => {
3925 0 => {Core::Maj64},
3926 1 => {}
3927 }
3928 },
3929 1 => {}
3930 },
3931 1 => {}
3932 }
3933 }
3934 },
3935 1 => {
3936 0 => {Core::XorXor1},
3937 1 => {
3938 0 => {
3939 0 => {},
3940 1 => {Core::XorXor8}
3941 },
3942 1 => {
3943 0 => {
3944 0 => {
3945 0 => {
3946 0 => {Core::XorXor16},
3947 1 => {Core::XorXor32}
3948 },
3949 1 => {
3950 0 => {Core::XorXor64},
3951 1 => {}
3952 }
3953 },
3954 1 => {}
3955 },
3956 1 => {}
3957 }
3958 }
3959 }
3960 },
3961 1 => {
3962 0 => {
3963 0 => {Core::Ch1},
3964 1 => {
3965 0 => {
3966 0 => {},
3967 1 => {Core::Ch8}
3968 },
3969 1 => {
3970 0 => {
3971 0 => {
3972 0 => {
3973 0 => {Core::Ch16},
3974 1 => {Core::Ch32}
3975 },
3976 1 => {
3977 0 => {Core::Ch64},
3978 1 => {}
3979 }
3980 },
3981 1 => {}
3982 },
3983 1 => {}
3984 }
3985 }
3986 },
3987 1 => {
3988 0 => {Core::Some1},
3989 1 => {
3990 0 => {
3991 0 => {},
3992 1 => {Core::Some8}
3993 },
3994 1 => {
3995 0 => {
3996 0 => {
3997 0 => {
3998 0 => {Core::Some16},
3999 1 => {Core::Some32}
4000 },
4001 1 => {
4002 0 => {Core::Some64},
4003 1 => {}
4004 }
4005 },
4006 1 => {}
4007 },
4008 1 => {}
4009 }
4010 }
4011 }
4012 }
4013 },
4014 1 => {
4015 0 => {
4016 0 => {
4017 0 => {},
4018 1 => {
4019 0 => {
4020 0 => {},
4021 1 => {Core::All8}
4022 },
4023 1 => {
4024 0 => {
4025 0 => {
4026 0 => {
4027 0 => {Core::All16},
4028 1 => {Core::All32}
4029 },
4030 1 => {
4031 0 => {Core::All64},
4032 1 => {}
4033 }
4034 },
4035 1 => {}
4036 },
4037 1 => {}
4038 }
4039 }
4040 },
4041 1 => {
4042 0 => {Core::Eq1},
4043 1 => {
4044 0 => {
4045 0 => {},
4046 1 => {Core::Eq8}
4047 },
4048 1 => {
4049 0 => {
4050 0 => {
4051 0 => {
4052 0 => {Core::Eq16},
4053 1 => {Core::Eq32}
4054 },
4055 1 => {
4056 0 => {Core::Eq64},
4057 1 => {}
4058 }
4059 },
4060 1 => {
4061 0 => {
4062 0 => {
4063 0 => {Core::Eq256},
4064 1 => {}
4065 },
4066 1 => {}
4067 },
4068 1 => {}
4069 }
4070 },
4071 1 => {}
4072 }
4073 }
4074 }
4075 },
4076 1 => {
4077 0 => {
4078 0 => {
4079 0 => {},
4080 1 => {
4081 0 => {
4082 0 => {},
4083 1 => {Core::FullLeftShift8_1}
4084 },
4085 1 => {
4086 0 => {
4087 0 => {
4088 0 => {
4089 0 => {Core::FullLeftShift16_1},
4090 1 => {Core::FullLeftShift32_1}
4091 },
4092 1 => {
4093 0 => {Core::FullLeftShift64_1},
4094 1 => {}
4095 }
4096 },
4097 1 => {}
4098 },
4099 1 => {}
4100 }
4101 }
4102 },
4103 1 => {
4104 0 => {
4105 0 => {
4106 0 => {},
4107 1 => {
4108 0 => {
4109 0 => {Core::FullLeftShift8_2},
4110 1 => {Core::FullLeftShift16_2}
4111 },
4112 1 => {
4113 0 => {
4114 0 => {
4115 0 => {
4116 0 => {Core::FullLeftShift32_2},
4117 1 => {Core::FullLeftShift64_2}
4118 },
4119 1 => {}
4120 },
4121 1 => {}
4122 },
4123 1 => {}
4124 }
4125 }
4126 },
4127 1 => {
4128 0 => {Core::FullLeftShift8_4},
4129 1 => {
4130 0 => {
4131 0 => {Core::FullLeftShift16_4},
4132 1 => {Core::FullLeftShift32_4}
4133 },
4134 1 => {
4135 0 => {
4136 0 => {
4137 0 => {
4138 0 => {Core::FullLeftShift64_4},
4139 1 => {}
4140 },
4141 1 => {}
4142 },
4143 1 => {}
4144 },
4145 1 => {}
4146 }
4147 }
4148 }
4149 },
4150 1 => {
4151 0 => {
4152 0 => {
4153 0 => {
4154 0 => {
4155 0 => {Core::FullLeftShift16_8},
4156 1 => {
4157 0 => {
4158 0 => {Core::FullLeftShift32_8},
4159 1 => {Core::FullLeftShift64_8}
4160 },
4161 1 => {}
4162 }
4163 },
4164 1 => {
4165 0 => {Core::FullLeftShift32_16},
4166 1 => {
4167 0 => {
4168 0 => {Core::FullLeftShift64_16},
4169 1 => {}
4170 },
4171 1 => {}
4172 }
4173 }
4174 },
4175 1 => {
4176 0 => {
4177 0 => {Core::FullLeftShift64_32},
4178 1 => {}
4179 },
4180 1 => {}
4181 }
4182 },
4183 1 => {}
4184 },
4185 1 => {}
4186 }
4187 }
4188 },
4189 1 => {
4190 0 => {
4191 0 => {},
4192 1 => {
4193 0 => {
4194 0 => {},
4195 1 => {Core::FullRightShift8_1}
4196 },
4197 1 => {
4198 0 => {
4199 0 => {
4200 0 => {
4201 0 => {Core::FullRightShift16_1},
4202 1 => {Core::FullRightShift32_1}
4203 },
4204 1 => {
4205 0 => {Core::FullRightShift64_1},
4206 1 => {}
4207 }
4208 },
4209 1 => {}
4210 },
4211 1 => {}
4212 }
4213 }
4214 },
4215 1 => {
4216 0 => {
4217 0 => {
4218 0 => {},
4219 1 => {
4220 0 => {
4221 0 => {Core::FullRightShift8_2},
4222 1 => {Core::FullRightShift16_2}
4223 },
4224 1 => {
4225 0 => {
4226 0 => {
4227 0 => {
4228 0 => {Core::FullRightShift32_2},
4229 1 => {Core::FullRightShift64_2}
4230 },
4231 1 => {}
4232 },
4233 1 => {}
4234 },
4235 1 => {}
4236 }
4237 }
4238 },
4239 1 => {
4240 0 => {Core::FullRightShift8_4},
4241 1 => {
4242 0 => {
4243 0 => {Core::FullRightShift16_4},
4244 1 => {Core::FullRightShift32_4}
4245 },
4246 1 => {
4247 0 => {
4248 0 => {
4249 0 => {
4250 0 => {Core::FullRightShift64_4},
4251 1 => {}
4252 },
4253 1 => {}
4254 },
4255 1 => {}
4256 },
4257 1 => {}
4258 }
4259 }
4260 }
4261 },
4262 1 => {
4263 0 => {
4264 0 => {
4265 0 => {
4266 0 => {
4267 0 => {Core::FullRightShift16_8},
4268 1 => {
4269 0 => {
4270 0 => {Core::FullRightShift32_8},
4271 1 => {Core::FullRightShift64_8}
4272 },
4273 1 => {}
4274 }
4275 },
4276 1 => {
4277 0 => {Core::FullRightShift32_16},
4278 1 => {
4279 0 => {
4280 0 => {Core::FullRightShift64_16},
4281 1 => {}
4282 },
4283 1 => {}
4284 }
4285 }
4286 },
4287 1 => {
4288 0 => {
4289 0 => {Core::FullRightShift64_32},
4290 1 => {}
4291 },
4292 1 => {}
4293 }
4294 },
4295 1 => {}
4296 },
4297 1 => {}
4298 }
4299 }
4300 }
4301 }
4302 }
4303 }
4304 },
4305 1 => {
4306 0 => {
4307 0 => {
4308 0 => {
4309 0 => {
4310 0 => {
4311 0 => {
4312 0 => {
4313 0 => {
4314 0 => {
4315 0 => {},
4316 1 => {
4317 0 => {
4318 0 => {},
4319 1 => {Core::Leftmost8_1}
4320 },
4321 1 => {
4322 0 => {
4323 0 => {
4324 0 => {
4325 0 => {Core::Leftmost16_1},
4326 1 => {Core::Leftmost32_1}
4327 },
4328 1 => {
4329 0 => {Core::Leftmost64_1},
4330 1 => {}
4331 }
4332 },
4333 1 => {}
4334 },
4335 1 => {}
4336 }
4337 }
4338 },
4339 1 => {
4340 0 => {
4341 0 => {
4342 0 => {},
4343 1 => {
4344 0 => {
4345 0 => {Core::Leftmost8_2},
4346 1 => {Core::Leftmost16_2}
4347 },
4348 1 => {
4349 0 => {
4350 0 => {
4351 0 => {
4352 0 => {Core::Leftmost32_2},
4353 1 => {Core::Leftmost64_2}
4354 },
4355 1 => {}
4356 },
4357 1 => {}
4358 },
4359 1 => {}
4360 }
4361 }
4362 },
4363 1 => {
4364 0 => {Core::Leftmost8_4},
4365 1 => {
4366 0 => {
4367 0 => {Core::Leftmost16_4},
4368 1 => {Core::Leftmost32_4}
4369 },
4370 1 => {
4371 0 => {
4372 0 => {
4373 0 => {
4374 0 => {Core::Leftmost64_4},
4375 1 => {}
4376 },
4377 1 => {}
4378 },
4379 1 => {}
4380 },
4381 1 => {}
4382 }
4383 }
4384 }
4385 },
4386 1 => {
4387 0 => {
4388 0 => {
4389 0 => {
4390 0 => {
4391 0 => {Core::Leftmost16_8},
4392 1 => {
4393 0 => {
4394 0 => {Core::Leftmost32_8},
4395 1 => {Core::Leftmost64_8}
4396 },
4397 1 => {}
4398 }
4399 },
4400 1 => {
4401 0 => {Core::Leftmost32_16},
4402 1 => {
4403 0 => {
4404 0 => {Core::Leftmost64_16},
4405 1 => {}
4406 },
4407 1 => {}
4408 }
4409 }
4410 },
4411 1 => {
4412 0 => {
4413 0 => {Core::Leftmost64_32},
4414 1 => {}
4415 },
4416 1 => {}
4417 }
4418 },
4419 1 => {}
4420 },
4421 1 => {}
4422 }
4423 }
4424 },
4425 1 => {
4426 0 => {
4427 0 => {},
4428 1 => {
4429 0 => {
4430 0 => {},
4431 1 => {Core::Rightmost8_1}
4432 },
4433 1 => {
4434 0 => {
4435 0 => {
4436 0 => {
4437 0 => {Core::Rightmost16_1},
4438 1 => {Core::Rightmost32_1}
4439 },
4440 1 => {
4441 0 => {Core::Rightmost64_1},
4442 1 => {}
4443 }
4444 },
4445 1 => {}
4446 },
4447 1 => {}
4448 }
4449 }
4450 },
4451 1 => {
4452 0 => {
4453 0 => {
4454 0 => {},
4455 1 => {
4456 0 => {
4457 0 => {Core::Rightmost8_2},
4458 1 => {Core::Rightmost16_2}
4459 },
4460 1 => {
4461 0 => {
4462 0 => {
4463 0 => {
4464 0 => {Core::Rightmost32_2},
4465 1 => {Core::Rightmost64_2}
4466 },
4467 1 => {}
4468 },
4469 1 => {}
4470 },
4471 1 => {}
4472 }
4473 }
4474 },
4475 1 => {
4476 0 => {Core::Rightmost8_4},
4477 1 => {
4478 0 => {
4479 0 => {Core::Rightmost16_4},
4480 1 => {Core::Rightmost32_4}
4481 },
4482 1 => {
4483 0 => {
4484 0 => {
4485 0 => {
4486 0 => {Core::Rightmost64_4},
4487 1 => {}
4488 },
4489 1 => {}
4490 },
4491 1 => {}
4492 },
4493 1 => {}
4494 }
4495 }
4496 }
4497 },
4498 1 => {
4499 0 => {
4500 0 => {
4501 0 => {
4502 0 => {
4503 0 => {Core::Rightmost16_8},
4504 1 => {
4505 0 => {
4506 0 => {Core::Rightmost32_8},
4507 1 => {Core::Rightmost64_8}
4508 },
4509 1 => {}
4510 }
4511 },
4512 1 => {
4513 0 => {Core::Rightmost32_16},
4514 1 => {
4515 0 => {
4516 0 => {Core::Rightmost64_16},
4517 1 => {}
4518 },
4519 1 => {}
4520 }
4521 }
4522 },
4523 1 => {
4524 0 => {
4525 0 => {Core::Rightmost64_32},
4526 1 => {}
4527 },
4528 1 => {}
4529 }
4530 },
4531 1 => {}
4532 },
4533 1 => {}
4534 }
4535 }
4536 }
4537 },
4538 1 => {
4539 0 => {
4540 0 => {
4541 0 => {},
4542 1 => {
4543 0 => {
4544 0 => {},
4545 1 => {Core::LeftPadLow1_8}
4546 },
4547 1 => {
4548 0 => {
4549 0 => {
4550 0 => {
4551 0 => {Core::LeftPadLow1_16},
4552 1 => {Core::LeftPadLow1_32}
4553 },
4554 1 => {
4555 0 => {Core::LeftPadLow1_64},
4556 1 => {}
4557 }
4558 },
4559 1 => {}
4560 },
4561 1 => {}
4562 }
4563 }
4564 },
4565 1 => {
4566 0 => {},
4567 1 => {
4568 0 => {
4569 0 => {
4570 0 => {
4571 0 => {
4572 0 => {Core::LeftPadLow8_16},
4573 1 => {
4574 0 => {
4575 0 => {Core::LeftPadLow8_32},
4576 1 => {Core::LeftPadLow8_64}
4577 },
4578 1 => {}
4579 }
4580 },
4581 1 => {
4582 0 => {Core::LeftPadLow16_32},
4583 1 => {
4584 0 => {
4585 0 => {Core::LeftPadLow16_64},
4586 1 => {}
4587 },
4588 1 => {}
4589 }
4590 }
4591 },
4592 1 => {
4593 0 => {
4594 0 => {Core::LeftPadLow32_64},
4595 1 => {}
4596 },
4597 1 => {}
4598 }
4599 },
4600 1 => {}
4601 },
4602 1 => {}
4603 }
4604 }
4605 },
4606 1 => {
4607 0 => {
4608 0 => {},
4609 1 => {
4610 0 => {
4611 0 => {},
4612 1 => {Core::LeftPadHigh1_8}
4613 },
4614 1 => {
4615 0 => {
4616 0 => {
4617 0 => {
4618 0 => {Core::LeftPadHigh1_16},
4619 1 => {Core::LeftPadHigh1_32}
4620 },
4621 1 => {
4622 0 => {Core::LeftPadHigh1_64},
4623 1 => {}
4624 }
4625 },
4626 1 => {}
4627 },
4628 1 => {}
4629 }
4630 }
4631 },
4632 1 => {
4633 0 => {},
4634 1 => {
4635 0 => {
4636 0 => {
4637 0 => {
4638 0 => {
4639 0 => {Core::LeftPadHigh8_16},
4640 1 => {
4641 0 => {
4642 0 => {Core::LeftPadHigh8_32},
4643 1 => {Core::LeftPadHigh8_64}
4644 },
4645 1 => {}
4646 }
4647 },
4648 1 => {
4649 0 => {Core::LeftPadHigh16_32},
4650 1 => {
4651 0 => {
4652 0 => {Core::LeftPadHigh16_64},
4653 1 => {}
4654 },
4655 1 => {}
4656 }
4657 }
4658 },
4659 1 => {
4660 0 => {
4661 0 => {Core::LeftPadHigh32_64},
4662 1 => {}
4663 },
4664 1 => {}
4665 }
4666 },
4667 1 => {}
4668 },
4669 1 => {}
4670 }
4671 }
4672 }
4673 }
4674 },
4675 1 => {
4676 0 => {
4677 0 => {
4678 0 => {
4679 0 => {},
4680 1 => {
4681 0 => {
4682 0 => {},
4683 1 => {Core::LeftExtend1_8}
4684 },
4685 1 => {
4686 0 => {
4687 0 => {
4688 0 => {
4689 0 => {Core::LeftExtend1_16},
4690 1 => {Core::LeftExtend1_32}
4691 },
4692 1 => {
4693 0 => {Core::LeftExtend1_64},
4694 1 => {}
4695 }
4696 },
4697 1 => {}
4698 },
4699 1 => {}
4700 }
4701 }
4702 },
4703 1 => {
4704 0 => {},
4705 1 => {
4706 0 => {
4707 0 => {
4708 0 => {
4709 0 => {
4710 0 => {Core::LeftExtend8_16},
4711 1 => {
4712 0 => {
4713 0 => {Core::LeftExtend8_32},
4714 1 => {Core::LeftExtend8_64}
4715 },
4716 1 => {}
4717 }
4718 },
4719 1 => {
4720 0 => {Core::LeftExtend16_32},
4721 1 => {
4722 0 => {
4723 0 => {Core::LeftExtend16_64},
4724 1 => {}
4725 },
4726 1 => {}
4727 }
4728 }
4729 },
4730 1 => {
4731 0 => {
4732 0 => {Core::LeftExtend32_64},
4733 1 => {}
4734 },
4735 1 => {}
4736 }
4737 },
4738 1 => {}
4739 },
4740 1 => {}
4741 }
4742 }
4743 },
4744 1 => {
4745 0 => {
4746 0 => {},
4747 1 => {
4748 0 => {
4749 0 => {},
4750 1 => {Core::RightPadLow1_8}
4751 },
4752 1 => {
4753 0 => {
4754 0 => {
4755 0 => {
4756 0 => {Core::RightPadLow1_16},
4757 1 => {Core::RightPadLow1_32}
4758 },
4759 1 => {
4760 0 => {Core::RightPadLow1_64},
4761 1 => {}
4762 }
4763 },
4764 1 => {}
4765 },
4766 1 => {}
4767 }
4768 }
4769 },
4770 1 => {
4771 0 => {},
4772 1 => {
4773 0 => {
4774 0 => {
4775 0 => {
4776 0 => {
4777 0 => {Core::RightPadLow8_16},
4778 1 => {
4779 0 => {
4780 0 => {Core::RightPadLow8_32},
4781 1 => {Core::RightPadLow8_64}
4782 },
4783 1 => {}
4784 }
4785 },
4786 1 => {
4787 0 => {Core::RightPadLow16_32},
4788 1 => {
4789 0 => {
4790 0 => {Core::RightPadLow16_64},
4791 1 => {}
4792 },
4793 1 => {}
4794 }
4795 }
4796 },
4797 1 => {
4798 0 => {
4799 0 => {Core::RightPadLow32_64},
4800 1 => {}
4801 },
4802 1 => {}
4803 }
4804 },
4805 1 => {}
4806 },
4807 1 => {}
4808 }
4809 }
4810 }
4811 },
4812 1 => {
4813 0 => {
4814 0 => {
4815 0 => {},
4816 1 => {
4817 0 => {
4818 0 => {},
4819 1 => {Core::RightPadHigh1_8}
4820 },
4821 1 => {
4822 0 => {
4823 0 => {
4824 0 => {
4825 0 => {Core::RightPadHigh1_16},
4826 1 => {Core::RightPadHigh1_32}
4827 },
4828 1 => {
4829 0 => {Core::RightPadHigh1_64},
4830 1 => {}
4831 }
4832 },
4833 1 => {}
4834 },
4835 1 => {}
4836 }
4837 }
4838 },
4839 1 => {
4840 0 => {},
4841 1 => {
4842 0 => {
4843 0 => {
4844 0 => {
4845 0 => {
4846 0 => {Core::RightPadHigh8_16},
4847 1 => {
4848 0 => {
4849 0 => {Core::RightPadHigh8_32},
4850 1 => {Core::RightPadHigh8_64}
4851 },
4852 1 => {}
4853 }
4854 },
4855 1 => {
4856 0 => {Core::RightPadHigh16_32},
4857 1 => {
4858 0 => {
4859 0 => {Core::RightPadHigh16_64},
4860 1 => {}
4861 },
4862 1 => {}
4863 }
4864 }
4865 },
4866 1 => {
4867 0 => {
4868 0 => {Core::RightPadHigh32_64},
4869 1 => {}
4870 },
4871 1 => {}
4872 }
4873 },
4874 1 => {}
4875 },
4876 1 => {}
4877 }
4878 }
4879 },
4880 1 => {
4881 0 => {},
4882 1 => {
4883 0 => {},
4884 1 => {
4885 0 => {
4886 0 => {
4887 0 => {
4888 0 => {
4889 0 => {Core::RightExtend8_16},
4890 1 => {
4891 0 => {
4892 0 => {Core::RightExtend8_32},
4893 1 => {Core::RightExtend8_64}
4894 },
4895 1 => {}
4896 }
4897 },
4898 1 => {
4899 0 => {Core::RightExtend16_32},
4900 1 => {
4901 0 => {
4902 0 => {Core::RightExtend16_64},
4903 1 => {}
4904 },
4905 1 => {}
4906 }
4907 }
4908 },
4909 1 => {
4910 0 => {
4911 0 => {Core::RightExtend32_64},
4912 1 => {}
4913 },
4914 1 => {}
4915 }
4916 },
4917 1 => {}
4918 },
4919 1 => {}
4920 }
4921 }
4922 }
4923 }
4924 }
4925 },
4926 1 => {
4927 0 => {
4928 0 => {
4929 0 => {
4930 0 => {},
4931 1 => {
4932 0 => {
4933 0 => {},
4934 1 => {Core::LeftShiftWith8}
4935 },
4936 1 => {
4937 0 => {
4938 0 => {
4939 0 => {
4940 0 => {Core::LeftShiftWith16},
4941 1 => {Core::LeftShiftWith32}
4942 },
4943 1 => {
4944 0 => {Core::LeftShiftWith64},
4945 1 => {}
4946 }
4947 },
4948 1 => {}
4949 },
4950 1 => {}
4951 }
4952 }
4953 },
4954 1 => {
4955 0 => {},
4956 1 => {
4957 0 => {
4958 0 => {},
4959 1 => {Core::RightShiftWith8}
4960 },
4961 1 => {
4962 0 => {
4963 0 => {
4964 0 => {
4965 0 => {Core::RightShiftWith16},
4966 1 => {Core::RightShiftWith32}
4967 },
4968 1 => {
4969 0 => {Core::RightShiftWith64},
4970 1 => {}
4971 }
4972 },
4973 1 => {}
4974 },
4975 1 => {}
4976 }
4977 }
4978 }
4979 },
4980 1 => {
4981 0 => {
4982 0 => {},
4983 1 => {
4984 0 => {
4985 0 => {},
4986 1 => {Core::LeftShift8}
4987 },
4988 1 => {
4989 0 => {
4990 0 => {
4991 0 => {
4992 0 => {Core::LeftShift16},
4993 1 => {Core::LeftShift32}
4994 },
4995 1 => {
4996 0 => {Core::LeftShift64},
4997 1 => {}
4998 }
4999 },
5000 1 => {}
5001 },
5002 1 => {}
5003 }
5004 }
5005 },
5006 1 => {
5007 0 => {},
5008 1 => {
5009 0 => {
5010 0 => {},
5011 1 => {Core::RightShift8}
5012 },
5013 1 => {
5014 0 => {
5015 0 => {
5016 0 => {
5017 0 => {Core::RightShift16},
5018 1 => {Core::RightShift32}
5019 },
5020 1 => {
5021 0 => {Core::RightShift64},
5022 1 => {}
5023 }
5024 },
5025 1 => {}
5026 },
5027 1 => {}
5028 }
5029 }
5030 }
5031 }
5032 },
5033 1 => {
5034 0 => {
5035 0 => {
5036 0 => {},
5037 1 => {
5038 0 => {
5039 0 => {},
5040 1 => {Core::LeftRotate8}
5041 },
5042 1 => {
5043 0 => {
5044 0 => {
5045 0 => {
5046 0 => {Core::LeftRotate16},
5047 1 => {Core::LeftRotate32}
5048 },
5049 1 => {
5050 0 => {Core::LeftRotate64},
5051 1 => {}
5052 }
5053 },
5054 1 => {}
5055 },
5056 1 => {}
5057 }
5058 }
5059 },
5060 1 => {
5061 0 => {},
5062 1 => {
5063 0 => {
5064 0 => {},
5065 1 => {Core::RightRotate8}
5066 },
5067 1 => {
5068 0 => {
5069 0 => {
5070 0 => {
5071 0 => {Core::RightRotate16},
5072 1 => {Core::RightRotate32}
5073 },
5074 1 => {
5075 0 => {Core::RightRotate64},
5076 1 => {}
5077 }
5078 },
5079 1 => {}
5080 },
5081 1 => {}
5082 }
5083 }
5084 }
5085 },
5086 1 => {}
5087 }
5088 }
5089 },
5090 1 => {}
5091 },
5092 1 => {}
5093 },
5094 1 => {}
5095 },
5096 1 => {}
5097 }
5098 }
5099 }
5100 },
5101 1 => {
5102 0 => {
5103 0 => {
5104 0 => {
5105 0 => {},
5106 1 => {
5107 0 => {
5108 0 => {},
5109 1 => {Core::One8}
5110 },
5111 1 => {
5112 0 => {
5113 0 => {
5114 0 => {
5115 0 => {Core::One16},
5116 1 => {Core::One32}
5117 },
5118 1 => {
5119 0 => {Core::One64},
5120 1 => {}
5121 }
5122 },
5123 1 => {}
5124 },
5125 1 => {}
5126 }
5127 }
5128 },
5129 1 => {
5130 0 => {
5131 0 => {
5132 0 => {},
5133 1 => {
5134 0 => {
5135 0 => {},
5136 1 => {Core::FullAdd8}
5137 },
5138 1 => {
5139 0 => {
5140 0 => {
5141 0 => {
5142 0 => {Core::FullAdd16},
5143 1 => {Core::FullAdd32}
5144 },
5145 1 => {
5146 0 => {Core::FullAdd64},
5147 1 => {}
5148 }
5149 },
5150 1 => {}
5151 },
5152 1 => {}
5153 }
5154 }
5155 },
5156 1 => {
5157 0 => {},
5158 1 => {
5159 0 => {
5160 0 => {},
5161 1 => {Core::Add8}
5162 },
5163 1 => {
5164 0 => {
5165 0 => {
5166 0 => {
5167 0 => {Core::Add16},
5168 1 => {Core::Add32}
5169 },
5170 1 => {
5171 0 => {Core::Add64},
5172 1 => {}
5173 }
5174 },
5175 1 => {}
5176 },
5177 1 => {}
5178 }
5179 }
5180 }
5181 },
5182 1 => {
5183 0 => {
5184 0 => {
5185 0 => {
5186 0 => {
5187 0 => {},
5188 1 => {
5189 0 => {
5190 0 => {},
5191 1 => {Core::FullIncrement8}
5192 },
5193 1 => {
5194 0 => {
5195 0 => {
5196 0 => {
5197 0 => {Core::FullIncrement16},
5198 1 => {Core::FullIncrement32}
5199 },
5200 1 => {
5201 0 => {Core::FullIncrement64},
5202 1 => {}
5203 }
5204 },
5205 1 => {}
5206 },
5207 1 => {}
5208 }
5209 }
5210 },
5211 1 => {
5212 0 => {},
5213 1 => {
5214 0 => {
5215 0 => {},
5216 1 => {Core::Increment8}
5217 },
5218 1 => {
5219 0 => {
5220 0 => {
5221 0 => {
5222 0 => {Core::Increment16},
5223 1 => {Core::Increment32}
5224 },
5225 1 => {
5226 0 => {Core::Increment64},
5227 1 => {}
5228 }
5229 },
5230 1 => {}
5231 },
5232 1 => {}
5233 }
5234 }
5235 }
5236 },
5237 1 => {
5238 0 => {},
5239 1 => {
5240 0 => {},
5241 1 => {
5242 0 => {
5243 0 => {},
5244 1 => {Core::FullSubtract8}
5245 },
5246 1 => {
5247 0 => {
5248 0 => {
5249 0 => {
5250 0 => {Core::FullSubtract16},
5251 1 => {Core::FullSubtract32}
5252 },
5253 1 => {
5254 0 => {Core::FullSubtract64},
5255 1 => {}
5256 }
5257 },
5258 1 => {}
5259 },
5260 1 => {}
5261 }
5262 }
5263 }
5264 }
5265 },
5266 1 => {
5267 0 => {
5268 0 => {
5269 0 => {
5270 0 => {},
5271 1 => {
5272 0 => {
5273 0 => {},
5274 1 => {Core::Subtract8}
5275 },
5276 1 => {
5277 0 => {
5278 0 => {
5279 0 => {
5280 0 => {Core::Subtract16},
5281 1 => {Core::Subtract32}
5282 },
5283 1 => {
5284 0 => {Core::Subtract64},
5285 1 => {}
5286 }
5287 },
5288 1 => {}
5289 },
5290 1 => {}
5291 }
5292 }
5293 },
5294 1 => {
5295 0 => {},
5296 1 => {
5297 0 => {
5298 0 => {},
5299 1 => {Core::Negate8}
5300 },
5301 1 => {
5302 0 => {
5303 0 => {
5304 0 => {
5305 0 => {Core::Negate16},
5306 1 => {Core::Negate32}
5307 },
5308 1 => {
5309 0 => {Core::Negate64},
5310 1 => {}
5311 }
5312 },
5313 1 => {}
5314 },
5315 1 => {}
5316 }
5317 }
5318 }
5319 },
5320 1 => {
5321 0 => {
5322 0 => {},
5323 1 => {
5324 0 => {
5325 0 => {},
5326 1 => {Core::FullDecrement8}
5327 },
5328 1 => {
5329 0 => {
5330 0 => {
5331 0 => {
5332 0 => {Core::FullDecrement16},
5333 1 => {Core::FullDecrement32}
5334 },
5335 1 => {
5336 0 => {Core::FullDecrement64},
5337 1 => {}
5338 }
5339 },
5340 1 => {}
5341 },
5342 1 => {}
5343 }
5344 }
5345 },
5346 1 => {
5347 0 => {},
5348 1 => {
5349 0 => {
5350 0 => {},
5351 1 => {Core::Decrement8}
5352 },
5353 1 => {
5354 0 => {
5355 0 => {
5356 0 => {
5357 0 => {Core::Decrement16},
5358 1 => {Core::Decrement32}
5359 },
5360 1 => {
5361 0 => {Core::Decrement64},
5362 1 => {}
5363 }
5364 },
5365 1 => {}
5366 },
5367 1 => {}
5368 }
5369 }
5370 }
5371 }
5372 },
5373 1 => {
5374 0 => {
5375 0 => {
5376 0 => {},
5377 1 => {
5378 0 => {
5379 0 => {},
5380 1 => {Core::FullMultiply8}
5381 },
5382 1 => {
5383 0 => {
5384 0 => {
5385 0 => {
5386 0 => {Core::FullMultiply16},
5387 1 => {Core::FullMultiply32}
5388 },
5389 1 => {
5390 0 => {Core::FullMultiply64},
5391 1 => {}
5392 }
5393 },
5394 1 => {}
5395 },
5396 1 => {}
5397 }
5398 }
5399 },
5400 1 => {
5401 0 => {},
5402 1 => {
5403 0 => {
5404 0 => {},
5405 1 => {Core::Multiply8}
5406 },
5407 1 => {
5408 0 => {
5409 0 => {
5410 0 => {
5411 0 => {Core::Multiply16},
5412 1 => {Core::Multiply32}
5413 },
5414 1 => {
5415 0 => {Core::Multiply64},
5416 1 => {}
5417 }
5418 },
5419 1 => {}
5420 },
5421 1 => {}
5422 }
5423 }
5424 }
5425 },
5426 1 => {
5427 0 => {
5428 0 => {},
5429 1 => {
5430 0 => {
5431 0 => {},
5432 1 => {Core::IsZero8}
5433 },
5434 1 => {
5435 0 => {
5436 0 => {
5437 0 => {
5438 0 => {Core::IsZero16},
5439 1 => {Core::IsZero32}
5440 },
5441 1 => {
5442 0 => {Core::IsZero64},
5443 1 => {}
5444 }
5445 },
5446 1 => {}
5447 },
5448 1 => {}
5449 }
5450 }
5451 },
5452 1 => {
5453 0 => {},
5454 1 => {
5455 0 => {
5456 0 => {},
5457 1 => {Core::IsOne8}
5458 },
5459 1 => {
5460 0 => {
5461 0 => {
5462 0 => {
5463 0 => {Core::IsOne16},
5464 1 => {Core::IsOne32}
5465 },
5466 1 => {
5467 0 => {Core::IsOne64},
5468 1 => {}
5469 }
5470 },
5471 1 => {}
5472 },
5473 1 => {}
5474 }
5475 }
5476 }
5477 }
5478 }
5479 }
5480 },
5481 1 => {
5482 0 => {
5483 0 => {
5484 0 => {
5485 0 => {
5486 0 => {
5487 0 => {
5488 0 => {
5489 0 => {
5490 0 => {},
5491 1 => {
5492 0 => {
5493 0 => {},
5494 1 => {Core::Le8}
5495 },
5496 1 => {
5497 0 => {
5498 0 => {
5499 0 => {
5500 0 => {Core::Le16},
5501 1 => {Core::Le32}
5502 },
5503 1 => {
5504 0 => {Core::Le64},
5505 1 => {}
5506 }
5507 },
5508 1 => {}
5509 },
5510 1 => {}
5511 }
5512 }
5513 },
5514 1 => {
5515 0 => {},
5516 1 => {
5517 0 => {
5518 0 => {},
5519 1 => {Core::Lt8}
5520 },
5521 1 => {
5522 0 => {
5523 0 => {
5524 0 => {
5525 0 => {Core::Lt16},
5526 1 => {Core::Lt32}
5527 },
5528 1 => {
5529 0 => {Core::Lt64},
5530 1 => {}
5531 }
5532 },
5533 1 => {}
5534 },
5535 1 => {}
5536 }
5537 }
5538 }
5539 },
5540 1 => {
5541 0 => {
5542 0 => {},
5543 1 => {
5544 0 => {
5545 0 => {},
5546 1 => {Core::Min8}
5547 },
5548 1 => {
5549 0 => {
5550 0 => {
5551 0 => {
5552 0 => {Core::Min16},
5553 1 => {Core::Min32}
5554 },
5555 1 => {
5556 0 => {Core::Min64},
5557 1 => {}
5558 }
5559 },
5560 1 => {}
5561 },
5562 1 => {}
5563 }
5564 }
5565 },
5566 1 => {
5567 0 => {},
5568 1 => {
5569 0 => {
5570 0 => {},
5571 1 => {Core::Max8}
5572 },
5573 1 => {
5574 0 => {
5575 0 => {
5576 0 => {
5577 0 => {Core::Max16},
5578 1 => {Core::Max32}
5579 },
5580 1 => {
5581 0 => {Core::Max64},
5582 1 => {}
5583 }
5584 },
5585 1 => {}
5586 },
5587 1 => {}
5588 }
5589 }
5590 }
5591 }
5592 },
5593 1 => {
5594 0 => {
5595 0 => {
5596 0 => {},
5597 1 => {
5598 0 => {
5599 0 => {},
5600 1 => {Core::Median8}
5601 },
5602 1 => {
5603 0 => {
5604 0 => {
5605 0 => {
5606 0 => {Core::Median16},
5607 1 => {Core::Median32}
5608 },
5609 1 => {
5610 0 => {Core::Median64},
5611 1 => {}
5612 }
5613 },
5614 1 => {}
5615 },
5616 1 => {}
5617 }
5618 }
5619 },
5620 1 => {
5621 0 => {},
5622 1 => {
5623 0 => {},
5624 1 => {
5625 0 => {
5626 0 => {
5627 0 => {},
5628 1 => {
5629 0 => {Core::DivMod128_64},
5630 1 => {}
5631 }
5632 },
5633 1 => {}
5634 },
5635 1 => {}
5636 }
5637 }
5638 }
5639 },
5640 1 => {
5641 0 => {
5642 0 => {},
5643 1 => {
5644 0 => {
5645 0 => {},
5646 1 => {Core::DivMod8}
5647 },
5648 1 => {
5649 0 => {
5650 0 => {
5651 0 => {
5652 0 => {Core::DivMod16},
5653 1 => {Core::DivMod32}
5654 },
5655 1 => {
5656 0 => {Core::DivMod64},
5657 1 => {}
5658 }
5659 },
5660 1 => {}
5661 },
5662 1 => {}
5663 }
5664 }
5665 },
5666 1 => {
5667 0 => {},
5668 1 => {
5669 0 => {
5670 0 => {},
5671 1 => {Core::Divide8}
5672 },
5673 1 => {
5674 0 => {
5675 0 => {
5676 0 => {
5677 0 => {Core::Divide16},
5678 1 => {Core::Divide32}
5679 },
5680 1 => {
5681 0 => {Core::Divide64},
5682 1 => {}
5683 }
5684 },
5685 1 => {}
5686 },
5687 1 => {}
5688 }
5689 }
5690 }
5691 }
5692 }
5693 },
5694 1 => {
5695 0 => {
5696 0 => {
5697 0 => {
5698 0 => {},
5699 1 => {
5700 0 => {
5701 0 => {},
5702 1 => {Core::Modulo8}
5703 },
5704 1 => {
5705 0 => {
5706 0 => {
5707 0 => {
5708 0 => {Core::Modulo16},
5709 1 => {Core::Modulo32}
5710 },
5711 1 => {
5712 0 => {Core::Modulo64},
5713 1 => {}
5714 }
5715 },
5716 1 => {}
5717 },
5718 1 => {}
5719 }
5720 }
5721 },
5722 1 => {
5723 0 => {},
5724 1 => {
5725 0 => {
5726 0 => {},
5727 1 => {Core::Divides8}
5728 },
5729 1 => {
5730 0 => {
5731 0 => {
5732 0 => {
5733 0 => {Core::Divides16},
5734 1 => {Core::Divides32}
5735 },
5736 1 => {
5737 0 => {Core::Divides64},
5738 1 => {}
5739 }
5740 },
5741 1 => {}
5742 },
5743 1 => {}
5744 }
5745 }
5746 }
5747 },
5748 1 => {}
5749 },
5750 1 => {}
5751 }
5752 },
5753 1 => {}
5754 },
5755 1 => {}
5756 },
5757 1 => {}
5758 },
5759 1 => {}
5760 }
5761 }
5762 }
5763 },
5764 1 => {
5765 0 => {
5766 0 => {Core::Sha256Block},
5767 1 => {
5768 0 => {
5769 0 => {Core::Sha256Iv},
5770 1 => {
5771 0 => {Core::Sha256Ctx8Add1},
5772 1 => {
5773 0 => {
5774 0 => {Core::Sha256Ctx8Add2},
5775 1 => {Core::Sha256Ctx8Add4}
5776 },
5777 1 => {
5778 0 => {
5779 0 => {
5780 0 => {
5781 0 => {Core::Sha256Ctx8Add8},
5782 1 => {Core::Sha256Ctx8Add16}
5783 },
5784 1 => {
5785 0 => {Core::Sha256Ctx8Add32},
5786 1 => {Core::Sha256Ctx8Add64}
5787 }
5788 },
5789 1 => {
5790 0 => {
5791 0 => {
5792 0 => {Core::Sha256Ctx8Add128},
5793 1 => {Core::Sha256Ctx8Add256}
5794 },
5795 1 => {
5796 0 => {Core::Sha256Ctx8Add512},
5797 1 => {}
5798 }
5799 },
5800 1 => {}
5801 }
5802 },
5803 1 => {}
5804 }
5805 }
5806 }
5807 },
5808 1 => {
5809 0 => {
5810 0 => {
5811 0 => {
5812 0 => {Core::Sha256Ctx8AddBuffer511},
5813 1 => {Core::Sha256Ctx8Finalize}
5814 },
5815 1 => {
5816 0 => {Core::Sha256Ctx8Init},
5817 1 => {}
5818 }
5819 },
5820 1 => {}
5821 },
5822 1 => {}
5823 }
5824 }
5825 },
5826 1 => {}
5827 }
5828 },
5829 1 => {
5830 0 => {
5831 0 => {
5832 0 => {
5833 0 => {
5834 0 => {
5835 0 => {Core::PointVerify1},
5836 1 => {}
5837 },
5838 1 => {
5839 0 => {
5840 0 => {Core::Decompress},
5841 1 => {
5842 0 => {Core::LinearVerify1},
5843 1 => {}
5844 }
5845 },
5846 1 => {
5847 0 => {
5848 0 => {
5849 0 => {
5850 0 => {
5851 0 => {Core::LinearCombination1},
5852 1 => {}
5853 },
5854 1 => {Core::Scale}
5855 },
5856 1 => {
5857 0 => {Core::Generate},
5858 1 => {Core::GejInfinity}
5859 }
5860 },
5861 1 => {
5862 0 => {
5863 0 => {
5864 0 => {Core::GejNormalize},
5865 1 => {Core::GejNegate}
5866 },
5867 1 => {
5868 0 => {Core::GeNegate},
5869 1 => {Core::GejDouble}
5870 }
5871 },
5872 1 => {
5873 0 => {
5874 0 => {Core::GejAdd},
5875 1 => {Core::GejGeAddEx}
5876 },
5877 1 => {
5878 0 => {Core::GejGeAdd},
5879 1 => {Core::GejRescale}
5880 }
5881 }
5882 }
5883 },
5884 1 => {
5885 0 => {
5886 0 => {
5887 0 => {
5888 0 => {
5889 0 => {
5890 0 => {
5891 0 => {
5892 0 => {Core::GejIsInfinity},
5893 1 => {Core::GejEquiv}
5894 },
5895 1 => {
5896 0 => {Core::GejGeEquiv},
5897 1 => {Core::GejXEquiv}
5898 }
5899 },
5900 1 => {
5901 0 => {
5902 0 => {Core::GejYIsOdd},
5903 1 => {Core::GejIsOnCurve}
5904 },
5905 1 => {
5906 0 => {Core::GeIsOnCurve},
5907 1 => {Core::ScalarNormalize}
5908 }
5909 }
5910 },
5911 1 => {
5912 0 => {
5913 0 => {
5914 0 => {Core::ScalarNegate},
5915 1 => {Core::ScalarAdd}
5916 },
5917 1 => {
5918 0 => {Core::ScalarSquare},
5919 1 => {Core::ScalarMultiply}
5920 }
5921 },
5922 1 => {
5923 0 => {
5924 0 => {Core::ScalarMultiplyLambda},
5925 1 => {Core::ScalarInvert}
5926 },
5927 1 => {
5928 0 => {Core::ScalarIsZero},
5929 1 => {}
5930 }
5931 }
5932 }
5933 },
5934 1 => {
5935 0 => {
5936 0 => {
5937 0 => {
5938 0 => {},
5939 1 => {
5940 0 => {},
5941 1 => {Core::FeNormalize}
5942 }
5943 },
5944 1 => {
5945 0 => {
5946 0 => {Core::FeNegate},
5947 1 => {Core::FeAdd}
5948 },
5949 1 => {
5950 0 => {Core::FeSquare},
5951 1 => {Core::FeMultiply}
5952 }
5953 }
5954 },
5955 1 => {
5956 0 => {
5957 0 => {
5958 0 => {Core::FeMultiplyBeta},
5959 1 => {Core::FeInvert}
5960 },
5961 1 => {
5962 0 => {Core::FeSquareRoot},
5963 1 => {Core::FeIsZero}
5964 }
5965 },
5966 1 => {
5967 0 => {
5968 0 => {Core::FeIsOdd},
5969 1 => {}
5970 },
5971 1 => {
5972 0 => {Core::HashToCurve},
5973 1 => {Core::Swu}
5974 }
5975 }
5976 }
5977 },
5978 1 => {}
5979 }
5980 },
5981 1 => {}
5982 },
5983 1 => {}
5984 },
5985 1 => {}
5986 }
5987 }
5988 }
5989 },
5990 1 => {
5991 0 => {Core::CheckSigVerify},
5992 1 => {
5993 0 => {
5994 0 => {Core::Bip0340Verify},
5995 1 => {}
5996 },
5997 1 => {}
5998 }
5999 }
6000 },
6001 1 => {
6002 0 => {},
6003 1 => {
6004 0 => {Core::ParseLock},
6005 1 => {
6006 0 => {
6007 0 => {Core::ParseSequence},
6008 1 => {Core::TapdataInit}
6009 },
6010 1 => {}
6011 }
6012 }
6013 }
6014 },
6015 1 => {}
6016 },
6017 1 => {}
6018 }
6019 }
6020 })
6021 }
6022
6023 fn c_jet_ptr(&self) -> &dyn Fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool {
6024 match self {
6025 Core::Add16 => &simplicity_sys::c_jets::jets_wrapper::add_16,
6026 Core::Add32 => &simplicity_sys::c_jets::jets_wrapper::add_32,
6027 Core::Add64 => &simplicity_sys::c_jets::jets_wrapper::add_64,
6028 Core::Add8 => &simplicity_sys::c_jets::jets_wrapper::add_8,
6029 Core::All16 => &simplicity_sys::c_jets::jets_wrapper::all_16,
6030 Core::All32 => &simplicity_sys::c_jets::jets_wrapper::all_32,
6031 Core::All64 => &simplicity_sys::c_jets::jets_wrapper::all_64,
6032 Core::All8 => &simplicity_sys::c_jets::jets_wrapper::all_8,
6033 Core::And1 => &simplicity_sys::c_jets::jets_wrapper::and_1,
6034 Core::And16 => &simplicity_sys::c_jets::jets_wrapper::and_16,
6035 Core::And32 => &simplicity_sys::c_jets::jets_wrapper::and_32,
6036 Core::And64 => &simplicity_sys::c_jets::jets_wrapper::and_64,
6037 Core::And8 => &simplicity_sys::c_jets::jets_wrapper::and_8,
6038 Core::Bip0340Verify => &simplicity_sys::c_jets::jets_wrapper::bip_0340_verify,
6039 Core::Ch1 => &simplicity_sys::c_jets::jets_wrapper::ch_1,
6040 Core::Ch16 => &simplicity_sys::c_jets::jets_wrapper::ch_16,
6041 Core::Ch32 => &simplicity_sys::c_jets::jets_wrapper::ch_32,
6042 Core::Ch64 => &simplicity_sys::c_jets::jets_wrapper::ch_64,
6043 Core::Ch8 => &simplicity_sys::c_jets::jets_wrapper::ch_8,
6044 Core::CheckSigVerify => &simplicity_sys::c_jets::jets_wrapper::check_sig_verify,
6045 Core::Complement1 => &simplicity_sys::c_jets::jets_wrapper::complement_1,
6046 Core::Complement16 => &simplicity_sys::c_jets::jets_wrapper::complement_16,
6047 Core::Complement32 => &simplicity_sys::c_jets::jets_wrapper::complement_32,
6048 Core::Complement64 => &simplicity_sys::c_jets::jets_wrapper::complement_64,
6049 Core::Complement8 => &simplicity_sys::c_jets::jets_wrapper::complement_8,
6050 Core::Decompress => &simplicity_sys::c_jets::jets_wrapper::decompress,
6051 Core::Decrement16 => &simplicity_sys::c_jets::jets_wrapper::decrement_16,
6052 Core::Decrement32 => &simplicity_sys::c_jets::jets_wrapper::decrement_32,
6053 Core::Decrement64 => &simplicity_sys::c_jets::jets_wrapper::decrement_64,
6054 Core::Decrement8 => &simplicity_sys::c_jets::jets_wrapper::decrement_8,
6055 Core::DivMod128_64 => &simplicity_sys::c_jets::jets_wrapper::div_mod_128_64,
6056 Core::DivMod16 => &simplicity_sys::c_jets::jets_wrapper::div_mod_16,
6057 Core::DivMod32 => &simplicity_sys::c_jets::jets_wrapper::div_mod_32,
6058 Core::DivMod64 => &simplicity_sys::c_jets::jets_wrapper::div_mod_64,
6059 Core::DivMod8 => &simplicity_sys::c_jets::jets_wrapper::div_mod_8,
6060 Core::Divide16 => &simplicity_sys::c_jets::jets_wrapper::divide_16,
6061 Core::Divide32 => &simplicity_sys::c_jets::jets_wrapper::divide_32,
6062 Core::Divide64 => &simplicity_sys::c_jets::jets_wrapper::divide_64,
6063 Core::Divide8 => &simplicity_sys::c_jets::jets_wrapper::divide_8,
6064 Core::Divides16 => &simplicity_sys::c_jets::jets_wrapper::divides_16,
6065 Core::Divides32 => &simplicity_sys::c_jets::jets_wrapper::divides_32,
6066 Core::Divides64 => &simplicity_sys::c_jets::jets_wrapper::divides_64,
6067 Core::Divides8 => &simplicity_sys::c_jets::jets_wrapper::divides_8,
6068 Core::Eq1 => &simplicity_sys::c_jets::jets_wrapper::eq_1,
6069 Core::Eq16 => &simplicity_sys::c_jets::jets_wrapper::eq_16,
6070 Core::Eq256 => &simplicity_sys::c_jets::jets_wrapper::eq_256,
6071 Core::Eq32 => &simplicity_sys::c_jets::jets_wrapper::eq_32,
6072 Core::Eq64 => &simplicity_sys::c_jets::jets_wrapper::eq_64,
6073 Core::Eq8 => &simplicity_sys::c_jets::jets_wrapper::eq_8,
6074 Core::FeAdd => &simplicity_sys::c_jets::jets_wrapper::fe_add,
6075 Core::FeInvert => &simplicity_sys::c_jets::jets_wrapper::fe_invert,
6076 Core::FeIsOdd => &simplicity_sys::c_jets::jets_wrapper::fe_is_odd,
6077 Core::FeIsZero => &simplicity_sys::c_jets::jets_wrapper::fe_is_zero,
6078 Core::FeMultiply => &simplicity_sys::c_jets::jets_wrapper::fe_multiply,
6079 Core::FeMultiplyBeta => &simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta,
6080 Core::FeNegate => &simplicity_sys::c_jets::jets_wrapper::fe_negate,
6081 Core::FeNormalize => &simplicity_sys::c_jets::jets_wrapper::fe_normalize,
6082 Core::FeSquare => &simplicity_sys::c_jets::jets_wrapper::fe_square,
6083 Core::FeSquareRoot => &simplicity_sys::c_jets::jets_wrapper::fe_square_root,
6084 Core::FullAdd16 => &simplicity_sys::c_jets::jets_wrapper::full_add_16,
6085 Core::FullAdd32 => &simplicity_sys::c_jets::jets_wrapper::full_add_32,
6086 Core::FullAdd64 => &simplicity_sys::c_jets::jets_wrapper::full_add_64,
6087 Core::FullAdd8 => &simplicity_sys::c_jets::jets_wrapper::full_add_8,
6088 Core::FullDecrement16 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_16,
6089 Core::FullDecrement32 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_32,
6090 Core::FullDecrement64 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_64,
6091 Core::FullDecrement8 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_8,
6092 Core::FullIncrement16 => &simplicity_sys::c_jets::jets_wrapper::full_increment_16,
6093 Core::FullIncrement32 => &simplicity_sys::c_jets::jets_wrapper::full_increment_32,
6094 Core::FullIncrement64 => &simplicity_sys::c_jets::jets_wrapper::full_increment_64,
6095 Core::FullIncrement8 => &simplicity_sys::c_jets::jets_wrapper::full_increment_8,
6096 Core::FullLeftShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1,
6097 Core::FullLeftShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2,
6098 Core::FullLeftShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4,
6099 Core::FullLeftShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8,
6100 Core::FullLeftShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1,
6101 Core::FullLeftShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16,
6102 Core::FullLeftShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2,
6103 Core::FullLeftShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4,
6104 Core::FullLeftShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8,
6105 Core::FullLeftShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1,
6106 Core::FullLeftShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16,
6107 Core::FullLeftShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2,
6108 Core::FullLeftShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32,
6109 Core::FullLeftShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4,
6110 Core::FullLeftShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8,
6111 Core::FullLeftShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1,
6112 Core::FullLeftShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2,
6113 Core::FullLeftShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4,
6114 Core::FullMultiply16 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_16,
6115 Core::FullMultiply32 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_32,
6116 Core::FullMultiply64 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_64,
6117 Core::FullMultiply8 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_8,
6118 Core::FullRightShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1,
6119 Core::FullRightShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2,
6120 Core::FullRightShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4,
6121 Core::FullRightShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8,
6122 Core::FullRightShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1,
6123 Core::FullRightShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16,
6124 Core::FullRightShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2,
6125 Core::FullRightShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4,
6126 Core::FullRightShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8,
6127 Core::FullRightShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1,
6128 Core::FullRightShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16,
6129 Core::FullRightShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2,
6130 Core::FullRightShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32,
6131 Core::FullRightShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4,
6132 Core::FullRightShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8,
6133 Core::FullRightShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1,
6134 Core::FullRightShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2,
6135 Core::FullRightShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4,
6136 Core::FullSubtract16 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_16,
6137 Core::FullSubtract32 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_32,
6138 Core::FullSubtract64 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_64,
6139 Core::FullSubtract8 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_8,
6140 Core::GeIsOnCurve => &simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve,
6141 Core::GeNegate => &simplicity_sys::c_jets::jets_wrapper::ge_negate,
6142 Core::GejAdd => &simplicity_sys::c_jets::jets_wrapper::gej_add,
6143 Core::GejDouble => &simplicity_sys::c_jets::jets_wrapper::gej_double,
6144 Core::GejEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_equiv,
6145 Core::GejGeAdd => &simplicity_sys::c_jets::jets_wrapper::gej_ge_add,
6146 Core::GejGeAddEx => &simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex,
6147 Core::GejGeEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv,
6148 Core::GejInfinity => &simplicity_sys::c_jets::jets_wrapper::gej_infinity,
6149 Core::GejIsInfinity => &simplicity_sys::c_jets::jets_wrapper::gej_is_infinity,
6150 Core::GejIsOnCurve => &simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve,
6151 Core::GejNegate => &simplicity_sys::c_jets::jets_wrapper::gej_negate,
6152 Core::GejNormalize => &simplicity_sys::c_jets::jets_wrapper::gej_normalize,
6153 Core::GejRescale => &simplicity_sys::c_jets::jets_wrapper::gej_rescale,
6154 Core::GejXEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_x_equiv,
6155 Core::GejYIsOdd => &simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd,
6156 Core::Generate => &simplicity_sys::c_jets::jets_wrapper::generate,
6157 Core::HashToCurve => &simplicity_sys::c_jets::jets_wrapper::hash_to_curve,
6158 Core::High1 => &simplicity_sys::c_jets::jets_wrapper::high_1,
6159 Core::High16 => &simplicity_sys::c_jets::jets_wrapper::high_16,
6160 Core::High32 => &simplicity_sys::c_jets::jets_wrapper::high_32,
6161 Core::High64 => &simplicity_sys::c_jets::jets_wrapper::high_64,
6162 Core::High8 => &simplicity_sys::c_jets::jets_wrapper::high_8,
6163 Core::Increment16 => &simplicity_sys::c_jets::jets_wrapper::increment_16,
6164 Core::Increment32 => &simplicity_sys::c_jets::jets_wrapper::increment_32,
6165 Core::Increment64 => &simplicity_sys::c_jets::jets_wrapper::increment_64,
6166 Core::Increment8 => &simplicity_sys::c_jets::jets_wrapper::increment_8,
6167 Core::IsOne16 => &simplicity_sys::c_jets::jets_wrapper::is_one_16,
6168 Core::IsOne32 => &simplicity_sys::c_jets::jets_wrapper::is_one_32,
6169 Core::IsOne64 => &simplicity_sys::c_jets::jets_wrapper::is_one_64,
6170 Core::IsOne8 => &simplicity_sys::c_jets::jets_wrapper::is_one_8,
6171 Core::IsZero16 => &simplicity_sys::c_jets::jets_wrapper::is_zero_16,
6172 Core::IsZero32 => &simplicity_sys::c_jets::jets_wrapper::is_zero_32,
6173 Core::IsZero64 => &simplicity_sys::c_jets::jets_wrapper::is_zero_64,
6174 Core::IsZero8 => &simplicity_sys::c_jets::jets_wrapper::is_zero_8,
6175 Core::Le16 => &simplicity_sys::c_jets::jets_wrapper::le_16,
6176 Core::Le32 => &simplicity_sys::c_jets::jets_wrapper::le_32,
6177 Core::Le64 => &simplicity_sys::c_jets::jets_wrapper::le_64,
6178 Core::Le8 => &simplicity_sys::c_jets::jets_wrapper::le_8,
6179 Core::LeftExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_32,
6180 Core::LeftExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_64,
6181 Core::LeftExtend1_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_16,
6182 Core::LeftExtend1_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_32,
6183 Core::LeftExtend1_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_64,
6184 Core::LeftExtend1_8 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_8,
6185 Core::LeftExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_32_64,
6186 Core::LeftExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_16,
6187 Core::LeftExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_32,
6188 Core::LeftExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_64,
6189 Core::LeftPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32,
6190 Core::LeftPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64,
6191 Core::LeftPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16,
6192 Core::LeftPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32,
6193 Core::LeftPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64,
6194 Core::LeftPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8,
6195 Core::LeftPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64,
6196 Core::LeftPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16,
6197 Core::LeftPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32,
6198 Core::LeftPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64,
6199 Core::LeftPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32,
6200 Core::LeftPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64,
6201 Core::LeftPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16,
6202 Core::LeftPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32,
6203 Core::LeftPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64,
6204 Core::LeftPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8,
6205 Core::LeftPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64,
6206 Core::LeftPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16,
6207 Core::LeftPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32,
6208 Core::LeftPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64,
6209 Core::LeftRotate16 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_16,
6210 Core::LeftRotate32 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_32,
6211 Core::LeftRotate64 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_64,
6212 Core::LeftRotate8 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_8,
6213 Core::LeftShift16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_16,
6214 Core::LeftShift32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_32,
6215 Core::LeftShift64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_64,
6216 Core::LeftShift8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_8,
6217 Core::LeftShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_16,
6218 Core::LeftShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_32,
6219 Core::LeftShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_64,
6220 Core::LeftShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_8,
6221 Core::Leftmost16_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_1,
6222 Core::Leftmost16_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_2,
6223 Core::Leftmost16_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_4,
6224 Core::Leftmost16_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_8,
6225 Core::Leftmost32_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_1,
6226 Core::Leftmost32_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_16,
6227 Core::Leftmost32_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_2,
6228 Core::Leftmost32_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_4,
6229 Core::Leftmost32_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_8,
6230 Core::Leftmost64_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_1,
6231 Core::Leftmost64_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_16,
6232 Core::Leftmost64_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_2,
6233 Core::Leftmost64_32 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_32,
6234 Core::Leftmost64_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_4,
6235 Core::Leftmost64_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_8,
6236 Core::Leftmost8_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_1,
6237 Core::Leftmost8_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_2,
6238 Core::Leftmost8_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_4,
6239 Core::LinearCombination1 => &simplicity_sys::c_jets::jets_wrapper::linear_combination_1,
6240 Core::LinearVerify1 => &simplicity_sys::c_jets::jets_wrapper::linear_verify_1,
6241 Core::Low1 => &simplicity_sys::c_jets::jets_wrapper::low_1,
6242 Core::Low16 => &simplicity_sys::c_jets::jets_wrapper::low_16,
6243 Core::Low32 => &simplicity_sys::c_jets::jets_wrapper::low_32,
6244 Core::Low64 => &simplicity_sys::c_jets::jets_wrapper::low_64,
6245 Core::Low8 => &simplicity_sys::c_jets::jets_wrapper::low_8,
6246 Core::Lt16 => &simplicity_sys::c_jets::jets_wrapper::lt_16,
6247 Core::Lt32 => &simplicity_sys::c_jets::jets_wrapper::lt_32,
6248 Core::Lt64 => &simplicity_sys::c_jets::jets_wrapper::lt_64,
6249 Core::Lt8 => &simplicity_sys::c_jets::jets_wrapper::lt_8,
6250 Core::Maj1 => &simplicity_sys::c_jets::jets_wrapper::maj_1,
6251 Core::Maj16 => &simplicity_sys::c_jets::jets_wrapper::maj_16,
6252 Core::Maj32 => &simplicity_sys::c_jets::jets_wrapper::maj_32,
6253 Core::Maj64 => &simplicity_sys::c_jets::jets_wrapper::maj_64,
6254 Core::Maj8 => &simplicity_sys::c_jets::jets_wrapper::maj_8,
6255 Core::Max16 => &simplicity_sys::c_jets::jets_wrapper::max_16,
6256 Core::Max32 => &simplicity_sys::c_jets::jets_wrapper::max_32,
6257 Core::Max64 => &simplicity_sys::c_jets::jets_wrapper::max_64,
6258 Core::Max8 => &simplicity_sys::c_jets::jets_wrapper::max_8,
6259 Core::Median16 => &simplicity_sys::c_jets::jets_wrapper::median_16,
6260 Core::Median32 => &simplicity_sys::c_jets::jets_wrapper::median_32,
6261 Core::Median64 => &simplicity_sys::c_jets::jets_wrapper::median_64,
6262 Core::Median8 => &simplicity_sys::c_jets::jets_wrapper::median_8,
6263 Core::Min16 => &simplicity_sys::c_jets::jets_wrapper::min_16,
6264 Core::Min32 => &simplicity_sys::c_jets::jets_wrapper::min_32,
6265 Core::Min64 => &simplicity_sys::c_jets::jets_wrapper::min_64,
6266 Core::Min8 => &simplicity_sys::c_jets::jets_wrapper::min_8,
6267 Core::Modulo16 => &simplicity_sys::c_jets::jets_wrapper::modulo_16,
6268 Core::Modulo32 => &simplicity_sys::c_jets::jets_wrapper::modulo_32,
6269 Core::Modulo64 => &simplicity_sys::c_jets::jets_wrapper::modulo_64,
6270 Core::Modulo8 => &simplicity_sys::c_jets::jets_wrapper::modulo_8,
6271 Core::Multiply16 => &simplicity_sys::c_jets::jets_wrapper::multiply_16,
6272 Core::Multiply32 => &simplicity_sys::c_jets::jets_wrapper::multiply_32,
6273 Core::Multiply64 => &simplicity_sys::c_jets::jets_wrapper::multiply_64,
6274 Core::Multiply8 => &simplicity_sys::c_jets::jets_wrapper::multiply_8,
6275 Core::Negate16 => &simplicity_sys::c_jets::jets_wrapper::negate_16,
6276 Core::Negate32 => &simplicity_sys::c_jets::jets_wrapper::negate_32,
6277 Core::Negate64 => &simplicity_sys::c_jets::jets_wrapper::negate_64,
6278 Core::Negate8 => &simplicity_sys::c_jets::jets_wrapper::negate_8,
6279 Core::One16 => &simplicity_sys::c_jets::jets_wrapper::one_16,
6280 Core::One32 => &simplicity_sys::c_jets::jets_wrapper::one_32,
6281 Core::One64 => &simplicity_sys::c_jets::jets_wrapper::one_64,
6282 Core::One8 => &simplicity_sys::c_jets::jets_wrapper::one_8,
6283 Core::Or1 => &simplicity_sys::c_jets::jets_wrapper::or_1,
6284 Core::Or16 => &simplicity_sys::c_jets::jets_wrapper::or_16,
6285 Core::Or32 => &simplicity_sys::c_jets::jets_wrapper::or_32,
6286 Core::Or64 => &simplicity_sys::c_jets::jets_wrapper::or_64,
6287 Core::Or8 => &simplicity_sys::c_jets::jets_wrapper::or_8,
6288 Core::ParseLock => &simplicity_sys::c_jets::jets_wrapper::parse_lock,
6289 Core::ParseSequence => &simplicity_sys::c_jets::jets_wrapper::parse_sequence,
6290 Core::PointVerify1 => &simplicity_sys::c_jets::jets_wrapper::point_verify_1,
6291 Core::RightExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_32,
6292 Core::RightExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_64,
6293 Core::RightExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_32_64,
6294 Core::RightExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_16,
6295 Core::RightExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_32,
6296 Core::RightExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_64,
6297 Core::RightPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32,
6298 Core::RightPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64,
6299 Core::RightPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16,
6300 Core::RightPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32,
6301 Core::RightPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64,
6302 Core::RightPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8,
6303 Core::RightPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64,
6304 Core::RightPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16,
6305 Core::RightPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32,
6306 Core::RightPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64,
6307 Core::RightPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32,
6308 Core::RightPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64,
6309 Core::RightPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16,
6310 Core::RightPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32,
6311 Core::RightPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64,
6312 Core::RightPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8,
6313 Core::RightPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64,
6314 Core::RightPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16,
6315 Core::RightPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32,
6316 Core::RightPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64,
6317 Core::RightRotate16 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_16,
6318 Core::RightRotate32 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_32,
6319 Core::RightRotate64 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_64,
6320 Core::RightRotate8 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_8,
6321 Core::RightShift16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_16,
6322 Core::RightShift32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_32,
6323 Core::RightShift64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_64,
6324 Core::RightShift8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_8,
6325 Core::RightShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_16,
6326 Core::RightShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_32,
6327 Core::RightShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_64,
6328 Core::RightShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_8,
6329 Core::Rightmost16_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_1,
6330 Core::Rightmost16_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_2,
6331 Core::Rightmost16_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_4,
6332 Core::Rightmost16_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_8,
6333 Core::Rightmost32_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_1,
6334 Core::Rightmost32_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_16,
6335 Core::Rightmost32_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_2,
6336 Core::Rightmost32_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_4,
6337 Core::Rightmost32_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_8,
6338 Core::Rightmost64_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_1,
6339 Core::Rightmost64_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_16,
6340 Core::Rightmost64_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_2,
6341 Core::Rightmost64_32 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_32,
6342 Core::Rightmost64_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_4,
6343 Core::Rightmost64_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_8,
6344 Core::Rightmost8_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_1,
6345 Core::Rightmost8_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_2,
6346 Core::Rightmost8_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_4,
6347 Core::ScalarAdd => &simplicity_sys::c_jets::jets_wrapper::scalar_add,
6348 Core::ScalarInvert => &simplicity_sys::c_jets::jets_wrapper::scalar_invert,
6349 Core::ScalarIsZero => &simplicity_sys::c_jets::jets_wrapper::scalar_is_zero,
6350 Core::ScalarMultiply => &simplicity_sys::c_jets::jets_wrapper::scalar_multiply,
6351 Core::ScalarMultiplyLambda => &simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda,
6352 Core::ScalarNegate => &simplicity_sys::c_jets::jets_wrapper::scalar_negate,
6353 Core::ScalarNormalize => &simplicity_sys::c_jets::jets_wrapper::scalar_normalize,
6354 Core::ScalarSquare => &simplicity_sys::c_jets::jets_wrapper::scalar_square,
6355 Core::Scale => &simplicity_sys::c_jets::jets_wrapper::scale,
6356 Core::Sha256Block => &simplicity_sys::c_jets::jets_wrapper::sha_256_block,
6357 Core::Sha256Ctx8Add1 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1,
6358 Core::Sha256Ctx8Add128 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128,
6359 Core::Sha256Ctx8Add16 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16,
6360 Core::Sha256Ctx8Add2 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2,
6361 Core::Sha256Ctx8Add256 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256,
6362 Core::Sha256Ctx8Add32 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32,
6363 Core::Sha256Ctx8Add4 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4,
6364 Core::Sha256Ctx8Add512 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512,
6365 Core::Sha256Ctx8Add64 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64,
6366 Core::Sha256Ctx8Add8 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8,
6367 Core::Sha256Ctx8AddBuffer511 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511,
6368 Core::Sha256Ctx8Finalize => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize,
6369 Core::Sha256Ctx8Init => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init,
6370 Core::Sha256Iv => &simplicity_sys::c_jets::jets_wrapper::sha_256_iv,
6371 Core::Some1 => &simplicity_sys::c_jets::jets_wrapper::some_1,
6372 Core::Some16 => &simplicity_sys::c_jets::jets_wrapper::some_16,
6373 Core::Some32 => &simplicity_sys::c_jets::jets_wrapper::some_32,
6374 Core::Some64 => &simplicity_sys::c_jets::jets_wrapper::some_64,
6375 Core::Some8 => &simplicity_sys::c_jets::jets_wrapper::some_8,
6376 Core::Subtract16 => &simplicity_sys::c_jets::jets_wrapper::subtract_16,
6377 Core::Subtract32 => &simplicity_sys::c_jets::jets_wrapper::subtract_32,
6378 Core::Subtract64 => &simplicity_sys::c_jets::jets_wrapper::subtract_64,
6379 Core::Subtract8 => &simplicity_sys::c_jets::jets_wrapper::subtract_8,
6380 Core::Swu => &simplicity_sys::c_jets::jets_wrapper::swu,
6381 Core::TapdataInit => &simplicity_sys::c_jets::jets_wrapper::tapdata_init,
6382 Core::Verify => &simplicity_sys::c_jets::jets_wrapper::verify,
6383 Core::Xor1 => &simplicity_sys::c_jets::jets_wrapper::xor_1,
6384 Core::Xor16 => &simplicity_sys::c_jets::jets_wrapper::xor_16,
6385 Core::Xor32 => &simplicity_sys::c_jets::jets_wrapper::xor_32,
6386 Core::Xor64 => &simplicity_sys::c_jets::jets_wrapper::xor_64,
6387 Core::Xor8 => &simplicity_sys::c_jets::jets_wrapper::xor_8,
6388 Core::XorXor1 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_1,
6389 Core::XorXor16 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_16,
6390 Core::XorXor32 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_32,
6391 Core::XorXor64 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_64,
6392 Core::XorXor8 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_8,
6393 }
6394 }
6395
6396 fn cost(&self) -> Cost {
6397 match self {
6398 Core::Add16 => Cost::from_milliweight(108),
6399 Core::Add32 => Cost::from_milliweight(117),
6400 Core::Add64 => Cost::from_milliweight(109),
6401 Core::Add8 => Cost::from_milliweight(112),
6402 Core::All16 => Cost::from_milliweight(62),
6403 Core::All32 => Cost::from_milliweight(65),
6404 Core::All64 => Cost::from_milliweight(79),
6405 Core::All8 => Cost::from_milliweight(76),
6406 Core::And1 => Cost::from_milliweight(79),
6407 Core::And16 => Cost::from_milliweight(88),
6408 Core::And32 => Cost::from_milliweight(94),
6409 Core::And64 => Cost::from_milliweight(93),
6410 Core::And8 => Cost::from_milliweight(91),
6411 Core::Bip0340Verify => Cost::from_milliweight(49087),
6412 Core::Ch1 => Cost::from_milliweight(78),
6413 Core::Ch16 => Cost::from_milliweight(94),
6414 Core::Ch32 => Cost::from_milliweight(91),
6415 Core::Ch64 => Cost::from_milliweight(91),
6416 Core::Ch8 => Cost::from_milliweight(77),
6417 Core::CheckSigVerify => Cost::from_milliweight(50000),
6418 Core::Complement1 => Cost::from_milliweight(79),
6419 Core::Complement16 => Cost::from_milliweight(75),
6420 Core::Complement32 => Cost::from_milliweight(93),
6421 Core::Complement64 => Cost::from_milliweight(88),
6422 Core::Complement8 => Cost::from_milliweight(80),
6423 Core::Decompress => Cost::from_milliweight(10861),
6424 Core::Decrement16 => Cost::from_milliweight(85),
6425 Core::Decrement32 => Cost::from_milliweight(91),
6426 Core::Decrement64 => Cost::from_milliweight(89),
6427 Core::Decrement8 => Cost::from_milliweight(79),
6428 Core::DivMod128_64 => Cost::from_milliweight(208),
6429 Core::DivMod16 => Cost::from_milliweight(118),
6430 Core::DivMod32 => Cost::from_milliweight(115),
6431 Core::DivMod64 => Cost::from_milliweight(86),
6432 Core::DivMod8 => Cost::from_milliweight(128),
6433 Core::Divide16 => Cost::from_milliweight(98),
6434 Core::Divide32 => Cost::from_milliweight(100),
6435 Core::Divide64 => Cost::from_milliweight(101),
6436 Core::Divide8 => Cost::from_milliweight(108),
6437 Core::Divides16 => Cost::from_milliweight(93),
6438 Core::Divides32 => Cost::from_milliweight(87),
6439 Core::Divides64 => Cost::from_milliweight(91),
6440 Core::Divides8 => Cost::from_milliweight(98),
6441 Core::Eq1 => Cost::from_milliweight(74),
6442 Core::Eq16 => Cost::from_milliweight(84),
6443 Core::Eq256 => Cost::from_milliweight(225),
6444 Core::Eq32 => Cost::from_milliweight(88),
6445 Core::Eq64 => Cost::from_milliweight(100),
6446 Core::Eq8 => Cost::from_milliweight(95),
6447 Core::FeAdd => Cost::from_milliweight(755),
6448 Core::FeInvert => Cost::from_milliweight(3175),
6449 Core::FeIsOdd => Cost::from_milliweight(290),
6450 Core::FeIsZero => Cost::from_milliweight(268),
6451 Core::FeMultiply => Cost::from_milliweight(808),
6452 Core::FeMultiplyBeta => Cost::from_milliweight(579),
6453 Core::FeNegate => Cost::from_milliweight(531),
6454 Core::FeNormalize => Cost::from_milliweight(521),
6455 Core::FeSquare => Cost::from_milliweight(556),
6456 Core::FeSquareRoot => Cost::from_milliweight(10275),
6457 Core::FullAdd16 => Cost::from_milliweight(121),
6458 Core::FullAdd32 => Cost::from_milliweight(119),
6459 Core::FullAdd64 => Cost::from_milliweight(121),
6460 Core::FullAdd8 => Cost::from_milliweight(127),
6461 Core::FullDecrement16 => Cost::from_milliweight(92),
6462 Core::FullDecrement32 => Cost::from_milliweight(107),
6463 Core::FullDecrement64 => Cost::from_milliweight(81),
6464 Core::FullDecrement8 => Cost::from_milliweight(91),
6465 Core::FullIncrement16 => Cost::from_milliweight(89),
6466 Core::FullIncrement32 => Cost::from_milliweight(104),
6467 Core::FullIncrement64 => Cost::from_milliweight(99),
6468 Core::FullIncrement8 => Cost::from_milliweight(72),
6469 Core::FullLeftShift16_1 => Cost::from_milliweight(83),
6470 Core::FullLeftShift16_2 => Cost::from_milliweight(83),
6471 Core::FullLeftShift16_4 => Cost::from_milliweight(89),
6472 Core::FullLeftShift16_8 => Cost::from_milliweight(65),
6473 Core::FullLeftShift32_1 => Cost::from_milliweight(84),
6474 Core::FullLeftShift32_16 => Cost::from_milliweight(81),
6475 Core::FullLeftShift32_2 => Cost::from_milliweight(67),
6476 Core::FullLeftShift32_4 => Cost::from_milliweight(84),
6477 Core::FullLeftShift32_8 => Cost::from_milliweight(91),
6478 Core::FullLeftShift64_1 => Cost::from_milliweight(99),
6479 Core::FullLeftShift64_16 => Cost::from_milliweight(90),
6480 Core::FullLeftShift64_2 => Cost::from_milliweight(94),
6481 Core::FullLeftShift64_32 => Cost::from_milliweight(86),
6482 Core::FullLeftShift64_4 => Cost::from_milliweight(94),
6483 Core::FullLeftShift64_8 => Cost::from_milliweight(86),
6484 Core::FullLeftShift8_1 => Cost::from_milliweight(96),
6485 Core::FullLeftShift8_2 => Cost::from_milliweight(96),
6486 Core::FullLeftShift8_4 => Cost::from_milliweight(85),
6487 Core::FullMultiply16 => Cost::from_milliweight(112),
6488 Core::FullMultiply32 => Cost::from_milliweight(96),
6489 Core::FullMultiply64 => Cost::from_milliweight(127),
6490 Core::FullMultiply8 => Cost::from_milliweight(109),
6491 Core::FullRightShift16_1 => Cost::from_milliweight(80),
6492 Core::FullRightShift16_2 => Cost::from_milliweight(79),
6493 Core::FullRightShift16_4 => Cost::from_milliweight(88),
6494 Core::FullRightShift16_8 => Cost::from_milliweight(57),
6495 Core::FullRightShift32_1 => Cost::from_milliweight(74),
6496 Core::FullRightShift32_16 => Cost::from_milliweight(64),
6497 Core::FullRightShift32_2 => Cost::from_milliweight(63),
6498 Core::FullRightShift32_4 => Cost::from_milliweight(71),
6499 Core::FullRightShift32_8 => Cost::from_milliweight(84),
6500 Core::FullRightShift64_1 => Cost::from_milliweight(99),
6501 Core::FullRightShift64_16 => Cost::from_milliweight(86),
6502 Core::FullRightShift64_2 => Cost::from_milliweight(86),
6503 Core::FullRightShift64_32 => Cost::from_milliweight(73),
6504 Core::FullRightShift64_4 => Cost::from_milliweight(93),
6505 Core::FullRightShift64_8 => Cost::from_milliweight(99),
6506 Core::FullRightShift8_1 => Cost::from_milliweight(88),
6507 Core::FullRightShift8_2 => Cost::from_milliweight(86),
6508 Core::FullRightShift8_4 => Cost::from_milliweight(89),
6509 Core::FullSubtract16 => Cost::from_milliweight(121),
6510 Core::FullSubtract32 => Cost::from_milliweight(116),
6511 Core::FullSubtract64 => Cost::from_milliweight(98),
6512 Core::FullSubtract8 => Cost::from_milliweight(126),
6513 Core::GeIsOnCurve => Cost::from_milliweight(642),
6514 Core::GeNegate => Cost::from_milliweight(945),
6515 Core::GejAdd => Cost::from_milliweight(2897),
6516 Core::GejDouble => Cost::from_milliweight(1764),
6517 Core::GejEquiv => Cost::from_milliweight(2220),
6518 Core::GejGeAdd => Cost::from_milliweight(2477),
6519 Core::GejGeAddEx => Cost::from_milliweight(2719),
6520 Core::GejGeEquiv => Cost::from_milliweight(1765),
6521 Core::GejInfinity => Cost::from_milliweight(716),
6522 Core::GejIsInfinity => Cost::from_milliweight(666),
6523 Core::GejIsOnCurve => Cost::from_milliweight(1016),
6524 Core::GejNegate => Cost::from_milliweight(1381),
6525 Core::GejNormalize => Cost::from_milliweight(4099),
6526 Core::GejRescale => Cost::from_milliweight(1908),
6527 Core::GejXEquiv => Cost::from_milliweight(1047),
6528 Core::GejYIsOdd => Cost::from_milliweight(3651),
6529 Core::Generate => Cost::from_milliweight(50071),
6530 Core::HashToCurve => Cost::from_milliweight(68094),
6531 Core::High1 => Cost::from_milliweight(57),
6532 Core::High16 => Cost::from_milliweight(66),
6533 Core::High32 => Cost::from_milliweight(58),
6534 Core::High64 => Cost::from_milliweight(68),
6535 Core::High8 => Cost::from_milliweight(59),
6536 Core::Increment16 => Cost::from_milliweight(69),
6537 Core::Increment32 => Cost::from_milliweight(92),
6538 Core::Increment64 => Cost::from_milliweight(87),
6539 Core::Increment8 => Cost::from_milliweight(85),
6540 Core::IsOne16 => Cost::from_milliweight(82),
6541 Core::IsOne32 => Cost::from_milliweight(65),
6542 Core::IsOne64 => Cost::from_milliweight(83),
6543 Core::IsOne8 => Cost::from_milliweight(91),
6544 Core::IsZero16 => Cost::from_milliweight(75),
6545 Core::IsZero32 => Cost::from_milliweight(85),
6546 Core::IsZero64 => Cost::from_milliweight(80),
6547 Core::IsZero8 => Cost::from_milliweight(77),
6548 Core::Le16 => Cost::from_milliweight(112),
6549 Core::Le32 => Cost::from_milliweight(93),
6550 Core::Le64 => Cost::from_milliweight(93),
6551 Core::Le8 => Cost::from_milliweight(109),
6552 Core::LeftExtend16_32 => Cost::from_milliweight(86),
6553 Core::LeftExtend16_64 => Cost::from_milliweight(89),
6554 Core::LeftExtend1_16 => Cost::from_milliweight(67),
6555 Core::LeftExtend1_32 => Cost::from_milliweight(60),
6556 Core::LeftExtend1_64 => Cost::from_milliweight(76),
6557 Core::LeftExtend1_8 => Cost::from_milliweight(65),
6558 Core::LeftExtend32_64 => Cost::from_milliweight(63),
6559 Core::LeftExtend8_16 => Cost::from_milliweight(88),
6560 Core::LeftExtend8_32 => Cost::from_milliweight(90),
6561 Core::LeftExtend8_64 => Cost::from_milliweight(107),
6562 Core::LeftPadHigh16_32 => Cost::from_milliweight(91),
6563 Core::LeftPadHigh16_64 => Cost::from_milliweight(110),
6564 Core::LeftPadHigh1_16 => Cost::from_milliweight(141),
6565 Core::LeftPadHigh1_32 => Cost::from_milliweight(263),
6566 Core::LeftPadHigh1_64 => Cost::from_milliweight(422),
6567 Core::LeftPadHigh1_8 => Cost::from_milliweight(99),
6568 Core::LeftPadHigh32_64 => Cost::from_milliweight(93),
6569 Core::LeftPadHigh8_16 => Cost::from_milliweight(88),
6570 Core::LeftPadHigh8_32 => Cost::from_milliweight(103),
6571 Core::LeftPadHigh8_64 => Cost::from_milliweight(136),
6572 Core::LeftPadLow16_32 => Cost::from_milliweight(69),
6573 Core::LeftPadLow16_64 => Cost::from_milliweight(106),
6574 Core::LeftPadLow1_16 => Cost::from_milliweight(65),
6575 Core::LeftPadLow1_32 => Cost::from_milliweight(63),
6576 Core::LeftPadLow1_64 => Cost::from_milliweight(61),
6577 Core::LeftPadLow1_8 => Cost::from_milliweight(56),
6578 Core::LeftPadLow32_64 => Cost::from_milliweight(91),
6579 Core::LeftPadLow8_16 => Cost::from_milliweight(66),
6580 Core::LeftPadLow8_32 => Cost::from_milliweight(61),
6581 Core::LeftPadLow8_64 => Cost::from_milliweight(112),
6582 Core::LeftRotate16 => Cost::from_milliweight(77),
6583 Core::LeftRotate32 => Cost::from_milliweight(106),
6584 Core::LeftRotate64 => Cost::from_milliweight(98),
6585 Core::LeftRotate8 => Cost::from_milliweight(88),
6586 Core::LeftShift16 => Cost::from_milliweight(72),
6587 Core::LeftShift32 => Cost::from_milliweight(78),
6588 Core::LeftShift64 => Cost::from_milliweight(82),
6589 Core::LeftShift8 => Cost::from_milliweight(91),
6590 Core::LeftShiftWith16 => Cost::from_milliweight(83),
6591 Core::LeftShiftWith32 => Cost::from_milliweight(95),
6592 Core::LeftShiftWith64 => Cost::from_milliweight(103),
6593 Core::LeftShiftWith8 => Cost::from_milliweight(107),
6594 Core::Leftmost16_1 => Cost::from_milliweight(93),
6595 Core::Leftmost16_2 => Cost::from_milliweight(90),
6596 Core::Leftmost16_4 => Cost::from_milliweight(75),
6597 Core::Leftmost16_8 => Cost::from_milliweight(71),
6598 Core::Leftmost32_1 => Cost::from_milliweight(77),
6599 Core::Leftmost32_16 => Cost::from_milliweight(102),
6600 Core::Leftmost32_2 => Cost::from_milliweight(66),
6601 Core::Leftmost32_4 => Cost::from_milliweight(52),
6602 Core::Leftmost32_8 => Cost::from_milliweight(103),
6603 Core::Leftmost64_1 => Cost::from_milliweight(78),
6604 Core::Leftmost64_16 => Cost::from_milliweight(88),
6605 Core::Leftmost64_2 => Cost::from_milliweight(71),
6606 Core::Leftmost64_32 => Cost::from_milliweight(90),
6607 Core::Leftmost64_4 => Cost::from_milliweight(79),
6608 Core::Leftmost64_8 => Cost::from_milliweight(86),
6609 Core::Leftmost8_1 => Cost::from_milliweight(90),
6610 Core::Leftmost8_2 => Cost::from_milliweight(90),
6611 Core::Leftmost8_4 => Cost::from_milliweight(87),
6612 Core::LinearCombination1 => Cost::from_milliweight(84674),
6613 Core::LinearVerify1 => Cost::from_milliweight(43364),
6614 Core::Low1 => Cost::from_milliweight(38),
6615 Core::Low16 => Cost::from_milliweight(69),
6616 Core::Low32 => Cost::from_milliweight(62),
6617 Core::Low64 => Cost::from_milliweight(47),
6618 Core::Low8 => Cost::from_milliweight(47),
6619 Core::Lt16 => Cost::from_milliweight(123),
6620 Core::Lt32 => Cost::from_milliweight(107),
6621 Core::Lt64 => Cost::from_milliweight(76),
6622 Core::Lt8 => Cost::from_milliweight(107),
6623 Core::Maj1 => Cost::from_milliweight(62),
6624 Core::Maj16 => Cost::from_milliweight(80),
6625 Core::Maj32 => Cost::from_milliweight(96),
6626 Core::Maj64 => Cost::from_milliweight(93),
6627 Core::Maj8 => Cost::from_milliweight(94),
6628 Core::Max16 => Cost::from_milliweight(114),
6629 Core::Max32 => Cost::from_milliweight(92),
6630 Core::Max64 => Cost::from_milliweight(104),
6631 Core::Max8 => Cost::from_milliweight(96),
6632 Core::Median16 => Cost::from_milliweight(123),
6633 Core::Median32 => Cost::from_milliweight(101),
6634 Core::Median64 => Cost::from_milliweight(109),
6635 Core::Median8 => Cost::from_milliweight(122),
6636 Core::Min16 => Cost::from_milliweight(97),
6637 Core::Min32 => Cost::from_milliweight(113),
6638 Core::Min64 => Cost::from_milliweight(102),
6639 Core::Min8 => Cost::from_milliweight(99),
6640 Core::Modulo16 => Cost::from_milliweight(103),
6641 Core::Modulo32 => Cost::from_milliweight(102),
6642 Core::Modulo64 => Cost::from_milliweight(85),
6643 Core::Modulo8 => Cost::from_milliweight(102),
6644 Core::Multiply16 => Cost::from_milliweight(90),
6645 Core::Multiply32 => Cost::from_milliweight(90),
6646 Core::Multiply64 => Cost::from_milliweight(85),
6647 Core::Multiply8 => Cost::from_milliweight(93),
6648 Core::Negate16 => Cost::from_milliweight(70),
6649 Core::Negate32 => Cost::from_milliweight(85),
6650 Core::Negate64 => Cost::from_milliweight(94),
6651 Core::Negate8 => Cost::from_milliweight(91),
6652 Core::One16 => Cost::from_milliweight(60),
6653 Core::One32 => Cost::from_milliweight(59),
6654 Core::One64 => Cost::from_milliweight(59),
6655 Core::One8 => Cost::from_milliweight(62),
6656 Core::Or1 => Cost::from_milliweight(77),
6657 Core::Or16 => Cost::from_milliweight(94),
6658 Core::Or32 => Cost::from_milliweight(105),
6659 Core::Or64 => Cost::from_milliweight(99),
6660 Core::Or8 => Cost::from_milliweight(93),
6661 Core::ParseLock => Cost::from_milliweight(97),
6662 Core::ParseSequence => Cost::from_milliweight(116),
6663 Core::PointVerify1 => Cost::from_milliweight(41494),
6664 Core::RightExtend16_32 => Cost::from_milliweight(74),
6665 Core::RightExtend16_64 => Cost::from_milliweight(82),
6666 Core::RightExtend32_64 => Cost::from_milliweight(94),
6667 Core::RightExtend8_16 => Cost::from_milliweight(76),
6668 Core::RightExtend8_32 => Cost::from_milliweight(106),
6669 Core::RightExtend8_64 => Cost::from_milliweight(124),
6670 Core::RightPadHigh16_32 => Cost::from_milliweight(70),
6671 Core::RightPadHigh16_64 => Cost::from_milliweight(88),
6672 Core::RightPadHigh1_16 => Cost::from_milliweight(143),
6673 Core::RightPadHigh1_32 => Cost::from_milliweight(223),
6674 Core::RightPadHigh1_64 => Cost::from_milliweight(476),
6675 Core::RightPadHigh1_8 => Cost::from_milliweight(107),
6676 Core::RightPadHigh32_64 => Cost::from_milliweight(94),
6677 Core::RightPadHigh8_16 => Cost::from_milliweight(89),
6678 Core::RightPadHigh8_32 => Cost::from_milliweight(110),
6679 Core::RightPadHigh8_64 => Cost::from_milliweight(107),
6680 Core::RightPadLow16_32 => Cost::from_milliweight(71),
6681 Core::RightPadLow16_64 => Cost::from_milliweight(96),
6682 Core::RightPadLow1_16 => Cost::from_milliweight(81),
6683 Core::RightPadLow1_32 => Cost::from_milliweight(75),
6684 Core::RightPadLow1_64 => Cost::from_milliweight(73),
6685 Core::RightPadLow1_8 => Cost::from_milliweight(68),
6686 Core::RightPadLow32_64 => Cost::from_milliweight(80),
6687 Core::RightPadLow8_16 => Cost::from_milliweight(75),
6688 Core::RightPadLow8_32 => Cost::from_milliweight(77),
6689 Core::RightPadLow8_64 => Cost::from_milliweight(82),
6690 Core::RightRotate16 => Cost::from_milliweight(99),
6691 Core::RightRotate32 => Cost::from_milliweight(92),
6692 Core::RightRotate64 => Cost::from_milliweight(93),
6693 Core::RightRotate8 => Cost::from_milliweight(75),
6694 Core::RightShift16 => Cost::from_milliweight(84),
6695 Core::RightShift32 => Cost::from_milliweight(88),
6696 Core::RightShift64 => Cost::from_milliweight(91),
6697 Core::RightShift8 => Cost::from_milliweight(88),
6698 Core::RightShiftWith16 => Cost::from_milliweight(105),
6699 Core::RightShiftWith32 => Cost::from_milliweight(92),
6700 Core::RightShiftWith64 => Cost::from_milliweight(97),
6701 Core::RightShiftWith8 => Cost::from_milliweight(103),
6702 Core::Rightmost16_1 => Cost::from_milliweight(70),
6703 Core::Rightmost16_2 => Cost::from_milliweight(82),
6704 Core::Rightmost16_4 => Cost::from_milliweight(76),
6705 Core::Rightmost16_8 => Cost::from_milliweight(69),
6706 Core::Rightmost32_1 => Cost::from_milliweight(90),
6707 Core::Rightmost32_16 => Cost::from_milliweight(64),
6708 Core::Rightmost32_2 => Cost::from_milliweight(74),
6709 Core::Rightmost32_4 => Cost::from_milliweight(92),
6710 Core::Rightmost32_8 => Cost::from_milliweight(78),
6711 Core::Rightmost64_1 => Cost::from_milliweight(77),
6712 Core::Rightmost64_16 => Cost::from_milliweight(86),
6713 Core::Rightmost64_2 => Cost::from_milliweight(74),
6714 Core::Rightmost64_32 => Cost::from_milliweight(76),
6715 Core::Rightmost64_4 => Cost::from_milliweight(70),
6716 Core::Rightmost64_8 => Cost::from_milliweight(69),
6717 Core::Rightmost8_1 => Cost::from_milliweight(79),
6718 Core::Rightmost8_2 => Cost::from_milliweight(98),
6719 Core::Rightmost8_4 => Cost::from_milliweight(98),
6720 Core::ScalarAdd => Cost::from_milliweight(739),
6721 Core::ScalarInvert => Cost::from_milliweight(3193),
6722 Core::ScalarIsZero => Cost::from_milliweight(271),
6723 Core::ScalarMultiply => Cost::from_milliweight(774),
6724 Core::ScalarMultiplyLambda => Cost::from_milliweight(557),
6725 Core::ScalarNegate => Cost::from_milliweight(490),
6726 Core::ScalarNormalize => Cost::from_milliweight(472),
6727 Core::ScalarSquare => Cost::from_milliweight(575),
6728 Core::Scale => Cost::from_milliweight(72675),
6729 Core::Sha256Block => Cost::from_milliweight(771),
6730 Core::Sha256Ctx8Add1 => Cost::from_milliweight(642),
6731 Core::Sha256Ctx8Add128 => Cost::from_milliweight(1779),
6732 Core::Sha256Ctx8Add16 => Cost::from_milliweight(747),
6733 Core::Sha256Ctx8Add2 => Cost::from_milliweight(661),
6734 Core::Sha256Ctx8Add256 => Cost::from_milliweight(2912),
6735 Core::Sha256Ctx8Add32 => Cost::from_milliweight(896),
6736 Core::Sha256Ctx8Add4 => Cost::from_milliweight(645),
6737 Core::Sha256Ctx8Add512 => Cost::from_milliweight(5299),
6738 Core::Sha256Ctx8Add64 => Cost::from_milliweight(1187),
6739 Core::Sha256Ctx8Add8 => Cost::from_milliweight(674),
6740 Core::Sha256Ctx8AddBuffer511 => Cost::from_milliweight(5060),
6741 Core::Sha256Ctx8Finalize => Cost::from_milliweight(835),
6742 Core::Sha256Ctx8Init => Cost::from_milliweight(118),
6743 Core::Sha256Iv => Cost::from_milliweight(93),
6744 Core::Some1 => Cost::from_milliweight(70),
6745 Core::Some16 => Cost::from_milliweight(63),
6746 Core::Some32 => Cost::from_milliweight(64),
6747 Core::Some64 => Cost::from_milliweight(93),
6748 Core::Some8 => Cost::from_milliweight(75),
6749 Core::Subtract16 => Cost::from_milliweight(113),
6750 Core::Subtract32 => Cost::from_milliweight(118),
6751 Core::Subtract64 => Cost::from_milliweight(115),
6752 Core::Subtract8 => Cost::from_milliweight(109),
6753 Core::Swu => Cost::from_milliweight(32120),
6754 Core::TapdataInit => Cost::from_milliweight(1178),
6755 Core::Verify => Cost::from_milliweight(57),
6756 Core::Xor1 => Cost::from_milliweight(67),
6757 Core::Xor16 => Cost::from_milliweight(83),
6758 Core::Xor32 => Cost::from_milliweight(92),
6759 Core::Xor64 => Cost::from_milliweight(95),
6760 Core::Xor8 => Cost::from_milliweight(85),
6761 Core::XorXor1 => Cost::from_milliweight(72),
6762 Core::XorXor16 => Cost::from_milliweight(79),
6763 Core::XorXor32 => Cost::from_milliweight(96),
6764 Core::XorXor64 => Cost::from_milliweight(93),
6765 Core::XorXor8 => Cost::from_milliweight(98),
6766 }
6767 }
6768}
6769
6770impl fmt::Display for Core {
6771 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6772 match self {
6773 Core::Add16 => f.write_str("add_16"),
6774 Core::Add32 => f.write_str("add_32"),
6775 Core::Add64 => f.write_str("add_64"),
6776 Core::Add8 => f.write_str("add_8"),
6777 Core::All16 => f.write_str("all_16"),
6778 Core::All32 => f.write_str("all_32"),
6779 Core::All64 => f.write_str("all_64"),
6780 Core::All8 => f.write_str("all_8"),
6781 Core::And1 => f.write_str("and_1"),
6782 Core::And16 => f.write_str("and_16"),
6783 Core::And32 => f.write_str("and_32"),
6784 Core::And64 => f.write_str("and_64"),
6785 Core::And8 => f.write_str("and_8"),
6786 Core::Bip0340Verify => f.write_str("bip_0340_verify"),
6787 Core::Ch1 => f.write_str("ch_1"),
6788 Core::Ch16 => f.write_str("ch_16"),
6789 Core::Ch32 => f.write_str("ch_32"),
6790 Core::Ch64 => f.write_str("ch_64"),
6791 Core::Ch8 => f.write_str("ch_8"),
6792 Core::CheckSigVerify => f.write_str("check_sig_verify"),
6793 Core::Complement1 => f.write_str("complement_1"),
6794 Core::Complement16 => f.write_str("complement_16"),
6795 Core::Complement32 => f.write_str("complement_32"),
6796 Core::Complement64 => f.write_str("complement_64"),
6797 Core::Complement8 => f.write_str("complement_8"),
6798 Core::Decompress => f.write_str("decompress"),
6799 Core::Decrement16 => f.write_str("decrement_16"),
6800 Core::Decrement32 => f.write_str("decrement_32"),
6801 Core::Decrement64 => f.write_str("decrement_64"),
6802 Core::Decrement8 => f.write_str("decrement_8"),
6803 Core::DivMod128_64 => f.write_str("div_mod_128_64"),
6804 Core::DivMod16 => f.write_str("div_mod_16"),
6805 Core::DivMod32 => f.write_str("div_mod_32"),
6806 Core::DivMod64 => f.write_str("div_mod_64"),
6807 Core::DivMod8 => f.write_str("div_mod_8"),
6808 Core::Divide16 => f.write_str("divide_16"),
6809 Core::Divide32 => f.write_str("divide_32"),
6810 Core::Divide64 => f.write_str("divide_64"),
6811 Core::Divide8 => f.write_str("divide_8"),
6812 Core::Divides16 => f.write_str("divides_16"),
6813 Core::Divides32 => f.write_str("divides_32"),
6814 Core::Divides64 => f.write_str("divides_64"),
6815 Core::Divides8 => f.write_str("divides_8"),
6816 Core::Eq1 => f.write_str("eq_1"),
6817 Core::Eq16 => f.write_str("eq_16"),
6818 Core::Eq256 => f.write_str("eq_256"),
6819 Core::Eq32 => f.write_str("eq_32"),
6820 Core::Eq64 => f.write_str("eq_64"),
6821 Core::Eq8 => f.write_str("eq_8"),
6822 Core::FeAdd => f.write_str("fe_add"),
6823 Core::FeInvert => f.write_str("fe_invert"),
6824 Core::FeIsOdd => f.write_str("fe_is_odd"),
6825 Core::FeIsZero => f.write_str("fe_is_zero"),
6826 Core::FeMultiply => f.write_str("fe_multiply"),
6827 Core::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
6828 Core::FeNegate => f.write_str("fe_negate"),
6829 Core::FeNormalize => f.write_str("fe_normalize"),
6830 Core::FeSquare => f.write_str("fe_square"),
6831 Core::FeSquareRoot => f.write_str("fe_square_root"),
6832 Core::FullAdd16 => f.write_str("full_add_16"),
6833 Core::FullAdd32 => f.write_str("full_add_32"),
6834 Core::FullAdd64 => f.write_str("full_add_64"),
6835 Core::FullAdd8 => f.write_str("full_add_8"),
6836 Core::FullDecrement16 => f.write_str("full_decrement_16"),
6837 Core::FullDecrement32 => f.write_str("full_decrement_32"),
6838 Core::FullDecrement64 => f.write_str("full_decrement_64"),
6839 Core::FullDecrement8 => f.write_str("full_decrement_8"),
6840 Core::FullIncrement16 => f.write_str("full_increment_16"),
6841 Core::FullIncrement32 => f.write_str("full_increment_32"),
6842 Core::FullIncrement64 => f.write_str("full_increment_64"),
6843 Core::FullIncrement8 => f.write_str("full_increment_8"),
6844 Core::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
6845 Core::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
6846 Core::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
6847 Core::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
6848 Core::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
6849 Core::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
6850 Core::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
6851 Core::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
6852 Core::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
6853 Core::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
6854 Core::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
6855 Core::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
6856 Core::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
6857 Core::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
6858 Core::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
6859 Core::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
6860 Core::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
6861 Core::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
6862 Core::FullMultiply16 => f.write_str("full_multiply_16"),
6863 Core::FullMultiply32 => f.write_str("full_multiply_32"),
6864 Core::FullMultiply64 => f.write_str("full_multiply_64"),
6865 Core::FullMultiply8 => f.write_str("full_multiply_8"),
6866 Core::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
6867 Core::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
6868 Core::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
6869 Core::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
6870 Core::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
6871 Core::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
6872 Core::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
6873 Core::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
6874 Core::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
6875 Core::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
6876 Core::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
6877 Core::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
6878 Core::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
6879 Core::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
6880 Core::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
6881 Core::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
6882 Core::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
6883 Core::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
6884 Core::FullSubtract16 => f.write_str("full_subtract_16"),
6885 Core::FullSubtract32 => f.write_str("full_subtract_32"),
6886 Core::FullSubtract64 => f.write_str("full_subtract_64"),
6887 Core::FullSubtract8 => f.write_str("full_subtract_8"),
6888 Core::GeIsOnCurve => f.write_str("ge_is_on_curve"),
6889 Core::GeNegate => f.write_str("ge_negate"),
6890 Core::GejAdd => f.write_str("gej_add"),
6891 Core::GejDouble => f.write_str("gej_double"),
6892 Core::GejEquiv => f.write_str("gej_equiv"),
6893 Core::GejGeAdd => f.write_str("gej_ge_add"),
6894 Core::GejGeAddEx => f.write_str("gej_ge_add_ex"),
6895 Core::GejGeEquiv => f.write_str("gej_ge_equiv"),
6896 Core::GejInfinity => f.write_str("gej_infinity"),
6897 Core::GejIsInfinity => f.write_str("gej_is_infinity"),
6898 Core::GejIsOnCurve => f.write_str("gej_is_on_curve"),
6899 Core::GejNegate => f.write_str("gej_negate"),
6900 Core::GejNormalize => f.write_str("gej_normalize"),
6901 Core::GejRescale => f.write_str("gej_rescale"),
6902 Core::GejXEquiv => f.write_str("gej_x_equiv"),
6903 Core::GejYIsOdd => f.write_str("gej_y_is_odd"),
6904 Core::Generate => f.write_str("generate"),
6905 Core::HashToCurve => f.write_str("hash_to_curve"),
6906 Core::High1 => f.write_str("high_1"),
6907 Core::High16 => f.write_str("high_16"),
6908 Core::High32 => f.write_str("high_32"),
6909 Core::High64 => f.write_str("high_64"),
6910 Core::High8 => f.write_str("high_8"),
6911 Core::Increment16 => f.write_str("increment_16"),
6912 Core::Increment32 => f.write_str("increment_32"),
6913 Core::Increment64 => f.write_str("increment_64"),
6914 Core::Increment8 => f.write_str("increment_8"),
6915 Core::IsOne16 => f.write_str("is_one_16"),
6916 Core::IsOne32 => f.write_str("is_one_32"),
6917 Core::IsOne64 => f.write_str("is_one_64"),
6918 Core::IsOne8 => f.write_str("is_one_8"),
6919 Core::IsZero16 => f.write_str("is_zero_16"),
6920 Core::IsZero32 => f.write_str("is_zero_32"),
6921 Core::IsZero64 => f.write_str("is_zero_64"),
6922 Core::IsZero8 => f.write_str("is_zero_8"),
6923 Core::Le16 => f.write_str("le_16"),
6924 Core::Le32 => f.write_str("le_32"),
6925 Core::Le64 => f.write_str("le_64"),
6926 Core::Le8 => f.write_str("le_8"),
6927 Core::LeftExtend16_32 => f.write_str("left_extend_16_32"),
6928 Core::LeftExtend16_64 => f.write_str("left_extend_16_64"),
6929 Core::LeftExtend1_16 => f.write_str("left_extend_1_16"),
6930 Core::LeftExtend1_32 => f.write_str("left_extend_1_32"),
6931 Core::LeftExtend1_64 => f.write_str("left_extend_1_64"),
6932 Core::LeftExtend1_8 => f.write_str("left_extend_1_8"),
6933 Core::LeftExtend32_64 => f.write_str("left_extend_32_64"),
6934 Core::LeftExtend8_16 => f.write_str("left_extend_8_16"),
6935 Core::LeftExtend8_32 => f.write_str("left_extend_8_32"),
6936 Core::LeftExtend8_64 => f.write_str("left_extend_8_64"),
6937 Core::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
6938 Core::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
6939 Core::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
6940 Core::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
6941 Core::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
6942 Core::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
6943 Core::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
6944 Core::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
6945 Core::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
6946 Core::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
6947 Core::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
6948 Core::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
6949 Core::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
6950 Core::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
6951 Core::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
6952 Core::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
6953 Core::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
6954 Core::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
6955 Core::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
6956 Core::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
6957 Core::LeftRotate16 => f.write_str("left_rotate_16"),
6958 Core::LeftRotate32 => f.write_str("left_rotate_32"),
6959 Core::LeftRotate64 => f.write_str("left_rotate_64"),
6960 Core::LeftRotate8 => f.write_str("left_rotate_8"),
6961 Core::LeftShift16 => f.write_str("left_shift_16"),
6962 Core::LeftShift32 => f.write_str("left_shift_32"),
6963 Core::LeftShift64 => f.write_str("left_shift_64"),
6964 Core::LeftShift8 => f.write_str("left_shift_8"),
6965 Core::LeftShiftWith16 => f.write_str("left_shift_with_16"),
6966 Core::LeftShiftWith32 => f.write_str("left_shift_with_32"),
6967 Core::LeftShiftWith64 => f.write_str("left_shift_with_64"),
6968 Core::LeftShiftWith8 => f.write_str("left_shift_with_8"),
6969 Core::Leftmost16_1 => f.write_str("leftmost_16_1"),
6970 Core::Leftmost16_2 => f.write_str("leftmost_16_2"),
6971 Core::Leftmost16_4 => f.write_str("leftmost_16_4"),
6972 Core::Leftmost16_8 => f.write_str("leftmost_16_8"),
6973 Core::Leftmost32_1 => f.write_str("leftmost_32_1"),
6974 Core::Leftmost32_16 => f.write_str("leftmost_32_16"),
6975 Core::Leftmost32_2 => f.write_str("leftmost_32_2"),
6976 Core::Leftmost32_4 => f.write_str("leftmost_32_4"),
6977 Core::Leftmost32_8 => f.write_str("leftmost_32_8"),
6978 Core::Leftmost64_1 => f.write_str("leftmost_64_1"),
6979 Core::Leftmost64_16 => f.write_str("leftmost_64_16"),
6980 Core::Leftmost64_2 => f.write_str("leftmost_64_2"),
6981 Core::Leftmost64_32 => f.write_str("leftmost_64_32"),
6982 Core::Leftmost64_4 => f.write_str("leftmost_64_4"),
6983 Core::Leftmost64_8 => f.write_str("leftmost_64_8"),
6984 Core::Leftmost8_1 => f.write_str("leftmost_8_1"),
6985 Core::Leftmost8_2 => f.write_str("leftmost_8_2"),
6986 Core::Leftmost8_4 => f.write_str("leftmost_8_4"),
6987 Core::LinearCombination1 => f.write_str("linear_combination_1"),
6988 Core::LinearVerify1 => f.write_str("linear_verify_1"),
6989 Core::Low1 => f.write_str("low_1"),
6990 Core::Low16 => f.write_str("low_16"),
6991 Core::Low32 => f.write_str("low_32"),
6992 Core::Low64 => f.write_str("low_64"),
6993 Core::Low8 => f.write_str("low_8"),
6994 Core::Lt16 => f.write_str("lt_16"),
6995 Core::Lt32 => f.write_str("lt_32"),
6996 Core::Lt64 => f.write_str("lt_64"),
6997 Core::Lt8 => f.write_str("lt_8"),
6998 Core::Maj1 => f.write_str("maj_1"),
6999 Core::Maj16 => f.write_str("maj_16"),
7000 Core::Maj32 => f.write_str("maj_32"),
7001 Core::Maj64 => f.write_str("maj_64"),
7002 Core::Maj8 => f.write_str("maj_8"),
7003 Core::Max16 => f.write_str("max_16"),
7004 Core::Max32 => f.write_str("max_32"),
7005 Core::Max64 => f.write_str("max_64"),
7006 Core::Max8 => f.write_str("max_8"),
7007 Core::Median16 => f.write_str("median_16"),
7008 Core::Median32 => f.write_str("median_32"),
7009 Core::Median64 => f.write_str("median_64"),
7010 Core::Median8 => f.write_str("median_8"),
7011 Core::Min16 => f.write_str("min_16"),
7012 Core::Min32 => f.write_str("min_32"),
7013 Core::Min64 => f.write_str("min_64"),
7014 Core::Min8 => f.write_str("min_8"),
7015 Core::Modulo16 => f.write_str("modulo_16"),
7016 Core::Modulo32 => f.write_str("modulo_32"),
7017 Core::Modulo64 => f.write_str("modulo_64"),
7018 Core::Modulo8 => f.write_str("modulo_8"),
7019 Core::Multiply16 => f.write_str("multiply_16"),
7020 Core::Multiply32 => f.write_str("multiply_32"),
7021 Core::Multiply64 => f.write_str("multiply_64"),
7022 Core::Multiply8 => f.write_str("multiply_8"),
7023 Core::Negate16 => f.write_str("negate_16"),
7024 Core::Negate32 => f.write_str("negate_32"),
7025 Core::Negate64 => f.write_str("negate_64"),
7026 Core::Negate8 => f.write_str("negate_8"),
7027 Core::One16 => f.write_str("one_16"),
7028 Core::One32 => f.write_str("one_32"),
7029 Core::One64 => f.write_str("one_64"),
7030 Core::One8 => f.write_str("one_8"),
7031 Core::Or1 => f.write_str("or_1"),
7032 Core::Or16 => f.write_str("or_16"),
7033 Core::Or32 => f.write_str("or_32"),
7034 Core::Or64 => f.write_str("or_64"),
7035 Core::Or8 => f.write_str("or_8"),
7036 Core::ParseLock => f.write_str("parse_lock"),
7037 Core::ParseSequence => f.write_str("parse_sequence"),
7038 Core::PointVerify1 => f.write_str("point_verify_1"),
7039 Core::RightExtend16_32 => f.write_str("right_extend_16_32"),
7040 Core::RightExtend16_64 => f.write_str("right_extend_16_64"),
7041 Core::RightExtend32_64 => f.write_str("right_extend_32_64"),
7042 Core::RightExtend8_16 => f.write_str("right_extend_8_16"),
7043 Core::RightExtend8_32 => f.write_str("right_extend_8_32"),
7044 Core::RightExtend8_64 => f.write_str("right_extend_8_64"),
7045 Core::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
7046 Core::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
7047 Core::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
7048 Core::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
7049 Core::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
7050 Core::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
7051 Core::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
7052 Core::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
7053 Core::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
7054 Core::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
7055 Core::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
7056 Core::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
7057 Core::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
7058 Core::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
7059 Core::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
7060 Core::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
7061 Core::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
7062 Core::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
7063 Core::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
7064 Core::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
7065 Core::RightRotate16 => f.write_str("right_rotate_16"),
7066 Core::RightRotate32 => f.write_str("right_rotate_32"),
7067 Core::RightRotate64 => f.write_str("right_rotate_64"),
7068 Core::RightRotate8 => f.write_str("right_rotate_8"),
7069 Core::RightShift16 => f.write_str("right_shift_16"),
7070 Core::RightShift32 => f.write_str("right_shift_32"),
7071 Core::RightShift64 => f.write_str("right_shift_64"),
7072 Core::RightShift8 => f.write_str("right_shift_8"),
7073 Core::RightShiftWith16 => f.write_str("right_shift_with_16"),
7074 Core::RightShiftWith32 => f.write_str("right_shift_with_32"),
7075 Core::RightShiftWith64 => f.write_str("right_shift_with_64"),
7076 Core::RightShiftWith8 => f.write_str("right_shift_with_8"),
7077 Core::Rightmost16_1 => f.write_str("rightmost_16_1"),
7078 Core::Rightmost16_2 => f.write_str("rightmost_16_2"),
7079 Core::Rightmost16_4 => f.write_str("rightmost_16_4"),
7080 Core::Rightmost16_8 => f.write_str("rightmost_16_8"),
7081 Core::Rightmost32_1 => f.write_str("rightmost_32_1"),
7082 Core::Rightmost32_16 => f.write_str("rightmost_32_16"),
7083 Core::Rightmost32_2 => f.write_str("rightmost_32_2"),
7084 Core::Rightmost32_4 => f.write_str("rightmost_32_4"),
7085 Core::Rightmost32_8 => f.write_str("rightmost_32_8"),
7086 Core::Rightmost64_1 => f.write_str("rightmost_64_1"),
7087 Core::Rightmost64_16 => f.write_str("rightmost_64_16"),
7088 Core::Rightmost64_2 => f.write_str("rightmost_64_2"),
7089 Core::Rightmost64_32 => f.write_str("rightmost_64_32"),
7090 Core::Rightmost64_4 => f.write_str("rightmost_64_4"),
7091 Core::Rightmost64_8 => f.write_str("rightmost_64_8"),
7092 Core::Rightmost8_1 => f.write_str("rightmost_8_1"),
7093 Core::Rightmost8_2 => f.write_str("rightmost_8_2"),
7094 Core::Rightmost8_4 => f.write_str("rightmost_8_4"),
7095 Core::ScalarAdd => f.write_str("scalar_add"),
7096 Core::ScalarInvert => f.write_str("scalar_invert"),
7097 Core::ScalarIsZero => f.write_str("scalar_is_zero"),
7098 Core::ScalarMultiply => f.write_str("scalar_multiply"),
7099 Core::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
7100 Core::ScalarNegate => f.write_str("scalar_negate"),
7101 Core::ScalarNormalize => f.write_str("scalar_normalize"),
7102 Core::ScalarSquare => f.write_str("scalar_square"),
7103 Core::Scale => f.write_str("scale"),
7104 Core::Sha256Block => f.write_str("sha_256_block"),
7105 Core::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
7106 Core::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
7107 Core::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
7108 Core::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
7109 Core::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
7110 Core::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
7111 Core::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
7112 Core::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
7113 Core::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
7114 Core::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
7115 Core::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
7116 Core::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
7117 Core::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
7118 Core::Sha256Iv => f.write_str("sha_256_iv"),
7119 Core::Some1 => f.write_str("some_1"),
7120 Core::Some16 => f.write_str("some_16"),
7121 Core::Some32 => f.write_str("some_32"),
7122 Core::Some64 => f.write_str("some_64"),
7123 Core::Some8 => f.write_str("some_8"),
7124 Core::Subtract16 => f.write_str("subtract_16"),
7125 Core::Subtract32 => f.write_str("subtract_32"),
7126 Core::Subtract64 => f.write_str("subtract_64"),
7127 Core::Subtract8 => f.write_str("subtract_8"),
7128 Core::Swu => f.write_str("swu"),
7129 Core::TapdataInit => f.write_str("tapdata_init"),
7130 Core::Verify => f.write_str("verify"),
7131 Core::Xor1 => f.write_str("xor_1"),
7132 Core::Xor16 => f.write_str("xor_16"),
7133 Core::Xor32 => f.write_str("xor_32"),
7134 Core::Xor64 => f.write_str("xor_64"),
7135 Core::Xor8 => f.write_str("xor_8"),
7136 Core::XorXor1 => f.write_str("xor_xor_1"),
7137 Core::XorXor16 => f.write_str("xor_xor_16"),
7138 Core::XorXor32 => f.write_str("xor_xor_32"),
7139 Core::XorXor64 => f.write_str("xor_xor_64"),
7140 Core::XorXor8 => f.write_str("xor_xor_8"),
7141 }
7142 }
7143}
7144
7145impl str::FromStr for Core {
7146 type Err = crate::Error;
7147
7148 fn from_str(s: &str) -> Result<Self, Self::Err> {
7149 match s {
7150 "add_16" => Ok(Core::Add16),
7151 "add_32" => Ok(Core::Add32),
7152 "add_64" => Ok(Core::Add64),
7153 "add_8" => Ok(Core::Add8),
7154 "all_16" => Ok(Core::All16),
7155 "all_32" => Ok(Core::All32),
7156 "all_64" => Ok(Core::All64),
7157 "all_8" => Ok(Core::All8),
7158 "and_1" => Ok(Core::And1),
7159 "and_16" => Ok(Core::And16),
7160 "and_32" => Ok(Core::And32),
7161 "and_64" => Ok(Core::And64),
7162 "and_8" => Ok(Core::And8),
7163 "bip_0340_verify" => Ok(Core::Bip0340Verify),
7164 "ch_1" => Ok(Core::Ch1),
7165 "ch_16" => Ok(Core::Ch16),
7166 "ch_32" => Ok(Core::Ch32),
7167 "ch_64" => Ok(Core::Ch64),
7168 "ch_8" => Ok(Core::Ch8),
7169 "check_sig_verify" => Ok(Core::CheckSigVerify),
7170 "complement_1" => Ok(Core::Complement1),
7171 "complement_16" => Ok(Core::Complement16),
7172 "complement_32" => Ok(Core::Complement32),
7173 "complement_64" => Ok(Core::Complement64),
7174 "complement_8" => Ok(Core::Complement8),
7175 "decompress" => Ok(Core::Decompress),
7176 "decrement_16" => Ok(Core::Decrement16),
7177 "decrement_32" => Ok(Core::Decrement32),
7178 "decrement_64" => Ok(Core::Decrement64),
7179 "decrement_8" => Ok(Core::Decrement8),
7180 "div_mod_128_64" => Ok(Core::DivMod128_64),
7181 "div_mod_16" => Ok(Core::DivMod16),
7182 "div_mod_32" => Ok(Core::DivMod32),
7183 "div_mod_64" => Ok(Core::DivMod64),
7184 "div_mod_8" => Ok(Core::DivMod8),
7185 "divide_16" => Ok(Core::Divide16),
7186 "divide_32" => Ok(Core::Divide32),
7187 "divide_64" => Ok(Core::Divide64),
7188 "divide_8" => Ok(Core::Divide8),
7189 "divides_16" => Ok(Core::Divides16),
7190 "divides_32" => Ok(Core::Divides32),
7191 "divides_64" => Ok(Core::Divides64),
7192 "divides_8" => Ok(Core::Divides8),
7193 "eq_1" => Ok(Core::Eq1),
7194 "eq_16" => Ok(Core::Eq16),
7195 "eq_256" => Ok(Core::Eq256),
7196 "eq_32" => Ok(Core::Eq32),
7197 "eq_64" => Ok(Core::Eq64),
7198 "eq_8" => Ok(Core::Eq8),
7199 "fe_add" => Ok(Core::FeAdd),
7200 "fe_invert" => Ok(Core::FeInvert),
7201 "fe_is_odd" => Ok(Core::FeIsOdd),
7202 "fe_is_zero" => Ok(Core::FeIsZero),
7203 "fe_multiply" => Ok(Core::FeMultiply),
7204 "fe_multiply_beta" => Ok(Core::FeMultiplyBeta),
7205 "fe_negate" => Ok(Core::FeNegate),
7206 "fe_normalize" => Ok(Core::FeNormalize),
7207 "fe_square" => Ok(Core::FeSquare),
7208 "fe_square_root" => Ok(Core::FeSquareRoot),
7209 "full_add_16" => Ok(Core::FullAdd16),
7210 "full_add_32" => Ok(Core::FullAdd32),
7211 "full_add_64" => Ok(Core::FullAdd64),
7212 "full_add_8" => Ok(Core::FullAdd8),
7213 "full_decrement_16" => Ok(Core::FullDecrement16),
7214 "full_decrement_32" => Ok(Core::FullDecrement32),
7215 "full_decrement_64" => Ok(Core::FullDecrement64),
7216 "full_decrement_8" => Ok(Core::FullDecrement8),
7217 "full_increment_16" => Ok(Core::FullIncrement16),
7218 "full_increment_32" => Ok(Core::FullIncrement32),
7219 "full_increment_64" => Ok(Core::FullIncrement64),
7220 "full_increment_8" => Ok(Core::FullIncrement8),
7221 "full_left_shift_16_1" => Ok(Core::FullLeftShift16_1),
7222 "full_left_shift_16_2" => Ok(Core::FullLeftShift16_2),
7223 "full_left_shift_16_4" => Ok(Core::FullLeftShift16_4),
7224 "full_left_shift_16_8" => Ok(Core::FullLeftShift16_8),
7225 "full_left_shift_32_1" => Ok(Core::FullLeftShift32_1),
7226 "full_left_shift_32_16" => Ok(Core::FullLeftShift32_16),
7227 "full_left_shift_32_2" => Ok(Core::FullLeftShift32_2),
7228 "full_left_shift_32_4" => Ok(Core::FullLeftShift32_4),
7229 "full_left_shift_32_8" => Ok(Core::FullLeftShift32_8),
7230 "full_left_shift_64_1" => Ok(Core::FullLeftShift64_1),
7231 "full_left_shift_64_16" => Ok(Core::FullLeftShift64_16),
7232 "full_left_shift_64_2" => Ok(Core::FullLeftShift64_2),
7233 "full_left_shift_64_32" => Ok(Core::FullLeftShift64_32),
7234 "full_left_shift_64_4" => Ok(Core::FullLeftShift64_4),
7235 "full_left_shift_64_8" => Ok(Core::FullLeftShift64_8),
7236 "full_left_shift_8_1" => Ok(Core::FullLeftShift8_1),
7237 "full_left_shift_8_2" => Ok(Core::FullLeftShift8_2),
7238 "full_left_shift_8_4" => Ok(Core::FullLeftShift8_4),
7239 "full_multiply_16" => Ok(Core::FullMultiply16),
7240 "full_multiply_32" => Ok(Core::FullMultiply32),
7241 "full_multiply_64" => Ok(Core::FullMultiply64),
7242 "full_multiply_8" => Ok(Core::FullMultiply8),
7243 "full_right_shift_16_1" => Ok(Core::FullRightShift16_1),
7244 "full_right_shift_16_2" => Ok(Core::FullRightShift16_2),
7245 "full_right_shift_16_4" => Ok(Core::FullRightShift16_4),
7246 "full_right_shift_16_8" => Ok(Core::FullRightShift16_8),
7247 "full_right_shift_32_1" => Ok(Core::FullRightShift32_1),
7248 "full_right_shift_32_16" => Ok(Core::FullRightShift32_16),
7249 "full_right_shift_32_2" => Ok(Core::FullRightShift32_2),
7250 "full_right_shift_32_4" => Ok(Core::FullRightShift32_4),
7251 "full_right_shift_32_8" => Ok(Core::FullRightShift32_8),
7252 "full_right_shift_64_1" => Ok(Core::FullRightShift64_1),
7253 "full_right_shift_64_16" => Ok(Core::FullRightShift64_16),
7254 "full_right_shift_64_2" => Ok(Core::FullRightShift64_2),
7255 "full_right_shift_64_32" => Ok(Core::FullRightShift64_32),
7256 "full_right_shift_64_4" => Ok(Core::FullRightShift64_4),
7257 "full_right_shift_64_8" => Ok(Core::FullRightShift64_8),
7258 "full_right_shift_8_1" => Ok(Core::FullRightShift8_1),
7259 "full_right_shift_8_2" => Ok(Core::FullRightShift8_2),
7260 "full_right_shift_8_4" => Ok(Core::FullRightShift8_4),
7261 "full_subtract_16" => Ok(Core::FullSubtract16),
7262 "full_subtract_32" => Ok(Core::FullSubtract32),
7263 "full_subtract_64" => Ok(Core::FullSubtract64),
7264 "full_subtract_8" => Ok(Core::FullSubtract8),
7265 "ge_is_on_curve" => Ok(Core::GeIsOnCurve),
7266 "ge_negate" => Ok(Core::GeNegate),
7267 "gej_add" => Ok(Core::GejAdd),
7268 "gej_double" => Ok(Core::GejDouble),
7269 "gej_equiv" => Ok(Core::GejEquiv),
7270 "gej_ge_add" => Ok(Core::GejGeAdd),
7271 "gej_ge_add_ex" => Ok(Core::GejGeAddEx),
7272 "gej_ge_equiv" => Ok(Core::GejGeEquiv),
7273 "gej_infinity" => Ok(Core::GejInfinity),
7274 "gej_is_infinity" => Ok(Core::GejIsInfinity),
7275 "gej_is_on_curve" => Ok(Core::GejIsOnCurve),
7276 "gej_negate" => Ok(Core::GejNegate),
7277 "gej_normalize" => Ok(Core::GejNormalize),
7278 "gej_rescale" => Ok(Core::GejRescale),
7279 "gej_x_equiv" => Ok(Core::GejXEquiv),
7280 "gej_y_is_odd" => Ok(Core::GejYIsOdd),
7281 "generate" => Ok(Core::Generate),
7282 "hash_to_curve" => Ok(Core::HashToCurve),
7283 "high_1" => Ok(Core::High1),
7284 "high_16" => Ok(Core::High16),
7285 "high_32" => Ok(Core::High32),
7286 "high_64" => Ok(Core::High64),
7287 "high_8" => Ok(Core::High8),
7288 "increment_16" => Ok(Core::Increment16),
7289 "increment_32" => Ok(Core::Increment32),
7290 "increment_64" => Ok(Core::Increment64),
7291 "increment_8" => Ok(Core::Increment8),
7292 "is_one_16" => Ok(Core::IsOne16),
7293 "is_one_32" => Ok(Core::IsOne32),
7294 "is_one_64" => Ok(Core::IsOne64),
7295 "is_one_8" => Ok(Core::IsOne8),
7296 "is_zero_16" => Ok(Core::IsZero16),
7297 "is_zero_32" => Ok(Core::IsZero32),
7298 "is_zero_64" => Ok(Core::IsZero64),
7299 "is_zero_8" => Ok(Core::IsZero8),
7300 "le_16" => Ok(Core::Le16),
7301 "le_32" => Ok(Core::Le32),
7302 "le_64" => Ok(Core::Le64),
7303 "le_8" => Ok(Core::Le8),
7304 "left_extend_16_32" => Ok(Core::LeftExtend16_32),
7305 "left_extend_16_64" => Ok(Core::LeftExtend16_64),
7306 "left_extend_1_16" => Ok(Core::LeftExtend1_16),
7307 "left_extend_1_32" => Ok(Core::LeftExtend1_32),
7308 "left_extend_1_64" => Ok(Core::LeftExtend1_64),
7309 "left_extend_1_8" => Ok(Core::LeftExtend1_8),
7310 "left_extend_32_64" => Ok(Core::LeftExtend32_64),
7311 "left_extend_8_16" => Ok(Core::LeftExtend8_16),
7312 "left_extend_8_32" => Ok(Core::LeftExtend8_32),
7313 "left_extend_8_64" => Ok(Core::LeftExtend8_64),
7314 "left_pad_high_16_32" => Ok(Core::LeftPadHigh16_32),
7315 "left_pad_high_16_64" => Ok(Core::LeftPadHigh16_64),
7316 "left_pad_high_1_16" => Ok(Core::LeftPadHigh1_16),
7317 "left_pad_high_1_32" => Ok(Core::LeftPadHigh1_32),
7318 "left_pad_high_1_64" => Ok(Core::LeftPadHigh1_64),
7319 "left_pad_high_1_8" => Ok(Core::LeftPadHigh1_8),
7320 "left_pad_high_32_64" => Ok(Core::LeftPadHigh32_64),
7321 "left_pad_high_8_16" => Ok(Core::LeftPadHigh8_16),
7322 "left_pad_high_8_32" => Ok(Core::LeftPadHigh8_32),
7323 "left_pad_high_8_64" => Ok(Core::LeftPadHigh8_64),
7324 "left_pad_low_16_32" => Ok(Core::LeftPadLow16_32),
7325 "left_pad_low_16_64" => Ok(Core::LeftPadLow16_64),
7326 "left_pad_low_1_16" => Ok(Core::LeftPadLow1_16),
7327 "left_pad_low_1_32" => Ok(Core::LeftPadLow1_32),
7328 "left_pad_low_1_64" => Ok(Core::LeftPadLow1_64),
7329 "left_pad_low_1_8" => Ok(Core::LeftPadLow1_8),
7330 "left_pad_low_32_64" => Ok(Core::LeftPadLow32_64),
7331 "left_pad_low_8_16" => Ok(Core::LeftPadLow8_16),
7332 "left_pad_low_8_32" => Ok(Core::LeftPadLow8_32),
7333 "left_pad_low_8_64" => Ok(Core::LeftPadLow8_64),
7334 "left_rotate_16" => Ok(Core::LeftRotate16),
7335 "left_rotate_32" => Ok(Core::LeftRotate32),
7336 "left_rotate_64" => Ok(Core::LeftRotate64),
7337 "left_rotate_8" => Ok(Core::LeftRotate8),
7338 "left_shift_16" => Ok(Core::LeftShift16),
7339 "left_shift_32" => Ok(Core::LeftShift32),
7340 "left_shift_64" => Ok(Core::LeftShift64),
7341 "left_shift_8" => Ok(Core::LeftShift8),
7342 "left_shift_with_16" => Ok(Core::LeftShiftWith16),
7343 "left_shift_with_32" => Ok(Core::LeftShiftWith32),
7344 "left_shift_with_64" => Ok(Core::LeftShiftWith64),
7345 "left_shift_with_8" => Ok(Core::LeftShiftWith8),
7346 "leftmost_16_1" => Ok(Core::Leftmost16_1),
7347 "leftmost_16_2" => Ok(Core::Leftmost16_2),
7348 "leftmost_16_4" => Ok(Core::Leftmost16_4),
7349 "leftmost_16_8" => Ok(Core::Leftmost16_8),
7350 "leftmost_32_1" => Ok(Core::Leftmost32_1),
7351 "leftmost_32_16" => Ok(Core::Leftmost32_16),
7352 "leftmost_32_2" => Ok(Core::Leftmost32_2),
7353 "leftmost_32_4" => Ok(Core::Leftmost32_4),
7354 "leftmost_32_8" => Ok(Core::Leftmost32_8),
7355 "leftmost_64_1" => Ok(Core::Leftmost64_1),
7356 "leftmost_64_16" => Ok(Core::Leftmost64_16),
7357 "leftmost_64_2" => Ok(Core::Leftmost64_2),
7358 "leftmost_64_32" => Ok(Core::Leftmost64_32),
7359 "leftmost_64_4" => Ok(Core::Leftmost64_4),
7360 "leftmost_64_8" => Ok(Core::Leftmost64_8),
7361 "leftmost_8_1" => Ok(Core::Leftmost8_1),
7362 "leftmost_8_2" => Ok(Core::Leftmost8_2),
7363 "leftmost_8_4" => Ok(Core::Leftmost8_4),
7364 "linear_combination_1" => Ok(Core::LinearCombination1),
7365 "linear_verify_1" => Ok(Core::LinearVerify1),
7366 "low_1" => Ok(Core::Low1),
7367 "low_16" => Ok(Core::Low16),
7368 "low_32" => Ok(Core::Low32),
7369 "low_64" => Ok(Core::Low64),
7370 "low_8" => Ok(Core::Low8),
7371 "lt_16" => Ok(Core::Lt16),
7372 "lt_32" => Ok(Core::Lt32),
7373 "lt_64" => Ok(Core::Lt64),
7374 "lt_8" => Ok(Core::Lt8),
7375 "maj_1" => Ok(Core::Maj1),
7376 "maj_16" => Ok(Core::Maj16),
7377 "maj_32" => Ok(Core::Maj32),
7378 "maj_64" => Ok(Core::Maj64),
7379 "maj_8" => Ok(Core::Maj8),
7380 "max_16" => Ok(Core::Max16),
7381 "max_32" => Ok(Core::Max32),
7382 "max_64" => Ok(Core::Max64),
7383 "max_8" => Ok(Core::Max8),
7384 "median_16" => Ok(Core::Median16),
7385 "median_32" => Ok(Core::Median32),
7386 "median_64" => Ok(Core::Median64),
7387 "median_8" => Ok(Core::Median8),
7388 "min_16" => Ok(Core::Min16),
7389 "min_32" => Ok(Core::Min32),
7390 "min_64" => Ok(Core::Min64),
7391 "min_8" => Ok(Core::Min8),
7392 "modulo_16" => Ok(Core::Modulo16),
7393 "modulo_32" => Ok(Core::Modulo32),
7394 "modulo_64" => Ok(Core::Modulo64),
7395 "modulo_8" => Ok(Core::Modulo8),
7396 "multiply_16" => Ok(Core::Multiply16),
7397 "multiply_32" => Ok(Core::Multiply32),
7398 "multiply_64" => Ok(Core::Multiply64),
7399 "multiply_8" => Ok(Core::Multiply8),
7400 "negate_16" => Ok(Core::Negate16),
7401 "negate_32" => Ok(Core::Negate32),
7402 "negate_64" => Ok(Core::Negate64),
7403 "negate_8" => Ok(Core::Negate8),
7404 "one_16" => Ok(Core::One16),
7405 "one_32" => Ok(Core::One32),
7406 "one_64" => Ok(Core::One64),
7407 "one_8" => Ok(Core::One8),
7408 "or_1" => Ok(Core::Or1),
7409 "or_16" => Ok(Core::Or16),
7410 "or_32" => Ok(Core::Or32),
7411 "or_64" => Ok(Core::Or64),
7412 "or_8" => Ok(Core::Or8),
7413 "parse_lock" => Ok(Core::ParseLock),
7414 "parse_sequence" => Ok(Core::ParseSequence),
7415 "point_verify_1" => Ok(Core::PointVerify1),
7416 "right_extend_16_32" => Ok(Core::RightExtend16_32),
7417 "right_extend_16_64" => Ok(Core::RightExtend16_64),
7418 "right_extend_32_64" => Ok(Core::RightExtend32_64),
7419 "right_extend_8_16" => Ok(Core::RightExtend8_16),
7420 "right_extend_8_32" => Ok(Core::RightExtend8_32),
7421 "right_extend_8_64" => Ok(Core::RightExtend8_64),
7422 "right_pad_high_16_32" => Ok(Core::RightPadHigh16_32),
7423 "right_pad_high_16_64" => Ok(Core::RightPadHigh16_64),
7424 "right_pad_high_1_16" => Ok(Core::RightPadHigh1_16),
7425 "right_pad_high_1_32" => Ok(Core::RightPadHigh1_32),
7426 "right_pad_high_1_64" => Ok(Core::RightPadHigh1_64),
7427 "right_pad_high_1_8" => Ok(Core::RightPadHigh1_8),
7428 "right_pad_high_32_64" => Ok(Core::RightPadHigh32_64),
7429 "right_pad_high_8_16" => Ok(Core::RightPadHigh8_16),
7430 "right_pad_high_8_32" => Ok(Core::RightPadHigh8_32),
7431 "right_pad_high_8_64" => Ok(Core::RightPadHigh8_64),
7432 "right_pad_low_16_32" => Ok(Core::RightPadLow16_32),
7433 "right_pad_low_16_64" => Ok(Core::RightPadLow16_64),
7434 "right_pad_low_1_16" => Ok(Core::RightPadLow1_16),
7435 "right_pad_low_1_32" => Ok(Core::RightPadLow1_32),
7436 "right_pad_low_1_64" => Ok(Core::RightPadLow1_64),
7437 "right_pad_low_1_8" => Ok(Core::RightPadLow1_8),
7438 "right_pad_low_32_64" => Ok(Core::RightPadLow32_64),
7439 "right_pad_low_8_16" => Ok(Core::RightPadLow8_16),
7440 "right_pad_low_8_32" => Ok(Core::RightPadLow8_32),
7441 "right_pad_low_8_64" => Ok(Core::RightPadLow8_64),
7442 "right_rotate_16" => Ok(Core::RightRotate16),
7443 "right_rotate_32" => Ok(Core::RightRotate32),
7444 "right_rotate_64" => Ok(Core::RightRotate64),
7445 "right_rotate_8" => Ok(Core::RightRotate8),
7446 "right_shift_16" => Ok(Core::RightShift16),
7447 "right_shift_32" => Ok(Core::RightShift32),
7448 "right_shift_64" => Ok(Core::RightShift64),
7449 "right_shift_8" => Ok(Core::RightShift8),
7450 "right_shift_with_16" => Ok(Core::RightShiftWith16),
7451 "right_shift_with_32" => Ok(Core::RightShiftWith32),
7452 "right_shift_with_64" => Ok(Core::RightShiftWith64),
7453 "right_shift_with_8" => Ok(Core::RightShiftWith8),
7454 "rightmost_16_1" => Ok(Core::Rightmost16_1),
7455 "rightmost_16_2" => Ok(Core::Rightmost16_2),
7456 "rightmost_16_4" => Ok(Core::Rightmost16_4),
7457 "rightmost_16_8" => Ok(Core::Rightmost16_8),
7458 "rightmost_32_1" => Ok(Core::Rightmost32_1),
7459 "rightmost_32_16" => Ok(Core::Rightmost32_16),
7460 "rightmost_32_2" => Ok(Core::Rightmost32_2),
7461 "rightmost_32_4" => Ok(Core::Rightmost32_4),
7462 "rightmost_32_8" => Ok(Core::Rightmost32_8),
7463 "rightmost_64_1" => Ok(Core::Rightmost64_1),
7464 "rightmost_64_16" => Ok(Core::Rightmost64_16),
7465 "rightmost_64_2" => Ok(Core::Rightmost64_2),
7466 "rightmost_64_32" => Ok(Core::Rightmost64_32),
7467 "rightmost_64_4" => Ok(Core::Rightmost64_4),
7468 "rightmost_64_8" => Ok(Core::Rightmost64_8),
7469 "rightmost_8_1" => Ok(Core::Rightmost8_1),
7470 "rightmost_8_2" => Ok(Core::Rightmost8_2),
7471 "rightmost_8_4" => Ok(Core::Rightmost8_4),
7472 "scalar_add" => Ok(Core::ScalarAdd),
7473 "scalar_invert" => Ok(Core::ScalarInvert),
7474 "scalar_is_zero" => Ok(Core::ScalarIsZero),
7475 "scalar_multiply" => Ok(Core::ScalarMultiply),
7476 "scalar_multiply_lambda" => Ok(Core::ScalarMultiplyLambda),
7477 "scalar_negate" => Ok(Core::ScalarNegate),
7478 "scalar_normalize" => Ok(Core::ScalarNormalize),
7479 "scalar_square" => Ok(Core::ScalarSquare),
7480 "scale" => Ok(Core::Scale),
7481 "sha_256_block" => Ok(Core::Sha256Block),
7482 "sha_256_ctx_8_add_1" => Ok(Core::Sha256Ctx8Add1),
7483 "sha_256_ctx_8_add_128" => Ok(Core::Sha256Ctx8Add128),
7484 "sha_256_ctx_8_add_16" => Ok(Core::Sha256Ctx8Add16),
7485 "sha_256_ctx_8_add_2" => Ok(Core::Sha256Ctx8Add2),
7486 "sha_256_ctx_8_add_256" => Ok(Core::Sha256Ctx8Add256),
7487 "sha_256_ctx_8_add_32" => Ok(Core::Sha256Ctx8Add32),
7488 "sha_256_ctx_8_add_4" => Ok(Core::Sha256Ctx8Add4),
7489 "sha_256_ctx_8_add_512" => Ok(Core::Sha256Ctx8Add512),
7490 "sha_256_ctx_8_add_64" => Ok(Core::Sha256Ctx8Add64),
7491 "sha_256_ctx_8_add_8" => Ok(Core::Sha256Ctx8Add8),
7492 "sha_256_ctx_8_add_buffer_511" => Ok(Core::Sha256Ctx8AddBuffer511),
7493 "sha_256_ctx_8_finalize" => Ok(Core::Sha256Ctx8Finalize),
7494 "sha_256_ctx_8_init" => Ok(Core::Sha256Ctx8Init),
7495 "sha_256_iv" => Ok(Core::Sha256Iv),
7496 "some_1" => Ok(Core::Some1),
7497 "some_16" => Ok(Core::Some16),
7498 "some_32" => Ok(Core::Some32),
7499 "some_64" => Ok(Core::Some64),
7500 "some_8" => Ok(Core::Some8),
7501 "subtract_16" => Ok(Core::Subtract16),
7502 "subtract_32" => Ok(Core::Subtract32),
7503 "subtract_64" => Ok(Core::Subtract64),
7504 "subtract_8" => Ok(Core::Subtract8),
7505 "swu" => Ok(Core::Swu),
7506 "tapdata_init" => Ok(Core::TapdataInit),
7507 "verify" => Ok(Core::Verify),
7508 "xor_1" => Ok(Core::Xor1),
7509 "xor_16" => Ok(Core::Xor16),
7510 "xor_32" => Ok(Core::Xor32),
7511 "xor_64" => Ok(Core::Xor64),
7512 "xor_8" => Ok(Core::Xor8),
7513 "xor_xor_1" => Ok(Core::XorXor1),
7514 "xor_xor_16" => Ok(Core::XorXor16),
7515 "xor_xor_32" => Ok(Core::XorXor32),
7516 "xor_xor_64" => Ok(Core::XorXor64),
7517 "xor_xor_8" => Ok(Core::XorXor8),
7518 x => Err(crate::Error::InvalidJetName(x.to_owned())),
7519 }
7520 }
7521}