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 fn cmr(&self) -> Cmr {
764 let bytes = match self {
765 Core::Add16 => [
766 0x49, 0x42, 0x5a, 0x86, 0xe2, 0x0a, 0x67, 0x6d, 0x8b, 0x87, 0xe3, 0xc1, 0xa9, 0xb8,
767 0xea, 0x6e, 0xc7, 0x5d, 0x85, 0x9c, 0x12, 0xc5, 0x1b, 0xcb, 0x7f, 0xa9, 0xf9, 0x69,
768 0x12, 0xc3, 0x49, 0xcf,
769 ],
770 Core::Add32 => [
771 0x46, 0x68, 0xcd, 0x55, 0xe8, 0xd1, 0x59, 0x19, 0x53, 0x32, 0x70, 0x14, 0xec, 0x64,
772 0xc8, 0xe7, 0xd5, 0x2b, 0x86, 0xb5, 0x3e, 0x11, 0xc0, 0x14, 0x57, 0xea, 0xf2, 0xc3,
773 0xd3, 0xce, 0xbf, 0x9f,
774 ],
775 Core::Add64 => [
776 0xbe, 0x2b, 0x75, 0x19, 0x30, 0x3a, 0x67, 0xee, 0xa6, 0xb4, 0x82, 0x95, 0x0e, 0xda,
777 0x83, 0x43, 0x5e, 0x1d, 0xe8, 0x55, 0x9c, 0x39, 0x4a, 0x23, 0x62, 0x22, 0xff, 0x5b,
778 0xf0, 0x89, 0xd3, 0x46,
779 ],
780 Core::Add8 => [
781 0xdf, 0xa1, 0x79, 0xad, 0xf4, 0x55, 0x0b, 0x28, 0x48, 0x73, 0xbf, 0x30, 0x12, 0x3e,
782 0x0d, 0x4e, 0x54, 0x06, 0x9b, 0x08, 0x58, 0x34, 0xce, 0x56, 0x58, 0x15, 0xef, 0x7e,
783 0x45, 0x78, 0x4a, 0xcb,
784 ],
785 Core::All16 => [
786 0x24, 0xf4, 0x82, 0xa5, 0x13, 0xd3, 0x33, 0x62, 0x01, 0x5d, 0x28, 0xdf, 0x4b, 0xb6,
787 0xc3, 0xee, 0x08, 0xab, 0x8a, 0xfb, 0xbd, 0x25, 0x57, 0x1f, 0x0e, 0xa8, 0x9d, 0x8c,
788 0xab, 0xa3, 0x14, 0x04,
789 ],
790 Core::All32 => [
791 0xa7, 0x16, 0x52, 0x2d, 0x0f, 0x37, 0x87, 0xc8, 0xb4, 0xd5, 0x07, 0x64, 0x7f, 0x1f,
792 0x80, 0x7b, 0x67, 0xf3, 0x20, 0xd6, 0xeb, 0x67, 0xb8, 0x4b, 0x60, 0x9c, 0xec, 0x1d,
793 0x2f, 0x12, 0x21, 0x8a,
794 ],
795 Core::All64 => [
796 0x7a, 0xee, 0xfe, 0x2e, 0xce, 0x24, 0xba, 0xb3, 0x7c, 0x6e, 0x54, 0x30, 0xee, 0xd4,
797 0x19, 0xfc, 0xd5, 0xf0, 0x37, 0x91, 0x2d, 0x17, 0x70, 0xcb, 0x7d, 0x65, 0x20, 0xdc,
798 0xe5, 0x25, 0x29, 0x1a,
799 ],
800 Core::All8 => [
801 0x46, 0x37, 0xf4, 0x0e, 0x5f, 0x47, 0x26, 0xb0, 0x05, 0x70, 0x76, 0x5a, 0xc7, 0x94,
802 0xe2, 0x9e, 0xd1, 0xbb, 0x26, 0x55, 0xff, 0xc4, 0x12, 0xb2, 0xdc, 0x41, 0x25, 0x8e,
803 0x41, 0xaa, 0xc6, 0x24,
804 ],
805 Core::And1 => [
806 0x10, 0x68, 0x4d, 0x0d, 0xd7, 0x2c, 0xb0, 0xa8, 0x26, 0xa8, 0x63, 0x83, 0x4e, 0x01,
807 0x1f, 0x50, 0xfa, 0x0d, 0x55, 0x8b, 0xa7, 0x7d, 0x6b, 0x9f, 0x49, 0xa1, 0xac, 0x22,
808 0x90, 0x2a, 0x6a, 0xd0,
809 ],
810 Core::And16 => [
811 0x37, 0x3c, 0x73, 0x0f, 0xad, 0x3e, 0x88, 0x47, 0x99, 0x1a, 0xa4, 0x17, 0xd9, 0xf0,
812 0x80, 0xee, 0x1c, 0xb8, 0x8a, 0x7f, 0x72, 0x06, 0xf3, 0xfa, 0x84, 0x0b, 0x19, 0x50,
813 0x77, 0x61, 0xfb, 0x23,
814 ],
815 Core::And32 => [
816 0x13, 0xb0, 0x2c, 0x4c, 0x60, 0xae, 0x6e, 0xa4, 0x91, 0x16, 0x16, 0x49, 0xac, 0xf9,
817 0xa4, 0x7a, 0x70, 0x25, 0xaf, 0x84, 0x7d, 0x5f, 0x58, 0x1e, 0x6f, 0x1c, 0xcc, 0xfb,
818 0x21, 0xd3, 0x00, 0x1d,
819 ],
820 Core::And64 => [
821 0x92, 0x18, 0x55, 0x35, 0xd4, 0x50, 0x54, 0x07, 0xde, 0xa3, 0xc8, 0xa6, 0x08, 0x26,
822 0xed, 0xe6, 0x4a, 0x8f, 0xbb, 0x3d, 0xb4, 0x86, 0xd5, 0x6f, 0x64, 0x2d, 0x21, 0x7c,
823 0x29, 0xcb, 0xd7, 0x95,
824 ],
825 Core::And8 => [
826 0x26, 0x9a, 0x1b, 0x44, 0x62, 0x66, 0xf8, 0xf4, 0xa4, 0xa3, 0x8f, 0xa7, 0xe7, 0xe3,
827 0x91, 0x82, 0xf1, 0x52, 0x14, 0x36, 0x14, 0x2b, 0xad, 0xed, 0xf3, 0xaa, 0x63, 0xfb,
828 0x2f, 0x17, 0x2d, 0x2f,
829 ],
830 Core::Bip0340Verify => [
831 0x49, 0x15, 0x65, 0xfe, 0x23, 0xa7, 0xbd, 0xc1, 0x84, 0x2b, 0xe7, 0x49, 0x50, 0x93,
832 0x37, 0xf9, 0x68, 0x90, 0xd5, 0xb3, 0x58, 0xb3, 0x65, 0x20, 0x90, 0xda, 0x55, 0x66,
833 0x54, 0xe2, 0x95, 0x49,
834 ],
835 Core::Ch1 => [
836 0x73, 0xb2, 0xa9, 0x81, 0xd7, 0x21, 0x98, 0x6f, 0x8c, 0xde, 0xd6, 0x97, 0xe0, 0x63,
837 0x05, 0xd4, 0x58, 0x54, 0x10, 0x2d, 0xff, 0x20, 0xc0, 0xe5, 0xb9, 0x8a, 0xe1, 0x76,
838 0x23, 0x2f, 0xf2, 0x5b,
839 ],
840 Core::Ch16 => [
841 0x78, 0xde, 0x46, 0x5e, 0x61, 0xd9, 0xa5, 0x0f, 0x78, 0x25, 0x2f, 0xf4, 0xab, 0x23,
842 0xc9, 0xe6, 0x3a, 0xe6, 0x8c, 0x76, 0x9d, 0x36, 0x66, 0x12, 0x71, 0x20, 0x7d, 0xc6,
843 0x93, 0xf4, 0x69, 0xb4,
844 ],
845 Core::Ch32 => [
846 0xed, 0x93, 0xbe, 0xf1, 0xf6, 0x6e, 0x3a, 0x75, 0xe6, 0x12, 0x06, 0x02, 0xec, 0xee,
847 0x67, 0x40, 0x65, 0x3e, 0x7b, 0xd4, 0x6e, 0x07, 0xeb, 0x77, 0x14, 0x4e, 0xf1, 0xbb,
848 0x2c, 0x9d, 0xe5, 0x3d,
849 ],
850 Core::Ch64 => [
851 0xce, 0xd0, 0x07, 0x9b, 0x0b, 0xd1, 0xcc, 0x00, 0x20, 0x9a, 0x7c, 0xbc, 0x23, 0xf1,
852 0x3d, 0xfd, 0x20, 0x28, 0x08, 0xf0, 0xf5, 0x25, 0x7d, 0x8a, 0x50, 0xac, 0x54, 0x3e,
853 0x64, 0xee, 0x3a, 0x05,
854 ],
855 Core::Ch8 => [
856 0xc7, 0x07, 0xca, 0x72, 0x3e, 0x24, 0xf6, 0xb2, 0x5b, 0xf3, 0x94, 0xa9, 0x9a, 0x4d,
857 0x75, 0xe8, 0x13, 0x79, 0xb4, 0x67, 0x84, 0x38, 0xac, 0x78, 0x9d, 0xee, 0x18, 0x8e,
858 0xdc, 0xce, 0x75, 0xfa,
859 ],
860 Core::CheckSigVerify => [
861 0xb5, 0x80, 0x15, 0x54, 0x6d, 0x28, 0x52, 0x66, 0x5d, 0xd2, 0x1b, 0xf1, 0x12, 0x66,
862 0x26, 0x70, 0x20, 0xfa, 0x5e, 0x27, 0x50, 0x01, 0xdd, 0x46, 0x18, 0xfa, 0x41, 0x56,
863 0x25, 0x95, 0x2e, 0x68,
864 ],
865 Core::Complement1 => [
866 0x1b, 0xcf, 0xae, 0x13, 0xd5, 0xd2, 0x37, 0xa0, 0xbb, 0x9b, 0x1d, 0x75, 0x32, 0x04,
867 0x74, 0x62, 0xb2, 0x76, 0x90, 0xde, 0x5c, 0xac, 0x0e, 0x20, 0x19, 0x29, 0x89, 0x64,
868 0x57, 0x93, 0x40, 0x60,
869 ],
870 Core::Complement16 => [
871 0x81, 0xad, 0x4d, 0x2c, 0x3d, 0x16, 0xbf, 0x34, 0x0a, 0xf3, 0x88, 0x6d, 0x35, 0x5c,
872 0xc5, 0xbd, 0x1d, 0x59, 0x67, 0xe1, 0x6a, 0xce, 0x92, 0x4f, 0x19, 0xec, 0xf7, 0xd4,
873 0x86, 0xd6, 0xc7, 0xe9,
874 ],
875 Core::Complement32 => [
876 0x13, 0x74, 0x2c, 0x18, 0x04, 0xa9, 0x6e, 0x6c, 0x03, 0x95, 0x28, 0xbf, 0xd0, 0x3b,
877 0x8c, 0xf2, 0xb4, 0x62, 0x52, 0x6b, 0xb1, 0x81, 0xa3, 0xd8, 0xb4, 0x32, 0xf9, 0x9a,
878 0xc4, 0xf5, 0xa7, 0xef,
879 ],
880 Core::Complement64 => [
881 0x65, 0xb7, 0xbd, 0x09, 0x36, 0x39, 0xc5, 0x6d, 0xa2, 0x85, 0xce, 0xfa, 0x2d, 0x04,
882 0x64, 0x64, 0x5e, 0x14, 0xdd, 0x13, 0x64, 0x2f, 0x34, 0x95, 0x7d, 0x47, 0x37, 0xbd,
883 0x52, 0xfa, 0xc5, 0x88,
884 ],
885 Core::Complement8 => [
886 0x95, 0x4b, 0x70, 0xdc, 0xec, 0x53, 0x9e, 0x6b, 0x67, 0xdf, 0xfe, 0xc5, 0x3c, 0xf2,
887 0x4a, 0x66, 0x99, 0x39, 0x60, 0x8b, 0x22, 0x3f, 0x5f, 0x8b, 0x6d, 0x12, 0x9d, 0xaa,
888 0x48, 0xca, 0x1c, 0xf0,
889 ],
890 Core::Decompress => [
891 0x89, 0x00, 0x56, 0xdf, 0x82, 0x8a, 0x76, 0x6e, 0xe9, 0xf6, 0x56, 0x07, 0x22, 0x1e,
892 0x89, 0x46, 0xfa, 0x77, 0xc2, 0x56, 0xbb, 0x96, 0xe2, 0x31, 0xe1, 0x94, 0xd3, 0x00,
893 0x8c, 0xf3, 0x56, 0xf6,
894 ],
895 Core::Decrement16 => [
896 0x35, 0xfd, 0xa3, 0x8b, 0x67, 0x2c, 0x38, 0x31, 0xd8, 0xca, 0x11, 0xa4, 0xf3, 0xa9,
897 0x59, 0x62, 0x22, 0x52, 0x9e, 0xb1, 0xc1, 0x5f, 0x8c, 0x70, 0x50, 0x13, 0x97, 0x7d,
898 0x7d, 0xfb, 0x5d, 0x8b,
899 ],
900 Core::Decrement32 => [
901 0x3b, 0x2b, 0x19, 0x39, 0x55, 0x22, 0x84, 0xf6, 0x14, 0x69, 0x4b, 0xa1, 0x8d, 0xce,
902 0x70, 0xce, 0xe4, 0x76, 0xff, 0x42, 0xdc, 0xd0, 0x89, 0xe1, 0xa3, 0xc0, 0xa4, 0x2b,
903 0xeb, 0xd1, 0x08, 0xf6,
904 ],
905 Core::Decrement64 => [
906 0x7e, 0xf7, 0xbd, 0xd3, 0x5d, 0xb6, 0x85, 0xae, 0x99, 0x05, 0x53, 0x37, 0x35, 0xa2,
907 0xc7, 0xa7, 0xcc, 0xbc, 0x17, 0x08, 0xae, 0x63, 0x6f, 0x93, 0x1b, 0x5c, 0xe0, 0x26,
908 0xe5, 0xa1, 0x7f, 0xed,
909 ],
910 Core::Decrement8 => [
911 0xe3, 0x64, 0xf2, 0xe5, 0xc0, 0x8a, 0xe0, 0x11, 0x8e, 0xbe, 0x99, 0x3e, 0x8b, 0x3c,
912 0x95, 0x8c, 0x2b, 0xcc, 0x60, 0x62, 0xa3, 0x3b, 0xaa, 0xb9, 0x28, 0xc0, 0x4b, 0x3e,
913 0xc9, 0x32, 0xf5, 0x1b,
914 ],
915 Core::DivMod128_64 => [
916 0x9a, 0x94, 0x43, 0xa2, 0xb5, 0x41, 0xe2, 0x9f, 0x27, 0x2f, 0xfd, 0x56, 0x7d, 0x1b,
917 0xf7, 0x42, 0xd6, 0x8c, 0xcb, 0xe9, 0x53, 0x8a, 0x87, 0x29, 0x1b, 0x0c, 0xa6, 0x38,
918 0x15, 0x63, 0xac, 0x2c,
919 ],
920 Core::DivMod16 => [
921 0x39, 0xbc, 0xb5, 0xc0, 0x1d, 0xc1, 0x80, 0x5c, 0x49, 0x19, 0x89, 0x5c, 0xb5, 0x9e,
922 0x8f, 0x3b, 0x41, 0x44, 0x67, 0x17, 0xf7, 0xff, 0x48, 0xfd, 0xc9, 0x37, 0xdd, 0x03,
923 0x80, 0x24, 0xa0, 0x8a,
924 ],
925 Core::DivMod32 => [
926 0xfb, 0x12, 0x02, 0xf4, 0xe8, 0x66, 0x3a, 0x87, 0xf5, 0x68, 0x99, 0x2a, 0x18, 0x50,
927 0x24, 0xc7, 0x0b, 0x4f, 0x07, 0x9f, 0xbe, 0x95, 0x30, 0x01, 0x0f, 0x6d, 0xb2, 0x84,
928 0x21, 0x8a, 0xf6, 0xcd,
929 ],
930 Core::DivMod64 => [
931 0x67, 0x64, 0xdf, 0x5e, 0x2a, 0xa0, 0x30, 0x32, 0x6e, 0xe5, 0x44, 0xc6, 0xe5, 0x3f,
932 0xf3, 0x8e, 0xf0, 0xb2, 0x85, 0x17, 0x91, 0x5e, 0xec, 0x65, 0xc7, 0x2e, 0xa5, 0x7a,
933 0x12, 0x98, 0x28, 0xeb,
934 ],
935 Core::DivMod8 => [
936 0xd3, 0x00, 0x24, 0x4e, 0x48, 0x0d, 0xd9, 0x74, 0x12, 0x13, 0xe4, 0xcb, 0x0e, 0xba,
937 0x83, 0x6d, 0x30, 0x59, 0xe7, 0x78, 0xb8, 0x12, 0x2f, 0x78, 0x90, 0x03, 0x26, 0x73,
938 0x73, 0x9c, 0x6a, 0x2c,
939 ],
940 Core::Divide16 => [
941 0x52, 0xab, 0xfe, 0xf1, 0x79, 0x75, 0x4c, 0x90, 0xf9, 0xa4, 0x26, 0x0f, 0x32, 0x3a,
942 0x8c, 0xa4, 0x95, 0x15, 0x92, 0x90, 0x2b, 0x8e, 0xcb, 0xd6, 0x4b, 0xa4, 0x26, 0x56,
943 0xfa, 0xc0, 0x59, 0x68,
944 ],
945 Core::Divide32 => [
946 0x4a, 0x8a, 0xe5, 0x35, 0x44, 0xe1, 0x47, 0xed, 0x02, 0x25, 0x04, 0x23, 0x79, 0x34,
947 0xcc, 0x25, 0x44, 0x79, 0xbc, 0xf9, 0x3d, 0xe1, 0xe1, 0x97, 0x4d, 0xda, 0xb3, 0xbb,
948 0x51, 0x6e, 0x60, 0x6c,
949 ],
950 Core::Divide64 => [
951 0xd7, 0x02, 0x5d, 0x05, 0xad, 0xfa, 0xe6, 0x6b, 0x47, 0x10, 0xd0, 0xff, 0x1e, 0x87,
952 0xe8, 0x28, 0x15, 0x57, 0x3e, 0x9c, 0xb6, 0x31, 0xb4, 0xc7, 0xd1, 0x3d, 0x2f, 0x1b,
953 0xe4, 0xdd, 0x26, 0xd2,
954 ],
955 Core::Divide8 => [
956 0x40, 0xcd, 0x1d, 0xac, 0xea, 0x24, 0x66, 0x9b, 0x6a, 0x58, 0x9b, 0x61, 0x47, 0x54,
957 0x74, 0xaf, 0x31, 0xd1, 0x4f, 0x8d, 0x46, 0x87, 0x70, 0x84, 0x52, 0xd3, 0xdf, 0x37,
958 0x30, 0x25, 0x31, 0x26,
959 ],
960 Core::Divides16 => [
961 0x10, 0xbb, 0x18, 0x18, 0x0e, 0xab, 0x5b, 0xad, 0xdc, 0x16, 0x5d, 0x03, 0x37, 0xc4,
962 0xad, 0xa0, 0x88, 0xe1, 0x57, 0xb1, 0xaa, 0x67, 0x83, 0x34, 0x2a, 0x45, 0x20, 0xa3,
963 0x24, 0xdd, 0x9d, 0x2b,
964 ],
965 Core::Divides32 => [
966 0xf5, 0xe8, 0xe7, 0x8c, 0x82, 0x76, 0x9a, 0x48, 0xc9, 0x10, 0x3e, 0x44, 0xdd, 0xb4,
967 0x7f, 0x84, 0x1d, 0x76, 0x93, 0xb0, 0x41, 0x9e, 0x5e, 0x7d, 0xa4, 0xe6, 0x8b, 0x78,
968 0xb2, 0x37, 0xa5, 0x72,
969 ],
970 Core::Divides64 => [
971 0x9e, 0xbd, 0x55, 0xfa, 0xe4, 0x18, 0x88, 0x5e, 0xea, 0x04, 0xc3, 0xcd, 0xff, 0xf5,
972 0x31, 0xb7, 0xd7, 0x14, 0xd0, 0x59, 0x4f, 0xa7, 0xda, 0x87, 0xeb, 0x65, 0x55, 0xd3,
973 0x6b, 0x95, 0x3d, 0xb2,
974 ],
975 Core::Divides8 => [
976 0xa2, 0x36, 0xbc, 0x3e, 0x5c, 0xf4, 0xd2, 0x56, 0x40, 0x8b, 0xa3, 0x8c, 0x1e, 0xae,
977 0xe7, 0x36, 0x9a, 0x9c, 0x40, 0x2f, 0x74, 0xbc, 0xd1, 0xc8, 0x02, 0xf9, 0x09, 0x4f,
978 0xbf, 0x36, 0x80, 0x3d,
979 ],
980 Core::Eq1 => [
981 0x65, 0x49, 0xf9, 0x86, 0x20, 0x3a, 0x64, 0x97, 0x35, 0x6e, 0x43, 0x2b, 0x2a, 0xa1,
982 0x60, 0xd6, 0xee, 0x87, 0x0b, 0x11, 0x19, 0x08, 0x65, 0xbd, 0x36, 0xa4, 0x7c, 0xb0,
983 0x47, 0x04, 0x33, 0xa5,
984 ],
985 Core::Eq16 => [
986 0x0c, 0x54, 0x02, 0xb0, 0xad, 0xc8, 0xfc, 0x65, 0x70, 0x1b, 0xb7, 0x5b, 0x32, 0x54,
987 0xc8, 0x35, 0xf8, 0xfe, 0xc1, 0x30, 0x81, 0xcd, 0x35, 0xe1, 0x32, 0x8f, 0x2b, 0xd7,
988 0xdb, 0xd2, 0x3f, 0xa6,
989 ],
990 Core::Eq256 => [
991 0x26, 0x0e, 0x1d, 0x13, 0x6d, 0xd7, 0x44, 0xfc, 0xb0, 0x50, 0x7a, 0x2d, 0x27, 0x70,
992 0x27, 0xa7, 0x72, 0x43, 0x54, 0xeb, 0x17, 0x6b, 0x2f, 0xbf, 0x31, 0xc6, 0xc7, 0xd7,
993 0xfb, 0x3e, 0xcd, 0x6f,
994 ],
995 Core::Eq32 => [
996 0xf5, 0xd6, 0xed, 0xc8, 0xb6, 0x16, 0x4e, 0x12, 0x5b, 0xbb, 0xef, 0x08, 0xc9, 0xe0,
997 0x8a, 0x1e, 0x6f, 0xd4, 0x92, 0xf5, 0xbd, 0xca, 0x6f, 0xdc, 0x8b, 0x5f, 0x5a, 0x6f,
998 0x05, 0xc5, 0xab, 0x96,
999 ],
1000 Core::Eq64 => [
1001 0x1f, 0x93, 0xac, 0xb8, 0x09, 0x2f, 0xa0, 0x6d, 0xea, 0xf3, 0xc3, 0x87, 0xf5, 0x4a,
1002 0x18, 0xff, 0xea, 0xa6, 0x9a, 0x47, 0xa6, 0xf5, 0xca, 0xf4, 0xae, 0x49, 0x7e, 0x5c,
1003 0xc2, 0xb3, 0x6c, 0x43,
1004 ],
1005 Core::Eq8 => [
1006 0xd7, 0x52, 0xfa, 0x7f, 0x51, 0x47, 0x30, 0x14, 0xeb, 0xb6, 0x9e, 0x1e, 0x1d, 0x2c,
1007 0x86, 0xd5, 0x11, 0x48, 0xb6, 0xba, 0xa0, 0x21, 0x37, 0xa4, 0x8f, 0x62, 0xd5, 0x7e,
1008 0xaf, 0x8d, 0xf1, 0xcd,
1009 ],
1010 Core::FeAdd => [
1011 0xa6, 0xc9, 0x0e, 0x02, 0xfd, 0xe4, 0xee, 0x6e, 0xef, 0x66, 0x67, 0x37, 0x49, 0x2e,
1012 0x14, 0xaf, 0xc8, 0x76, 0x25, 0x04, 0x97, 0x4a, 0xf5, 0xd5, 0x47, 0x2b, 0xb9, 0x43,
1013 0x3a, 0xd2, 0xd2, 0x94,
1014 ],
1015 Core::FeInvert => [
1016 0x7c, 0x4a, 0xba, 0xce, 0x33, 0xc7, 0x2b, 0x3b, 0xe1, 0xfd, 0x0e, 0xe3, 0x9f, 0xc6,
1017 0xcb, 0x3e, 0xe5, 0xc8, 0xf1, 0x1e, 0xf2, 0x19, 0x98, 0xc0, 0x60, 0x2b, 0x52, 0x15,
1018 0xaa, 0x2a, 0x75, 0xc2,
1019 ],
1020 Core::FeIsOdd => [
1021 0x30, 0xf5, 0x17, 0x1f, 0x58, 0xf1, 0x08, 0x9d, 0x5d, 0xcf, 0xb6, 0xe6, 0x68, 0x3f,
1022 0x5a, 0xde, 0x98, 0x4c, 0x07, 0x99, 0x76, 0x3c, 0xa7, 0x38, 0x3f, 0x75, 0xdf, 0x1c,
1023 0xa0, 0x81, 0x3e, 0xfe,
1024 ],
1025 Core::FeIsZero => [
1026 0xb0, 0xb7, 0x4d, 0x86, 0x51, 0xff, 0x55, 0x7c, 0xa9, 0x60, 0x44, 0xdd, 0x97, 0x28,
1027 0x13, 0x38, 0xa8, 0xf7, 0xd3, 0xac, 0xb3, 0x84, 0x7d, 0x03, 0xac, 0xbf, 0x3d, 0x32,
1028 0xd9, 0x6f, 0xae, 0x55,
1029 ],
1030 Core::FeMultiply => [
1031 0x50, 0x6b, 0x93, 0x19, 0xc1, 0x7a, 0x14, 0xa9, 0x46, 0x9d, 0x46, 0x27, 0x61, 0xa3,
1032 0x30, 0x3a, 0xb4, 0x7d, 0xdb, 0x3a, 0x30, 0x79, 0xfb, 0xa3, 0x40, 0x73, 0xaa, 0x55,
1033 0x42, 0x16, 0xa3, 0x88,
1034 ],
1035 Core::FeMultiplyBeta => [
1036 0x6e, 0x18, 0x0e, 0xea, 0xbe, 0x84, 0x22, 0xb7, 0x99, 0x68, 0xe7, 0x11, 0xdd, 0x00,
1037 0xa4, 0xb6, 0x57, 0x8b, 0xb2, 0x75, 0xbe, 0xf4, 0x7f, 0xe5, 0xff, 0x96, 0x8f, 0x14,
1038 0x72, 0xd7, 0x6f, 0x2a,
1039 ],
1040 Core::FeNegate => [
1041 0xd4, 0x37, 0xea, 0x00, 0x33, 0x98, 0x80, 0xb3, 0x83, 0xd8, 0x5f, 0xb2, 0xae, 0xaf,
1042 0x20, 0x1b, 0xbe, 0x8f, 0xfc, 0x83, 0x70, 0x50, 0x62, 0xf9, 0xc9, 0x68, 0x59, 0x0d,
1043 0x5d, 0xb3, 0x37, 0xf6,
1044 ],
1045 Core::FeNormalize => [
1046 0xec, 0x0c, 0x3d, 0xd9, 0xc5, 0x28, 0x63, 0x64, 0x78, 0xbe, 0xc0, 0xe1, 0x60, 0xe5,
1047 0x0a, 0xd9, 0xbf, 0x45, 0x2c, 0x5b, 0x6f, 0x84, 0xe9, 0x40, 0xe1, 0x65, 0x84, 0xeb,
1048 0x08, 0x5a, 0xce, 0x38,
1049 ],
1050 Core::FeSquare => [
1051 0xb9, 0x04, 0x77, 0x2d, 0x74, 0xa1, 0x85, 0xb8, 0x28, 0xeb, 0x15, 0x47, 0x28, 0xd2,
1052 0x49, 0xc5, 0x08, 0x47, 0x11, 0xe9, 0xa1, 0x83, 0x2b, 0x89, 0xca, 0xf2, 0xaf, 0x59,
1053 0xf9, 0x60, 0xe1, 0x18,
1054 ],
1055 Core::FeSquareRoot => [
1056 0x16, 0xfb, 0x9a, 0xce, 0xbe, 0x8b, 0x5b, 0x87, 0xf2, 0xea, 0x7d, 0xb6, 0xaa, 0x3a,
1057 0x2a, 0xf8, 0x8c, 0xa2, 0xb5, 0x8f, 0x02, 0xcd, 0xc8, 0x7e, 0x7c, 0xe6, 0xbe, 0x0c,
1058 0x1f, 0xfc, 0xe0, 0x14,
1059 ],
1060 Core::FullAdd16 => [
1061 0xc5, 0x03, 0xb0, 0x78, 0xdd, 0xe3, 0x99, 0xc6, 0x3a, 0xc4, 0xa2, 0x32, 0xbd, 0x2a,
1062 0x32, 0x9b, 0x04, 0x30, 0x8c, 0x75, 0xea, 0xec, 0x53, 0xa2, 0xf8, 0x89, 0xb8, 0xdf,
1063 0x0d, 0x03, 0x34, 0x72,
1064 ],
1065 Core::FullAdd32 => [
1066 0xa7, 0xaf, 0xd0, 0x40, 0xfc, 0xb0, 0xb2, 0xf2, 0x71, 0x90, 0x78, 0x1a, 0xe5, 0x3a,
1067 0x6c, 0xca, 0x00, 0xe9, 0xfe, 0x59, 0x53, 0x11, 0x15, 0xc2, 0x58, 0xcc, 0xb6, 0x9d,
1068 0x3b, 0xe5, 0xa2, 0x13,
1069 ],
1070 Core::FullAdd64 => [
1071 0x80, 0xa3, 0xef, 0x6c, 0xdb, 0x84, 0xae, 0x7c, 0x8d, 0xbc, 0xf3, 0xa1, 0x84, 0x24,
1072 0x84, 0xc0, 0x98, 0xdf, 0x6f, 0x19, 0x42, 0x7a, 0x5a, 0x4a, 0xdf, 0xe7, 0x6c, 0xd5,
1073 0xff, 0x28, 0x36, 0xca,
1074 ],
1075 Core::FullAdd8 => [
1076 0x4b, 0x90, 0x76, 0xb8, 0xc1, 0xad, 0x56, 0xc9, 0xdb, 0x6b, 0xb3, 0xba, 0xf5, 0x93,
1077 0x89, 0x54, 0x46, 0xce, 0x61, 0xc7, 0x4f, 0x79, 0x7e, 0xb8, 0xb2, 0x30, 0xd2, 0x05,
1078 0x42, 0x1c, 0x96, 0x17,
1079 ],
1080 Core::FullDecrement16 => [
1081 0xfb, 0xa3, 0xc9, 0x78, 0x6e, 0xa3, 0x07, 0xf6, 0xd8, 0x54, 0x34, 0xfd, 0xa2, 0x56,
1082 0x24, 0x82, 0x43, 0xa0, 0x0b, 0xac, 0x9a, 0x53, 0x53, 0xb6, 0x1e, 0xd3, 0x9c, 0x60,
1083 0x55, 0xb6, 0x93, 0xb0,
1084 ],
1085 Core::FullDecrement32 => [
1086 0x62, 0x3d, 0x21, 0xd0, 0x46, 0x79, 0x22, 0xc0, 0x01, 0xc5, 0x65, 0x68, 0x61, 0xd0,
1087 0xdd, 0xb8, 0x60, 0xc0, 0xc9, 0xa8, 0x6b, 0xd4, 0xcf, 0xdc, 0x37, 0xa1, 0x4c, 0x14,
1088 0x06, 0xe3, 0x44, 0x6e,
1089 ],
1090 Core::FullDecrement64 => [
1091 0x14, 0x8b, 0x3e, 0xe1, 0xf7, 0x49, 0xea, 0x0b, 0xfb, 0xa7, 0x63, 0xbe, 0xe9, 0x99,
1092 0xa2, 0x96, 0x77, 0x45, 0x6e, 0xae, 0x9e, 0xf5, 0x3a, 0xd8, 0x78, 0xf8, 0xb6, 0x14,
1093 0x94, 0xf0, 0x8f, 0x00,
1094 ],
1095 Core::FullDecrement8 => [
1096 0xb4, 0x1a, 0xfe, 0x97, 0x4e, 0xaa, 0x11, 0x82, 0xac, 0x46, 0x10, 0x52, 0x1e, 0x28,
1097 0x27, 0x81, 0x31, 0x8c, 0xe2, 0x95, 0xa3, 0xf2, 0x3f, 0x0b, 0x87, 0x6a, 0xe2, 0x69,
1098 0x67, 0x3f, 0xb1, 0xdf,
1099 ],
1100 Core::FullIncrement16 => [
1101 0xa6, 0x8e, 0xcc, 0xdb, 0x9e, 0xad, 0x29, 0x26, 0xc3, 0xe4, 0x5b, 0x4b, 0xae, 0x43,
1102 0x1c, 0xc4, 0x66, 0xd5, 0x8b, 0x8f, 0xac, 0xc9, 0x5a, 0x1b, 0x48, 0x44, 0xb9, 0x12,
1103 0xdf, 0x56, 0x76, 0xdf,
1104 ],
1105 Core::FullIncrement32 => [
1106 0xd0, 0xeb, 0x0e, 0x94, 0xa5, 0xc2, 0x57, 0x13, 0xeb, 0x94, 0x4c, 0xad, 0x4d, 0x70,
1107 0x1c, 0x6a, 0x96, 0x88, 0x09, 0xbc, 0x1a, 0xf9, 0x03, 0xfd, 0xb1, 0x1e, 0x6f, 0xad,
1108 0x0b, 0xb3, 0x1b, 0x10,
1109 ],
1110 Core::FullIncrement64 => [
1111 0xc0, 0x03, 0xd2, 0xe9, 0xb0, 0xa5, 0x10, 0xc2, 0xdd, 0x78, 0x3e, 0x7d, 0x64, 0xeb,
1112 0x87, 0xb3, 0x38, 0x55, 0xd3, 0x29, 0x90, 0xdf, 0xc2, 0x86, 0x26, 0x6e, 0x47, 0x8d,
1113 0xa4, 0xe7, 0x47, 0x91,
1114 ],
1115 Core::FullIncrement8 => [
1116 0x0b, 0xea, 0x24, 0x29, 0x18, 0xf2, 0xdd, 0x17, 0x64, 0x77, 0x78, 0x11, 0xe4, 0x44,
1117 0x28, 0x63, 0x93, 0x52, 0x25, 0xb0, 0xf8, 0xb2, 0x39, 0xc2, 0x37, 0x52, 0xf9, 0xd8,
1118 0x53, 0x92, 0xa1, 0x39,
1119 ],
1120 Core::FullLeftShift16_1 => [
1121 0xb3, 0x66, 0xa8, 0x16, 0x92, 0x2f, 0xc4, 0x55, 0x01, 0x0f, 0xe8, 0x8a, 0x5f, 0x6a,
1122 0x5c, 0xf2, 0xce, 0xa9, 0x17, 0xe1, 0x2b, 0xd1, 0x40, 0xae, 0x6d, 0x43, 0xb6, 0x41,
1123 0xe5, 0x7f, 0x42, 0xb3,
1124 ],
1125 Core::FullLeftShift16_2 => [
1126 0x27, 0x96, 0x0d, 0x0d, 0xf2, 0xfb, 0xbc, 0x38, 0x99, 0x3d, 0x86, 0xfb, 0x8f, 0x0c,
1127 0xd2, 0xc3, 0x43, 0x4e, 0xdb, 0x11, 0x04, 0x82, 0x13, 0xc1, 0x41, 0x18, 0x93, 0xca,
1128 0x99, 0x33, 0xb2, 0xee,
1129 ],
1130 Core::FullLeftShift16_4 => [
1131 0x65, 0x51, 0x37, 0xbe, 0xc5, 0xc0, 0x36, 0x8f, 0x29, 0xbc, 0x99, 0x2c, 0x88, 0x42,
1132 0x1a, 0x15, 0x98, 0x56, 0x40, 0x39, 0x7b, 0x61, 0x7f, 0xc4, 0x8d, 0x33, 0x21, 0x0f,
1133 0xc0, 0x05, 0x3a, 0xd1,
1134 ],
1135 Core::FullLeftShift16_8 => [
1136 0x16, 0x8f, 0x57, 0x6a, 0xa5, 0x6e, 0xa4, 0x7e, 0x07, 0x06, 0x46, 0xe7, 0x88, 0x96,
1137 0xbe, 0xb2, 0x49, 0x8b, 0x1a, 0xe6, 0xb1, 0xff, 0x9c, 0x78, 0x62, 0x70, 0xe9, 0x55,
1138 0x65, 0x84, 0x19, 0x29,
1139 ],
1140 Core::FullLeftShift32_1 => [
1141 0xd7, 0xcd, 0x52, 0x24, 0x49, 0x11, 0x8e, 0x81, 0x00, 0xa7, 0x66, 0x2f, 0x4d, 0xf0,
1142 0x39, 0xf8, 0xca, 0xeb, 0xf4, 0x33, 0xeb, 0x03, 0x9e, 0xdc, 0x42, 0xe8, 0x82, 0x37,
1143 0x92, 0xcc, 0xea, 0x8a,
1144 ],
1145 Core::FullLeftShift32_16 => [
1146 0x8b, 0xd8, 0x0d, 0x4d, 0x2f, 0x8b, 0x22, 0x46, 0xc1, 0x23, 0x15, 0xc4, 0x28, 0x41,
1147 0xb4, 0xe4, 0x0a, 0x71, 0xae, 0x76, 0x96, 0x6a, 0x08, 0x95, 0x4d, 0x66, 0x6b, 0x86,
1148 0x32, 0x86, 0x74, 0x37,
1149 ],
1150 Core::FullLeftShift32_2 => [
1151 0x13, 0x06, 0x3d, 0x62, 0x93, 0x83, 0x29, 0x31, 0x1f, 0xb7, 0xda, 0xbb, 0x15, 0xc3,
1152 0xfe, 0x58, 0xc2, 0x88, 0x76, 0x83, 0x00, 0x97, 0xec, 0xc6, 0xbf, 0xdd, 0x48, 0x0b,
1153 0xe1, 0x98, 0x81, 0x46,
1154 ],
1155 Core::FullLeftShift32_4 => [
1156 0x25, 0xa1, 0xb5, 0xdd, 0xe5, 0xdb, 0x28, 0x4e, 0x8a, 0x88, 0x21, 0x26, 0x7c, 0x26,
1157 0x53, 0x01, 0x14, 0xbb, 0xe6, 0x71, 0xcf, 0xaf, 0xb4, 0x4a, 0x60, 0xd7, 0x50, 0x27,
1158 0x67, 0xdb, 0x78, 0x2e,
1159 ],
1160 Core::FullLeftShift32_8 => [
1161 0xce, 0x54, 0x70, 0xaf, 0xbf, 0xad, 0xbf, 0xba, 0x68, 0xf9, 0xb2, 0xd5, 0xb0, 0x64,
1162 0x5a, 0x44, 0x08, 0xbe, 0x6f, 0x85, 0xa6, 0x9c, 0x7f, 0x09, 0xd0, 0x96, 0x45, 0x53,
1163 0x68, 0x04, 0x87, 0x64,
1164 ],
1165 Core::FullLeftShift64_1 => [
1166 0x05, 0x1f, 0x36, 0x05, 0x86, 0xc3, 0x79, 0xac, 0x2c, 0xe3, 0x99, 0xcb, 0xeb, 0x68,
1167 0x7e, 0x77, 0x53, 0xb1, 0x5d, 0x73, 0x03, 0xdd, 0x31, 0x6c, 0xbd, 0x12, 0x30, 0x12,
1168 0x08, 0x7c, 0xc6, 0x6f,
1169 ],
1170 Core::FullLeftShift64_16 => [
1171 0xb2, 0x48, 0xbe, 0x4d, 0xfc, 0xb8, 0x8c, 0x5d, 0x89, 0xb1, 0xca, 0x61, 0x86, 0xa0,
1172 0x41, 0xe9, 0x02, 0xb4, 0xc8, 0xa6, 0x2b, 0xb1, 0x6e, 0x09, 0xfe, 0x15, 0x61, 0x6e,
1173 0x0e, 0x3a, 0xbd, 0x6d,
1174 ],
1175 Core::FullLeftShift64_2 => [
1176 0x34, 0xbb, 0x51, 0x62, 0x6b, 0x1d, 0x6b, 0x89, 0x7a, 0xbc, 0x15, 0x5d, 0x03, 0x4f,
1177 0xe0, 0x66, 0x3a, 0x0e, 0xc0, 0xfd, 0x8f, 0x64, 0x0e, 0x5f, 0xe1, 0xbf, 0x3c, 0xb7,
1178 0x67, 0x0a, 0x29, 0x25,
1179 ],
1180 Core::FullLeftShift64_32 => [
1181 0x9d, 0xac, 0x8c, 0xd7, 0xfd, 0x8b, 0x48, 0x88, 0x9e, 0x55, 0xc5, 0xaa, 0x12, 0xfe,
1182 0x97, 0xb7, 0x29, 0xfe, 0xbc, 0x04, 0x1a, 0x9f, 0xff, 0x44, 0xc4, 0xd9, 0xb6, 0xf1,
1183 0xe0, 0x7e, 0xb4, 0x42,
1184 ],
1185 Core::FullLeftShift64_4 => [
1186 0x94, 0xb7, 0x3d, 0xad, 0xc3, 0xee, 0xeb, 0x2e, 0xe4, 0xa4, 0xd4, 0x44, 0xdd, 0x0f,
1187 0x72, 0xac, 0x30, 0x62, 0x01, 0xf2, 0xff, 0xcf, 0x71, 0x4b, 0x8e, 0xbe, 0x79, 0x82,
1188 0x74, 0x4c, 0x0c, 0x7e,
1189 ],
1190 Core::FullLeftShift64_8 => [
1191 0x0e, 0xf7, 0x14, 0x75, 0x7e, 0xcf, 0x11, 0xca, 0x3c, 0x73, 0xce, 0x25, 0xef, 0x24,
1192 0xee, 0x72, 0x95, 0xdd, 0x41, 0x71, 0xcc, 0x16, 0x28, 0x7f, 0xe6, 0x97, 0x1b, 0xd6,
1193 0x7b, 0x47, 0x8b, 0x46,
1194 ],
1195 Core::FullLeftShift8_1 => [
1196 0x9b, 0xfa, 0x48, 0xb7, 0xad, 0x51, 0x00, 0x91, 0xba, 0x60, 0x85, 0x44, 0x62, 0xd8,
1197 0x59, 0xef, 0xd1, 0xa2, 0xaa, 0x18, 0x73, 0x1b, 0x5f, 0x0c, 0x9e, 0x2b, 0xa4, 0xd8,
1198 0x9d, 0x3a, 0xa8, 0x43,
1199 ],
1200 Core::FullLeftShift8_2 => [
1201 0x79, 0x7c, 0x20, 0x87, 0x01, 0xb2, 0xa4, 0xe1, 0x04, 0x9e, 0x83, 0xd6, 0x95, 0xf5,
1202 0x54, 0xb9, 0x84, 0xf5, 0xdb, 0x28, 0x21, 0x52, 0x55, 0x58, 0x7c, 0x37, 0x34, 0x21,
1203 0x51, 0xb7, 0x24, 0x1d,
1204 ],
1205 Core::FullLeftShift8_4 => [
1206 0x37, 0xbd, 0xac, 0x91, 0x53, 0x8f, 0x22, 0x19, 0xcb, 0x89, 0xdf, 0x0e, 0xf9, 0xf1,
1207 0x97, 0xcd, 0x68, 0x03, 0x1f, 0x27, 0x67, 0xe8, 0x94, 0xf0, 0x01, 0xc2, 0x6f, 0xff,
1208 0x5e, 0xeb, 0x58, 0xcd,
1209 ],
1210 Core::FullMultiply16 => [
1211 0x09, 0xba, 0xff, 0x92, 0x1e, 0x9f, 0x14, 0xd1, 0x20, 0x8d, 0x1d, 0xd8, 0x26, 0x4c,
1212 0xf1, 0xf3, 0xb8, 0x54, 0xc9, 0xaf, 0x21, 0xf7, 0x78, 0xb2, 0xb5, 0x5a, 0x8a, 0x42,
1213 0x6d, 0xfe, 0x89, 0x28,
1214 ],
1215 Core::FullMultiply32 => [
1216 0x10, 0xc4, 0xb8, 0xc4, 0xc0, 0xac, 0xd9, 0x73, 0x90, 0xf8, 0x5c, 0xb3, 0xf5, 0xff,
1217 0xe3, 0x6a, 0x29, 0x20, 0x37, 0xc1, 0x90, 0xee, 0xba, 0xb3, 0xe9, 0x89, 0x34, 0xfe,
1218 0x93, 0xb2, 0xed, 0x90,
1219 ],
1220 Core::FullMultiply64 => [
1221 0x2d, 0xb1, 0x9d, 0xba, 0x90, 0xef, 0x86, 0x7b, 0x5a, 0x3e, 0x91, 0x4b, 0x89, 0xfd,
1222 0xa2, 0xda, 0x63, 0x7c, 0xa8, 0x0c, 0x42, 0x67, 0xe1, 0x98, 0x18, 0x37, 0xee, 0x3c,
1223 0x6f, 0xe3, 0xda, 0xf5,
1224 ],
1225 Core::FullMultiply8 => [
1226 0x7f, 0x46, 0xee, 0x72, 0x84, 0xf3, 0x9e, 0x73, 0x42, 0x75, 0xa2, 0x50, 0x9a, 0x0b,
1227 0x73, 0x7e, 0xd9, 0x39, 0x11, 0x5f, 0x02, 0x19, 0xa5, 0x74, 0xd4, 0x69, 0xcd, 0x30,
1228 0xb8, 0x19, 0xef, 0xe3,
1229 ],
1230 Core::FullRightShift16_1 => [
1231 0x7e, 0xbe, 0x0c, 0x66, 0xc3, 0xc7, 0xdc, 0x16, 0xa5, 0x46, 0x9e, 0x91, 0x79, 0x09,
1232 0x84, 0x17, 0xac, 0x5f, 0x20, 0xa3, 0x9c, 0xc4, 0x1a, 0xc3, 0x82, 0xfb, 0x1d, 0xbd,
1233 0x98, 0xe8, 0xe3, 0x0f,
1234 ],
1235 Core::FullRightShift16_2 => [
1236 0x8d, 0xb0, 0xc2, 0x16, 0x19, 0xc6, 0x2d, 0x63, 0xd4, 0xc2, 0x7b, 0xfc, 0xf6, 0x47,
1237 0xd7, 0x09, 0xce, 0x37, 0xbe, 0xd0, 0x57, 0x18, 0xe9, 0x3e, 0x45, 0x15, 0xe2, 0x9e,
1238 0xf3, 0x73, 0x0c, 0xf4,
1239 ],
1240 Core::FullRightShift16_4 => [
1241 0x5c, 0x74, 0xb1, 0x32, 0x06, 0x31, 0x79, 0x17, 0xe0, 0x70, 0xe5, 0xfc, 0x1c, 0x82,
1242 0xf4, 0xc5, 0xc2, 0xfb, 0xe9, 0xf3, 0x1b, 0x81, 0x29, 0x46, 0xba, 0x23, 0x0d, 0x8c,
1243 0x94, 0xd4, 0x06, 0x16,
1244 ],
1245 Core::FullRightShift16_8 => [
1246 0x11, 0x05, 0x81, 0x8a, 0xc9, 0x48, 0xd7, 0xbb, 0x63, 0x47, 0x07, 0xe6, 0x9d, 0xbf,
1247 0x1f, 0x67, 0x90, 0x58, 0xa1, 0x3d, 0x35, 0xfa, 0xc2, 0xa6, 0x4d, 0xf9, 0x72, 0x62,
1248 0xf2, 0x42, 0xb6, 0x3b,
1249 ],
1250 Core::FullRightShift32_1 => [
1251 0x9b, 0x42, 0xc8, 0xf3, 0x3b, 0xc5, 0x75, 0x0e, 0x2a, 0x83, 0xaa, 0xdb, 0xf2, 0x9c,
1252 0xc7, 0xfc, 0xb9, 0x50, 0xfe, 0x5a, 0x40, 0xaa, 0x0e, 0xc5, 0x24, 0x52, 0xe5, 0x33,
1253 0xf8, 0x25, 0xa1, 0x15,
1254 ],
1255 Core::FullRightShift32_16 => [
1256 0x0a, 0xe5, 0x65, 0x9c, 0x2f, 0xa7, 0x57, 0x94, 0x78, 0xeb, 0xd5, 0x7c, 0x4c, 0x98,
1257 0xae, 0xe7, 0x77, 0x01, 0x56, 0x45, 0xb2, 0x84, 0x31, 0x81, 0x64, 0xfc, 0xbd, 0x30,
1258 0x65, 0xfc, 0x87, 0x3c,
1259 ],
1260 Core::FullRightShift32_2 => [
1261 0x57, 0xfb, 0x1c, 0x03, 0xc2, 0xeb, 0x17, 0xf6, 0x23, 0x47, 0x87, 0x34, 0xfd, 0x69,
1262 0x37, 0xf9, 0xe3, 0xef, 0x02, 0x7c, 0x15, 0x60, 0x03, 0x8f, 0xa6, 0x06, 0x69, 0x05,
1263 0x17, 0x89, 0xe3, 0x68,
1264 ],
1265 Core::FullRightShift32_4 => [
1266 0x85, 0x82, 0xcd, 0xfa, 0x74, 0xef, 0x46, 0x6b, 0x81, 0x27, 0xb1, 0x97, 0x88, 0x13,
1267 0x45, 0x93, 0x99, 0x8e, 0x49, 0x69, 0x00, 0xb3, 0x8f, 0x0f, 0x3d, 0x37, 0x58, 0x18,
1268 0xd6, 0x73, 0x45, 0x1e,
1269 ],
1270 Core::FullRightShift32_8 => [
1271 0xd9, 0x05, 0x93, 0x2e, 0xbf, 0xca, 0x2a, 0x38, 0x61, 0x9d, 0x80, 0x7e, 0x28, 0xff,
1272 0x2e, 0x0d, 0x3b, 0xe0, 0x8a, 0x26, 0x06, 0x76, 0xd2, 0x57, 0xef, 0xa0, 0x40, 0xc3,
1273 0x05, 0xaa, 0xdc, 0x33,
1274 ],
1275 Core::FullRightShift64_1 => [
1276 0x3c, 0x15, 0x20, 0x9b, 0x99, 0xd2, 0x84, 0x5e, 0x22, 0x5e, 0x14, 0xe1, 0xe9, 0xe5,
1277 0xe6, 0xa4, 0x87, 0x8b, 0xc8, 0xce, 0xa3, 0xf9, 0xf3, 0x6b, 0x8b, 0x53, 0x5a, 0xc6,
1278 0x83, 0xe2, 0x9d, 0x00,
1279 ],
1280 Core::FullRightShift64_16 => [
1281 0x02, 0x85, 0x25, 0x7b, 0x09, 0x0d, 0x8d, 0xa1, 0x28, 0xef, 0x64, 0xa8, 0x0c, 0x8d,
1282 0x16, 0xfd, 0xc3, 0xbf, 0x5c, 0xe5, 0x0f, 0xcd, 0x56, 0xfe, 0xc5, 0xf9, 0x02, 0x55,
1283 0xd9, 0xc8, 0xdf, 0x47,
1284 ],
1285 Core::FullRightShift64_2 => [
1286 0x7e, 0xc2, 0xdd, 0x65, 0xc9, 0xe0, 0x13, 0xe3, 0xe4, 0xce, 0x90, 0xfb, 0xeb, 0x3f,
1287 0xb1, 0xc7, 0x8c, 0xcc, 0x5d, 0x2a, 0x7d, 0x26, 0xd8, 0xaf, 0x77, 0xf9, 0x9d, 0xe8,
1288 0x4c, 0xf7, 0x29, 0x73,
1289 ],
1290 Core::FullRightShift64_32 => [
1291 0x35, 0x6f, 0x7d, 0xd4, 0x6b, 0xa3, 0x3f, 0x84, 0xb0, 0x66, 0x72, 0xfd, 0xe9, 0xa2,
1292 0x97, 0x2e, 0x80, 0xf3, 0xea, 0x96, 0x5a, 0xe8, 0xbc, 0x0b, 0xff, 0x67, 0xaa, 0x2f,
1293 0x69, 0xf1, 0x0b, 0x56,
1294 ],
1295 Core::FullRightShift64_4 => [
1296 0x05, 0x46, 0x4a, 0x33, 0x35, 0xaf, 0xbb, 0x09, 0xd0, 0x46, 0x82, 0x8a, 0x92, 0x2c,
1297 0x4d, 0xa0, 0xec, 0xee, 0xb1, 0x09, 0x77, 0xe4, 0x68, 0x01, 0xc9, 0x3c, 0xdd, 0x66,
1298 0x8f, 0x22, 0xee, 0x63,
1299 ],
1300 Core::FullRightShift64_8 => [
1301 0x70, 0x17, 0x2e, 0x1a, 0x69, 0x48, 0xbf, 0x40, 0x12, 0x0e, 0x68, 0xfb, 0x8b, 0x4b,
1302 0x23, 0xbc, 0x35, 0x5a, 0x12, 0x00, 0x2c, 0xcc, 0x1d, 0xb6, 0x47, 0xc8, 0x9b, 0x12,
1303 0xd1, 0x0e, 0xc5, 0x06,
1304 ],
1305 Core::FullRightShift8_1 => [
1306 0x56, 0x69, 0xdb, 0xfc, 0xc6, 0x33, 0xec, 0x0b, 0xdf, 0x59, 0xe2, 0x2f, 0x03, 0xed,
1307 0x4b, 0x64, 0x19, 0x20, 0x95, 0xf5, 0xdf, 0x20, 0xff, 0xc1, 0x2d, 0xd9, 0x0d, 0x7c,
1308 0xda, 0x11, 0x37, 0x4f,
1309 ],
1310 Core::FullRightShift8_2 => [
1311 0x1f, 0x94, 0x43, 0x61, 0x09, 0xdf, 0x52, 0xb3, 0x45, 0xfa, 0x3a, 0x89, 0xac, 0x2a,
1312 0x49, 0xed, 0xc9, 0xd2, 0x85, 0xf2, 0x1f, 0x45, 0xed, 0x11, 0xd7, 0x75, 0xf7, 0xf7,
1313 0xf3, 0x9d, 0x3e, 0x8f,
1314 ],
1315 Core::FullRightShift8_4 => [
1316 0x71, 0x46, 0x98, 0xa2, 0x76, 0x84, 0xb5, 0xba, 0xa6, 0xb6, 0x48, 0x0e, 0xe3, 0xb2,
1317 0x57, 0xcb, 0xb7, 0xcd, 0xab, 0x74, 0x72, 0xf3, 0x71, 0xa6, 0x27, 0x06, 0x18, 0xc0,
1318 0xab, 0x12, 0x90, 0x8b,
1319 ],
1320 Core::FullSubtract16 => [
1321 0x40, 0x09, 0x61, 0x52, 0xb5, 0x4e, 0x74, 0x25, 0x45, 0x55, 0xa6, 0x5d, 0xcc, 0xc6,
1322 0x29, 0xdf, 0x57, 0xb9, 0x79, 0xc8, 0x47, 0x00, 0x54, 0x50, 0x36, 0xfe, 0x19, 0x0a,
1323 0x6a, 0xf3, 0xd3, 0x8a,
1324 ],
1325 Core::FullSubtract32 => [
1326 0xe7, 0x93, 0x0d, 0x64, 0x35, 0xa9, 0x68, 0x0b, 0xef, 0xb4, 0x9d, 0xb7, 0xd8, 0x7c,
1327 0x2f, 0x50, 0xaf, 0xd4, 0x6d, 0x98, 0x88, 0x0d, 0xed, 0x50, 0xe5, 0x05, 0x5f, 0xa3,
1328 0x09, 0xe1, 0xaf, 0xca,
1329 ],
1330 Core::FullSubtract64 => [
1331 0xff, 0x28, 0x1d, 0xf8, 0xc4, 0x2a, 0x31, 0x59, 0xd9, 0xff, 0xa9, 0x25, 0x16, 0xca,
1332 0x89, 0x3e, 0x23, 0xb0, 0xeb, 0x93, 0x8b, 0x4c, 0xb0, 0xb3, 0xf1, 0x34, 0x46, 0x8e,
1333 0x9f, 0x4e, 0xbc, 0x46,
1334 ],
1335 Core::FullSubtract8 => [
1336 0x7e, 0x3d, 0xcf, 0xe4, 0x56, 0xae, 0x3c, 0x5c, 0x87, 0xde, 0xbf, 0x04, 0x71, 0x89,
1337 0xc2, 0x74, 0x82, 0xa4, 0xff, 0x4e, 0x8c, 0xfd, 0x1f, 0x17, 0x30, 0xc8, 0x7d, 0x2b,
1338 0x7b, 0xff, 0x73, 0xba,
1339 ],
1340 Core::GeIsOnCurve => [
1341 0x7d, 0x44, 0x87, 0x19, 0xf5, 0xf9, 0x57, 0x2b, 0xf5, 0x40, 0x2e, 0x12, 0xd1, 0x93,
1342 0xaf, 0xf6, 0x77, 0x48, 0x2d, 0x66, 0xff, 0x3d, 0xcf, 0x27, 0x48, 0xf2, 0x5c, 0x6b,
1343 0x73, 0x77, 0x02, 0x8c,
1344 ],
1345 Core::GeNegate => [
1346 0x3d, 0x2c, 0x8d, 0xe4, 0xc7, 0x01, 0x5f, 0xd3, 0x13, 0x26, 0x95, 0xfd, 0x66, 0xdf,
1347 0xcf, 0x0f, 0x17, 0x78, 0xc7, 0x91, 0x85, 0x26, 0x8e, 0x9f, 0xae, 0x77, 0x89, 0xda,
1348 0x53, 0x8e, 0xca, 0x59,
1349 ],
1350 Core::GejAdd => [
1351 0x45, 0xba, 0x7f, 0x3d, 0x1e, 0x1e, 0x6d, 0x34, 0x9f, 0xcf, 0x86, 0x98, 0x7b, 0x0e,
1352 0x7f, 0x7a, 0xce, 0x66, 0x2e, 0x82, 0x20, 0x1d, 0x35, 0x02, 0x60, 0x45, 0x4e, 0x2f,
1353 0xfe, 0xec, 0xb5, 0x4d,
1354 ],
1355 Core::GejDouble => [
1356 0x23, 0xe9, 0x78, 0xf3, 0x41, 0x54, 0x11, 0x9b, 0xde, 0xfc, 0x5d, 0x13, 0xfc, 0xfd,
1357 0x0a, 0x34, 0xa7, 0x5e, 0x37, 0x26, 0xd6, 0xcb, 0x25, 0x81, 0x33, 0x70, 0xad, 0x7d,
1358 0x9d, 0xe5, 0xe1, 0x33,
1359 ],
1360 Core::GejEquiv => [
1361 0xb9, 0x4b, 0x2a, 0xac, 0x73, 0xa6, 0x7f, 0x44, 0x95, 0x85, 0x99, 0x13, 0x4d, 0xe2,
1362 0x30, 0x17, 0x9e, 0x9d, 0x6b, 0xb6, 0x47, 0xfd, 0x06, 0x11, 0x15, 0x8a, 0xab, 0xa7,
1363 0x0b, 0x73, 0xe4, 0x00,
1364 ],
1365 Core::GejGeAdd => [
1366 0xf1, 0x16, 0x0b, 0x6f, 0x5e, 0xe2, 0xc5, 0x82, 0xe4, 0x95, 0x66, 0xe6, 0xc3, 0x86,
1367 0xb3, 0x80, 0x94, 0xab, 0xc1, 0xa7, 0x18, 0x2d, 0x33, 0xa1, 0x50, 0x1f, 0xa2, 0xaa,
1368 0xf0, 0x0a, 0xf3, 0xea,
1369 ],
1370 Core::GejGeAddEx => [
1371 0xc3, 0xd7, 0x34, 0x7f, 0xfe, 0x2d, 0x9c, 0x83, 0x9a, 0xac, 0x56, 0x7e, 0x29, 0x98,
1372 0xe0, 0x16, 0xaf, 0x39, 0x4e, 0x2a, 0x19, 0x29, 0x31, 0x4b, 0x52, 0xe3, 0x1e, 0xed,
1373 0x67, 0x8e, 0x30, 0xbf,
1374 ],
1375 Core::GejGeEquiv => [
1376 0x27, 0xc2, 0x99, 0x69, 0x13, 0x9f, 0x8d, 0x57, 0xed, 0xc9, 0x89, 0x5c, 0x30, 0x40,
1377 0x3d, 0xf0, 0x15, 0xc5, 0x0c, 0xe7, 0x21, 0xc3, 0x81, 0xfb, 0x19, 0x7c, 0x0c, 0x04,
1378 0x03, 0xf1, 0xdb, 0x0c,
1379 ],
1380 Core::GejInfinity => [
1381 0xaa, 0xfb, 0x93, 0x80, 0xd6, 0x1a, 0x7f, 0x14, 0x78, 0x46, 0x80, 0x6b, 0x2c, 0xc3,
1382 0x74, 0xfb, 0xe8, 0x2d, 0xd1, 0xae, 0xd4, 0x85, 0xb9, 0x8a, 0x0f, 0x16, 0x4b, 0x3a,
1383 0x54, 0xc2, 0xc0, 0xb0,
1384 ],
1385 Core::GejIsInfinity => [
1386 0xdb, 0x49, 0x5f, 0xd1, 0x31, 0x42, 0xe9, 0xb3, 0x37, 0x63, 0xfc, 0x6d, 0x48, 0xd2,
1387 0xfb, 0x0e, 0x71, 0xb0, 0xd9, 0xd9, 0x9b, 0xd7, 0x26, 0xf4, 0x7a, 0xd1, 0x3f, 0xc5,
1388 0x56, 0x06, 0x70, 0xa2,
1389 ],
1390 Core::GejIsOnCurve => [
1391 0xbf, 0x4c, 0xa1, 0x3f, 0xf2, 0x12, 0xe3, 0x4b, 0xf1, 0x7d, 0x90, 0xc1, 0x2e, 0x45,
1392 0x3d, 0x08, 0xac, 0x7d, 0xaa, 0x4a, 0x47, 0xd5, 0x7e, 0x85, 0xb4, 0x3f, 0x2d, 0x43,
1393 0x66, 0xd4, 0x3d, 0xda,
1394 ],
1395 Core::GejNegate => [
1396 0x01, 0xbd, 0x1a, 0x35, 0x1f, 0xb8, 0x16, 0x4c, 0x81, 0x3d, 0x91, 0x6d, 0x07, 0x77,
1397 0x49, 0x99, 0x6b, 0x7d, 0xb1, 0x18, 0xd3, 0x15, 0x86, 0xca, 0x9d, 0x75, 0xe7, 0x56,
1398 0x35, 0x18, 0xf4, 0x54,
1399 ],
1400 Core::GejNormalize => [
1401 0xec, 0x59, 0x7d, 0x17, 0xe2, 0xef, 0xb6, 0xd2, 0xa0, 0x02, 0xd5, 0x0e, 0x67, 0x75,
1402 0x27, 0xd3, 0xd4, 0xa2, 0x90, 0x7a, 0x11, 0x9d, 0x68, 0xf1, 0x22, 0x84, 0xb9, 0xa1,
1403 0xb0, 0xd2, 0x30, 0x3a,
1404 ],
1405 Core::GejRescale => [
1406 0x29, 0x77, 0xd9, 0x53, 0xef, 0x7a, 0x11, 0x56, 0xce, 0xc6, 0xdb, 0x2d, 0xc2, 0x92,
1407 0x54, 0x12, 0x75, 0xcb, 0xc8, 0x2f, 0xb8, 0x29, 0xfd, 0x67, 0x1b, 0x97, 0x2e, 0x89,
1408 0xeb, 0xed, 0x0c, 0x24,
1409 ],
1410 Core::GejXEquiv => [
1411 0xf9, 0xf1, 0x89, 0xfc, 0x00, 0xb6, 0x1f, 0x72, 0xf1, 0x0b, 0xaa, 0xa2, 0x1b, 0xcd,
1412 0x88, 0xe5, 0xd2, 0x2e, 0x0a, 0xa9, 0xb7, 0x50, 0x9a, 0xe1, 0x62, 0xa1, 0x83, 0xa4,
1413 0xb6, 0x64, 0xa4, 0xaf,
1414 ],
1415 Core::GejYIsOdd => [
1416 0x9e, 0xb6, 0xe4, 0x53, 0x5f, 0xb6, 0x9b, 0xf6, 0x09, 0x91, 0x65, 0x99, 0xf1, 0x34,
1417 0x5a, 0xd7, 0x73, 0x5d, 0xa3, 0xf3, 0x94, 0x8d, 0x06, 0x86, 0x90, 0x8e, 0x44, 0xf4,
1418 0x5b, 0x2f, 0xf6, 0x0c,
1419 ],
1420 Core::Generate => [
1421 0x14, 0x88, 0x85, 0xac, 0x73, 0x81, 0x31, 0x13, 0xc5, 0x23, 0xe8, 0x09, 0xbe, 0xa4,
1422 0x7f, 0xfd, 0x8b, 0x1d, 0xaf, 0x37, 0x8d, 0x9d, 0xd5, 0x4b, 0xf9, 0x66, 0xcc, 0xb8,
1423 0x83, 0xb1, 0xa9, 0x84,
1424 ],
1425 Core::HashToCurve => [
1426 0xef, 0x4f, 0x54, 0x8b, 0x3c, 0x6c, 0x75, 0x17, 0x5f, 0x2c, 0xe2, 0xd1, 0x99, 0x3b,
1427 0x2d, 0x19, 0x9b, 0xeb, 0x16, 0xc0, 0xa1, 0x40, 0x17, 0x5c, 0x48, 0xa1, 0x27, 0x7e,
1428 0xfc, 0x43, 0xa9, 0x9b,
1429 ],
1430 Core::High1 => [
1431 0xb1, 0x09, 0xcf, 0x1c, 0xce, 0x35, 0xf7, 0xe9, 0xb6, 0x49, 0x67, 0x1a, 0x9b, 0x45,
1432 0xdb, 0xc2, 0x40, 0x99, 0xa7, 0x13, 0xae, 0xb9, 0xa8, 0x9c, 0xc4, 0xcf, 0x6e, 0xf6,
1433 0xed, 0x8b, 0x30, 0x8b,
1434 ],
1435 Core::High16 => [
1436 0x03, 0x5d, 0xad, 0xd9, 0xd7, 0xbf, 0x74, 0x33, 0x64, 0x45, 0xe7, 0x1d, 0xdc, 0x4d,
1437 0x82, 0x02, 0x24, 0xff, 0x7e, 0x38, 0xe0, 0xb8, 0xd5, 0x2b, 0xec, 0x97, 0x29, 0xb5,
1438 0x72, 0xb5, 0x31, 0xf9,
1439 ],
1440 Core::High32 => [
1441 0xc5, 0xf1, 0xdf, 0x0d, 0x64, 0xa2, 0x73, 0x7a, 0x63, 0x1b, 0x3a, 0xae, 0x8f, 0x26,
1442 0x0e, 0x8b, 0x8d, 0xc1, 0x95, 0x7b, 0xd0, 0x92, 0x91, 0x1b, 0x91, 0xd2, 0x07, 0x8a,
1443 0xd2, 0x1e, 0x41, 0x8a,
1444 ],
1445 Core::High64 => [
1446 0xa3, 0x12, 0x63, 0x3e, 0x0a, 0x23, 0x05, 0xe6, 0x9b, 0x3f, 0x34, 0x1d, 0x91, 0xd6,
1447 0x83, 0xdd, 0x94, 0x19, 0x6a, 0x2f, 0x90, 0x05, 0xc9, 0xb1, 0x87, 0x2a, 0x2c, 0x15,
1448 0xad, 0x46, 0xcf, 0x17,
1449 ],
1450 Core::High8 => [
1451 0xcb, 0xd7, 0x8d, 0x50, 0xaf, 0x77, 0x99, 0x85, 0x5a, 0xdc, 0x49, 0x03, 0xdb, 0xbe,
1452 0xfc, 0x13, 0x45, 0xd5, 0x14, 0x84, 0xf0, 0x3d, 0x3c, 0x75, 0x5c, 0xaa, 0xa5, 0xca,
1453 0xa9, 0x7d, 0x4a, 0x14,
1454 ],
1455 Core::Increment16 => [
1456 0x86, 0x77, 0x49, 0x49, 0x39, 0xb2, 0x7b, 0x86, 0xcb, 0x5a, 0x8c, 0x7f, 0x81, 0x72,
1457 0xad, 0x55, 0x50, 0x95, 0x31, 0xc9, 0xb0, 0xe1, 0x1e, 0x99, 0x75, 0x7e, 0x29, 0x6c,
1458 0xc3, 0xc7, 0xc1, 0x92,
1459 ],
1460 Core::Increment32 => [
1461 0x6b, 0xdb, 0xab, 0x7c, 0xfc, 0x16, 0xc5, 0x03, 0x36, 0x3c, 0x2f, 0x07, 0x7e, 0x02,
1462 0xc3, 0x35, 0xda, 0x40, 0x61, 0x75, 0xd1, 0x92, 0xfb, 0xef, 0x50, 0xc0, 0x7f, 0xc2,
1463 0x79, 0xb3, 0xf4, 0x0c,
1464 ],
1465 Core::Increment64 => [
1466 0x20, 0xe7, 0x5e, 0x71, 0x7c, 0xb7, 0x6d, 0x46, 0x95, 0x56, 0x4f, 0x7c, 0x20, 0x22,
1467 0x1b, 0x7a, 0x01, 0x43, 0x13, 0x87, 0x38, 0xf1, 0x51, 0xaa, 0x19, 0x5e, 0xb1, 0x70,
1468 0xec, 0x13, 0xc0, 0x49,
1469 ],
1470 Core::Increment8 => [
1471 0x5f, 0x4e, 0x05, 0x6e, 0xf4, 0xed, 0x8d, 0x68, 0xbf, 0x91, 0x1f, 0xc5, 0xcb, 0x69,
1472 0x03, 0x7e, 0xbf, 0x6c, 0x92, 0x21, 0x73, 0x43, 0xa8, 0x90, 0x5d, 0x38, 0xc4, 0x32,
1473 0xc1, 0x83, 0x23, 0x3c,
1474 ],
1475 Core::IsOne16 => [
1476 0x1b, 0xd3, 0xa2, 0x53, 0xdb, 0x24, 0x3f, 0xca, 0x45, 0x53, 0x37, 0x99, 0xfe, 0x91,
1477 0x48, 0x38, 0xc3, 0x8e, 0x38, 0x06, 0xb1, 0x2b, 0xd7, 0xe8, 0x5c, 0xa7, 0x12, 0x07,
1478 0xa8, 0x84, 0x62, 0xb0,
1479 ],
1480 Core::IsOne32 => [
1481 0x78, 0xb1, 0xba, 0xe0, 0x99, 0xec, 0x9c, 0x59, 0xcb, 0xf4, 0x12, 0x62, 0x51, 0xc1,
1482 0xe9, 0x67, 0x41, 0xb3, 0x50, 0xd5, 0x63, 0xbd, 0x74, 0xd5, 0x44, 0x18, 0xba, 0x78,
1483 0xeb, 0xea, 0x25, 0xbf,
1484 ],
1485 Core::IsOne64 => [
1486 0x81, 0x7b, 0x95, 0xa5, 0x39, 0x5e, 0xfb, 0xec, 0xbb, 0x85, 0x15, 0xa5, 0x5b, 0x3f,
1487 0xfe, 0x1a, 0x4d, 0x7b, 0xac, 0x6e, 0x23, 0xdb, 0xca, 0x54, 0xad, 0x60, 0x66, 0x66,
1488 0x2f, 0x20, 0x2b, 0x93,
1489 ],
1490 Core::IsOne8 => [
1491 0xf6, 0x92, 0x54, 0x91, 0xd3, 0x4b, 0x37, 0x74, 0x2c, 0xb0, 0x8d, 0xec, 0x19, 0x3e,
1492 0xe5, 0x12, 0x5f, 0x93, 0x3c, 0xad, 0xcc, 0x23, 0x2a, 0xed, 0xee, 0xdb, 0x57, 0x2d,
1493 0x12, 0x60, 0xff, 0xd5,
1494 ],
1495 Core::IsZero16 => [
1496 0x1b, 0xa7, 0x21, 0x3b, 0x58, 0x8b, 0xe0, 0x92, 0xb4, 0x46, 0x59, 0x9c, 0x2a, 0x60,
1497 0xff, 0x54, 0x67, 0x13, 0x6a, 0x79, 0x75, 0x99, 0x61, 0x0b, 0xd7, 0xa5, 0xf1, 0x78,
1498 0x04, 0xe3, 0x2a, 0x2c,
1499 ],
1500 Core::IsZero32 => [
1501 0x5e, 0xbf, 0x14, 0x66, 0x93, 0xf0, 0xe2, 0xd2, 0xf9, 0x36, 0x1b, 0x47, 0x6d, 0xba,
1502 0x34, 0x85, 0x8b, 0x83, 0x2d, 0x66, 0xfa, 0xcf, 0x71, 0x3b, 0xfb, 0x32, 0xc3, 0xbb,
1503 0x8d, 0xb9, 0xee, 0xbf,
1504 ],
1505 Core::IsZero64 => [
1506 0x19, 0xab, 0x9a, 0xc0, 0xcf, 0x42, 0x66, 0x82, 0x19, 0xba, 0x6c, 0xb8, 0x97, 0xe4,
1507 0x87, 0xfe, 0x36, 0x80, 0x93, 0x7f, 0xff, 0xa8, 0xd2, 0x03, 0x51, 0x1d, 0xb7, 0x5d,
1508 0xbb, 0x10, 0xc7, 0xe5,
1509 ],
1510 Core::IsZero8 => [
1511 0x8e, 0xff, 0x62, 0x08, 0x44, 0x07, 0xe9, 0xaf, 0xd5, 0x40, 0xf3, 0x18, 0xf6, 0x6b,
1512 0xcf, 0x31, 0xdf, 0x1d, 0x42, 0xa5, 0xc1, 0x61, 0xca, 0xe3, 0x5a, 0x29, 0x48, 0x18,
1513 0x0c, 0xa2, 0xaa, 0x2e,
1514 ],
1515 Core::Le16 => [
1516 0x01, 0x67, 0x05, 0xa7, 0xd7, 0xdc, 0xe1, 0xaf, 0xc6, 0x3e, 0xab, 0x84, 0x20, 0x3f,
1517 0x5f, 0x42, 0xd6, 0xb6, 0xbb, 0xad, 0x75, 0xce, 0xe3, 0x8c, 0xec, 0x5a, 0x51, 0x5b,
1518 0x59, 0x97, 0x48, 0x9f,
1519 ],
1520 Core::Le32 => [
1521 0x53, 0x51, 0xfc, 0x5d, 0xeb, 0xe5, 0xb2, 0x98, 0xad, 0x70, 0x57, 0xe4, 0xa5, 0xa7,
1522 0x6a, 0x3b, 0x9c, 0x65, 0x8a, 0xcd, 0xe7, 0xd1, 0xbb, 0x52, 0xe5, 0x88, 0x9c, 0xa1,
1523 0xe3, 0x8f, 0x5e, 0xfb,
1524 ],
1525 Core::Le64 => [
1526 0xae, 0x2d, 0xe1, 0xe0, 0xcf, 0x73, 0x0d, 0x1d, 0xcc, 0x96, 0xd7, 0xcc, 0xfe, 0x71,
1527 0x16, 0x8a, 0x24, 0x0d, 0xea, 0xf8, 0x04, 0x61, 0x5a, 0x7b, 0xa9, 0x20, 0xdc, 0x16,
1528 0xfd, 0x6e, 0xa4, 0x5f,
1529 ],
1530 Core::Le8 => [
1531 0xaf, 0x29, 0xf6, 0x16, 0x8e, 0xbd, 0xc0, 0x9e, 0xfb, 0xe0, 0xe6, 0x39, 0xcb, 0x75,
1532 0x0b, 0x12, 0x05, 0x78, 0x8f, 0x90, 0x21, 0xd6, 0x66, 0xef, 0xce, 0xfe, 0x13, 0xf1,
1533 0x2f, 0x96, 0x71, 0xf0,
1534 ],
1535 Core::LeftExtend16_32 => [
1536 0x28, 0x99, 0x97, 0xfb, 0xa1, 0xfa, 0xe7, 0xec, 0x1c, 0x45, 0x31, 0xc5, 0x0b, 0xbf,
1537 0x86, 0x71, 0xb8, 0x97, 0x13, 0x9b, 0xdd, 0x3a, 0xad, 0x97, 0xa3, 0x76, 0x39, 0x57,
1538 0x4a, 0x04, 0x7c, 0x80,
1539 ],
1540 Core::LeftExtend16_64 => [
1541 0x5d, 0xff, 0x21, 0xf6, 0xe6, 0x12, 0x47, 0x75, 0xc5, 0x78, 0xea, 0xf4, 0x85, 0x5c,
1542 0x0b, 0x01, 0x64, 0xf7, 0x87, 0x9b, 0x17, 0x60, 0xf9, 0x02, 0x7c, 0xb5, 0x0f, 0x7b,
1543 0x5a, 0xcb, 0x49, 0x18,
1544 ],
1545 Core::LeftExtend1_16 => [
1546 0x8c, 0x87, 0xd7, 0x56, 0xd1, 0x4b, 0xd3, 0xd9, 0xa7, 0x86, 0x90, 0x81, 0x29, 0x12,
1547 0xb8, 0x94, 0x29, 0xc0, 0x17, 0x1a, 0x41, 0x10, 0x3a, 0x58, 0xc6, 0xe9, 0xf2, 0x25,
1548 0x14, 0x1a, 0x02, 0x22,
1549 ],
1550 Core::LeftExtend1_32 => [
1551 0xc8, 0xf1, 0x54, 0xd4, 0x6d, 0x2e, 0x78, 0x95, 0xda, 0x1b, 0x33, 0xc2, 0xb3, 0x15,
1552 0xe6, 0xd4, 0xd4, 0x85, 0x1d, 0xde, 0xe2, 0x8a, 0xef, 0x8b, 0x70, 0x70, 0x90, 0x61,
1553 0x6b, 0xc7, 0xee, 0xa0,
1554 ],
1555 Core::LeftExtend1_64 => [
1556 0xa3, 0x40, 0x4d, 0xf6, 0x8c, 0xc9, 0x20, 0x75, 0x4c, 0x6e, 0x18, 0x47, 0x20, 0x7d,
1557 0xb3, 0x84, 0x5d, 0x11, 0xc7, 0x49, 0x09, 0xd0, 0x7c, 0xa8, 0x2a, 0xd1, 0xf1, 0xcc,
1558 0x67, 0xbf, 0x3a, 0x9b,
1559 ],
1560 Core::LeftExtend1_8 => [
1561 0x3b, 0xca, 0x33, 0x97, 0xb8, 0x3c, 0x27, 0xf3, 0x63, 0x16, 0xf8, 0xb8, 0xb3, 0x03,
1562 0x35, 0x0a, 0xfe, 0x8b, 0xa0, 0x07, 0x8f, 0x77, 0xf1, 0xd4, 0x2a, 0x9b, 0x78, 0x92,
1563 0xb2, 0xa4, 0xdb, 0xee,
1564 ],
1565 Core::LeftExtend32_64 => [
1566 0x42, 0xcb, 0xeb, 0x01, 0xfe, 0x7a, 0x3a, 0x6d, 0xd3, 0x31, 0x1d, 0xb3, 0x36, 0x5f,
1567 0x91, 0xe5, 0xc1, 0x18, 0xc7, 0xe4, 0x1f, 0x03, 0xaa, 0xe7, 0xb2, 0x83, 0xde, 0x6b,
1568 0xb9, 0x05, 0x3e, 0x6b,
1569 ],
1570 Core::LeftExtend8_16 => [
1571 0x9a, 0x57, 0xc9, 0x6a, 0xf5, 0x71, 0x48, 0x96, 0xb7, 0x24, 0xde, 0x45, 0xeb, 0x9f,
1572 0xe9, 0x7d, 0x73, 0x69, 0x7d, 0xe6, 0x2e, 0x8d, 0xad, 0x78, 0x71, 0xeb, 0x58, 0xf5,
1573 0x81, 0xa0, 0x11, 0xbb,
1574 ],
1575 Core::LeftExtend8_32 => [
1576 0xd6, 0x24, 0xbd, 0x40, 0x40, 0x76, 0x3c, 0xb1, 0x3c, 0xca, 0xd4, 0x98, 0xf5, 0x3d,
1577 0x38, 0xc1, 0x12, 0xf1, 0x92, 0x95, 0x68, 0x26, 0xda, 0xfe, 0xc9, 0xac, 0x91, 0x65,
1578 0x79, 0x2b, 0x34, 0x7a,
1579 ],
1580 Core::LeftExtend8_64 => [
1581 0x9d, 0xc4, 0xa2, 0x05, 0x4d, 0x5d, 0x26, 0x34, 0x2a, 0xc5, 0x90, 0xb6, 0x67, 0xf1,
1582 0xb0, 0x1d, 0xf5, 0x4f, 0xd0, 0xcd, 0xaa, 0x40, 0x5e, 0xf8, 0xcb, 0xb7, 0x6f, 0xd8,
1583 0xf9, 0xb0, 0x0e, 0xe5,
1584 ],
1585 Core::LeftPadHigh16_32 => [
1586 0x05, 0x45, 0xc4, 0xb5, 0x8f, 0x00, 0x4a, 0x21, 0xe7, 0xf1, 0x29, 0xa4, 0xc0, 0x51,
1587 0x89, 0x97, 0x17, 0x14, 0xca, 0xa2, 0xd9, 0x1d, 0x1d, 0xfd, 0x5f, 0xad, 0x3e, 0x63,
1588 0x24, 0x49, 0x94, 0x28,
1589 ],
1590 Core::LeftPadHigh16_64 => [
1591 0x1c, 0x61, 0xd0, 0x3d, 0x49, 0x3b, 0xbd, 0x05, 0x82, 0x22, 0x59, 0xd1, 0x73, 0x0a,
1592 0x8d, 0x7a, 0x5f, 0x55, 0xb0, 0xba, 0x2a, 0x93, 0x91, 0xa6, 0xc8, 0x88, 0x1e, 0xb4,
1593 0x75, 0x04, 0xaf, 0xfd,
1594 ],
1595 Core::LeftPadHigh1_16 => [
1596 0x56, 0xfd, 0xf5, 0x4f, 0x1f, 0xcd, 0x19, 0x82, 0x5e, 0x7c, 0x3b, 0x79, 0x06, 0x15,
1597 0xc1, 0xd3, 0xfe, 0x82, 0x88, 0x6c, 0x74, 0x7b, 0xc4, 0x87, 0x59, 0x87, 0xf5, 0x05,
1598 0x16, 0x94, 0x5f, 0xb3,
1599 ],
1600 Core::LeftPadHigh1_32 => [
1601 0xdb, 0x33, 0x05, 0x9a, 0xbe, 0x2d, 0x43, 0x2d, 0x67, 0xf4, 0x2b, 0x1e, 0x94, 0x27,
1602 0x56, 0xdc, 0xa6, 0xcd, 0xe6, 0x37, 0x85, 0xe5, 0xbd, 0x43, 0x0d, 0xc8, 0xf4, 0xae,
1603 0xfc, 0x31, 0xb8, 0xdf,
1604 ],
1605 Core::LeftPadHigh1_64 => [
1606 0x1d, 0x66, 0x9c, 0x1f, 0xa5, 0xfd, 0x3e, 0xf6, 0x6e, 0xb4, 0xae, 0xf6, 0x18, 0x6e,
1607 0x3e, 0xc1, 0x36, 0xee, 0x75, 0x84, 0x10, 0xdf, 0x3e, 0xde, 0xbb, 0x31, 0xbf, 0x26,
1608 0xd4, 0x56, 0x20, 0x51,
1609 ],
1610 Core::LeftPadHigh1_8 => [
1611 0x9a, 0x1b, 0xad, 0x3d, 0x8a, 0xb9, 0x00, 0x30, 0x3d, 0xa2, 0x02, 0xf0, 0xf4, 0x49,
1612 0xf0, 0xb7, 0xe6, 0x79, 0x5c, 0x2a, 0x7c, 0x12, 0x17, 0x18, 0x80, 0x0a, 0xc4, 0x0c,
1613 0x87, 0xd8, 0x27, 0x29,
1614 ],
1615 Core::LeftPadHigh32_64 => [
1616 0x39, 0x20, 0xcc, 0x4b, 0x33, 0xba, 0xf7, 0xef, 0xa5, 0xca, 0xf9, 0xe7, 0x80, 0x01,
1617 0x44, 0x67, 0x06, 0xf6, 0xe4, 0xe8, 0x26, 0x56, 0x74, 0x05, 0x7e, 0xed, 0x87, 0x17,
1618 0x78, 0x08, 0x9e, 0x94,
1619 ],
1620 Core::LeftPadHigh8_16 => [
1621 0x75, 0x2e, 0x29, 0xf2, 0xfe, 0x2b, 0xec, 0xc3, 0xf6, 0x62, 0x90, 0xfe, 0x44, 0xe1,
1622 0xae, 0xb3, 0x78, 0x41, 0x80, 0xdd, 0x90, 0x5e, 0x19, 0x62, 0x4e, 0x19, 0x5f, 0x21,
1623 0x6c, 0x07, 0xc5, 0x7c,
1624 ],
1625 Core::LeftPadHigh8_32 => [
1626 0xbe, 0xe8, 0x8f, 0x1c, 0x8c, 0x30, 0x63, 0x4c, 0x6e, 0x95, 0xca, 0xcc, 0x0e, 0x9a,
1627 0xdd, 0x49, 0x41, 0x32, 0x21, 0xfd, 0xab, 0xbd, 0x8d, 0x4c, 0x0a, 0xcc, 0xf1, 0xca,
1628 0xe2, 0xd2, 0xa7, 0x78,
1629 ],
1630 Core::LeftPadHigh8_64 => [
1631 0x39, 0x23, 0x87, 0xf6, 0xdc, 0x04, 0xbf, 0xc5, 0x4d, 0xd4, 0xa2, 0x81, 0x19, 0xc8,
1632 0x1d, 0x15, 0xd7, 0xa5, 0x80, 0x9b, 0xbf, 0x62, 0xfc, 0xc2, 0x7d, 0xc5, 0x5c, 0xf8,
1633 0x2e, 0x9e, 0x5e, 0xe6,
1634 ],
1635 Core::LeftPadLow16_32 => [
1636 0x4f, 0xfd, 0x6c, 0xb3, 0x40, 0x23, 0x05, 0x82, 0x1d, 0xd8, 0x99, 0x70, 0xd7, 0x22,
1637 0xd1, 0xc1, 0x3f, 0x1f, 0xf7, 0x73, 0x9f, 0xd5, 0xf3, 0x4b, 0xa1, 0x6c, 0x73, 0x65,
1638 0x3b, 0x04, 0x47, 0x18,
1639 ],
1640 Core::LeftPadLow16_64 => [
1641 0xbe, 0x3e, 0xb8, 0x5c, 0x5f, 0x19, 0x91, 0x53, 0xfb, 0x1c, 0x46, 0x13, 0x5c, 0x04,
1642 0xfa, 0xcf, 0xdb, 0xc6, 0xf1, 0xb7, 0x8c, 0x2b, 0xb7, 0xae, 0x75, 0xf1, 0x55, 0xbc,
1643 0x3e, 0xa0, 0x8a, 0x8b,
1644 ],
1645 Core::LeftPadLow1_16 => [
1646 0xdd, 0xd0, 0x15, 0x3e, 0xf3, 0x12, 0xf2, 0x8d, 0x64, 0x2c, 0xd9, 0x4c, 0xb3, 0x6f,
1647 0x32, 0x97, 0x75, 0xb0, 0x0d, 0xa8, 0x8f, 0xcc, 0xc4, 0xce, 0xa1, 0xba, 0xe8, 0x9b,
1648 0xad, 0x13, 0xbe, 0x6b,
1649 ],
1650 Core::LeftPadLow1_32 => [
1651 0xbc, 0x9d, 0x31, 0x14, 0x35, 0x46, 0x7b, 0xc0, 0x8b, 0x10, 0x08, 0xe5, 0x47, 0xaa,
1652 0x7a, 0x07, 0xe8, 0x3b, 0x15, 0x14, 0x68, 0x61, 0xa9, 0xe9, 0xb5, 0x41, 0x3b, 0xe3,
1653 0x1b, 0x82, 0xb6, 0xb5,
1654 ],
1655 Core::LeftPadLow1_64 => [
1656 0x8b, 0xc6, 0x2f, 0x93, 0x60, 0x89, 0x4e, 0x48, 0xa4, 0x73, 0x2c, 0x95, 0x76, 0x9c,
1657 0x8f, 0xaa, 0xe9, 0x56, 0x8f, 0x9d, 0xe8, 0xe8, 0xa2, 0x00, 0x83, 0x6b, 0xd4, 0xe5,
1658 0x0b, 0x02, 0xcd, 0x84,
1659 ],
1660 Core::LeftPadLow1_8 => [
1661 0xf6, 0x6c, 0xd7, 0xa4, 0x2b, 0x32, 0x0f, 0x97, 0xc1, 0x9f, 0x2d, 0x54, 0x16, 0xcd,
1662 0xe0, 0x87, 0x25, 0x3a, 0x27, 0x91, 0x29, 0x65, 0xd5, 0x5b, 0x65, 0x71, 0x2a, 0xd8,
1663 0x09, 0xb8, 0x3c, 0xfd,
1664 ],
1665 Core::LeftPadLow32_64 => [
1666 0xa3, 0x3a, 0x07, 0xb9, 0xbc, 0xf9, 0x45, 0xf6, 0x4f, 0x07, 0x2b, 0x8b, 0x9c, 0x91,
1667 0x48, 0x39, 0xa5, 0x85, 0xbf, 0xa9, 0xf3, 0x42, 0x5b, 0x14, 0x77, 0x54, 0xab, 0x55,
1668 0xa8, 0xba, 0x6c, 0x0f,
1669 ],
1670 Core::LeftPadLow8_16 => [
1671 0x2a, 0x51, 0x6a, 0x79, 0x3f, 0x97, 0xc4, 0x5f, 0xea, 0xeb, 0xb1, 0xcc, 0x96, 0x1a,
1672 0x15, 0x6d, 0x80, 0x35, 0x49, 0x28, 0x79, 0x78, 0x9d, 0x6e, 0xdc, 0x9b, 0x57, 0xe7,
1673 0x2f, 0x11, 0xe5, 0xb5,
1674 ],
1675 Core::LeftPadLow8_32 => [
1676 0x1a, 0xa2, 0xe4, 0xd0, 0x4b, 0xd6, 0x90, 0x55, 0x12, 0x3d, 0xd6, 0xaa, 0xfe, 0x27,
1677 0xf5, 0xf7, 0xf4, 0x7c, 0x3b, 0x30, 0x90, 0xc3, 0xa8, 0x27, 0x29, 0x73, 0xfe, 0x2f,
1678 0x75, 0x16, 0x5a, 0x5d,
1679 ],
1680 Core::LeftPadLow8_64 => [
1681 0xb6, 0x52, 0xe0, 0xae, 0xdd, 0x0f, 0x4f, 0x66, 0xf6, 0xa1, 0xcd, 0x4b, 0xeb, 0xf8,
1682 0x75, 0xff, 0x7b, 0xbb, 0x2d, 0xd9, 0x9b, 0x06, 0x5b, 0x2d, 0xb5, 0xb5, 0xb5, 0x90,
1683 0x53, 0x61, 0x61, 0x4d,
1684 ],
1685 Core::LeftRotate16 => [
1686 0x8a, 0x12, 0xff, 0x6a, 0x4b, 0xf2, 0x37, 0x15, 0xdd, 0x3b, 0x76, 0x6b, 0x99, 0x67,
1687 0xc7, 0x15, 0x8b, 0xf3, 0xed, 0x74, 0xb3, 0xdc, 0xe7, 0x30, 0xaf, 0xfc, 0xf4, 0x66,
1688 0x16, 0x47, 0x8e, 0xcb,
1689 ],
1690 Core::LeftRotate32 => [
1691 0x2f, 0xcb, 0x52, 0x17, 0x2f, 0xd4, 0x9c, 0x36, 0x21, 0x7d, 0xea, 0xe0, 0xc2, 0x37,
1692 0x14, 0x32, 0x1f, 0x69, 0xf5, 0xf1, 0x3f, 0x6e, 0x94, 0xb2, 0xbd, 0xfe, 0x4b, 0x74,
1693 0x88, 0x69, 0x7f, 0xd5,
1694 ],
1695 Core::LeftRotate64 => [
1696 0x72, 0xcc, 0xd6, 0xc4, 0xe5, 0xfd, 0xf6, 0x8a, 0xd3, 0x3b, 0x6d, 0x58, 0xfb, 0x37,
1697 0x2b, 0xe4, 0xf1, 0xb8, 0x0e, 0xef, 0x70, 0x1f, 0x9d, 0xb7, 0xe5, 0xed, 0x85, 0x9b,
1698 0x96, 0xb3, 0x62, 0x09,
1699 ],
1700 Core::LeftRotate8 => [
1701 0x1a, 0xae, 0xc9, 0xf3, 0xb7, 0x5d, 0x89, 0xf8, 0x2a, 0x64, 0x98, 0x45, 0x8c, 0x44,
1702 0x83, 0xcb, 0x9a, 0x78, 0x44, 0x89, 0x05, 0xf3, 0xbb, 0x39, 0xfc, 0x08, 0x3f, 0x14,
1703 0xdd, 0xcc, 0xdc, 0x9b,
1704 ],
1705 Core::LeftShift16 => [
1706 0x37, 0xac, 0x63, 0x87, 0x21, 0xab, 0x09, 0x7a, 0x96, 0x02, 0xba, 0x4d, 0xc9, 0x2e,
1707 0x19, 0xb5, 0xa1, 0x85, 0xb2, 0x32, 0x9f, 0x1a, 0xa6, 0x00, 0xcb, 0x9c, 0x15, 0x61,
1708 0x5a, 0x00, 0x81, 0xf8,
1709 ],
1710 Core::LeftShift32 => [
1711 0x8e, 0x3c, 0x47, 0x3b, 0x28, 0x67, 0xf1, 0x54, 0x73, 0xb3, 0x63, 0x2d, 0xbf, 0xdd,
1712 0x99, 0x77, 0x55, 0x51, 0xef, 0x5f, 0x9d, 0xba, 0x47, 0x5e, 0x9c, 0xf0, 0x90, 0x75,
1713 0x80, 0x70, 0xf0, 0xbf,
1714 ],
1715 Core::LeftShift64 => [
1716 0x50, 0x49, 0xf4, 0x04, 0xd1, 0x73, 0x29, 0x9a, 0x3a, 0xee, 0x04, 0xcb, 0xc2, 0x46,
1717 0x2c, 0xb3, 0x4c, 0x80, 0x69, 0xc1, 0xb6, 0xdb, 0x7f, 0xed, 0x0e, 0x38, 0x8f, 0xf6,
1718 0xd4, 0x67, 0xa0, 0x86,
1719 ],
1720 Core::LeftShift8 => [
1721 0x83, 0x2f, 0x63, 0x6e, 0x63, 0x44, 0x6c, 0xef, 0xba, 0x8d, 0xf3, 0xa4, 0x6e, 0xfb,
1722 0xb3, 0x61, 0x59, 0xc1, 0x88, 0x54, 0x56, 0x77, 0x68, 0xad, 0xc9, 0xb8, 0xdb, 0x8a,
1723 0x07, 0x49, 0x2a, 0x58,
1724 ],
1725 Core::LeftShiftWith16 => [
1726 0xe6, 0x47, 0x62, 0xb1, 0xc5, 0xe6, 0x14, 0x4a, 0x71, 0x81, 0xea, 0xaf, 0x4d, 0xd9,
1727 0xd9, 0xb3, 0xaa, 0x43, 0xaa, 0xd9, 0x55, 0x15, 0x81, 0x98, 0xee, 0x20, 0x90, 0xeb,
1728 0xd9, 0xe4, 0xbb, 0x0d,
1729 ],
1730 Core::LeftShiftWith32 => [
1731 0x64, 0x76, 0xba, 0x89, 0x95, 0xf8, 0x3b, 0x5e, 0xe1, 0xeb, 0xc2, 0x2c, 0xb4, 0x16,
1732 0xf5, 0x58, 0x15, 0x7f, 0x2e, 0x57, 0x69, 0x9a, 0x5c, 0xaf, 0x84, 0x29, 0x1f, 0xf3,
1733 0xfc, 0x14, 0x83, 0xc1,
1734 ],
1735 Core::LeftShiftWith64 => [
1736 0x06, 0xb8, 0xfe, 0x67, 0xcf, 0xc5, 0x86, 0x32, 0x23, 0x97, 0xaf, 0x02, 0x4f, 0xde,
1737 0x29, 0x11, 0xf7, 0xae, 0x87, 0xa0, 0x6a, 0xbc, 0x6c, 0x59, 0x30, 0x93, 0x40, 0x97,
1738 0x15, 0x69, 0x1c, 0x19,
1739 ],
1740 Core::LeftShiftWith8 => [
1741 0xb1, 0xac, 0x9c, 0x68, 0x23, 0x58, 0xc4, 0x5b, 0xab, 0xf4, 0x06, 0x95, 0x56, 0xfe,
1742 0x6e, 0x37, 0x5b, 0x45, 0x54, 0xde, 0x9e, 0x10, 0xc5, 0x91, 0xc1, 0x48, 0x39, 0x84,
1743 0x47, 0xac, 0x18, 0x0e,
1744 ],
1745 Core::Leftmost16_1 => [
1746 0x5b, 0xff, 0x4c, 0xb5, 0x58, 0x76, 0x05, 0xd5, 0xfd, 0x05, 0x9d, 0x77, 0x33, 0x49,
1747 0x0d, 0x7d, 0xd2, 0x2d, 0x27, 0x8b, 0x59, 0x9e, 0x06, 0xd3, 0xb5, 0xdb, 0x6d, 0x79,
1748 0xf3, 0xc9, 0x23, 0xbd,
1749 ],
1750 Core::Leftmost16_2 => [
1751 0x53, 0x6d, 0xb4, 0x86, 0xb1, 0x22, 0x27, 0xe5, 0xb0, 0x9d, 0x6f, 0xeb, 0xd2, 0x77,
1752 0x6b, 0x1a, 0xbb, 0xc6, 0x74, 0x99, 0x96, 0xaa, 0x78, 0x3e, 0xd7, 0xe5, 0x37, 0x44,
1753 0x6b, 0xbf, 0x15, 0x1b,
1754 ],
1755 Core::Leftmost16_4 => [
1756 0xf2, 0x32, 0x13, 0x67, 0x49, 0x6d, 0x1a, 0x77, 0xee, 0xa0, 0x5e, 0x95, 0xe3, 0xb8,
1757 0x07, 0xd3, 0xba, 0x5f, 0x05, 0x13, 0x6c, 0xe0, 0x91, 0x2a, 0xe7, 0x17, 0xc8, 0x3a,
1758 0x02, 0x61, 0xb2, 0xe1,
1759 ],
1760 Core::Leftmost16_8 => [
1761 0x24, 0x14, 0x8e, 0xf3, 0x0a, 0xd4, 0x3e, 0xbe, 0xc5, 0x63, 0x72, 0x83, 0x22, 0xc3,
1762 0xce, 0x11, 0x79, 0xae, 0xd7, 0xa7, 0x82, 0x16, 0xd7, 0x99, 0x88, 0x8b, 0xf1, 0x8b,
1763 0x39, 0x57, 0x06, 0x71,
1764 ],
1765 Core::Leftmost32_1 => [
1766 0xb9, 0x2e, 0x15, 0xec, 0x5d, 0xa0, 0x7e, 0xe8, 0xed, 0x39, 0x7c, 0xb9, 0xf6, 0x0a,
1767 0x4c, 0x5d, 0xa8, 0x38, 0x62, 0x93, 0x1a, 0x90, 0x73, 0x59, 0xd2, 0x7c, 0xae, 0xb6,
1768 0x0e, 0x60, 0xef, 0x8a,
1769 ],
1770 Core::Leftmost32_16 => [
1771 0xad, 0xb0, 0x27, 0xb2, 0x06, 0x56, 0x73, 0x58, 0x53, 0x26, 0xc0, 0x1c, 0x3b, 0xe2,
1772 0xfa, 0xeb, 0x38, 0x63, 0x49, 0xe2, 0x90, 0x09, 0xb6, 0x57, 0x6e, 0xe5, 0x3a, 0x85,
1773 0x55, 0x12, 0xcc, 0x67,
1774 ],
1775 Core::Leftmost32_2 => [
1776 0xb7, 0x5b, 0x31, 0xc5, 0x59, 0x12, 0x3d, 0x3d, 0x63, 0x35, 0x98, 0x59, 0x32, 0xb8,
1777 0xb1, 0xb2, 0x66, 0x4e, 0xe5, 0x97, 0xaf, 0xb1, 0x5f, 0xd1, 0xa4, 0x99, 0xd0, 0x07,
1778 0xcf, 0xf2, 0x75, 0x5c,
1779 ],
1780 Core::Leftmost32_4 => [
1781 0xcb, 0x75, 0x7e, 0x47, 0x1e, 0x9d, 0x9a, 0x40, 0x77, 0x1d, 0xd1, 0xcf, 0x3c, 0x1b,
1782 0xf5, 0xd2, 0x3c, 0x17, 0xed, 0x68, 0xcd, 0xbd, 0xb2, 0x2d, 0xad, 0xa1, 0x7a, 0x73,
1783 0xa7, 0xb4, 0x07, 0xb2,
1784 ],
1785 Core::Leftmost32_8 => [
1786 0xbf, 0xc5, 0x34, 0xb4, 0x9e, 0x06, 0x00, 0x6e, 0x19, 0xf3, 0xb6, 0x8e, 0x0a, 0x02,
1787 0x39, 0x1c, 0x14, 0x9f, 0x9a, 0x34, 0xf4, 0x3e, 0xe3, 0x6b, 0x9f, 0x1d, 0x79, 0xa7,
1788 0x9c, 0x9a, 0x9e, 0x4d,
1789 ],
1790 Core::Leftmost64_1 => [
1791 0x1b, 0x1d, 0x4e, 0x92, 0x38, 0x4b, 0x8b, 0x15, 0x9b, 0xa0, 0xd8, 0x06, 0x55, 0x8b,
1792 0x54, 0x94, 0xe3, 0x61, 0x4e, 0xed, 0xe0, 0x3c, 0x94, 0x6c, 0xea, 0xf1, 0x41, 0xf3,
1793 0x6f, 0x01, 0xc7, 0x9b,
1794 ],
1795 Core::Leftmost64_16 => [
1796 0x0d, 0xeb, 0xdc, 0x1a, 0xa0, 0x43, 0x30, 0x34, 0x42, 0xe1, 0x8f, 0xe0, 0x3d, 0x8a,
1797 0x99, 0xd2, 0xbe, 0x6b, 0xb8, 0xa8, 0x69, 0x1a, 0xba, 0x19, 0x56, 0x62, 0x59, 0xe3,
1798 0x67, 0x60, 0xf7, 0xf9,
1799 ],
1800 Core::Leftmost64_2 => [
1801 0x83, 0x9e, 0xcf, 0xa3, 0x18, 0x70, 0x5c, 0x25, 0x3d, 0x0c, 0x52, 0xff, 0x27, 0xb9,
1802 0x04, 0x64, 0x92, 0x3d, 0x8c, 0x0e, 0x55, 0xa8, 0x2c, 0x0d, 0x16, 0x24, 0x02, 0x39,
1803 0x7f, 0x36, 0x53, 0x78,
1804 ],
1805 Core::Leftmost64_32 => [
1806 0x92, 0x91, 0x97, 0xa9, 0x64, 0x28, 0x61, 0xa7, 0x7b, 0xd6, 0x62, 0x58, 0x05, 0x11,
1807 0x97, 0xbe, 0x86, 0xff, 0x08, 0xe6, 0x28, 0xe3, 0x0f, 0x7e, 0xfc, 0xbd, 0x2c, 0x4d,
1808 0xfe, 0xcf, 0x9b, 0xdd,
1809 ],
1810 Core::Leftmost64_4 => [
1811 0x02, 0xbd, 0x16, 0x45, 0xd5, 0x75, 0xf0, 0x4b, 0x3c, 0xbb, 0xaa, 0x6d, 0x8c, 0xa9,
1812 0x86, 0xef, 0x1c, 0x8c, 0xd0, 0xff, 0xe1, 0x65, 0x89, 0x03, 0x93, 0x9d, 0xb7, 0x64,
1813 0x56, 0x2a, 0x26, 0x47,
1814 ],
1815 Core::Leftmost64_8 => [
1816 0x35, 0x58, 0xb3, 0x1b, 0x3b, 0x6e, 0x8f, 0x9a, 0x28, 0x8f, 0xdc, 0x72, 0xf2, 0x46,
1817 0x02, 0xbe, 0x05, 0x58, 0x19, 0x10, 0x71, 0xa5, 0x4a, 0x99, 0xfa, 0x03, 0xa0, 0x25,
1818 0x34, 0xf8, 0x80, 0x05,
1819 ],
1820 Core::Leftmost8_1 => [
1821 0x28, 0x65, 0xef, 0xd4, 0x29, 0x83, 0xcb, 0xe3, 0xf8, 0x16, 0x37, 0x3a, 0xb8, 0xa8,
1822 0x82, 0xf1, 0x83, 0x17, 0x19, 0x4d, 0xc1, 0xab, 0xa3, 0x8d, 0xa0, 0x30, 0x4b, 0x8c,
1823 0x14, 0x4b, 0x1d, 0xa4,
1824 ],
1825 Core::Leftmost8_2 => [
1826 0x51, 0x96, 0x4c, 0xb0, 0x74, 0x05, 0xa8, 0xd2, 0x3d, 0x21, 0x87, 0x74, 0x1a, 0x9e,
1827 0xd3, 0x04, 0xbc, 0xb4, 0x69, 0xd9, 0xac, 0x9f, 0x5d, 0x92, 0x55, 0x82, 0x5c, 0xfd,
1828 0xa3, 0xda, 0x07, 0xc0,
1829 ],
1830 Core::Leftmost8_4 => [
1831 0x88, 0x3c, 0x94, 0xf8, 0xa2, 0x6c, 0xda, 0xb7, 0xbc, 0x5c, 0xd6, 0x31, 0xe5, 0x22,
1832 0x55, 0xa8, 0x5e, 0xf6, 0xe0, 0x70, 0x76, 0x64, 0x57, 0xf6, 0x32, 0x1e, 0x2c, 0xcb,
1833 0x11, 0x9d, 0x9b, 0x2b,
1834 ],
1835 Core::LinearCombination1 => [
1836 0x34, 0x10, 0xa9, 0xee, 0x33, 0x3d, 0xf8, 0xc8, 0xa0, 0x1c, 0x14, 0x11, 0x5b, 0x54,
1837 0x43, 0x27, 0xe3, 0x24, 0xe2, 0x87, 0xaa, 0x11, 0x07, 0xe0, 0x19, 0x55, 0xbd, 0x20,
1838 0x50, 0x6e, 0xa9, 0x87,
1839 ],
1840 Core::LinearVerify1 => [
1841 0xdc, 0x66, 0xd3, 0x31, 0xc1, 0x7f, 0x3f, 0xdd, 0xa3, 0x99, 0x46, 0x98, 0x1b, 0x39,
1842 0xb3, 0x57, 0xd0, 0x55, 0x5c, 0x35, 0x62, 0xec, 0xae, 0x02, 0xaa, 0x2d, 0xad, 0x16,
1843 0x3e, 0x6c, 0x9a, 0x2e,
1844 ],
1845 Core::Low1 => [
1846 0xfe, 0x62, 0x14, 0xf9, 0x67, 0x15, 0x6d, 0xcd, 0xe6, 0xdd, 0x49, 0xfd, 0xc5, 0x5e,
1847 0xfb, 0x86, 0x50, 0x69, 0xfe, 0xab, 0xff, 0xf0, 0xfe, 0x93, 0x1d, 0xba, 0x85, 0x31,
1848 0x34, 0xee, 0xd1, 0x30,
1849 ],
1850 Core::Low16 => [
1851 0x74, 0x93, 0xcf, 0x69, 0x8a, 0x48, 0x82, 0xe5, 0xc3, 0x57, 0x9d, 0x06, 0x51, 0x8e,
1852 0x7e, 0xca, 0x2b, 0x84, 0x28, 0xf6, 0x2e, 0x2b, 0x51, 0x38, 0x02, 0xab, 0xe6, 0x22,
1853 0x17, 0x0c, 0x20, 0xfe,
1854 ],
1855 Core::Low32 => [
1856 0x36, 0x2d, 0x66, 0xa4, 0xf0, 0xae, 0xb9, 0x65, 0x84, 0xa5, 0x67, 0x57, 0x82, 0x71,
1857 0xb1, 0xf7, 0xbb, 0xfc, 0xc2, 0xde, 0x0d, 0xcf, 0x95, 0x79, 0x6b, 0x6f, 0x7a, 0x82,
1858 0x6b, 0x2a, 0x8a, 0xf7,
1859 ],
1860 Core::Low64 => [
1861 0x97, 0x33, 0x23, 0xbc, 0x2b, 0x92, 0xe4, 0x28, 0x04, 0xd2, 0xe4, 0xf5, 0x8b, 0x86,
1862 0xf6, 0x5b, 0x56, 0xf9, 0x1d, 0xee, 0xb4, 0x81, 0x0e, 0xab, 0x8a, 0x1d, 0xed, 0xa9,
1863 0x69, 0x7a, 0x08, 0x72,
1864 ],
1865 Core::Low8 => [
1866 0xcd, 0x1a, 0x85, 0x58, 0xef, 0x99, 0xa3, 0x22, 0x60, 0x21, 0x7a, 0x76, 0x49, 0xff,
1867 0x51, 0x40, 0xda, 0x69, 0xda, 0x70, 0x06, 0x72, 0x69, 0x0b, 0x27, 0x91, 0x7b, 0x07,
1868 0xd7, 0xc1, 0x4c, 0x67,
1869 ],
1870 Core::Lt16 => [
1871 0x04, 0xac, 0xa8, 0x7e, 0x3e, 0x17, 0xf8, 0x05, 0xa2, 0x1c, 0xf2, 0x91, 0x7a, 0xee,
1872 0x99, 0x57, 0xb9, 0x50, 0xb2, 0xdb, 0x5d, 0x7a, 0xe5, 0xc8, 0x26, 0xd4, 0xac, 0x2e,
1873 0xc9, 0x7b, 0x5a, 0x52,
1874 ],
1875 Core::Lt32 => [
1876 0x23, 0xa0, 0xa5, 0xc1, 0x97, 0x74, 0x7e, 0x3a, 0x95, 0x79, 0xe9, 0x0e, 0x0f, 0x22,
1877 0xf8, 0x4a, 0x29, 0xbf, 0xb5, 0xf0, 0x7b, 0x84, 0xb5, 0x9b, 0x26, 0x68, 0x8a, 0x0c,
1878 0xd5, 0x9d, 0xfe, 0xbd,
1879 ],
1880 Core::Lt64 => [
1881 0xd2, 0x99, 0x90, 0x1c, 0x7b, 0x5b, 0x3a, 0x59, 0xff, 0xc8, 0xdd, 0x09, 0x54, 0x5a,
1882 0x32, 0x38, 0x24, 0xb7, 0x79, 0xa9, 0x9b, 0x2d, 0x1a, 0x2f, 0x87, 0x45, 0x2d, 0x9e,
1883 0x4b, 0xef, 0xaf, 0x30,
1884 ],
1885 Core::Lt8 => [
1886 0xdd, 0x94, 0x41, 0x3b, 0x52, 0x9c, 0x29, 0x8c, 0x16, 0x96, 0xe9, 0xfb, 0x08, 0xe6,
1887 0x67, 0x67, 0xb3, 0xf8, 0x33, 0x7a, 0xc0, 0x2e, 0x44, 0xb0, 0x68, 0xe9, 0x40, 0x14,
1888 0xf7, 0xc4, 0x1f, 0x2a,
1889 ],
1890 Core::Maj1 => [
1891 0x0e, 0x6f, 0xb4, 0x0f, 0xe3, 0x1a, 0x3a, 0x52, 0x6b, 0x44, 0xcf, 0x0b, 0x7c, 0x79,
1892 0x36, 0xc7, 0x77, 0xcb, 0xba, 0x89, 0x65, 0xa7, 0x25, 0x52, 0x32, 0xa7, 0xcf, 0x53,
1893 0xa9, 0x22, 0x88, 0x5a,
1894 ],
1895 Core::Maj16 => [
1896 0x38, 0x66, 0x9c, 0xe5, 0xe1, 0xe1, 0x71, 0x47, 0x54, 0x00, 0x73, 0x1b, 0xee, 0xb6,
1897 0x0b, 0xca, 0xfa, 0xd6, 0x66, 0x04, 0xc9, 0x39, 0x40, 0x16, 0x0c, 0xd7, 0x12, 0x88,
1898 0x35, 0x55, 0x93, 0x42,
1899 ],
1900 Core::Maj32 => [
1901 0x55, 0x54, 0x34, 0x9b, 0x58, 0x4f, 0x5c, 0x38, 0x72, 0xc7, 0xf4, 0xf2, 0x57, 0x82,
1902 0x9e, 0x2a, 0xe8, 0x22, 0xd8, 0x23, 0x42, 0x4c, 0xeb, 0x95, 0x98, 0xf0, 0x83, 0x18,
1903 0x58, 0x6a, 0x88, 0x07,
1904 ],
1905 Core::Maj64 => [
1906 0x73, 0x49, 0x03, 0xba, 0xef, 0xb7, 0x1d, 0x5e, 0xa4, 0x16, 0x48, 0xff, 0x43, 0xee,
1907 0xe6, 0x98, 0x94, 0xe0, 0x63, 0xb3, 0x88, 0xea, 0x42, 0x2f, 0x96, 0xae, 0xde, 0x19,
1908 0x3c, 0xea, 0xb8, 0x39,
1909 ],
1910 Core::Maj8 => [
1911 0xba, 0x47, 0xa3, 0x99, 0xdc, 0x94, 0x35, 0xe1, 0x8e, 0x08, 0x0a, 0x4e, 0x18, 0xaf,
1912 0x7c, 0x65, 0x7f, 0xd3, 0x9f, 0x7c, 0xe7, 0xd6, 0x05, 0x2e, 0x46, 0x90, 0x23, 0x11,
1913 0xb0, 0x78, 0xd5, 0x85,
1914 ],
1915 Core::Max16 => [
1916 0xaa, 0x55, 0x23, 0x74, 0x6c, 0xab, 0xfa, 0xf5, 0x66, 0x8e, 0x9e, 0x07, 0x37, 0xe5,
1917 0x6b, 0x06, 0x06, 0x22, 0x51, 0xd7, 0xe8, 0x0a, 0xb9, 0xb9, 0x10, 0x6d, 0x8f, 0x17,
1918 0x2d, 0xc8, 0x4d, 0xd6,
1919 ],
1920 Core::Max32 => [
1921 0x69, 0x22, 0x96, 0x5d, 0x14, 0x43, 0x45, 0xc9, 0x13, 0xec, 0xb3, 0x0b, 0x5e, 0xd4,
1922 0x7e, 0x88, 0xda, 0xe3, 0x5c, 0x12, 0x21, 0xf2, 0x6a, 0xa9, 0x2d, 0xd5, 0xa5, 0xf6,
1923 0x15, 0xdb, 0xdb, 0x53,
1924 ],
1925 Core::Max64 => [
1926 0x8a, 0x9b, 0xe9, 0x07, 0xb6, 0xa4, 0xc3, 0x0a, 0xbc, 0xc0, 0xf2, 0x2d, 0x01, 0x30,
1927 0x74, 0xc2, 0xd5, 0x6b, 0xb0, 0x81, 0xf2, 0x62, 0x18, 0x57, 0xd5, 0x38, 0xcc, 0x97,
1928 0x13, 0x1e, 0x44, 0x09,
1929 ],
1930 Core::Max8 => [
1931 0xb4, 0xbf, 0x93, 0x23, 0x40, 0x22, 0xe8, 0x60, 0xfe, 0x76, 0xc0, 0xb5, 0x36, 0x0e,
1932 0x8b, 0x36, 0xff, 0x81, 0xee, 0x67, 0x05, 0xb5, 0x93, 0xac, 0xdf, 0x65, 0x5a, 0xc6,
1933 0xe6, 0xd7, 0xae, 0xba,
1934 ],
1935 Core::Median16 => [
1936 0x17, 0xe2, 0xe8, 0x7f, 0x07, 0x60, 0xf4, 0xfb, 0x3c, 0x9f, 0xd0, 0xbe, 0xd0, 0x00,
1937 0xd7, 0x39, 0x73, 0xab, 0x60, 0xf5, 0xe6, 0xc2, 0xc1, 0xfa, 0xb1, 0x7f, 0x9b, 0x23,
1938 0xee, 0x6a, 0xca, 0x48,
1939 ],
1940 Core::Median32 => [
1941 0x11, 0x60, 0xae, 0x8e, 0xa8, 0xd3, 0x0f, 0x9a, 0x22, 0x33, 0xc4, 0x8e, 0x73, 0x12,
1942 0x40, 0xf8, 0x44, 0x93, 0xb8, 0x28, 0xb5, 0x57, 0x93, 0xe2, 0xf4, 0x04, 0x2a, 0x19,
1943 0x82, 0xac, 0x26, 0xa5,
1944 ],
1945 Core::Median64 => [
1946 0xc8, 0x73, 0x73, 0x64, 0x9e, 0x7e, 0x40, 0x50, 0xbb, 0x73, 0x33, 0x7e, 0x08, 0xeb,
1947 0x5d, 0xe4, 0x52, 0x28, 0xab, 0x86, 0xad, 0x4e, 0x1f, 0x41, 0x91, 0xe5, 0x20, 0x2a,
1948 0xa6, 0xaf, 0xa0, 0xc5,
1949 ],
1950 Core::Median8 => [
1951 0xc3, 0xb4, 0xe0, 0x89, 0x8a, 0x21, 0xbd, 0xe9, 0x4d, 0xae, 0xd3, 0x7a, 0x20, 0xad,
1952 0xf9, 0x0c, 0x8b, 0xe5, 0x69, 0x1a, 0x03, 0xb6, 0xa1, 0xe5, 0x56, 0x38, 0x5d, 0x42,
1953 0xeb, 0x19, 0x02, 0x2b,
1954 ],
1955 Core::Min16 => [
1956 0x5f, 0xd0, 0x05, 0x1e, 0xdb, 0x37, 0x19, 0xa6, 0x45, 0xb2, 0x72, 0xa0, 0x21, 0x08,
1957 0xef, 0xbb, 0x3d, 0x9b, 0xc0, 0xf6, 0x06, 0x21, 0xbf, 0x5a, 0x5b, 0xab, 0xe1, 0x16,
1958 0xd5, 0x55, 0xd5, 0x78,
1959 ],
1960 Core::Min32 => [
1961 0xd8, 0x07, 0x82, 0xa2, 0xb5, 0xd8, 0x6a, 0xb6, 0xb9, 0xc9, 0xc3, 0xfb, 0x77, 0x8a,
1962 0x34, 0x73, 0xf6, 0x00, 0xb1, 0x85, 0xfe, 0x19, 0x25, 0xee, 0x9f, 0xc2, 0xe8, 0x77,
1963 0x7e, 0xd2, 0x66, 0x01,
1964 ],
1965 Core::Min64 => [
1966 0xc5, 0xc0, 0x9d, 0x50, 0x13, 0x38, 0xe9, 0xa5, 0x12, 0xcf, 0x89, 0x76, 0xca, 0x4b,
1967 0x32, 0xb9, 0x24, 0x80, 0xbe, 0xf6, 0xae, 0xb2, 0x9d, 0x36, 0xd5, 0x90, 0xd3, 0x5b,
1968 0xf9, 0xf9, 0xec, 0xe1,
1969 ],
1970 Core::Min8 => [
1971 0x81, 0xd2, 0x1e, 0x12, 0x81, 0x42, 0x38, 0x81, 0x80, 0x2c, 0x0e, 0x0c, 0x7d, 0x22,
1972 0xbd, 0x34, 0xd2, 0x6b, 0xd1, 0x2a, 0x4c, 0x4f, 0x1b, 0x70, 0x68, 0xe7, 0xe1, 0x83,
1973 0x82, 0x08, 0x48, 0xe9,
1974 ],
1975 Core::Modulo16 => [
1976 0xb6, 0xb8, 0x7c, 0xfa, 0xb6, 0x7e, 0x55, 0x19, 0xf1, 0xc9, 0x98, 0xda, 0x47, 0x94,
1977 0x37, 0xbb, 0x79, 0xe6, 0x74, 0xf7, 0x15, 0xe9, 0xa2, 0xe5, 0x38, 0xee, 0xc5, 0xec,
1978 0x18, 0xe1, 0x8e, 0xa5,
1979 ],
1980 Core::Modulo32 => [
1981 0x8d, 0x48, 0x6e, 0x83, 0x16, 0x54, 0xf3, 0x8a, 0x32, 0xda, 0x35, 0xeb, 0x7b, 0xb6,
1982 0x55, 0xa6, 0xed, 0x69, 0x4d, 0xbf, 0xa0, 0x58, 0x95, 0x7d, 0x9f, 0x5c, 0xbf, 0xcc,
1983 0x57, 0x92, 0xc6, 0x5b,
1984 ],
1985 Core::Modulo64 => [
1986 0x14, 0xdf, 0x20, 0xd9, 0x3d, 0xfd, 0xef, 0xe2, 0x55, 0x9b, 0xac, 0x50, 0xed, 0x38,
1987 0x19, 0x3b, 0xd7, 0x8b, 0xd6, 0x3f, 0x92, 0x9d, 0x86, 0xfb, 0x4f, 0x29, 0xa7, 0xc5,
1988 0xaf, 0x32, 0x42, 0xad,
1989 ],
1990 Core::Modulo8 => [
1991 0x2c, 0x75, 0x8a, 0x7c, 0x0f, 0x59, 0xe8, 0x00, 0xe9, 0x4f, 0x3d, 0xc5, 0xa0, 0x01,
1992 0xbf, 0x8e, 0xd9, 0x43, 0x5f, 0x75, 0xa2, 0xd9, 0x69, 0x30, 0xc5, 0x7e, 0xaa, 0xb0,
1993 0xcd, 0x80, 0xaf, 0x5c,
1994 ],
1995 Core::Multiply16 => [
1996 0x75, 0xbd, 0x41, 0xf2, 0xd2, 0xb3, 0x39, 0xf0, 0x69, 0xbf, 0xdf, 0xd8, 0x02, 0xd6,
1997 0x1e, 0x6c, 0xa8, 0xe3, 0xba, 0xd6, 0xfb, 0x6d, 0x95, 0xb6, 0x72, 0x09, 0x5b, 0x93,
1998 0x34, 0x5f, 0x04, 0x7f,
1999 ],
2000 Core::Multiply32 => [
2001 0x84, 0xcb, 0xe6, 0xce, 0x87, 0x03, 0x79, 0x92, 0x13, 0x87, 0x7c, 0x1b, 0xd5, 0x05,
2002 0xc7, 0x64, 0x34, 0x33, 0x69, 0x00, 0x2e, 0x50, 0x2c, 0x43, 0xd9, 0x7f, 0x3d, 0x57,
2003 0x77, 0x2d, 0x6c, 0x87,
2004 ],
2005 Core::Multiply64 => [
2006 0x92, 0x98, 0x7b, 0x80, 0x1b, 0x92, 0xf6, 0x79, 0xeb, 0x96, 0x13, 0x68, 0x84, 0x44,
2007 0xa1, 0x78, 0x87, 0x50, 0xa8, 0x50, 0x6e, 0x03, 0xa9, 0x21, 0x8c, 0x21, 0xec, 0xc7,
2008 0x20, 0x82, 0xdc, 0x6a,
2009 ],
2010 Core::Multiply8 => [
2011 0x76, 0x4c, 0xab, 0x71, 0xdb, 0x94, 0x59, 0xa7, 0x69, 0x6d, 0x94, 0x4a, 0x50, 0x09,
2012 0x5b, 0x1a, 0xeb, 0xdf, 0xd9, 0x28, 0x4b, 0xdb, 0x74, 0x96, 0xa7, 0xb3, 0x02, 0x41,
2013 0xcc, 0xba, 0x3e, 0xce,
2014 ],
2015 Core::Negate16 => [
2016 0xe7, 0x60, 0xee, 0x40, 0x29, 0xc3, 0x4f, 0x89, 0x74, 0x06, 0xff, 0xde, 0xa5, 0x55,
2017 0x84, 0x86, 0x62, 0xe8, 0x9c, 0x98, 0x3e, 0x60, 0x70, 0xbd, 0x02, 0x72, 0xad, 0x0f,
2018 0xa3, 0x42, 0xef, 0xa3,
2019 ],
2020 Core::Negate32 => [
2021 0x84, 0x95, 0xb7, 0x40, 0x09, 0xad, 0x07, 0xc9, 0x30, 0x2a, 0x25, 0xae, 0x56, 0xc3,
2022 0xe9, 0x73, 0x3f, 0x00, 0xc2, 0xba, 0xa4, 0x10, 0xea, 0xc4, 0xa5, 0x8e, 0x75, 0xdb,
2023 0x83, 0xaf, 0x1d, 0x22,
2024 ],
2025 Core::Negate64 => [
2026 0x34, 0xe8, 0x9f, 0xaf, 0x34, 0x5a, 0xfd, 0x5e, 0x7b, 0x29, 0x00, 0x14, 0x52, 0xfc,
2027 0x5f, 0xc2, 0xe3, 0x78, 0x3a, 0xf7, 0xf2, 0x10, 0x16, 0x43, 0xbd, 0x76, 0x70, 0x6a,
2028 0x6f, 0xc3, 0xf3, 0x6a,
2029 ],
2030 Core::Negate8 => [
2031 0xe8, 0x1b, 0xe0, 0xb1, 0x5c, 0x67, 0x1a, 0xb8, 0xdf, 0x1f, 0x48, 0x69, 0xc5, 0x7f,
2032 0x11, 0x11, 0x18, 0xcb, 0x66, 0x83, 0x54, 0x97, 0x5c, 0x63, 0x66, 0xec, 0xb2, 0xb8,
2033 0xbb, 0x7c, 0x15, 0xcf,
2034 ],
2035 Core::One16 => [
2036 0x2e, 0x5e, 0x3d, 0x95, 0xe4, 0x53, 0x16, 0x88, 0x8e, 0x4f, 0x37, 0x09, 0xef, 0x83,
2037 0x2b, 0x9f, 0xd9, 0xe1, 0x5f, 0x30, 0x71, 0x9b, 0xf5, 0x5f, 0xc2, 0xe0, 0xe0, 0x9a,
2038 0x36, 0x57, 0xd8, 0x82,
2039 ],
2040 Core::One32 => [
2041 0x06, 0x42, 0x6b, 0x85, 0x3c, 0x1b, 0xcb, 0x33, 0x8a, 0xed, 0xbe, 0x1f, 0x89, 0xa6,
2042 0xd9, 0xb7, 0xa3, 0xda, 0x03, 0x8c, 0xd0, 0x0a, 0x44, 0x71, 0x18, 0x36, 0x93, 0x49,
2043 0x66, 0x9e, 0x29, 0x76,
2044 ],
2045 Core::One64 => [
2046 0xab, 0x1d, 0x2c, 0xd9, 0x96, 0x78, 0xda, 0x3c, 0x12, 0x8d, 0x39, 0xad, 0x9f, 0xe6,
2047 0xff, 0xa9, 0x55, 0xc1, 0x6e, 0x5e, 0xf2, 0xc2, 0x5b, 0xb4, 0x31, 0x83, 0x15, 0x59,
2048 0x69, 0x51, 0xf4, 0x27,
2049 ],
2050 Core::One8 => [
2051 0x3c, 0xc5, 0xf5, 0x23, 0xd6, 0xa6, 0x35, 0x5d, 0xc9, 0x24, 0xee, 0x0a, 0xc1, 0xf5,
2052 0xfe, 0x2c, 0x52, 0x12, 0x75, 0xe3, 0xaa, 0x9f, 0x21, 0xd3, 0x1b, 0x08, 0x2d, 0xb2,
2053 0xac, 0x23, 0x0d, 0x9d,
2054 ],
2055 Core::Or1 => [
2056 0xc4, 0x65, 0x96, 0x43, 0x69, 0xfc, 0xa2, 0x09, 0x7f, 0x83, 0x53, 0x0c, 0x87, 0xbc,
2057 0xbc, 0x90, 0xc3, 0x06, 0x57, 0x9d, 0x9f, 0x3b, 0xfe, 0xdd, 0xf4, 0xa1, 0x72, 0xa4,
2058 0xea, 0x0b, 0x58, 0xec,
2059 ],
2060 Core::Or16 => [
2061 0x5a, 0x98, 0x5e, 0x04, 0x3b, 0x85, 0x27, 0x3b, 0x90, 0xf9, 0x0e, 0x20, 0xf8, 0x2b,
2062 0x75, 0x32, 0x33, 0x51, 0xcf, 0x2a, 0x4e, 0x62, 0xa7, 0xf9, 0xcb, 0x2f, 0x05, 0x96,
2063 0x40, 0x2e, 0x9e, 0x28,
2064 ],
2065 Core::Or32 => [
2066 0x35, 0x52, 0x38, 0x3a, 0x57, 0xff, 0xb4, 0x8d, 0x63, 0xa0, 0x33, 0x7a, 0xf0, 0xdd,
2067 0x6e, 0xfa, 0xb6, 0xb4, 0x6c, 0x5d, 0xe1, 0x72, 0x0e, 0x42, 0x0b, 0xdd, 0x1c, 0x82,
2068 0x27, 0x6b, 0xc9, 0xa9,
2069 ],
2070 Core::Or64 => [
2071 0x51, 0xa1, 0x73, 0xda, 0xdc, 0xa0, 0x1a, 0xc6, 0xf6, 0x2e, 0x75, 0xd5, 0xcd, 0x35,
2072 0x22, 0xf0, 0x9f, 0xde, 0x62, 0xb1, 0x15, 0x13, 0xe0, 0x68, 0x42, 0x28, 0x52, 0xa4,
2073 0x91, 0x67, 0xb6, 0x06,
2074 ],
2075 Core::Or8 => [
2076 0x79, 0xef, 0xbd, 0xcb, 0x53, 0x7b, 0xeb, 0xcb, 0x18, 0x8d, 0x11, 0x16, 0xb7, 0x8a,
2077 0x10, 0x9b, 0xff, 0xbc, 0x2a, 0x6c, 0xe3, 0xd1, 0xf8, 0x70, 0x15, 0x4a, 0x79, 0x56,
2078 0x09, 0x1b, 0x34, 0x2f,
2079 ],
2080 Core::ParseLock => [
2081 0x3d, 0xb8, 0x45, 0x35, 0xfa, 0x3d, 0x90, 0xef, 0x0b, 0x58, 0x1e, 0x22, 0xb6, 0x1d,
2082 0x21, 0x27, 0x84, 0x4b, 0x21, 0x16, 0xe8, 0x4f, 0x81, 0x4a, 0x5c, 0xba, 0xc5, 0x2d,
2083 0xf5, 0x15, 0xf2, 0xd2,
2084 ],
2085 Core::ParseSequence => [
2086 0x38, 0xb2, 0x53, 0x3f, 0x5f, 0xed, 0xe8, 0x69, 0xba, 0xa1, 0x70, 0x69, 0x83, 0xdf,
2087 0x4c, 0x89, 0xd6, 0x2d, 0x5f, 0x90, 0x80, 0x0b, 0x47, 0xea, 0xb2, 0x11, 0x13, 0x31,
2088 0x1a, 0x5a, 0xae, 0xc9,
2089 ],
2090 Core::PointVerify1 => [
2091 0xbe, 0x2a, 0x98, 0x90, 0xf1, 0xd5, 0xb6, 0x15, 0x14, 0x7f, 0x82, 0x41, 0xe0, 0x60,
2092 0x9b, 0x5c, 0xac, 0x01, 0xec, 0xe0, 0xa3, 0xf9, 0x23, 0x68, 0x67, 0xb2, 0xbf, 0xde,
2093 0xa1, 0xb8, 0x04, 0x4e,
2094 ],
2095 Core::RightExtend16_32 => [
2096 0xdb, 0xf1, 0x8d, 0x87, 0xa7, 0x89, 0x21, 0x39, 0xa3, 0x88, 0xe9, 0xa9, 0x83, 0xc4,
2097 0x89, 0x92, 0xac, 0x35, 0xa8, 0x45, 0x56, 0xee, 0x0d, 0xef, 0xc1, 0xda, 0xdf, 0x0c,
2098 0x5f, 0x47, 0x1a, 0x26,
2099 ],
2100 Core::RightExtend16_64 => [
2101 0xd0, 0x11, 0xac, 0xc7, 0x94, 0xe3, 0xc4, 0x78, 0x9a, 0xcc, 0xd0, 0xd5, 0xfe, 0x49,
2102 0x97, 0xd3, 0x34, 0xd9, 0x1f, 0x08, 0x31, 0xa1, 0xeb, 0x35, 0x04, 0xb4, 0xcb, 0x2d,
2103 0xdf, 0x47, 0x97, 0xaf,
2104 ],
2105 Core::RightExtend32_64 => [
2106 0xa5, 0xaa, 0x5d, 0xb1, 0xe5, 0x35, 0xe7, 0x23, 0x2a, 0xd3, 0x6d, 0xaf, 0xba, 0x6d,
2107 0x5a, 0x20, 0x0d, 0x54, 0xeb, 0x85, 0x3b, 0x75, 0xdc, 0x70, 0xa5, 0x94, 0xed, 0x64,
2108 0xaa, 0x6b, 0xd9, 0xab,
2109 ],
2110 Core::RightExtend8_16 => [
2111 0x81, 0x06, 0xd5, 0x8a, 0x80, 0x66, 0xee, 0x6e, 0x15, 0xe5, 0x5c, 0xa5, 0x2c, 0xb7,
2112 0xaf, 0xd8, 0xe3, 0x27, 0x75, 0x87, 0xbf, 0xd7, 0xde, 0xc0, 0xbe, 0x37, 0xd4, 0x06,
2113 0x74, 0x2a, 0x39, 0x31,
2114 ],
2115 Core::RightExtend8_32 => [
2116 0xdf, 0xa4, 0xba, 0xfa, 0x43, 0x2a, 0x53, 0x38, 0xd3, 0x74, 0xde, 0xb6, 0xb7, 0x24,
2117 0xb7, 0xf6, 0xea, 0xe5, 0x58, 0x61, 0xfe, 0x73, 0x1d, 0x43, 0x04, 0x8a, 0xa3, 0x04,
2118 0xd1, 0xf7, 0xf9, 0xa2,
2119 ],
2120 Core::RightExtend8_64 => [
2121 0x62, 0x0a, 0x37, 0x03, 0x8b, 0x6f, 0xa1, 0x27, 0x49, 0x5f, 0x0b, 0x46, 0x49, 0x6f,
2122 0x64, 0x35, 0xdd, 0x2d, 0xad, 0x7e, 0xf0, 0xc0, 0xfd, 0x2c, 0xd6, 0x5f, 0x54, 0xdc,
2123 0x18, 0x5e, 0x99, 0x7b,
2124 ],
2125 Core::RightPadHigh16_32 => [
2126 0x2b, 0x6a, 0xbc, 0x38, 0x32, 0x1a, 0x7c, 0x54, 0x2f, 0xb1, 0x69, 0x74, 0x62, 0x1c,
2127 0xed, 0x80, 0x88, 0x0d, 0xb5, 0x19, 0xbb, 0x48, 0x60, 0x93, 0x42, 0x6e, 0x8c, 0xe1,
2128 0x8e, 0x01, 0x69, 0xb1,
2129 ],
2130 Core::RightPadHigh16_64 => [
2131 0xad, 0x90, 0xd8, 0xff, 0xa5, 0x74, 0x50, 0xb3, 0xb5, 0xe9, 0x09, 0x62, 0x25, 0x34,
2132 0x9e, 0xd8, 0xf0, 0x72, 0xe1, 0x01, 0x72, 0x93, 0xf3, 0x92, 0xef, 0x85, 0x4e, 0x03,
2133 0x19, 0xab, 0xc9, 0x34,
2134 ],
2135 Core::RightPadHigh1_16 => [
2136 0x28, 0x81, 0x58, 0xb1, 0xc9, 0x10, 0x87, 0x7b, 0x7e, 0xea, 0x3d, 0xfc, 0xf2, 0xb2,
2137 0xb7, 0x88, 0x92, 0x28, 0x08, 0xb6, 0xd6, 0xfa, 0x75, 0xf8, 0x96, 0x77, 0x19, 0x04,
2138 0x8b, 0x14, 0x12, 0x49,
2139 ],
2140 Core::RightPadHigh1_32 => [
2141 0xee, 0x2a, 0xd7, 0x7f, 0x66, 0x8d, 0x3d, 0x6a, 0x2e, 0x68, 0x50, 0x6e, 0x49, 0x04,
2142 0xcf, 0x50, 0xa0, 0x84, 0x60, 0xe1, 0xd2, 0xb8, 0x6a, 0x81, 0xe1, 0x4e, 0x41, 0xf8,
2143 0xda, 0x4c, 0xdd, 0xf2,
2144 ],
2145 Core::RightPadHigh1_64 => [
2146 0x3d, 0x6a, 0x7f, 0xe6, 0x9a, 0x11, 0x64, 0x2a, 0xce, 0xd6, 0x84, 0x2b, 0x89, 0xaa,
2147 0x1b, 0xb8, 0x41, 0x3e, 0x39, 0x90, 0x63, 0xcc, 0x16, 0x78, 0x6a, 0xf7, 0xc0, 0x33,
2148 0xda, 0xd5, 0x8b, 0x95,
2149 ],
2150 Core::RightPadHigh1_8 => [
2151 0x28, 0x44, 0xbd, 0xfd, 0x6a, 0xba, 0x29, 0xdf, 0x03, 0xf9, 0x3a, 0xa6, 0xae, 0xb2,
2152 0x1c, 0x06, 0x40, 0x28, 0xdb, 0x05, 0xff, 0x77, 0xd8, 0xd9, 0x1c, 0xfd, 0xcd, 0xef,
2153 0xb1, 0x90, 0xc5, 0xbd,
2154 ],
2155 Core::RightPadHigh32_64 => [
2156 0xb4, 0x32, 0xe5, 0x32, 0x1a, 0xe1, 0x71, 0x4c, 0xe1, 0x95, 0x29, 0xd8, 0x5f, 0x24,
2157 0xff, 0x89, 0x87, 0x91, 0x0e, 0xbc, 0xf0, 0x15, 0xf8, 0x7f, 0x15, 0xbb, 0xed, 0x55,
2158 0xf0, 0xa0, 0xe8, 0x92,
2159 ],
2160 Core::RightPadHigh8_16 => [
2161 0x6f, 0x2d, 0x96, 0xc9, 0x54, 0x13, 0xca, 0x9a, 0xa8, 0xcc, 0x55, 0x0f, 0x25, 0x73,
2162 0xe1, 0x66, 0x99, 0x56, 0xd6, 0x07, 0x69, 0x2c, 0xf1, 0xca, 0x6d, 0xc7, 0x6d, 0x2f,
2163 0x2b, 0x4a, 0x3a, 0xc8,
2164 ],
2165 Core::RightPadHigh8_32 => [
2166 0xdf, 0x2c, 0x7f, 0x92, 0x99, 0x00, 0xa4, 0x49, 0x01, 0xe6, 0xff, 0x65, 0x27, 0x6a,
2167 0x95, 0x1a, 0xeb, 0x95, 0xdf, 0x25, 0x0b, 0x13, 0x97, 0x14, 0xd4, 0x19, 0x54, 0x04,
2168 0xd7, 0x78, 0x98, 0xed,
2169 ],
2170 Core::RightPadHigh8_64 => [
2171 0x79, 0xc0, 0x1d, 0xa3, 0xe6, 0x0b, 0x9c, 0x69, 0x35, 0xce, 0x3e, 0x15, 0x98, 0xb1,
2172 0x78, 0x40, 0xaf, 0x82, 0xdc, 0xb0, 0xdd, 0xc6, 0x3a, 0xef, 0x4a, 0x06, 0xe7, 0xf9,
2173 0xca, 0x5d, 0x27, 0x41,
2174 ],
2175 Core::RightPadLow16_32 => [
2176 0x6f, 0x20, 0x10, 0x27, 0xcc, 0x75, 0x98, 0x02, 0x30, 0xa0, 0x70, 0x85, 0x9c, 0x3e,
2177 0x38, 0x02, 0x36, 0xa1, 0xcb, 0x10, 0xe6, 0x1a, 0x01, 0xaa, 0x1f, 0x6d, 0x23, 0x1d,
2178 0x15, 0x14, 0x2f, 0x25,
2179 ],
2180 Core::RightPadLow16_64 => [
2181 0xb8, 0x6e, 0x1f, 0x0b, 0xfe, 0xc6, 0x55, 0x98, 0xd0, 0xa3, 0xd1, 0xec, 0x96, 0x03,
2182 0x05, 0xb9, 0x67, 0x45, 0x67, 0x3e, 0x1b, 0x16, 0xbf, 0x32, 0x7a, 0x71, 0x68, 0x05,
2183 0x83, 0xd7, 0x1d, 0x90,
2184 ],
2185 Core::RightPadLow1_16 => [
2186 0x05, 0x2a, 0x64, 0x99, 0xc9, 0x3e, 0xe6, 0xbc, 0x1a, 0xe6, 0x57, 0xf8, 0x5f, 0xd4,
2187 0xd4, 0xfe, 0x67, 0x7a, 0xbc, 0xee, 0x54, 0x0d, 0x13, 0x40, 0x33, 0x54, 0x2e, 0x9a,
2188 0xb6, 0x0a, 0x63, 0xdd,
2189 ],
2190 Core::RightPadLow1_32 => [
2191 0x5b, 0x70, 0xd4, 0x28, 0x96, 0x0e, 0x95, 0xcc, 0x40, 0xd5, 0x18, 0x46, 0xf5, 0x3a,
2192 0x4d, 0x0a, 0x35, 0xc9, 0x01, 0x5d, 0x15, 0x00, 0xb6, 0xbc, 0x84, 0x9b, 0x72, 0x83,
2193 0x5e, 0x2b, 0xd4, 0x40,
2194 ],
2195 Core::RightPadLow1_64 => [
2196 0x44, 0xef, 0xeb, 0x87, 0xca, 0x2a, 0xd7, 0xfd, 0x4b, 0x73, 0xf1, 0x63, 0x07, 0xc7,
2197 0xf0, 0x59, 0x02, 0x65, 0x6f, 0x35, 0x09, 0x0f, 0xb0, 0xa4, 0x32, 0x6c, 0x64, 0x89,
2198 0x88, 0xae, 0x1d, 0x39,
2199 ],
2200 Core::RightPadLow1_8 => [
2201 0x93, 0x40, 0x39, 0x8b, 0xcc, 0x8e, 0xa8, 0x3e, 0xc8, 0x40, 0xbe, 0x72, 0x9d, 0xbb,
2202 0x8b, 0x81, 0x20, 0x78, 0x24, 0xee, 0x87, 0x5d, 0x15, 0x82, 0x59, 0xd6, 0xda, 0xd2,
2203 0x0a, 0x83, 0x93, 0x0c,
2204 ],
2205 Core::RightPadLow32_64 => [
2206 0x69, 0x3e, 0x28, 0x10, 0x1e, 0x04, 0xfd, 0xa4, 0x3b, 0x97, 0xe6, 0x11, 0xf0, 0xfe,
2207 0x98, 0x00, 0x0e, 0x14, 0x30, 0x2e, 0x5d, 0xcd, 0x6e, 0xd6, 0x5e, 0xee, 0x42, 0xe3,
2208 0x40, 0x14, 0x24, 0x2f,
2209 ],
2210 Core::RightPadLow8_16 => [
2211 0x09, 0x6b, 0x25, 0xc3, 0xc8, 0x41, 0x5f, 0x04, 0xd8, 0x83, 0x27, 0x43, 0xeb, 0x2f,
2212 0x84, 0x56, 0xd5, 0xf0, 0xa6, 0x44, 0x91, 0x3d, 0x3e, 0xc5, 0x9d, 0x34, 0xf4, 0x55,
2213 0x25, 0x01, 0xfa, 0x20,
2214 ],
2215 Core::RightPadLow8_32 => [
2216 0xfc, 0x7f, 0x57, 0x22, 0xa6, 0x2a, 0xa2, 0x20, 0x18, 0xcc, 0x81, 0xcd, 0x00, 0xa9,
2217 0x32, 0x6c, 0x7f, 0xe9, 0xc6, 0x3a, 0xbc, 0xe2, 0xbd, 0xa4, 0xc0, 0xe6, 0x6a, 0x3f,
2218 0x47, 0xc6, 0x7c, 0x53,
2219 ],
2220 Core::RightPadLow8_64 => [
2221 0xa5, 0xbb, 0x7d, 0x5e, 0xfc, 0xa0, 0xe4, 0x8d, 0x9d, 0x80, 0xc5, 0x02, 0x71, 0x15,
2222 0xb4, 0x85, 0x78, 0x10, 0x51, 0xe0, 0xef, 0x46, 0xe4, 0xd6, 0x08, 0x31, 0x7a, 0x1c,
2223 0x42, 0x61, 0xbc, 0x46,
2224 ],
2225 Core::RightRotate16 => [
2226 0x48, 0x2e, 0xa7, 0xe1, 0x21, 0x45, 0x01, 0xd9, 0x3c, 0x9a, 0xd1, 0x6f, 0xa8, 0xb9,
2227 0x7b, 0xf5, 0xb3, 0x84, 0xfc, 0x2b, 0x54, 0x78, 0x9b, 0x8c, 0xd9, 0xe7, 0x84, 0xcc,
2228 0xd0, 0xeb, 0x9d, 0x57,
2229 ],
2230 Core::RightRotate32 => [
2231 0x09, 0x41, 0xb6, 0xee, 0xea, 0x9a, 0xf8, 0x19, 0x5b, 0x02, 0x8a, 0xfc, 0x0b, 0xd2,
2232 0xa5, 0x34, 0x21, 0x8b, 0xf9, 0x0d, 0x1a, 0x0e, 0x37, 0x3d, 0x74, 0x74, 0x18, 0x54,
2233 0x0b, 0x72, 0x6d, 0x73,
2234 ],
2235 Core::RightRotate64 => [
2236 0x44, 0x4d, 0xbb, 0xc3, 0xdd, 0x2a, 0x11, 0xa5, 0xc7, 0xb0, 0x43, 0x9f, 0xdb, 0xa9,
2237 0x9a, 0xc7, 0x4a, 0x11, 0xb8, 0xee, 0xb2, 0xdb, 0x30, 0x1e, 0x24, 0x3e, 0xa8, 0x91,
2238 0x22, 0x90, 0x71, 0x52,
2239 ],
2240 Core::RightRotate8 => [
2241 0x72, 0x65, 0xa3, 0x0c, 0x2e, 0x83, 0x6e, 0x65, 0x54, 0x4a, 0xba, 0x91, 0x1b, 0x64,
2242 0xd1, 0x8f, 0xa6, 0x9b, 0x17, 0x65, 0x45, 0x85, 0x6c, 0x77, 0xc4, 0xf0, 0xd7, 0x6f,
2243 0xc3, 0xf5, 0x83, 0x51,
2244 ],
2245 Core::RightShift16 => [
2246 0xcd, 0x57, 0xa3, 0xd3, 0xab, 0x2d, 0x92, 0xd4, 0xf0, 0x86, 0x55, 0x04, 0x3a, 0x8b,
2247 0x8b, 0xb6, 0x73, 0x89, 0x81, 0xfa, 0xe6, 0xda, 0x01, 0x34, 0xb4, 0xde, 0xda, 0xce,
2248 0x5f, 0x00, 0x88, 0x60,
2249 ],
2250 Core::RightShift32 => [
2251 0xd6, 0xb3, 0x26, 0xb1, 0xa3, 0x23, 0x57, 0xa3, 0x32, 0x80, 0x7d, 0x3f, 0xa1, 0xb1,
2252 0x56, 0xc2, 0x8b, 0x16, 0x22, 0xf7, 0x38, 0xde, 0xf1, 0x26, 0x81, 0x46, 0x7f, 0x34,
2253 0x9b, 0xd3, 0x49, 0x4b,
2254 ],
2255 Core::RightShift64 => [
2256 0xb2, 0x09, 0x5f, 0x2d, 0x47, 0x33, 0x5d, 0x5f, 0x98, 0xc8, 0x54, 0x34, 0xa2, 0xfa,
2257 0xf5, 0xb0, 0xf7, 0x5c, 0xf8, 0x99, 0x01, 0x2a, 0x34, 0xbb, 0xcd, 0x0a, 0x14, 0xcb,
2258 0xed, 0xb6, 0x11, 0x07,
2259 ],
2260 Core::RightShift8 => [
2261 0x4b, 0x2b, 0x1a, 0xa2, 0xef, 0x73, 0x21, 0x73, 0x17, 0x0d, 0x62, 0x1a, 0x38, 0xde,
2262 0xb2, 0x61, 0xe4, 0x73, 0xc0, 0x7c, 0x55, 0x8b, 0x05, 0x5a, 0x25, 0xa8, 0x6e, 0x4e,
2263 0x32, 0x1a, 0xfc, 0x04,
2264 ],
2265 Core::RightShiftWith16 => [
2266 0x14, 0xb7, 0x76, 0x85, 0x47, 0xb3, 0xd3, 0xf4, 0x7e, 0xe5, 0xc2, 0xb8, 0x0d, 0x9b,
2267 0xda, 0xe2, 0xae, 0xc1, 0xf9, 0xc6, 0x59, 0x4e, 0xd3, 0x12, 0x7b, 0x12, 0x64, 0x5a,
2268 0xdc, 0xf5, 0x97, 0x54,
2269 ],
2270 Core::RightShiftWith32 => [
2271 0x32, 0x7b, 0x6e, 0x98, 0xa6, 0xfd, 0x34, 0x0c, 0x60, 0xcf, 0x83, 0xaa, 0x64, 0x99,
2272 0x33, 0x11, 0x4c, 0xb8, 0xd8, 0x4f, 0x59, 0x0e, 0x01, 0x21, 0x3a, 0x26, 0x10, 0x01,
2273 0x2b, 0x46, 0x07, 0xea,
2274 ],
2275 Core::RightShiftWith64 => [
2276 0x06, 0x2f, 0xa7, 0x4a, 0xf3, 0x47, 0x6e, 0x59, 0x38, 0x7b, 0xe0, 0x8e, 0x69, 0x49,
2277 0xa0, 0x05, 0x43, 0xbc, 0x84, 0xa2, 0xb6, 0x89, 0xea, 0x39, 0xad, 0x6e, 0xed, 0x7f,
2278 0x75, 0x67, 0x85, 0xd4,
2279 ],
2280 Core::RightShiftWith8 => [
2281 0x14, 0x1b, 0xe4, 0x7e, 0x96, 0x7b, 0x2f, 0xd7, 0xc7, 0x12, 0x6c, 0x5a, 0xdf, 0x2d,
2282 0xfe, 0x47, 0x31, 0x5b, 0xbc, 0x10, 0x53, 0xbb, 0xe6, 0x05, 0xb3, 0x88, 0x98, 0xdb,
2283 0xed, 0x49, 0xf2, 0x27,
2284 ],
2285 Core::Rightmost16_1 => [
2286 0x3f, 0x3c, 0x43, 0x46, 0x87, 0x17, 0x42, 0x26, 0x5e, 0x87, 0xf0, 0x01, 0xb4, 0x6d,
2287 0xe7, 0xd1, 0x98, 0x75, 0x1b, 0x34, 0xfa, 0xa1, 0x80, 0x18, 0xde, 0x60, 0xc8, 0x46,
2288 0x8d, 0x9b, 0x98, 0xa4,
2289 ],
2290 Core::Rightmost16_2 => [
2291 0xc1, 0x8b, 0x9f, 0xdd, 0x34, 0x0a, 0x26, 0x7a, 0xc1, 0x6d, 0x4f, 0x39, 0xee, 0x75,
2292 0x43, 0x56, 0x52, 0xaa, 0xca, 0x52, 0x56, 0x50, 0xb5, 0x1a, 0x45, 0x87, 0x98, 0x04,
2293 0x8e, 0x62, 0x7d, 0x51,
2294 ],
2295 Core::Rightmost16_4 => [
2296 0xc6, 0xc5, 0x3f, 0xa7, 0x1e, 0x23, 0x0c, 0xf0, 0x58, 0x51, 0x58, 0xf4, 0x70, 0x58,
2297 0x8b, 0xac, 0x5c, 0x51, 0x8f, 0x84, 0xf9, 0xfc, 0x23, 0x86, 0x52, 0xf1, 0x75, 0xfb,
2298 0x6e, 0xa1, 0x8c, 0x11,
2299 ],
2300 Core::Rightmost16_8 => [
2301 0xee, 0x76, 0x9c, 0x1c, 0xc8, 0xa3, 0xfd, 0xd1, 0x83, 0x8f, 0xc9, 0xf0, 0x49, 0x0c,
2302 0xe7, 0x03, 0x93, 0xfd, 0x91, 0xba, 0x3c, 0xbd, 0x4a, 0xbd, 0x08, 0x64, 0x9f, 0xb9,
2303 0xc4, 0x43, 0x11, 0xbd,
2304 ],
2305 Core::Rightmost32_1 => [
2306 0x1c, 0x44, 0x23, 0x69, 0xfb, 0x81, 0xf6, 0x11, 0xd3, 0x28, 0x01, 0x0b, 0x86, 0x4b,
2307 0xcc, 0xb7, 0xf3, 0x5e, 0xd4, 0x77, 0xdf, 0xa3, 0x85, 0x55, 0x74, 0xc1, 0x35, 0x64,
2308 0xcd, 0xbd, 0xb8, 0x60,
2309 ],
2310 Core::Rightmost32_16 => [
2311 0xad, 0xd2, 0xc3, 0x39, 0x0d, 0x9a, 0xf7, 0xc2, 0x4a, 0x15, 0x9a, 0x37, 0xd6, 0x9d,
2312 0x44, 0x84, 0xd2, 0xc2, 0x4a, 0x2c, 0xb5, 0xb0, 0xeb, 0x2d, 0x3c, 0x49, 0x3d, 0x98,
2313 0x12, 0xac, 0xfd, 0x74,
2314 ],
2315 Core::Rightmost32_2 => [
2316 0x00, 0xb8, 0x81, 0x5a, 0xd7, 0x42, 0x3d, 0xd5, 0x8c, 0xb9, 0x8b, 0xe8, 0x2c, 0xad,
2317 0x26, 0x67, 0x5c, 0x3b, 0xf5, 0x4a, 0x0b, 0xed, 0xba, 0xde, 0x34, 0x64, 0xb4, 0xfe,
2318 0x5a, 0x4e, 0x8c, 0xe6,
2319 ],
2320 Core::Rightmost32_4 => [
2321 0x84, 0xfa, 0x5a, 0x54, 0xf7, 0x72, 0x9f, 0x9d, 0x68, 0x99, 0x4b, 0xea, 0xb9, 0x3a,
2322 0xe7, 0x9b, 0x8c, 0x4a, 0x10, 0xd5, 0xb7, 0xae, 0x97, 0x27, 0xaa, 0x17, 0x16, 0xe5,
2323 0x7d, 0x03, 0x3b, 0x74,
2324 ],
2325 Core::Rightmost32_8 => [
2326 0x7d, 0x38, 0x05, 0xd3, 0xc7, 0x8c, 0x4e, 0xea, 0x91, 0xe3, 0xd3, 0x5e, 0xfd, 0xd4,
2327 0x7e, 0xed, 0xd4, 0x21, 0xaf, 0x84, 0xd2, 0x19, 0x10, 0x32, 0x93, 0x32, 0xa0, 0xb5,
2328 0x48, 0x7f, 0xab, 0x63,
2329 ],
2330 Core::Rightmost64_1 => [
2331 0xd3, 0xb1, 0x64, 0xc5, 0xdc, 0x66, 0xcc, 0x7e, 0xf9, 0x23, 0x4f, 0xed, 0xe4, 0xdc,
2332 0x7f, 0x0d, 0xa5, 0xcd, 0x71, 0xc1, 0xc1, 0xd4, 0xca, 0xd6, 0x0f, 0xb4, 0xec, 0x57,
2333 0x3e, 0x2b, 0x8a, 0x75,
2334 ],
2335 Core::Rightmost64_16 => [
2336 0xea, 0xe4, 0x34, 0x78, 0xf9, 0xf2, 0xf4, 0x52, 0xef, 0xac, 0x15, 0xee, 0xe6, 0x0f,
2337 0x8b, 0x52, 0x53, 0xd8, 0x0a, 0x2d, 0x32, 0x12, 0x9b, 0x4e, 0x5b, 0xa3, 0x83, 0x00,
2338 0xad, 0x98, 0x52, 0xfd,
2339 ],
2340 Core::Rightmost64_2 => [
2341 0x9c, 0xd4, 0xa9, 0x8b, 0xbd, 0xb8, 0xa3, 0x35, 0x85, 0xc0, 0x0f, 0x47, 0xd6, 0xad,
2342 0xab, 0x7a, 0xf5, 0x42, 0x86, 0xfb, 0x8a, 0xe6, 0x0f, 0x72, 0x30, 0x11, 0xfb, 0x84,
2343 0xc0, 0xee, 0x78, 0xf9,
2344 ],
2345 Core::Rightmost64_32 => [
2346 0x7f, 0x24, 0x20, 0xae, 0x5b, 0x0f, 0x5a, 0x3f, 0x6f, 0x2e, 0x60, 0xb6, 0x1f, 0x8a,
2347 0x41, 0x5c, 0x08, 0x8b, 0x94, 0xb2, 0x1c, 0x1a, 0x62, 0xa3, 0xfd, 0xaa, 0xc7, 0x49,
2348 0xdb, 0xdf, 0x4c, 0x71,
2349 ],
2350 Core::Rightmost64_4 => [
2351 0xe2, 0x65, 0x55, 0x2a, 0x24, 0xfb, 0xcd, 0xec, 0x05, 0x83, 0xd7, 0x18, 0x3e, 0x48,
2352 0xeb, 0xc2, 0xff, 0x6d, 0x31, 0x65, 0x57, 0xba, 0xc5, 0x91, 0x5c, 0x03, 0xcb, 0x23,
2353 0x35, 0xd2, 0x32, 0x95,
2354 ],
2355 Core::Rightmost64_8 => [
2356 0x98, 0xcd, 0x95, 0xf9, 0x5d, 0x46, 0x64, 0x1b, 0x04, 0x9e, 0x77, 0xbf, 0x90, 0xee,
2357 0xa5, 0x98, 0xad, 0xf2, 0x9e, 0xe5, 0x00, 0xe6, 0x50, 0x72, 0x87, 0x54, 0x8b, 0xb1,
2358 0xcd, 0xaf, 0x78, 0x4d,
2359 ],
2360 Core::Rightmost8_1 => [
2361 0x08, 0x76, 0xfc, 0xd4, 0x69, 0x85, 0x91, 0xf3, 0x31, 0x91, 0x01, 0x57, 0x4c, 0xe1,
2362 0x53, 0xfc, 0xdf, 0xe9, 0x4f, 0x58, 0x1a, 0xac, 0x5e, 0x75, 0xf3, 0xcd, 0x74, 0x46,
2363 0xdf, 0x56, 0xf3, 0xc7,
2364 ],
2365 Core::Rightmost8_2 => [
2366 0xb9, 0xf7, 0xb2, 0x90, 0xaf, 0xe7, 0xf1, 0x89, 0xe3, 0x2a, 0xeb, 0xf2, 0xcc, 0x4d,
2367 0xdc, 0xa9, 0x6b, 0xb0, 0x07, 0x64, 0xc7, 0xbe, 0x28, 0x87, 0xdc, 0xe0, 0x54, 0xd0,
2368 0x9e, 0x38, 0xc3, 0x53,
2369 ],
2370 Core::Rightmost8_4 => [
2371 0xf2, 0x8e, 0x9a, 0xf5, 0xaf, 0x4c, 0x9c, 0xca, 0x4b, 0x43, 0xcc, 0x6a, 0xdf, 0x9d,
2372 0x9d, 0x8d, 0x16, 0x9c, 0x87, 0xc5, 0x55, 0x9f, 0x9f, 0x3c, 0xca, 0xc8, 0xf2, 0x35,
2373 0x2b, 0x62, 0x9f, 0x18,
2374 ],
2375 Core::ScalarAdd => [
2376 0x11, 0xdd, 0xbe, 0xba, 0xeb, 0xf4, 0x21, 0x80, 0xa0, 0xb7, 0xed, 0xdf, 0xfd, 0xc4,
2377 0x8e, 0xc7, 0x51, 0x13, 0x30, 0xfb, 0x33, 0x15, 0xfa, 0x65, 0xd5, 0x8a, 0xff, 0x66,
2378 0xb9, 0xca, 0xf2, 0xd4,
2379 ],
2380 Core::ScalarInvert => [
2381 0xa6, 0x39, 0x27, 0x25, 0xbb, 0x2d, 0xad, 0xbb, 0x1e, 0x76, 0xdf, 0x2d, 0xec, 0x57,
2382 0xdf, 0x55, 0xc3, 0xfc, 0xc5, 0x77, 0x3b, 0x62, 0x21, 0x8a, 0xec, 0x55, 0xa7, 0x5e,
2383 0x14, 0xf3, 0xd6, 0x0d,
2384 ],
2385 Core::ScalarIsZero => [
2386 0xf7, 0x5e, 0xda, 0x06, 0xce, 0x6a, 0xf0, 0x9f, 0xae, 0x37, 0xdb, 0x4e, 0x62, 0x25,
2387 0xe6, 0xa8, 0xac, 0x86, 0xa2, 0x36, 0x37, 0x62, 0x7d, 0x62, 0x64, 0x09, 0x19, 0x0f,
2388 0xf3, 0xb3, 0x9d, 0x90,
2389 ],
2390 Core::ScalarMultiply => [
2391 0x4a, 0x61, 0x67, 0x2a, 0xce, 0xc4, 0x88, 0x77, 0x56, 0xde, 0x1d, 0xb6, 0x04, 0x21,
2392 0xa1, 0x2b, 0x90, 0x1a, 0x85, 0x8a, 0x6e, 0xe6, 0x35, 0x2e, 0x55, 0x9d, 0x4c, 0xe5,
2393 0x97, 0x33, 0x52, 0xbe,
2394 ],
2395 Core::ScalarMultiplyLambda => [
2396 0x49, 0xea, 0x9c, 0x3f, 0xb1, 0xd8, 0xff, 0x52, 0xd2, 0xdb, 0x03, 0x46, 0x9f, 0xdf,
2397 0xe8, 0x50, 0x50, 0x3f, 0xdd, 0xeb, 0x45, 0xe1, 0x6d, 0x26, 0xe8, 0x92, 0x8a, 0xdd,
2398 0x25, 0x87, 0x0e, 0x91,
2399 ],
2400 Core::ScalarNegate => [
2401 0x1d, 0xbf, 0x8b, 0x49, 0x1e, 0xc6, 0x65, 0x80, 0x3f, 0x63, 0x33, 0x30, 0xd3, 0xff,
2402 0xb0, 0xe7, 0x81, 0xe6, 0x7c, 0x18, 0x01, 0xac, 0x9d, 0x49, 0xbb, 0xf4, 0x35, 0x89,
2403 0xab, 0xf7, 0x82, 0xbf,
2404 ],
2405 Core::ScalarNormalize => [
2406 0x46, 0x33, 0x18, 0x0e, 0xa0, 0x2c, 0x4d, 0xf7, 0x81, 0x9d, 0x3d, 0x54, 0xa4, 0x01,
2407 0x73, 0x4f, 0x96, 0x5b, 0x31, 0xac, 0xc7, 0x84, 0x05, 0x4e, 0xbf, 0xb7, 0x31, 0x68,
2408 0x16, 0xb0, 0x29, 0xec,
2409 ],
2410 Core::ScalarSquare => [
2411 0x8a, 0x27, 0x9e, 0x6f, 0x61, 0x3a, 0xa9, 0xe9, 0x34, 0xf2, 0xf2, 0xa3, 0x43, 0xc0,
2412 0xd3, 0x29, 0x1c, 0x36, 0x70, 0xe2, 0x97, 0xdd, 0xae, 0x20, 0x52, 0x9e, 0x82, 0x50,
2413 0x69, 0xef, 0xea, 0x0e,
2414 ],
2415 Core::Scale => [
2416 0x12, 0x6e, 0x22, 0x12, 0x5b, 0xac, 0x80, 0xb9, 0x9b, 0x7b, 0x73, 0x43, 0xb4, 0xe5,
2417 0xe5, 0x86, 0x60, 0x82, 0x16, 0x10, 0x5d, 0x4d, 0xe6, 0xf7, 0x94, 0xad, 0xd3, 0x4e,
2418 0x23, 0xb1, 0x95, 0xca,
2419 ],
2420 Core::Sha256Block => [
2421 0x45, 0x35, 0xf3, 0xe1, 0xab, 0x9f, 0x1b, 0x75, 0x7a, 0x06, 0x91, 0x37, 0xe1, 0xd5,
2422 0xb1, 0xca, 0xad, 0x8e, 0x31, 0xf7, 0x8d, 0xc5, 0xfb, 0xd0, 0x73, 0x46, 0x49, 0xf9,
2423 0x40, 0xa7, 0xfc, 0x96,
2424 ],
2425 Core::Sha256Ctx8Add1 => [
2426 0x9a, 0x47, 0x11, 0xb8, 0xc5, 0x69, 0x0e, 0x58, 0x7e, 0x5f, 0x79, 0xe6, 0x8d, 0x6e,
2427 0xca, 0x04, 0x74, 0x58, 0xaa, 0x63, 0xb8, 0xbc, 0x9e, 0xe5, 0x68, 0x08, 0x6a, 0x4a,
2428 0x1b, 0x56, 0xd8, 0x34,
2429 ],
2430 Core::Sha256Ctx8Add128 => [
2431 0x1c, 0xb1, 0xdb, 0x8a, 0x05, 0x5b, 0x31, 0x97, 0xac, 0xf0, 0xf0, 0x8c, 0xe9, 0xc6,
2432 0x35, 0xad, 0xd6, 0x95, 0xb6, 0x0f, 0x23, 0x4b, 0x18, 0xe0, 0xb3, 0x23, 0xc9, 0x37,
2433 0xb0, 0x38, 0x5a, 0xea,
2434 ],
2435 Core::Sha256Ctx8Add16 => [
2436 0xe0, 0x84, 0x54, 0x75, 0xeb, 0xb9, 0x01, 0x40, 0xfa, 0x4e, 0x01, 0xaf, 0x8a, 0x94,
2437 0x35, 0x99, 0x1a, 0xd8, 0x7a, 0xf9, 0x8c, 0x08, 0xae, 0xce, 0x11, 0x0e, 0x99, 0xcb,
2438 0xce, 0xcd, 0xee, 0x79,
2439 ],
2440 Core::Sha256Ctx8Add2 => [
2441 0x7d, 0x69, 0x13, 0x8f, 0x1c, 0x94, 0x2b, 0xee, 0x2f, 0xdf, 0x60, 0x0c, 0xe4, 0x4b,
2442 0x36, 0xff, 0x97, 0x83, 0x9d, 0xc2, 0xbb, 0xda, 0xfb, 0xd5, 0xfa, 0xb4, 0xdf, 0xbc,
2443 0x3c, 0x97, 0x6f, 0x29,
2444 ],
2445 Core::Sha256Ctx8Add256 => [
2446 0x4f, 0x5c, 0x29, 0xd5, 0x36, 0x86, 0xc0, 0x60, 0x62, 0xb3, 0x83, 0x24, 0xf8, 0xaf,
2447 0xf1, 0x7e, 0xc5, 0x56, 0xa2, 0x95, 0xff, 0x09, 0x8b, 0x10, 0xe7, 0x05, 0xdd, 0x22,
2448 0xe1, 0x3b, 0xc3, 0xc9,
2449 ],
2450 Core::Sha256Ctx8Add32 => [
2451 0xd5, 0x7b, 0x67, 0xb1, 0x74, 0xe7, 0x8e, 0x38, 0xf9, 0xbc, 0xa8, 0xe0, 0x7a, 0xdd,
2452 0x61, 0xc7, 0x53, 0xe2, 0xc1, 0x56, 0xd8, 0xe9, 0x83, 0x2a, 0xa6, 0x62, 0x04, 0x55,
2453 0x00, 0xf5, 0x1a, 0x80,
2454 ],
2455 Core::Sha256Ctx8Add4 => [
2456 0x95, 0xda, 0x32, 0x99, 0x3f, 0x5c, 0x7d, 0x00, 0x83, 0x06, 0x4c, 0xdf, 0xf1, 0xbe,
2457 0xc3, 0xb9, 0x36, 0xc6, 0x38, 0x33, 0x7a, 0xde, 0xc5, 0x47, 0x48, 0x7a, 0xf2, 0x32,
2458 0xd6, 0x9f, 0xdf, 0x65,
2459 ],
2460 Core::Sha256Ctx8Add512 => [
2461 0x4a, 0xcb, 0x16, 0x3a, 0xa4, 0x8f, 0x09, 0xd5, 0xf2, 0x6d, 0x2b, 0x2a, 0xb1, 0x88,
2462 0xa6, 0xc6, 0xb6, 0xc4, 0xae, 0xdf, 0x23, 0xc9, 0x19, 0x00, 0x1c, 0x02, 0xee, 0x15,
2463 0xb3, 0x37, 0xa9, 0x6e,
2464 ],
2465 Core::Sha256Ctx8Add64 => [
2466 0x52, 0xe5, 0x3e, 0xc5, 0x77, 0x0f, 0x9b, 0xe4, 0x06, 0x9a, 0xee, 0xfc, 0xb2, 0x13,
2467 0x22, 0xb1, 0x3a, 0xb6, 0xe3, 0x94, 0x1f, 0xdc, 0x2c, 0x85, 0xf4, 0xb4, 0x1b, 0xe6,
2468 0x7d, 0x38, 0xea, 0x7e,
2469 ],
2470 Core::Sha256Ctx8Add8 => [
2471 0xc2, 0x6b, 0x28, 0xaf, 0xe5, 0xe8, 0x66, 0xd8, 0x46, 0x16, 0x81, 0x4d, 0x1a, 0x13,
2472 0xfb, 0x86, 0x30, 0xb9, 0xe8, 0x4e, 0x5d, 0x78, 0x15, 0x56, 0xc6, 0xd8, 0x23, 0x6e,
2473 0xfb, 0x45, 0xdf, 0xf9,
2474 ],
2475 Core::Sha256Ctx8AddBuffer511 => [
2476 0xad, 0x69, 0x90, 0x46, 0x48, 0xa8, 0x23, 0x8d, 0x00, 0xd8, 0x51, 0x63, 0xfc, 0xe8,
2477 0x19, 0x63, 0xa0, 0x04, 0x7a, 0xb5, 0x82, 0xbe, 0x97, 0xa4, 0x14, 0x00, 0x65, 0x59,
2478 0x79, 0xcf, 0xdd, 0x28,
2479 ],
2480 Core::Sha256Ctx8Finalize => [
2481 0x8e, 0x45, 0xbd, 0xc3, 0x87, 0xd4, 0xed, 0xfa, 0x73, 0x35, 0x25, 0xf3, 0xab, 0x19,
2482 0xe4, 0x2b, 0x58, 0xec, 0xb1, 0xb5, 0xf6, 0xdc, 0xcf, 0x94, 0xed, 0xbf, 0x59, 0x95,
2483 0x8a, 0xe3, 0xe1, 0x16,
2484 ],
2485 Core::Sha256Ctx8Init => [
2486 0x63, 0x5f, 0x64, 0x05, 0x84, 0x86, 0x85, 0xc0, 0x11, 0xfe, 0xbd, 0x41, 0xfa, 0xac,
2487 0x87, 0x4b, 0xbb, 0xf5, 0xb2, 0x4d, 0x5f, 0xb1, 0x2f, 0xed, 0xbc, 0xb6, 0xcb, 0xff,
2488 0x95, 0xa0, 0xf3, 0x66,
2489 ],
2490 Core::Sha256Iv => [
2491 0x12, 0xe4, 0x59, 0x37, 0x51, 0xc9, 0x46, 0x3b, 0x56, 0x25, 0x03, 0xc1, 0x40, 0xd7,
2492 0x8b, 0x3b, 0x75, 0x7a, 0x1f, 0x4f, 0x16, 0x32, 0x1d, 0x28, 0x62, 0xd3, 0x25, 0x43,
2493 0x85, 0x38, 0x97, 0x1b,
2494 ],
2495 Core::Some1 => [
2496 0x15, 0xca, 0x4e, 0x4b, 0x82, 0xc2, 0xf9, 0x1b, 0x9a, 0x79, 0x29, 0x92, 0xcd, 0xc1,
2497 0xb2, 0x92, 0xab, 0x86, 0xa2, 0xd2, 0x93, 0x9c, 0x9a, 0x64, 0xb5, 0x0b, 0xe6, 0x0b,
2498 0xda, 0x6a, 0xb4, 0xca,
2499 ],
2500 Core::Some16 => [
2501 0xa9, 0xdf, 0xbb, 0xea, 0xb5, 0x9d, 0xf7, 0x2a, 0x45, 0xfc, 0x3f, 0xc7, 0xac, 0x58,
2502 0x1e, 0xc8, 0xda, 0x71, 0x3f, 0x2f, 0x81, 0x03, 0xf7, 0x87, 0xaa, 0x1c, 0xee, 0x4e,
2503 0x0b, 0xa6, 0x48, 0x66,
2504 ],
2505 Core::Some32 => [
2506 0x46, 0x33, 0xa3, 0x97, 0x74, 0x2e, 0xf4, 0x82, 0xbe, 0x2f, 0xa3, 0xfb, 0x64, 0x10,
2507 0xec, 0x79, 0xc3, 0x73, 0x83, 0x65, 0x69, 0xfb, 0xbc, 0xb1, 0xf9, 0x48, 0xec, 0x32,
2508 0x48, 0x73, 0x78, 0xb7,
2509 ],
2510 Core::Some64 => [
2511 0x1d, 0xc2, 0x45, 0xac, 0x6f, 0x5b, 0x42, 0x2b, 0xd1, 0x88, 0x6e, 0xf5, 0x14, 0x4c,
2512 0x4d, 0xc7, 0x2c, 0x96, 0x73, 0x15, 0x59, 0x66, 0x07, 0x6c, 0xd8, 0x39, 0x68, 0x1d,
2513 0x9e, 0xc7, 0xf8, 0xf5,
2514 ],
2515 Core::Some8 => [
2516 0x33, 0xaf, 0xb9, 0xc6, 0x45, 0x4e, 0x59, 0x0e, 0xc1, 0x3e, 0xd7, 0x5e, 0x1b, 0x7d,
2517 0x9c, 0x3a, 0x3d, 0xe6, 0x75, 0x2b, 0xcc, 0x7c, 0x1d, 0x4c, 0xb3, 0x63, 0xfa, 0x51,
2518 0x82, 0x8b, 0xcb, 0x74,
2519 ],
2520 Core::Subtract16 => [
2521 0x4e, 0x06, 0xec, 0x31, 0x37, 0x62, 0x22, 0xe2, 0x5e, 0x27, 0xd0, 0x15, 0x9d, 0xc1,
2522 0xc0, 0x71, 0x4a, 0x44, 0xca, 0x6a, 0xac, 0xf9, 0x50, 0x5c, 0xaa, 0xd2, 0x80, 0xe9,
2523 0x73, 0xfb, 0x5c, 0xab,
2524 ],
2525 Core::Subtract32 => [
2526 0xb9, 0xc0, 0xf3, 0x6e, 0x75, 0x22, 0xa8, 0xd9, 0x49, 0x05, 0x0d, 0x51, 0x6a, 0x05,
2527 0xce, 0x20, 0x3a, 0x1f, 0x9a, 0x9e, 0x37, 0x2f, 0xd2, 0x63, 0xde, 0x38, 0xb0, 0xe9,
2528 0x03, 0x13, 0x41, 0x98,
2529 ],
2530 Core::Subtract64 => [
2531 0x1c, 0xdb, 0x5c, 0x74, 0xad, 0xd1, 0x02, 0xf5, 0x0f, 0x93, 0x8e, 0xd8, 0x86, 0xf4,
2532 0x96, 0xe5, 0xba, 0xb2, 0x75, 0x5c, 0x3c, 0x48, 0x4e, 0x88, 0x87, 0x90, 0x3d, 0x2f,
2533 0x6a, 0x57, 0xf3, 0xaa,
2534 ],
2535 Core::Subtract8 => [
2536 0x4f, 0x21, 0x17, 0xa0, 0xe8, 0x10, 0x59, 0xff, 0x0c, 0xd6, 0x4d, 0x84, 0x88, 0x65,
2537 0x42, 0xe5, 0x75, 0xea, 0x8d, 0x6e, 0xc0, 0x31, 0x08, 0xfd, 0x0b, 0x50, 0x8b, 0x39,
2538 0x20, 0x8c, 0xd0, 0xef,
2539 ],
2540 Core::Swu => [
2541 0x00, 0xf5, 0x1f, 0x4f, 0x4b, 0xec, 0xe7, 0x90, 0x03, 0xec, 0xad, 0x48, 0x1a, 0x12,
2542 0x5a, 0xf7, 0x17, 0x6e, 0x4d, 0xe9, 0x8c, 0x33, 0x92, 0x42, 0x5c, 0xb9, 0x14, 0x66,
2543 0x26, 0xc1, 0x3b, 0x3b,
2544 ],
2545 Core::TapdataInit => [
2546 0xa4, 0xd0, 0x22, 0xef, 0x5c, 0xf4, 0x67, 0xbc, 0xa0, 0x32, 0x5e, 0x46, 0x3f, 0xca,
2547 0xce, 0x7c, 0xbd, 0xd6, 0x4f, 0xf8, 0xf7, 0x1c, 0x5c, 0x7f, 0x63, 0xe6, 0x07, 0x84,
2548 0xaa, 0x0a, 0xc4, 0x86,
2549 ],
2550 Core::Verify => [
2551 0xcd, 0xca, 0x2a, 0x05, 0xe5, 0x2c, 0xef, 0xa5, 0x9d, 0xc7, 0xa5, 0xb0, 0xda, 0xe2,
2552 0x20, 0x98, 0xfb, 0x89, 0x6e, 0x39, 0x13, 0xbf, 0xdd, 0x44, 0x6b, 0x59, 0x4e, 0x1f,
2553 0x92, 0x50, 0x78, 0x3e,
2554 ],
2555 Core::Xor1 => [
2556 0x8c, 0x4e, 0x4e, 0x6e, 0xbf, 0x46, 0x30, 0xb2, 0x9b, 0x5a, 0x57, 0xea, 0x79, 0xf0,
2557 0xc9, 0xaf, 0x6b, 0xff, 0x54, 0xc4, 0xd2, 0xd7, 0x69, 0xbf, 0x51, 0x59, 0x47, 0x74,
2558 0xa5, 0x2b, 0x99, 0xc9,
2559 ],
2560 Core::Xor16 => [
2561 0xd9, 0xf0, 0xaf, 0x3f, 0xe3, 0xfd, 0x24, 0x7c, 0x1d, 0xf3, 0x4a, 0x25, 0x27, 0x13,
2562 0xb2, 0xe9, 0x33, 0xa9, 0x45, 0xa5, 0x67, 0x19, 0x48, 0x7f, 0x8e, 0xd7, 0xf5, 0x63,
2563 0xea, 0x86, 0x1a, 0xb5,
2564 ],
2565 Core::Xor32 => [
2566 0xd5, 0xae, 0x27, 0x12, 0xed, 0xea, 0xf6, 0x76, 0x52, 0x0f, 0xa3, 0xba, 0x0f, 0x40,
2567 0xbf, 0x4a, 0x16, 0x57, 0x43, 0x7e, 0xff, 0xbd, 0x99, 0x86, 0xd0, 0x6a, 0xe8, 0x1b,
2568 0x29, 0xa4, 0xf9, 0x8c,
2569 ],
2570 Core::Xor64 => [
2571 0xc4, 0xdf, 0x1c, 0xcf, 0x33, 0x3e, 0xde, 0xbd, 0xd4, 0x0d, 0xea, 0x9a, 0x0e, 0x6c,
2572 0xbb, 0x83, 0x06, 0x31, 0xe8, 0x3a, 0x94, 0xbb, 0x77, 0x9f, 0xe6, 0x00, 0x7b, 0xc6,
2573 0xcb, 0x53, 0xa5, 0x44,
2574 ],
2575 Core::Xor8 => [
2576 0x4a, 0xb1, 0x4a, 0x81, 0x4a, 0x39, 0x52, 0x8a, 0x80, 0xfd, 0xb4, 0x30, 0x58, 0x9b,
2577 0xa4, 0x50, 0x10, 0x4b, 0x9c, 0x72, 0x09, 0xaa, 0x2f, 0xe2, 0x85, 0xcd, 0x60, 0xc0,
2578 0x90, 0x43, 0x11, 0x4a,
2579 ],
2580 Core::XorXor1 => [
2581 0x18, 0xb9, 0x44, 0x6a, 0x41, 0x66, 0xa3, 0xfe, 0xe2, 0xbc, 0xb2, 0x54, 0x5b, 0xb9,
2582 0x01, 0x18, 0xdc, 0xf0, 0xe8, 0xf8, 0x86, 0xa1, 0x07, 0x6d, 0x4c, 0x38, 0x60, 0x06,
2583 0x0c, 0xde, 0x1a, 0x51,
2584 ],
2585 Core::XorXor16 => [
2586 0x94, 0x6c, 0xde, 0x87, 0x2e, 0x30, 0xe6, 0x50, 0x9d, 0xaf, 0xf4, 0x05, 0xf0, 0xe0,
2587 0xfe, 0xfe, 0x27, 0x55, 0x47, 0xb4, 0x0e, 0xb2, 0x03, 0x84, 0xaf, 0xe9, 0xa8, 0x63,
2588 0x60, 0xfc, 0x80, 0xef,
2589 ],
2590 Core::XorXor32 => [
2591 0x65, 0x27, 0xdf, 0x67, 0xa5, 0x0d, 0x14, 0x8d, 0xb4, 0xfc, 0x8f, 0xee, 0xc7, 0x84,
2592 0x55, 0x64, 0x99, 0xa8, 0xc7, 0xf0, 0xfa, 0x7d, 0x28, 0xe6, 0x27, 0x8e, 0x99, 0x7f,
2593 0x49, 0x59, 0xbe, 0x39,
2594 ],
2595 Core::XorXor64 => [
2596 0xf1, 0x62, 0xf9, 0xe6, 0x56, 0x63, 0xa6, 0x9a, 0xc5, 0xf9, 0x2a, 0x5e, 0xb5, 0x2c,
2597 0x03, 0x32, 0x39, 0x2e, 0xdd, 0x1e, 0xd1, 0xba, 0x35, 0x5e, 0x6f, 0x19, 0x40, 0x6e,
2598 0xab, 0xe3, 0xf6, 0xed,
2599 ],
2600 Core::XorXor8 => [
2601 0xe0, 0x6d, 0x69, 0x4c, 0x5b, 0x40, 0x7d, 0xda, 0xd7, 0xaa, 0x1f, 0x88, 0x07, 0x16,
2602 0xbc, 0xb7, 0x0a, 0xcd, 0xba, 0x75, 0x85, 0xca, 0x40, 0x09, 0x9a, 0x0a, 0x0a, 0x61,
2603 0xf3, 0xad, 0x2d, 0xb5,
2604 ],
2605 };
2606
2607 Cmr(Midstate(bytes))
2608 }
2609
2610 fn source_ty(&self) -> TypeName {
2611 let name: &'static [u8] = match self {
2612 Core::Add16 => b"i",
2613 Core::Add32 => b"l",
2614 Core::Add64 => b"*ll",
2615 Core::Add8 => b"****22*22**22*22***22*22**22*22",
2616 Core::All16 => b"****22*22**22*22***22*22**22*22",
2617 Core::All32 => b"i",
2618 Core::All64 => b"l",
2619 Core::All8 => b"***22*22**22*22",
2620 Core::And1 => b"*22",
2621 Core::And16 => b"i",
2622 Core::And32 => b"l",
2623 Core::And64 => b"*ll",
2624 Core::And8 => b"****22*22**22*22***22*22**22*22",
2625 Core::Bip0340Verify => b"**hh*hh",
2626 Core::Ch1 => b"*2*22",
2627 Core::Ch16 => b"*****22*22**22*22***22*22**22*22i",
2628 Core::Ch32 => b"*il",
2629 Core::Ch64 => b"*l*ll",
2630 Core::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2631 Core::CheckSigVerify => b"**h*hh*hh",
2632 Core::Complement1 => b"2",
2633 Core::Complement16 => b"****22*22**22*22***22*22**22*22",
2634 Core::Complement32 => b"i",
2635 Core::Complement64 => b"l",
2636 Core::Complement8 => b"***22*22**22*22",
2637 Core::Decompress => b"*2h",
2638 Core::Decrement16 => b"****22*22**22*22***22*22**22*22",
2639 Core::Decrement32 => b"i",
2640 Core::Decrement64 => b"l",
2641 Core::Decrement8 => b"***22*22**22*22",
2642 Core::DivMod128_64 => b"**lll",
2643 Core::DivMod16 => b"i",
2644 Core::DivMod32 => b"l",
2645 Core::DivMod64 => b"*ll",
2646 Core::DivMod8 => b"****22*22**22*22***22*22**22*22",
2647 Core::Divide16 => b"i",
2648 Core::Divide32 => b"l",
2649 Core::Divide64 => b"*ll",
2650 Core::Divide8 => b"****22*22**22*22***22*22**22*22",
2651 Core::Divides16 => b"i",
2652 Core::Divides32 => b"l",
2653 Core::Divides64 => b"*ll",
2654 Core::Divides8 => b"****22*22**22*22***22*22**22*22",
2655 Core::Eq1 => b"*22",
2656 Core::Eq16 => b"i",
2657 Core::Eq256 => b"*hh",
2658 Core::Eq32 => b"l",
2659 Core::Eq64 => b"*ll",
2660 Core::Eq8 => b"****22*22**22*22***22*22**22*22",
2661 Core::FeAdd => b"*hh",
2662 Core::FeInvert => b"h",
2663 Core::FeIsOdd => b"h",
2664 Core::FeIsZero => b"h",
2665 Core::FeMultiply => b"*hh",
2666 Core::FeMultiplyBeta => b"h",
2667 Core::FeNegate => b"h",
2668 Core::FeNormalize => b"h",
2669 Core::FeSquare => b"h",
2670 Core::FeSquareRoot => b"h",
2671 Core::FullAdd16 => b"*2i",
2672 Core::FullAdd32 => b"*2l",
2673 Core::FullAdd64 => b"*2*ll",
2674 Core::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
2675 Core::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
2676 Core::FullDecrement32 => b"*2i",
2677 Core::FullDecrement64 => b"*2l",
2678 Core::FullDecrement8 => b"*2***22*22**22*22",
2679 Core::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
2680 Core::FullIncrement32 => b"*2i",
2681 Core::FullIncrement64 => b"*2l",
2682 Core::FullIncrement8 => b"*2***22*22**22*22",
2683 Core::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
2684 Core::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
2685 Core::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
2686 Core::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
2687 Core::FullLeftShift32_1 => b"*i2",
2688 Core::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
2689 Core::FullLeftShift32_2 => b"*i*22",
2690 Core::FullLeftShift32_4 => b"*i**22*22",
2691 Core::FullLeftShift32_8 => b"*i***22*22**22*22",
2692 Core::FullLeftShift64_1 => b"*l2",
2693 Core::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
2694 Core::FullLeftShift64_2 => b"*l*22",
2695 Core::FullLeftShift64_32 => b"*li",
2696 Core::FullLeftShift64_4 => b"*l**22*22",
2697 Core::FullLeftShift64_8 => b"*l***22*22**22*22",
2698 Core::FullLeftShift8_1 => b"****22*22**22*222",
2699 Core::FullLeftShift8_2 => b"****22*22**22*22*22",
2700 Core::FullLeftShift8_4 => b"****22*22**22*22**22*22",
2701 Core::FullMultiply16 => b"l",
2702 Core::FullMultiply32 => b"*ll",
2703 Core::FullMultiply64 => b"h",
2704 Core::FullMultiply8 => b"i",
2705 Core::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
2706 Core::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
2707 Core::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
2708 Core::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2709 Core::FullRightShift32_1 => b"*2i",
2710 Core::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
2711 Core::FullRightShift32_2 => b"**22i",
2712 Core::FullRightShift32_4 => b"***22*22i",
2713 Core::FullRightShift32_8 => b"****22*22**22*22i",
2714 Core::FullRightShift64_1 => b"*2l",
2715 Core::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
2716 Core::FullRightShift64_2 => b"**22l",
2717 Core::FullRightShift64_32 => b"*il",
2718 Core::FullRightShift64_4 => b"***22*22l",
2719 Core::FullRightShift64_8 => b"****22*22**22*22l",
2720 Core::FullRightShift8_1 => b"*2***22*22**22*22",
2721 Core::FullRightShift8_2 => b"**22***22*22**22*22",
2722 Core::FullRightShift8_4 => b"***22*22***22*22**22*22",
2723 Core::FullSubtract16 => b"*2i",
2724 Core::FullSubtract32 => b"*2l",
2725 Core::FullSubtract64 => b"*2*ll",
2726 Core::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
2727 Core::GeIsOnCurve => b"*hh",
2728 Core::GeNegate => b"*hh",
2729 Core::GejAdd => b"***hhh**hhh",
2730 Core::GejDouble => b"**hhh",
2731 Core::GejEquiv => b"***hhh**hhh",
2732 Core::GejGeAdd => b"***hhh*hh",
2733 Core::GejGeAddEx => b"***hhh*hh",
2734 Core::GejGeEquiv => b"***hhh*hh",
2735 Core::GejInfinity => b"1",
2736 Core::GejIsInfinity => b"**hhh",
2737 Core::GejIsOnCurve => b"**hhh",
2738 Core::GejNegate => b"**hhh",
2739 Core::GejNormalize => b"**hhh",
2740 Core::GejRescale => b"***hhhh",
2741 Core::GejXEquiv => b"*h**hhh",
2742 Core::GejYIsOdd => b"**hhh",
2743 Core::Generate => b"h",
2744 Core::HashToCurve => b"h",
2745 Core::High1 => b"1",
2746 Core::High16 => b"1",
2747 Core::High32 => b"1",
2748 Core::High64 => b"1",
2749 Core::High8 => b"1",
2750 Core::Increment16 => b"****22*22**22*22***22*22**22*22",
2751 Core::Increment32 => b"i",
2752 Core::Increment64 => b"l",
2753 Core::Increment8 => b"***22*22**22*22",
2754 Core::IsOne16 => b"****22*22**22*22***22*22**22*22",
2755 Core::IsOne32 => b"i",
2756 Core::IsOne64 => b"l",
2757 Core::IsOne8 => b"***22*22**22*22",
2758 Core::IsZero16 => b"****22*22**22*22***22*22**22*22",
2759 Core::IsZero32 => b"i",
2760 Core::IsZero64 => b"l",
2761 Core::IsZero8 => b"***22*22**22*22",
2762 Core::Le16 => b"i",
2763 Core::Le32 => b"l",
2764 Core::Le64 => b"*ll",
2765 Core::Le8 => b"****22*22**22*22***22*22**22*22",
2766 Core::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
2767 Core::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
2768 Core::LeftExtend1_16 => b"2",
2769 Core::LeftExtend1_32 => b"2",
2770 Core::LeftExtend1_64 => b"2",
2771 Core::LeftExtend1_8 => b"2",
2772 Core::LeftExtend32_64 => b"i",
2773 Core::LeftExtend8_16 => b"***22*22**22*22",
2774 Core::LeftExtend8_32 => b"***22*22**22*22",
2775 Core::LeftExtend8_64 => b"***22*22**22*22",
2776 Core::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
2777 Core::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
2778 Core::LeftPadHigh1_16 => b"2",
2779 Core::LeftPadHigh1_32 => b"2",
2780 Core::LeftPadHigh1_64 => b"2",
2781 Core::LeftPadHigh1_8 => b"2",
2782 Core::LeftPadHigh32_64 => b"i",
2783 Core::LeftPadHigh8_16 => b"***22*22**22*22",
2784 Core::LeftPadHigh8_32 => b"***22*22**22*22",
2785 Core::LeftPadHigh8_64 => b"***22*22**22*22",
2786 Core::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
2787 Core::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
2788 Core::LeftPadLow1_16 => b"2",
2789 Core::LeftPadLow1_32 => b"2",
2790 Core::LeftPadLow1_64 => b"2",
2791 Core::LeftPadLow1_8 => b"2",
2792 Core::LeftPadLow32_64 => b"i",
2793 Core::LeftPadLow8_16 => b"***22*22**22*22",
2794 Core::LeftPadLow8_32 => b"***22*22**22*22",
2795 Core::LeftPadLow8_64 => b"***22*22**22*22",
2796 Core::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
2797 Core::LeftRotate32 => b"****22*22**22*22i",
2798 Core::LeftRotate64 => b"****22*22**22*22l",
2799 Core::LeftRotate8 => b"***22*22***22*22**22*22",
2800 Core::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
2801 Core::LeftShift32 => b"****22*22**22*22i",
2802 Core::LeftShift64 => b"****22*22**22*22l",
2803 Core::LeftShift8 => b"***22*22***22*22**22*22",
2804 Core::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
2805 Core::LeftShiftWith32 => b"*2****22*22**22*22i",
2806 Core::LeftShiftWith64 => b"*2****22*22**22*22l",
2807 Core::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
2808 Core::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
2809 Core::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
2810 Core::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
2811 Core::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
2812 Core::Leftmost32_1 => b"i",
2813 Core::Leftmost32_16 => b"i",
2814 Core::Leftmost32_2 => b"i",
2815 Core::Leftmost32_4 => b"i",
2816 Core::Leftmost32_8 => b"i",
2817 Core::Leftmost64_1 => b"l",
2818 Core::Leftmost64_16 => b"l",
2819 Core::Leftmost64_2 => b"l",
2820 Core::Leftmost64_32 => b"l",
2821 Core::Leftmost64_4 => b"l",
2822 Core::Leftmost64_8 => b"l",
2823 Core::Leftmost8_1 => b"***22*22**22*22",
2824 Core::Leftmost8_2 => b"***22*22**22*22",
2825 Core::Leftmost8_4 => b"***22*22**22*22",
2826 Core::LinearCombination1 => b"**h**hhhh",
2827 Core::LinearVerify1 => b"***h*hhh*hh",
2828 Core::Low1 => b"1",
2829 Core::Low16 => b"1",
2830 Core::Low32 => b"1",
2831 Core::Low64 => b"1",
2832 Core::Low8 => b"1",
2833 Core::Lt16 => b"i",
2834 Core::Lt32 => b"l",
2835 Core::Lt64 => b"*ll",
2836 Core::Lt8 => b"****22*22**22*22***22*22**22*22",
2837 Core::Maj1 => b"*2*22",
2838 Core::Maj16 => b"*****22*22**22*22***22*22**22*22i",
2839 Core::Maj32 => b"*il",
2840 Core::Maj64 => b"*l*ll",
2841 Core::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2842 Core::Max16 => b"i",
2843 Core::Max32 => b"l",
2844 Core::Max64 => b"*ll",
2845 Core::Max8 => b"****22*22**22*22***22*22**22*22",
2846 Core::Median16 => b"*****22*22**22*22***22*22**22*22i",
2847 Core::Median32 => b"*il",
2848 Core::Median64 => b"*l*ll",
2849 Core::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2850 Core::Min16 => b"i",
2851 Core::Min32 => b"l",
2852 Core::Min64 => b"*ll",
2853 Core::Min8 => b"****22*22**22*22***22*22**22*22",
2854 Core::Modulo16 => b"i",
2855 Core::Modulo32 => b"l",
2856 Core::Modulo64 => b"*ll",
2857 Core::Modulo8 => b"****22*22**22*22***22*22**22*22",
2858 Core::Multiply16 => b"i",
2859 Core::Multiply32 => b"l",
2860 Core::Multiply64 => b"*ll",
2861 Core::Multiply8 => b"****22*22**22*22***22*22**22*22",
2862 Core::Negate16 => b"****22*22**22*22***22*22**22*22",
2863 Core::Negate32 => b"i",
2864 Core::Negate64 => b"l",
2865 Core::Negate8 => b"***22*22**22*22",
2866 Core::One16 => b"1",
2867 Core::One32 => b"1",
2868 Core::One64 => b"1",
2869 Core::One8 => b"1",
2870 Core::Or1 => b"*22",
2871 Core::Or16 => b"i",
2872 Core::Or32 => b"l",
2873 Core::Or64 => b"*ll",
2874 Core::Or8 => b"****22*22**22*22***22*22**22*22",
2875 Core::ParseLock => b"i",
2876 Core::ParseSequence => b"i",
2877 Core::PointVerify1 => b"***h*2hh*2h",
2878 Core::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
2879 Core::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
2880 Core::RightExtend32_64 => b"i",
2881 Core::RightExtend8_16 => b"***22*22**22*22",
2882 Core::RightExtend8_32 => b"***22*22**22*22",
2883 Core::RightExtend8_64 => b"***22*22**22*22",
2884 Core::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
2885 Core::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
2886 Core::RightPadHigh1_16 => b"2",
2887 Core::RightPadHigh1_32 => b"2",
2888 Core::RightPadHigh1_64 => b"2",
2889 Core::RightPadHigh1_8 => b"2",
2890 Core::RightPadHigh32_64 => b"i",
2891 Core::RightPadHigh8_16 => b"***22*22**22*22",
2892 Core::RightPadHigh8_32 => b"***22*22**22*22",
2893 Core::RightPadHigh8_64 => b"***22*22**22*22",
2894 Core::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
2895 Core::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
2896 Core::RightPadLow1_16 => b"2",
2897 Core::RightPadLow1_32 => b"2",
2898 Core::RightPadLow1_64 => b"2",
2899 Core::RightPadLow1_8 => b"2",
2900 Core::RightPadLow32_64 => b"i",
2901 Core::RightPadLow8_16 => b"***22*22**22*22",
2902 Core::RightPadLow8_32 => b"***22*22**22*22",
2903 Core::RightPadLow8_64 => b"***22*22**22*22",
2904 Core::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
2905 Core::RightRotate32 => b"****22*22**22*22i",
2906 Core::RightRotate64 => b"****22*22**22*22l",
2907 Core::RightRotate8 => b"***22*22***22*22**22*22",
2908 Core::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
2909 Core::RightShift32 => b"****22*22**22*22i",
2910 Core::RightShift64 => b"****22*22**22*22l",
2911 Core::RightShift8 => b"***22*22***22*22**22*22",
2912 Core::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
2913 Core::RightShiftWith32 => b"*2****22*22**22*22i",
2914 Core::RightShiftWith64 => b"*2****22*22**22*22l",
2915 Core::RightShiftWith8 => b"*2***22*22***22*22**22*22",
2916 Core::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
2917 Core::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
2918 Core::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
2919 Core::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
2920 Core::Rightmost32_1 => b"i",
2921 Core::Rightmost32_16 => b"i",
2922 Core::Rightmost32_2 => b"i",
2923 Core::Rightmost32_4 => b"i",
2924 Core::Rightmost32_8 => b"i",
2925 Core::Rightmost64_1 => b"l",
2926 Core::Rightmost64_16 => b"l",
2927 Core::Rightmost64_2 => b"l",
2928 Core::Rightmost64_32 => b"l",
2929 Core::Rightmost64_4 => b"l",
2930 Core::Rightmost64_8 => b"l",
2931 Core::Rightmost8_1 => b"***22*22**22*22",
2932 Core::Rightmost8_2 => b"***22*22**22*22",
2933 Core::Rightmost8_4 => b"***22*22**22*22",
2934 Core::ScalarAdd => b"*hh",
2935 Core::ScalarInvert => b"h",
2936 Core::ScalarIsZero => b"h",
2937 Core::ScalarMultiply => b"*hh",
2938 Core::ScalarMultiplyLambda => b"h",
2939 Core::ScalarNegate => b"h",
2940 Core::ScalarNormalize => b"h",
2941 Core::ScalarSquare => b"h",
2942 Core::Scale => b"*h**hhh",
2943 Core::Sha256Block => b"*h*hh",
2944 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",
2945 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",
2946 Core::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
2947 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",
2948 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",
2949 Core::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
2950 Core::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
2951 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",
2952 Core::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
2953 Core::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
2954 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",
2955 Core::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
2956 Core::Sha256Ctx8Init => b"1",
2957 Core::Sha256Iv => b"1",
2958 Core::Some1 => b"2",
2959 Core::Some16 => b"****22*22**22*22***22*22**22*22",
2960 Core::Some32 => b"i",
2961 Core::Some64 => b"l",
2962 Core::Some8 => b"***22*22**22*22",
2963 Core::Subtract16 => b"i",
2964 Core::Subtract32 => b"l",
2965 Core::Subtract64 => b"*ll",
2966 Core::Subtract8 => b"****22*22**22*22***22*22**22*22",
2967 Core::Swu => b"h",
2968 Core::TapdataInit => b"1",
2969 Core::Verify => b"2",
2970 Core::Xor1 => b"*22",
2971 Core::Xor16 => b"i",
2972 Core::Xor32 => b"l",
2973 Core::Xor64 => b"*ll",
2974 Core::Xor8 => b"****22*22**22*22***22*22**22*22",
2975 Core::XorXor1 => b"*2*22",
2976 Core::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
2977 Core::XorXor32 => b"*il",
2978 Core::XorXor64 => b"*l*ll",
2979 Core::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2980 };
2981
2982 TypeName(name)
2983 }
2984
2985 fn target_ty(&self) -> TypeName {
2986 let name: &'static [u8] = match self {
2987 Core::Add16 => b"*2****22*22**22*22***22*22**22*22",
2988 Core::Add32 => b"*2i",
2989 Core::Add64 => b"*2l",
2990 Core::Add8 => b"*2***22*22**22*22",
2991 Core::All16 => b"2",
2992 Core::All32 => b"2",
2993 Core::All64 => b"2",
2994 Core::All8 => b"2",
2995 Core::And1 => b"2",
2996 Core::And16 => b"****22*22**22*22***22*22**22*22",
2997 Core::And32 => b"i",
2998 Core::And64 => b"l",
2999 Core::And8 => b"***22*22**22*22",
3000 Core::Bip0340Verify => b"1",
3001 Core::Ch1 => b"2",
3002 Core::Ch16 => b"****22*22**22*22***22*22**22*22",
3003 Core::Ch32 => b"i",
3004 Core::Ch64 => b"l",
3005 Core::Ch8 => b"***22*22**22*22",
3006 Core::CheckSigVerify => b"1",
3007 Core::Complement1 => b"2",
3008 Core::Complement16 => b"****22*22**22*22***22*22**22*22",
3009 Core::Complement32 => b"i",
3010 Core::Complement64 => b"l",
3011 Core::Complement8 => b"***22*22**22*22",
3012 Core::Decompress => b"+1*hh",
3013 Core::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
3014 Core::Decrement32 => b"*2i",
3015 Core::Decrement64 => b"*2l",
3016 Core::Decrement8 => b"*2***22*22**22*22",
3017 Core::DivMod128_64 => b"*ll",
3018 Core::DivMod16 => b"i",
3019 Core::DivMod32 => b"l",
3020 Core::DivMod64 => b"*ll",
3021 Core::DivMod8 => b"****22*22**22*22***22*22**22*22",
3022 Core::Divide16 => b"****22*22**22*22***22*22**22*22",
3023 Core::Divide32 => b"i",
3024 Core::Divide64 => b"l",
3025 Core::Divide8 => b"***22*22**22*22",
3026 Core::Divides16 => b"2",
3027 Core::Divides32 => b"2",
3028 Core::Divides64 => b"2",
3029 Core::Divides8 => b"2",
3030 Core::Eq1 => b"2",
3031 Core::Eq16 => b"2",
3032 Core::Eq256 => b"2",
3033 Core::Eq32 => b"2",
3034 Core::Eq64 => b"2",
3035 Core::Eq8 => b"2",
3036 Core::FeAdd => b"h",
3037 Core::FeInvert => b"h",
3038 Core::FeIsOdd => b"2",
3039 Core::FeIsZero => b"2",
3040 Core::FeMultiply => b"h",
3041 Core::FeMultiplyBeta => b"h",
3042 Core::FeNegate => b"h",
3043 Core::FeNormalize => b"h",
3044 Core::FeSquare => b"h",
3045 Core::FeSquareRoot => b"+1h",
3046 Core::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
3047 Core::FullAdd32 => b"*2i",
3048 Core::FullAdd64 => b"*2l",
3049 Core::FullAdd8 => b"*2***22*22**22*22",
3050 Core::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3051 Core::FullDecrement32 => b"*2i",
3052 Core::FullDecrement64 => b"*2l",
3053 Core::FullDecrement8 => b"*2***22*22**22*22",
3054 Core::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3055 Core::FullIncrement32 => b"*2i",
3056 Core::FullIncrement64 => b"*2l",
3057 Core::FullIncrement8 => b"*2***22*22**22*22",
3058 Core::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3059 Core::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3060 Core::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3061 Core::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3062 Core::FullLeftShift32_1 => b"*2i",
3063 Core::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3064 Core::FullLeftShift32_2 => b"**22i",
3065 Core::FullLeftShift32_4 => b"***22*22i",
3066 Core::FullLeftShift32_8 => b"****22*22**22*22i",
3067 Core::FullLeftShift64_1 => b"*2l",
3068 Core::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3069 Core::FullLeftShift64_2 => b"**22l",
3070 Core::FullLeftShift64_32 => b"*il",
3071 Core::FullLeftShift64_4 => b"***22*22l",
3072 Core::FullLeftShift64_8 => b"****22*22**22*22l",
3073 Core::FullLeftShift8_1 => b"*2***22*22**22*22",
3074 Core::FullLeftShift8_2 => b"**22***22*22**22*22",
3075 Core::FullLeftShift8_4 => b"***22*22***22*22**22*22",
3076 Core::FullMultiply16 => b"i",
3077 Core::FullMultiply32 => b"l",
3078 Core::FullMultiply64 => b"*ll",
3079 Core::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
3080 Core::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
3081 Core::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3082 Core::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3083 Core::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3084 Core::FullRightShift32_1 => b"*i2",
3085 Core::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3086 Core::FullRightShift32_2 => b"*i*22",
3087 Core::FullRightShift32_4 => b"*i**22*22",
3088 Core::FullRightShift32_8 => b"*i***22*22**22*22",
3089 Core::FullRightShift64_1 => b"*l2",
3090 Core::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3091 Core::FullRightShift64_2 => b"*l*22",
3092 Core::FullRightShift64_32 => b"*li",
3093 Core::FullRightShift64_4 => b"*l**22*22",
3094 Core::FullRightShift64_8 => b"*l***22*22**22*22",
3095 Core::FullRightShift8_1 => b"****22*22**22*222",
3096 Core::FullRightShift8_2 => b"****22*22**22*22*22",
3097 Core::FullRightShift8_4 => b"****22*22**22*22**22*22",
3098 Core::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
3099 Core::FullSubtract32 => b"*2i",
3100 Core::FullSubtract64 => b"*2l",
3101 Core::FullSubtract8 => b"*2***22*22**22*22",
3102 Core::GeIsOnCurve => b"2",
3103 Core::GeNegate => b"*hh",
3104 Core::GejAdd => b"**hhh",
3105 Core::GejDouble => b"**hhh",
3106 Core::GejEquiv => b"2",
3107 Core::GejGeAdd => b"**hhh",
3108 Core::GejGeAddEx => b"*h**hhh",
3109 Core::GejGeEquiv => b"2",
3110 Core::GejInfinity => b"**hhh",
3111 Core::GejIsInfinity => b"2",
3112 Core::GejIsOnCurve => b"2",
3113 Core::GejNegate => b"**hhh",
3114 Core::GejNormalize => b"+1*hh",
3115 Core::GejRescale => b"**hhh",
3116 Core::GejXEquiv => b"2",
3117 Core::GejYIsOdd => b"2",
3118 Core::Generate => b"**hhh",
3119 Core::HashToCurve => b"*hh",
3120 Core::High1 => b"2",
3121 Core::High16 => b"****22*22**22*22***22*22**22*22",
3122 Core::High32 => b"i",
3123 Core::High64 => b"l",
3124 Core::High8 => b"***22*22**22*22",
3125 Core::Increment16 => b"*2****22*22**22*22***22*22**22*22",
3126 Core::Increment32 => b"*2i",
3127 Core::Increment64 => b"*2l",
3128 Core::Increment8 => b"*2***22*22**22*22",
3129 Core::IsOne16 => b"2",
3130 Core::IsOne32 => b"2",
3131 Core::IsOne64 => b"2",
3132 Core::IsOne8 => b"2",
3133 Core::IsZero16 => b"2",
3134 Core::IsZero32 => b"2",
3135 Core::IsZero64 => b"2",
3136 Core::IsZero8 => b"2",
3137 Core::Le16 => b"2",
3138 Core::Le32 => b"2",
3139 Core::Le64 => b"2",
3140 Core::Le8 => b"2",
3141 Core::LeftExtend16_32 => b"i",
3142 Core::LeftExtend16_64 => b"l",
3143 Core::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
3144 Core::LeftExtend1_32 => b"i",
3145 Core::LeftExtend1_64 => b"l",
3146 Core::LeftExtend1_8 => b"***22*22**22*22",
3147 Core::LeftExtend32_64 => b"l",
3148 Core::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
3149 Core::LeftExtend8_32 => b"i",
3150 Core::LeftExtend8_64 => b"l",
3151 Core::LeftPadHigh16_32 => b"i",
3152 Core::LeftPadHigh16_64 => b"l",
3153 Core::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
3154 Core::LeftPadHigh1_32 => b"i",
3155 Core::LeftPadHigh1_64 => b"l",
3156 Core::LeftPadHigh1_8 => b"***22*22**22*22",
3157 Core::LeftPadHigh32_64 => b"l",
3158 Core::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
3159 Core::LeftPadHigh8_32 => b"i",
3160 Core::LeftPadHigh8_64 => b"l",
3161 Core::LeftPadLow16_32 => b"i",
3162 Core::LeftPadLow16_64 => b"l",
3163 Core::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
3164 Core::LeftPadLow1_32 => b"i",
3165 Core::LeftPadLow1_64 => b"l",
3166 Core::LeftPadLow1_8 => b"***22*22**22*22",
3167 Core::LeftPadLow32_64 => b"l",
3168 Core::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
3169 Core::LeftPadLow8_32 => b"i",
3170 Core::LeftPadLow8_64 => b"l",
3171 Core::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
3172 Core::LeftRotate32 => b"i",
3173 Core::LeftRotate64 => b"l",
3174 Core::LeftRotate8 => b"***22*22**22*22",
3175 Core::LeftShift16 => b"****22*22**22*22***22*22**22*22",
3176 Core::LeftShift32 => b"i",
3177 Core::LeftShift64 => b"l",
3178 Core::LeftShift8 => b"***22*22**22*22",
3179 Core::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
3180 Core::LeftShiftWith32 => b"i",
3181 Core::LeftShiftWith64 => b"l",
3182 Core::LeftShiftWith8 => b"***22*22**22*22",
3183 Core::Leftmost16_1 => b"2",
3184 Core::Leftmost16_2 => b"*22",
3185 Core::Leftmost16_4 => b"**22*22",
3186 Core::Leftmost16_8 => b"***22*22**22*22",
3187 Core::Leftmost32_1 => b"2",
3188 Core::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
3189 Core::Leftmost32_2 => b"*22",
3190 Core::Leftmost32_4 => b"**22*22",
3191 Core::Leftmost32_8 => b"***22*22**22*22",
3192 Core::Leftmost64_1 => b"2",
3193 Core::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
3194 Core::Leftmost64_2 => b"*22",
3195 Core::Leftmost64_32 => b"i",
3196 Core::Leftmost64_4 => b"**22*22",
3197 Core::Leftmost64_8 => b"***22*22**22*22",
3198 Core::Leftmost8_1 => b"2",
3199 Core::Leftmost8_2 => b"*22",
3200 Core::Leftmost8_4 => b"**22*22",
3201 Core::LinearCombination1 => b"**hhh",
3202 Core::LinearVerify1 => b"1",
3203 Core::Low1 => b"2",
3204 Core::Low16 => b"****22*22**22*22***22*22**22*22",
3205 Core::Low32 => b"i",
3206 Core::Low64 => b"l",
3207 Core::Low8 => b"***22*22**22*22",
3208 Core::Lt16 => b"2",
3209 Core::Lt32 => b"2",
3210 Core::Lt64 => b"2",
3211 Core::Lt8 => b"2",
3212 Core::Maj1 => b"2",
3213 Core::Maj16 => b"****22*22**22*22***22*22**22*22",
3214 Core::Maj32 => b"i",
3215 Core::Maj64 => b"l",
3216 Core::Maj8 => b"***22*22**22*22",
3217 Core::Max16 => b"****22*22**22*22***22*22**22*22",
3218 Core::Max32 => b"i",
3219 Core::Max64 => b"l",
3220 Core::Max8 => b"***22*22**22*22",
3221 Core::Median16 => b"****22*22**22*22***22*22**22*22",
3222 Core::Median32 => b"i",
3223 Core::Median64 => b"l",
3224 Core::Median8 => b"***22*22**22*22",
3225 Core::Min16 => b"****22*22**22*22***22*22**22*22",
3226 Core::Min32 => b"i",
3227 Core::Min64 => b"l",
3228 Core::Min8 => b"***22*22**22*22",
3229 Core::Modulo16 => b"****22*22**22*22***22*22**22*22",
3230 Core::Modulo32 => b"i",
3231 Core::Modulo64 => b"l",
3232 Core::Modulo8 => b"***22*22**22*22",
3233 Core::Multiply16 => b"i",
3234 Core::Multiply32 => b"l",
3235 Core::Multiply64 => b"*ll",
3236 Core::Multiply8 => b"****22*22**22*22***22*22**22*22",
3237 Core::Negate16 => b"*2****22*22**22*22***22*22**22*22",
3238 Core::Negate32 => b"*2i",
3239 Core::Negate64 => b"*2l",
3240 Core::Negate8 => b"*2***22*22**22*22",
3241 Core::One16 => b"****22*22**22*22***22*22**22*22",
3242 Core::One32 => b"i",
3243 Core::One64 => b"l",
3244 Core::One8 => b"***22*22**22*22",
3245 Core::Or1 => b"2",
3246 Core::Or16 => b"****22*22**22*22***22*22**22*22",
3247 Core::Or32 => b"i",
3248 Core::Or64 => b"l",
3249 Core::Or8 => b"***22*22**22*22",
3250 Core::ParseLock => b"+ii",
3251 Core::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
3252 Core::PointVerify1 => b"1",
3253 Core::RightExtend16_32 => b"i",
3254 Core::RightExtend16_64 => b"l",
3255 Core::RightExtend32_64 => b"l",
3256 Core::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
3257 Core::RightExtend8_32 => b"i",
3258 Core::RightExtend8_64 => b"l",
3259 Core::RightPadHigh16_32 => b"i",
3260 Core::RightPadHigh16_64 => b"l",
3261 Core::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
3262 Core::RightPadHigh1_32 => b"i",
3263 Core::RightPadHigh1_64 => b"l",
3264 Core::RightPadHigh1_8 => b"***22*22**22*22",
3265 Core::RightPadHigh32_64 => b"l",
3266 Core::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
3267 Core::RightPadHigh8_32 => b"i",
3268 Core::RightPadHigh8_64 => b"l",
3269 Core::RightPadLow16_32 => b"i",
3270 Core::RightPadLow16_64 => b"l",
3271 Core::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
3272 Core::RightPadLow1_32 => b"i",
3273 Core::RightPadLow1_64 => b"l",
3274 Core::RightPadLow1_8 => b"***22*22**22*22",
3275 Core::RightPadLow32_64 => b"l",
3276 Core::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
3277 Core::RightPadLow8_32 => b"i",
3278 Core::RightPadLow8_64 => b"l",
3279 Core::RightRotate16 => b"****22*22**22*22***22*22**22*22",
3280 Core::RightRotate32 => b"i",
3281 Core::RightRotate64 => b"l",
3282 Core::RightRotate8 => b"***22*22**22*22",
3283 Core::RightShift16 => b"****22*22**22*22***22*22**22*22",
3284 Core::RightShift32 => b"i",
3285 Core::RightShift64 => b"l",
3286 Core::RightShift8 => b"***22*22**22*22",
3287 Core::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
3288 Core::RightShiftWith32 => b"i",
3289 Core::RightShiftWith64 => b"l",
3290 Core::RightShiftWith8 => b"***22*22**22*22",
3291 Core::Rightmost16_1 => b"2",
3292 Core::Rightmost16_2 => b"*22",
3293 Core::Rightmost16_4 => b"**22*22",
3294 Core::Rightmost16_8 => b"***22*22**22*22",
3295 Core::Rightmost32_1 => b"2",
3296 Core::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
3297 Core::Rightmost32_2 => b"*22",
3298 Core::Rightmost32_4 => b"**22*22",
3299 Core::Rightmost32_8 => b"***22*22**22*22",
3300 Core::Rightmost64_1 => b"2",
3301 Core::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
3302 Core::Rightmost64_2 => b"*22",
3303 Core::Rightmost64_32 => b"i",
3304 Core::Rightmost64_4 => b"**22*22",
3305 Core::Rightmost64_8 => b"***22*22**22*22",
3306 Core::Rightmost8_1 => b"2",
3307 Core::Rightmost8_2 => b"*22",
3308 Core::Rightmost8_4 => b"**22*22",
3309 Core::ScalarAdd => b"h",
3310 Core::ScalarInvert => b"h",
3311 Core::ScalarIsZero => b"2",
3312 Core::ScalarMultiply => b"h",
3313 Core::ScalarMultiplyLambda => b"h",
3314 Core::ScalarNegate => b"h",
3315 Core::ScalarNormalize => b"h",
3316 Core::ScalarSquare => b"h",
3317 Core::Scale => b"**hhh",
3318 Core::Sha256Block => b"h",
3319 Core::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3320 Core::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3321 Core::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3322 Core::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3323 Core::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3324 Core::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3325 Core::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3326 Core::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3327 Core::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3328 Core::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3329 Core::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3330 Core::Sha256Ctx8Finalize => b"h",
3331 Core::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3332 Core::Sha256Iv => b"h",
3333 Core::Some1 => b"2",
3334 Core::Some16 => b"2",
3335 Core::Some32 => b"2",
3336 Core::Some64 => b"2",
3337 Core::Some8 => b"2",
3338 Core::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
3339 Core::Subtract32 => b"*2i",
3340 Core::Subtract64 => b"*2l",
3341 Core::Subtract8 => b"*2***22*22**22*22",
3342 Core::Swu => b"*hh",
3343 Core::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3344 Core::Verify => b"1",
3345 Core::Xor1 => b"2",
3346 Core::Xor16 => b"****22*22**22*22***22*22**22*22",
3347 Core::Xor32 => b"i",
3348 Core::Xor64 => b"l",
3349 Core::Xor8 => b"***22*22**22*22",
3350 Core::XorXor1 => b"2",
3351 Core::XorXor16 => b"****22*22**22*22***22*22**22*22",
3352 Core::XorXor32 => b"i",
3353 Core::XorXor64 => b"l",
3354 Core::XorXor8 => b"***22*22**22*22",
3355 };
3356
3357 TypeName(name)
3358 }
3359
3360 fn encode(&self, w: &mut BitWriter<&mut dyn Write>) -> std::io::Result<usize> {
3361 let (n, len) = match self {
3362 Core::Verify => (0, 2),
3363 Core::Low1 => (8, 5),
3364 Core::Low8 => (37, 7),
3365 Core::Low16 => (304, 10),
3366 Core::Low32 => (305, 10),
3367 Core::Low64 => (306, 10),
3368 Core::High1 => (10, 5),
3369 Core::High8 => (45, 7),
3370 Core::High16 => (368, 10),
3371 Core::High32 => (369, 10),
3372 Core::High64 => (370, 10),
3373 Core::Complement1 => (96, 8),
3374 Core::Complement8 => (389, 10),
3375 Core::Complement16 => (3120, 13),
3376 Core::Complement32 => (3121, 13),
3377 Core::Complement64 => (3122, 13),
3378 Core::And1 => (98, 8),
3379 Core::And8 => (397, 10),
3380 Core::And16 => (3184, 13),
3381 Core::And32 => (3185, 13),
3382 Core::And64 => (3186, 13),
3383 Core::Or1 => (100, 8),
3384 Core::Or8 => (405, 10),
3385 Core::Or16 => (3248, 13),
3386 Core::Or32 => (3249, 13),
3387 Core::Or64 => (3250, 13),
3388 Core::Xor1 => (102, 8),
3389 Core::Xor8 => (413, 10),
3390 Core::Xor16 => (3312, 13),
3391 Core::Xor32 => (3313, 13),
3392 Core::Xor64 => (3314, 13),
3393 Core::Maj1 => (208, 9),
3394 Core::Maj8 => (837, 11),
3395 Core::Maj16 => (6704, 14),
3396 Core::Maj32 => (6705, 14),
3397 Core::Maj64 => (6706, 14),
3398 Core::XorXor1 => (210, 9),
3399 Core::XorXor8 => (845, 11),
3400 Core::XorXor16 => (6768, 14),
3401 Core::XorXor32 => (6769, 14),
3402 Core::XorXor64 => (6770, 14),
3403 Core::Ch1 => (212, 9),
3404 Core::Ch8 => (853, 11),
3405 Core::Ch16 => (6832, 14),
3406 Core::Ch32 => (6833, 14),
3407 Core::Ch64 => (6834, 14),
3408 Core::Some1 => (214, 9),
3409 Core::Some8 => (861, 11),
3410 Core::Some16 => (6896, 14),
3411 Core::Some32 => (6897, 14),
3412 Core::Some64 => (6898, 14),
3413 Core::All8 => (869, 11),
3414 Core::All16 => (6960, 14),
3415 Core::All32 => (6961, 14),
3416 Core::All64 => (6962, 14),
3417 Core::Eq1 => (218, 9),
3418 Core::Eq8 => (877, 11),
3419 Core::Eq16 => (7024, 14),
3420 Core::Eq32 => (7025, 14),
3421 Core::Eq64 => (7026, 14),
3422 Core::Eq256 => (14056, 15),
3423 Core::FullLeftShift8_1 => (1765, 12),
3424 Core::FullLeftShift16_1 => (14128, 15),
3425 Core::FullLeftShift32_1 => (14129, 15),
3426 Core::FullLeftShift64_1 => (14130, 15),
3427 Core::FullLeftShift8_2 => (7076, 14),
3428 Core::FullLeftShift16_2 => (7077, 14),
3429 Core::FullLeftShift32_2 => (56624, 17),
3430 Core::FullLeftShift64_2 => (56625, 17),
3431 Core::FullLeftShift8_4 => (1770, 12),
3432 Core::FullLeftShift16_4 => (7084, 14),
3433 Core::FullLeftShift32_4 => (7085, 14),
3434 Core::FullLeftShift64_4 => (56688, 17),
3435 Core::FullLeftShift16_8 => (14176, 15),
3436 Core::FullLeftShift32_8 => (56708, 17),
3437 Core::FullLeftShift64_8 => (56709, 17),
3438 Core::FullLeftShift32_16 => (14178, 15),
3439 Core::FullLeftShift64_16 => (56716, 17),
3440 Core::FullLeftShift64_32 => (14180, 15),
3441 Core::FullRightShift8_1 => (1781, 12),
3442 Core::FullRightShift16_1 => (14256, 15),
3443 Core::FullRightShift32_1 => (14257, 15),
3444 Core::FullRightShift64_1 => (14258, 15),
3445 Core::FullRightShift8_2 => (7140, 14),
3446 Core::FullRightShift16_2 => (7141, 14),
3447 Core::FullRightShift32_2 => (57136, 17),
3448 Core::FullRightShift64_2 => (57137, 17),
3449 Core::FullRightShift8_4 => (1786, 12),
3450 Core::FullRightShift16_4 => (7148, 14),
3451 Core::FullRightShift32_4 => (7149, 14),
3452 Core::FullRightShift64_4 => (57200, 17),
3453 Core::FullRightShift16_8 => (14304, 15),
3454 Core::FullRightShift32_8 => (57220, 17),
3455 Core::FullRightShift64_8 => (57221, 17),
3456 Core::FullRightShift32_16 => (14306, 15),
3457 Core::FullRightShift64_16 => (57228, 17),
3458 Core::FullRightShift64_32 => (14308, 15),
3459 Core::Leftmost8_1 => (28677, 16),
3460 Core::Leftmost16_1 => (229424, 19),
3461 Core::Leftmost32_1 => (229425, 19),
3462 Core::Leftmost64_1 => (229426, 19),
3463 Core::Leftmost8_2 => (114724, 18),
3464 Core::Leftmost16_2 => (114725, 18),
3465 Core::Leftmost32_2 => (917808, 21),
3466 Core::Leftmost64_2 => (917809, 21),
3467 Core::Leftmost8_4 => (28682, 16),
3468 Core::Leftmost16_4 => (114732, 18),
3469 Core::Leftmost32_4 => (114733, 18),
3470 Core::Leftmost64_4 => (917872, 21),
3471 Core::Leftmost16_8 => (229472, 19),
3472 Core::Leftmost32_8 => (917892, 21),
3473 Core::Leftmost64_8 => (917893, 21),
3474 Core::Leftmost32_16 => (229474, 19),
3475 Core::Leftmost64_16 => (917900, 21),
3476 Core::Leftmost64_32 => (229476, 19),
3477 Core::Rightmost8_1 => (28693, 16),
3478 Core::Rightmost16_1 => (229552, 19),
3479 Core::Rightmost32_1 => (229553, 19),
3480 Core::Rightmost64_1 => (229554, 19),
3481 Core::Rightmost8_2 => (114788, 18),
3482 Core::Rightmost16_2 => (114789, 18),
3483 Core::Rightmost32_2 => (918320, 21),
3484 Core::Rightmost64_2 => (918321, 21),
3485 Core::Rightmost8_4 => (28698, 16),
3486 Core::Rightmost16_4 => (114796, 18),
3487 Core::Rightmost32_4 => (114797, 18),
3488 Core::Rightmost64_4 => (918384, 21),
3489 Core::Rightmost16_8 => (229600, 19),
3490 Core::Rightmost32_8 => (918404, 21),
3491 Core::Rightmost64_8 => (918405, 21),
3492 Core::Rightmost32_16 => (229602, 19),
3493 Core::Rightmost64_16 => (918412, 21),
3494 Core::Rightmost64_32 => (229604, 19),
3495 Core::LeftPadLow1_8 => (28709, 16),
3496 Core::LeftPadLow1_16 => (229680, 19),
3497 Core::LeftPadLow1_32 => (229681, 19),
3498 Core::LeftPadLow1_64 => (229682, 19),
3499 Core::LeftPadLow8_16 => (229728, 19),
3500 Core::LeftPadLow8_32 => (918916, 21),
3501 Core::LeftPadLow8_64 => (918917, 21),
3502 Core::LeftPadLow16_32 => (229730, 19),
3503 Core::LeftPadLow16_64 => (918924, 21),
3504 Core::LeftPadLow32_64 => (229732, 19),
3505 Core::LeftPadHigh1_8 => (28725, 16),
3506 Core::LeftPadHigh1_16 => (229808, 19),
3507 Core::LeftPadHigh1_32 => (229809, 19),
3508 Core::LeftPadHigh1_64 => (229810, 19),
3509 Core::LeftPadHigh8_16 => (229856, 19),
3510 Core::LeftPadHigh8_32 => (919428, 21),
3511 Core::LeftPadHigh8_64 => (919429, 21),
3512 Core::LeftPadHigh16_32 => (229858, 19),
3513 Core::LeftPadHigh16_64 => (919436, 21),
3514 Core::LeftPadHigh32_64 => (229860, 19),
3515 Core::LeftExtend1_8 => (28741, 16),
3516 Core::LeftExtend1_16 => (229936, 19),
3517 Core::LeftExtend1_32 => (229937, 19),
3518 Core::LeftExtend1_64 => (229938, 19),
3519 Core::LeftExtend8_16 => (229984, 19),
3520 Core::LeftExtend8_32 => (919940, 21),
3521 Core::LeftExtend8_64 => (919941, 21),
3522 Core::LeftExtend16_32 => (229986, 19),
3523 Core::LeftExtend16_64 => (919948, 21),
3524 Core::LeftExtend32_64 => (229988, 19),
3525 Core::RightPadLow1_8 => (28757, 16),
3526 Core::RightPadLow1_16 => (230064, 19),
3527 Core::RightPadLow1_32 => (230065, 19),
3528 Core::RightPadLow1_64 => (230066, 19),
3529 Core::RightPadLow8_16 => (230112, 19),
3530 Core::RightPadLow8_32 => (920452, 21),
3531 Core::RightPadLow8_64 => (920453, 21),
3532 Core::RightPadLow16_32 => (230114, 19),
3533 Core::RightPadLow16_64 => (920460, 21),
3534 Core::RightPadLow32_64 => (230116, 19),
3535 Core::RightPadHigh1_8 => (28773, 16),
3536 Core::RightPadHigh1_16 => (230192, 19),
3537 Core::RightPadHigh1_32 => (230193, 19),
3538 Core::RightPadHigh1_64 => (230194, 19),
3539 Core::RightPadHigh8_16 => (230240, 19),
3540 Core::RightPadHigh8_32 => (920964, 21),
3541 Core::RightPadHigh8_64 => (920965, 21),
3542 Core::RightPadHigh16_32 => (230242, 19),
3543 Core::RightPadHigh16_64 => (920972, 21),
3544 Core::RightPadHigh32_64 => (230244, 19),
3545 Core::RightExtend8_16 => (230368, 19),
3546 Core::RightExtend8_32 => (921476, 21),
3547 Core::RightExtend8_64 => (921477, 21),
3548 Core::RightExtend16_32 => (230370, 19),
3549 Core::RightExtend16_64 => (921484, 21),
3550 Core::RightExtend32_64 => (230372, 19),
3551 Core::LeftShiftWith8 => (14405, 15),
3552 Core::LeftShiftWith16 => (115248, 18),
3553 Core::LeftShiftWith32 => (115249, 18),
3554 Core::LeftShiftWith64 => (115250, 18),
3555 Core::RightShiftWith8 => (14413, 15),
3556 Core::RightShiftWith16 => (115312, 18),
3557 Core::RightShiftWith32 => (115313, 18),
3558 Core::RightShiftWith64 => (115314, 18),
3559 Core::LeftShift8 => (14421, 15),
3560 Core::LeftShift16 => (115376, 18),
3561 Core::LeftShift32 => (115377, 18),
3562 Core::LeftShift64 => (115378, 18),
3563 Core::RightShift8 => (14429, 15),
3564 Core::RightShift16 => (115440, 18),
3565 Core::RightShift32 => (115441, 18),
3566 Core::RightShift64 => (115442, 18),
3567 Core::LeftRotate8 => (14437, 15),
3568 Core::LeftRotate16 => (115504, 18),
3569 Core::LeftRotate32 => (115505, 18),
3570 Core::LeftRotate64 => (115506, 18),
3571 Core::RightRotate8 => (14445, 15),
3572 Core::RightRotate16 => (115568, 18),
3573 Core::RightRotate32 => (115569, 18),
3574 Core::RightRotate64 => (115570, 18),
3575 Core::One8 => (69, 7),
3576 Core::One16 => (560, 10),
3577 Core::One32 => (561, 10),
3578 Core::One64 => (562, 10),
3579 Core::FullAdd8 => (293, 9),
3580 Core::FullAdd16 => (2352, 12),
3581 Core::FullAdd32 => (2353, 12),
3582 Core::FullAdd64 => (2354, 12),
3583 Core::Add8 => (301, 9),
3584 Core::Add16 => (2416, 12),
3585 Core::Add32 => (2417, 12),
3586 Core::Add64 => (2418, 12),
3587 Core::FullIncrement8 => (2437, 12),
3588 Core::FullIncrement16 => (19504, 15),
3589 Core::FullIncrement32 => (19505, 15),
3590 Core::FullIncrement64 => (19506, 15),
3591 Core::Increment8 => (2445, 12),
3592 Core::Increment16 => (19568, 15),
3593 Core::Increment32 => (19569, 15),
3594 Core::Increment64 => (19570, 15),
3595 Core::FullSubtract8 => (2461, 12),
3596 Core::FullSubtract16 => (19696, 15),
3597 Core::FullSubtract32 => (19697, 15),
3598 Core::FullSubtract64 => (19698, 15),
3599 Core::Subtract8 => (4933, 13),
3600 Core::Subtract16 => (39472, 16),
3601 Core::Subtract32 => (39473, 16),
3602 Core::Subtract64 => (39474, 16),
3603 Core::Negate8 => (4941, 13),
3604 Core::Negate16 => (39536, 16),
3605 Core::Negate32 => (39537, 16),
3606 Core::Negate64 => (39538, 16),
3607 Core::FullDecrement8 => (4949, 13),
3608 Core::FullDecrement16 => (39600, 16),
3609 Core::FullDecrement32 => (39601, 16),
3610 Core::FullDecrement64 => (39602, 16),
3611 Core::Decrement8 => (4957, 13),
3612 Core::Decrement16 => (39664, 16),
3613 Core::Decrement32 => (39665, 16),
3614 Core::Decrement64 => (39666, 16),
3615 Core::FullMultiply8 => (4965, 13),
3616 Core::FullMultiply16 => (39728, 16),
3617 Core::FullMultiply32 => (39729, 16),
3618 Core::FullMultiply64 => (39730, 16),
3619 Core::Multiply8 => (4973, 13),
3620 Core::Multiply16 => (39792, 16),
3621 Core::Multiply32 => (39793, 16),
3622 Core::Multiply64 => (39794, 16),
3623 Core::IsZero8 => (4981, 13),
3624 Core::IsZero16 => (39856, 16),
3625 Core::IsZero32 => (39857, 16),
3626 Core::IsZero64 => (39858, 16),
3627 Core::IsOne8 => (4989, 13),
3628 Core::IsOne16 => (39920, 16),
3629 Core::IsOne32 => (39921, 16),
3630 Core::IsOne64 => (39922, 16),
3631 Core::Le8 => (79877, 17),
3632 Core::Le16 => (639024, 20),
3633 Core::Le32 => (639025, 20),
3634 Core::Le64 => (639026, 20),
3635 Core::Lt8 => (79885, 17),
3636 Core::Lt16 => (639088, 20),
3637 Core::Lt32 => (639089, 20),
3638 Core::Lt64 => (639090, 20),
3639 Core::Min8 => (79893, 17),
3640 Core::Min16 => (639152, 20),
3641 Core::Min32 => (639153, 20),
3642 Core::Min64 => (639154, 20),
3643 Core::Max8 => (79901, 17),
3644 Core::Max16 => (639216, 20),
3645 Core::Max32 => (639217, 20),
3646 Core::Max64 => (639218, 20),
3647 Core::Median8 => (79909, 17),
3648 Core::Median16 => (639280, 20),
3649 Core::Median32 => (639281, 20),
3650 Core::Median64 => (639282, 20),
3651 Core::DivMod128_64 => (639346, 20),
3652 Core::DivMod8 => (79925, 17),
3653 Core::DivMod16 => (639408, 20),
3654 Core::DivMod32 => (639409, 20),
3655 Core::DivMod64 => (639410, 20),
3656 Core::Divide8 => (79933, 17),
3657 Core::Divide16 => (639472, 20),
3658 Core::Divide32 => (639473, 20),
3659 Core::Divide64 => (639474, 20),
3660 Core::Modulo8 => (79941, 17),
3661 Core::Modulo16 => (639536, 20),
3662 Core::Modulo32 => (639537, 20),
3663 Core::Modulo64 => (639538, 20),
3664 Core::Divides8 => (79949, 17),
3665 Core::Divides16 => (639600, 20),
3666 Core::Divides32 => (639601, 20),
3667 Core::Divides64 => (639602, 20),
3668 Core::Sha256Block => (20, 5),
3669 Core::Sha256Iv => (84, 7),
3670 Core::Sha256Ctx8Add1 => (170, 8),
3671 Core::Sha256Ctx8Add2 => (684, 10),
3672 Core::Sha256Ctx8Add4 => (685, 10),
3673 Core::Sha256Ctx8Add8 => (5488, 13),
3674 Core::Sha256Ctx8Add16 => (5489, 13),
3675 Core::Sha256Ctx8Add32 => (5490, 13),
3676 Core::Sha256Ctx8Add64 => (5491, 13),
3677 Core::Sha256Ctx8Add128 => (10984, 14),
3678 Core::Sha256Ctx8Add256 => (10985, 14),
3679 Core::Sha256Ctx8Add512 => (10986, 14),
3680 Core::Sha256Ctx8AddBuffer511 => (688, 10),
3681 Core::Sha256Ctx8Finalize => (689, 10),
3682 Core::Sha256Ctx8Init => (690, 10),
3683 Core::PointVerify1 => (192, 8),
3684 Core::Decompress => (388, 9),
3685 Core::LinearVerify1 => (778, 10),
3686 Core::LinearCombination1 => (6240, 13),
3687 Core::Scale => (3121, 12),
3688 Core::Generate => (3122, 12),
3689 Core::GejInfinity => (3123, 12),
3690 Core::GejNormalize => (6248, 13),
3691 Core::GejNegate => (6249, 13),
3692 Core::GeNegate => (6250, 13),
3693 Core::GejDouble => (6251, 13),
3694 Core::GejAdd => (6252, 13),
3695 Core::GejGeAddEx => (6253, 13),
3696 Core::GejGeAdd => (6254, 13),
3697 Core::GejRescale => (6255, 13),
3698 Core::GejIsInfinity => (100096, 17),
3699 Core::GejEquiv => (100097, 17),
3700 Core::GejGeEquiv => (100098, 17),
3701 Core::GejXEquiv => (100099, 17),
3702 Core::GejYIsOdd => (100100, 17),
3703 Core::GejIsOnCurve => (100101, 17),
3704 Core::GeIsOnCurve => (100102, 17),
3705 Core::ScalarNormalize => (100103, 17),
3706 Core::ScalarNegate => (100104, 17),
3707 Core::ScalarAdd => (100105, 17),
3708 Core::ScalarSquare => (100106, 17),
3709 Core::ScalarMultiply => (100107, 17),
3710 Core::ScalarMultiplyLambda => (100108, 17),
3711 Core::ScalarInvert => (100109, 17),
3712 Core::ScalarIsZero => (100110, 17),
3713 Core::FeNormalize => (200227, 18),
3714 Core::FeNegate => (200228, 18),
3715 Core::FeAdd => (200229, 18),
3716 Core::FeSquare => (200230, 18),
3717 Core::FeMultiply => (200231, 18),
3718 Core::FeMultiplyBeta => (200232, 18),
3719 Core::FeInvert => (200233, 18),
3720 Core::FeSquareRoot => (200234, 18),
3721 Core::FeIsZero => (200235, 18),
3722 Core::FeIsOdd => (200236, 18),
3723 Core::HashToCurve => (200238, 18),
3724 Core::Swu => (200239, 18),
3725 Core::CheckSigVerify => (98, 7),
3726 Core::Bip0340Verify => (396, 9),
3727 Core::ParseLock => (102, 7),
3728 Core::ParseSequence => (412, 9),
3729 Core::TapdataInit => (413, 9),
3730 };
3731
3732 w.write_bits_be(n, len)
3733 }
3734
3735 fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> where Self: Sized {
3736 decode_bits!(bits, {
3737 0 => {
3738 0 => {Core::Verify},
3739 1 => {
3740 0 => {
3741 0 => {
3742 0 => {Core::Low1},
3743 1 => {
3744 0 => {
3745 0 => {},
3746 1 => {Core::Low8}
3747 },
3748 1 => {
3749 0 => {
3750 0 => {
3751 0 => {
3752 0 => {Core::Low16},
3753 1 => {Core::Low32}
3754 },
3755 1 => {
3756 0 => {Core::Low64},
3757 1 => {}
3758 }
3759 },
3760 1 => {}
3761 },
3762 1 => {}
3763 }
3764 }
3765 },
3766 1 => {
3767 0 => {Core::High1},
3768 1 => {
3769 0 => {
3770 0 => {},
3771 1 => {Core::High8}
3772 },
3773 1 => {
3774 0 => {
3775 0 => {
3776 0 => {
3777 0 => {Core::High16},
3778 1 => {Core::High32}
3779 },
3780 1 => {
3781 0 => {Core::High64},
3782 1 => {}
3783 }
3784 },
3785 1 => {}
3786 },
3787 1 => {}
3788 }
3789 }
3790 }
3791 },
3792 1 => {
3793 0 => {
3794 0 => {
3795 0 => {
3796 0 => {
3797 0 => {Core::Complement1},
3798 1 => {
3799 0 => {
3800 0 => {},
3801 1 => {Core::Complement8}
3802 },
3803 1 => {
3804 0 => {
3805 0 => {
3806 0 => {
3807 0 => {Core::Complement16},
3808 1 => {Core::Complement32}
3809 },
3810 1 => {
3811 0 => {Core::Complement64},
3812 1 => {}
3813 }
3814 },
3815 1 => {}
3816 },
3817 1 => {}
3818 }
3819 }
3820 },
3821 1 => {
3822 0 => {Core::And1},
3823 1 => {
3824 0 => {
3825 0 => {},
3826 1 => {Core::And8}
3827 },
3828 1 => {
3829 0 => {
3830 0 => {
3831 0 => {
3832 0 => {Core::And16},
3833 1 => {Core::And32}
3834 },
3835 1 => {
3836 0 => {Core::And64},
3837 1 => {}
3838 }
3839 },
3840 1 => {}
3841 },
3842 1 => {}
3843 }
3844 }
3845 }
3846 },
3847 1 => {
3848 0 => {
3849 0 => {Core::Or1},
3850 1 => {
3851 0 => {
3852 0 => {},
3853 1 => {Core::Or8}
3854 },
3855 1 => {
3856 0 => {
3857 0 => {
3858 0 => {
3859 0 => {Core::Or16},
3860 1 => {Core::Or32}
3861 },
3862 1 => {
3863 0 => {Core::Or64},
3864 1 => {}
3865 }
3866 },
3867 1 => {}
3868 },
3869 1 => {}
3870 }
3871 }
3872 },
3873 1 => {
3874 0 => {Core::Xor1},
3875 1 => {
3876 0 => {
3877 0 => {},
3878 1 => {Core::Xor8}
3879 },
3880 1 => {
3881 0 => {
3882 0 => {
3883 0 => {
3884 0 => {Core::Xor16},
3885 1 => {Core::Xor32}
3886 },
3887 1 => {
3888 0 => {Core::Xor64},
3889 1 => {}
3890 }
3891 },
3892 1 => {}
3893 },
3894 1 => {}
3895 }
3896 }
3897 }
3898 }
3899 },
3900 1 => {
3901 0 => {
3902 0 => {
3903 0 => {
3904 0 => {Core::Maj1},
3905 1 => {
3906 0 => {
3907 0 => {},
3908 1 => {Core::Maj8}
3909 },
3910 1 => {
3911 0 => {
3912 0 => {
3913 0 => {
3914 0 => {Core::Maj16},
3915 1 => {Core::Maj32}
3916 },
3917 1 => {
3918 0 => {Core::Maj64},
3919 1 => {}
3920 }
3921 },
3922 1 => {}
3923 },
3924 1 => {}
3925 }
3926 }
3927 },
3928 1 => {
3929 0 => {Core::XorXor1},
3930 1 => {
3931 0 => {
3932 0 => {},
3933 1 => {Core::XorXor8}
3934 },
3935 1 => {
3936 0 => {
3937 0 => {
3938 0 => {
3939 0 => {Core::XorXor16},
3940 1 => {Core::XorXor32}
3941 },
3942 1 => {
3943 0 => {Core::XorXor64},
3944 1 => {}
3945 }
3946 },
3947 1 => {}
3948 },
3949 1 => {}
3950 }
3951 }
3952 }
3953 },
3954 1 => {
3955 0 => {
3956 0 => {Core::Ch1},
3957 1 => {
3958 0 => {
3959 0 => {},
3960 1 => {Core::Ch8}
3961 },
3962 1 => {
3963 0 => {
3964 0 => {
3965 0 => {
3966 0 => {Core::Ch16},
3967 1 => {Core::Ch32}
3968 },
3969 1 => {
3970 0 => {Core::Ch64},
3971 1 => {}
3972 }
3973 },
3974 1 => {}
3975 },
3976 1 => {}
3977 }
3978 }
3979 },
3980 1 => {
3981 0 => {Core::Some1},
3982 1 => {
3983 0 => {
3984 0 => {},
3985 1 => {Core::Some8}
3986 },
3987 1 => {
3988 0 => {
3989 0 => {
3990 0 => {
3991 0 => {Core::Some16},
3992 1 => {Core::Some32}
3993 },
3994 1 => {
3995 0 => {Core::Some64},
3996 1 => {}
3997 }
3998 },
3999 1 => {}
4000 },
4001 1 => {}
4002 }
4003 }
4004 }
4005 }
4006 },
4007 1 => {
4008 0 => {
4009 0 => {
4010 0 => {},
4011 1 => {
4012 0 => {
4013 0 => {},
4014 1 => {Core::All8}
4015 },
4016 1 => {
4017 0 => {
4018 0 => {
4019 0 => {
4020 0 => {Core::All16},
4021 1 => {Core::All32}
4022 },
4023 1 => {
4024 0 => {Core::All64},
4025 1 => {}
4026 }
4027 },
4028 1 => {}
4029 },
4030 1 => {}
4031 }
4032 }
4033 },
4034 1 => {
4035 0 => {Core::Eq1},
4036 1 => {
4037 0 => {
4038 0 => {},
4039 1 => {Core::Eq8}
4040 },
4041 1 => {
4042 0 => {
4043 0 => {
4044 0 => {
4045 0 => {Core::Eq16},
4046 1 => {Core::Eq32}
4047 },
4048 1 => {
4049 0 => {Core::Eq64},
4050 1 => {}
4051 }
4052 },
4053 1 => {
4054 0 => {
4055 0 => {
4056 0 => {Core::Eq256},
4057 1 => {}
4058 },
4059 1 => {}
4060 },
4061 1 => {}
4062 }
4063 },
4064 1 => {}
4065 }
4066 }
4067 }
4068 },
4069 1 => {
4070 0 => {
4071 0 => {
4072 0 => {},
4073 1 => {
4074 0 => {
4075 0 => {},
4076 1 => {Core::FullLeftShift8_1}
4077 },
4078 1 => {
4079 0 => {
4080 0 => {
4081 0 => {
4082 0 => {Core::FullLeftShift16_1},
4083 1 => {Core::FullLeftShift32_1}
4084 },
4085 1 => {
4086 0 => {Core::FullLeftShift64_1},
4087 1 => {}
4088 }
4089 },
4090 1 => {}
4091 },
4092 1 => {}
4093 }
4094 }
4095 },
4096 1 => {
4097 0 => {
4098 0 => {
4099 0 => {},
4100 1 => {
4101 0 => {
4102 0 => {Core::FullLeftShift8_2},
4103 1 => {Core::FullLeftShift16_2}
4104 },
4105 1 => {
4106 0 => {
4107 0 => {
4108 0 => {
4109 0 => {Core::FullLeftShift32_2},
4110 1 => {Core::FullLeftShift64_2}
4111 },
4112 1 => {}
4113 },
4114 1 => {}
4115 },
4116 1 => {}
4117 }
4118 }
4119 },
4120 1 => {
4121 0 => {Core::FullLeftShift8_4},
4122 1 => {
4123 0 => {
4124 0 => {Core::FullLeftShift16_4},
4125 1 => {Core::FullLeftShift32_4}
4126 },
4127 1 => {
4128 0 => {
4129 0 => {
4130 0 => {
4131 0 => {Core::FullLeftShift64_4},
4132 1 => {}
4133 },
4134 1 => {}
4135 },
4136 1 => {}
4137 },
4138 1 => {}
4139 }
4140 }
4141 }
4142 },
4143 1 => {
4144 0 => {
4145 0 => {
4146 0 => {
4147 0 => {
4148 0 => {Core::FullLeftShift16_8},
4149 1 => {
4150 0 => {
4151 0 => {Core::FullLeftShift32_8},
4152 1 => {Core::FullLeftShift64_8}
4153 },
4154 1 => {}
4155 }
4156 },
4157 1 => {
4158 0 => {Core::FullLeftShift32_16},
4159 1 => {
4160 0 => {
4161 0 => {Core::FullLeftShift64_16},
4162 1 => {}
4163 },
4164 1 => {}
4165 }
4166 }
4167 },
4168 1 => {
4169 0 => {
4170 0 => {Core::FullLeftShift64_32},
4171 1 => {}
4172 },
4173 1 => {}
4174 }
4175 },
4176 1 => {}
4177 },
4178 1 => {}
4179 }
4180 }
4181 },
4182 1 => {
4183 0 => {
4184 0 => {},
4185 1 => {
4186 0 => {
4187 0 => {},
4188 1 => {Core::FullRightShift8_1}
4189 },
4190 1 => {
4191 0 => {
4192 0 => {
4193 0 => {
4194 0 => {Core::FullRightShift16_1},
4195 1 => {Core::FullRightShift32_1}
4196 },
4197 1 => {
4198 0 => {Core::FullRightShift64_1},
4199 1 => {}
4200 }
4201 },
4202 1 => {}
4203 },
4204 1 => {}
4205 }
4206 }
4207 },
4208 1 => {
4209 0 => {
4210 0 => {
4211 0 => {},
4212 1 => {
4213 0 => {
4214 0 => {Core::FullRightShift8_2},
4215 1 => {Core::FullRightShift16_2}
4216 },
4217 1 => {
4218 0 => {
4219 0 => {
4220 0 => {
4221 0 => {Core::FullRightShift32_2},
4222 1 => {Core::FullRightShift64_2}
4223 },
4224 1 => {}
4225 },
4226 1 => {}
4227 },
4228 1 => {}
4229 }
4230 }
4231 },
4232 1 => {
4233 0 => {Core::FullRightShift8_4},
4234 1 => {
4235 0 => {
4236 0 => {Core::FullRightShift16_4},
4237 1 => {Core::FullRightShift32_4}
4238 },
4239 1 => {
4240 0 => {
4241 0 => {
4242 0 => {
4243 0 => {Core::FullRightShift64_4},
4244 1 => {}
4245 },
4246 1 => {}
4247 },
4248 1 => {}
4249 },
4250 1 => {}
4251 }
4252 }
4253 }
4254 },
4255 1 => {
4256 0 => {
4257 0 => {
4258 0 => {
4259 0 => {
4260 0 => {Core::FullRightShift16_8},
4261 1 => {
4262 0 => {
4263 0 => {Core::FullRightShift32_8},
4264 1 => {Core::FullRightShift64_8}
4265 },
4266 1 => {}
4267 }
4268 },
4269 1 => {
4270 0 => {Core::FullRightShift32_16},
4271 1 => {
4272 0 => {
4273 0 => {Core::FullRightShift64_16},
4274 1 => {}
4275 },
4276 1 => {}
4277 }
4278 }
4279 },
4280 1 => {
4281 0 => {
4282 0 => {Core::FullRightShift64_32},
4283 1 => {}
4284 },
4285 1 => {}
4286 }
4287 },
4288 1 => {}
4289 },
4290 1 => {}
4291 }
4292 }
4293 }
4294 }
4295 }
4296 }
4297 },
4298 1 => {
4299 0 => {
4300 0 => {
4301 0 => {
4302 0 => {
4303 0 => {
4304 0 => {
4305 0 => {
4306 0 => {
4307 0 => {
4308 0 => {},
4309 1 => {
4310 0 => {
4311 0 => {},
4312 1 => {Core::Leftmost8_1}
4313 },
4314 1 => {
4315 0 => {
4316 0 => {
4317 0 => {
4318 0 => {Core::Leftmost16_1},
4319 1 => {Core::Leftmost32_1}
4320 },
4321 1 => {
4322 0 => {Core::Leftmost64_1},
4323 1 => {}
4324 }
4325 },
4326 1 => {}
4327 },
4328 1 => {}
4329 }
4330 }
4331 },
4332 1 => {
4333 0 => {
4334 0 => {
4335 0 => {},
4336 1 => {
4337 0 => {
4338 0 => {Core::Leftmost8_2},
4339 1 => {Core::Leftmost16_2}
4340 },
4341 1 => {
4342 0 => {
4343 0 => {
4344 0 => {
4345 0 => {Core::Leftmost32_2},
4346 1 => {Core::Leftmost64_2}
4347 },
4348 1 => {}
4349 },
4350 1 => {}
4351 },
4352 1 => {}
4353 }
4354 }
4355 },
4356 1 => {
4357 0 => {Core::Leftmost8_4},
4358 1 => {
4359 0 => {
4360 0 => {Core::Leftmost16_4},
4361 1 => {Core::Leftmost32_4}
4362 },
4363 1 => {
4364 0 => {
4365 0 => {
4366 0 => {
4367 0 => {Core::Leftmost64_4},
4368 1 => {}
4369 },
4370 1 => {}
4371 },
4372 1 => {}
4373 },
4374 1 => {}
4375 }
4376 }
4377 }
4378 },
4379 1 => {
4380 0 => {
4381 0 => {
4382 0 => {
4383 0 => {
4384 0 => {Core::Leftmost16_8},
4385 1 => {
4386 0 => {
4387 0 => {Core::Leftmost32_8},
4388 1 => {Core::Leftmost64_8}
4389 },
4390 1 => {}
4391 }
4392 },
4393 1 => {
4394 0 => {Core::Leftmost32_16},
4395 1 => {
4396 0 => {
4397 0 => {Core::Leftmost64_16},
4398 1 => {}
4399 },
4400 1 => {}
4401 }
4402 }
4403 },
4404 1 => {
4405 0 => {
4406 0 => {Core::Leftmost64_32},
4407 1 => {}
4408 },
4409 1 => {}
4410 }
4411 },
4412 1 => {}
4413 },
4414 1 => {}
4415 }
4416 }
4417 },
4418 1 => {
4419 0 => {
4420 0 => {},
4421 1 => {
4422 0 => {
4423 0 => {},
4424 1 => {Core::Rightmost8_1}
4425 },
4426 1 => {
4427 0 => {
4428 0 => {
4429 0 => {
4430 0 => {Core::Rightmost16_1},
4431 1 => {Core::Rightmost32_1}
4432 },
4433 1 => {
4434 0 => {Core::Rightmost64_1},
4435 1 => {}
4436 }
4437 },
4438 1 => {}
4439 },
4440 1 => {}
4441 }
4442 }
4443 },
4444 1 => {
4445 0 => {
4446 0 => {
4447 0 => {},
4448 1 => {
4449 0 => {
4450 0 => {Core::Rightmost8_2},
4451 1 => {Core::Rightmost16_2}
4452 },
4453 1 => {
4454 0 => {
4455 0 => {
4456 0 => {
4457 0 => {Core::Rightmost32_2},
4458 1 => {Core::Rightmost64_2}
4459 },
4460 1 => {}
4461 },
4462 1 => {}
4463 },
4464 1 => {}
4465 }
4466 }
4467 },
4468 1 => {
4469 0 => {Core::Rightmost8_4},
4470 1 => {
4471 0 => {
4472 0 => {Core::Rightmost16_4},
4473 1 => {Core::Rightmost32_4}
4474 },
4475 1 => {
4476 0 => {
4477 0 => {
4478 0 => {
4479 0 => {Core::Rightmost64_4},
4480 1 => {}
4481 },
4482 1 => {}
4483 },
4484 1 => {}
4485 },
4486 1 => {}
4487 }
4488 }
4489 }
4490 },
4491 1 => {
4492 0 => {
4493 0 => {
4494 0 => {
4495 0 => {
4496 0 => {Core::Rightmost16_8},
4497 1 => {
4498 0 => {
4499 0 => {Core::Rightmost32_8},
4500 1 => {Core::Rightmost64_8}
4501 },
4502 1 => {}
4503 }
4504 },
4505 1 => {
4506 0 => {Core::Rightmost32_16},
4507 1 => {
4508 0 => {
4509 0 => {Core::Rightmost64_16},
4510 1 => {}
4511 },
4512 1 => {}
4513 }
4514 }
4515 },
4516 1 => {
4517 0 => {
4518 0 => {Core::Rightmost64_32},
4519 1 => {}
4520 },
4521 1 => {}
4522 }
4523 },
4524 1 => {}
4525 },
4526 1 => {}
4527 }
4528 }
4529 }
4530 },
4531 1 => {
4532 0 => {
4533 0 => {
4534 0 => {},
4535 1 => {
4536 0 => {
4537 0 => {},
4538 1 => {Core::LeftPadLow1_8}
4539 },
4540 1 => {
4541 0 => {
4542 0 => {
4543 0 => {
4544 0 => {Core::LeftPadLow1_16},
4545 1 => {Core::LeftPadLow1_32}
4546 },
4547 1 => {
4548 0 => {Core::LeftPadLow1_64},
4549 1 => {}
4550 }
4551 },
4552 1 => {}
4553 },
4554 1 => {}
4555 }
4556 }
4557 },
4558 1 => {
4559 0 => {},
4560 1 => {
4561 0 => {
4562 0 => {
4563 0 => {
4564 0 => {
4565 0 => {Core::LeftPadLow8_16},
4566 1 => {
4567 0 => {
4568 0 => {Core::LeftPadLow8_32},
4569 1 => {Core::LeftPadLow8_64}
4570 },
4571 1 => {}
4572 }
4573 },
4574 1 => {
4575 0 => {Core::LeftPadLow16_32},
4576 1 => {
4577 0 => {
4578 0 => {Core::LeftPadLow16_64},
4579 1 => {}
4580 },
4581 1 => {}
4582 }
4583 }
4584 },
4585 1 => {
4586 0 => {
4587 0 => {Core::LeftPadLow32_64},
4588 1 => {}
4589 },
4590 1 => {}
4591 }
4592 },
4593 1 => {}
4594 },
4595 1 => {}
4596 }
4597 }
4598 },
4599 1 => {
4600 0 => {
4601 0 => {},
4602 1 => {
4603 0 => {
4604 0 => {},
4605 1 => {Core::LeftPadHigh1_8}
4606 },
4607 1 => {
4608 0 => {
4609 0 => {
4610 0 => {
4611 0 => {Core::LeftPadHigh1_16},
4612 1 => {Core::LeftPadHigh1_32}
4613 },
4614 1 => {
4615 0 => {Core::LeftPadHigh1_64},
4616 1 => {}
4617 }
4618 },
4619 1 => {}
4620 },
4621 1 => {}
4622 }
4623 }
4624 },
4625 1 => {
4626 0 => {},
4627 1 => {
4628 0 => {
4629 0 => {
4630 0 => {
4631 0 => {
4632 0 => {Core::LeftPadHigh8_16},
4633 1 => {
4634 0 => {
4635 0 => {Core::LeftPadHigh8_32},
4636 1 => {Core::LeftPadHigh8_64}
4637 },
4638 1 => {}
4639 }
4640 },
4641 1 => {
4642 0 => {Core::LeftPadHigh16_32},
4643 1 => {
4644 0 => {
4645 0 => {Core::LeftPadHigh16_64},
4646 1 => {}
4647 },
4648 1 => {}
4649 }
4650 }
4651 },
4652 1 => {
4653 0 => {
4654 0 => {Core::LeftPadHigh32_64},
4655 1 => {}
4656 },
4657 1 => {}
4658 }
4659 },
4660 1 => {}
4661 },
4662 1 => {}
4663 }
4664 }
4665 }
4666 }
4667 },
4668 1 => {
4669 0 => {
4670 0 => {
4671 0 => {
4672 0 => {},
4673 1 => {
4674 0 => {
4675 0 => {},
4676 1 => {Core::LeftExtend1_8}
4677 },
4678 1 => {
4679 0 => {
4680 0 => {
4681 0 => {
4682 0 => {Core::LeftExtend1_16},
4683 1 => {Core::LeftExtend1_32}
4684 },
4685 1 => {
4686 0 => {Core::LeftExtend1_64},
4687 1 => {}
4688 }
4689 },
4690 1 => {}
4691 },
4692 1 => {}
4693 }
4694 }
4695 },
4696 1 => {
4697 0 => {},
4698 1 => {
4699 0 => {
4700 0 => {
4701 0 => {
4702 0 => {
4703 0 => {Core::LeftExtend8_16},
4704 1 => {
4705 0 => {
4706 0 => {Core::LeftExtend8_32},
4707 1 => {Core::LeftExtend8_64}
4708 },
4709 1 => {}
4710 }
4711 },
4712 1 => {
4713 0 => {Core::LeftExtend16_32},
4714 1 => {
4715 0 => {
4716 0 => {Core::LeftExtend16_64},
4717 1 => {}
4718 },
4719 1 => {}
4720 }
4721 }
4722 },
4723 1 => {
4724 0 => {
4725 0 => {Core::LeftExtend32_64},
4726 1 => {}
4727 },
4728 1 => {}
4729 }
4730 },
4731 1 => {}
4732 },
4733 1 => {}
4734 }
4735 }
4736 },
4737 1 => {
4738 0 => {
4739 0 => {},
4740 1 => {
4741 0 => {
4742 0 => {},
4743 1 => {Core::RightPadLow1_8}
4744 },
4745 1 => {
4746 0 => {
4747 0 => {
4748 0 => {
4749 0 => {Core::RightPadLow1_16},
4750 1 => {Core::RightPadLow1_32}
4751 },
4752 1 => {
4753 0 => {Core::RightPadLow1_64},
4754 1 => {}
4755 }
4756 },
4757 1 => {}
4758 },
4759 1 => {}
4760 }
4761 }
4762 },
4763 1 => {
4764 0 => {},
4765 1 => {
4766 0 => {
4767 0 => {
4768 0 => {
4769 0 => {
4770 0 => {Core::RightPadLow8_16},
4771 1 => {
4772 0 => {
4773 0 => {Core::RightPadLow8_32},
4774 1 => {Core::RightPadLow8_64}
4775 },
4776 1 => {}
4777 }
4778 },
4779 1 => {
4780 0 => {Core::RightPadLow16_32},
4781 1 => {
4782 0 => {
4783 0 => {Core::RightPadLow16_64},
4784 1 => {}
4785 },
4786 1 => {}
4787 }
4788 }
4789 },
4790 1 => {
4791 0 => {
4792 0 => {Core::RightPadLow32_64},
4793 1 => {}
4794 },
4795 1 => {}
4796 }
4797 },
4798 1 => {}
4799 },
4800 1 => {}
4801 }
4802 }
4803 }
4804 },
4805 1 => {
4806 0 => {
4807 0 => {
4808 0 => {},
4809 1 => {
4810 0 => {
4811 0 => {},
4812 1 => {Core::RightPadHigh1_8}
4813 },
4814 1 => {
4815 0 => {
4816 0 => {
4817 0 => {
4818 0 => {Core::RightPadHigh1_16},
4819 1 => {Core::RightPadHigh1_32}
4820 },
4821 1 => {
4822 0 => {Core::RightPadHigh1_64},
4823 1 => {}
4824 }
4825 },
4826 1 => {}
4827 },
4828 1 => {}
4829 }
4830 }
4831 },
4832 1 => {
4833 0 => {},
4834 1 => {
4835 0 => {
4836 0 => {
4837 0 => {
4838 0 => {
4839 0 => {Core::RightPadHigh8_16},
4840 1 => {
4841 0 => {
4842 0 => {Core::RightPadHigh8_32},
4843 1 => {Core::RightPadHigh8_64}
4844 },
4845 1 => {}
4846 }
4847 },
4848 1 => {
4849 0 => {Core::RightPadHigh16_32},
4850 1 => {
4851 0 => {
4852 0 => {Core::RightPadHigh16_64},
4853 1 => {}
4854 },
4855 1 => {}
4856 }
4857 }
4858 },
4859 1 => {
4860 0 => {
4861 0 => {Core::RightPadHigh32_64},
4862 1 => {}
4863 },
4864 1 => {}
4865 }
4866 },
4867 1 => {}
4868 },
4869 1 => {}
4870 }
4871 }
4872 },
4873 1 => {
4874 0 => {},
4875 1 => {
4876 0 => {},
4877 1 => {
4878 0 => {
4879 0 => {
4880 0 => {
4881 0 => {
4882 0 => {Core::RightExtend8_16},
4883 1 => {
4884 0 => {
4885 0 => {Core::RightExtend8_32},
4886 1 => {Core::RightExtend8_64}
4887 },
4888 1 => {}
4889 }
4890 },
4891 1 => {
4892 0 => {Core::RightExtend16_32},
4893 1 => {
4894 0 => {
4895 0 => {Core::RightExtend16_64},
4896 1 => {}
4897 },
4898 1 => {}
4899 }
4900 }
4901 },
4902 1 => {
4903 0 => {
4904 0 => {Core::RightExtend32_64},
4905 1 => {}
4906 },
4907 1 => {}
4908 }
4909 },
4910 1 => {}
4911 },
4912 1 => {}
4913 }
4914 }
4915 }
4916 }
4917 }
4918 },
4919 1 => {
4920 0 => {
4921 0 => {
4922 0 => {
4923 0 => {},
4924 1 => {
4925 0 => {
4926 0 => {},
4927 1 => {Core::LeftShiftWith8}
4928 },
4929 1 => {
4930 0 => {
4931 0 => {
4932 0 => {
4933 0 => {Core::LeftShiftWith16},
4934 1 => {Core::LeftShiftWith32}
4935 },
4936 1 => {
4937 0 => {Core::LeftShiftWith64},
4938 1 => {}
4939 }
4940 },
4941 1 => {}
4942 },
4943 1 => {}
4944 }
4945 }
4946 },
4947 1 => {
4948 0 => {},
4949 1 => {
4950 0 => {
4951 0 => {},
4952 1 => {Core::RightShiftWith8}
4953 },
4954 1 => {
4955 0 => {
4956 0 => {
4957 0 => {
4958 0 => {Core::RightShiftWith16},
4959 1 => {Core::RightShiftWith32}
4960 },
4961 1 => {
4962 0 => {Core::RightShiftWith64},
4963 1 => {}
4964 }
4965 },
4966 1 => {}
4967 },
4968 1 => {}
4969 }
4970 }
4971 }
4972 },
4973 1 => {
4974 0 => {
4975 0 => {},
4976 1 => {
4977 0 => {
4978 0 => {},
4979 1 => {Core::LeftShift8}
4980 },
4981 1 => {
4982 0 => {
4983 0 => {
4984 0 => {
4985 0 => {Core::LeftShift16},
4986 1 => {Core::LeftShift32}
4987 },
4988 1 => {
4989 0 => {Core::LeftShift64},
4990 1 => {}
4991 }
4992 },
4993 1 => {}
4994 },
4995 1 => {}
4996 }
4997 }
4998 },
4999 1 => {
5000 0 => {},
5001 1 => {
5002 0 => {
5003 0 => {},
5004 1 => {Core::RightShift8}
5005 },
5006 1 => {
5007 0 => {
5008 0 => {
5009 0 => {
5010 0 => {Core::RightShift16},
5011 1 => {Core::RightShift32}
5012 },
5013 1 => {
5014 0 => {Core::RightShift64},
5015 1 => {}
5016 }
5017 },
5018 1 => {}
5019 },
5020 1 => {}
5021 }
5022 }
5023 }
5024 }
5025 },
5026 1 => {
5027 0 => {
5028 0 => {
5029 0 => {},
5030 1 => {
5031 0 => {
5032 0 => {},
5033 1 => {Core::LeftRotate8}
5034 },
5035 1 => {
5036 0 => {
5037 0 => {
5038 0 => {
5039 0 => {Core::LeftRotate16},
5040 1 => {Core::LeftRotate32}
5041 },
5042 1 => {
5043 0 => {Core::LeftRotate64},
5044 1 => {}
5045 }
5046 },
5047 1 => {}
5048 },
5049 1 => {}
5050 }
5051 }
5052 },
5053 1 => {
5054 0 => {},
5055 1 => {
5056 0 => {
5057 0 => {},
5058 1 => {Core::RightRotate8}
5059 },
5060 1 => {
5061 0 => {
5062 0 => {
5063 0 => {
5064 0 => {Core::RightRotate16},
5065 1 => {Core::RightRotate32}
5066 },
5067 1 => {
5068 0 => {Core::RightRotate64},
5069 1 => {}
5070 }
5071 },
5072 1 => {}
5073 },
5074 1 => {}
5075 }
5076 }
5077 }
5078 },
5079 1 => {}
5080 }
5081 }
5082 },
5083 1 => {}
5084 },
5085 1 => {}
5086 },
5087 1 => {}
5088 },
5089 1 => {}
5090 }
5091 }
5092 }
5093 },
5094 1 => {
5095 0 => {
5096 0 => {
5097 0 => {
5098 0 => {},
5099 1 => {
5100 0 => {
5101 0 => {},
5102 1 => {Core::One8}
5103 },
5104 1 => {
5105 0 => {
5106 0 => {
5107 0 => {
5108 0 => {Core::One16},
5109 1 => {Core::One32}
5110 },
5111 1 => {
5112 0 => {Core::One64},
5113 1 => {}
5114 }
5115 },
5116 1 => {}
5117 },
5118 1 => {}
5119 }
5120 }
5121 },
5122 1 => {
5123 0 => {
5124 0 => {
5125 0 => {},
5126 1 => {
5127 0 => {
5128 0 => {},
5129 1 => {Core::FullAdd8}
5130 },
5131 1 => {
5132 0 => {
5133 0 => {
5134 0 => {
5135 0 => {Core::FullAdd16},
5136 1 => {Core::FullAdd32}
5137 },
5138 1 => {
5139 0 => {Core::FullAdd64},
5140 1 => {}
5141 }
5142 },
5143 1 => {}
5144 },
5145 1 => {}
5146 }
5147 }
5148 },
5149 1 => {
5150 0 => {},
5151 1 => {
5152 0 => {
5153 0 => {},
5154 1 => {Core::Add8}
5155 },
5156 1 => {
5157 0 => {
5158 0 => {
5159 0 => {
5160 0 => {Core::Add16},
5161 1 => {Core::Add32}
5162 },
5163 1 => {
5164 0 => {Core::Add64},
5165 1 => {}
5166 }
5167 },
5168 1 => {}
5169 },
5170 1 => {}
5171 }
5172 }
5173 }
5174 },
5175 1 => {
5176 0 => {
5177 0 => {
5178 0 => {
5179 0 => {
5180 0 => {},
5181 1 => {
5182 0 => {
5183 0 => {},
5184 1 => {Core::FullIncrement8}
5185 },
5186 1 => {
5187 0 => {
5188 0 => {
5189 0 => {
5190 0 => {Core::FullIncrement16},
5191 1 => {Core::FullIncrement32}
5192 },
5193 1 => {
5194 0 => {Core::FullIncrement64},
5195 1 => {}
5196 }
5197 },
5198 1 => {}
5199 },
5200 1 => {}
5201 }
5202 }
5203 },
5204 1 => {
5205 0 => {},
5206 1 => {
5207 0 => {
5208 0 => {},
5209 1 => {Core::Increment8}
5210 },
5211 1 => {
5212 0 => {
5213 0 => {
5214 0 => {
5215 0 => {Core::Increment16},
5216 1 => {Core::Increment32}
5217 },
5218 1 => {
5219 0 => {Core::Increment64},
5220 1 => {}
5221 }
5222 },
5223 1 => {}
5224 },
5225 1 => {}
5226 }
5227 }
5228 }
5229 },
5230 1 => {
5231 0 => {},
5232 1 => {
5233 0 => {},
5234 1 => {
5235 0 => {
5236 0 => {},
5237 1 => {Core::FullSubtract8}
5238 },
5239 1 => {
5240 0 => {
5241 0 => {
5242 0 => {
5243 0 => {Core::FullSubtract16},
5244 1 => {Core::FullSubtract32}
5245 },
5246 1 => {
5247 0 => {Core::FullSubtract64},
5248 1 => {}
5249 }
5250 },
5251 1 => {}
5252 },
5253 1 => {}
5254 }
5255 }
5256 }
5257 }
5258 },
5259 1 => {
5260 0 => {
5261 0 => {
5262 0 => {
5263 0 => {},
5264 1 => {
5265 0 => {
5266 0 => {},
5267 1 => {Core::Subtract8}
5268 },
5269 1 => {
5270 0 => {
5271 0 => {
5272 0 => {
5273 0 => {Core::Subtract16},
5274 1 => {Core::Subtract32}
5275 },
5276 1 => {
5277 0 => {Core::Subtract64},
5278 1 => {}
5279 }
5280 },
5281 1 => {}
5282 },
5283 1 => {}
5284 }
5285 }
5286 },
5287 1 => {
5288 0 => {},
5289 1 => {
5290 0 => {
5291 0 => {},
5292 1 => {Core::Negate8}
5293 },
5294 1 => {
5295 0 => {
5296 0 => {
5297 0 => {
5298 0 => {Core::Negate16},
5299 1 => {Core::Negate32}
5300 },
5301 1 => {
5302 0 => {Core::Negate64},
5303 1 => {}
5304 }
5305 },
5306 1 => {}
5307 },
5308 1 => {}
5309 }
5310 }
5311 }
5312 },
5313 1 => {
5314 0 => {
5315 0 => {},
5316 1 => {
5317 0 => {
5318 0 => {},
5319 1 => {Core::FullDecrement8}
5320 },
5321 1 => {
5322 0 => {
5323 0 => {
5324 0 => {
5325 0 => {Core::FullDecrement16},
5326 1 => {Core::FullDecrement32}
5327 },
5328 1 => {
5329 0 => {Core::FullDecrement64},
5330 1 => {}
5331 }
5332 },
5333 1 => {}
5334 },
5335 1 => {}
5336 }
5337 }
5338 },
5339 1 => {
5340 0 => {},
5341 1 => {
5342 0 => {
5343 0 => {},
5344 1 => {Core::Decrement8}
5345 },
5346 1 => {
5347 0 => {
5348 0 => {
5349 0 => {
5350 0 => {Core::Decrement16},
5351 1 => {Core::Decrement32}
5352 },
5353 1 => {
5354 0 => {Core::Decrement64},
5355 1 => {}
5356 }
5357 },
5358 1 => {}
5359 },
5360 1 => {}
5361 }
5362 }
5363 }
5364 }
5365 },
5366 1 => {
5367 0 => {
5368 0 => {
5369 0 => {},
5370 1 => {
5371 0 => {
5372 0 => {},
5373 1 => {Core::FullMultiply8}
5374 },
5375 1 => {
5376 0 => {
5377 0 => {
5378 0 => {
5379 0 => {Core::FullMultiply16},
5380 1 => {Core::FullMultiply32}
5381 },
5382 1 => {
5383 0 => {Core::FullMultiply64},
5384 1 => {}
5385 }
5386 },
5387 1 => {}
5388 },
5389 1 => {}
5390 }
5391 }
5392 },
5393 1 => {
5394 0 => {},
5395 1 => {
5396 0 => {
5397 0 => {},
5398 1 => {Core::Multiply8}
5399 },
5400 1 => {
5401 0 => {
5402 0 => {
5403 0 => {
5404 0 => {Core::Multiply16},
5405 1 => {Core::Multiply32}
5406 },
5407 1 => {
5408 0 => {Core::Multiply64},
5409 1 => {}
5410 }
5411 },
5412 1 => {}
5413 },
5414 1 => {}
5415 }
5416 }
5417 }
5418 },
5419 1 => {
5420 0 => {
5421 0 => {},
5422 1 => {
5423 0 => {
5424 0 => {},
5425 1 => {Core::IsZero8}
5426 },
5427 1 => {
5428 0 => {
5429 0 => {
5430 0 => {
5431 0 => {Core::IsZero16},
5432 1 => {Core::IsZero32}
5433 },
5434 1 => {
5435 0 => {Core::IsZero64},
5436 1 => {}
5437 }
5438 },
5439 1 => {}
5440 },
5441 1 => {}
5442 }
5443 }
5444 },
5445 1 => {
5446 0 => {},
5447 1 => {
5448 0 => {
5449 0 => {},
5450 1 => {Core::IsOne8}
5451 },
5452 1 => {
5453 0 => {
5454 0 => {
5455 0 => {
5456 0 => {Core::IsOne16},
5457 1 => {Core::IsOne32}
5458 },
5459 1 => {
5460 0 => {Core::IsOne64},
5461 1 => {}
5462 }
5463 },
5464 1 => {}
5465 },
5466 1 => {}
5467 }
5468 }
5469 }
5470 }
5471 }
5472 }
5473 },
5474 1 => {
5475 0 => {
5476 0 => {
5477 0 => {
5478 0 => {
5479 0 => {
5480 0 => {
5481 0 => {
5482 0 => {
5483 0 => {},
5484 1 => {
5485 0 => {
5486 0 => {},
5487 1 => {Core::Le8}
5488 },
5489 1 => {
5490 0 => {
5491 0 => {
5492 0 => {
5493 0 => {Core::Le16},
5494 1 => {Core::Le32}
5495 },
5496 1 => {
5497 0 => {Core::Le64},
5498 1 => {}
5499 }
5500 },
5501 1 => {}
5502 },
5503 1 => {}
5504 }
5505 }
5506 },
5507 1 => {
5508 0 => {},
5509 1 => {
5510 0 => {
5511 0 => {},
5512 1 => {Core::Lt8}
5513 },
5514 1 => {
5515 0 => {
5516 0 => {
5517 0 => {
5518 0 => {Core::Lt16},
5519 1 => {Core::Lt32}
5520 },
5521 1 => {
5522 0 => {Core::Lt64},
5523 1 => {}
5524 }
5525 },
5526 1 => {}
5527 },
5528 1 => {}
5529 }
5530 }
5531 }
5532 },
5533 1 => {
5534 0 => {
5535 0 => {},
5536 1 => {
5537 0 => {
5538 0 => {},
5539 1 => {Core::Min8}
5540 },
5541 1 => {
5542 0 => {
5543 0 => {
5544 0 => {
5545 0 => {Core::Min16},
5546 1 => {Core::Min32}
5547 },
5548 1 => {
5549 0 => {Core::Min64},
5550 1 => {}
5551 }
5552 },
5553 1 => {}
5554 },
5555 1 => {}
5556 }
5557 }
5558 },
5559 1 => {
5560 0 => {},
5561 1 => {
5562 0 => {
5563 0 => {},
5564 1 => {Core::Max8}
5565 },
5566 1 => {
5567 0 => {
5568 0 => {
5569 0 => {
5570 0 => {Core::Max16},
5571 1 => {Core::Max32}
5572 },
5573 1 => {
5574 0 => {Core::Max64},
5575 1 => {}
5576 }
5577 },
5578 1 => {}
5579 },
5580 1 => {}
5581 }
5582 }
5583 }
5584 }
5585 },
5586 1 => {
5587 0 => {
5588 0 => {
5589 0 => {},
5590 1 => {
5591 0 => {
5592 0 => {},
5593 1 => {Core::Median8}
5594 },
5595 1 => {
5596 0 => {
5597 0 => {
5598 0 => {
5599 0 => {Core::Median16},
5600 1 => {Core::Median32}
5601 },
5602 1 => {
5603 0 => {Core::Median64},
5604 1 => {}
5605 }
5606 },
5607 1 => {}
5608 },
5609 1 => {}
5610 }
5611 }
5612 },
5613 1 => {
5614 0 => {},
5615 1 => {
5616 0 => {},
5617 1 => {
5618 0 => {
5619 0 => {
5620 0 => {},
5621 1 => {
5622 0 => {Core::DivMod128_64},
5623 1 => {}
5624 }
5625 },
5626 1 => {}
5627 },
5628 1 => {}
5629 }
5630 }
5631 }
5632 },
5633 1 => {
5634 0 => {
5635 0 => {},
5636 1 => {
5637 0 => {
5638 0 => {},
5639 1 => {Core::DivMod8}
5640 },
5641 1 => {
5642 0 => {
5643 0 => {
5644 0 => {
5645 0 => {Core::DivMod16},
5646 1 => {Core::DivMod32}
5647 },
5648 1 => {
5649 0 => {Core::DivMod64},
5650 1 => {}
5651 }
5652 },
5653 1 => {}
5654 },
5655 1 => {}
5656 }
5657 }
5658 },
5659 1 => {
5660 0 => {},
5661 1 => {
5662 0 => {
5663 0 => {},
5664 1 => {Core::Divide8}
5665 },
5666 1 => {
5667 0 => {
5668 0 => {
5669 0 => {
5670 0 => {Core::Divide16},
5671 1 => {Core::Divide32}
5672 },
5673 1 => {
5674 0 => {Core::Divide64},
5675 1 => {}
5676 }
5677 },
5678 1 => {}
5679 },
5680 1 => {}
5681 }
5682 }
5683 }
5684 }
5685 }
5686 },
5687 1 => {
5688 0 => {
5689 0 => {
5690 0 => {
5691 0 => {},
5692 1 => {
5693 0 => {
5694 0 => {},
5695 1 => {Core::Modulo8}
5696 },
5697 1 => {
5698 0 => {
5699 0 => {
5700 0 => {
5701 0 => {Core::Modulo16},
5702 1 => {Core::Modulo32}
5703 },
5704 1 => {
5705 0 => {Core::Modulo64},
5706 1 => {}
5707 }
5708 },
5709 1 => {}
5710 },
5711 1 => {}
5712 }
5713 }
5714 },
5715 1 => {
5716 0 => {},
5717 1 => {
5718 0 => {
5719 0 => {},
5720 1 => {Core::Divides8}
5721 },
5722 1 => {
5723 0 => {
5724 0 => {
5725 0 => {
5726 0 => {Core::Divides16},
5727 1 => {Core::Divides32}
5728 },
5729 1 => {
5730 0 => {Core::Divides64},
5731 1 => {}
5732 }
5733 },
5734 1 => {}
5735 },
5736 1 => {}
5737 }
5738 }
5739 }
5740 },
5741 1 => {}
5742 },
5743 1 => {}
5744 }
5745 },
5746 1 => {}
5747 },
5748 1 => {}
5749 },
5750 1 => {}
5751 },
5752 1 => {}
5753 }
5754 }
5755 }
5756 },
5757 1 => {
5758 0 => {
5759 0 => {Core::Sha256Block},
5760 1 => {
5761 0 => {
5762 0 => {Core::Sha256Iv},
5763 1 => {
5764 0 => {Core::Sha256Ctx8Add1},
5765 1 => {
5766 0 => {
5767 0 => {Core::Sha256Ctx8Add2},
5768 1 => {Core::Sha256Ctx8Add4}
5769 },
5770 1 => {
5771 0 => {
5772 0 => {
5773 0 => {
5774 0 => {Core::Sha256Ctx8Add8},
5775 1 => {Core::Sha256Ctx8Add16}
5776 },
5777 1 => {
5778 0 => {Core::Sha256Ctx8Add32},
5779 1 => {Core::Sha256Ctx8Add64}
5780 }
5781 },
5782 1 => {
5783 0 => {
5784 0 => {
5785 0 => {Core::Sha256Ctx8Add128},
5786 1 => {Core::Sha256Ctx8Add256}
5787 },
5788 1 => {
5789 0 => {Core::Sha256Ctx8Add512},
5790 1 => {}
5791 }
5792 },
5793 1 => {}
5794 }
5795 },
5796 1 => {}
5797 }
5798 }
5799 }
5800 },
5801 1 => {
5802 0 => {
5803 0 => {
5804 0 => {
5805 0 => {Core::Sha256Ctx8AddBuffer511},
5806 1 => {Core::Sha256Ctx8Finalize}
5807 },
5808 1 => {
5809 0 => {Core::Sha256Ctx8Init},
5810 1 => {}
5811 }
5812 },
5813 1 => {}
5814 },
5815 1 => {}
5816 }
5817 }
5818 },
5819 1 => {}
5820 }
5821 },
5822 1 => {
5823 0 => {
5824 0 => {
5825 0 => {
5826 0 => {
5827 0 => {
5828 0 => {Core::PointVerify1},
5829 1 => {}
5830 },
5831 1 => {
5832 0 => {
5833 0 => {Core::Decompress},
5834 1 => {
5835 0 => {Core::LinearVerify1},
5836 1 => {}
5837 }
5838 },
5839 1 => {
5840 0 => {
5841 0 => {
5842 0 => {
5843 0 => {
5844 0 => {Core::LinearCombination1},
5845 1 => {}
5846 },
5847 1 => {Core::Scale}
5848 },
5849 1 => {
5850 0 => {Core::Generate},
5851 1 => {Core::GejInfinity}
5852 }
5853 },
5854 1 => {
5855 0 => {
5856 0 => {
5857 0 => {Core::GejNormalize},
5858 1 => {Core::GejNegate}
5859 },
5860 1 => {
5861 0 => {Core::GeNegate},
5862 1 => {Core::GejDouble}
5863 }
5864 },
5865 1 => {
5866 0 => {
5867 0 => {Core::GejAdd},
5868 1 => {Core::GejGeAddEx}
5869 },
5870 1 => {
5871 0 => {Core::GejGeAdd},
5872 1 => {Core::GejRescale}
5873 }
5874 }
5875 }
5876 },
5877 1 => {
5878 0 => {
5879 0 => {
5880 0 => {
5881 0 => {
5882 0 => {
5883 0 => {
5884 0 => {
5885 0 => {Core::GejIsInfinity},
5886 1 => {Core::GejEquiv}
5887 },
5888 1 => {
5889 0 => {Core::GejGeEquiv},
5890 1 => {Core::GejXEquiv}
5891 }
5892 },
5893 1 => {
5894 0 => {
5895 0 => {Core::GejYIsOdd},
5896 1 => {Core::GejIsOnCurve}
5897 },
5898 1 => {
5899 0 => {Core::GeIsOnCurve},
5900 1 => {Core::ScalarNormalize}
5901 }
5902 }
5903 },
5904 1 => {
5905 0 => {
5906 0 => {
5907 0 => {Core::ScalarNegate},
5908 1 => {Core::ScalarAdd}
5909 },
5910 1 => {
5911 0 => {Core::ScalarSquare},
5912 1 => {Core::ScalarMultiply}
5913 }
5914 },
5915 1 => {
5916 0 => {
5917 0 => {Core::ScalarMultiplyLambda},
5918 1 => {Core::ScalarInvert}
5919 },
5920 1 => {
5921 0 => {Core::ScalarIsZero},
5922 1 => {}
5923 }
5924 }
5925 }
5926 },
5927 1 => {
5928 0 => {
5929 0 => {
5930 0 => {
5931 0 => {},
5932 1 => {
5933 0 => {},
5934 1 => {Core::FeNormalize}
5935 }
5936 },
5937 1 => {
5938 0 => {
5939 0 => {Core::FeNegate},
5940 1 => {Core::FeAdd}
5941 },
5942 1 => {
5943 0 => {Core::FeSquare},
5944 1 => {Core::FeMultiply}
5945 }
5946 }
5947 },
5948 1 => {
5949 0 => {
5950 0 => {
5951 0 => {Core::FeMultiplyBeta},
5952 1 => {Core::FeInvert}
5953 },
5954 1 => {
5955 0 => {Core::FeSquareRoot},
5956 1 => {Core::FeIsZero}
5957 }
5958 },
5959 1 => {
5960 0 => {
5961 0 => {Core::FeIsOdd},
5962 1 => {}
5963 },
5964 1 => {
5965 0 => {Core::HashToCurve},
5966 1 => {Core::Swu}
5967 }
5968 }
5969 }
5970 },
5971 1 => {}
5972 }
5973 },
5974 1 => {}
5975 },
5976 1 => {}
5977 },
5978 1 => {}
5979 }
5980 }
5981 }
5982 },
5983 1 => {
5984 0 => {Core::CheckSigVerify},
5985 1 => {
5986 0 => {
5987 0 => {Core::Bip0340Verify},
5988 1 => {}
5989 },
5990 1 => {}
5991 }
5992 }
5993 },
5994 1 => {
5995 0 => {},
5996 1 => {
5997 0 => {Core::ParseLock},
5998 1 => {
5999 0 => {
6000 0 => {Core::ParseSequence},
6001 1 => {Core::TapdataInit}
6002 },
6003 1 => {}
6004 }
6005 }
6006 }
6007 },
6008 1 => {}
6009 },
6010 1 => {}
6011 }
6012 }
6013 })
6014 }
6015
6016 fn cost(&self) -> Cost {
6017 match self {
6018 Core::Add16 => Cost::from_milliweight(80),
6019 Core::Add32 => Cost::from_milliweight(92),
6020 Core::Add64 => Cost::from_milliweight(105),
6021 Core::Add8 => Cost::from_milliweight(97),
6022 Core::All16 => Cost::from_milliweight(60),
6023 Core::All32 => Cost::from_milliweight(62),
6024 Core::All64 => Cost::from_milliweight(63),
6025 Core::All8 => Cost::from_milliweight(50),
6026 Core::And1 => Cost::from_milliweight(77),
6027 Core::And16 => Cost::from_milliweight(83),
6028 Core::And32 => Cost::from_milliweight(77),
6029 Core::And64 => Cost::from_milliweight(78),
6030 Core::And8 => Cost::from_milliweight(98),
6031 Core::Bip0340Verify => Cost::from_milliweight(49421),
6032 Core::Ch1 => Cost::from_milliweight(50),
6033 Core::Ch16 => Cost::from_milliweight(83),
6034 Core::Ch32 => Cost::from_milliweight(69),
6035 Core::Ch64 => Cost::from_milliweight(78),
6036 Core::Ch8 => Cost::from_milliweight(86),
6037 Core::CheckSigVerify => Cost::from_milliweight(50000),
6038 Core::Complement1 => Cost::from_milliweight(51),
6039 Core::Complement16 => Cost::from_milliweight(86),
6040 Core::Complement32 => Cost::from_milliweight(58),
6041 Core::Complement64 => Cost::from_milliweight(64),
6042 Core::Complement8 => Cost::from_milliweight(62),
6043 Core::Decompress => Cost::from_milliweight(10495),
6044 Core::Decrement16 => Cost::from_milliweight(58),
6045 Core::Decrement32 => Cost::from_milliweight(57),
6046 Core::Decrement64 => Cost::from_milliweight(79),
6047 Core::Decrement8 => Cost::from_milliweight(77),
6048 Core::DivMod128_64 => Cost::from_milliweight(169),
6049 Core::DivMod16 => Cost::from_milliweight(92),
6050 Core::DivMod32 => Cost::from_milliweight(90),
6051 Core::DivMod64 => Cost::from_milliweight(82),
6052 Core::DivMod8 => Cost::from_milliweight(91),
6053 Core::Divide16 => Cost::from_milliweight(85),
6054 Core::Divide32 => Cost::from_milliweight(82),
6055 Core::Divide64 => Cost::from_milliweight(81),
6056 Core::Divide8 => Cost::from_milliweight(85),
6057 Core::Divides16 => Cost::from_milliweight(84),
6058 Core::Divides32 => Cost::from_milliweight(80),
6059 Core::Divides64 => Cost::from_milliweight(67),
6060 Core::Divides8 => Cost::from_milliweight(73),
6061 Core::Eq1 => Cost::from_milliweight(63),
6062 Core::Eq16 => Cost::from_milliweight(68),
6063 Core::Eq256 => Cost::from_milliweight(188),
6064 Core::Eq32 => Cost::from_milliweight(74),
6065 Core::Eq64 => Cost::from_milliweight(82),
6066 Core::Eq8 => Cost::from_milliweight(76),
6067 Core::FeAdd => Cost::from_milliweight(777),
6068 Core::FeInvert => Cost::from_milliweight(3237),
6069 Core::FeIsOdd => Cost::from_milliweight(313),
6070 Core::FeIsZero => Cost::from_milliweight(277),
6071 Core::FeMultiply => Cost::from_milliweight(813),
6072 Core::FeMultiplyBeta => Cost::from_milliweight(607),
6073 Core::FeNegate => Cost::from_milliweight(541),
6074 Core::FeNormalize => Cost::from_milliweight(656),
6075 Core::FeSquare => Cost::from_milliweight(570),
6076 Core::FeSquareRoot => Cost::from_milliweight(10162),
6077 Core::FullAdd16 => Cost::from_milliweight(106),
6078 Core::FullAdd32 => Cost::from_milliweight(96),
6079 Core::FullAdd64 => Cost::from_milliweight(93),
6080 Core::FullAdd8 => Cost::from_milliweight(131),
6081 Core::FullDecrement16 => Cost::from_milliweight(60),
6082 Core::FullDecrement32 => Cost::from_milliweight(71),
6083 Core::FullDecrement64 => Cost::from_milliweight(71),
6084 Core::FullDecrement8 => Cost::from_milliweight(68),
6085 Core::FullIncrement16 => Cost::from_milliweight(70),
6086 Core::FullIncrement32 => Cost::from_milliweight(57),
6087 Core::FullIncrement64 => Cost::from_milliweight(68),
6088 Core::FullIncrement8 => Cost::from_milliweight(73),
6089 Core::FullLeftShift16_1 => Cost::from_milliweight(76),
6090 Core::FullLeftShift16_2 => Cost::from_milliweight(59),
6091 Core::FullLeftShift16_4 => Cost::from_milliweight(68),
6092 Core::FullLeftShift16_8 => Cost::from_milliweight(68),
6093 Core::FullLeftShift32_1 => Cost::from_milliweight(58),
6094 Core::FullLeftShift32_16 => Cost::from_milliweight(52),
6095 Core::FullLeftShift32_2 => Cost::from_milliweight(73),
6096 Core::FullLeftShift32_4 => Cost::from_milliweight(59),
6097 Core::FullLeftShift32_8 => Cost::from_milliweight(60),
6098 Core::FullLeftShift64_1 => Cost::from_milliweight(74),
6099 Core::FullLeftShift64_16 => Cost::from_milliweight(69),
6100 Core::FullLeftShift64_2 => Cost::from_milliweight(70),
6101 Core::FullLeftShift64_32 => Cost::from_milliweight(73),
6102 Core::FullLeftShift64_4 => Cost::from_milliweight(66),
6103 Core::FullLeftShift64_8 => Cost::from_milliweight(68),
6104 Core::FullLeftShift8_1 => Cost::from_milliweight(60),
6105 Core::FullLeftShift8_2 => Cost::from_milliweight(64),
6106 Core::FullLeftShift8_4 => Cost::from_milliweight(72),
6107 Core::FullMultiply16 => Cost::from_milliweight(99),
6108 Core::FullMultiply32 => Cost::from_milliweight(87),
6109 Core::FullMultiply64 => Cost::from_milliweight(103),
6110 Core::FullMultiply8 => Cost::from_milliweight(95),
6111 Core::FullRightShift16_1 => Cost::from_milliweight(55),
6112 Core::FullRightShift16_2 => Cost::from_milliweight(60),
6113 Core::FullRightShift16_4 => Cost::from_milliweight(64),
6114 Core::FullRightShift16_8 => Cost::from_milliweight(55),
6115 Core::FullRightShift32_1 => Cost::from_milliweight(49),
6116 Core::FullRightShift32_16 => Cost::from_milliweight(48),
6117 Core::FullRightShift32_2 => Cost::from_milliweight(66),
6118 Core::FullRightShift32_4 => Cost::from_milliweight(49),
6119 Core::FullRightShift32_8 => Cost::from_milliweight(66),
6120 Core::FullRightShift64_1 => Cost::from_milliweight(60),
6121 Core::FullRightShift64_16 => Cost::from_milliweight(73),
6122 Core::FullRightShift64_2 => Cost::from_milliweight(76),
6123 Core::FullRightShift64_32 => Cost::from_milliweight(73),
6124 Core::FullRightShift64_4 => Cost::from_milliweight(56),
6125 Core::FullRightShift64_8 => Cost::from_milliweight(68),
6126 Core::FullRightShift8_1 => Cost::from_milliweight(59),
6127 Core::FullRightShift8_2 => Cost::from_milliweight(49),
6128 Core::FullRightShift8_4 => Cost::from_milliweight(51),
6129 Core::FullSubtract16 => Cost::from_milliweight(99),
6130 Core::FullSubtract32 => Cost::from_milliweight(92),
6131 Core::FullSubtract64 => Cost::from_milliweight(109),
6132 Core::FullSubtract8 => Cost::from_milliweight(106),
6133 Core::GeIsOnCurve => Cost::from_milliweight(688),
6134 Core::GeNegate => Cost::from_milliweight(1071),
6135 Core::GejAdd => Cost::from_milliweight(3000),
6136 Core::GejDouble => Cost::from_milliweight(1862),
6137 Core::GejEquiv => Cost::from_milliweight(2376),
6138 Core::GejGeAdd => Cost::from_milliweight(2609),
6139 Core::GejGeAddEx => Cost::from_milliweight(2860),
6140 Core::GejGeEquiv => Cost::from_milliweight(1823),
6141 Core::GejInfinity => Cost::from_milliweight(765),
6142 Core::GejIsInfinity => Cost::from_milliweight(701),
6143 Core::GejIsOnCurve => Cost::from_milliweight(1039),
6144 Core::GejNegate => Cost::from_milliweight(1549),
6145 Core::GejNormalize => Cost::from_milliweight(4184),
6146 Core::GejRescale => Cost::from_milliweight(2011),
6147 Core::GejXEquiv => Cost::from_milliweight(1103),
6148 Core::GejYIsOdd => Cost::from_milliweight(3702),
6149 Core::Generate => Cost::from_milliweight(49851),
6150 Core::HashToCurve => Cost::from_milliweight(69844),
6151 Core::High1 => Cost::from_milliweight(42),
6152 Core::High16 => Cost::from_milliweight(50),
6153 Core::High32 => Cost::from_milliweight(64),
6154 Core::High64 => Cost::from_milliweight(52),
6155 Core::High8 => Cost::from_milliweight(59),
6156 Core::Increment16 => Cost::from_milliweight(56),
6157 Core::Increment32 => Cost::from_milliweight(73),
6158 Core::Increment64 => Cost::from_milliweight(64),
6159 Core::Increment8 => Cost::from_milliweight(69),
6160 Core::IsOne16 => Cost::from_milliweight(64),
6161 Core::IsOne32 => Cost::from_milliweight(64),
6162 Core::IsOne64 => Cost::from_milliweight(66),
6163 Core::IsOne8 => Cost::from_milliweight(47),
6164 Core::IsZero16 => Cost::from_milliweight(52),
6165 Core::IsZero32 => Cost::from_milliweight(58),
6166 Core::IsZero64 => Cost::from_milliweight(68),
6167 Core::IsZero8 => Cost::from_milliweight(59),
6168 Core::Le16 => Cost::from_milliweight(83),
6169 Core::Le32 => Cost::from_milliweight(99),
6170 Core::Le64 => Cost::from_milliweight(79),
6171 Core::Le8 => Cost::from_milliweight(93),
6172 Core::LeftExtend16_32 => Cost::from_milliweight(72),
6173 Core::LeftExtend16_64 => Cost::from_milliweight(69),
6174 Core::LeftExtend1_16 => Cost::from_milliweight(50),
6175 Core::LeftExtend1_32 => Cost::from_milliweight(48),
6176 Core::LeftExtend1_64 => Cost::from_milliweight(49),
6177 Core::LeftExtend1_8 => Cost::from_milliweight(46),
6178 Core::LeftExtend32_64 => Cost::from_milliweight(69),
6179 Core::LeftExtend8_16 => Cost::from_milliweight(58),
6180 Core::LeftExtend8_32 => Cost::from_milliweight(86),
6181 Core::LeftExtend8_64 => Cost::from_milliweight(98),
6182 Core::LeftPadHigh16_32 => Cost::from_milliweight(71),
6183 Core::LeftPadHigh16_64 => Cost::from_milliweight(82),
6184 Core::LeftPadHigh1_16 => Cost::from_milliweight(106),
6185 Core::LeftPadHigh1_32 => Cost::from_milliweight(220),
6186 Core::LeftPadHigh1_64 => Cost::from_milliweight(302),
6187 Core::LeftPadHigh1_8 => Cost::from_milliweight(73),
6188 Core::LeftPadHigh32_64 => Cost::from_milliweight(69),
6189 Core::LeftPadHigh8_16 => Cost::from_milliweight(65),
6190 Core::LeftPadHigh8_32 => Cost::from_milliweight(105),
6191 Core::LeftPadHigh8_64 => Cost::from_milliweight(113),
6192 Core::LeftPadLow16_32 => Cost::from_milliweight(65),
6193 Core::LeftPadLow16_64 => Cost::from_milliweight(68),
6194 Core::LeftPadLow1_16 => Cost::from_milliweight(59),
6195 Core::LeftPadLow1_32 => Cost::from_milliweight(47),
6196 Core::LeftPadLow1_64 => Cost::from_milliweight(46),
6197 Core::LeftPadLow1_8 => Cost::from_milliweight(48),
6198 Core::LeftPadLow32_64 => Cost::from_milliweight(62),
6199 Core::LeftPadLow8_16 => Cost::from_milliweight(56),
6200 Core::LeftPadLow8_32 => Cost::from_milliweight(75),
6201 Core::LeftPadLow8_64 => Cost::from_milliweight(116),
6202 Core::LeftRotate16 => Cost::from_milliweight(88),
6203 Core::LeftRotate32 => Cost::from_milliweight(62),
6204 Core::LeftRotate64 => Cost::from_milliweight(68),
6205 Core::LeftRotate8 => Cost::from_milliweight(66),
6206 Core::LeftShift16 => Cost::from_milliweight(109),
6207 Core::LeftShift32 => Cost::from_milliweight(79),
6208 Core::LeftShift64 => Cost::from_milliweight(70),
6209 Core::LeftShift8 => Cost::from_milliweight(72),
6210 Core::LeftShiftWith16 => Cost::from_milliweight(72),
6211 Core::LeftShiftWith32 => Cost::from_milliweight(87),
6212 Core::LeftShiftWith64 => Cost::from_milliweight(97),
6213 Core::LeftShiftWith8 => Cost::from_milliweight(104),
6214 Core::Leftmost16_1 => Cost::from_milliweight(68),
6215 Core::Leftmost16_2 => Cost::from_milliweight(58),
6216 Core::Leftmost16_4 => Cost::from_milliweight(51),
6217 Core::Leftmost16_8 => Cost::from_milliweight(62),
6218 Core::Leftmost32_1 => Cost::from_milliweight(53),
6219 Core::Leftmost32_16 => Cost::from_milliweight(63),
6220 Core::Leftmost32_2 => Cost::from_milliweight(62),
6221 Core::Leftmost32_4 => Cost::from_milliweight(61),
6222 Core::Leftmost32_8 => Cost::from_milliweight(60),
6223 Core::Leftmost64_1 => Cost::from_milliweight(65),
6224 Core::Leftmost64_16 => Cost::from_milliweight(62),
6225 Core::Leftmost64_2 => Cost::from_milliweight(61),
6226 Core::Leftmost64_32 => Cost::from_milliweight(77),
6227 Core::Leftmost64_4 => Cost::from_milliweight(80),
6228 Core::Leftmost64_8 => Cost::from_milliweight(54),
6229 Core::Leftmost8_1 => Cost::from_milliweight(54),
6230 Core::Leftmost8_2 => Cost::from_milliweight(71),
6231 Core::Leftmost8_4 => Cost::from_milliweight(65),
6232 Core::LinearCombination1 => Cost::from_milliweight(85743),
6233 Core::LinearVerify1 => Cost::from_milliweight(43579),
6234 Core::Low1 => Cost::from_milliweight(40),
6235 Core::Low16 => Cost::from_milliweight(60),
6236 Core::Low32 => Cost::from_milliweight(52),
6237 Core::Low64 => Cost::from_milliweight(50),
6238 Core::Low8 => Cost::from_milliweight(45),
6239 Core::Lt16 => Cost::from_milliweight(83),
6240 Core::Lt32 => Cost::from_milliweight(89),
6241 Core::Lt64 => Cost::from_milliweight(71),
6242 Core::Lt8 => Cost::from_milliweight(86),
6243 Core::Maj1 => Cost::from_milliweight(54),
6244 Core::Maj16 => Cost::from_milliweight(85),
6245 Core::Maj32 => Cost::from_milliweight(73),
6246 Core::Maj64 => Cost::from_milliweight(79),
6247 Core::Maj8 => Cost::from_milliweight(64),
6248 Core::Max16 => Cost::from_milliweight(80),
6249 Core::Max32 => Cost::from_milliweight(70),
6250 Core::Max64 => Cost::from_milliweight(75),
6251 Core::Max8 => Cost::from_milliweight(79),
6252 Core::Median16 => Cost::from_milliweight(80),
6253 Core::Median32 => Cost::from_milliweight(77),
6254 Core::Median64 => Cost::from_milliweight(89),
6255 Core::Median8 => Cost::from_milliweight(77),
6256 Core::Min16 => Cost::from_milliweight(83),
6257 Core::Min32 => Cost::from_milliweight(96),
6258 Core::Min64 => Cost::from_milliweight(82),
6259 Core::Min8 => Cost::from_milliweight(78),
6260 Core::Modulo16 => Cost::from_milliweight(85),
6261 Core::Modulo32 => Cost::from_milliweight(81),
6262 Core::Modulo64 => Cost::from_milliweight(71),
6263 Core::Modulo8 => Cost::from_milliweight(85),
6264 Core::Multiply16 => Cost::from_milliweight(79),
6265 Core::Multiply32 => Cost::from_milliweight(78),
6266 Core::Multiply64 => Cost::from_milliweight(72),
6267 Core::Multiply8 => Cost::from_milliweight(79),
6268 Core::Negate16 => Cost::from_milliweight(69),
6269 Core::Negate32 => Cost::from_milliweight(56),
6270 Core::Negate64 => Cost::from_milliweight(56),
6271 Core::Negate8 => Cost::from_milliweight(69),
6272 Core::One16 => Cost::from_milliweight(45),
6273 Core::One32 => Cost::from_milliweight(45),
6274 Core::One64 => Cost::from_milliweight(45),
6275 Core::One8 => Cost::from_milliweight(46),
6276 Core::Or1 => Cost::from_milliweight(56),
6277 Core::Or16 => Cost::from_milliweight(78),
6278 Core::Or32 => Cost::from_milliweight(80),
6279 Core::Or64 => Cost::from_milliweight(71),
6280 Core::Or8 => Cost::from_milliweight(81),
6281 Core::ParseLock => Cost::from_milliweight(82),
6282 Core::ParseSequence => Cost::from_milliweight(93),
6283 Core::PointVerify1 => Cost::from_milliweight(41394),
6284 Core::RightExtend16_32 => Cost::from_milliweight(73),
6285 Core::RightExtend16_64 => Cost::from_milliweight(70),
6286 Core::RightExtend32_64 => Cost::from_milliweight(62),
6287 Core::RightExtend8_16 => Cost::from_milliweight(63),
6288 Core::RightExtend8_32 => Cost::from_milliweight(69),
6289 Core::RightExtend8_64 => Cost::from_milliweight(141),
6290 Core::RightPadHigh16_32 => Cost::from_milliweight(66),
6291 Core::RightPadHigh16_64 => Cost::from_milliweight(81),
6292 Core::RightPadHigh1_16 => Cost::from_milliweight(114),
6293 Core::RightPadHigh1_32 => Cost::from_milliweight(220),
6294 Core::RightPadHigh1_64 => Cost::from_milliweight(313),
6295 Core::RightPadHigh1_8 => Cost::from_milliweight(73),
6296 Core::RightPadHigh32_64 => Cost::from_milliweight(62),
6297 Core::RightPadHigh8_16 => Cost::from_milliweight(75),
6298 Core::RightPadHigh8_32 => Cost::from_milliweight(81),
6299 Core::RightPadHigh8_64 => Cost::from_milliweight(118),
6300 Core::RightPadLow16_32 => Cost::from_milliweight(62),
6301 Core::RightPadLow16_64 => Cost::from_milliweight(98),
6302 Core::RightPadLow1_16 => Cost::from_milliweight(60),
6303 Core::RightPadLow1_32 => Cost::from_milliweight(47),
6304 Core::RightPadLow1_64 => Cost::from_milliweight(57),
6305 Core::RightPadLow1_8 => Cost::from_milliweight(48),
6306 Core::RightPadLow32_64 => Cost::from_milliweight(74),
6307 Core::RightPadLow8_16 => Cost::from_milliweight(62),
6308 Core::RightPadLow8_32 => Cost::from_milliweight(69),
6309 Core::RightPadLow8_64 => Cost::from_milliweight(98),
6310 Core::RightRotate16 => Cost::from_milliweight(67),
6311 Core::RightRotate32 => Cost::from_milliweight(77),
6312 Core::RightRotate64 => Cost::from_milliweight(64),
6313 Core::RightRotate8 => Cost::from_milliweight(72),
6314 Core::RightShift16 => Cost::from_milliweight(60),
6315 Core::RightShift32 => Cost::from_milliweight(69),
6316 Core::RightShift64 => Cost::from_milliweight(68),
6317 Core::RightShift8 => Cost::from_milliweight(63),
6318 Core::RightShiftWith16 => Cost::from_milliweight(83),
6319 Core::RightShiftWith32 => Cost::from_milliweight(78),
6320 Core::RightShiftWith64 => Cost::from_milliweight(72),
6321 Core::RightShiftWith8 => Cost::from_milliweight(71),
6322 Core::Rightmost16_1 => Cost::from_milliweight(70),
6323 Core::Rightmost16_2 => Cost::from_milliweight(65),
6324 Core::Rightmost16_4 => Cost::from_milliweight(72),
6325 Core::Rightmost16_8 => Cost::from_milliweight(69),
6326 Core::Rightmost32_1 => Cost::from_milliweight(70),
6327 Core::Rightmost32_16 => Cost::from_milliweight(56),
6328 Core::Rightmost32_2 => Cost::from_milliweight(74),
6329 Core::Rightmost32_4 => Cost::from_milliweight(57),
6330 Core::Rightmost32_8 => Cost::from_milliweight(55),
6331 Core::Rightmost64_1 => Cost::from_milliweight(61),
6332 Core::Rightmost64_16 => Cost::from_milliweight(63),
6333 Core::Rightmost64_2 => Cost::from_milliweight(65),
6334 Core::Rightmost64_32 => Cost::from_milliweight(64),
6335 Core::Rightmost64_4 => Cost::from_milliweight(57),
6336 Core::Rightmost64_8 => Cost::from_milliweight(49),
6337 Core::Rightmost8_1 => Cost::from_milliweight(65),
6338 Core::Rightmost8_2 => Cost::from_milliweight(63),
6339 Core::Rightmost8_4 => Cost::from_milliweight(56),
6340 Core::ScalarAdd => Cost::from_milliweight(778),
6341 Core::ScalarInvert => Cost::from_milliweight(3178),
6342 Core::ScalarIsZero => Cost::from_milliweight(271),
6343 Core::ScalarMultiply => Cost::from_milliweight(793),
6344 Core::ScalarMultiplyLambda => Cost::from_milliweight(567),
6345 Core::ScalarNegate => Cost::from_milliweight(516),
6346 Core::ScalarNormalize => Cost::from_milliweight(500),
6347 Core::ScalarSquare => Cost::from_milliweight(571),
6348 Core::Scale => Cost::from_milliweight(73548),
6349 Core::Sha256Block => Cost::from_milliweight(765),
6350 Core::Sha256Ctx8Add1 => Cost::from_milliweight(664),
6351 Core::Sha256Ctx8Add128 => Cost::from_milliweight(1778),
6352 Core::Sha256Ctx8Add16 => Cost::from_milliweight(781),
6353 Core::Sha256Ctx8Add2 => Cost::from_milliweight(674),
6354 Core::Sha256Ctx8Add256 => Cost::from_milliweight(2894),
6355 Core::Sha256Ctx8Add32 => Cost::from_milliweight(928),
6356 Core::Sha256Ctx8Add4 => Cost::from_milliweight(656),
6357 Core::Sha256Ctx8Add512 => Cost::from_milliweight(5161),
6358 Core::Sha256Ctx8Add64 => Cost::from_milliweight(1220),
6359 Core::Sha256Ctx8Add8 => Cost::from_milliweight(694),
6360 Core::Sha256Ctx8AddBuffer511 => Cost::from_milliweight(5137),
6361 Core::Sha256Ctx8Finalize => Cost::from_milliweight(833),
6362 Core::Sha256Ctx8Init => Cost::from_milliweight(123),
6363 Core::Sha256Iv => Cost::from_milliweight(92),
6364 Core::Some1 => Cost::from_milliweight(60),
6365 Core::Some16 => Cost::from_milliweight(52),
6366 Core::Some32 => Cost::from_milliweight(49),
6367 Core::Some64 => Cost::from_milliweight(62),
6368 Core::Some8 => Cost::from_milliweight(57),
6369 Core::Subtract16 => Cost::from_milliweight(93),
6370 Core::Subtract32 => Cost::from_milliweight(87),
6371 Core::Subtract64 => Cost::from_milliweight(125),
6372 Core::Subtract8 => Cost::from_milliweight(96),
6373 Core::Swu => Cost::from_milliweight(32780),
6374 Core::TapdataInit => Cost::from_milliweight(1233),
6375 Core::Verify => Cost::from_milliweight(44),
6376 Core::Xor1 => Cost::from_milliweight(60),
6377 Core::Xor16 => Cost::from_milliweight(73),
6378 Core::Xor32 => Cost::from_milliweight(77),
6379 Core::Xor64 => Cost::from_milliweight(68),
6380 Core::Xor8 => Cost::from_milliweight(80),
6381 Core::XorXor1 => Cost::from_milliweight(50),
6382 Core::XorXor16 => Cost::from_milliweight(82),
6383 Core::XorXor32 => Cost::from_milliweight(82),
6384 Core::XorXor64 => Cost::from_milliweight(80),
6385 Core::XorXor8 => Cost::from_milliweight(86),
6386 }
6387 }
6388
6389 fn parse(s: &str) -> Result<Self, crate::Error> where Self: Sized {
6390 str::FromStr::from_str(s)
6391 }
6392}
6393
6394impl fmt::Display for Core {
6395 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6396 match self {
6397 Core::Add16 => f.write_str("add_16"),
6398 Core::Add32 => f.write_str("add_32"),
6399 Core::Add64 => f.write_str("add_64"),
6400 Core::Add8 => f.write_str("add_8"),
6401 Core::All16 => f.write_str("all_16"),
6402 Core::All32 => f.write_str("all_32"),
6403 Core::All64 => f.write_str("all_64"),
6404 Core::All8 => f.write_str("all_8"),
6405 Core::And1 => f.write_str("and_1"),
6406 Core::And16 => f.write_str("and_16"),
6407 Core::And32 => f.write_str("and_32"),
6408 Core::And64 => f.write_str("and_64"),
6409 Core::And8 => f.write_str("and_8"),
6410 Core::Bip0340Verify => f.write_str("bip_0340_verify"),
6411 Core::Ch1 => f.write_str("ch_1"),
6412 Core::Ch16 => f.write_str("ch_16"),
6413 Core::Ch32 => f.write_str("ch_32"),
6414 Core::Ch64 => f.write_str("ch_64"),
6415 Core::Ch8 => f.write_str("ch_8"),
6416 Core::CheckSigVerify => f.write_str("check_sig_verify"),
6417 Core::Complement1 => f.write_str("complement_1"),
6418 Core::Complement16 => f.write_str("complement_16"),
6419 Core::Complement32 => f.write_str("complement_32"),
6420 Core::Complement64 => f.write_str("complement_64"),
6421 Core::Complement8 => f.write_str("complement_8"),
6422 Core::Decompress => f.write_str("decompress"),
6423 Core::Decrement16 => f.write_str("decrement_16"),
6424 Core::Decrement32 => f.write_str("decrement_32"),
6425 Core::Decrement64 => f.write_str("decrement_64"),
6426 Core::Decrement8 => f.write_str("decrement_8"),
6427 Core::DivMod128_64 => f.write_str("div_mod_128_64"),
6428 Core::DivMod16 => f.write_str("div_mod_16"),
6429 Core::DivMod32 => f.write_str("div_mod_32"),
6430 Core::DivMod64 => f.write_str("div_mod_64"),
6431 Core::DivMod8 => f.write_str("div_mod_8"),
6432 Core::Divide16 => f.write_str("divide_16"),
6433 Core::Divide32 => f.write_str("divide_32"),
6434 Core::Divide64 => f.write_str("divide_64"),
6435 Core::Divide8 => f.write_str("divide_8"),
6436 Core::Divides16 => f.write_str("divides_16"),
6437 Core::Divides32 => f.write_str("divides_32"),
6438 Core::Divides64 => f.write_str("divides_64"),
6439 Core::Divides8 => f.write_str("divides_8"),
6440 Core::Eq1 => f.write_str("eq_1"),
6441 Core::Eq16 => f.write_str("eq_16"),
6442 Core::Eq256 => f.write_str("eq_256"),
6443 Core::Eq32 => f.write_str("eq_32"),
6444 Core::Eq64 => f.write_str("eq_64"),
6445 Core::Eq8 => f.write_str("eq_8"),
6446 Core::FeAdd => f.write_str("fe_add"),
6447 Core::FeInvert => f.write_str("fe_invert"),
6448 Core::FeIsOdd => f.write_str("fe_is_odd"),
6449 Core::FeIsZero => f.write_str("fe_is_zero"),
6450 Core::FeMultiply => f.write_str("fe_multiply"),
6451 Core::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
6452 Core::FeNegate => f.write_str("fe_negate"),
6453 Core::FeNormalize => f.write_str("fe_normalize"),
6454 Core::FeSquare => f.write_str("fe_square"),
6455 Core::FeSquareRoot => f.write_str("fe_square_root"),
6456 Core::FullAdd16 => f.write_str("full_add_16"),
6457 Core::FullAdd32 => f.write_str("full_add_32"),
6458 Core::FullAdd64 => f.write_str("full_add_64"),
6459 Core::FullAdd8 => f.write_str("full_add_8"),
6460 Core::FullDecrement16 => f.write_str("full_decrement_16"),
6461 Core::FullDecrement32 => f.write_str("full_decrement_32"),
6462 Core::FullDecrement64 => f.write_str("full_decrement_64"),
6463 Core::FullDecrement8 => f.write_str("full_decrement_8"),
6464 Core::FullIncrement16 => f.write_str("full_increment_16"),
6465 Core::FullIncrement32 => f.write_str("full_increment_32"),
6466 Core::FullIncrement64 => f.write_str("full_increment_64"),
6467 Core::FullIncrement8 => f.write_str("full_increment_8"),
6468 Core::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
6469 Core::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
6470 Core::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
6471 Core::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
6472 Core::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
6473 Core::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
6474 Core::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
6475 Core::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
6476 Core::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
6477 Core::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
6478 Core::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
6479 Core::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
6480 Core::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
6481 Core::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
6482 Core::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
6483 Core::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
6484 Core::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
6485 Core::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
6486 Core::FullMultiply16 => f.write_str("full_multiply_16"),
6487 Core::FullMultiply32 => f.write_str("full_multiply_32"),
6488 Core::FullMultiply64 => f.write_str("full_multiply_64"),
6489 Core::FullMultiply8 => f.write_str("full_multiply_8"),
6490 Core::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
6491 Core::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
6492 Core::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
6493 Core::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
6494 Core::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
6495 Core::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
6496 Core::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
6497 Core::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
6498 Core::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
6499 Core::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
6500 Core::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
6501 Core::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
6502 Core::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
6503 Core::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
6504 Core::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
6505 Core::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
6506 Core::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
6507 Core::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
6508 Core::FullSubtract16 => f.write_str("full_subtract_16"),
6509 Core::FullSubtract32 => f.write_str("full_subtract_32"),
6510 Core::FullSubtract64 => f.write_str("full_subtract_64"),
6511 Core::FullSubtract8 => f.write_str("full_subtract_8"),
6512 Core::GeIsOnCurve => f.write_str("ge_is_on_curve"),
6513 Core::GeNegate => f.write_str("ge_negate"),
6514 Core::GejAdd => f.write_str("gej_add"),
6515 Core::GejDouble => f.write_str("gej_double"),
6516 Core::GejEquiv => f.write_str("gej_equiv"),
6517 Core::GejGeAdd => f.write_str("gej_ge_add"),
6518 Core::GejGeAddEx => f.write_str("gej_ge_add_ex"),
6519 Core::GejGeEquiv => f.write_str("gej_ge_equiv"),
6520 Core::GejInfinity => f.write_str("gej_infinity"),
6521 Core::GejIsInfinity => f.write_str("gej_is_infinity"),
6522 Core::GejIsOnCurve => f.write_str("gej_is_on_curve"),
6523 Core::GejNegate => f.write_str("gej_negate"),
6524 Core::GejNormalize => f.write_str("gej_normalize"),
6525 Core::GejRescale => f.write_str("gej_rescale"),
6526 Core::GejXEquiv => f.write_str("gej_x_equiv"),
6527 Core::GejYIsOdd => f.write_str("gej_y_is_odd"),
6528 Core::Generate => f.write_str("generate"),
6529 Core::HashToCurve => f.write_str("hash_to_curve"),
6530 Core::High1 => f.write_str("high_1"),
6531 Core::High16 => f.write_str("high_16"),
6532 Core::High32 => f.write_str("high_32"),
6533 Core::High64 => f.write_str("high_64"),
6534 Core::High8 => f.write_str("high_8"),
6535 Core::Increment16 => f.write_str("increment_16"),
6536 Core::Increment32 => f.write_str("increment_32"),
6537 Core::Increment64 => f.write_str("increment_64"),
6538 Core::Increment8 => f.write_str("increment_8"),
6539 Core::IsOne16 => f.write_str("is_one_16"),
6540 Core::IsOne32 => f.write_str("is_one_32"),
6541 Core::IsOne64 => f.write_str("is_one_64"),
6542 Core::IsOne8 => f.write_str("is_one_8"),
6543 Core::IsZero16 => f.write_str("is_zero_16"),
6544 Core::IsZero32 => f.write_str("is_zero_32"),
6545 Core::IsZero64 => f.write_str("is_zero_64"),
6546 Core::IsZero8 => f.write_str("is_zero_8"),
6547 Core::Le16 => f.write_str("le_16"),
6548 Core::Le32 => f.write_str("le_32"),
6549 Core::Le64 => f.write_str("le_64"),
6550 Core::Le8 => f.write_str("le_8"),
6551 Core::LeftExtend16_32 => f.write_str("left_extend_16_32"),
6552 Core::LeftExtend16_64 => f.write_str("left_extend_16_64"),
6553 Core::LeftExtend1_16 => f.write_str("left_extend_1_16"),
6554 Core::LeftExtend1_32 => f.write_str("left_extend_1_32"),
6555 Core::LeftExtend1_64 => f.write_str("left_extend_1_64"),
6556 Core::LeftExtend1_8 => f.write_str("left_extend_1_8"),
6557 Core::LeftExtend32_64 => f.write_str("left_extend_32_64"),
6558 Core::LeftExtend8_16 => f.write_str("left_extend_8_16"),
6559 Core::LeftExtend8_32 => f.write_str("left_extend_8_32"),
6560 Core::LeftExtend8_64 => f.write_str("left_extend_8_64"),
6561 Core::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
6562 Core::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
6563 Core::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
6564 Core::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
6565 Core::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
6566 Core::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
6567 Core::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
6568 Core::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
6569 Core::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
6570 Core::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
6571 Core::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
6572 Core::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
6573 Core::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
6574 Core::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
6575 Core::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
6576 Core::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
6577 Core::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
6578 Core::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
6579 Core::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
6580 Core::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
6581 Core::LeftRotate16 => f.write_str("left_rotate_16"),
6582 Core::LeftRotate32 => f.write_str("left_rotate_32"),
6583 Core::LeftRotate64 => f.write_str("left_rotate_64"),
6584 Core::LeftRotate8 => f.write_str("left_rotate_8"),
6585 Core::LeftShift16 => f.write_str("left_shift_16"),
6586 Core::LeftShift32 => f.write_str("left_shift_32"),
6587 Core::LeftShift64 => f.write_str("left_shift_64"),
6588 Core::LeftShift8 => f.write_str("left_shift_8"),
6589 Core::LeftShiftWith16 => f.write_str("left_shift_with_16"),
6590 Core::LeftShiftWith32 => f.write_str("left_shift_with_32"),
6591 Core::LeftShiftWith64 => f.write_str("left_shift_with_64"),
6592 Core::LeftShiftWith8 => f.write_str("left_shift_with_8"),
6593 Core::Leftmost16_1 => f.write_str("leftmost_16_1"),
6594 Core::Leftmost16_2 => f.write_str("leftmost_16_2"),
6595 Core::Leftmost16_4 => f.write_str("leftmost_16_4"),
6596 Core::Leftmost16_8 => f.write_str("leftmost_16_8"),
6597 Core::Leftmost32_1 => f.write_str("leftmost_32_1"),
6598 Core::Leftmost32_16 => f.write_str("leftmost_32_16"),
6599 Core::Leftmost32_2 => f.write_str("leftmost_32_2"),
6600 Core::Leftmost32_4 => f.write_str("leftmost_32_4"),
6601 Core::Leftmost32_8 => f.write_str("leftmost_32_8"),
6602 Core::Leftmost64_1 => f.write_str("leftmost_64_1"),
6603 Core::Leftmost64_16 => f.write_str("leftmost_64_16"),
6604 Core::Leftmost64_2 => f.write_str("leftmost_64_2"),
6605 Core::Leftmost64_32 => f.write_str("leftmost_64_32"),
6606 Core::Leftmost64_4 => f.write_str("leftmost_64_4"),
6607 Core::Leftmost64_8 => f.write_str("leftmost_64_8"),
6608 Core::Leftmost8_1 => f.write_str("leftmost_8_1"),
6609 Core::Leftmost8_2 => f.write_str("leftmost_8_2"),
6610 Core::Leftmost8_4 => f.write_str("leftmost_8_4"),
6611 Core::LinearCombination1 => f.write_str("linear_combination_1"),
6612 Core::LinearVerify1 => f.write_str("linear_verify_1"),
6613 Core::Low1 => f.write_str("low_1"),
6614 Core::Low16 => f.write_str("low_16"),
6615 Core::Low32 => f.write_str("low_32"),
6616 Core::Low64 => f.write_str("low_64"),
6617 Core::Low8 => f.write_str("low_8"),
6618 Core::Lt16 => f.write_str("lt_16"),
6619 Core::Lt32 => f.write_str("lt_32"),
6620 Core::Lt64 => f.write_str("lt_64"),
6621 Core::Lt8 => f.write_str("lt_8"),
6622 Core::Maj1 => f.write_str("maj_1"),
6623 Core::Maj16 => f.write_str("maj_16"),
6624 Core::Maj32 => f.write_str("maj_32"),
6625 Core::Maj64 => f.write_str("maj_64"),
6626 Core::Maj8 => f.write_str("maj_8"),
6627 Core::Max16 => f.write_str("max_16"),
6628 Core::Max32 => f.write_str("max_32"),
6629 Core::Max64 => f.write_str("max_64"),
6630 Core::Max8 => f.write_str("max_8"),
6631 Core::Median16 => f.write_str("median_16"),
6632 Core::Median32 => f.write_str("median_32"),
6633 Core::Median64 => f.write_str("median_64"),
6634 Core::Median8 => f.write_str("median_8"),
6635 Core::Min16 => f.write_str("min_16"),
6636 Core::Min32 => f.write_str("min_32"),
6637 Core::Min64 => f.write_str("min_64"),
6638 Core::Min8 => f.write_str("min_8"),
6639 Core::Modulo16 => f.write_str("modulo_16"),
6640 Core::Modulo32 => f.write_str("modulo_32"),
6641 Core::Modulo64 => f.write_str("modulo_64"),
6642 Core::Modulo8 => f.write_str("modulo_8"),
6643 Core::Multiply16 => f.write_str("multiply_16"),
6644 Core::Multiply32 => f.write_str("multiply_32"),
6645 Core::Multiply64 => f.write_str("multiply_64"),
6646 Core::Multiply8 => f.write_str("multiply_8"),
6647 Core::Negate16 => f.write_str("negate_16"),
6648 Core::Negate32 => f.write_str("negate_32"),
6649 Core::Negate64 => f.write_str("negate_64"),
6650 Core::Negate8 => f.write_str("negate_8"),
6651 Core::One16 => f.write_str("one_16"),
6652 Core::One32 => f.write_str("one_32"),
6653 Core::One64 => f.write_str("one_64"),
6654 Core::One8 => f.write_str("one_8"),
6655 Core::Or1 => f.write_str("or_1"),
6656 Core::Or16 => f.write_str("or_16"),
6657 Core::Or32 => f.write_str("or_32"),
6658 Core::Or64 => f.write_str("or_64"),
6659 Core::Or8 => f.write_str("or_8"),
6660 Core::ParseLock => f.write_str("parse_lock"),
6661 Core::ParseSequence => f.write_str("parse_sequence"),
6662 Core::PointVerify1 => f.write_str("point_verify_1"),
6663 Core::RightExtend16_32 => f.write_str("right_extend_16_32"),
6664 Core::RightExtend16_64 => f.write_str("right_extend_16_64"),
6665 Core::RightExtend32_64 => f.write_str("right_extend_32_64"),
6666 Core::RightExtend8_16 => f.write_str("right_extend_8_16"),
6667 Core::RightExtend8_32 => f.write_str("right_extend_8_32"),
6668 Core::RightExtend8_64 => f.write_str("right_extend_8_64"),
6669 Core::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
6670 Core::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
6671 Core::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
6672 Core::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
6673 Core::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
6674 Core::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
6675 Core::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
6676 Core::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
6677 Core::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
6678 Core::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
6679 Core::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
6680 Core::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
6681 Core::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
6682 Core::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
6683 Core::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
6684 Core::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
6685 Core::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
6686 Core::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
6687 Core::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
6688 Core::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
6689 Core::RightRotate16 => f.write_str("right_rotate_16"),
6690 Core::RightRotate32 => f.write_str("right_rotate_32"),
6691 Core::RightRotate64 => f.write_str("right_rotate_64"),
6692 Core::RightRotate8 => f.write_str("right_rotate_8"),
6693 Core::RightShift16 => f.write_str("right_shift_16"),
6694 Core::RightShift32 => f.write_str("right_shift_32"),
6695 Core::RightShift64 => f.write_str("right_shift_64"),
6696 Core::RightShift8 => f.write_str("right_shift_8"),
6697 Core::RightShiftWith16 => f.write_str("right_shift_with_16"),
6698 Core::RightShiftWith32 => f.write_str("right_shift_with_32"),
6699 Core::RightShiftWith64 => f.write_str("right_shift_with_64"),
6700 Core::RightShiftWith8 => f.write_str("right_shift_with_8"),
6701 Core::Rightmost16_1 => f.write_str("rightmost_16_1"),
6702 Core::Rightmost16_2 => f.write_str("rightmost_16_2"),
6703 Core::Rightmost16_4 => f.write_str("rightmost_16_4"),
6704 Core::Rightmost16_8 => f.write_str("rightmost_16_8"),
6705 Core::Rightmost32_1 => f.write_str("rightmost_32_1"),
6706 Core::Rightmost32_16 => f.write_str("rightmost_32_16"),
6707 Core::Rightmost32_2 => f.write_str("rightmost_32_2"),
6708 Core::Rightmost32_4 => f.write_str("rightmost_32_4"),
6709 Core::Rightmost32_8 => f.write_str("rightmost_32_8"),
6710 Core::Rightmost64_1 => f.write_str("rightmost_64_1"),
6711 Core::Rightmost64_16 => f.write_str("rightmost_64_16"),
6712 Core::Rightmost64_2 => f.write_str("rightmost_64_2"),
6713 Core::Rightmost64_32 => f.write_str("rightmost_64_32"),
6714 Core::Rightmost64_4 => f.write_str("rightmost_64_4"),
6715 Core::Rightmost64_8 => f.write_str("rightmost_64_8"),
6716 Core::Rightmost8_1 => f.write_str("rightmost_8_1"),
6717 Core::Rightmost8_2 => f.write_str("rightmost_8_2"),
6718 Core::Rightmost8_4 => f.write_str("rightmost_8_4"),
6719 Core::ScalarAdd => f.write_str("scalar_add"),
6720 Core::ScalarInvert => f.write_str("scalar_invert"),
6721 Core::ScalarIsZero => f.write_str("scalar_is_zero"),
6722 Core::ScalarMultiply => f.write_str("scalar_multiply"),
6723 Core::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
6724 Core::ScalarNegate => f.write_str("scalar_negate"),
6725 Core::ScalarNormalize => f.write_str("scalar_normalize"),
6726 Core::ScalarSquare => f.write_str("scalar_square"),
6727 Core::Scale => f.write_str("scale"),
6728 Core::Sha256Block => f.write_str("sha_256_block"),
6729 Core::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
6730 Core::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
6731 Core::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
6732 Core::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
6733 Core::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
6734 Core::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
6735 Core::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
6736 Core::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
6737 Core::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
6738 Core::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
6739 Core::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
6740 Core::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
6741 Core::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
6742 Core::Sha256Iv => f.write_str("sha_256_iv"),
6743 Core::Some1 => f.write_str("some_1"),
6744 Core::Some16 => f.write_str("some_16"),
6745 Core::Some32 => f.write_str("some_32"),
6746 Core::Some64 => f.write_str("some_64"),
6747 Core::Some8 => f.write_str("some_8"),
6748 Core::Subtract16 => f.write_str("subtract_16"),
6749 Core::Subtract32 => f.write_str("subtract_32"),
6750 Core::Subtract64 => f.write_str("subtract_64"),
6751 Core::Subtract8 => f.write_str("subtract_8"),
6752 Core::Swu => f.write_str("swu"),
6753 Core::TapdataInit => f.write_str("tapdata_init"),
6754 Core::Verify => f.write_str("verify"),
6755 Core::Xor1 => f.write_str("xor_1"),
6756 Core::Xor16 => f.write_str("xor_16"),
6757 Core::Xor32 => f.write_str("xor_32"),
6758 Core::Xor64 => f.write_str("xor_64"),
6759 Core::Xor8 => f.write_str("xor_8"),
6760 Core::XorXor1 => f.write_str("xor_xor_1"),
6761 Core::XorXor16 => f.write_str("xor_xor_16"),
6762 Core::XorXor32 => f.write_str("xor_xor_32"),
6763 Core::XorXor64 => f.write_str("xor_xor_64"),
6764 Core::XorXor8 => f.write_str("xor_xor_8"),
6765 }
6766 }
6767}
6768
6769impl str::FromStr for Core {
6770 type Err = crate::Error;
6771
6772 fn from_str(s: &str) -> Result<Self, Self::Err> {
6773 match s {
6774 "add_16" => Ok(Core::Add16),
6775 "add_32" => Ok(Core::Add32),
6776 "add_64" => Ok(Core::Add64),
6777 "add_8" => Ok(Core::Add8),
6778 "all_16" => Ok(Core::All16),
6779 "all_32" => Ok(Core::All32),
6780 "all_64" => Ok(Core::All64),
6781 "all_8" => Ok(Core::All8),
6782 "and_1" => Ok(Core::And1),
6783 "and_16" => Ok(Core::And16),
6784 "and_32" => Ok(Core::And32),
6785 "and_64" => Ok(Core::And64),
6786 "and_8" => Ok(Core::And8),
6787 "bip_0340_verify" => Ok(Core::Bip0340Verify),
6788 "ch_1" => Ok(Core::Ch1),
6789 "ch_16" => Ok(Core::Ch16),
6790 "ch_32" => Ok(Core::Ch32),
6791 "ch_64" => Ok(Core::Ch64),
6792 "ch_8" => Ok(Core::Ch8),
6793 "check_sig_verify" => Ok(Core::CheckSigVerify),
6794 "complement_1" => Ok(Core::Complement1),
6795 "complement_16" => Ok(Core::Complement16),
6796 "complement_32" => Ok(Core::Complement32),
6797 "complement_64" => Ok(Core::Complement64),
6798 "complement_8" => Ok(Core::Complement8),
6799 "decompress" => Ok(Core::Decompress),
6800 "decrement_16" => Ok(Core::Decrement16),
6801 "decrement_32" => Ok(Core::Decrement32),
6802 "decrement_64" => Ok(Core::Decrement64),
6803 "decrement_8" => Ok(Core::Decrement8),
6804 "div_mod_128_64" => Ok(Core::DivMod128_64),
6805 "div_mod_16" => Ok(Core::DivMod16),
6806 "div_mod_32" => Ok(Core::DivMod32),
6807 "div_mod_64" => Ok(Core::DivMod64),
6808 "div_mod_8" => Ok(Core::DivMod8),
6809 "divide_16" => Ok(Core::Divide16),
6810 "divide_32" => Ok(Core::Divide32),
6811 "divide_64" => Ok(Core::Divide64),
6812 "divide_8" => Ok(Core::Divide8),
6813 "divides_16" => Ok(Core::Divides16),
6814 "divides_32" => Ok(Core::Divides32),
6815 "divides_64" => Ok(Core::Divides64),
6816 "divides_8" => Ok(Core::Divides8),
6817 "eq_1" => Ok(Core::Eq1),
6818 "eq_16" => Ok(Core::Eq16),
6819 "eq_256" => Ok(Core::Eq256),
6820 "eq_32" => Ok(Core::Eq32),
6821 "eq_64" => Ok(Core::Eq64),
6822 "eq_8" => Ok(Core::Eq8),
6823 "fe_add" => Ok(Core::FeAdd),
6824 "fe_invert" => Ok(Core::FeInvert),
6825 "fe_is_odd" => Ok(Core::FeIsOdd),
6826 "fe_is_zero" => Ok(Core::FeIsZero),
6827 "fe_multiply" => Ok(Core::FeMultiply),
6828 "fe_multiply_beta" => Ok(Core::FeMultiplyBeta),
6829 "fe_negate" => Ok(Core::FeNegate),
6830 "fe_normalize" => Ok(Core::FeNormalize),
6831 "fe_square" => Ok(Core::FeSquare),
6832 "fe_square_root" => Ok(Core::FeSquareRoot),
6833 "full_add_16" => Ok(Core::FullAdd16),
6834 "full_add_32" => Ok(Core::FullAdd32),
6835 "full_add_64" => Ok(Core::FullAdd64),
6836 "full_add_8" => Ok(Core::FullAdd8),
6837 "full_decrement_16" => Ok(Core::FullDecrement16),
6838 "full_decrement_32" => Ok(Core::FullDecrement32),
6839 "full_decrement_64" => Ok(Core::FullDecrement64),
6840 "full_decrement_8" => Ok(Core::FullDecrement8),
6841 "full_increment_16" => Ok(Core::FullIncrement16),
6842 "full_increment_32" => Ok(Core::FullIncrement32),
6843 "full_increment_64" => Ok(Core::FullIncrement64),
6844 "full_increment_8" => Ok(Core::FullIncrement8),
6845 "full_left_shift_16_1" => Ok(Core::FullLeftShift16_1),
6846 "full_left_shift_16_2" => Ok(Core::FullLeftShift16_2),
6847 "full_left_shift_16_4" => Ok(Core::FullLeftShift16_4),
6848 "full_left_shift_16_8" => Ok(Core::FullLeftShift16_8),
6849 "full_left_shift_32_1" => Ok(Core::FullLeftShift32_1),
6850 "full_left_shift_32_16" => Ok(Core::FullLeftShift32_16),
6851 "full_left_shift_32_2" => Ok(Core::FullLeftShift32_2),
6852 "full_left_shift_32_4" => Ok(Core::FullLeftShift32_4),
6853 "full_left_shift_32_8" => Ok(Core::FullLeftShift32_8),
6854 "full_left_shift_64_1" => Ok(Core::FullLeftShift64_1),
6855 "full_left_shift_64_16" => Ok(Core::FullLeftShift64_16),
6856 "full_left_shift_64_2" => Ok(Core::FullLeftShift64_2),
6857 "full_left_shift_64_32" => Ok(Core::FullLeftShift64_32),
6858 "full_left_shift_64_4" => Ok(Core::FullLeftShift64_4),
6859 "full_left_shift_64_8" => Ok(Core::FullLeftShift64_8),
6860 "full_left_shift_8_1" => Ok(Core::FullLeftShift8_1),
6861 "full_left_shift_8_2" => Ok(Core::FullLeftShift8_2),
6862 "full_left_shift_8_4" => Ok(Core::FullLeftShift8_4),
6863 "full_multiply_16" => Ok(Core::FullMultiply16),
6864 "full_multiply_32" => Ok(Core::FullMultiply32),
6865 "full_multiply_64" => Ok(Core::FullMultiply64),
6866 "full_multiply_8" => Ok(Core::FullMultiply8),
6867 "full_right_shift_16_1" => Ok(Core::FullRightShift16_1),
6868 "full_right_shift_16_2" => Ok(Core::FullRightShift16_2),
6869 "full_right_shift_16_4" => Ok(Core::FullRightShift16_4),
6870 "full_right_shift_16_8" => Ok(Core::FullRightShift16_8),
6871 "full_right_shift_32_1" => Ok(Core::FullRightShift32_1),
6872 "full_right_shift_32_16" => Ok(Core::FullRightShift32_16),
6873 "full_right_shift_32_2" => Ok(Core::FullRightShift32_2),
6874 "full_right_shift_32_4" => Ok(Core::FullRightShift32_4),
6875 "full_right_shift_32_8" => Ok(Core::FullRightShift32_8),
6876 "full_right_shift_64_1" => Ok(Core::FullRightShift64_1),
6877 "full_right_shift_64_16" => Ok(Core::FullRightShift64_16),
6878 "full_right_shift_64_2" => Ok(Core::FullRightShift64_2),
6879 "full_right_shift_64_32" => Ok(Core::FullRightShift64_32),
6880 "full_right_shift_64_4" => Ok(Core::FullRightShift64_4),
6881 "full_right_shift_64_8" => Ok(Core::FullRightShift64_8),
6882 "full_right_shift_8_1" => Ok(Core::FullRightShift8_1),
6883 "full_right_shift_8_2" => Ok(Core::FullRightShift8_2),
6884 "full_right_shift_8_4" => Ok(Core::FullRightShift8_4),
6885 "full_subtract_16" => Ok(Core::FullSubtract16),
6886 "full_subtract_32" => Ok(Core::FullSubtract32),
6887 "full_subtract_64" => Ok(Core::FullSubtract64),
6888 "full_subtract_8" => Ok(Core::FullSubtract8),
6889 "ge_is_on_curve" => Ok(Core::GeIsOnCurve),
6890 "ge_negate" => Ok(Core::GeNegate),
6891 "gej_add" => Ok(Core::GejAdd),
6892 "gej_double" => Ok(Core::GejDouble),
6893 "gej_equiv" => Ok(Core::GejEquiv),
6894 "gej_ge_add" => Ok(Core::GejGeAdd),
6895 "gej_ge_add_ex" => Ok(Core::GejGeAddEx),
6896 "gej_ge_equiv" => Ok(Core::GejGeEquiv),
6897 "gej_infinity" => Ok(Core::GejInfinity),
6898 "gej_is_infinity" => Ok(Core::GejIsInfinity),
6899 "gej_is_on_curve" => Ok(Core::GejIsOnCurve),
6900 "gej_negate" => Ok(Core::GejNegate),
6901 "gej_normalize" => Ok(Core::GejNormalize),
6902 "gej_rescale" => Ok(Core::GejRescale),
6903 "gej_x_equiv" => Ok(Core::GejXEquiv),
6904 "gej_y_is_odd" => Ok(Core::GejYIsOdd),
6905 "generate" => Ok(Core::Generate),
6906 "hash_to_curve" => Ok(Core::HashToCurve),
6907 "high_1" => Ok(Core::High1),
6908 "high_16" => Ok(Core::High16),
6909 "high_32" => Ok(Core::High32),
6910 "high_64" => Ok(Core::High64),
6911 "high_8" => Ok(Core::High8),
6912 "increment_16" => Ok(Core::Increment16),
6913 "increment_32" => Ok(Core::Increment32),
6914 "increment_64" => Ok(Core::Increment64),
6915 "increment_8" => Ok(Core::Increment8),
6916 "is_one_16" => Ok(Core::IsOne16),
6917 "is_one_32" => Ok(Core::IsOne32),
6918 "is_one_64" => Ok(Core::IsOne64),
6919 "is_one_8" => Ok(Core::IsOne8),
6920 "is_zero_16" => Ok(Core::IsZero16),
6921 "is_zero_32" => Ok(Core::IsZero32),
6922 "is_zero_64" => Ok(Core::IsZero64),
6923 "is_zero_8" => Ok(Core::IsZero8),
6924 "le_16" => Ok(Core::Le16),
6925 "le_32" => Ok(Core::Le32),
6926 "le_64" => Ok(Core::Le64),
6927 "le_8" => Ok(Core::Le8),
6928 "left_extend_16_32" => Ok(Core::LeftExtend16_32),
6929 "left_extend_16_64" => Ok(Core::LeftExtend16_64),
6930 "left_extend_1_16" => Ok(Core::LeftExtend1_16),
6931 "left_extend_1_32" => Ok(Core::LeftExtend1_32),
6932 "left_extend_1_64" => Ok(Core::LeftExtend1_64),
6933 "left_extend_1_8" => Ok(Core::LeftExtend1_8),
6934 "left_extend_32_64" => Ok(Core::LeftExtend32_64),
6935 "left_extend_8_16" => Ok(Core::LeftExtend8_16),
6936 "left_extend_8_32" => Ok(Core::LeftExtend8_32),
6937 "left_extend_8_64" => Ok(Core::LeftExtend8_64),
6938 "left_pad_high_16_32" => Ok(Core::LeftPadHigh16_32),
6939 "left_pad_high_16_64" => Ok(Core::LeftPadHigh16_64),
6940 "left_pad_high_1_16" => Ok(Core::LeftPadHigh1_16),
6941 "left_pad_high_1_32" => Ok(Core::LeftPadHigh1_32),
6942 "left_pad_high_1_64" => Ok(Core::LeftPadHigh1_64),
6943 "left_pad_high_1_8" => Ok(Core::LeftPadHigh1_8),
6944 "left_pad_high_32_64" => Ok(Core::LeftPadHigh32_64),
6945 "left_pad_high_8_16" => Ok(Core::LeftPadHigh8_16),
6946 "left_pad_high_8_32" => Ok(Core::LeftPadHigh8_32),
6947 "left_pad_high_8_64" => Ok(Core::LeftPadHigh8_64),
6948 "left_pad_low_16_32" => Ok(Core::LeftPadLow16_32),
6949 "left_pad_low_16_64" => Ok(Core::LeftPadLow16_64),
6950 "left_pad_low_1_16" => Ok(Core::LeftPadLow1_16),
6951 "left_pad_low_1_32" => Ok(Core::LeftPadLow1_32),
6952 "left_pad_low_1_64" => Ok(Core::LeftPadLow1_64),
6953 "left_pad_low_1_8" => Ok(Core::LeftPadLow1_8),
6954 "left_pad_low_32_64" => Ok(Core::LeftPadLow32_64),
6955 "left_pad_low_8_16" => Ok(Core::LeftPadLow8_16),
6956 "left_pad_low_8_32" => Ok(Core::LeftPadLow8_32),
6957 "left_pad_low_8_64" => Ok(Core::LeftPadLow8_64),
6958 "left_rotate_16" => Ok(Core::LeftRotate16),
6959 "left_rotate_32" => Ok(Core::LeftRotate32),
6960 "left_rotate_64" => Ok(Core::LeftRotate64),
6961 "left_rotate_8" => Ok(Core::LeftRotate8),
6962 "left_shift_16" => Ok(Core::LeftShift16),
6963 "left_shift_32" => Ok(Core::LeftShift32),
6964 "left_shift_64" => Ok(Core::LeftShift64),
6965 "left_shift_8" => Ok(Core::LeftShift8),
6966 "left_shift_with_16" => Ok(Core::LeftShiftWith16),
6967 "left_shift_with_32" => Ok(Core::LeftShiftWith32),
6968 "left_shift_with_64" => Ok(Core::LeftShiftWith64),
6969 "left_shift_with_8" => Ok(Core::LeftShiftWith8),
6970 "leftmost_16_1" => Ok(Core::Leftmost16_1),
6971 "leftmost_16_2" => Ok(Core::Leftmost16_2),
6972 "leftmost_16_4" => Ok(Core::Leftmost16_4),
6973 "leftmost_16_8" => Ok(Core::Leftmost16_8),
6974 "leftmost_32_1" => Ok(Core::Leftmost32_1),
6975 "leftmost_32_16" => Ok(Core::Leftmost32_16),
6976 "leftmost_32_2" => Ok(Core::Leftmost32_2),
6977 "leftmost_32_4" => Ok(Core::Leftmost32_4),
6978 "leftmost_32_8" => Ok(Core::Leftmost32_8),
6979 "leftmost_64_1" => Ok(Core::Leftmost64_1),
6980 "leftmost_64_16" => Ok(Core::Leftmost64_16),
6981 "leftmost_64_2" => Ok(Core::Leftmost64_2),
6982 "leftmost_64_32" => Ok(Core::Leftmost64_32),
6983 "leftmost_64_4" => Ok(Core::Leftmost64_4),
6984 "leftmost_64_8" => Ok(Core::Leftmost64_8),
6985 "leftmost_8_1" => Ok(Core::Leftmost8_1),
6986 "leftmost_8_2" => Ok(Core::Leftmost8_2),
6987 "leftmost_8_4" => Ok(Core::Leftmost8_4),
6988 "linear_combination_1" => Ok(Core::LinearCombination1),
6989 "linear_verify_1" => Ok(Core::LinearVerify1),
6990 "low_1" => Ok(Core::Low1),
6991 "low_16" => Ok(Core::Low16),
6992 "low_32" => Ok(Core::Low32),
6993 "low_64" => Ok(Core::Low64),
6994 "low_8" => Ok(Core::Low8),
6995 "lt_16" => Ok(Core::Lt16),
6996 "lt_32" => Ok(Core::Lt32),
6997 "lt_64" => Ok(Core::Lt64),
6998 "lt_8" => Ok(Core::Lt8),
6999 "maj_1" => Ok(Core::Maj1),
7000 "maj_16" => Ok(Core::Maj16),
7001 "maj_32" => Ok(Core::Maj32),
7002 "maj_64" => Ok(Core::Maj64),
7003 "maj_8" => Ok(Core::Maj8),
7004 "max_16" => Ok(Core::Max16),
7005 "max_32" => Ok(Core::Max32),
7006 "max_64" => Ok(Core::Max64),
7007 "max_8" => Ok(Core::Max8),
7008 "median_16" => Ok(Core::Median16),
7009 "median_32" => Ok(Core::Median32),
7010 "median_64" => Ok(Core::Median64),
7011 "median_8" => Ok(Core::Median8),
7012 "min_16" => Ok(Core::Min16),
7013 "min_32" => Ok(Core::Min32),
7014 "min_64" => Ok(Core::Min64),
7015 "min_8" => Ok(Core::Min8),
7016 "modulo_16" => Ok(Core::Modulo16),
7017 "modulo_32" => Ok(Core::Modulo32),
7018 "modulo_64" => Ok(Core::Modulo64),
7019 "modulo_8" => Ok(Core::Modulo8),
7020 "multiply_16" => Ok(Core::Multiply16),
7021 "multiply_32" => Ok(Core::Multiply32),
7022 "multiply_64" => Ok(Core::Multiply64),
7023 "multiply_8" => Ok(Core::Multiply8),
7024 "negate_16" => Ok(Core::Negate16),
7025 "negate_32" => Ok(Core::Negate32),
7026 "negate_64" => Ok(Core::Negate64),
7027 "negate_8" => Ok(Core::Negate8),
7028 "one_16" => Ok(Core::One16),
7029 "one_32" => Ok(Core::One32),
7030 "one_64" => Ok(Core::One64),
7031 "one_8" => Ok(Core::One8),
7032 "or_1" => Ok(Core::Or1),
7033 "or_16" => Ok(Core::Or16),
7034 "or_32" => Ok(Core::Or32),
7035 "or_64" => Ok(Core::Or64),
7036 "or_8" => Ok(Core::Or8),
7037 "parse_lock" => Ok(Core::ParseLock),
7038 "parse_sequence" => Ok(Core::ParseSequence),
7039 "point_verify_1" => Ok(Core::PointVerify1),
7040 "right_extend_16_32" => Ok(Core::RightExtend16_32),
7041 "right_extend_16_64" => Ok(Core::RightExtend16_64),
7042 "right_extend_32_64" => Ok(Core::RightExtend32_64),
7043 "right_extend_8_16" => Ok(Core::RightExtend8_16),
7044 "right_extend_8_32" => Ok(Core::RightExtend8_32),
7045 "right_extend_8_64" => Ok(Core::RightExtend8_64),
7046 "right_pad_high_16_32" => Ok(Core::RightPadHigh16_32),
7047 "right_pad_high_16_64" => Ok(Core::RightPadHigh16_64),
7048 "right_pad_high_1_16" => Ok(Core::RightPadHigh1_16),
7049 "right_pad_high_1_32" => Ok(Core::RightPadHigh1_32),
7050 "right_pad_high_1_64" => Ok(Core::RightPadHigh1_64),
7051 "right_pad_high_1_8" => Ok(Core::RightPadHigh1_8),
7052 "right_pad_high_32_64" => Ok(Core::RightPadHigh32_64),
7053 "right_pad_high_8_16" => Ok(Core::RightPadHigh8_16),
7054 "right_pad_high_8_32" => Ok(Core::RightPadHigh8_32),
7055 "right_pad_high_8_64" => Ok(Core::RightPadHigh8_64),
7056 "right_pad_low_16_32" => Ok(Core::RightPadLow16_32),
7057 "right_pad_low_16_64" => Ok(Core::RightPadLow16_64),
7058 "right_pad_low_1_16" => Ok(Core::RightPadLow1_16),
7059 "right_pad_low_1_32" => Ok(Core::RightPadLow1_32),
7060 "right_pad_low_1_64" => Ok(Core::RightPadLow1_64),
7061 "right_pad_low_1_8" => Ok(Core::RightPadLow1_8),
7062 "right_pad_low_32_64" => Ok(Core::RightPadLow32_64),
7063 "right_pad_low_8_16" => Ok(Core::RightPadLow8_16),
7064 "right_pad_low_8_32" => Ok(Core::RightPadLow8_32),
7065 "right_pad_low_8_64" => Ok(Core::RightPadLow8_64),
7066 "right_rotate_16" => Ok(Core::RightRotate16),
7067 "right_rotate_32" => Ok(Core::RightRotate32),
7068 "right_rotate_64" => Ok(Core::RightRotate64),
7069 "right_rotate_8" => Ok(Core::RightRotate8),
7070 "right_shift_16" => Ok(Core::RightShift16),
7071 "right_shift_32" => Ok(Core::RightShift32),
7072 "right_shift_64" => Ok(Core::RightShift64),
7073 "right_shift_8" => Ok(Core::RightShift8),
7074 "right_shift_with_16" => Ok(Core::RightShiftWith16),
7075 "right_shift_with_32" => Ok(Core::RightShiftWith32),
7076 "right_shift_with_64" => Ok(Core::RightShiftWith64),
7077 "right_shift_with_8" => Ok(Core::RightShiftWith8),
7078 "rightmost_16_1" => Ok(Core::Rightmost16_1),
7079 "rightmost_16_2" => Ok(Core::Rightmost16_2),
7080 "rightmost_16_4" => Ok(Core::Rightmost16_4),
7081 "rightmost_16_8" => Ok(Core::Rightmost16_8),
7082 "rightmost_32_1" => Ok(Core::Rightmost32_1),
7083 "rightmost_32_16" => Ok(Core::Rightmost32_16),
7084 "rightmost_32_2" => Ok(Core::Rightmost32_2),
7085 "rightmost_32_4" => Ok(Core::Rightmost32_4),
7086 "rightmost_32_8" => Ok(Core::Rightmost32_8),
7087 "rightmost_64_1" => Ok(Core::Rightmost64_1),
7088 "rightmost_64_16" => Ok(Core::Rightmost64_16),
7089 "rightmost_64_2" => Ok(Core::Rightmost64_2),
7090 "rightmost_64_32" => Ok(Core::Rightmost64_32),
7091 "rightmost_64_4" => Ok(Core::Rightmost64_4),
7092 "rightmost_64_8" => Ok(Core::Rightmost64_8),
7093 "rightmost_8_1" => Ok(Core::Rightmost8_1),
7094 "rightmost_8_2" => Ok(Core::Rightmost8_2),
7095 "rightmost_8_4" => Ok(Core::Rightmost8_4),
7096 "scalar_add" => Ok(Core::ScalarAdd),
7097 "scalar_invert" => Ok(Core::ScalarInvert),
7098 "scalar_is_zero" => Ok(Core::ScalarIsZero),
7099 "scalar_multiply" => Ok(Core::ScalarMultiply),
7100 "scalar_multiply_lambda" => Ok(Core::ScalarMultiplyLambda),
7101 "scalar_negate" => Ok(Core::ScalarNegate),
7102 "scalar_normalize" => Ok(Core::ScalarNormalize),
7103 "scalar_square" => Ok(Core::ScalarSquare),
7104 "scale" => Ok(Core::Scale),
7105 "sha_256_block" => Ok(Core::Sha256Block),
7106 "sha_256_ctx_8_add_1" => Ok(Core::Sha256Ctx8Add1),
7107 "sha_256_ctx_8_add_128" => Ok(Core::Sha256Ctx8Add128),
7108 "sha_256_ctx_8_add_16" => Ok(Core::Sha256Ctx8Add16),
7109 "sha_256_ctx_8_add_2" => Ok(Core::Sha256Ctx8Add2),
7110 "sha_256_ctx_8_add_256" => Ok(Core::Sha256Ctx8Add256),
7111 "sha_256_ctx_8_add_32" => Ok(Core::Sha256Ctx8Add32),
7112 "sha_256_ctx_8_add_4" => Ok(Core::Sha256Ctx8Add4),
7113 "sha_256_ctx_8_add_512" => Ok(Core::Sha256Ctx8Add512),
7114 "sha_256_ctx_8_add_64" => Ok(Core::Sha256Ctx8Add64),
7115 "sha_256_ctx_8_add_8" => Ok(Core::Sha256Ctx8Add8),
7116 "sha_256_ctx_8_add_buffer_511" => Ok(Core::Sha256Ctx8AddBuffer511),
7117 "sha_256_ctx_8_finalize" => Ok(Core::Sha256Ctx8Finalize),
7118 "sha_256_ctx_8_init" => Ok(Core::Sha256Ctx8Init),
7119 "sha_256_iv" => Ok(Core::Sha256Iv),
7120 "some_1" => Ok(Core::Some1),
7121 "some_16" => Ok(Core::Some16),
7122 "some_32" => Ok(Core::Some32),
7123 "some_64" => Ok(Core::Some64),
7124 "some_8" => Ok(Core::Some8),
7125 "subtract_16" => Ok(Core::Subtract16),
7126 "subtract_32" => Ok(Core::Subtract32),
7127 "subtract_64" => Ok(Core::Subtract64),
7128 "subtract_8" => Ok(Core::Subtract8),
7129 "swu" => Ok(Core::Swu),
7130 "tapdata_init" => Ok(Core::TapdataInit),
7131 "verify" => Ok(Core::Verify),
7132 "xor_1" => Ok(Core::Xor1),
7133 "xor_16" => Ok(Core::Xor16),
7134 "xor_32" => Ok(Core::Xor32),
7135 "xor_64" => Ok(Core::Xor64),
7136 "xor_8" => Ok(Core::Xor8),
7137 "xor_xor_1" => Ok(Core::XorXor1),
7138 "xor_xor_16" => Ok(Core::XorXor16),
7139 "xor_xor_32" => Ok(Core::XorXor32),
7140 "xor_xor_64" => Ok(Core::XorXor64),
7141 "xor_xor_8" => Ok(Core::XorXor8),
7142 x => Err(crate::Error::InvalidJetName(x.to_owned())),
7143 }
7144 }
7145}
7146
7147pub(crate) fn c_jet_ptr(jet: &Core) -> fn(&mut CFrameItem, CFrameItem, &()) -> bool {
7148 match jet {
7149 Core::Add16 => simplicity_sys::c_jets::jets_wrapper::add_16,
7150 Core::Add32 => simplicity_sys::c_jets::jets_wrapper::add_32,
7151 Core::Add64 => simplicity_sys::c_jets::jets_wrapper::add_64,
7152 Core::Add8 => simplicity_sys::c_jets::jets_wrapper::add_8,
7153 Core::All16 => simplicity_sys::c_jets::jets_wrapper::all_16,
7154 Core::All32 => simplicity_sys::c_jets::jets_wrapper::all_32,
7155 Core::All64 => simplicity_sys::c_jets::jets_wrapper::all_64,
7156 Core::All8 => simplicity_sys::c_jets::jets_wrapper::all_8,
7157 Core::And1 => simplicity_sys::c_jets::jets_wrapper::and_1,
7158 Core::And16 => simplicity_sys::c_jets::jets_wrapper::and_16,
7159 Core::And32 => simplicity_sys::c_jets::jets_wrapper::and_32,
7160 Core::And64 => simplicity_sys::c_jets::jets_wrapper::and_64,
7161 Core::And8 => simplicity_sys::c_jets::jets_wrapper::and_8,
7162 Core::Bip0340Verify => simplicity_sys::c_jets::jets_wrapper::bip_0340_verify,
7163 Core::Ch1 => simplicity_sys::c_jets::jets_wrapper::ch_1,
7164 Core::Ch16 => simplicity_sys::c_jets::jets_wrapper::ch_16,
7165 Core::Ch32 => simplicity_sys::c_jets::jets_wrapper::ch_32,
7166 Core::Ch64 => simplicity_sys::c_jets::jets_wrapper::ch_64,
7167 Core::Ch8 => simplicity_sys::c_jets::jets_wrapper::ch_8,
7168 Core::CheckSigVerify => simplicity_sys::c_jets::jets_wrapper::check_sig_verify,
7169 Core::Complement1 => simplicity_sys::c_jets::jets_wrapper::complement_1,
7170 Core::Complement16 => simplicity_sys::c_jets::jets_wrapper::complement_16,
7171 Core::Complement32 => simplicity_sys::c_jets::jets_wrapper::complement_32,
7172 Core::Complement64 => simplicity_sys::c_jets::jets_wrapper::complement_64,
7173 Core::Complement8 => simplicity_sys::c_jets::jets_wrapper::complement_8,
7174 Core::Decompress => simplicity_sys::c_jets::jets_wrapper::decompress,
7175 Core::Decrement16 => simplicity_sys::c_jets::jets_wrapper::decrement_16,
7176 Core::Decrement32 => simplicity_sys::c_jets::jets_wrapper::decrement_32,
7177 Core::Decrement64 => simplicity_sys::c_jets::jets_wrapper::decrement_64,
7178 Core::Decrement8 => simplicity_sys::c_jets::jets_wrapper::decrement_8,
7179 Core::DivMod128_64 => simplicity_sys::c_jets::jets_wrapper::div_mod_128_64,
7180 Core::DivMod16 => simplicity_sys::c_jets::jets_wrapper::div_mod_16,
7181 Core::DivMod32 => simplicity_sys::c_jets::jets_wrapper::div_mod_32,
7182 Core::DivMod64 => simplicity_sys::c_jets::jets_wrapper::div_mod_64,
7183 Core::DivMod8 => simplicity_sys::c_jets::jets_wrapper::div_mod_8,
7184 Core::Divide16 => simplicity_sys::c_jets::jets_wrapper::divide_16,
7185 Core::Divide32 => simplicity_sys::c_jets::jets_wrapper::divide_32,
7186 Core::Divide64 => simplicity_sys::c_jets::jets_wrapper::divide_64,
7187 Core::Divide8 => simplicity_sys::c_jets::jets_wrapper::divide_8,
7188 Core::Divides16 => simplicity_sys::c_jets::jets_wrapper::divides_16,
7189 Core::Divides32 => simplicity_sys::c_jets::jets_wrapper::divides_32,
7190 Core::Divides64 => simplicity_sys::c_jets::jets_wrapper::divides_64,
7191 Core::Divides8 => simplicity_sys::c_jets::jets_wrapper::divides_8,
7192 Core::Eq1 => simplicity_sys::c_jets::jets_wrapper::eq_1,
7193 Core::Eq16 => simplicity_sys::c_jets::jets_wrapper::eq_16,
7194 Core::Eq256 => simplicity_sys::c_jets::jets_wrapper::eq_256,
7195 Core::Eq32 => simplicity_sys::c_jets::jets_wrapper::eq_32,
7196 Core::Eq64 => simplicity_sys::c_jets::jets_wrapper::eq_64,
7197 Core::Eq8 => simplicity_sys::c_jets::jets_wrapper::eq_8,
7198 Core::FeAdd => simplicity_sys::c_jets::jets_wrapper::fe_add,
7199 Core::FeInvert => simplicity_sys::c_jets::jets_wrapper::fe_invert,
7200 Core::FeIsOdd => simplicity_sys::c_jets::jets_wrapper::fe_is_odd,
7201 Core::FeIsZero => simplicity_sys::c_jets::jets_wrapper::fe_is_zero,
7202 Core::FeMultiply => simplicity_sys::c_jets::jets_wrapper::fe_multiply,
7203 Core::FeMultiplyBeta => simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta,
7204 Core::FeNegate => simplicity_sys::c_jets::jets_wrapper::fe_negate,
7205 Core::FeNormalize => simplicity_sys::c_jets::jets_wrapper::fe_normalize,
7206 Core::FeSquare => simplicity_sys::c_jets::jets_wrapper::fe_square,
7207 Core::FeSquareRoot => simplicity_sys::c_jets::jets_wrapper::fe_square_root,
7208 Core::FullAdd16 => simplicity_sys::c_jets::jets_wrapper::full_add_16,
7209 Core::FullAdd32 => simplicity_sys::c_jets::jets_wrapper::full_add_32,
7210 Core::FullAdd64 => simplicity_sys::c_jets::jets_wrapper::full_add_64,
7211 Core::FullAdd8 => simplicity_sys::c_jets::jets_wrapper::full_add_8,
7212 Core::FullDecrement16 => simplicity_sys::c_jets::jets_wrapper::full_decrement_16,
7213 Core::FullDecrement32 => simplicity_sys::c_jets::jets_wrapper::full_decrement_32,
7214 Core::FullDecrement64 => simplicity_sys::c_jets::jets_wrapper::full_decrement_64,
7215 Core::FullDecrement8 => simplicity_sys::c_jets::jets_wrapper::full_decrement_8,
7216 Core::FullIncrement16 => simplicity_sys::c_jets::jets_wrapper::full_increment_16,
7217 Core::FullIncrement32 => simplicity_sys::c_jets::jets_wrapper::full_increment_32,
7218 Core::FullIncrement64 => simplicity_sys::c_jets::jets_wrapper::full_increment_64,
7219 Core::FullIncrement8 => simplicity_sys::c_jets::jets_wrapper::full_increment_8,
7220 Core::FullLeftShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1,
7221 Core::FullLeftShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2,
7222 Core::FullLeftShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4,
7223 Core::FullLeftShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8,
7224 Core::FullLeftShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1,
7225 Core::FullLeftShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16,
7226 Core::FullLeftShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2,
7227 Core::FullLeftShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4,
7228 Core::FullLeftShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8,
7229 Core::FullLeftShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1,
7230 Core::FullLeftShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16,
7231 Core::FullLeftShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2,
7232 Core::FullLeftShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32,
7233 Core::FullLeftShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4,
7234 Core::FullLeftShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8,
7235 Core::FullLeftShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1,
7236 Core::FullLeftShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2,
7237 Core::FullLeftShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4,
7238 Core::FullMultiply16 => simplicity_sys::c_jets::jets_wrapper::full_multiply_16,
7239 Core::FullMultiply32 => simplicity_sys::c_jets::jets_wrapper::full_multiply_32,
7240 Core::FullMultiply64 => simplicity_sys::c_jets::jets_wrapper::full_multiply_64,
7241 Core::FullMultiply8 => simplicity_sys::c_jets::jets_wrapper::full_multiply_8,
7242 Core::FullRightShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1,
7243 Core::FullRightShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2,
7244 Core::FullRightShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4,
7245 Core::FullRightShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8,
7246 Core::FullRightShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1,
7247 Core::FullRightShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16,
7248 Core::FullRightShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2,
7249 Core::FullRightShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4,
7250 Core::FullRightShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8,
7251 Core::FullRightShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1,
7252 Core::FullRightShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16,
7253 Core::FullRightShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2,
7254 Core::FullRightShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32,
7255 Core::FullRightShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4,
7256 Core::FullRightShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8,
7257 Core::FullRightShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1,
7258 Core::FullRightShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2,
7259 Core::FullRightShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4,
7260 Core::FullSubtract16 => simplicity_sys::c_jets::jets_wrapper::full_subtract_16,
7261 Core::FullSubtract32 => simplicity_sys::c_jets::jets_wrapper::full_subtract_32,
7262 Core::FullSubtract64 => simplicity_sys::c_jets::jets_wrapper::full_subtract_64,
7263 Core::FullSubtract8 => simplicity_sys::c_jets::jets_wrapper::full_subtract_8,
7264 Core::GeIsOnCurve => simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve,
7265 Core::GeNegate => simplicity_sys::c_jets::jets_wrapper::ge_negate,
7266 Core::GejAdd => simplicity_sys::c_jets::jets_wrapper::gej_add,
7267 Core::GejDouble => simplicity_sys::c_jets::jets_wrapper::gej_double,
7268 Core::GejEquiv => simplicity_sys::c_jets::jets_wrapper::gej_equiv,
7269 Core::GejGeAdd => simplicity_sys::c_jets::jets_wrapper::gej_ge_add,
7270 Core::GejGeAddEx => simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex,
7271 Core::GejGeEquiv => simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv,
7272 Core::GejInfinity => simplicity_sys::c_jets::jets_wrapper::gej_infinity,
7273 Core::GejIsInfinity => simplicity_sys::c_jets::jets_wrapper::gej_is_infinity,
7274 Core::GejIsOnCurve => simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve,
7275 Core::GejNegate => simplicity_sys::c_jets::jets_wrapper::gej_negate,
7276 Core::GejNormalize => simplicity_sys::c_jets::jets_wrapper::gej_normalize,
7277 Core::GejRescale => simplicity_sys::c_jets::jets_wrapper::gej_rescale,
7278 Core::GejXEquiv => simplicity_sys::c_jets::jets_wrapper::gej_x_equiv,
7279 Core::GejYIsOdd => simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd,
7280 Core::Generate => simplicity_sys::c_jets::jets_wrapper::generate,
7281 Core::HashToCurve => simplicity_sys::c_jets::jets_wrapper::hash_to_curve,
7282 Core::High1 => simplicity_sys::c_jets::jets_wrapper::high_1,
7283 Core::High16 => simplicity_sys::c_jets::jets_wrapper::high_16,
7284 Core::High32 => simplicity_sys::c_jets::jets_wrapper::high_32,
7285 Core::High64 => simplicity_sys::c_jets::jets_wrapper::high_64,
7286 Core::High8 => simplicity_sys::c_jets::jets_wrapper::high_8,
7287 Core::Increment16 => simplicity_sys::c_jets::jets_wrapper::increment_16,
7288 Core::Increment32 => simplicity_sys::c_jets::jets_wrapper::increment_32,
7289 Core::Increment64 => simplicity_sys::c_jets::jets_wrapper::increment_64,
7290 Core::Increment8 => simplicity_sys::c_jets::jets_wrapper::increment_8,
7291 Core::IsOne16 => simplicity_sys::c_jets::jets_wrapper::is_one_16,
7292 Core::IsOne32 => simplicity_sys::c_jets::jets_wrapper::is_one_32,
7293 Core::IsOne64 => simplicity_sys::c_jets::jets_wrapper::is_one_64,
7294 Core::IsOne8 => simplicity_sys::c_jets::jets_wrapper::is_one_8,
7295 Core::IsZero16 => simplicity_sys::c_jets::jets_wrapper::is_zero_16,
7296 Core::IsZero32 => simplicity_sys::c_jets::jets_wrapper::is_zero_32,
7297 Core::IsZero64 => simplicity_sys::c_jets::jets_wrapper::is_zero_64,
7298 Core::IsZero8 => simplicity_sys::c_jets::jets_wrapper::is_zero_8,
7299 Core::Le16 => simplicity_sys::c_jets::jets_wrapper::le_16,
7300 Core::Le32 => simplicity_sys::c_jets::jets_wrapper::le_32,
7301 Core::Le64 => simplicity_sys::c_jets::jets_wrapper::le_64,
7302 Core::Le8 => simplicity_sys::c_jets::jets_wrapper::le_8,
7303 Core::LeftExtend16_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_32,
7304 Core::LeftExtend16_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_64,
7305 Core::LeftExtend1_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_16,
7306 Core::LeftExtend1_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_32,
7307 Core::LeftExtend1_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_64,
7308 Core::LeftExtend1_8 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_8,
7309 Core::LeftExtend32_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_32_64,
7310 Core::LeftExtend8_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_16,
7311 Core::LeftExtend8_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_32,
7312 Core::LeftExtend8_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_64,
7313 Core::LeftPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32,
7314 Core::LeftPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64,
7315 Core::LeftPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16,
7316 Core::LeftPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32,
7317 Core::LeftPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64,
7318 Core::LeftPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8,
7319 Core::LeftPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64,
7320 Core::LeftPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16,
7321 Core::LeftPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32,
7322 Core::LeftPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64,
7323 Core::LeftPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32,
7324 Core::LeftPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64,
7325 Core::LeftPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16,
7326 Core::LeftPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32,
7327 Core::LeftPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64,
7328 Core::LeftPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8,
7329 Core::LeftPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64,
7330 Core::LeftPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16,
7331 Core::LeftPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32,
7332 Core::LeftPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64,
7333 Core::LeftRotate16 => simplicity_sys::c_jets::jets_wrapper::left_rotate_16,
7334 Core::LeftRotate32 => simplicity_sys::c_jets::jets_wrapper::left_rotate_32,
7335 Core::LeftRotate64 => simplicity_sys::c_jets::jets_wrapper::left_rotate_64,
7336 Core::LeftRotate8 => simplicity_sys::c_jets::jets_wrapper::left_rotate_8,
7337 Core::LeftShift16 => simplicity_sys::c_jets::jets_wrapper::left_shift_16,
7338 Core::LeftShift32 => simplicity_sys::c_jets::jets_wrapper::left_shift_32,
7339 Core::LeftShift64 => simplicity_sys::c_jets::jets_wrapper::left_shift_64,
7340 Core::LeftShift8 => simplicity_sys::c_jets::jets_wrapper::left_shift_8,
7341 Core::LeftShiftWith16 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_16,
7342 Core::LeftShiftWith32 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_32,
7343 Core::LeftShiftWith64 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_64,
7344 Core::LeftShiftWith8 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_8,
7345 Core::Leftmost16_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_1,
7346 Core::Leftmost16_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_2,
7347 Core::Leftmost16_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_4,
7348 Core::Leftmost16_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_8,
7349 Core::Leftmost32_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_1,
7350 Core::Leftmost32_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_16,
7351 Core::Leftmost32_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_2,
7352 Core::Leftmost32_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_4,
7353 Core::Leftmost32_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_8,
7354 Core::Leftmost64_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_1,
7355 Core::Leftmost64_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_16,
7356 Core::Leftmost64_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_2,
7357 Core::Leftmost64_32 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_32,
7358 Core::Leftmost64_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_4,
7359 Core::Leftmost64_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_8,
7360 Core::Leftmost8_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_1,
7361 Core::Leftmost8_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_2,
7362 Core::Leftmost8_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_4,
7363 Core::LinearCombination1 => simplicity_sys::c_jets::jets_wrapper::linear_combination_1,
7364 Core::LinearVerify1 => simplicity_sys::c_jets::jets_wrapper::linear_verify_1,
7365 Core::Low1 => simplicity_sys::c_jets::jets_wrapper::low_1,
7366 Core::Low16 => simplicity_sys::c_jets::jets_wrapper::low_16,
7367 Core::Low32 => simplicity_sys::c_jets::jets_wrapper::low_32,
7368 Core::Low64 => simplicity_sys::c_jets::jets_wrapper::low_64,
7369 Core::Low8 => simplicity_sys::c_jets::jets_wrapper::low_8,
7370 Core::Lt16 => simplicity_sys::c_jets::jets_wrapper::lt_16,
7371 Core::Lt32 => simplicity_sys::c_jets::jets_wrapper::lt_32,
7372 Core::Lt64 => simplicity_sys::c_jets::jets_wrapper::lt_64,
7373 Core::Lt8 => simplicity_sys::c_jets::jets_wrapper::lt_8,
7374 Core::Maj1 => simplicity_sys::c_jets::jets_wrapper::maj_1,
7375 Core::Maj16 => simplicity_sys::c_jets::jets_wrapper::maj_16,
7376 Core::Maj32 => simplicity_sys::c_jets::jets_wrapper::maj_32,
7377 Core::Maj64 => simplicity_sys::c_jets::jets_wrapper::maj_64,
7378 Core::Maj8 => simplicity_sys::c_jets::jets_wrapper::maj_8,
7379 Core::Max16 => simplicity_sys::c_jets::jets_wrapper::max_16,
7380 Core::Max32 => simplicity_sys::c_jets::jets_wrapper::max_32,
7381 Core::Max64 => simplicity_sys::c_jets::jets_wrapper::max_64,
7382 Core::Max8 => simplicity_sys::c_jets::jets_wrapper::max_8,
7383 Core::Median16 => simplicity_sys::c_jets::jets_wrapper::median_16,
7384 Core::Median32 => simplicity_sys::c_jets::jets_wrapper::median_32,
7385 Core::Median64 => simplicity_sys::c_jets::jets_wrapper::median_64,
7386 Core::Median8 => simplicity_sys::c_jets::jets_wrapper::median_8,
7387 Core::Min16 => simplicity_sys::c_jets::jets_wrapper::min_16,
7388 Core::Min32 => simplicity_sys::c_jets::jets_wrapper::min_32,
7389 Core::Min64 => simplicity_sys::c_jets::jets_wrapper::min_64,
7390 Core::Min8 => simplicity_sys::c_jets::jets_wrapper::min_8,
7391 Core::Modulo16 => simplicity_sys::c_jets::jets_wrapper::modulo_16,
7392 Core::Modulo32 => simplicity_sys::c_jets::jets_wrapper::modulo_32,
7393 Core::Modulo64 => simplicity_sys::c_jets::jets_wrapper::modulo_64,
7394 Core::Modulo8 => simplicity_sys::c_jets::jets_wrapper::modulo_8,
7395 Core::Multiply16 => simplicity_sys::c_jets::jets_wrapper::multiply_16,
7396 Core::Multiply32 => simplicity_sys::c_jets::jets_wrapper::multiply_32,
7397 Core::Multiply64 => simplicity_sys::c_jets::jets_wrapper::multiply_64,
7398 Core::Multiply8 => simplicity_sys::c_jets::jets_wrapper::multiply_8,
7399 Core::Negate16 => simplicity_sys::c_jets::jets_wrapper::negate_16,
7400 Core::Negate32 => simplicity_sys::c_jets::jets_wrapper::negate_32,
7401 Core::Negate64 => simplicity_sys::c_jets::jets_wrapper::negate_64,
7402 Core::Negate8 => simplicity_sys::c_jets::jets_wrapper::negate_8,
7403 Core::One16 => simplicity_sys::c_jets::jets_wrapper::one_16,
7404 Core::One32 => simplicity_sys::c_jets::jets_wrapper::one_32,
7405 Core::One64 => simplicity_sys::c_jets::jets_wrapper::one_64,
7406 Core::One8 => simplicity_sys::c_jets::jets_wrapper::one_8,
7407 Core::Or1 => simplicity_sys::c_jets::jets_wrapper::or_1,
7408 Core::Or16 => simplicity_sys::c_jets::jets_wrapper::or_16,
7409 Core::Or32 => simplicity_sys::c_jets::jets_wrapper::or_32,
7410 Core::Or64 => simplicity_sys::c_jets::jets_wrapper::or_64,
7411 Core::Or8 => simplicity_sys::c_jets::jets_wrapper::or_8,
7412 Core::ParseLock => simplicity_sys::c_jets::jets_wrapper::parse_lock,
7413 Core::ParseSequence => simplicity_sys::c_jets::jets_wrapper::parse_sequence,
7414 Core::PointVerify1 => simplicity_sys::c_jets::jets_wrapper::point_verify_1,
7415 Core::RightExtend16_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_32,
7416 Core::RightExtend16_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_64,
7417 Core::RightExtend32_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_32_64,
7418 Core::RightExtend8_16 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_16,
7419 Core::RightExtend8_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_32,
7420 Core::RightExtend8_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_64,
7421 Core::RightPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32,
7422 Core::RightPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64,
7423 Core::RightPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16,
7424 Core::RightPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32,
7425 Core::RightPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64,
7426 Core::RightPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8,
7427 Core::RightPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64,
7428 Core::RightPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16,
7429 Core::RightPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32,
7430 Core::RightPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64,
7431 Core::RightPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32,
7432 Core::RightPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64,
7433 Core::RightPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16,
7434 Core::RightPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32,
7435 Core::RightPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64,
7436 Core::RightPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8,
7437 Core::RightPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64,
7438 Core::RightPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16,
7439 Core::RightPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32,
7440 Core::RightPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64,
7441 Core::RightRotate16 => simplicity_sys::c_jets::jets_wrapper::right_rotate_16,
7442 Core::RightRotate32 => simplicity_sys::c_jets::jets_wrapper::right_rotate_32,
7443 Core::RightRotate64 => simplicity_sys::c_jets::jets_wrapper::right_rotate_64,
7444 Core::RightRotate8 => simplicity_sys::c_jets::jets_wrapper::right_rotate_8,
7445 Core::RightShift16 => simplicity_sys::c_jets::jets_wrapper::right_shift_16,
7446 Core::RightShift32 => simplicity_sys::c_jets::jets_wrapper::right_shift_32,
7447 Core::RightShift64 => simplicity_sys::c_jets::jets_wrapper::right_shift_64,
7448 Core::RightShift8 => simplicity_sys::c_jets::jets_wrapper::right_shift_8,
7449 Core::RightShiftWith16 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_16,
7450 Core::RightShiftWith32 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_32,
7451 Core::RightShiftWith64 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_64,
7452 Core::RightShiftWith8 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_8,
7453 Core::Rightmost16_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_1,
7454 Core::Rightmost16_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_2,
7455 Core::Rightmost16_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_4,
7456 Core::Rightmost16_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_8,
7457 Core::Rightmost32_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_1,
7458 Core::Rightmost32_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_16,
7459 Core::Rightmost32_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_2,
7460 Core::Rightmost32_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_4,
7461 Core::Rightmost32_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_8,
7462 Core::Rightmost64_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_1,
7463 Core::Rightmost64_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_16,
7464 Core::Rightmost64_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_2,
7465 Core::Rightmost64_32 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_32,
7466 Core::Rightmost64_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_4,
7467 Core::Rightmost64_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_8,
7468 Core::Rightmost8_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_1,
7469 Core::Rightmost8_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_2,
7470 Core::Rightmost8_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_4,
7471 Core::ScalarAdd => simplicity_sys::c_jets::jets_wrapper::scalar_add,
7472 Core::ScalarInvert => simplicity_sys::c_jets::jets_wrapper::scalar_invert,
7473 Core::ScalarIsZero => simplicity_sys::c_jets::jets_wrapper::scalar_is_zero,
7474 Core::ScalarMultiply => simplicity_sys::c_jets::jets_wrapper::scalar_multiply,
7475 Core::ScalarMultiplyLambda => simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda,
7476 Core::ScalarNegate => simplicity_sys::c_jets::jets_wrapper::scalar_negate,
7477 Core::ScalarNormalize => simplicity_sys::c_jets::jets_wrapper::scalar_normalize,
7478 Core::ScalarSquare => simplicity_sys::c_jets::jets_wrapper::scalar_square,
7479 Core::Scale => simplicity_sys::c_jets::jets_wrapper::scale,
7480 Core::Sha256Block => simplicity_sys::c_jets::jets_wrapper::sha_256_block,
7481 Core::Sha256Ctx8Add1 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1,
7482 Core::Sha256Ctx8Add128 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128,
7483 Core::Sha256Ctx8Add16 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16,
7484 Core::Sha256Ctx8Add2 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2,
7485 Core::Sha256Ctx8Add256 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256,
7486 Core::Sha256Ctx8Add32 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32,
7487 Core::Sha256Ctx8Add4 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4,
7488 Core::Sha256Ctx8Add512 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512,
7489 Core::Sha256Ctx8Add64 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64,
7490 Core::Sha256Ctx8Add8 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8,
7491 Core::Sha256Ctx8AddBuffer511 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511,
7492 Core::Sha256Ctx8Finalize => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize,
7493 Core::Sha256Ctx8Init => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init,
7494 Core::Sha256Iv => simplicity_sys::c_jets::jets_wrapper::sha_256_iv,
7495 Core::Some1 => simplicity_sys::c_jets::jets_wrapper::some_1,
7496 Core::Some16 => simplicity_sys::c_jets::jets_wrapper::some_16,
7497 Core::Some32 => simplicity_sys::c_jets::jets_wrapper::some_32,
7498 Core::Some64 => simplicity_sys::c_jets::jets_wrapper::some_64,
7499 Core::Some8 => simplicity_sys::c_jets::jets_wrapper::some_8,
7500 Core::Subtract16 => simplicity_sys::c_jets::jets_wrapper::subtract_16,
7501 Core::Subtract32 => simplicity_sys::c_jets::jets_wrapper::subtract_32,
7502 Core::Subtract64 => simplicity_sys::c_jets::jets_wrapper::subtract_64,
7503 Core::Subtract8 => simplicity_sys::c_jets::jets_wrapper::subtract_8,
7504 Core::Swu => simplicity_sys::c_jets::jets_wrapper::swu,
7505 Core::TapdataInit => simplicity_sys::c_jets::jets_wrapper::tapdata_init,
7506 Core::Verify => simplicity_sys::c_jets::jets_wrapper::verify,
7507 Core::Xor1 => simplicity_sys::c_jets::jets_wrapper::xor_1,
7508 Core::Xor16 => simplicity_sys::c_jets::jets_wrapper::xor_16,
7509 Core::Xor32 => simplicity_sys::c_jets::jets_wrapper::xor_32,
7510 Core::Xor64 => simplicity_sys::c_jets::jets_wrapper::xor_64,
7511 Core::Xor8 => simplicity_sys::c_jets::jets_wrapper::xor_8,
7512 Core::XorXor1 => simplicity_sys::c_jets::jets_wrapper::xor_xor_1,
7513 Core::XorXor16 => simplicity_sys::c_jets::jets_wrapper::xor_xor_16,
7514 Core::XorXor32 => simplicity_sys::c_jets::jets_wrapper::xor_xor_32,
7515 Core::XorXor64 => simplicity_sys::c_jets::jets_wrapper::xor_xor_64,
7516 Core::XorXor8 => simplicity_sys::c_jets::jets_wrapper::xor_xor_8,
7517 }
7518}