Skip to main content

simplicity/jet/init/
bitcoin.rs

1/* This file has been automatically generated. */
2
3use 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/// The Bitcoin jet family.
15#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
16pub enum Bitcoin {
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    AnnexHash,
31    Bip0340Verify,
32    BuildTapbranch,
33    BuildTapleafSimplicity,
34    BuildTaptweak,
35    Ch1,
36    Ch16,
37    Ch32,
38    Ch64,
39    Ch8,
40    CheckLockDistance,
41    CheckLockDuration,
42    CheckLockHeight,
43    CheckLockTime,
44    CheckSigVerify,
45    Complement1,
46    Complement16,
47    Complement32,
48    Complement64,
49    Complement8,
50    CurrentAnnexHash,
51    CurrentIndex,
52    CurrentPrevOutpoint,
53    CurrentScriptHash,
54    CurrentScriptSigHash,
55    CurrentSequence,
56    CurrentValue,
57    Decompress,
58    Decrement16,
59    Decrement32,
60    Decrement64,
61    Decrement8,
62    DivMod128_64,
63    DivMod16,
64    DivMod32,
65    DivMod64,
66    DivMod8,
67    Divide16,
68    Divide32,
69    Divide64,
70    Divide8,
71    Divides16,
72    Divides32,
73    Divides64,
74    Divides8,
75    Eq1,
76    Eq16,
77    Eq256,
78    Eq32,
79    Eq64,
80    Eq8,
81    FeAdd,
82    FeInvert,
83    FeIsOdd,
84    FeIsZero,
85    FeMultiply,
86    FeMultiplyBeta,
87    FeNegate,
88    FeNormalize,
89    FeSquare,
90    FeSquareRoot,
91    Fee,
92    FullAdd16,
93    FullAdd32,
94    FullAdd64,
95    FullAdd8,
96    FullDecrement16,
97    FullDecrement32,
98    FullDecrement64,
99    FullDecrement8,
100    FullIncrement16,
101    FullIncrement32,
102    FullIncrement64,
103    FullIncrement8,
104    FullLeftShift16_1,
105    FullLeftShift16_2,
106    FullLeftShift16_4,
107    FullLeftShift16_8,
108    FullLeftShift32_1,
109    FullLeftShift32_16,
110    FullLeftShift32_2,
111    FullLeftShift32_4,
112    FullLeftShift32_8,
113    FullLeftShift64_1,
114    FullLeftShift64_16,
115    FullLeftShift64_2,
116    FullLeftShift64_32,
117    FullLeftShift64_4,
118    FullLeftShift64_8,
119    FullLeftShift8_1,
120    FullLeftShift8_2,
121    FullLeftShift8_4,
122    FullMultiply16,
123    FullMultiply32,
124    FullMultiply64,
125    FullMultiply8,
126    FullRightShift16_1,
127    FullRightShift16_2,
128    FullRightShift16_4,
129    FullRightShift16_8,
130    FullRightShift32_1,
131    FullRightShift32_16,
132    FullRightShift32_2,
133    FullRightShift32_4,
134    FullRightShift32_8,
135    FullRightShift64_1,
136    FullRightShift64_16,
137    FullRightShift64_2,
138    FullRightShift64_32,
139    FullRightShift64_4,
140    FullRightShift64_8,
141    FullRightShift8_1,
142    FullRightShift8_2,
143    FullRightShift8_4,
144    FullSubtract16,
145    FullSubtract32,
146    FullSubtract64,
147    FullSubtract8,
148    GeIsOnCurve,
149    GeNegate,
150    GejAdd,
151    GejDouble,
152    GejEquiv,
153    GejGeAdd,
154    GejGeAddEx,
155    GejGeEquiv,
156    GejInfinity,
157    GejIsInfinity,
158    GejIsOnCurve,
159    GejNegate,
160    GejNormalize,
161    GejRescale,
162    GejXEquiv,
163    GejYIsOdd,
164    Generate,
165    HashToCurve,
166    High1,
167    High16,
168    High32,
169    High64,
170    High8,
171    Increment16,
172    Increment32,
173    Increment64,
174    Increment8,
175    InputAnnexHash,
176    InputAnnexesHash,
177    InputHash,
178    InputOutpointsHash,
179    InputPrevOutpoint,
180    InputScriptHash,
181    InputScriptSigHash,
182    InputScriptSigsHash,
183    InputScriptsHash,
184    InputSequence,
185    InputSequencesHash,
186    InputUtxoHash,
187    InputUtxosHash,
188    InputValue,
189    InputValuesHash,
190    InputsHash,
191    InternalKey,
192    IsOne16,
193    IsOne32,
194    IsOne64,
195    IsOne8,
196    IsZero16,
197    IsZero32,
198    IsZero64,
199    IsZero8,
200    Le16,
201    Le32,
202    Le64,
203    Le8,
204    LeftExtend16_32,
205    LeftExtend16_64,
206    LeftExtend1_16,
207    LeftExtend1_32,
208    LeftExtend1_64,
209    LeftExtend1_8,
210    LeftExtend32_64,
211    LeftExtend8_16,
212    LeftExtend8_32,
213    LeftExtend8_64,
214    LeftPadHigh16_32,
215    LeftPadHigh16_64,
216    LeftPadHigh1_16,
217    LeftPadHigh1_32,
218    LeftPadHigh1_64,
219    LeftPadHigh1_8,
220    LeftPadHigh32_64,
221    LeftPadHigh8_16,
222    LeftPadHigh8_32,
223    LeftPadHigh8_64,
224    LeftPadLow16_32,
225    LeftPadLow16_64,
226    LeftPadLow1_16,
227    LeftPadLow1_32,
228    LeftPadLow1_64,
229    LeftPadLow1_8,
230    LeftPadLow32_64,
231    LeftPadLow8_16,
232    LeftPadLow8_32,
233    LeftPadLow8_64,
234    LeftRotate16,
235    LeftRotate32,
236    LeftRotate64,
237    LeftRotate8,
238    LeftShift16,
239    LeftShift32,
240    LeftShift64,
241    LeftShift8,
242    LeftShiftWith16,
243    LeftShiftWith32,
244    LeftShiftWith64,
245    LeftShiftWith8,
246    Leftmost16_1,
247    Leftmost16_2,
248    Leftmost16_4,
249    Leftmost16_8,
250    Leftmost32_1,
251    Leftmost32_16,
252    Leftmost32_2,
253    Leftmost32_4,
254    Leftmost32_8,
255    Leftmost64_1,
256    Leftmost64_16,
257    Leftmost64_2,
258    Leftmost64_32,
259    Leftmost64_4,
260    Leftmost64_8,
261    Leftmost8_1,
262    Leftmost8_2,
263    Leftmost8_4,
264    LinearCombination1,
265    LinearVerify1,
266    LockTime,
267    Low1,
268    Low16,
269    Low32,
270    Low64,
271    Low8,
272    Lt16,
273    Lt32,
274    Lt64,
275    Lt8,
276    Maj1,
277    Maj16,
278    Maj32,
279    Maj64,
280    Maj8,
281    Max16,
282    Max32,
283    Max64,
284    Max8,
285    Median16,
286    Median32,
287    Median64,
288    Median8,
289    Min16,
290    Min32,
291    Min64,
292    Min8,
293    Modulo16,
294    Modulo32,
295    Modulo64,
296    Modulo8,
297    Multiply16,
298    Multiply32,
299    Multiply64,
300    Multiply8,
301    Negate16,
302    Negate32,
303    Negate64,
304    Negate8,
305    NumInputs,
306    NumOutputs,
307    One16,
308    One32,
309    One64,
310    One8,
311    Or1,
312    Or16,
313    Or32,
314    Or64,
315    Or8,
316    OutpointHash,
317    OutputHash,
318    OutputScriptHash,
319    OutputScriptsHash,
320    OutputValue,
321    OutputValuesHash,
322    OutputsHash,
323    ParseLock,
324    ParseSequence,
325    PointVerify1,
326    RightExtend16_32,
327    RightExtend16_64,
328    RightExtend32_64,
329    RightExtend8_16,
330    RightExtend8_32,
331    RightExtend8_64,
332    RightPadHigh16_32,
333    RightPadHigh16_64,
334    RightPadHigh1_16,
335    RightPadHigh1_32,
336    RightPadHigh1_64,
337    RightPadHigh1_8,
338    RightPadHigh32_64,
339    RightPadHigh8_16,
340    RightPadHigh8_32,
341    RightPadHigh8_64,
342    RightPadLow16_32,
343    RightPadLow16_64,
344    RightPadLow1_16,
345    RightPadLow1_32,
346    RightPadLow1_64,
347    RightPadLow1_8,
348    RightPadLow32_64,
349    RightPadLow8_16,
350    RightPadLow8_32,
351    RightPadLow8_64,
352    RightRotate16,
353    RightRotate32,
354    RightRotate64,
355    RightRotate8,
356    RightShift16,
357    RightShift32,
358    RightShift64,
359    RightShift8,
360    RightShiftWith16,
361    RightShiftWith32,
362    RightShiftWith64,
363    RightShiftWith8,
364    Rightmost16_1,
365    Rightmost16_2,
366    Rightmost16_4,
367    Rightmost16_8,
368    Rightmost32_1,
369    Rightmost32_16,
370    Rightmost32_2,
371    Rightmost32_4,
372    Rightmost32_8,
373    Rightmost64_1,
374    Rightmost64_16,
375    Rightmost64_2,
376    Rightmost64_32,
377    Rightmost64_4,
378    Rightmost64_8,
379    Rightmost8_1,
380    Rightmost8_2,
381    Rightmost8_4,
382    ScalarAdd,
383    ScalarInvert,
384    ScalarIsZero,
385    ScalarMultiply,
386    ScalarMultiplyLambda,
387    ScalarNegate,
388    ScalarNormalize,
389    ScalarSquare,
390    Scale,
391    ScriptCMR,
392    Sha256Block,
393    Sha256Ctx8Add1,
394    Sha256Ctx8Add128,
395    Sha256Ctx8Add16,
396    Sha256Ctx8Add2,
397    Sha256Ctx8Add256,
398    Sha256Ctx8Add32,
399    Sha256Ctx8Add4,
400    Sha256Ctx8Add512,
401    Sha256Ctx8Add64,
402    Sha256Ctx8Add8,
403    Sha256Ctx8AddBuffer511,
404    Sha256Ctx8Finalize,
405    Sha256Ctx8Init,
406    Sha256Iv,
407    SigAllHash,
408    Some1,
409    Some16,
410    Some32,
411    Some64,
412    Some8,
413    Subtract16,
414    Subtract32,
415    Subtract64,
416    Subtract8,
417    Swu,
418    TapEnvHash,
419    TapdataInit,
420    TapleafHash,
421    TapleafVersion,
422    Tappath,
423    TappathHash,
424    TotalInputValue,
425    TotalOutputValue,
426    TransactionId,
427    TxHash,
428    TxIsFinal,
429    TxLockDistance,
430    TxLockDuration,
431    TxLockHeight,
432    TxLockTime,
433    Verify,
434    Version,
435    Xor1,
436    Xor16,
437    Xor32,
438    Xor64,
439    Xor8,
440    XorXor1,
441    XorXor16,
442    XorXor32,
443    XorXor64,
444    XorXor8,
445}
446
447impl Bitcoin {
448    /// Array of all Bitcoin jets.
449    pub const ALL: [Self; 428] = [
450        Self::Add16,
451        Self::Add32,
452        Self::Add64,
453        Self::Add8,
454        Self::All16,
455        Self::All32,
456        Self::All64,
457        Self::All8,
458        Self::And1,
459        Self::And16,
460        Self::And32,
461        Self::And64,
462        Self::And8,
463        Self::AnnexHash,
464        Self::Bip0340Verify,
465        Self::BuildTapbranch,
466        Self::BuildTapleafSimplicity,
467        Self::BuildTaptweak,
468        Self::Ch1,
469        Self::Ch16,
470        Self::Ch32,
471        Self::Ch64,
472        Self::Ch8,
473        Self::CheckLockDistance,
474        Self::CheckLockDuration,
475        Self::CheckLockHeight,
476        Self::CheckLockTime,
477        Self::CheckSigVerify,
478        Self::Complement1,
479        Self::Complement16,
480        Self::Complement32,
481        Self::Complement64,
482        Self::Complement8,
483        Self::CurrentAnnexHash,
484        Self::CurrentIndex,
485        Self::CurrentPrevOutpoint,
486        Self::CurrentScriptHash,
487        Self::CurrentScriptSigHash,
488        Self::CurrentSequence,
489        Self::CurrentValue,
490        Self::Decompress,
491        Self::Decrement16,
492        Self::Decrement32,
493        Self::Decrement64,
494        Self::Decrement8,
495        Self::DivMod128_64,
496        Self::DivMod16,
497        Self::DivMod32,
498        Self::DivMod64,
499        Self::DivMod8,
500        Self::Divide16,
501        Self::Divide32,
502        Self::Divide64,
503        Self::Divide8,
504        Self::Divides16,
505        Self::Divides32,
506        Self::Divides64,
507        Self::Divides8,
508        Self::Eq1,
509        Self::Eq16,
510        Self::Eq256,
511        Self::Eq32,
512        Self::Eq64,
513        Self::Eq8,
514        Self::FeAdd,
515        Self::FeInvert,
516        Self::FeIsOdd,
517        Self::FeIsZero,
518        Self::FeMultiply,
519        Self::FeMultiplyBeta,
520        Self::FeNegate,
521        Self::FeNormalize,
522        Self::FeSquare,
523        Self::FeSquareRoot,
524        Self::Fee,
525        Self::FullAdd16,
526        Self::FullAdd32,
527        Self::FullAdd64,
528        Self::FullAdd8,
529        Self::FullDecrement16,
530        Self::FullDecrement32,
531        Self::FullDecrement64,
532        Self::FullDecrement8,
533        Self::FullIncrement16,
534        Self::FullIncrement32,
535        Self::FullIncrement64,
536        Self::FullIncrement8,
537        Self::FullLeftShift16_1,
538        Self::FullLeftShift16_2,
539        Self::FullLeftShift16_4,
540        Self::FullLeftShift16_8,
541        Self::FullLeftShift32_1,
542        Self::FullLeftShift32_16,
543        Self::FullLeftShift32_2,
544        Self::FullLeftShift32_4,
545        Self::FullLeftShift32_8,
546        Self::FullLeftShift64_1,
547        Self::FullLeftShift64_16,
548        Self::FullLeftShift64_2,
549        Self::FullLeftShift64_32,
550        Self::FullLeftShift64_4,
551        Self::FullLeftShift64_8,
552        Self::FullLeftShift8_1,
553        Self::FullLeftShift8_2,
554        Self::FullLeftShift8_4,
555        Self::FullMultiply16,
556        Self::FullMultiply32,
557        Self::FullMultiply64,
558        Self::FullMultiply8,
559        Self::FullRightShift16_1,
560        Self::FullRightShift16_2,
561        Self::FullRightShift16_4,
562        Self::FullRightShift16_8,
563        Self::FullRightShift32_1,
564        Self::FullRightShift32_16,
565        Self::FullRightShift32_2,
566        Self::FullRightShift32_4,
567        Self::FullRightShift32_8,
568        Self::FullRightShift64_1,
569        Self::FullRightShift64_16,
570        Self::FullRightShift64_2,
571        Self::FullRightShift64_32,
572        Self::FullRightShift64_4,
573        Self::FullRightShift64_8,
574        Self::FullRightShift8_1,
575        Self::FullRightShift8_2,
576        Self::FullRightShift8_4,
577        Self::FullSubtract16,
578        Self::FullSubtract32,
579        Self::FullSubtract64,
580        Self::FullSubtract8,
581        Self::GeIsOnCurve,
582        Self::GeNegate,
583        Self::GejAdd,
584        Self::GejDouble,
585        Self::GejEquiv,
586        Self::GejGeAdd,
587        Self::GejGeAddEx,
588        Self::GejGeEquiv,
589        Self::GejInfinity,
590        Self::GejIsInfinity,
591        Self::GejIsOnCurve,
592        Self::GejNegate,
593        Self::GejNormalize,
594        Self::GejRescale,
595        Self::GejXEquiv,
596        Self::GejYIsOdd,
597        Self::Generate,
598        Self::HashToCurve,
599        Self::High1,
600        Self::High16,
601        Self::High32,
602        Self::High64,
603        Self::High8,
604        Self::Increment16,
605        Self::Increment32,
606        Self::Increment64,
607        Self::Increment8,
608        Self::InputAnnexHash,
609        Self::InputAnnexesHash,
610        Self::InputHash,
611        Self::InputOutpointsHash,
612        Self::InputPrevOutpoint,
613        Self::InputScriptHash,
614        Self::InputScriptSigHash,
615        Self::InputScriptSigsHash,
616        Self::InputScriptsHash,
617        Self::InputSequence,
618        Self::InputSequencesHash,
619        Self::InputUtxoHash,
620        Self::InputUtxosHash,
621        Self::InputValue,
622        Self::InputValuesHash,
623        Self::InputsHash,
624        Self::InternalKey,
625        Self::IsOne16,
626        Self::IsOne32,
627        Self::IsOne64,
628        Self::IsOne8,
629        Self::IsZero16,
630        Self::IsZero32,
631        Self::IsZero64,
632        Self::IsZero8,
633        Self::Le16,
634        Self::Le32,
635        Self::Le64,
636        Self::Le8,
637        Self::LeftExtend16_32,
638        Self::LeftExtend16_64,
639        Self::LeftExtend1_16,
640        Self::LeftExtend1_32,
641        Self::LeftExtend1_64,
642        Self::LeftExtend1_8,
643        Self::LeftExtend32_64,
644        Self::LeftExtend8_16,
645        Self::LeftExtend8_32,
646        Self::LeftExtend8_64,
647        Self::LeftPadHigh16_32,
648        Self::LeftPadHigh16_64,
649        Self::LeftPadHigh1_16,
650        Self::LeftPadHigh1_32,
651        Self::LeftPadHigh1_64,
652        Self::LeftPadHigh1_8,
653        Self::LeftPadHigh32_64,
654        Self::LeftPadHigh8_16,
655        Self::LeftPadHigh8_32,
656        Self::LeftPadHigh8_64,
657        Self::LeftPadLow16_32,
658        Self::LeftPadLow16_64,
659        Self::LeftPadLow1_16,
660        Self::LeftPadLow1_32,
661        Self::LeftPadLow1_64,
662        Self::LeftPadLow1_8,
663        Self::LeftPadLow32_64,
664        Self::LeftPadLow8_16,
665        Self::LeftPadLow8_32,
666        Self::LeftPadLow8_64,
667        Self::LeftRotate16,
668        Self::LeftRotate32,
669        Self::LeftRotate64,
670        Self::LeftRotate8,
671        Self::LeftShift16,
672        Self::LeftShift32,
673        Self::LeftShift64,
674        Self::LeftShift8,
675        Self::LeftShiftWith16,
676        Self::LeftShiftWith32,
677        Self::LeftShiftWith64,
678        Self::LeftShiftWith8,
679        Self::Leftmost16_1,
680        Self::Leftmost16_2,
681        Self::Leftmost16_4,
682        Self::Leftmost16_8,
683        Self::Leftmost32_1,
684        Self::Leftmost32_16,
685        Self::Leftmost32_2,
686        Self::Leftmost32_4,
687        Self::Leftmost32_8,
688        Self::Leftmost64_1,
689        Self::Leftmost64_16,
690        Self::Leftmost64_2,
691        Self::Leftmost64_32,
692        Self::Leftmost64_4,
693        Self::Leftmost64_8,
694        Self::Leftmost8_1,
695        Self::Leftmost8_2,
696        Self::Leftmost8_4,
697        Self::LinearCombination1,
698        Self::LinearVerify1,
699        Self::LockTime,
700        Self::Low1,
701        Self::Low16,
702        Self::Low32,
703        Self::Low64,
704        Self::Low8,
705        Self::Lt16,
706        Self::Lt32,
707        Self::Lt64,
708        Self::Lt8,
709        Self::Maj1,
710        Self::Maj16,
711        Self::Maj32,
712        Self::Maj64,
713        Self::Maj8,
714        Self::Max16,
715        Self::Max32,
716        Self::Max64,
717        Self::Max8,
718        Self::Median16,
719        Self::Median32,
720        Self::Median64,
721        Self::Median8,
722        Self::Min16,
723        Self::Min32,
724        Self::Min64,
725        Self::Min8,
726        Self::Modulo16,
727        Self::Modulo32,
728        Self::Modulo64,
729        Self::Modulo8,
730        Self::Multiply16,
731        Self::Multiply32,
732        Self::Multiply64,
733        Self::Multiply8,
734        Self::Negate16,
735        Self::Negate32,
736        Self::Negate64,
737        Self::Negate8,
738        Self::NumInputs,
739        Self::NumOutputs,
740        Self::One16,
741        Self::One32,
742        Self::One64,
743        Self::One8,
744        Self::Or1,
745        Self::Or16,
746        Self::Or32,
747        Self::Or64,
748        Self::Or8,
749        Self::OutpointHash,
750        Self::OutputHash,
751        Self::OutputScriptHash,
752        Self::OutputScriptsHash,
753        Self::OutputValue,
754        Self::OutputValuesHash,
755        Self::OutputsHash,
756        Self::ParseLock,
757        Self::ParseSequence,
758        Self::PointVerify1,
759        Self::RightExtend16_32,
760        Self::RightExtend16_64,
761        Self::RightExtend32_64,
762        Self::RightExtend8_16,
763        Self::RightExtend8_32,
764        Self::RightExtend8_64,
765        Self::RightPadHigh16_32,
766        Self::RightPadHigh16_64,
767        Self::RightPadHigh1_16,
768        Self::RightPadHigh1_32,
769        Self::RightPadHigh1_64,
770        Self::RightPadHigh1_8,
771        Self::RightPadHigh32_64,
772        Self::RightPadHigh8_16,
773        Self::RightPadHigh8_32,
774        Self::RightPadHigh8_64,
775        Self::RightPadLow16_32,
776        Self::RightPadLow16_64,
777        Self::RightPadLow1_16,
778        Self::RightPadLow1_32,
779        Self::RightPadLow1_64,
780        Self::RightPadLow1_8,
781        Self::RightPadLow32_64,
782        Self::RightPadLow8_16,
783        Self::RightPadLow8_32,
784        Self::RightPadLow8_64,
785        Self::RightRotate16,
786        Self::RightRotate32,
787        Self::RightRotate64,
788        Self::RightRotate8,
789        Self::RightShift16,
790        Self::RightShift32,
791        Self::RightShift64,
792        Self::RightShift8,
793        Self::RightShiftWith16,
794        Self::RightShiftWith32,
795        Self::RightShiftWith64,
796        Self::RightShiftWith8,
797        Self::Rightmost16_1,
798        Self::Rightmost16_2,
799        Self::Rightmost16_4,
800        Self::Rightmost16_8,
801        Self::Rightmost32_1,
802        Self::Rightmost32_16,
803        Self::Rightmost32_2,
804        Self::Rightmost32_4,
805        Self::Rightmost32_8,
806        Self::Rightmost64_1,
807        Self::Rightmost64_16,
808        Self::Rightmost64_2,
809        Self::Rightmost64_32,
810        Self::Rightmost64_4,
811        Self::Rightmost64_8,
812        Self::Rightmost8_1,
813        Self::Rightmost8_2,
814        Self::Rightmost8_4,
815        Self::ScalarAdd,
816        Self::ScalarInvert,
817        Self::ScalarIsZero,
818        Self::ScalarMultiply,
819        Self::ScalarMultiplyLambda,
820        Self::ScalarNegate,
821        Self::ScalarNormalize,
822        Self::ScalarSquare,
823        Self::Scale,
824        Self::ScriptCMR,
825        Self::Sha256Block,
826        Self::Sha256Ctx8Add1,
827        Self::Sha256Ctx8Add128,
828        Self::Sha256Ctx8Add16,
829        Self::Sha256Ctx8Add2,
830        Self::Sha256Ctx8Add256,
831        Self::Sha256Ctx8Add32,
832        Self::Sha256Ctx8Add4,
833        Self::Sha256Ctx8Add512,
834        Self::Sha256Ctx8Add64,
835        Self::Sha256Ctx8Add8,
836        Self::Sha256Ctx8AddBuffer511,
837        Self::Sha256Ctx8Finalize,
838        Self::Sha256Ctx8Init,
839        Self::Sha256Iv,
840        Self::SigAllHash,
841        Self::Some1,
842        Self::Some16,
843        Self::Some32,
844        Self::Some64,
845        Self::Some8,
846        Self::Subtract16,
847        Self::Subtract32,
848        Self::Subtract64,
849        Self::Subtract8,
850        Self::Swu,
851        Self::TapEnvHash,
852        Self::TapdataInit,
853        Self::TapleafHash,
854        Self::TapleafVersion,
855        Self::Tappath,
856        Self::TappathHash,
857        Self::TotalInputValue,
858        Self::TotalOutputValue,
859        Self::TransactionId,
860        Self::TxHash,
861        Self::TxIsFinal,
862        Self::TxLockDistance,
863        Self::TxLockDuration,
864        Self::TxLockHeight,
865        Self::TxLockTime,
866        Self::Verify,
867        Self::Version,
868        Self::Xor1,
869        Self::Xor16,
870        Self::Xor32,
871        Self::Xor64,
872        Self::Xor8,
873        Self::XorXor1,
874        Self::XorXor16,
875        Self::XorXor32,
876        Self::XorXor64,
877        Self::XorXor8,
878    ];
879}
880
881impl Jet for Bitcoin {
882
883    fn cmr(&self) -> Cmr {
884        unimplemented!("Bitcoin jet CMRs weights have not yet been implemented.")
885    }
886
887    fn source_ty(&self) -> TypeName {
888        let name: &'static [u8] = match self {
889            Bitcoin::Add16 => b"i",
890            Bitcoin::Add32 => b"l",
891            Bitcoin::Add64 => b"*ll",
892            Bitcoin::Add8 => b"****22*22**22*22***22*22**22*22",
893            Bitcoin::All16 => b"****22*22**22*22***22*22**22*22",
894            Bitcoin::All32 => b"i",
895            Bitcoin::All64 => b"l",
896            Bitcoin::All8 => b"***22*22**22*22",
897            Bitcoin::And1 => b"*22",
898            Bitcoin::And16 => b"i",
899            Bitcoin::And32 => b"l",
900            Bitcoin::And64 => b"*ll",
901            Bitcoin::And8 => b"****22*22**22*22***22*22**22*22",
902            Bitcoin::AnnexHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh+1h",
903            Bitcoin::Bip0340Verify => b"**hh*hh",
904            Bitcoin::BuildTapbranch => b"*hh",
905            Bitcoin::BuildTapleafSimplicity => b"h",
906            Bitcoin::BuildTaptweak => b"*hh",
907            Bitcoin::Ch1 => b"*2*22",
908            Bitcoin::Ch16 => b"*****22*22**22*22***22*22**22*22i",
909            Bitcoin::Ch32 => b"*il",
910            Bitcoin::Ch64 => b"*l*ll",
911            Bitcoin::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
912            Bitcoin::CheckLockDistance => b"****22*22**22*22***22*22**22*22",
913            Bitcoin::CheckLockDuration => b"****22*22**22*22***22*22**22*22",
914            Bitcoin::CheckLockHeight => b"i",
915            Bitcoin::CheckLockTime => b"i",
916            Bitcoin::CheckSigVerify => b"**h*hh*hh",
917            Bitcoin::Complement1 => b"2",
918            Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22",
919            Bitcoin::Complement32 => b"i",
920            Bitcoin::Complement64 => b"l",
921            Bitcoin::Complement8 => b"***22*22**22*22",
922            Bitcoin::CurrentAnnexHash => b"1",
923            Bitcoin::CurrentIndex => b"1",
924            Bitcoin::CurrentPrevOutpoint => b"1",
925            Bitcoin::CurrentScriptHash => b"1",
926            Bitcoin::CurrentScriptSigHash => b"1",
927            Bitcoin::CurrentSequence => b"1",
928            Bitcoin::CurrentValue => b"1",
929            Bitcoin::Decompress => b"*2h",
930            Bitcoin::Decrement16 => b"****22*22**22*22***22*22**22*22",
931            Bitcoin::Decrement32 => b"i",
932            Bitcoin::Decrement64 => b"l",
933            Bitcoin::Decrement8 => b"***22*22**22*22",
934            Bitcoin::DivMod128_64 => b"**lll",
935            Bitcoin::DivMod16 => b"i",
936            Bitcoin::DivMod32 => b"l",
937            Bitcoin::DivMod64 => b"*ll",
938            Bitcoin::DivMod8 => b"****22*22**22*22***22*22**22*22",
939            Bitcoin::Divide16 => b"i",
940            Bitcoin::Divide32 => b"l",
941            Bitcoin::Divide64 => b"*ll",
942            Bitcoin::Divide8 => b"****22*22**22*22***22*22**22*22",
943            Bitcoin::Divides16 => b"i",
944            Bitcoin::Divides32 => b"l",
945            Bitcoin::Divides64 => b"*ll",
946            Bitcoin::Divides8 => b"****22*22**22*22***22*22**22*22",
947            Bitcoin::Eq1 => b"*22",
948            Bitcoin::Eq16 => b"i",
949            Bitcoin::Eq256 => b"*hh",
950            Bitcoin::Eq32 => b"l",
951            Bitcoin::Eq64 => b"*ll",
952            Bitcoin::Eq8 => b"****22*22**22*22***22*22**22*22",
953            Bitcoin::FeAdd => b"*hh",
954            Bitcoin::FeInvert => b"h",
955            Bitcoin::FeIsOdd => b"h",
956            Bitcoin::FeIsZero => b"h",
957            Bitcoin::FeMultiply => b"*hh",
958            Bitcoin::FeMultiplyBeta => b"h",
959            Bitcoin::FeNegate => b"h",
960            Bitcoin::FeNormalize => b"h",
961            Bitcoin::FeSquare => b"h",
962            Bitcoin::FeSquareRoot => b"h",
963            Bitcoin::Fee => b"1",
964            Bitcoin::FullAdd16 => b"*2i",
965            Bitcoin::FullAdd32 => b"*2l",
966            Bitcoin::FullAdd64 => b"*2*ll",
967            Bitcoin::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
968            Bitcoin::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
969            Bitcoin::FullDecrement32 => b"*2i",
970            Bitcoin::FullDecrement64 => b"*2l",
971            Bitcoin::FullDecrement8 => b"*2***22*22**22*22",
972            Bitcoin::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
973            Bitcoin::FullIncrement32 => b"*2i",
974            Bitcoin::FullIncrement64 => b"*2l",
975            Bitcoin::FullIncrement8 => b"*2***22*22**22*22",
976            Bitcoin::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
977            Bitcoin::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
978            Bitcoin::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
979            Bitcoin::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
980            Bitcoin::FullLeftShift32_1 => b"*i2",
981            Bitcoin::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
982            Bitcoin::FullLeftShift32_2 => b"*i*22",
983            Bitcoin::FullLeftShift32_4 => b"*i**22*22",
984            Bitcoin::FullLeftShift32_8 => b"*i***22*22**22*22",
985            Bitcoin::FullLeftShift64_1 => b"*l2",
986            Bitcoin::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
987            Bitcoin::FullLeftShift64_2 => b"*l*22",
988            Bitcoin::FullLeftShift64_32 => b"*li",
989            Bitcoin::FullLeftShift64_4 => b"*l**22*22",
990            Bitcoin::FullLeftShift64_8 => b"*l***22*22**22*22",
991            Bitcoin::FullLeftShift8_1 => b"****22*22**22*222",
992            Bitcoin::FullLeftShift8_2 => b"****22*22**22*22*22",
993            Bitcoin::FullLeftShift8_4 => b"****22*22**22*22**22*22",
994            Bitcoin::FullMultiply16 => b"l",
995            Bitcoin::FullMultiply32 => b"*ll",
996            Bitcoin::FullMultiply64 => b"h",
997            Bitcoin::FullMultiply8 => b"i",
998            Bitcoin::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
999            Bitcoin::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
1000            Bitcoin::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
1001            Bitcoin::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1002            Bitcoin::FullRightShift32_1 => b"*2i",
1003            Bitcoin::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
1004            Bitcoin::FullRightShift32_2 => b"**22i",
1005            Bitcoin::FullRightShift32_4 => b"***22*22i",
1006            Bitcoin::FullRightShift32_8 => b"****22*22**22*22i",
1007            Bitcoin::FullRightShift64_1 => b"*2l",
1008            Bitcoin::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
1009            Bitcoin::FullRightShift64_2 => b"**22l",
1010            Bitcoin::FullRightShift64_32 => b"*il",
1011            Bitcoin::FullRightShift64_4 => b"***22*22l",
1012            Bitcoin::FullRightShift64_8 => b"****22*22**22*22l",
1013            Bitcoin::FullRightShift8_1 => b"*2***22*22**22*22",
1014            Bitcoin::FullRightShift8_2 => b"**22***22*22**22*22",
1015            Bitcoin::FullRightShift8_4 => b"***22*22***22*22**22*22",
1016            Bitcoin::FullSubtract16 => b"*2i",
1017            Bitcoin::FullSubtract32 => b"*2l",
1018            Bitcoin::FullSubtract64 => b"*2*ll",
1019            Bitcoin::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
1020            Bitcoin::GeIsOnCurve => b"*hh",
1021            Bitcoin::GeNegate => b"*hh",
1022            Bitcoin::GejAdd => b"***hhh**hhh",
1023            Bitcoin::GejDouble => b"**hhh",
1024            Bitcoin::GejEquiv => b"***hhh**hhh",
1025            Bitcoin::GejGeAdd => b"***hhh*hh",
1026            Bitcoin::GejGeAddEx => b"***hhh*hh",
1027            Bitcoin::GejGeEquiv => b"***hhh*hh",
1028            Bitcoin::GejInfinity => b"1",
1029            Bitcoin::GejIsInfinity => b"**hhh",
1030            Bitcoin::GejIsOnCurve => b"**hhh",
1031            Bitcoin::GejNegate => b"**hhh",
1032            Bitcoin::GejNormalize => b"**hhh",
1033            Bitcoin::GejRescale => b"***hhhh",
1034            Bitcoin::GejXEquiv => b"*h**hhh",
1035            Bitcoin::GejYIsOdd => b"**hhh",
1036            Bitcoin::Generate => b"h",
1037            Bitcoin::HashToCurve => b"h",
1038            Bitcoin::High1 => b"1",
1039            Bitcoin::High16 => b"1",
1040            Bitcoin::High32 => b"1",
1041            Bitcoin::High64 => b"1",
1042            Bitcoin::High8 => b"1",
1043            Bitcoin::Increment16 => b"****22*22**22*22***22*22**22*22",
1044            Bitcoin::Increment32 => b"i",
1045            Bitcoin::Increment64 => b"l",
1046            Bitcoin::Increment8 => b"***22*22**22*22",
1047            Bitcoin::InputAnnexHash => b"i",
1048            Bitcoin::InputAnnexesHash => b"1",
1049            Bitcoin::InputHash => b"i",
1050            Bitcoin::InputOutpointsHash => b"1",
1051            Bitcoin::InputPrevOutpoint => b"i",
1052            Bitcoin::InputScriptHash => b"i",
1053            Bitcoin::InputScriptSigHash => b"i",
1054            Bitcoin::InputScriptSigsHash => b"1",
1055            Bitcoin::InputScriptsHash => b"1",
1056            Bitcoin::InputSequence => b"i",
1057            Bitcoin::InputSequencesHash => b"1",
1058            Bitcoin::InputUtxoHash => b"i",
1059            Bitcoin::InputUtxosHash => b"1",
1060            Bitcoin::InputValue => b"i",
1061            Bitcoin::InputValuesHash => b"1",
1062            Bitcoin::InputsHash => b"1",
1063            Bitcoin::InternalKey => b"1",
1064            Bitcoin::IsOne16 => b"****22*22**22*22***22*22**22*22",
1065            Bitcoin::IsOne32 => b"i",
1066            Bitcoin::IsOne64 => b"l",
1067            Bitcoin::IsOne8 => b"***22*22**22*22",
1068            Bitcoin::IsZero16 => b"****22*22**22*22***22*22**22*22",
1069            Bitcoin::IsZero32 => b"i",
1070            Bitcoin::IsZero64 => b"l",
1071            Bitcoin::IsZero8 => b"***22*22**22*22",
1072            Bitcoin::Le16 => b"i",
1073            Bitcoin::Le32 => b"l",
1074            Bitcoin::Le64 => b"*ll",
1075            Bitcoin::Le8 => b"****22*22**22*22***22*22**22*22",
1076            Bitcoin::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
1077            Bitcoin::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
1078            Bitcoin::LeftExtend1_16 => b"2",
1079            Bitcoin::LeftExtend1_32 => b"2",
1080            Bitcoin::LeftExtend1_64 => b"2",
1081            Bitcoin::LeftExtend1_8 => b"2",
1082            Bitcoin::LeftExtend32_64 => b"i",
1083            Bitcoin::LeftExtend8_16 => b"***22*22**22*22",
1084            Bitcoin::LeftExtend8_32 => b"***22*22**22*22",
1085            Bitcoin::LeftExtend8_64 => b"***22*22**22*22",
1086            Bitcoin::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
1087            Bitcoin::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
1088            Bitcoin::LeftPadHigh1_16 => b"2",
1089            Bitcoin::LeftPadHigh1_32 => b"2",
1090            Bitcoin::LeftPadHigh1_64 => b"2",
1091            Bitcoin::LeftPadHigh1_8 => b"2",
1092            Bitcoin::LeftPadHigh32_64 => b"i",
1093            Bitcoin::LeftPadHigh8_16 => b"***22*22**22*22",
1094            Bitcoin::LeftPadHigh8_32 => b"***22*22**22*22",
1095            Bitcoin::LeftPadHigh8_64 => b"***22*22**22*22",
1096            Bitcoin::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
1097            Bitcoin::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
1098            Bitcoin::LeftPadLow1_16 => b"2",
1099            Bitcoin::LeftPadLow1_32 => b"2",
1100            Bitcoin::LeftPadLow1_64 => b"2",
1101            Bitcoin::LeftPadLow1_8 => b"2",
1102            Bitcoin::LeftPadLow32_64 => b"i",
1103            Bitcoin::LeftPadLow8_16 => b"***22*22**22*22",
1104            Bitcoin::LeftPadLow8_32 => b"***22*22**22*22",
1105            Bitcoin::LeftPadLow8_64 => b"***22*22**22*22",
1106            Bitcoin::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
1107            Bitcoin::LeftRotate32 => b"****22*22**22*22i",
1108            Bitcoin::LeftRotate64 => b"****22*22**22*22l",
1109            Bitcoin::LeftRotate8 => b"***22*22***22*22**22*22",
1110            Bitcoin::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
1111            Bitcoin::LeftShift32 => b"****22*22**22*22i",
1112            Bitcoin::LeftShift64 => b"****22*22**22*22l",
1113            Bitcoin::LeftShift8 => b"***22*22***22*22**22*22",
1114            Bitcoin::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
1115            Bitcoin::LeftShiftWith32 => b"*2****22*22**22*22i",
1116            Bitcoin::LeftShiftWith64 => b"*2****22*22**22*22l",
1117            Bitcoin::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
1118            Bitcoin::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
1119            Bitcoin::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
1120            Bitcoin::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
1121            Bitcoin::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
1122            Bitcoin::Leftmost32_1 => b"i",
1123            Bitcoin::Leftmost32_16 => b"i",
1124            Bitcoin::Leftmost32_2 => b"i",
1125            Bitcoin::Leftmost32_4 => b"i",
1126            Bitcoin::Leftmost32_8 => b"i",
1127            Bitcoin::Leftmost64_1 => b"l",
1128            Bitcoin::Leftmost64_16 => b"l",
1129            Bitcoin::Leftmost64_2 => b"l",
1130            Bitcoin::Leftmost64_32 => b"l",
1131            Bitcoin::Leftmost64_4 => b"l",
1132            Bitcoin::Leftmost64_8 => b"l",
1133            Bitcoin::Leftmost8_1 => b"***22*22**22*22",
1134            Bitcoin::Leftmost8_2 => b"***22*22**22*22",
1135            Bitcoin::Leftmost8_4 => b"***22*22**22*22",
1136            Bitcoin::LinearCombination1 => b"**h**hhhh",
1137            Bitcoin::LinearVerify1 => b"***h*hhh*hh",
1138            Bitcoin::LockTime => b"1",
1139            Bitcoin::Low1 => b"1",
1140            Bitcoin::Low16 => b"1",
1141            Bitcoin::Low32 => b"1",
1142            Bitcoin::Low64 => b"1",
1143            Bitcoin::Low8 => b"1",
1144            Bitcoin::Lt16 => b"i",
1145            Bitcoin::Lt32 => b"l",
1146            Bitcoin::Lt64 => b"*ll",
1147            Bitcoin::Lt8 => b"****22*22**22*22***22*22**22*22",
1148            Bitcoin::Maj1 => b"*2*22",
1149            Bitcoin::Maj16 => b"*****22*22**22*22***22*22**22*22i",
1150            Bitcoin::Maj32 => b"*il",
1151            Bitcoin::Maj64 => b"*l*ll",
1152            Bitcoin::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1153            Bitcoin::Max16 => b"i",
1154            Bitcoin::Max32 => b"l",
1155            Bitcoin::Max64 => b"*ll",
1156            Bitcoin::Max8 => b"****22*22**22*22***22*22**22*22",
1157            Bitcoin::Median16 => b"*****22*22**22*22***22*22**22*22i",
1158            Bitcoin::Median32 => b"*il",
1159            Bitcoin::Median64 => b"*l*ll",
1160            Bitcoin::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1161            Bitcoin::Min16 => b"i",
1162            Bitcoin::Min32 => b"l",
1163            Bitcoin::Min64 => b"*ll",
1164            Bitcoin::Min8 => b"****22*22**22*22***22*22**22*22",
1165            Bitcoin::Modulo16 => b"i",
1166            Bitcoin::Modulo32 => b"l",
1167            Bitcoin::Modulo64 => b"*ll",
1168            Bitcoin::Modulo8 => b"****22*22**22*22***22*22**22*22",
1169            Bitcoin::Multiply16 => b"i",
1170            Bitcoin::Multiply32 => b"l",
1171            Bitcoin::Multiply64 => b"*ll",
1172            Bitcoin::Multiply8 => b"****22*22**22*22***22*22**22*22",
1173            Bitcoin::Negate16 => b"****22*22**22*22***22*22**22*22",
1174            Bitcoin::Negate32 => b"i",
1175            Bitcoin::Negate64 => b"l",
1176            Bitcoin::Negate8 => b"***22*22**22*22",
1177            Bitcoin::NumInputs => b"1",
1178            Bitcoin::NumOutputs => b"1",
1179            Bitcoin::One16 => b"1",
1180            Bitcoin::One32 => b"1",
1181            Bitcoin::One64 => b"1",
1182            Bitcoin::One8 => b"1",
1183            Bitcoin::Or1 => b"*22",
1184            Bitcoin::Or16 => b"i",
1185            Bitcoin::Or32 => b"l",
1186            Bitcoin::Or64 => b"*ll",
1187            Bitcoin::Or8 => b"****22*22**22*22***22*22**22*22",
1188            Bitcoin::OutpointHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hi",
1189            Bitcoin::OutputHash => b"i",
1190            Bitcoin::OutputScriptHash => b"i",
1191            Bitcoin::OutputScriptsHash => b"1",
1192            Bitcoin::OutputValue => b"i",
1193            Bitcoin::OutputValuesHash => b"1",
1194            Bitcoin::OutputsHash => b"1",
1195            Bitcoin::ParseLock => b"i",
1196            Bitcoin::ParseSequence => b"i",
1197            Bitcoin::PointVerify1 => b"***h*2hh*2h",
1198            Bitcoin::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
1199            Bitcoin::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
1200            Bitcoin::RightExtend32_64 => b"i",
1201            Bitcoin::RightExtend8_16 => b"***22*22**22*22",
1202            Bitcoin::RightExtend8_32 => b"***22*22**22*22",
1203            Bitcoin::RightExtend8_64 => b"***22*22**22*22",
1204            Bitcoin::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
1205            Bitcoin::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
1206            Bitcoin::RightPadHigh1_16 => b"2",
1207            Bitcoin::RightPadHigh1_32 => b"2",
1208            Bitcoin::RightPadHigh1_64 => b"2",
1209            Bitcoin::RightPadHigh1_8 => b"2",
1210            Bitcoin::RightPadHigh32_64 => b"i",
1211            Bitcoin::RightPadHigh8_16 => b"***22*22**22*22",
1212            Bitcoin::RightPadHigh8_32 => b"***22*22**22*22",
1213            Bitcoin::RightPadHigh8_64 => b"***22*22**22*22",
1214            Bitcoin::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
1215            Bitcoin::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
1216            Bitcoin::RightPadLow1_16 => b"2",
1217            Bitcoin::RightPadLow1_32 => b"2",
1218            Bitcoin::RightPadLow1_64 => b"2",
1219            Bitcoin::RightPadLow1_8 => b"2",
1220            Bitcoin::RightPadLow32_64 => b"i",
1221            Bitcoin::RightPadLow8_16 => b"***22*22**22*22",
1222            Bitcoin::RightPadLow8_32 => b"***22*22**22*22",
1223            Bitcoin::RightPadLow8_64 => b"***22*22**22*22",
1224            Bitcoin::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
1225            Bitcoin::RightRotate32 => b"****22*22**22*22i",
1226            Bitcoin::RightRotate64 => b"****22*22**22*22l",
1227            Bitcoin::RightRotate8 => b"***22*22***22*22**22*22",
1228            Bitcoin::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
1229            Bitcoin::RightShift32 => b"****22*22**22*22i",
1230            Bitcoin::RightShift64 => b"****22*22**22*22l",
1231            Bitcoin::RightShift8 => b"***22*22***22*22**22*22",
1232            Bitcoin::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
1233            Bitcoin::RightShiftWith32 => b"*2****22*22**22*22i",
1234            Bitcoin::RightShiftWith64 => b"*2****22*22**22*22l",
1235            Bitcoin::RightShiftWith8 => b"*2***22*22***22*22**22*22",
1236            Bitcoin::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
1237            Bitcoin::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
1238            Bitcoin::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
1239            Bitcoin::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
1240            Bitcoin::Rightmost32_1 => b"i",
1241            Bitcoin::Rightmost32_16 => b"i",
1242            Bitcoin::Rightmost32_2 => b"i",
1243            Bitcoin::Rightmost32_4 => b"i",
1244            Bitcoin::Rightmost32_8 => b"i",
1245            Bitcoin::Rightmost64_1 => b"l",
1246            Bitcoin::Rightmost64_16 => b"l",
1247            Bitcoin::Rightmost64_2 => b"l",
1248            Bitcoin::Rightmost64_32 => b"l",
1249            Bitcoin::Rightmost64_4 => b"l",
1250            Bitcoin::Rightmost64_8 => b"l",
1251            Bitcoin::Rightmost8_1 => b"***22*22**22*22",
1252            Bitcoin::Rightmost8_2 => b"***22*22**22*22",
1253            Bitcoin::Rightmost8_4 => b"***22*22**22*22",
1254            Bitcoin::ScalarAdd => b"*hh",
1255            Bitcoin::ScalarInvert => b"h",
1256            Bitcoin::ScalarIsZero => b"h",
1257            Bitcoin::ScalarMultiply => b"*hh",
1258            Bitcoin::ScalarMultiplyLambda => b"h",
1259            Bitcoin::ScalarNegate => b"h",
1260            Bitcoin::ScalarNormalize => b"h",
1261            Bitcoin::ScalarSquare => b"h",
1262            Bitcoin::Scale => b"*h**hhh",
1263            Bitcoin::ScriptCMR => b"1",
1264            Bitcoin::Sha256Block => b"*h*hh",
1265            Bitcoin::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",
1266            Bitcoin::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
1267            Bitcoin::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
1268            Bitcoin::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",
1269            Bitcoin::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",
1270            Bitcoin::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
1271            Bitcoin::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
1272            Bitcoin::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",
1273            Bitcoin::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
1274            Bitcoin::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
1275            Bitcoin::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",
1276            Bitcoin::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1277            Bitcoin::Sha256Ctx8Init => b"1",
1278            Bitcoin::Sha256Iv => b"1",
1279            Bitcoin::SigAllHash => b"1",
1280            Bitcoin::Some1 => b"2",
1281            Bitcoin::Some16 => b"****22*22**22*22***22*22**22*22",
1282            Bitcoin::Some32 => b"i",
1283            Bitcoin::Some64 => b"l",
1284            Bitcoin::Some8 => b"***22*22**22*22",
1285            Bitcoin::Subtract16 => b"i",
1286            Bitcoin::Subtract32 => b"l",
1287            Bitcoin::Subtract64 => b"*ll",
1288            Bitcoin::Subtract8 => b"****22*22**22*22***22*22**22*22",
1289            Bitcoin::Swu => b"h",
1290            Bitcoin::TapEnvHash => b"1",
1291            Bitcoin::TapdataInit => b"1",
1292            Bitcoin::TapleafHash => b"1",
1293            Bitcoin::TapleafVersion => b"1",
1294            Bitcoin::Tappath => b"***22*22**22*22",
1295            Bitcoin::TappathHash => b"1",
1296            Bitcoin::TotalInputValue => b"1",
1297            Bitcoin::TotalOutputValue => b"1",
1298            Bitcoin::TransactionId => b"1",
1299            Bitcoin::TxHash => b"1",
1300            Bitcoin::TxIsFinal => b"1",
1301            Bitcoin::TxLockDistance => b"1",
1302            Bitcoin::TxLockDuration => b"1",
1303            Bitcoin::TxLockHeight => b"1",
1304            Bitcoin::TxLockTime => b"1",
1305            Bitcoin::Verify => b"2",
1306            Bitcoin::Version => b"1",
1307            Bitcoin::Xor1 => b"*22",
1308            Bitcoin::Xor16 => b"i",
1309            Bitcoin::Xor32 => b"l",
1310            Bitcoin::Xor64 => b"*ll",
1311            Bitcoin::Xor8 => b"****22*22**22*22***22*22**22*22",
1312            Bitcoin::XorXor1 => b"*2*22",
1313            Bitcoin::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
1314            Bitcoin::XorXor32 => b"*il",
1315            Bitcoin::XorXor64 => b"*l*ll",
1316            Bitcoin::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1317        };
1318
1319        TypeName(name)
1320    }
1321
1322    fn target_ty(&self) -> TypeName {
1323        let name: &'static [u8] = match self {
1324            Bitcoin::Add16 => b"*2****22*22**22*22***22*22**22*22",
1325            Bitcoin::Add32 => b"*2i",
1326            Bitcoin::Add64 => b"*2l",
1327            Bitcoin::Add8 => b"*2***22*22**22*22",
1328            Bitcoin::All16 => b"2",
1329            Bitcoin::All32 => b"2",
1330            Bitcoin::All64 => b"2",
1331            Bitcoin::All8 => b"2",
1332            Bitcoin::And1 => b"2",
1333            Bitcoin::And16 => b"****22*22**22*22***22*22**22*22",
1334            Bitcoin::And32 => b"i",
1335            Bitcoin::And64 => b"l",
1336            Bitcoin::And8 => b"***22*22**22*22",
1337            Bitcoin::AnnexHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1338            Bitcoin::Bip0340Verify => b"1",
1339            Bitcoin::BuildTapbranch => b"h",
1340            Bitcoin::BuildTapleafSimplicity => b"h",
1341            Bitcoin::BuildTaptweak => b"h",
1342            Bitcoin::Ch1 => b"2",
1343            Bitcoin::Ch16 => b"****22*22**22*22***22*22**22*22",
1344            Bitcoin::Ch32 => b"i",
1345            Bitcoin::Ch64 => b"l",
1346            Bitcoin::Ch8 => b"***22*22**22*22",
1347            Bitcoin::CheckLockDistance => b"1",
1348            Bitcoin::CheckLockDuration => b"1",
1349            Bitcoin::CheckLockHeight => b"1",
1350            Bitcoin::CheckLockTime => b"1",
1351            Bitcoin::CheckSigVerify => b"1",
1352            Bitcoin::Complement1 => b"2",
1353            Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22",
1354            Bitcoin::Complement32 => b"i",
1355            Bitcoin::Complement64 => b"l",
1356            Bitcoin::Complement8 => b"***22*22**22*22",
1357            Bitcoin::CurrentAnnexHash => b"+1h",
1358            Bitcoin::CurrentIndex => b"i",
1359            Bitcoin::CurrentPrevOutpoint => b"*hi",
1360            Bitcoin::CurrentScriptHash => b"h",
1361            Bitcoin::CurrentScriptSigHash => b"h",
1362            Bitcoin::CurrentSequence => b"i",
1363            Bitcoin::CurrentValue => b"l",
1364            Bitcoin::Decompress => b"+1*hh",
1365            Bitcoin::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
1366            Bitcoin::Decrement32 => b"*2i",
1367            Bitcoin::Decrement64 => b"*2l",
1368            Bitcoin::Decrement8 => b"*2***22*22**22*22",
1369            Bitcoin::DivMod128_64 => b"*ll",
1370            Bitcoin::DivMod16 => b"i",
1371            Bitcoin::DivMod32 => b"l",
1372            Bitcoin::DivMod64 => b"*ll",
1373            Bitcoin::DivMod8 => b"****22*22**22*22***22*22**22*22",
1374            Bitcoin::Divide16 => b"****22*22**22*22***22*22**22*22",
1375            Bitcoin::Divide32 => b"i",
1376            Bitcoin::Divide64 => b"l",
1377            Bitcoin::Divide8 => b"***22*22**22*22",
1378            Bitcoin::Divides16 => b"2",
1379            Bitcoin::Divides32 => b"2",
1380            Bitcoin::Divides64 => b"2",
1381            Bitcoin::Divides8 => b"2",
1382            Bitcoin::Eq1 => b"2",
1383            Bitcoin::Eq16 => b"2",
1384            Bitcoin::Eq256 => b"2",
1385            Bitcoin::Eq32 => b"2",
1386            Bitcoin::Eq64 => b"2",
1387            Bitcoin::Eq8 => b"2",
1388            Bitcoin::FeAdd => b"h",
1389            Bitcoin::FeInvert => b"h",
1390            Bitcoin::FeIsOdd => b"2",
1391            Bitcoin::FeIsZero => b"2",
1392            Bitcoin::FeMultiply => b"h",
1393            Bitcoin::FeMultiplyBeta => b"h",
1394            Bitcoin::FeNegate => b"h",
1395            Bitcoin::FeNormalize => b"h",
1396            Bitcoin::FeSquare => b"h",
1397            Bitcoin::FeSquareRoot => b"+1h",
1398            Bitcoin::Fee => b"l",
1399            Bitcoin::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
1400            Bitcoin::FullAdd32 => b"*2i",
1401            Bitcoin::FullAdd64 => b"*2l",
1402            Bitcoin::FullAdd8 => b"*2***22*22**22*22",
1403            Bitcoin::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
1404            Bitcoin::FullDecrement32 => b"*2i",
1405            Bitcoin::FullDecrement64 => b"*2l",
1406            Bitcoin::FullDecrement8 => b"*2***22*22**22*22",
1407            Bitcoin::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
1408            Bitcoin::FullIncrement32 => b"*2i",
1409            Bitcoin::FullIncrement64 => b"*2l",
1410            Bitcoin::FullIncrement8 => b"*2***22*22**22*22",
1411            Bitcoin::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
1412            Bitcoin::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
1413            Bitcoin::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
1414            Bitcoin::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1415            Bitcoin::FullLeftShift32_1 => b"*2i",
1416            Bitcoin::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
1417            Bitcoin::FullLeftShift32_2 => b"**22i",
1418            Bitcoin::FullLeftShift32_4 => b"***22*22i",
1419            Bitcoin::FullLeftShift32_8 => b"****22*22**22*22i",
1420            Bitcoin::FullLeftShift64_1 => b"*2l",
1421            Bitcoin::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
1422            Bitcoin::FullLeftShift64_2 => b"**22l",
1423            Bitcoin::FullLeftShift64_32 => b"*il",
1424            Bitcoin::FullLeftShift64_4 => b"***22*22l",
1425            Bitcoin::FullLeftShift64_8 => b"****22*22**22*22l",
1426            Bitcoin::FullLeftShift8_1 => b"*2***22*22**22*22",
1427            Bitcoin::FullLeftShift8_2 => b"**22***22*22**22*22",
1428            Bitcoin::FullLeftShift8_4 => b"***22*22***22*22**22*22",
1429            Bitcoin::FullMultiply16 => b"i",
1430            Bitcoin::FullMultiply32 => b"l",
1431            Bitcoin::FullMultiply64 => b"*ll",
1432            Bitcoin::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
1433            Bitcoin::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
1434            Bitcoin::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
1435            Bitcoin::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
1436            Bitcoin::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
1437            Bitcoin::FullRightShift32_1 => b"*i2",
1438            Bitcoin::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
1439            Bitcoin::FullRightShift32_2 => b"*i*22",
1440            Bitcoin::FullRightShift32_4 => b"*i**22*22",
1441            Bitcoin::FullRightShift32_8 => b"*i***22*22**22*22",
1442            Bitcoin::FullRightShift64_1 => b"*l2",
1443            Bitcoin::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
1444            Bitcoin::FullRightShift64_2 => b"*l*22",
1445            Bitcoin::FullRightShift64_32 => b"*li",
1446            Bitcoin::FullRightShift64_4 => b"*l**22*22",
1447            Bitcoin::FullRightShift64_8 => b"*l***22*22**22*22",
1448            Bitcoin::FullRightShift8_1 => b"****22*22**22*222",
1449            Bitcoin::FullRightShift8_2 => b"****22*22**22*22*22",
1450            Bitcoin::FullRightShift8_4 => b"****22*22**22*22**22*22",
1451            Bitcoin::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
1452            Bitcoin::FullSubtract32 => b"*2i",
1453            Bitcoin::FullSubtract64 => b"*2l",
1454            Bitcoin::FullSubtract8 => b"*2***22*22**22*22",
1455            Bitcoin::GeIsOnCurve => b"2",
1456            Bitcoin::GeNegate => b"*hh",
1457            Bitcoin::GejAdd => b"**hhh",
1458            Bitcoin::GejDouble => b"**hhh",
1459            Bitcoin::GejEquiv => b"2",
1460            Bitcoin::GejGeAdd => b"**hhh",
1461            Bitcoin::GejGeAddEx => b"*h**hhh",
1462            Bitcoin::GejGeEquiv => b"2",
1463            Bitcoin::GejInfinity => b"**hhh",
1464            Bitcoin::GejIsInfinity => b"2",
1465            Bitcoin::GejIsOnCurve => b"2",
1466            Bitcoin::GejNegate => b"**hhh",
1467            Bitcoin::GejNormalize => b"+1*hh",
1468            Bitcoin::GejRescale => b"**hhh",
1469            Bitcoin::GejXEquiv => b"2",
1470            Bitcoin::GejYIsOdd => b"2",
1471            Bitcoin::Generate => b"**hhh",
1472            Bitcoin::HashToCurve => b"*hh",
1473            Bitcoin::High1 => b"2",
1474            Bitcoin::High16 => b"****22*22**22*22***22*22**22*22",
1475            Bitcoin::High32 => b"i",
1476            Bitcoin::High64 => b"l",
1477            Bitcoin::High8 => b"***22*22**22*22",
1478            Bitcoin::Increment16 => b"*2****22*22**22*22***22*22**22*22",
1479            Bitcoin::Increment32 => b"*2i",
1480            Bitcoin::Increment64 => b"*2l",
1481            Bitcoin::Increment8 => b"*2***22*22**22*22",
1482            Bitcoin::InputAnnexHash => b"+1+1h",
1483            Bitcoin::InputAnnexesHash => b"h",
1484            Bitcoin::InputHash => b"+1h",
1485            Bitcoin::InputOutpointsHash => b"h",
1486            Bitcoin::InputPrevOutpoint => b"+1*hi",
1487            Bitcoin::InputScriptHash => b"+1h",
1488            Bitcoin::InputScriptSigHash => b"+1h",
1489            Bitcoin::InputScriptSigsHash => b"h",
1490            Bitcoin::InputScriptsHash => b"h",
1491            Bitcoin::InputSequence => b"+1i",
1492            Bitcoin::InputSequencesHash => b"h",
1493            Bitcoin::InputUtxoHash => b"+1h",
1494            Bitcoin::InputUtxosHash => b"h",
1495            Bitcoin::InputValue => b"+1l",
1496            Bitcoin::InputValuesHash => b"h",
1497            Bitcoin::InputsHash => b"h",
1498            Bitcoin::InternalKey => b"h",
1499            Bitcoin::IsOne16 => b"2",
1500            Bitcoin::IsOne32 => b"2",
1501            Bitcoin::IsOne64 => b"2",
1502            Bitcoin::IsOne8 => b"2",
1503            Bitcoin::IsZero16 => b"2",
1504            Bitcoin::IsZero32 => b"2",
1505            Bitcoin::IsZero64 => b"2",
1506            Bitcoin::IsZero8 => b"2",
1507            Bitcoin::Le16 => b"2",
1508            Bitcoin::Le32 => b"2",
1509            Bitcoin::Le64 => b"2",
1510            Bitcoin::Le8 => b"2",
1511            Bitcoin::LeftExtend16_32 => b"i",
1512            Bitcoin::LeftExtend16_64 => b"l",
1513            Bitcoin::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
1514            Bitcoin::LeftExtend1_32 => b"i",
1515            Bitcoin::LeftExtend1_64 => b"l",
1516            Bitcoin::LeftExtend1_8 => b"***22*22**22*22",
1517            Bitcoin::LeftExtend32_64 => b"l",
1518            Bitcoin::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
1519            Bitcoin::LeftExtend8_32 => b"i",
1520            Bitcoin::LeftExtend8_64 => b"l",
1521            Bitcoin::LeftPadHigh16_32 => b"i",
1522            Bitcoin::LeftPadHigh16_64 => b"l",
1523            Bitcoin::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
1524            Bitcoin::LeftPadHigh1_32 => b"i",
1525            Bitcoin::LeftPadHigh1_64 => b"l",
1526            Bitcoin::LeftPadHigh1_8 => b"***22*22**22*22",
1527            Bitcoin::LeftPadHigh32_64 => b"l",
1528            Bitcoin::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
1529            Bitcoin::LeftPadHigh8_32 => b"i",
1530            Bitcoin::LeftPadHigh8_64 => b"l",
1531            Bitcoin::LeftPadLow16_32 => b"i",
1532            Bitcoin::LeftPadLow16_64 => b"l",
1533            Bitcoin::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
1534            Bitcoin::LeftPadLow1_32 => b"i",
1535            Bitcoin::LeftPadLow1_64 => b"l",
1536            Bitcoin::LeftPadLow1_8 => b"***22*22**22*22",
1537            Bitcoin::LeftPadLow32_64 => b"l",
1538            Bitcoin::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
1539            Bitcoin::LeftPadLow8_32 => b"i",
1540            Bitcoin::LeftPadLow8_64 => b"l",
1541            Bitcoin::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
1542            Bitcoin::LeftRotate32 => b"i",
1543            Bitcoin::LeftRotate64 => b"l",
1544            Bitcoin::LeftRotate8 => b"***22*22**22*22",
1545            Bitcoin::LeftShift16 => b"****22*22**22*22***22*22**22*22",
1546            Bitcoin::LeftShift32 => b"i",
1547            Bitcoin::LeftShift64 => b"l",
1548            Bitcoin::LeftShift8 => b"***22*22**22*22",
1549            Bitcoin::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
1550            Bitcoin::LeftShiftWith32 => b"i",
1551            Bitcoin::LeftShiftWith64 => b"l",
1552            Bitcoin::LeftShiftWith8 => b"***22*22**22*22",
1553            Bitcoin::Leftmost16_1 => b"2",
1554            Bitcoin::Leftmost16_2 => b"*22",
1555            Bitcoin::Leftmost16_4 => b"**22*22",
1556            Bitcoin::Leftmost16_8 => b"***22*22**22*22",
1557            Bitcoin::Leftmost32_1 => b"2",
1558            Bitcoin::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
1559            Bitcoin::Leftmost32_2 => b"*22",
1560            Bitcoin::Leftmost32_4 => b"**22*22",
1561            Bitcoin::Leftmost32_8 => b"***22*22**22*22",
1562            Bitcoin::Leftmost64_1 => b"2",
1563            Bitcoin::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
1564            Bitcoin::Leftmost64_2 => b"*22",
1565            Bitcoin::Leftmost64_32 => b"i",
1566            Bitcoin::Leftmost64_4 => b"**22*22",
1567            Bitcoin::Leftmost64_8 => b"***22*22**22*22",
1568            Bitcoin::Leftmost8_1 => b"2",
1569            Bitcoin::Leftmost8_2 => b"*22",
1570            Bitcoin::Leftmost8_4 => b"**22*22",
1571            Bitcoin::LinearCombination1 => b"**hhh",
1572            Bitcoin::LinearVerify1 => b"1",
1573            Bitcoin::LockTime => b"i",
1574            Bitcoin::Low1 => b"2",
1575            Bitcoin::Low16 => b"****22*22**22*22***22*22**22*22",
1576            Bitcoin::Low32 => b"i",
1577            Bitcoin::Low64 => b"l",
1578            Bitcoin::Low8 => b"***22*22**22*22",
1579            Bitcoin::Lt16 => b"2",
1580            Bitcoin::Lt32 => b"2",
1581            Bitcoin::Lt64 => b"2",
1582            Bitcoin::Lt8 => b"2",
1583            Bitcoin::Maj1 => b"2",
1584            Bitcoin::Maj16 => b"****22*22**22*22***22*22**22*22",
1585            Bitcoin::Maj32 => b"i",
1586            Bitcoin::Maj64 => b"l",
1587            Bitcoin::Maj8 => b"***22*22**22*22",
1588            Bitcoin::Max16 => b"****22*22**22*22***22*22**22*22",
1589            Bitcoin::Max32 => b"i",
1590            Bitcoin::Max64 => b"l",
1591            Bitcoin::Max8 => b"***22*22**22*22",
1592            Bitcoin::Median16 => b"****22*22**22*22***22*22**22*22",
1593            Bitcoin::Median32 => b"i",
1594            Bitcoin::Median64 => b"l",
1595            Bitcoin::Median8 => b"***22*22**22*22",
1596            Bitcoin::Min16 => b"****22*22**22*22***22*22**22*22",
1597            Bitcoin::Min32 => b"i",
1598            Bitcoin::Min64 => b"l",
1599            Bitcoin::Min8 => b"***22*22**22*22",
1600            Bitcoin::Modulo16 => b"****22*22**22*22***22*22**22*22",
1601            Bitcoin::Modulo32 => b"i",
1602            Bitcoin::Modulo64 => b"l",
1603            Bitcoin::Modulo8 => b"***22*22**22*22",
1604            Bitcoin::Multiply16 => b"i",
1605            Bitcoin::Multiply32 => b"l",
1606            Bitcoin::Multiply64 => b"*ll",
1607            Bitcoin::Multiply8 => b"****22*22**22*22***22*22**22*22",
1608            Bitcoin::Negate16 => b"*2****22*22**22*22***22*22**22*22",
1609            Bitcoin::Negate32 => b"*2i",
1610            Bitcoin::Negate64 => b"*2l",
1611            Bitcoin::Negate8 => b"*2***22*22**22*22",
1612            Bitcoin::NumInputs => b"i",
1613            Bitcoin::NumOutputs => b"i",
1614            Bitcoin::One16 => b"****22*22**22*22***22*22**22*22",
1615            Bitcoin::One32 => b"i",
1616            Bitcoin::One64 => b"l",
1617            Bitcoin::One8 => b"***22*22**22*22",
1618            Bitcoin::Or1 => b"2",
1619            Bitcoin::Or16 => b"****22*22**22*22***22*22**22*22",
1620            Bitcoin::Or32 => b"i",
1621            Bitcoin::Or64 => b"l",
1622            Bitcoin::Or8 => b"***22*22**22*22",
1623            Bitcoin::OutpointHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1624            Bitcoin::OutputHash => b"+1h",
1625            Bitcoin::OutputScriptHash => b"+1h",
1626            Bitcoin::OutputScriptsHash => b"h",
1627            Bitcoin::OutputValue => b"+1l",
1628            Bitcoin::OutputValuesHash => b"h",
1629            Bitcoin::OutputsHash => b"h",
1630            Bitcoin::ParseLock => b"+ii",
1631            Bitcoin::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
1632            Bitcoin::PointVerify1 => b"1",
1633            Bitcoin::RightExtend16_32 => b"i",
1634            Bitcoin::RightExtend16_64 => b"l",
1635            Bitcoin::RightExtend32_64 => b"l",
1636            Bitcoin::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
1637            Bitcoin::RightExtend8_32 => b"i",
1638            Bitcoin::RightExtend8_64 => b"l",
1639            Bitcoin::RightPadHigh16_32 => b"i",
1640            Bitcoin::RightPadHigh16_64 => b"l",
1641            Bitcoin::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
1642            Bitcoin::RightPadHigh1_32 => b"i",
1643            Bitcoin::RightPadHigh1_64 => b"l",
1644            Bitcoin::RightPadHigh1_8 => b"***22*22**22*22",
1645            Bitcoin::RightPadHigh32_64 => b"l",
1646            Bitcoin::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
1647            Bitcoin::RightPadHigh8_32 => b"i",
1648            Bitcoin::RightPadHigh8_64 => b"l",
1649            Bitcoin::RightPadLow16_32 => b"i",
1650            Bitcoin::RightPadLow16_64 => b"l",
1651            Bitcoin::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
1652            Bitcoin::RightPadLow1_32 => b"i",
1653            Bitcoin::RightPadLow1_64 => b"l",
1654            Bitcoin::RightPadLow1_8 => b"***22*22**22*22",
1655            Bitcoin::RightPadLow32_64 => b"l",
1656            Bitcoin::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
1657            Bitcoin::RightPadLow8_32 => b"i",
1658            Bitcoin::RightPadLow8_64 => b"l",
1659            Bitcoin::RightRotate16 => b"****22*22**22*22***22*22**22*22",
1660            Bitcoin::RightRotate32 => b"i",
1661            Bitcoin::RightRotate64 => b"l",
1662            Bitcoin::RightRotate8 => b"***22*22**22*22",
1663            Bitcoin::RightShift16 => b"****22*22**22*22***22*22**22*22",
1664            Bitcoin::RightShift32 => b"i",
1665            Bitcoin::RightShift64 => b"l",
1666            Bitcoin::RightShift8 => b"***22*22**22*22",
1667            Bitcoin::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
1668            Bitcoin::RightShiftWith32 => b"i",
1669            Bitcoin::RightShiftWith64 => b"l",
1670            Bitcoin::RightShiftWith8 => b"***22*22**22*22",
1671            Bitcoin::Rightmost16_1 => b"2",
1672            Bitcoin::Rightmost16_2 => b"*22",
1673            Bitcoin::Rightmost16_4 => b"**22*22",
1674            Bitcoin::Rightmost16_8 => b"***22*22**22*22",
1675            Bitcoin::Rightmost32_1 => b"2",
1676            Bitcoin::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
1677            Bitcoin::Rightmost32_2 => b"*22",
1678            Bitcoin::Rightmost32_4 => b"**22*22",
1679            Bitcoin::Rightmost32_8 => b"***22*22**22*22",
1680            Bitcoin::Rightmost64_1 => b"2",
1681            Bitcoin::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
1682            Bitcoin::Rightmost64_2 => b"*22",
1683            Bitcoin::Rightmost64_32 => b"i",
1684            Bitcoin::Rightmost64_4 => b"**22*22",
1685            Bitcoin::Rightmost64_8 => b"***22*22**22*22",
1686            Bitcoin::Rightmost8_1 => b"2",
1687            Bitcoin::Rightmost8_2 => b"*22",
1688            Bitcoin::Rightmost8_4 => b"**22*22",
1689            Bitcoin::ScalarAdd => b"h",
1690            Bitcoin::ScalarInvert => b"h",
1691            Bitcoin::ScalarIsZero => b"2",
1692            Bitcoin::ScalarMultiply => b"h",
1693            Bitcoin::ScalarMultiplyLambda => b"h",
1694            Bitcoin::ScalarNegate => b"h",
1695            Bitcoin::ScalarNormalize => b"h",
1696            Bitcoin::ScalarSquare => b"h",
1697            Bitcoin::Scale => b"**hhh",
1698            Bitcoin::ScriptCMR => b"h",
1699            Bitcoin::Sha256Block => b"h",
1700            Bitcoin::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1701            Bitcoin::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1702            Bitcoin::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1703            Bitcoin::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1704            Bitcoin::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1705            Bitcoin::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1706            Bitcoin::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1707            Bitcoin::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1708            Bitcoin::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1709            Bitcoin::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1710            Bitcoin::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1711            Bitcoin::Sha256Ctx8Finalize => b"h",
1712            Bitcoin::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1713            Bitcoin::Sha256Iv => b"h",
1714            Bitcoin::SigAllHash => b"h",
1715            Bitcoin::Some1 => b"2",
1716            Bitcoin::Some16 => b"2",
1717            Bitcoin::Some32 => b"2",
1718            Bitcoin::Some64 => b"2",
1719            Bitcoin::Some8 => b"2",
1720            Bitcoin::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
1721            Bitcoin::Subtract32 => b"*2i",
1722            Bitcoin::Subtract64 => b"*2l",
1723            Bitcoin::Subtract8 => b"*2***22*22**22*22",
1724            Bitcoin::Swu => b"*hh",
1725            Bitcoin::TapEnvHash => b"h",
1726            Bitcoin::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1727            Bitcoin::TapleafHash => b"h",
1728            Bitcoin::TapleafVersion => b"***22*22**22*22",
1729            Bitcoin::Tappath => b"+1h",
1730            Bitcoin::TappathHash => b"h",
1731            Bitcoin::TotalInputValue => b"l",
1732            Bitcoin::TotalOutputValue => b"l",
1733            Bitcoin::TransactionId => b"h",
1734            Bitcoin::TxHash => b"h",
1735            Bitcoin::TxIsFinal => b"2",
1736            Bitcoin::TxLockDistance => b"****22*22**22*22***22*22**22*22",
1737            Bitcoin::TxLockDuration => b"****22*22**22*22***22*22**22*22",
1738            Bitcoin::TxLockHeight => b"i",
1739            Bitcoin::TxLockTime => b"i",
1740            Bitcoin::Verify => b"1",
1741            Bitcoin::Version => b"i",
1742            Bitcoin::Xor1 => b"2",
1743            Bitcoin::Xor16 => b"****22*22**22*22***22*22**22*22",
1744            Bitcoin::Xor32 => b"i",
1745            Bitcoin::Xor64 => b"l",
1746            Bitcoin::Xor8 => b"***22*22**22*22",
1747            Bitcoin::XorXor1 => b"2",
1748            Bitcoin::XorXor16 => b"****22*22**22*22***22*22**22*22",
1749            Bitcoin::XorXor32 => b"i",
1750            Bitcoin::XorXor64 => b"l",
1751            Bitcoin::XorXor8 => b"***22*22**22*22",
1752        };
1753
1754        TypeName(name)
1755    }
1756
1757    fn encode(&self, w: &mut BitWriter<&mut dyn Write>) -> std::io::Result<usize> {
1758        let (n, len) = match self {
1759            Bitcoin::Verify => (0, 3),
1760            Bitcoin::Low1 => (8, 6),
1761            Bitcoin::Low8 => (37, 8),
1762            Bitcoin::Low16 => (304, 11),
1763            Bitcoin::Low32 => (305, 11),
1764            Bitcoin::Low64 => (306, 11),
1765            Bitcoin::High1 => (10, 6),
1766            Bitcoin::High8 => (45, 8),
1767            Bitcoin::High16 => (368, 11),
1768            Bitcoin::High32 => (369, 11),
1769            Bitcoin::High64 => (370, 11),
1770            Bitcoin::Complement1 => (96, 9),
1771            Bitcoin::Complement8 => (389, 11),
1772            Bitcoin::Complement16 => (3120, 14),
1773            Bitcoin::Complement32 => (3121, 14),
1774            Bitcoin::Complement64 => (3122, 14),
1775            Bitcoin::And1 => (98, 9),
1776            Bitcoin::And8 => (397, 11),
1777            Bitcoin::And16 => (3184, 14),
1778            Bitcoin::And32 => (3185, 14),
1779            Bitcoin::And64 => (3186, 14),
1780            Bitcoin::Or1 => (100, 9),
1781            Bitcoin::Or8 => (405, 11),
1782            Bitcoin::Or16 => (3248, 14),
1783            Bitcoin::Or32 => (3249, 14),
1784            Bitcoin::Or64 => (3250, 14),
1785            Bitcoin::Xor1 => (102, 9),
1786            Bitcoin::Xor8 => (413, 11),
1787            Bitcoin::Xor16 => (3312, 14),
1788            Bitcoin::Xor32 => (3313, 14),
1789            Bitcoin::Xor64 => (3314, 14),
1790            Bitcoin::Maj1 => (208, 10),
1791            Bitcoin::Maj8 => (837, 12),
1792            Bitcoin::Maj16 => (6704, 15),
1793            Bitcoin::Maj32 => (6705, 15),
1794            Bitcoin::Maj64 => (6706, 15),
1795            Bitcoin::XorXor1 => (210, 10),
1796            Bitcoin::XorXor8 => (845, 12),
1797            Bitcoin::XorXor16 => (6768, 15),
1798            Bitcoin::XorXor32 => (6769, 15),
1799            Bitcoin::XorXor64 => (6770, 15),
1800            Bitcoin::Ch1 => (212, 10),
1801            Bitcoin::Ch8 => (853, 12),
1802            Bitcoin::Ch16 => (6832, 15),
1803            Bitcoin::Ch32 => (6833, 15),
1804            Bitcoin::Ch64 => (6834, 15),
1805            Bitcoin::Some1 => (214, 10),
1806            Bitcoin::Some8 => (861, 12),
1807            Bitcoin::Some16 => (6896, 15),
1808            Bitcoin::Some32 => (6897, 15),
1809            Bitcoin::Some64 => (6898, 15),
1810            Bitcoin::All8 => (869, 12),
1811            Bitcoin::All16 => (6960, 15),
1812            Bitcoin::All32 => (6961, 15),
1813            Bitcoin::All64 => (6962, 15),
1814            Bitcoin::Eq1 => (218, 10),
1815            Bitcoin::Eq8 => (877, 12),
1816            Bitcoin::Eq16 => (7024, 15),
1817            Bitcoin::Eq32 => (7025, 15),
1818            Bitcoin::Eq64 => (7026, 15),
1819            Bitcoin::Eq256 => (14056, 16),
1820            Bitcoin::FullLeftShift8_1 => (1765, 13),
1821            Bitcoin::FullLeftShift16_1 => (14128, 16),
1822            Bitcoin::FullLeftShift32_1 => (14129, 16),
1823            Bitcoin::FullLeftShift64_1 => (14130, 16),
1824            Bitcoin::FullLeftShift8_2 => (7076, 15),
1825            Bitcoin::FullLeftShift16_2 => (7077, 15),
1826            Bitcoin::FullLeftShift32_2 => (56624, 18),
1827            Bitcoin::FullLeftShift64_2 => (56625, 18),
1828            Bitcoin::FullLeftShift8_4 => (1770, 13),
1829            Bitcoin::FullLeftShift16_4 => (7084, 15),
1830            Bitcoin::FullLeftShift32_4 => (7085, 15),
1831            Bitcoin::FullLeftShift64_4 => (56688, 18),
1832            Bitcoin::FullLeftShift16_8 => (14176, 16),
1833            Bitcoin::FullLeftShift32_8 => (56708, 18),
1834            Bitcoin::FullLeftShift64_8 => (56709, 18),
1835            Bitcoin::FullLeftShift32_16 => (14178, 16),
1836            Bitcoin::FullLeftShift64_16 => (56716, 18),
1837            Bitcoin::FullLeftShift64_32 => (14180, 16),
1838            Bitcoin::FullRightShift8_1 => (1781, 13),
1839            Bitcoin::FullRightShift16_1 => (14256, 16),
1840            Bitcoin::FullRightShift32_1 => (14257, 16),
1841            Bitcoin::FullRightShift64_1 => (14258, 16),
1842            Bitcoin::FullRightShift8_2 => (7140, 15),
1843            Bitcoin::FullRightShift16_2 => (7141, 15),
1844            Bitcoin::FullRightShift32_2 => (57136, 18),
1845            Bitcoin::FullRightShift64_2 => (57137, 18),
1846            Bitcoin::FullRightShift8_4 => (1786, 13),
1847            Bitcoin::FullRightShift16_4 => (7148, 15),
1848            Bitcoin::FullRightShift32_4 => (7149, 15),
1849            Bitcoin::FullRightShift64_4 => (57200, 18),
1850            Bitcoin::FullRightShift16_8 => (14304, 16),
1851            Bitcoin::FullRightShift32_8 => (57220, 18),
1852            Bitcoin::FullRightShift64_8 => (57221, 18),
1853            Bitcoin::FullRightShift32_16 => (14306, 16),
1854            Bitcoin::FullRightShift64_16 => (57228, 18),
1855            Bitcoin::FullRightShift64_32 => (14308, 16),
1856            Bitcoin::Leftmost8_1 => (28677, 17),
1857            Bitcoin::Leftmost16_1 => (229424, 20),
1858            Bitcoin::Leftmost32_1 => (229425, 20),
1859            Bitcoin::Leftmost64_1 => (229426, 20),
1860            Bitcoin::Leftmost8_2 => (114724, 19),
1861            Bitcoin::Leftmost16_2 => (114725, 19),
1862            Bitcoin::Leftmost32_2 => (917808, 22),
1863            Bitcoin::Leftmost64_2 => (917809, 22),
1864            Bitcoin::Leftmost8_4 => (28682, 17),
1865            Bitcoin::Leftmost16_4 => (114732, 19),
1866            Bitcoin::Leftmost32_4 => (114733, 19),
1867            Bitcoin::Leftmost64_4 => (917872, 22),
1868            Bitcoin::Leftmost16_8 => (229472, 20),
1869            Bitcoin::Leftmost32_8 => (917892, 22),
1870            Bitcoin::Leftmost64_8 => (917893, 22),
1871            Bitcoin::Leftmost32_16 => (229474, 20),
1872            Bitcoin::Leftmost64_16 => (917900, 22),
1873            Bitcoin::Leftmost64_32 => (229476, 20),
1874            Bitcoin::Rightmost8_1 => (28693, 17),
1875            Bitcoin::Rightmost16_1 => (229552, 20),
1876            Bitcoin::Rightmost32_1 => (229553, 20),
1877            Bitcoin::Rightmost64_1 => (229554, 20),
1878            Bitcoin::Rightmost8_2 => (114788, 19),
1879            Bitcoin::Rightmost16_2 => (114789, 19),
1880            Bitcoin::Rightmost32_2 => (918320, 22),
1881            Bitcoin::Rightmost64_2 => (918321, 22),
1882            Bitcoin::Rightmost8_4 => (28698, 17),
1883            Bitcoin::Rightmost16_4 => (114796, 19),
1884            Bitcoin::Rightmost32_4 => (114797, 19),
1885            Bitcoin::Rightmost64_4 => (918384, 22),
1886            Bitcoin::Rightmost16_8 => (229600, 20),
1887            Bitcoin::Rightmost32_8 => (918404, 22),
1888            Bitcoin::Rightmost64_8 => (918405, 22),
1889            Bitcoin::Rightmost32_16 => (229602, 20),
1890            Bitcoin::Rightmost64_16 => (918412, 22),
1891            Bitcoin::Rightmost64_32 => (229604, 20),
1892            Bitcoin::LeftPadLow1_8 => (28709, 17),
1893            Bitcoin::LeftPadLow1_16 => (229680, 20),
1894            Bitcoin::LeftPadLow1_32 => (229681, 20),
1895            Bitcoin::LeftPadLow1_64 => (229682, 20),
1896            Bitcoin::LeftPadLow8_16 => (229728, 20),
1897            Bitcoin::LeftPadLow8_32 => (918916, 22),
1898            Bitcoin::LeftPadLow8_64 => (918917, 22),
1899            Bitcoin::LeftPadLow16_32 => (229730, 20),
1900            Bitcoin::LeftPadLow16_64 => (918924, 22),
1901            Bitcoin::LeftPadLow32_64 => (229732, 20),
1902            Bitcoin::LeftPadHigh1_8 => (28725, 17),
1903            Bitcoin::LeftPadHigh1_16 => (229808, 20),
1904            Bitcoin::LeftPadHigh1_32 => (229809, 20),
1905            Bitcoin::LeftPadHigh1_64 => (229810, 20),
1906            Bitcoin::LeftPadHigh8_16 => (229856, 20),
1907            Bitcoin::LeftPadHigh8_32 => (919428, 22),
1908            Bitcoin::LeftPadHigh8_64 => (919429, 22),
1909            Bitcoin::LeftPadHigh16_32 => (229858, 20),
1910            Bitcoin::LeftPadHigh16_64 => (919436, 22),
1911            Bitcoin::LeftPadHigh32_64 => (229860, 20),
1912            Bitcoin::LeftExtend1_8 => (28741, 17),
1913            Bitcoin::LeftExtend1_16 => (229936, 20),
1914            Bitcoin::LeftExtend1_32 => (229937, 20),
1915            Bitcoin::LeftExtend1_64 => (229938, 20),
1916            Bitcoin::LeftExtend8_16 => (229984, 20),
1917            Bitcoin::LeftExtend8_32 => (919940, 22),
1918            Bitcoin::LeftExtend8_64 => (919941, 22),
1919            Bitcoin::LeftExtend16_32 => (229986, 20),
1920            Bitcoin::LeftExtend16_64 => (919948, 22),
1921            Bitcoin::LeftExtend32_64 => (229988, 20),
1922            Bitcoin::RightPadLow1_8 => (28757, 17),
1923            Bitcoin::RightPadLow1_16 => (230064, 20),
1924            Bitcoin::RightPadLow1_32 => (230065, 20),
1925            Bitcoin::RightPadLow1_64 => (230066, 20),
1926            Bitcoin::RightPadLow8_16 => (230112, 20),
1927            Bitcoin::RightPadLow8_32 => (920452, 22),
1928            Bitcoin::RightPadLow8_64 => (920453, 22),
1929            Bitcoin::RightPadLow16_32 => (230114, 20),
1930            Bitcoin::RightPadLow16_64 => (920460, 22),
1931            Bitcoin::RightPadLow32_64 => (230116, 20),
1932            Bitcoin::RightPadHigh1_8 => (28773, 17),
1933            Bitcoin::RightPadHigh1_16 => (230192, 20),
1934            Bitcoin::RightPadHigh1_32 => (230193, 20),
1935            Bitcoin::RightPadHigh1_64 => (230194, 20),
1936            Bitcoin::RightPadHigh8_16 => (230240, 20),
1937            Bitcoin::RightPadHigh8_32 => (920964, 22),
1938            Bitcoin::RightPadHigh8_64 => (920965, 22),
1939            Bitcoin::RightPadHigh16_32 => (230242, 20),
1940            Bitcoin::RightPadHigh16_64 => (920972, 22),
1941            Bitcoin::RightPadHigh32_64 => (230244, 20),
1942            Bitcoin::RightExtend8_16 => (230368, 20),
1943            Bitcoin::RightExtend8_32 => (921476, 22),
1944            Bitcoin::RightExtend8_64 => (921477, 22),
1945            Bitcoin::RightExtend16_32 => (230370, 20),
1946            Bitcoin::RightExtend16_64 => (921484, 22),
1947            Bitcoin::RightExtend32_64 => (230372, 20),
1948            Bitcoin::LeftShiftWith8 => (14405, 16),
1949            Bitcoin::LeftShiftWith16 => (115248, 19),
1950            Bitcoin::LeftShiftWith32 => (115249, 19),
1951            Bitcoin::LeftShiftWith64 => (115250, 19),
1952            Bitcoin::RightShiftWith8 => (14413, 16),
1953            Bitcoin::RightShiftWith16 => (115312, 19),
1954            Bitcoin::RightShiftWith32 => (115313, 19),
1955            Bitcoin::RightShiftWith64 => (115314, 19),
1956            Bitcoin::LeftShift8 => (14421, 16),
1957            Bitcoin::LeftShift16 => (115376, 19),
1958            Bitcoin::LeftShift32 => (115377, 19),
1959            Bitcoin::LeftShift64 => (115378, 19),
1960            Bitcoin::RightShift8 => (14429, 16),
1961            Bitcoin::RightShift16 => (115440, 19),
1962            Bitcoin::RightShift32 => (115441, 19),
1963            Bitcoin::RightShift64 => (115442, 19),
1964            Bitcoin::LeftRotate8 => (14437, 16),
1965            Bitcoin::LeftRotate16 => (115504, 19),
1966            Bitcoin::LeftRotate32 => (115505, 19),
1967            Bitcoin::LeftRotate64 => (115506, 19),
1968            Bitcoin::RightRotate8 => (14445, 16),
1969            Bitcoin::RightRotate16 => (115568, 19),
1970            Bitcoin::RightRotate32 => (115569, 19),
1971            Bitcoin::RightRotate64 => (115570, 19),
1972            Bitcoin::One8 => (69, 8),
1973            Bitcoin::One16 => (560, 11),
1974            Bitcoin::One32 => (561, 11),
1975            Bitcoin::One64 => (562, 11),
1976            Bitcoin::FullAdd8 => (293, 10),
1977            Bitcoin::FullAdd16 => (2352, 13),
1978            Bitcoin::FullAdd32 => (2353, 13),
1979            Bitcoin::FullAdd64 => (2354, 13),
1980            Bitcoin::Add8 => (301, 10),
1981            Bitcoin::Add16 => (2416, 13),
1982            Bitcoin::Add32 => (2417, 13),
1983            Bitcoin::Add64 => (2418, 13),
1984            Bitcoin::FullIncrement8 => (2437, 13),
1985            Bitcoin::FullIncrement16 => (19504, 16),
1986            Bitcoin::FullIncrement32 => (19505, 16),
1987            Bitcoin::FullIncrement64 => (19506, 16),
1988            Bitcoin::Increment8 => (2445, 13),
1989            Bitcoin::Increment16 => (19568, 16),
1990            Bitcoin::Increment32 => (19569, 16),
1991            Bitcoin::Increment64 => (19570, 16),
1992            Bitcoin::FullSubtract8 => (2461, 13),
1993            Bitcoin::FullSubtract16 => (19696, 16),
1994            Bitcoin::FullSubtract32 => (19697, 16),
1995            Bitcoin::FullSubtract64 => (19698, 16),
1996            Bitcoin::Subtract8 => (4933, 14),
1997            Bitcoin::Subtract16 => (39472, 17),
1998            Bitcoin::Subtract32 => (39473, 17),
1999            Bitcoin::Subtract64 => (39474, 17),
2000            Bitcoin::Negate8 => (4941, 14),
2001            Bitcoin::Negate16 => (39536, 17),
2002            Bitcoin::Negate32 => (39537, 17),
2003            Bitcoin::Negate64 => (39538, 17),
2004            Bitcoin::FullDecrement8 => (4949, 14),
2005            Bitcoin::FullDecrement16 => (39600, 17),
2006            Bitcoin::FullDecrement32 => (39601, 17),
2007            Bitcoin::FullDecrement64 => (39602, 17),
2008            Bitcoin::Decrement8 => (4957, 14),
2009            Bitcoin::Decrement16 => (39664, 17),
2010            Bitcoin::Decrement32 => (39665, 17),
2011            Bitcoin::Decrement64 => (39666, 17),
2012            Bitcoin::FullMultiply8 => (4965, 14),
2013            Bitcoin::FullMultiply16 => (39728, 17),
2014            Bitcoin::FullMultiply32 => (39729, 17),
2015            Bitcoin::FullMultiply64 => (39730, 17),
2016            Bitcoin::Multiply8 => (4973, 14),
2017            Bitcoin::Multiply16 => (39792, 17),
2018            Bitcoin::Multiply32 => (39793, 17),
2019            Bitcoin::Multiply64 => (39794, 17),
2020            Bitcoin::IsZero8 => (4981, 14),
2021            Bitcoin::IsZero16 => (39856, 17),
2022            Bitcoin::IsZero32 => (39857, 17),
2023            Bitcoin::IsZero64 => (39858, 17),
2024            Bitcoin::IsOne8 => (4989, 14),
2025            Bitcoin::IsOne16 => (39920, 17),
2026            Bitcoin::IsOne32 => (39921, 17),
2027            Bitcoin::IsOne64 => (39922, 17),
2028            Bitcoin::Le8 => (79877, 18),
2029            Bitcoin::Le16 => (639024, 21),
2030            Bitcoin::Le32 => (639025, 21),
2031            Bitcoin::Le64 => (639026, 21),
2032            Bitcoin::Lt8 => (79885, 18),
2033            Bitcoin::Lt16 => (639088, 21),
2034            Bitcoin::Lt32 => (639089, 21),
2035            Bitcoin::Lt64 => (639090, 21),
2036            Bitcoin::Min8 => (79893, 18),
2037            Bitcoin::Min16 => (639152, 21),
2038            Bitcoin::Min32 => (639153, 21),
2039            Bitcoin::Min64 => (639154, 21),
2040            Bitcoin::Max8 => (79901, 18),
2041            Bitcoin::Max16 => (639216, 21),
2042            Bitcoin::Max32 => (639217, 21),
2043            Bitcoin::Max64 => (639218, 21),
2044            Bitcoin::Median8 => (79909, 18),
2045            Bitcoin::Median16 => (639280, 21),
2046            Bitcoin::Median32 => (639281, 21),
2047            Bitcoin::Median64 => (639282, 21),
2048            Bitcoin::DivMod128_64 => (639346, 21),
2049            Bitcoin::DivMod8 => (79925, 18),
2050            Bitcoin::DivMod16 => (639408, 21),
2051            Bitcoin::DivMod32 => (639409, 21),
2052            Bitcoin::DivMod64 => (639410, 21),
2053            Bitcoin::Divide8 => (79933, 18),
2054            Bitcoin::Divide16 => (639472, 21),
2055            Bitcoin::Divide32 => (639473, 21),
2056            Bitcoin::Divide64 => (639474, 21),
2057            Bitcoin::Modulo8 => (79941, 18),
2058            Bitcoin::Modulo16 => (639536, 21),
2059            Bitcoin::Modulo32 => (639537, 21),
2060            Bitcoin::Modulo64 => (639538, 21),
2061            Bitcoin::Divides8 => (79949, 18),
2062            Bitcoin::Divides16 => (639600, 21),
2063            Bitcoin::Divides32 => (639601, 21),
2064            Bitcoin::Divides64 => (639602, 21),
2065            Bitcoin::Sha256Block => (20, 6),
2066            Bitcoin::Sha256Iv => (84, 8),
2067            Bitcoin::Sha256Ctx8Add1 => (170, 9),
2068            Bitcoin::Sha256Ctx8Add2 => (684, 11),
2069            Bitcoin::Sha256Ctx8Add4 => (685, 11),
2070            Bitcoin::Sha256Ctx8Add8 => (5488, 14),
2071            Bitcoin::Sha256Ctx8Add16 => (5489, 14),
2072            Bitcoin::Sha256Ctx8Add32 => (5490, 14),
2073            Bitcoin::Sha256Ctx8Add64 => (5491, 14),
2074            Bitcoin::Sha256Ctx8Add128 => (10984, 15),
2075            Bitcoin::Sha256Ctx8Add256 => (10985, 15),
2076            Bitcoin::Sha256Ctx8Add512 => (10986, 15),
2077            Bitcoin::Sha256Ctx8AddBuffer511 => (688, 11),
2078            Bitcoin::Sha256Ctx8Finalize => (689, 11),
2079            Bitcoin::Sha256Ctx8Init => (690, 11),
2080            Bitcoin::PointVerify1 => (192, 9),
2081            Bitcoin::Decompress => (388, 10),
2082            Bitcoin::LinearVerify1 => (778, 11),
2083            Bitcoin::LinearCombination1 => (6240, 14),
2084            Bitcoin::Scale => (3121, 13),
2085            Bitcoin::Generate => (3122, 13),
2086            Bitcoin::GejInfinity => (3123, 13),
2087            Bitcoin::GejNormalize => (6248, 14),
2088            Bitcoin::GejNegate => (6249, 14),
2089            Bitcoin::GeNegate => (6250, 14),
2090            Bitcoin::GejDouble => (6251, 14),
2091            Bitcoin::GejAdd => (6252, 14),
2092            Bitcoin::GejGeAddEx => (6253, 14),
2093            Bitcoin::GejGeAdd => (6254, 14),
2094            Bitcoin::GejRescale => (6255, 14),
2095            Bitcoin::GejIsInfinity => (100096, 18),
2096            Bitcoin::GejEquiv => (100097, 18),
2097            Bitcoin::GejGeEquiv => (100098, 18),
2098            Bitcoin::GejXEquiv => (100099, 18),
2099            Bitcoin::GejYIsOdd => (100100, 18),
2100            Bitcoin::GejIsOnCurve => (100101, 18),
2101            Bitcoin::GeIsOnCurve => (100102, 18),
2102            Bitcoin::ScalarNormalize => (100103, 18),
2103            Bitcoin::ScalarNegate => (100104, 18),
2104            Bitcoin::ScalarAdd => (100105, 18),
2105            Bitcoin::ScalarSquare => (100106, 18),
2106            Bitcoin::ScalarMultiply => (100107, 18),
2107            Bitcoin::ScalarMultiplyLambda => (100108, 18),
2108            Bitcoin::ScalarInvert => (100109, 18),
2109            Bitcoin::ScalarIsZero => (100110, 18),
2110            Bitcoin::FeNormalize => (200227, 19),
2111            Bitcoin::FeNegate => (200228, 19),
2112            Bitcoin::FeAdd => (200229, 19),
2113            Bitcoin::FeSquare => (200230, 19),
2114            Bitcoin::FeMultiply => (200231, 19),
2115            Bitcoin::FeMultiplyBeta => (200232, 19),
2116            Bitcoin::FeInvert => (200233, 19),
2117            Bitcoin::FeSquareRoot => (200234, 19),
2118            Bitcoin::FeIsZero => (200235, 19),
2119            Bitcoin::FeIsOdd => (200236, 19),
2120            Bitcoin::HashToCurve => (200238, 19),
2121            Bitcoin::Swu => (200239, 19),
2122            Bitcoin::CheckSigVerify => (98, 8),
2123            Bitcoin::Bip0340Verify => (396, 10),
2124            Bitcoin::ParseLock => (102, 8),
2125            Bitcoin::ParseSequence => (412, 10),
2126            Bitcoin::TapdataInit => (413, 10),
2127            Bitcoin::SigAllHash => (4, 3),
2128            Bitcoin::TxHash => (20, 5),
2129            Bitcoin::TapEnvHash => (21, 5),
2130            Bitcoin::OutputsHash => (176, 8),
2131            Bitcoin::InputsHash => (177, 8),
2132            Bitcoin::InputUtxosHash => (178, 8),
2133            Bitcoin::OutputHash => (179, 8),
2134            Bitcoin::OutputValuesHash => (360, 9),
2135            Bitcoin::OutputScriptsHash => (361, 9),
2136            Bitcoin::InputHash => (362, 9),
2137            Bitcoin::InputOutpointsHash => (363, 9),
2138            Bitcoin::InputSequencesHash => (364, 9),
2139            Bitcoin::InputAnnexesHash => (365, 9),
2140            Bitcoin::InputScriptSigsHash => (366, 9),
2141            Bitcoin::InputUtxoHash => (367, 9),
2142            Bitcoin::InputValuesHash => (5888, 13),
2143            Bitcoin::InputScriptsHash => (5889, 13),
2144            Bitcoin::TapleafHash => (5890, 13),
2145            Bitcoin::TappathHash => (5891, 13),
2146            Bitcoin::OutpointHash => (5892, 13),
2147            Bitcoin::AnnexHash => (5893, 13),
2148            Bitcoin::BuildTapleafSimplicity => (5894, 13),
2149            Bitcoin::BuildTapbranch => (5895, 13),
2150            Bitcoin::BuildTaptweak => (5896, 13),
2151            Bitcoin::CheckLockHeight => (24, 5),
2152            Bitcoin::CheckLockTime => (100, 7),
2153            Bitcoin::CheckLockDistance => (101, 7),
2154            Bitcoin::CheckLockDuration => (816, 10),
2155            Bitcoin::TxLockHeight => (817, 10),
2156            Bitcoin::TxLockTime => (818, 10),
2157            Bitcoin::TxLockDistance => (819, 10),
2158            Bitcoin::TxLockDuration => (1640, 11),
2159            Bitcoin::TxIsFinal => (1641, 11),
2160            Bitcoin::ScriptCMR => (26, 5),
2161            Bitcoin::InternalKey => (108, 7),
2162            Bitcoin::CurrentIndex => (109, 7),
2163            Bitcoin::NumInputs => (880, 10),
2164            Bitcoin::NumOutputs => (881, 10),
2165            Bitcoin::LockTime => (882, 10),
2166            Bitcoin::Fee => (883, 10),
2167            Bitcoin::OutputValue => (1768, 11),
2168            Bitcoin::OutputScriptHash => (1769, 11),
2169            Bitcoin::TotalOutputValue => (1770, 11),
2170            Bitcoin::CurrentPrevOutpoint => (1771, 11),
2171            Bitcoin::CurrentValue => (1772, 11),
2172            Bitcoin::CurrentScriptHash => (1773, 11),
2173            Bitcoin::CurrentSequence => (1774, 11),
2174            Bitcoin::CurrentAnnexHash => (1775, 11),
2175            Bitcoin::CurrentScriptSigHash => (28416, 15),
2176            Bitcoin::InputPrevOutpoint => (28417, 15),
2177            Bitcoin::InputValue => (28418, 15),
2178            Bitcoin::InputScriptHash => (28419, 15),
2179            Bitcoin::InputSequence => (28420, 15),
2180            Bitcoin::InputAnnexHash => (28421, 15),
2181            Bitcoin::InputScriptSigHash => (28422, 15),
2182            Bitcoin::TotalInputValue => (28423, 15),
2183            Bitcoin::TapleafVersion => (28424, 15),
2184            Bitcoin::Tappath => (28425, 15),
2185            Bitcoin::Version => (28426, 15),
2186            Bitcoin::TransactionId => (28427, 15),
2187        };
2188
2189        w.write_bits_be(n, len)
2190    }
2191
2192    fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> where Self: Sized {
2193        decode_bits!(bits, {
2194            0 => {
2195                0 => {
2196                    0 => {Bitcoin::Verify},
2197                    1 => {
2198                        0 => {
2199                            0 => {
2200                                0 => {Bitcoin::Low1},
2201                                1 => {
2202                                    0 => {
2203                                        0 => {},
2204                                        1 => {Bitcoin::Low8}
2205                                    },
2206                                    1 => {
2207                                        0 => {
2208                                            0 => {
2209                                                0 => {
2210                                                    0 => {Bitcoin::Low16},
2211                                                    1 => {Bitcoin::Low32}
2212                                                },
2213                                                1 => {
2214                                                    0 => {Bitcoin::Low64},
2215                                                    1 => {}
2216                                                }
2217                                            },
2218                                            1 => {}
2219                                        },
2220                                        1 => {}
2221                                    }
2222                                }
2223                            },
2224                            1 => {
2225                                0 => {Bitcoin::High1},
2226                                1 => {
2227                                    0 => {
2228                                        0 => {},
2229                                        1 => {Bitcoin::High8}
2230                                    },
2231                                    1 => {
2232                                        0 => {
2233                                            0 => {
2234                                                0 => {
2235                                                    0 => {Bitcoin::High16},
2236                                                    1 => {Bitcoin::High32}
2237                                                },
2238                                                1 => {
2239                                                    0 => {Bitcoin::High64},
2240                                                    1 => {}
2241                                                }
2242                                            },
2243                                            1 => {}
2244                                        },
2245                                        1 => {}
2246                                    }
2247                                }
2248                            }
2249                        },
2250                        1 => {
2251                            0 => {
2252                                0 => {
2253                                    0 => {
2254                                        0 => {
2255                                            0 => {Bitcoin::Complement1},
2256                                            1 => {
2257                                                0 => {
2258                                                    0 => {},
2259                                                    1 => {Bitcoin::Complement8}
2260                                                },
2261                                                1 => {
2262                                                    0 => {
2263                                                        0 => {
2264                                                            0 => {
2265                                                                0 => {Bitcoin::Complement16},
2266                                                                1 => {Bitcoin::Complement32}
2267                                                            },
2268                                                            1 => {
2269                                                                0 => {Bitcoin::Complement64},
2270                                                                1 => {}
2271                                                            }
2272                                                        },
2273                                                        1 => {}
2274                                                    },
2275                                                    1 => {}
2276                                                }
2277                                            }
2278                                        },
2279                                        1 => {
2280                                            0 => {Bitcoin::And1},
2281                                            1 => {
2282                                                0 => {
2283                                                    0 => {},
2284                                                    1 => {Bitcoin::And8}
2285                                                },
2286                                                1 => {
2287                                                    0 => {
2288                                                        0 => {
2289                                                            0 => {
2290                                                                0 => {Bitcoin::And16},
2291                                                                1 => {Bitcoin::And32}
2292                                                            },
2293                                                            1 => {
2294                                                                0 => {Bitcoin::And64},
2295                                                                1 => {}
2296                                                            }
2297                                                        },
2298                                                        1 => {}
2299                                                    },
2300                                                    1 => {}
2301                                                }
2302                                            }
2303                                        }
2304                                    },
2305                                    1 => {
2306                                        0 => {
2307                                            0 => {Bitcoin::Or1},
2308                                            1 => {
2309                                                0 => {
2310                                                    0 => {},
2311                                                    1 => {Bitcoin::Or8}
2312                                                },
2313                                                1 => {
2314                                                    0 => {
2315                                                        0 => {
2316                                                            0 => {
2317                                                                0 => {Bitcoin::Or16},
2318                                                                1 => {Bitcoin::Or32}
2319                                                            },
2320                                                            1 => {
2321                                                                0 => {Bitcoin::Or64},
2322                                                                1 => {}
2323                                                            }
2324                                                        },
2325                                                        1 => {}
2326                                                    },
2327                                                    1 => {}
2328                                                }
2329                                            }
2330                                        },
2331                                        1 => {
2332                                            0 => {Bitcoin::Xor1},
2333                                            1 => {
2334                                                0 => {
2335                                                    0 => {},
2336                                                    1 => {Bitcoin::Xor8}
2337                                                },
2338                                                1 => {
2339                                                    0 => {
2340                                                        0 => {
2341                                                            0 => {
2342                                                                0 => {Bitcoin::Xor16},
2343                                                                1 => {Bitcoin::Xor32}
2344                                                            },
2345                                                            1 => {
2346                                                                0 => {Bitcoin::Xor64},
2347                                                                1 => {}
2348                                                            }
2349                                                        },
2350                                                        1 => {}
2351                                                    },
2352                                                    1 => {}
2353                                                }
2354                                            }
2355                                        }
2356                                    }
2357                                },
2358                                1 => {
2359                                    0 => {
2360                                        0 => {
2361                                            0 => {
2362                                                0 => {Bitcoin::Maj1},
2363                                                1 => {
2364                                                    0 => {
2365                                                        0 => {},
2366                                                        1 => {Bitcoin::Maj8}
2367                                                    },
2368                                                    1 => {
2369                                                        0 => {
2370                                                            0 => {
2371                                                                0 => {
2372                                                                    0 => {Bitcoin::Maj16},
2373                                                                    1 => {Bitcoin::Maj32}
2374                                                                },
2375                                                                1 => {
2376                                                                    0 => {Bitcoin::Maj64},
2377                                                                    1 => {}
2378                                                                }
2379                                                            },
2380                                                            1 => {}
2381                                                        },
2382                                                        1 => {}
2383                                                    }
2384                                                }
2385                                            },
2386                                            1 => {
2387                                                0 => {Bitcoin::XorXor1},
2388                                                1 => {
2389                                                    0 => {
2390                                                        0 => {},
2391                                                        1 => {Bitcoin::XorXor8}
2392                                                    },
2393                                                    1 => {
2394                                                        0 => {
2395                                                            0 => {
2396                                                                0 => {
2397                                                                    0 => {Bitcoin::XorXor16},
2398                                                                    1 => {Bitcoin::XorXor32}
2399                                                                },
2400                                                                1 => {
2401                                                                    0 => {Bitcoin::XorXor64},
2402                                                                    1 => {}
2403                                                                }
2404                                                            },
2405                                                            1 => {}
2406                                                        },
2407                                                        1 => {}
2408                                                    }
2409                                                }
2410                                            }
2411                                        },
2412                                        1 => {
2413                                            0 => {
2414                                                0 => {Bitcoin::Ch1},
2415                                                1 => {
2416                                                    0 => {
2417                                                        0 => {},
2418                                                        1 => {Bitcoin::Ch8}
2419                                                    },
2420                                                    1 => {
2421                                                        0 => {
2422                                                            0 => {
2423                                                                0 => {
2424                                                                    0 => {Bitcoin::Ch16},
2425                                                                    1 => {Bitcoin::Ch32}
2426                                                                },
2427                                                                1 => {
2428                                                                    0 => {Bitcoin::Ch64},
2429                                                                    1 => {}
2430                                                                }
2431                                                            },
2432                                                            1 => {}
2433                                                        },
2434                                                        1 => {}
2435                                                    }
2436                                                }
2437                                            },
2438                                            1 => {
2439                                                0 => {Bitcoin::Some1},
2440                                                1 => {
2441                                                    0 => {
2442                                                        0 => {},
2443                                                        1 => {Bitcoin::Some8}
2444                                                    },
2445                                                    1 => {
2446                                                        0 => {
2447                                                            0 => {
2448                                                                0 => {
2449                                                                    0 => {Bitcoin::Some16},
2450                                                                    1 => {Bitcoin::Some32}
2451                                                                },
2452                                                                1 => {
2453                                                                    0 => {Bitcoin::Some64},
2454                                                                    1 => {}
2455                                                                }
2456                                                            },
2457                                                            1 => {}
2458                                                        },
2459                                                        1 => {}
2460                                                    }
2461                                                }
2462                                            }
2463                                        }
2464                                    },
2465                                    1 => {
2466                                        0 => {
2467                                            0 => {
2468                                                0 => {},
2469                                                1 => {
2470                                                    0 => {
2471                                                        0 => {},
2472                                                        1 => {Bitcoin::All8}
2473                                                    },
2474                                                    1 => {
2475                                                        0 => {
2476                                                            0 => {
2477                                                                0 => {
2478                                                                    0 => {Bitcoin::All16},
2479                                                                    1 => {Bitcoin::All32}
2480                                                                },
2481                                                                1 => {
2482                                                                    0 => {Bitcoin::All64},
2483                                                                    1 => {}
2484                                                                }
2485                                                            },
2486                                                            1 => {}
2487                                                        },
2488                                                        1 => {}
2489                                                    }
2490                                                }
2491                                            },
2492                                            1 => {
2493                                                0 => {Bitcoin::Eq1},
2494                                                1 => {
2495                                                    0 => {
2496                                                        0 => {},
2497                                                        1 => {Bitcoin::Eq8}
2498                                                    },
2499                                                    1 => {
2500                                                        0 => {
2501                                                            0 => {
2502                                                                0 => {
2503                                                                    0 => {Bitcoin::Eq16},
2504                                                                    1 => {Bitcoin::Eq32}
2505                                                                },
2506                                                                1 => {
2507                                                                    0 => {Bitcoin::Eq64},
2508                                                                    1 => {}
2509                                                                }
2510                                                            },
2511                                                            1 => {
2512                                                                0 => {
2513                                                                    0 => {
2514                                                                        0 => {Bitcoin::Eq256},
2515                                                                        1 => {}
2516                                                                    },
2517                                                                    1 => {}
2518                                                                },
2519                                                                1 => {}
2520                                                            }
2521                                                        },
2522                                                        1 => {}
2523                                                    }
2524                                                }
2525                                            }
2526                                        },
2527                                        1 => {
2528                                            0 => {
2529                                                0 => {
2530                                                    0 => {},
2531                                                    1 => {
2532                                                        0 => {
2533                                                            0 => {},
2534                                                            1 => {Bitcoin::FullLeftShift8_1}
2535                                                        },
2536                                                        1 => {
2537                                                            0 => {
2538                                                                0 => {
2539                                                                    0 => {
2540                                                                        0 => {Bitcoin::FullLeftShift16_1},
2541                                                                        1 => {Bitcoin::FullLeftShift32_1}
2542                                                                    },
2543                                                                    1 => {
2544                                                                        0 => {Bitcoin::FullLeftShift64_1},
2545                                                                        1 => {}
2546                                                                    }
2547                                                                },
2548                                                                1 => {}
2549                                                            },
2550                                                            1 => {}
2551                                                        }
2552                                                    }
2553                                                },
2554                                                1 => {
2555                                                    0 => {
2556                                                        0 => {
2557                                                            0 => {},
2558                                                            1 => {
2559                                                                0 => {
2560                                                                    0 => {Bitcoin::FullLeftShift8_2},
2561                                                                    1 => {Bitcoin::FullLeftShift16_2}
2562                                                                },
2563                                                                1 => {
2564                                                                    0 => {
2565                                                                        0 => {
2566                                                                            0 => {
2567                                                                                0 => {Bitcoin::FullLeftShift32_2},
2568                                                                                1 => {Bitcoin::FullLeftShift64_2}
2569                                                                            },
2570                                                                            1 => {}
2571                                                                        },
2572                                                                        1 => {}
2573                                                                    },
2574                                                                    1 => {}
2575                                                                }
2576                                                            }
2577                                                        },
2578                                                        1 => {
2579                                                            0 => {Bitcoin::FullLeftShift8_4},
2580                                                            1 => {
2581                                                                0 => {
2582                                                                    0 => {Bitcoin::FullLeftShift16_4},
2583                                                                    1 => {Bitcoin::FullLeftShift32_4}
2584                                                                },
2585                                                                1 => {
2586                                                                    0 => {
2587                                                                        0 => {
2588                                                                            0 => {
2589                                                                                0 => {Bitcoin::FullLeftShift64_4},
2590                                                                                1 => {}
2591                                                                            },
2592                                                                            1 => {}
2593                                                                        },
2594                                                                        1 => {}
2595                                                                    },
2596                                                                    1 => {}
2597                                                                }
2598                                                            }
2599                                                        }
2600                                                    },
2601                                                    1 => {
2602                                                        0 => {
2603                                                            0 => {
2604                                                                0 => {
2605                                                                    0 => {
2606                                                                        0 => {Bitcoin::FullLeftShift16_8},
2607                                                                        1 => {
2608                                                                            0 => {
2609                                                                                0 => {Bitcoin::FullLeftShift32_8},
2610                                                                                1 => {Bitcoin::FullLeftShift64_8}
2611                                                                            },
2612                                                                            1 => {}
2613                                                                        }
2614                                                                    },
2615                                                                    1 => {
2616                                                                        0 => {Bitcoin::FullLeftShift32_16},
2617                                                                        1 => {
2618                                                                            0 => {
2619                                                                                0 => {Bitcoin::FullLeftShift64_16},
2620                                                                                1 => {}
2621                                                                            },
2622                                                                            1 => {}
2623                                                                        }
2624                                                                    }
2625                                                                },
2626                                                                1 => {
2627                                                                    0 => {
2628                                                                        0 => {Bitcoin::FullLeftShift64_32},
2629                                                                        1 => {}
2630                                                                    },
2631                                                                    1 => {}
2632                                                                }
2633                                                            },
2634                                                            1 => {}
2635                                                        },
2636                                                        1 => {}
2637                                                    }
2638                                                }
2639                                            },
2640                                            1 => {
2641                                                0 => {
2642                                                    0 => {},
2643                                                    1 => {
2644                                                        0 => {
2645                                                            0 => {},
2646                                                            1 => {Bitcoin::FullRightShift8_1}
2647                                                        },
2648                                                        1 => {
2649                                                            0 => {
2650                                                                0 => {
2651                                                                    0 => {
2652                                                                        0 => {Bitcoin::FullRightShift16_1},
2653                                                                        1 => {Bitcoin::FullRightShift32_1}
2654                                                                    },
2655                                                                    1 => {
2656                                                                        0 => {Bitcoin::FullRightShift64_1},
2657                                                                        1 => {}
2658                                                                    }
2659                                                                },
2660                                                                1 => {}
2661                                                            },
2662                                                            1 => {}
2663                                                        }
2664                                                    }
2665                                                },
2666                                                1 => {
2667                                                    0 => {
2668                                                        0 => {
2669                                                            0 => {},
2670                                                            1 => {
2671                                                                0 => {
2672                                                                    0 => {Bitcoin::FullRightShift8_2},
2673                                                                    1 => {Bitcoin::FullRightShift16_2}
2674                                                                },
2675                                                                1 => {
2676                                                                    0 => {
2677                                                                        0 => {
2678                                                                            0 => {
2679                                                                                0 => {Bitcoin::FullRightShift32_2},
2680                                                                                1 => {Bitcoin::FullRightShift64_2}
2681                                                                            },
2682                                                                            1 => {}
2683                                                                        },
2684                                                                        1 => {}
2685                                                                    },
2686                                                                    1 => {}
2687                                                                }
2688                                                            }
2689                                                        },
2690                                                        1 => {
2691                                                            0 => {Bitcoin::FullRightShift8_4},
2692                                                            1 => {
2693                                                                0 => {
2694                                                                    0 => {Bitcoin::FullRightShift16_4},
2695                                                                    1 => {Bitcoin::FullRightShift32_4}
2696                                                                },
2697                                                                1 => {
2698                                                                    0 => {
2699                                                                        0 => {
2700                                                                            0 => {
2701                                                                                0 => {Bitcoin::FullRightShift64_4},
2702                                                                                1 => {}
2703                                                                            },
2704                                                                            1 => {}
2705                                                                        },
2706                                                                        1 => {}
2707                                                                    },
2708                                                                    1 => {}
2709                                                                }
2710                                                            }
2711                                                        }
2712                                                    },
2713                                                    1 => {
2714                                                        0 => {
2715                                                            0 => {
2716                                                                0 => {
2717                                                                    0 => {
2718                                                                        0 => {Bitcoin::FullRightShift16_8},
2719                                                                        1 => {
2720                                                                            0 => {
2721                                                                                0 => {Bitcoin::FullRightShift32_8},
2722                                                                                1 => {Bitcoin::FullRightShift64_8}
2723                                                                            },
2724                                                                            1 => {}
2725                                                                        }
2726                                                                    },
2727                                                                    1 => {
2728                                                                        0 => {Bitcoin::FullRightShift32_16},
2729                                                                        1 => {
2730                                                                            0 => {
2731                                                                                0 => {Bitcoin::FullRightShift64_16},
2732                                                                                1 => {}
2733                                                                            },
2734                                                                            1 => {}
2735                                                                        }
2736                                                                    }
2737                                                                },
2738                                                                1 => {
2739                                                                    0 => {
2740                                                                        0 => {Bitcoin::FullRightShift64_32},
2741                                                                        1 => {}
2742                                                                    },
2743                                                                    1 => {}
2744                                                                }
2745                                                            },
2746                                                            1 => {}
2747                                                        },
2748                                                        1 => {}
2749                                                    }
2750                                                }
2751                                            }
2752                                        }
2753                                    }
2754                                }
2755                            },
2756                            1 => {
2757                                0 => {
2758                                    0 => {
2759                                        0 => {
2760                                            0 => {
2761                                                0 => {
2762                                                    0 => {
2763                                                        0 => {
2764                                                            0 => {
2765                                                                0 => {
2766                                                                    0 => {},
2767                                                                    1 => {
2768                                                                        0 => {
2769                                                                            0 => {},
2770                                                                            1 => {Bitcoin::Leftmost8_1}
2771                                                                        },
2772                                                                        1 => {
2773                                                                            0 => {
2774                                                                                0 => {
2775                                                                                    0 => {
2776                                                                                        0 => {Bitcoin::Leftmost16_1},
2777                                                                                        1 => {Bitcoin::Leftmost32_1}
2778                                                                                    },
2779                                                                                    1 => {
2780                                                                                        0 => {Bitcoin::Leftmost64_1},
2781                                                                                        1 => {}
2782                                                                                    }
2783                                                                                },
2784                                                                                1 => {}
2785                                                                            },
2786                                                                            1 => {}
2787                                                                        }
2788                                                                    }
2789                                                                },
2790                                                                1 => {
2791                                                                    0 => {
2792                                                                        0 => {
2793                                                                            0 => {},
2794                                                                            1 => {
2795                                                                                0 => {
2796                                                                                    0 => {Bitcoin::Leftmost8_2},
2797                                                                                    1 => {Bitcoin::Leftmost16_2}
2798                                                                                },
2799                                                                                1 => {
2800                                                                                    0 => {
2801                                                                                        0 => {
2802                                                                                            0 => {
2803                                                                                                0 => {Bitcoin::Leftmost32_2},
2804                                                                                                1 => {Bitcoin::Leftmost64_2}
2805                                                                                            },
2806                                                                                            1 => {}
2807                                                                                        },
2808                                                                                        1 => {}
2809                                                                                    },
2810                                                                                    1 => {}
2811                                                                                }
2812                                                                            }
2813                                                                        },
2814                                                                        1 => {
2815                                                                            0 => {Bitcoin::Leftmost8_4},
2816                                                                            1 => {
2817                                                                                0 => {
2818                                                                                    0 => {Bitcoin::Leftmost16_4},
2819                                                                                    1 => {Bitcoin::Leftmost32_4}
2820                                                                                },
2821                                                                                1 => {
2822                                                                                    0 => {
2823                                                                                        0 => {
2824                                                                                            0 => {
2825                                                                                                0 => {Bitcoin::Leftmost64_4},
2826                                                                                                1 => {}
2827                                                                                            },
2828                                                                                            1 => {}
2829                                                                                        },
2830                                                                                        1 => {}
2831                                                                                    },
2832                                                                                    1 => {}
2833                                                                                }
2834                                                                            }
2835                                                                        }
2836                                                                    },
2837                                                                    1 => {
2838                                                                        0 => {
2839                                                                            0 => {
2840                                                                                0 => {
2841                                                                                    0 => {
2842                                                                                        0 => {Bitcoin::Leftmost16_8},
2843                                                                                        1 => {
2844                                                                                            0 => {
2845                                                                                                0 => {Bitcoin::Leftmost32_8},
2846                                                                                                1 => {Bitcoin::Leftmost64_8}
2847                                                                                            },
2848                                                                                            1 => {}
2849                                                                                        }
2850                                                                                    },
2851                                                                                    1 => {
2852                                                                                        0 => {Bitcoin::Leftmost32_16},
2853                                                                                        1 => {
2854                                                                                            0 => {
2855                                                                                                0 => {Bitcoin::Leftmost64_16},
2856                                                                                                1 => {}
2857                                                                                            },
2858                                                                                            1 => {}
2859                                                                                        }
2860                                                                                    }
2861                                                                                },
2862                                                                                1 => {
2863                                                                                    0 => {
2864                                                                                        0 => {Bitcoin::Leftmost64_32},
2865                                                                                        1 => {}
2866                                                                                    },
2867                                                                                    1 => {}
2868                                                                                }
2869                                                                            },
2870                                                                            1 => {}
2871                                                                        },
2872                                                                        1 => {}
2873                                                                    }
2874                                                                }
2875                                                            },
2876                                                            1 => {
2877                                                                0 => {
2878                                                                    0 => {},
2879                                                                    1 => {
2880                                                                        0 => {
2881                                                                            0 => {},
2882                                                                            1 => {Bitcoin::Rightmost8_1}
2883                                                                        },
2884                                                                        1 => {
2885                                                                            0 => {
2886                                                                                0 => {
2887                                                                                    0 => {
2888                                                                                        0 => {Bitcoin::Rightmost16_1},
2889                                                                                        1 => {Bitcoin::Rightmost32_1}
2890                                                                                    },
2891                                                                                    1 => {
2892                                                                                        0 => {Bitcoin::Rightmost64_1},
2893                                                                                        1 => {}
2894                                                                                    }
2895                                                                                },
2896                                                                                1 => {}
2897                                                                            },
2898                                                                            1 => {}
2899                                                                        }
2900                                                                    }
2901                                                                },
2902                                                                1 => {
2903                                                                    0 => {
2904                                                                        0 => {
2905                                                                            0 => {},
2906                                                                            1 => {
2907                                                                                0 => {
2908                                                                                    0 => {Bitcoin::Rightmost8_2},
2909                                                                                    1 => {Bitcoin::Rightmost16_2}
2910                                                                                },
2911                                                                                1 => {
2912                                                                                    0 => {
2913                                                                                        0 => {
2914                                                                                            0 => {
2915                                                                                                0 => {Bitcoin::Rightmost32_2},
2916                                                                                                1 => {Bitcoin::Rightmost64_2}
2917                                                                                            },
2918                                                                                            1 => {}
2919                                                                                        },
2920                                                                                        1 => {}
2921                                                                                    },
2922                                                                                    1 => {}
2923                                                                                }
2924                                                                            }
2925                                                                        },
2926                                                                        1 => {
2927                                                                            0 => {Bitcoin::Rightmost8_4},
2928                                                                            1 => {
2929                                                                                0 => {
2930                                                                                    0 => {Bitcoin::Rightmost16_4},
2931                                                                                    1 => {Bitcoin::Rightmost32_4}
2932                                                                                },
2933                                                                                1 => {
2934                                                                                    0 => {
2935                                                                                        0 => {
2936                                                                                            0 => {
2937                                                                                                0 => {Bitcoin::Rightmost64_4},
2938                                                                                                1 => {}
2939                                                                                            },
2940                                                                                            1 => {}
2941                                                                                        },
2942                                                                                        1 => {}
2943                                                                                    },
2944                                                                                    1 => {}
2945                                                                                }
2946                                                                            }
2947                                                                        }
2948                                                                    },
2949                                                                    1 => {
2950                                                                        0 => {
2951                                                                            0 => {
2952                                                                                0 => {
2953                                                                                    0 => {
2954                                                                                        0 => {Bitcoin::Rightmost16_8},
2955                                                                                        1 => {
2956                                                                                            0 => {
2957                                                                                                0 => {Bitcoin::Rightmost32_8},
2958                                                                                                1 => {Bitcoin::Rightmost64_8}
2959                                                                                            },
2960                                                                                            1 => {}
2961                                                                                        }
2962                                                                                    },
2963                                                                                    1 => {
2964                                                                                        0 => {Bitcoin::Rightmost32_16},
2965                                                                                        1 => {
2966                                                                                            0 => {
2967                                                                                                0 => {Bitcoin::Rightmost64_16},
2968                                                                                                1 => {}
2969                                                                                            },
2970                                                                                            1 => {}
2971                                                                                        }
2972                                                                                    }
2973                                                                                },
2974                                                                                1 => {
2975                                                                                    0 => {
2976                                                                                        0 => {Bitcoin::Rightmost64_32},
2977                                                                                        1 => {}
2978                                                                                    },
2979                                                                                    1 => {}
2980                                                                                }
2981                                                                            },
2982                                                                            1 => {}
2983                                                                        },
2984                                                                        1 => {}
2985                                                                    }
2986                                                                }
2987                                                            }
2988                                                        },
2989                                                        1 => {
2990                                                            0 => {
2991                                                                0 => {
2992                                                                    0 => {},
2993                                                                    1 => {
2994                                                                        0 => {
2995                                                                            0 => {},
2996                                                                            1 => {Bitcoin::LeftPadLow1_8}
2997                                                                        },
2998                                                                        1 => {
2999                                                                            0 => {
3000                                                                                0 => {
3001                                                                                    0 => {
3002                                                                                        0 => {Bitcoin::LeftPadLow1_16},
3003                                                                                        1 => {Bitcoin::LeftPadLow1_32}
3004                                                                                    },
3005                                                                                    1 => {
3006                                                                                        0 => {Bitcoin::LeftPadLow1_64},
3007                                                                                        1 => {}
3008                                                                                    }
3009                                                                                },
3010                                                                                1 => {}
3011                                                                            },
3012                                                                            1 => {}
3013                                                                        }
3014                                                                    }
3015                                                                },
3016                                                                1 => {
3017                                                                    0 => {},
3018                                                                    1 => {
3019                                                                        0 => {
3020                                                                            0 => {
3021                                                                                0 => {
3022                                                                                    0 => {
3023                                                                                        0 => {Bitcoin::LeftPadLow8_16},
3024                                                                                        1 => {
3025                                                                                            0 => {
3026                                                                                                0 => {Bitcoin::LeftPadLow8_32},
3027                                                                                                1 => {Bitcoin::LeftPadLow8_64}
3028                                                                                            },
3029                                                                                            1 => {}
3030                                                                                        }
3031                                                                                    },
3032                                                                                    1 => {
3033                                                                                        0 => {Bitcoin::LeftPadLow16_32},
3034                                                                                        1 => {
3035                                                                                            0 => {
3036                                                                                                0 => {Bitcoin::LeftPadLow16_64},
3037                                                                                                1 => {}
3038                                                                                            },
3039                                                                                            1 => {}
3040                                                                                        }
3041                                                                                    }
3042                                                                                },
3043                                                                                1 => {
3044                                                                                    0 => {
3045                                                                                        0 => {Bitcoin::LeftPadLow32_64},
3046                                                                                        1 => {}
3047                                                                                    },
3048                                                                                    1 => {}
3049                                                                                }
3050                                                                            },
3051                                                                            1 => {}
3052                                                                        },
3053                                                                        1 => {}
3054                                                                    }
3055                                                                }
3056                                                            },
3057                                                            1 => {
3058                                                                0 => {
3059                                                                    0 => {},
3060                                                                    1 => {
3061                                                                        0 => {
3062                                                                            0 => {},
3063                                                                            1 => {Bitcoin::LeftPadHigh1_8}
3064                                                                        },
3065                                                                        1 => {
3066                                                                            0 => {
3067                                                                                0 => {
3068                                                                                    0 => {
3069                                                                                        0 => {Bitcoin::LeftPadHigh1_16},
3070                                                                                        1 => {Bitcoin::LeftPadHigh1_32}
3071                                                                                    },
3072                                                                                    1 => {
3073                                                                                        0 => {Bitcoin::LeftPadHigh1_64},
3074                                                                                        1 => {}
3075                                                                                    }
3076                                                                                },
3077                                                                                1 => {}
3078                                                                            },
3079                                                                            1 => {}
3080                                                                        }
3081                                                                    }
3082                                                                },
3083                                                                1 => {
3084                                                                    0 => {},
3085                                                                    1 => {
3086                                                                        0 => {
3087                                                                            0 => {
3088                                                                                0 => {
3089                                                                                    0 => {
3090                                                                                        0 => {Bitcoin::LeftPadHigh8_16},
3091                                                                                        1 => {
3092                                                                                            0 => {
3093                                                                                                0 => {Bitcoin::LeftPadHigh8_32},
3094                                                                                                1 => {Bitcoin::LeftPadHigh8_64}
3095                                                                                            },
3096                                                                                            1 => {}
3097                                                                                        }
3098                                                                                    },
3099                                                                                    1 => {
3100                                                                                        0 => {Bitcoin::LeftPadHigh16_32},
3101                                                                                        1 => {
3102                                                                                            0 => {
3103                                                                                                0 => {Bitcoin::LeftPadHigh16_64},
3104                                                                                                1 => {}
3105                                                                                            },
3106                                                                                            1 => {}
3107                                                                                        }
3108                                                                                    }
3109                                                                                },
3110                                                                                1 => {
3111                                                                                    0 => {
3112                                                                                        0 => {Bitcoin::LeftPadHigh32_64},
3113                                                                                        1 => {}
3114                                                                                    },
3115                                                                                    1 => {}
3116                                                                                }
3117                                                                            },
3118                                                                            1 => {}
3119                                                                        },
3120                                                                        1 => {}
3121                                                                    }
3122                                                                }
3123                                                            }
3124                                                        }
3125                                                    },
3126                                                    1 => {
3127                                                        0 => {
3128                                                            0 => {
3129                                                                0 => {
3130                                                                    0 => {},
3131                                                                    1 => {
3132                                                                        0 => {
3133                                                                            0 => {},
3134                                                                            1 => {Bitcoin::LeftExtend1_8}
3135                                                                        },
3136                                                                        1 => {
3137                                                                            0 => {
3138                                                                                0 => {
3139                                                                                    0 => {
3140                                                                                        0 => {Bitcoin::LeftExtend1_16},
3141                                                                                        1 => {Bitcoin::LeftExtend1_32}
3142                                                                                    },
3143                                                                                    1 => {
3144                                                                                        0 => {Bitcoin::LeftExtend1_64},
3145                                                                                        1 => {}
3146                                                                                    }
3147                                                                                },
3148                                                                                1 => {}
3149                                                                            },
3150                                                                            1 => {}
3151                                                                        }
3152                                                                    }
3153                                                                },
3154                                                                1 => {
3155                                                                    0 => {},
3156                                                                    1 => {
3157                                                                        0 => {
3158                                                                            0 => {
3159                                                                                0 => {
3160                                                                                    0 => {
3161                                                                                        0 => {Bitcoin::LeftExtend8_16},
3162                                                                                        1 => {
3163                                                                                            0 => {
3164                                                                                                0 => {Bitcoin::LeftExtend8_32},
3165                                                                                                1 => {Bitcoin::LeftExtend8_64}
3166                                                                                            },
3167                                                                                            1 => {}
3168                                                                                        }
3169                                                                                    },
3170                                                                                    1 => {
3171                                                                                        0 => {Bitcoin::LeftExtend16_32},
3172                                                                                        1 => {
3173                                                                                            0 => {
3174                                                                                                0 => {Bitcoin::LeftExtend16_64},
3175                                                                                                1 => {}
3176                                                                                            },
3177                                                                                            1 => {}
3178                                                                                        }
3179                                                                                    }
3180                                                                                },
3181                                                                                1 => {
3182                                                                                    0 => {
3183                                                                                        0 => {Bitcoin::LeftExtend32_64},
3184                                                                                        1 => {}
3185                                                                                    },
3186                                                                                    1 => {}
3187                                                                                }
3188                                                                            },
3189                                                                            1 => {}
3190                                                                        },
3191                                                                        1 => {}
3192                                                                    }
3193                                                                }
3194                                                            },
3195                                                            1 => {
3196                                                                0 => {
3197                                                                    0 => {},
3198                                                                    1 => {
3199                                                                        0 => {
3200                                                                            0 => {},
3201                                                                            1 => {Bitcoin::RightPadLow1_8}
3202                                                                        },
3203                                                                        1 => {
3204                                                                            0 => {
3205                                                                                0 => {
3206                                                                                    0 => {
3207                                                                                        0 => {Bitcoin::RightPadLow1_16},
3208                                                                                        1 => {Bitcoin::RightPadLow1_32}
3209                                                                                    },
3210                                                                                    1 => {
3211                                                                                        0 => {Bitcoin::RightPadLow1_64},
3212                                                                                        1 => {}
3213                                                                                    }
3214                                                                                },
3215                                                                                1 => {}
3216                                                                            },
3217                                                                            1 => {}
3218                                                                        }
3219                                                                    }
3220                                                                },
3221                                                                1 => {
3222                                                                    0 => {},
3223                                                                    1 => {
3224                                                                        0 => {
3225                                                                            0 => {
3226                                                                                0 => {
3227                                                                                    0 => {
3228                                                                                        0 => {Bitcoin::RightPadLow8_16},
3229                                                                                        1 => {
3230                                                                                            0 => {
3231                                                                                                0 => {Bitcoin::RightPadLow8_32},
3232                                                                                                1 => {Bitcoin::RightPadLow8_64}
3233                                                                                            },
3234                                                                                            1 => {}
3235                                                                                        }
3236                                                                                    },
3237                                                                                    1 => {
3238                                                                                        0 => {Bitcoin::RightPadLow16_32},
3239                                                                                        1 => {
3240                                                                                            0 => {
3241                                                                                                0 => {Bitcoin::RightPadLow16_64},
3242                                                                                                1 => {}
3243                                                                                            },
3244                                                                                            1 => {}
3245                                                                                        }
3246                                                                                    }
3247                                                                                },
3248                                                                                1 => {
3249                                                                                    0 => {
3250                                                                                        0 => {Bitcoin::RightPadLow32_64},
3251                                                                                        1 => {}
3252                                                                                    },
3253                                                                                    1 => {}
3254                                                                                }
3255                                                                            },
3256                                                                            1 => {}
3257                                                                        },
3258                                                                        1 => {}
3259                                                                    }
3260                                                                }
3261                                                            }
3262                                                        },
3263                                                        1 => {
3264                                                            0 => {
3265                                                                0 => {
3266                                                                    0 => {},
3267                                                                    1 => {
3268                                                                        0 => {
3269                                                                            0 => {},
3270                                                                            1 => {Bitcoin::RightPadHigh1_8}
3271                                                                        },
3272                                                                        1 => {
3273                                                                            0 => {
3274                                                                                0 => {
3275                                                                                    0 => {
3276                                                                                        0 => {Bitcoin::RightPadHigh1_16},
3277                                                                                        1 => {Bitcoin::RightPadHigh1_32}
3278                                                                                    },
3279                                                                                    1 => {
3280                                                                                        0 => {Bitcoin::RightPadHigh1_64},
3281                                                                                        1 => {}
3282                                                                                    }
3283                                                                                },
3284                                                                                1 => {}
3285                                                                            },
3286                                                                            1 => {}
3287                                                                        }
3288                                                                    }
3289                                                                },
3290                                                                1 => {
3291                                                                    0 => {},
3292                                                                    1 => {
3293                                                                        0 => {
3294                                                                            0 => {
3295                                                                                0 => {
3296                                                                                    0 => {
3297                                                                                        0 => {Bitcoin::RightPadHigh8_16},
3298                                                                                        1 => {
3299                                                                                            0 => {
3300                                                                                                0 => {Bitcoin::RightPadHigh8_32},
3301                                                                                                1 => {Bitcoin::RightPadHigh8_64}
3302                                                                                            },
3303                                                                                            1 => {}
3304                                                                                        }
3305                                                                                    },
3306                                                                                    1 => {
3307                                                                                        0 => {Bitcoin::RightPadHigh16_32},
3308                                                                                        1 => {
3309                                                                                            0 => {
3310                                                                                                0 => {Bitcoin::RightPadHigh16_64},
3311                                                                                                1 => {}
3312                                                                                            },
3313                                                                                            1 => {}
3314                                                                                        }
3315                                                                                    }
3316                                                                                },
3317                                                                                1 => {
3318                                                                                    0 => {
3319                                                                                        0 => {Bitcoin::RightPadHigh32_64},
3320                                                                                        1 => {}
3321                                                                                    },
3322                                                                                    1 => {}
3323                                                                                }
3324                                                                            },
3325                                                                            1 => {}
3326                                                                        },
3327                                                                        1 => {}
3328                                                                    }
3329                                                                }
3330                                                            },
3331                                                            1 => {
3332                                                                0 => {},
3333                                                                1 => {
3334                                                                    0 => {},
3335                                                                    1 => {
3336                                                                        0 => {
3337                                                                            0 => {
3338                                                                                0 => {
3339                                                                                    0 => {
3340                                                                                        0 => {Bitcoin::RightExtend8_16},
3341                                                                                        1 => {
3342                                                                                            0 => {
3343                                                                                                0 => {Bitcoin::RightExtend8_32},
3344                                                                                                1 => {Bitcoin::RightExtend8_64}
3345                                                                                            },
3346                                                                                            1 => {}
3347                                                                                        }
3348                                                                                    },
3349                                                                                    1 => {
3350                                                                                        0 => {Bitcoin::RightExtend16_32},
3351                                                                                        1 => {
3352                                                                                            0 => {
3353                                                                                                0 => {Bitcoin::RightExtend16_64},
3354                                                                                                1 => {}
3355                                                                                            },
3356                                                                                            1 => {}
3357                                                                                        }
3358                                                                                    }
3359                                                                                },
3360                                                                                1 => {
3361                                                                                    0 => {
3362                                                                                        0 => {Bitcoin::RightExtend32_64},
3363                                                                                        1 => {}
3364                                                                                    },
3365                                                                                    1 => {}
3366                                                                                }
3367                                                                            },
3368                                                                            1 => {}
3369                                                                        },
3370                                                                        1 => {}
3371                                                                    }
3372                                                                }
3373                                                            }
3374                                                        }
3375                                                    }
3376                                                },
3377                                                1 => {
3378                                                    0 => {
3379                                                        0 => {
3380                                                            0 => {
3381                                                                0 => {},
3382                                                                1 => {
3383                                                                    0 => {
3384                                                                        0 => {},
3385                                                                        1 => {Bitcoin::LeftShiftWith8}
3386                                                                    },
3387                                                                    1 => {
3388                                                                        0 => {
3389                                                                            0 => {
3390                                                                                0 => {
3391                                                                                    0 => {Bitcoin::LeftShiftWith16},
3392                                                                                    1 => {Bitcoin::LeftShiftWith32}
3393                                                                                },
3394                                                                                1 => {
3395                                                                                    0 => {Bitcoin::LeftShiftWith64},
3396                                                                                    1 => {}
3397                                                                                }
3398                                                                            },
3399                                                                            1 => {}
3400                                                                        },
3401                                                                        1 => {}
3402                                                                    }
3403                                                                }
3404                                                            },
3405                                                            1 => {
3406                                                                0 => {},
3407                                                                1 => {
3408                                                                    0 => {
3409                                                                        0 => {},
3410                                                                        1 => {Bitcoin::RightShiftWith8}
3411                                                                    },
3412                                                                    1 => {
3413                                                                        0 => {
3414                                                                            0 => {
3415                                                                                0 => {
3416                                                                                    0 => {Bitcoin::RightShiftWith16},
3417                                                                                    1 => {Bitcoin::RightShiftWith32}
3418                                                                                },
3419                                                                                1 => {
3420                                                                                    0 => {Bitcoin::RightShiftWith64},
3421                                                                                    1 => {}
3422                                                                                }
3423                                                                            },
3424                                                                            1 => {}
3425                                                                        },
3426                                                                        1 => {}
3427                                                                    }
3428                                                                }
3429                                                            }
3430                                                        },
3431                                                        1 => {
3432                                                            0 => {
3433                                                                0 => {},
3434                                                                1 => {
3435                                                                    0 => {
3436                                                                        0 => {},
3437                                                                        1 => {Bitcoin::LeftShift8}
3438                                                                    },
3439                                                                    1 => {
3440                                                                        0 => {
3441                                                                            0 => {
3442                                                                                0 => {
3443                                                                                    0 => {Bitcoin::LeftShift16},
3444                                                                                    1 => {Bitcoin::LeftShift32}
3445                                                                                },
3446                                                                                1 => {
3447                                                                                    0 => {Bitcoin::LeftShift64},
3448                                                                                    1 => {}
3449                                                                                }
3450                                                                            },
3451                                                                            1 => {}
3452                                                                        },
3453                                                                        1 => {}
3454                                                                    }
3455                                                                }
3456                                                            },
3457                                                            1 => {
3458                                                                0 => {},
3459                                                                1 => {
3460                                                                    0 => {
3461                                                                        0 => {},
3462                                                                        1 => {Bitcoin::RightShift8}
3463                                                                    },
3464                                                                    1 => {
3465                                                                        0 => {
3466                                                                            0 => {
3467                                                                                0 => {
3468                                                                                    0 => {Bitcoin::RightShift16},
3469                                                                                    1 => {Bitcoin::RightShift32}
3470                                                                                },
3471                                                                                1 => {
3472                                                                                    0 => {Bitcoin::RightShift64},
3473                                                                                    1 => {}
3474                                                                                }
3475                                                                            },
3476                                                                            1 => {}
3477                                                                        },
3478                                                                        1 => {}
3479                                                                    }
3480                                                                }
3481                                                            }
3482                                                        }
3483                                                    },
3484                                                    1 => {
3485                                                        0 => {
3486                                                            0 => {
3487                                                                0 => {},
3488                                                                1 => {
3489                                                                    0 => {
3490                                                                        0 => {},
3491                                                                        1 => {Bitcoin::LeftRotate8}
3492                                                                    },
3493                                                                    1 => {
3494                                                                        0 => {
3495                                                                            0 => {
3496                                                                                0 => {
3497                                                                                    0 => {Bitcoin::LeftRotate16},
3498                                                                                    1 => {Bitcoin::LeftRotate32}
3499                                                                                },
3500                                                                                1 => {
3501                                                                                    0 => {Bitcoin::LeftRotate64},
3502                                                                                    1 => {}
3503                                                                                }
3504                                                                            },
3505                                                                            1 => {}
3506                                                                        },
3507                                                                        1 => {}
3508                                                                    }
3509                                                                }
3510                                                            },
3511                                                            1 => {
3512                                                                0 => {},
3513                                                                1 => {
3514                                                                    0 => {
3515                                                                        0 => {},
3516                                                                        1 => {Bitcoin::RightRotate8}
3517                                                                    },
3518                                                                    1 => {
3519                                                                        0 => {
3520                                                                            0 => {
3521                                                                                0 => {
3522                                                                                    0 => {Bitcoin::RightRotate16},
3523                                                                                    1 => {Bitcoin::RightRotate32}
3524                                                                                },
3525                                                                                1 => {
3526                                                                                    0 => {Bitcoin::RightRotate64},
3527                                                                                    1 => {}
3528                                                                                }
3529                                                                            },
3530                                                                            1 => {}
3531                                                                        },
3532                                                                        1 => {}
3533                                                                    }
3534                                                                }
3535                                                            }
3536                                                        },
3537                                                        1 => {}
3538                                                    }
3539                                                }
3540                                            },
3541                                            1 => {}
3542                                        },
3543                                        1 => {}
3544                                    },
3545                                    1 => {}
3546                                },
3547                                1 => {}
3548                            }
3549                        }
3550                    }
3551                },
3552                1 => {
3553                    0 => {
3554                        0 => {
3555                            0 => {
3556                                0 => {},
3557                                1 => {
3558                                    0 => {
3559                                        0 => {},
3560                                        1 => {Bitcoin::One8}
3561                                    },
3562                                    1 => {
3563                                        0 => {
3564                                            0 => {
3565                                                0 => {
3566                                                    0 => {Bitcoin::One16},
3567                                                    1 => {Bitcoin::One32}
3568                                                },
3569                                                1 => {
3570                                                    0 => {Bitcoin::One64},
3571                                                    1 => {}
3572                                                }
3573                                            },
3574                                            1 => {}
3575                                        },
3576                                        1 => {}
3577                                    }
3578                                }
3579                            },
3580                            1 => {
3581                                0 => {
3582                                    0 => {
3583                                        0 => {},
3584                                        1 => {
3585                                            0 => {
3586                                                0 => {},
3587                                                1 => {Bitcoin::FullAdd8}
3588                                            },
3589                                            1 => {
3590                                                0 => {
3591                                                    0 => {
3592                                                        0 => {
3593                                                            0 => {Bitcoin::FullAdd16},
3594                                                            1 => {Bitcoin::FullAdd32}
3595                                                        },
3596                                                        1 => {
3597                                                            0 => {Bitcoin::FullAdd64},
3598                                                            1 => {}
3599                                                        }
3600                                                    },
3601                                                    1 => {}
3602                                                },
3603                                                1 => {}
3604                                            }
3605                                        }
3606                                    },
3607                                    1 => {
3608                                        0 => {},
3609                                        1 => {
3610                                            0 => {
3611                                                0 => {},
3612                                                1 => {Bitcoin::Add8}
3613                                            },
3614                                            1 => {
3615                                                0 => {
3616                                                    0 => {
3617                                                        0 => {
3618                                                            0 => {Bitcoin::Add16},
3619                                                            1 => {Bitcoin::Add32}
3620                                                        },
3621                                                        1 => {
3622                                                            0 => {Bitcoin::Add64},
3623                                                            1 => {}
3624                                                        }
3625                                                    },
3626                                                    1 => {}
3627                                                },
3628                                                1 => {}
3629                                            }
3630                                        }
3631                                    }
3632                                },
3633                                1 => {
3634                                    0 => {
3635                                        0 => {
3636                                            0 => {
3637                                                0 => {
3638                                                    0 => {},
3639                                                    1 => {
3640                                                        0 => {
3641                                                            0 => {},
3642                                                            1 => {Bitcoin::FullIncrement8}
3643                                                        },
3644                                                        1 => {
3645                                                            0 => {
3646                                                                0 => {
3647                                                                    0 => {
3648                                                                        0 => {Bitcoin::FullIncrement16},
3649                                                                        1 => {Bitcoin::FullIncrement32}
3650                                                                    },
3651                                                                    1 => {
3652                                                                        0 => {Bitcoin::FullIncrement64},
3653                                                                        1 => {}
3654                                                                    }
3655                                                                },
3656                                                                1 => {}
3657                                                            },
3658                                                            1 => {}
3659                                                        }
3660                                                    }
3661                                                },
3662                                                1 => {
3663                                                    0 => {},
3664                                                    1 => {
3665                                                        0 => {
3666                                                            0 => {},
3667                                                            1 => {Bitcoin::Increment8}
3668                                                        },
3669                                                        1 => {
3670                                                            0 => {
3671                                                                0 => {
3672                                                                    0 => {
3673                                                                        0 => {Bitcoin::Increment16},
3674                                                                        1 => {Bitcoin::Increment32}
3675                                                                    },
3676                                                                    1 => {
3677                                                                        0 => {Bitcoin::Increment64},
3678                                                                        1 => {}
3679                                                                    }
3680                                                                },
3681                                                                1 => {}
3682                                                            },
3683                                                            1 => {}
3684                                                        }
3685                                                    }
3686                                                }
3687                                            },
3688                                            1 => {
3689                                                0 => {},
3690                                                1 => {
3691                                                    0 => {},
3692                                                    1 => {
3693                                                        0 => {
3694                                                            0 => {},
3695                                                            1 => {Bitcoin::FullSubtract8}
3696                                                        },
3697                                                        1 => {
3698                                                            0 => {
3699                                                                0 => {
3700                                                                    0 => {
3701                                                                        0 => {Bitcoin::FullSubtract16},
3702                                                                        1 => {Bitcoin::FullSubtract32}
3703                                                                    },
3704                                                                    1 => {
3705                                                                        0 => {Bitcoin::FullSubtract64},
3706                                                                        1 => {}
3707                                                                    }
3708                                                                },
3709                                                                1 => {}
3710                                                            },
3711                                                            1 => {}
3712                                                        }
3713                                                    }
3714                                                }
3715                                            }
3716                                        },
3717                                        1 => {
3718                                            0 => {
3719                                                0 => {
3720                                                    0 => {
3721                                                        0 => {},
3722                                                        1 => {
3723                                                            0 => {
3724                                                                0 => {},
3725                                                                1 => {Bitcoin::Subtract8}
3726                                                            },
3727                                                            1 => {
3728                                                                0 => {
3729                                                                    0 => {
3730                                                                        0 => {
3731                                                                            0 => {Bitcoin::Subtract16},
3732                                                                            1 => {Bitcoin::Subtract32}
3733                                                                        },
3734                                                                        1 => {
3735                                                                            0 => {Bitcoin::Subtract64},
3736                                                                            1 => {}
3737                                                                        }
3738                                                                    },
3739                                                                    1 => {}
3740                                                                },
3741                                                                1 => {}
3742                                                            }
3743                                                        }
3744                                                    },
3745                                                    1 => {
3746                                                        0 => {},
3747                                                        1 => {
3748                                                            0 => {
3749                                                                0 => {},
3750                                                                1 => {Bitcoin::Negate8}
3751                                                            },
3752                                                            1 => {
3753                                                                0 => {
3754                                                                    0 => {
3755                                                                        0 => {
3756                                                                            0 => {Bitcoin::Negate16},
3757                                                                            1 => {Bitcoin::Negate32}
3758                                                                        },
3759                                                                        1 => {
3760                                                                            0 => {Bitcoin::Negate64},
3761                                                                            1 => {}
3762                                                                        }
3763                                                                    },
3764                                                                    1 => {}
3765                                                                },
3766                                                                1 => {}
3767                                                            }
3768                                                        }
3769                                                    }
3770                                                },
3771                                                1 => {
3772                                                    0 => {
3773                                                        0 => {},
3774                                                        1 => {
3775                                                            0 => {
3776                                                                0 => {},
3777                                                                1 => {Bitcoin::FullDecrement8}
3778                                                            },
3779                                                            1 => {
3780                                                                0 => {
3781                                                                    0 => {
3782                                                                        0 => {
3783                                                                            0 => {Bitcoin::FullDecrement16},
3784                                                                            1 => {Bitcoin::FullDecrement32}
3785                                                                        },
3786                                                                        1 => {
3787                                                                            0 => {Bitcoin::FullDecrement64},
3788                                                                            1 => {}
3789                                                                        }
3790                                                                    },
3791                                                                    1 => {}
3792                                                                },
3793                                                                1 => {}
3794                                                            }
3795                                                        }
3796                                                    },
3797                                                    1 => {
3798                                                        0 => {},
3799                                                        1 => {
3800                                                            0 => {
3801                                                                0 => {},
3802                                                                1 => {Bitcoin::Decrement8}
3803                                                            },
3804                                                            1 => {
3805                                                                0 => {
3806                                                                    0 => {
3807                                                                        0 => {
3808                                                                            0 => {Bitcoin::Decrement16},
3809                                                                            1 => {Bitcoin::Decrement32}
3810                                                                        },
3811                                                                        1 => {
3812                                                                            0 => {Bitcoin::Decrement64},
3813                                                                            1 => {}
3814                                                                        }
3815                                                                    },
3816                                                                    1 => {}
3817                                                                },
3818                                                                1 => {}
3819                                                            }
3820                                                        }
3821                                                    }
3822                                                }
3823                                            },
3824                                            1 => {
3825                                                0 => {
3826                                                    0 => {
3827                                                        0 => {},
3828                                                        1 => {
3829                                                            0 => {
3830                                                                0 => {},
3831                                                                1 => {Bitcoin::FullMultiply8}
3832                                                            },
3833                                                            1 => {
3834                                                                0 => {
3835                                                                    0 => {
3836                                                                        0 => {
3837                                                                            0 => {Bitcoin::FullMultiply16},
3838                                                                            1 => {Bitcoin::FullMultiply32}
3839                                                                        },
3840                                                                        1 => {
3841                                                                            0 => {Bitcoin::FullMultiply64},
3842                                                                            1 => {}
3843                                                                        }
3844                                                                    },
3845                                                                    1 => {}
3846                                                                },
3847                                                                1 => {}
3848                                                            }
3849                                                        }
3850                                                    },
3851                                                    1 => {
3852                                                        0 => {},
3853                                                        1 => {
3854                                                            0 => {
3855                                                                0 => {},
3856                                                                1 => {Bitcoin::Multiply8}
3857                                                            },
3858                                                            1 => {
3859                                                                0 => {
3860                                                                    0 => {
3861                                                                        0 => {
3862                                                                            0 => {Bitcoin::Multiply16},
3863                                                                            1 => {Bitcoin::Multiply32}
3864                                                                        },
3865                                                                        1 => {
3866                                                                            0 => {Bitcoin::Multiply64},
3867                                                                            1 => {}
3868                                                                        }
3869                                                                    },
3870                                                                    1 => {}
3871                                                                },
3872                                                                1 => {}
3873                                                            }
3874                                                        }
3875                                                    }
3876                                                },
3877                                                1 => {
3878                                                    0 => {
3879                                                        0 => {},
3880                                                        1 => {
3881                                                            0 => {
3882                                                                0 => {},
3883                                                                1 => {Bitcoin::IsZero8}
3884                                                            },
3885                                                            1 => {
3886                                                                0 => {
3887                                                                    0 => {
3888                                                                        0 => {
3889                                                                            0 => {Bitcoin::IsZero16},
3890                                                                            1 => {Bitcoin::IsZero32}
3891                                                                        },
3892                                                                        1 => {
3893                                                                            0 => {Bitcoin::IsZero64},
3894                                                                            1 => {}
3895                                                                        }
3896                                                                    },
3897                                                                    1 => {}
3898                                                                },
3899                                                                1 => {}
3900                                                            }
3901                                                        }
3902                                                    },
3903                                                    1 => {
3904                                                        0 => {},
3905                                                        1 => {
3906                                                            0 => {
3907                                                                0 => {},
3908                                                                1 => {Bitcoin::IsOne8}
3909                                                            },
3910                                                            1 => {
3911                                                                0 => {
3912                                                                    0 => {
3913                                                                        0 => {
3914                                                                            0 => {Bitcoin::IsOne16},
3915                                                                            1 => {Bitcoin::IsOne32}
3916                                                                        },
3917                                                                        1 => {
3918                                                                            0 => {Bitcoin::IsOne64},
3919                                                                            1 => {}
3920                                                                        }
3921                                                                    },
3922                                                                    1 => {}
3923                                                                },
3924                                                                1 => {}
3925                                                            }
3926                                                        }
3927                                                    }
3928                                                }
3929                                            }
3930                                        }
3931                                    },
3932                                    1 => {
3933                                        0 => {
3934                                            0 => {
3935                                                0 => {
3936                                                    0 => {
3937                                                        0 => {
3938                                                            0 => {
3939                                                                0 => {
3940                                                                    0 => {
3941                                                                        0 => {},
3942                                                                        1 => {
3943                                                                            0 => {
3944                                                                                0 => {},
3945                                                                                1 => {Bitcoin::Le8}
3946                                                                            },
3947                                                                            1 => {
3948                                                                                0 => {
3949                                                                                    0 => {
3950                                                                                        0 => {
3951                                                                                            0 => {Bitcoin::Le16},
3952                                                                                            1 => {Bitcoin::Le32}
3953                                                                                        },
3954                                                                                        1 => {
3955                                                                                            0 => {Bitcoin::Le64},
3956                                                                                            1 => {}
3957                                                                                        }
3958                                                                                    },
3959                                                                                    1 => {}
3960                                                                                },
3961                                                                                1 => {}
3962                                                                            }
3963                                                                        }
3964                                                                    },
3965                                                                    1 => {
3966                                                                        0 => {},
3967                                                                        1 => {
3968                                                                            0 => {
3969                                                                                0 => {},
3970                                                                                1 => {Bitcoin::Lt8}
3971                                                                            },
3972                                                                            1 => {
3973                                                                                0 => {
3974                                                                                    0 => {
3975                                                                                        0 => {
3976                                                                                            0 => {Bitcoin::Lt16},
3977                                                                                            1 => {Bitcoin::Lt32}
3978                                                                                        },
3979                                                                                        1 => {
3980                                                                                            0 => {Bitcoin::Lt64},
3981                                                                                            1 => {}
3982                                                                                        }
3983                                                                                    },
3984                                                                                    1 => {}
3985                                                                                },
3986                                                                                1 => {}
3987                                                                            }
3988                                                                        }
3989                                                                    }
3990                                                                },
3991                                                                1 => {
3992                                                                    0 => {
3993                                                                        0 => {},
3994                                                                        1 => {
3995                                                                            0 => {
3996                                                                                0 => {},
3997                                                                                1 => {Bitcoin::Min8}
3998                                                                            },
3999                                                                            1 => {
4000                                                                                0 => {
4001                                                                                    0 => {
4002                                                                                        0 => {
4003                                                                                            0 => {Bitcoin::Min16},
4004                                                                                            1 => {Bitcoin::Min32}
4005                                                                                        },
4006                                                                                        1 => {
4007                                                                                            0 => {Bitcoin::Min64},
4008                                                                                            1 => {}
4009                                                                                        }
4010                                                                                    },
4011                                                                                    1 => {}
4012                                                                                },
4013                                                                                1 => {}
4014                                                                            }
4015                                                                        }
4016                                                                    },
4017                                                                    1 => {
4018                                                                        0 => {},
4019                                                                        1 => {
4020                                                                            0 => {
4021                                                                                0 => {},
4022                                                                                1 => {Bitcoin::Max8}
4023                                                                            },
4024                                                                            1 => {
4025                                                                                0 => {
4026                                                                                    0 => {
4027                                                                                        0 => {
4028                                                                                            0 => {Bitcoin::Max16},
4029                                                                                            1 => {Bitcoin::Max32}
4030                                                                                        },
4031                                                                                        1 => {
4032                                                                                            0 => {Bitcoin::Max64},
4033                                                                                            1 => {}
4034                                                                                        }
4035                                                                                    },
4036                                                                                    1 => {}
4037                                                                                },
4038                                                                                1 => {}
4039                                                                            }
4040                                                                        }
4041                                                                    }
4042                                                                }
4043                                                            },
4044                                                            1 => {
4045                                                                0 => {
4046                                                                    0 => {
4047                                                                        0 => {},
4048                                                                        1 => {
4049                                                                            0 => {
4050                                                                                0 => {},
4051                                                                                1 => {Bitcoin::Median8}
4052                                                                            },
4053                                                                            1 => {
4054                                                                                0 => {
4055                                                                                    0 => {
4056                                                                                        0 => {
4057                                                                                            0 => {Bitcoin::Median16},
4058                                                                                            1 => {Bitcoin::Median32}
4059                                                                                        },
4060                                                                                        1 => {
4061                                                                                            0 => {Bitcoin::Median64},
4062                                                                                            1 => {}
4063                                                                                        }
4064                                                                                    },
4065                                                                                    1 => {}
4066                                                                                },
4067                                                                                1 => {}
4068                                                                            }
4069                                                                        }
4070                                                                    },
4071                                                                    1 => {
4072                                                                        0 => {},
4073                                                                        1 => {
4074                                                                            0 => {},
4075                                                                            1 => {
4076                                                                                0 => {
4077                                                                                    0 => {
4078                                                                                        0 => {},
4079                                                                                        1 => {
4080                                                                                            0 => {Bitcoin::DivMod128_64},
4081                                                                                            1 => {}
4082                                                                                        }
4083                                                                                    },
4084                                                                                    1 => {}
4085                                                                                },
4086                                                                                1 => {}
4087                                                                            }
4088                                                                        }
4089                                                                    }
4090                                                                },
4091                                                                1 => {
4092                                                                    0 => {
4093                                                                        0 => {},
4094                                                                        1 => {
4095                                                                            0 => {
4096                                                                                0 => {},
4097                                                                                1 => {Bitcoin::DivMod8}
4098                                                                            },
4099                                                                            1 => {
4100                                                                                0 => {
4101                                                                                    0 => {
4102                                                                                        0 => {
4103                                                                                            0 => {Bitcoin::DivMod16},
4104                                                                                            1 => {Bitcoin::DivMod32}
4105                                                                                        },
4106                                                                                        1 => {
4107                                                                                            0 => {Bitcoin::DivMod64},
4108                                                                                            1 => {}
4109                                                                                        }
4110                                                                                    },
4111                                                                                    1 => {}
4112                                                                                },
4113                                                                                1 => {}
4114                                                                            }
4115                                                                        }
4116                                                                    },
4117                                                                    1 => {
4118                                                                        0 => {},
4119                                                                        1 => {
4120                                                                            0 => {
4121                                                                                0 => {},
4122                                                                                1 => {Bitcoin::Divide8}
4123                                                                            },
4124                                                                            1 => {
4125                                                                                0 => {
4126                                                                                    0 => {
4127                                                                                        0 => {
4128                                                                                            0 => {Bitcoin::Divide16},
4129                                                                                            1 => {Bitcoin::Divide32}
4130                                                                                        },
4131                                                                                        1 => {
4132                                                                                            0 => {Bitcoin::Divide64},
4133                                                                                            1 => {}
4134                                                                                        }
4135                                                                                    },
4136                                                                                    1 => {}
4137                                                                                },
4138                                                                                1 => {}
4139                                                                            }
4140                                                                        }
4141                                                                    }
4142                                                                }
4143                                                            }
4144                                                        },
4145                                                        1 => {
4146                                                            0 => {
4147                                                                0 => {
4148                                                                    0 => {
4149                                                                        0 => {},
4150                                                                        1 => {
4151                                                                            0 => {
4152                                                                                0 => {},
4153                                                                                1 => {Bitcoin::Modulo8}
4154                                                                            },
4155                                                                            1 => {
4156                                                                                0 => {
4157                                                                                    0 => {
4158                                                                                        0 => {
4159                                                                                            0 => {Bitcoin::Modulo16},
4160                                                                                            1 => {Bitcoin::Modulo32}
4161                                                                                        },
4162                                                                                        1 => {
4163                                                                                            0 => {Bitcoin::Modulo64},
4164                                                                                            1 => {}
4165                                                                                        }
4166                                                                                    },
4167                                                                                    1 => {}
4168                                                                                },
4169                                                                                1 => {}
4170                                                                            }
4171                                                                        }
4172                                                                    },
4173                                                                    1 => {
4174                                                                        0 => {},
4175                                                                        1 => {
4176                                                                            0 => {
4177                                                                                0 => {},
4178                                                                                1 => {Bitcoin::Divides8}
4179                                                                            },
4180                                                                            1 => {
4181                                                                                0 => {
4182                                                                                    0 => {
4183                                                                                        0 => {
4184                                                                                            0 => {Bitcoin::Divides16},
4185                                                                                            1 => {Bitcoin::Divides32}
4186                                                                                        },
4187                                                                                        1 => {
4188                                                                                            0 => {Bitcoin::Divides64},
4189                                                                                            1 => {}
4190                                                                                        }
4191                                                                                    },
4192                                                                                    1 => {}
4193                                                                                },
4194                                                                                1 => {}
4195                                                                            }
4196                                                                        }
4197                                                                    }
4198                                                                },
4199                                                                1 => {}
4200                                                            },
4201                                                            1 => {}
4202                                                        }
4203                                                    },
4204                                                    1 => {}
4205                                                },
4206                                                1 => {}
4207                                            },
4208                                            1 => {}
4209                                        },
4210                                        1 => {}
4211                                    }
4212                                }
4213                            }
4214                        },
4215                        1 => {
4216                            0 => {
4217                                0 => {Bitcoin::Sha256Block},
4218                                1 => {
4219                                    0 => {
4220                                        0 => {Bitcoin::Sha256Iv},
4221                                        1 => {
4222                                            0 => {Bitcoin::Sha256Ctx8Add1},
4223                                            1 => {
4224                                                0 => {
4225                                                    0 => {Bitcoin::Sha256Ctx8Add2},
4226                                                    1 => {Bitcoin::Sha256Ctx8Add4}
4227                                                },
4228                                                1 => {
4229                                                    0 => {
4230                                                        0 => {
4231                                                            0 => {
4232                                                                0 => {Bitcoin::Sha256Ctx8Add8},
4233                                                                1 => {Bitcoin::Sha256Ctx8Add16}
4234                                                            },
4235                                                            1 => {
4236                                                                0 => {Bitcoin::Sha256Ctx8Add32},
4237                                                                1 => {Bitcoin::Sha256Ctx8Add64}
4238                                                            }
4239                                                        },
4240                                                        1 => {
4241                                                            0 => {
4242                                                                0 => {
4243                                                                    0 => {Bitcoin::Sha256Ctx8Add128},
4244                                                                    1 => {Bitcoin::Sha256Ctx8Add256}
4245                                                                },
4246                                                                1 => {
4247                                                                    0 => {Bitcoin::Sha256Ctx8Add512},
4248                                                                    1 => {}
4249                                                                }
4250                                                            },
4251                                                            1 => {}
4252                                                        }
4253                                                    },
4254                                                    1 => {}
4255                                                }
4256                                            }
4257                                        }
4258                                    },
4259                                    1 => {
4260                                        0 => {
4261                                            0 => {
4262                                                0 => {
4263                                                    0 => {Bitcoin::Sha256Ctx8AddBuffer511},
4264                                                    1 => {Bitcoin::Sha256Ctx8Finalize}
4265                                                },
4266                                                1 => {
4267                                                    0 => {Bitcoin::Sha256Ctx8Init},
4268                                                    1 => {}
4269                                                }
4270                                            },
4271                                            1 => {}
4272                                        },
4273                                        1 => {}
4274                                    }
4275                                }
4276                            },
4277                            1 => {}
4278                        }
4279                    },
4280                    1 => {
4281                        0 => {
4282                            0 => {
4283                                0 => {
4284                                    0 => {
4285                                        0 => {
4286                                            0 => {Bitcoin::PointVerify1},
4287                                            1 => {}
4288                                        },
4289                                        1 => {
4290                                            0 => {
4291                                                0 => {Bitcoin::Decompress},
4292                                                1 => {
4293                                                    0 => {Bitcoin::LinearVerify1},
4294                                                    1 => {}
4295                                                }
4296                                            },
4297                                            1 => {
4298                                                0 => {
4299                                                    0 => {
4300                                                        0 => {
4301                                                            0 => {
4302                                                                0 => {Bitcoin::LinearCombination1},
4303                                                                1 => {}
4304                                                            },
4305                                                            1 => {Bitcoin::Scale}
4306                                                        },
4307                                                        1 => {
4308                                                            0 => {Bitcoin::Generate},
4309                                                            1 => {Bitcoin::GejInfinity}
4310                                                        }
4311                                                    },
4312                                                    1 => {
4313                                                        0 => {
4314                                                            0 => {
4315                                                                0 => {Bitcoin::GejNormalize},
4316                                                                1 => {Bitcoin::GejNegate}
4317                                                            },
4318                                                            1 => {
4319                                                                0 => {Bitcoin::GeNegate},
4320                                                                1 => {Bitcoin::GejDouble}
4321                                                            }
4322                                                        },
4323                                                        1 => {
4324                                                            0 => {
4325                                                                0 => {Bitcoin::GejAdd},
4326                                                                1 => {Bitcoin::GejGeAddEx}
4327                                                            },
4328                                                            1 => {
4329                                                                0 => {Bitcoin::GejGeAdd},
4330                                                                1 => {Bitcoin::GejRescale}
4331                                                            }
4332                                                        }
4333                                                    }
4334                                                },
4335                                                1 => {
4336                                                    0 => {
4337                                                        0 => {
4338                                                            0 => {
4339                                                                0 => {
4340                                                                    0 => {
4341                                                                        0 => {
4342                                                                            0 => {
4343                                                                                0 => {Bitcoin::GejIsInfinity},
4344                                                                                1 => {Bitcoin::GejEquiv}
4345                                                                            },
4346                                                                            1 => {
4347                                                                                0 => {Bitcoin::GejGeEquiv},
4348                                                                                1 => {Bitcoin::GejXEquiv}
4349                                                                            }
4350                                                                        },
4351                                                                        1 => {
4352                                                                            0 => {
4353                                                                                0 => {Bitcoin::GejYIsOdd},
4354                                                                                1 => {Bitcoin::GejIsOnCurve}
4355                                                                            },
4356                                                                            1 => {
4357                                                                                0 => {Bitcoin::GeIsOnCurve},
4358                                                                                1 => {Bitcoin::ScalarNormalize}
4359                                                                            }
4360                                                                        }
4361                                                                    },
4362                                                                    1 => {
4363                                                                        0 => {
4364                                                                            0 => {
4365                                                                                0 => {Bitcoin::ScalarNegate},
4366                                                                                1 => {Bitcoin::ScalarAdd}
4367                                                                            },
4368                                                                            1 => {
4369                                                                                0 => {Bitcoin::ScalarSquare},
4370                                                                                1 => {Bitcoin::ScalarMultiply}
4371                                                                            }
4372                                                                        },
4373                                                                        1 => {
4374                                                                            0 => {
4375                                                                                0 => {Bitcoin::ScalarMultiplyLambda},
4376                                                                                1 => {Bitcoin::ScalarInvert}
4377                                                                            },
4378                                                                            1 => {
4379                                                                                0 => {Bitcoin::ScalarIsZero},
4380                                                                                1 => {}
4381                                                                            }
4382                                                                        }
4383                                                                    }
4384                                                                },
4385                                                                1 => {
4386                                                                    0 => {
4387                                                                        0 => {
4388                                                                            0 => {
4389                                                                                0 => {},
4390                                                                                1 => {
4391                                                                                    0 => {},
4392                                                                                    1 => {Bitcoin::FeNormalize}
4393                                                                                }
4394                                                                            },
4395                                                                            1 => {
4396                                                                                0 => {
4397                                                                                    0 => {Bitcoin::FeNegate},
4398                                                                                    1 => {Bitcoin::FeAdd}
4399                                                                                },
4400                                                                                1 => {
4401                                                                                    0 => {Bitcoin::FeSquare},
4402                                                                                    1 => {Bitcoin::FeMultiply}
4403                                                                                }
4404                                                                            }
4405                                                                        },
4406                                                                        1 => {
4407                                                                            0 => {
4408                                                                                0 => {
4409                                                                                    0 => {Bitcoin::FeMultiplyBeta},
4410                                                                                    1 => {Bitcoin::FeInvert}
4411                                                                                },
4412                                                                                1 => {
4413                                                                                    0 => {Bitcoin::FeSquareRoot},
4414                                                                                    1 => {Bitcoin::FeIsZero}
4415                                                                                }
4416                                                                            },
4417                                                                            1 => {
4418                                                                                0 => {
4419                                                                                    0 => {Bitcoin::FeIsOdd},
4420                                                                                    1 => {}
4421                                                                                },
4422                                                                                1 => {
4423                                                                                    0 => {Bitcoin::HashToCurve},
4424                                                                                    1 => {Bitcoin::Swu}
4425                                                                                }
4426                                                                            }
4427                                                                        }
4428                                                                    },
4429                                                                    1 => {}
4430                                                                }
4431                                                            },
4432                                                            1 => {}
4433                                                        },
4434                                                        1 => {}
4435                                                    },
4436                                                    1 => {}
4437                                                }
4438                                            }
4439                                        }
4440                                    },
4441                                    1 => {
4442                                        0 => {Bitcoin::CheckSigVerify},
4443                                        1 => {
4444                                            0 => {
4445                                                0 => {Bitcoin::Bip0340Verify},
4446                                                1 => {}
4447                                            },
4448                                            1 => {}
4449                                        }
4450                                    }
4451                                },
4452                                1 => {
4453                                    0 => {},
4454                                    1 => {
4455                                        0 => {Bitcoin::ParseLock},
4456                                        1 => {
4457                                            0 => {
4458                                                0 => {Bitcoin::ParseSequence},
4459                                                1 => {Bitcoin::TapdataInit}
4460                                            },
4461                                            1 => {}
4462                                        }
4463                                    }
4464                                }
4465                            },
4466                            1 => {}
4467                        },
4468                        1 => {}
4469                    }
4470                }
4471            },
4472            1 => {
4473                0 => {
4474                    0 => {Bitcoin::SigAllHash},
4475                    1 => {
4476                        0 => {
4477                            0 => {Bitcoin::TxHash},
4478                            1 => {Bitcoin::TapEnvHash}
4479                        },
4480                        1 => {
4481                            0 => {
4482                                0 => {
4483                                    0 => {
4484                                        0 => {Bitcoin::OutputsHash},
4485                                        1 => {Bitcoin::InputsHash}
4486                                    },
4487                                    1 => {
4488                                        0 => {Bitcoin::InputUtxosHash},
4489                                        1 => {Bitcoin::OutputHash}
4490                                    }
4491                                },
4492                                1 => {
4493                                    0 => {
4494                                        0 => {
4495                                            0 => {Bitcoin::OutputValuesHash},
4496                                            1 => {Bitcoin::OutputScriptsHash}
4497                                        },
4498                                        1 => {
4499                                            0 => {Bitcoin::InputHash},
4500                                            1 => {Bitcoin::InputOutpointsHash}
4501                                        }
4502                                    },
4503                                    1 => {
4504                                        0 => {
4505                                            0 => {Bitcoin::InputSequencesHash},
4506                                            1 => {Bitcoin::InputAnnexesHash}
4507                                        },
4508                                        1 => {
4509                                            0 => {Bitcoin::InputScriptSigsHash},
4510                                            1 => {Bitcoin::InputUtxoHash}
4511                                        }
4512                                    }
4513                                }
4514                            },
4515                            1 => {
4516                                0 => {
4517                                    0 => {
4518                                        0 => {
4519                                            0 => {
4520                                                0 => {
4521                                                    0 => {
4522                                                        0 => {
4523                                                            0 => {Bitcoin::InputValuesHash},
4524                                                            1 => {Bitcoin::InputScriptsHash}
4525                                                        },
4526                                                        1 => {
4527                                                            0 => {Bitcoin::TapleafHash},
4528                                                            1 => {Bitcoin::TappathHash}
4529                                                        }
4530                                                    },
4531                                                    1 => {
4532                                                        0 => {
4533                                                            0 => {Bitcoin::OutpointHash},
4534                                                            1 => {Bitcoin::AnnexHash}
4535                                                        },
4536                                                        1 => {
4537                                                            0 => {Bitcoin::BuildTapleafSimplicity},
4538                                                            1 => {Bitcoin::BuildTapbranch}
4539                                                        }
4540                                                    }
4541                                                },
4542                                                1 => {
4543                                                    0 => {
4544                                                        0 => {
4545                                                            0 => {Bitcoin::BuildTaptweak},
4546                                                            1 => {}
4547                                                        },
4548                                                        1 => {}
4549                                                    },
4550                                                    1 => {}
4551                                                }
4552                                            },
4553                                            1 => {}
4554                                        },
4555                                        1 => {}
4556                                    },
4557                                    1 => {}
4558                                },
4559                                1 => {}
4560                            }
4561                        }
4562                    }
4563                },
4564                1 => {
4565                    0 => {
4566                        0 => {
4567                            0 => {Bitcoin::CheckLockHeight},
4568                            1 => {
4569                                0 => {
4570                                    0 => {Bitcoin::CheckLockTime},
4571                                    1 => {Bitcoin::CheckLockDistance}
4572                                },
4573                                1 => {
4574                                    0 => {
4575                                        0 => {
4576                                            0 => {
4577                                                0 => {Bitcoin::CheckLockDuration},
4578                                                1 => {Bitcoin::TxLockHeight}
4579                                            },
4580                                            1 => {
4581                                                0 => {Bitcoin::TxLockTime},
4582                                                1 => {Bitcoin::TxLockDistance}
4583                                            }
4584                                        },
4585                                        1 => {
4586                                            0 => {
4587                                                0 => {
4588                                                    0 => {Bitcoin::TxLockDuration},
4589                                                    1 => {Bitcoin::TxIsFinal}
4590                                                },
4591                                                1 => {}
4592                                            },
4593                                            1 => {}
4594                                        }
4595                                    },
4596                                    1 => {}
4597                                }
4598                            }
4599                        },
4600                        1 => {
4601                            0 => {Bitcoin::ScriptCMR},
4602                            1 => {
4603                                0 => {
4604                                    0 => {Bitcoin::InternalKey},
4605                                    1 => {Bitcoin::CurrentIndex}
4606                                },
4607                                1 => {
4608                                    0 => {
4609                                        0 => {
4610                                            0 => {
4611                                                0 => {Bitcoin::NumInputs},
4612                                                1 => {Bitcoin::NumOutputs}
4613                                            },
4614                                            1 => {
4615                                                0 => {Bitcoin::LockTime},
4616                                                1 => {Bitcoin::Fee}
4617                                            }
4618                                        },
4619                                        1 => {
4620                                            0 => {
4621                                                0 => {
4622                                                    0 => {Bitcoin::OutputValue},
4623                                                    1 => {Bitcoin::OutputScriptHash}
4624                                                },
4625                                                1 => {
4626                                                    0 => {Bitcoin::TotalOutputValue},
4627                                                    1 => {Bitcoin::CurrentPrevOutpoint}
4628                                                }
4629                                            },
4630                                            1 => {
4631                                                0 => {
4632                                                    0 => {Bitcoin::CurrentValue},
4633                                                    1 => {Bitcoin::CurrentScriptHash}
4634                                                },
4635                                                1 => {
4636                                                    0 => {Bitcoin::CurrentSequence},
4637                                                    1 => {Bitcoin::CurrentAnnexHash}
4638                                                }
4639                                            }
4640                                        }
4641                                    },
4642                                    1 => {
4643                                        0 => {
4644                                            0 => {
4645                                                0 => {
4646                                                    0 => {
4647                                                        0 => {
4648                                                            0 => {
4649                                                                0 => {
4650                                                                    0 => {Bitcoin::CurrentScriptSigHash},
4651                                                                    1 => {Bitcoin::InputPrevOutpoint}
4652                                                                },
4653                                                                1 => {
4654                                                                    0 => {Bitcoin::InputValue},
4655                                                                    1 => {Bitcoin::InputScriptHash}
4656                                                                }
4657                                                            },
4658                                                            1 => {
4659                                                                0 => {
4660                                                                    0 => {Bitcoin::InputSequence},
4661                                                                    1 => {Bitcoin::InputAnnexHash}
4662                                                                },
4663                                                                1 => {
4664                                                                    0 => {Bitcoin::InputScriptSigHash},
4665                                                                    1 => {Bitcoin::TotalInputValue}
4666                                                                }
4667                                                            }
4668                                                        },
4669                                                        1 => {
4670                                                            0 => {
4671                                                                0 => {
4672                                                                    0 => {Bitcoin::TapleafVersion},
4673                                                                    1 => {Bitcoin::Tappath}
4674                                                                },
4675                                                                1 => {
4676                                                                    0 => {Bitcoin::Version},
4677                                                                    1 => {Bitcoin::TransactionId}
4678                                                                }
4679                                                            },
4680                                                            1 => {}
4681                                                        }
4682                                                    },
4683                                                    1 => {}
4684                                                },
4685                                                1 => {}
4686                                            },
4687                                            1 => {}
4688                                        },
4689                                        1 => {}
4690                                    }
4691                                }
4692                            }
4693                        }
4694                    },
4695                    1 => {}
4696                }
4697            }
4698        })
4699    }
4700
4701    fn cost(&self) -> Cost {
4702        unimplemented!("Unspecified cost of Bitcoin jets")
4703    }
4704
4705    fn parse(s: &str) -> Result<Self, crate::Error> where Self: Sized {
4706        str::FromStr::from_str(s)
4707    }
4708}
4709
4710impl fmt::Display for Bitcoin {
4711    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4712        match self {
4713            Bitcoin::Add16 => f.write_str("add_16"),
4714            Bitcoin::Add32 => f.write_str("add_32"),
4715            Bitcoin::Add64 => f.write_str("add_64"),
4716            Bitcoin::Add8 => f.write_str("add_8"),
4717            Bitcoin::All16 => f.write_str("all_16"),
4718            Bitcoin::All32 => f.write_str("all_32"),
4719            Bitcoin::All64 => f.write_str("all_64"),
4720            Bitcoin::All8 => f.write_str("all_8"),
4721            Bitcoin::And1 => f.write_str("and_1"),
4722            Bitcoin::And16 => f.write_str("and_16"),
4723            Bitcoin::And32 => f.write_str("and_32"),
4724            Bitcoin::And64 => f.write_str("and_64"),
4725            Bitcoin::And8 => f.write_str("and_8"),
4726            Bitcoin::AnnexHash => f.write_str("annex_hash"),
4727            Bitcoin::Bip0340Verify => f.write_str("bip_0340_verify"),
4728            Bitcoin::BuildTapbranch => f.write_str("build_tapbranch"),
4729            Bitcoin::BuildTapleafSimplicity => f.write_str("build_tapleaf_simplicity"),
4730            Bitcoin::BuildTaptweak => f.write_str("build_taptweak"),
4731            Bitcoin::Ch1 => f.write_str("ch_1"),
4732            Bitcoin::Ch16 => f.write_str("ch_16"),
4733            Bitcoin::Ch32 => f.write_str("ch_32"),
4734            Bitcoin::Ch64 => f.write_str("ch_64"),
4735            Bitcoin::Ch8 => f.write_str("ch_8"),
4736            Bitcoin::CheckLockDistance => f.write_str("check_lock_distance"),
4737            Bitcoin::CheckLockDuration => f.write_str("check_lock_duration"),
4738            Bitcoin::CheckLockHeight => f.write_str("check_lock_height"),
4739            Bitcoin::CheckLockTime => f.write_str("check_lock_time"),
4740            Bitcoin::CheckSigVerify => f.write_str("check_sig_verify"),
4741            Bitcoin::Complement1 => f.write_str("complement_1"),
4742            Bitcoin::Complement16 => f.write_str("complement_16"),
4743            Bitcoin::Complement32 => f.write_str("complement_32"),
4744            Bitcoin::Complement64 => f.write_str("complement_64"),
4745            Bitcoin::Complement8 => f.write_str("complement_8"),
4746            Bitcoin::CurrentAnnexHash => f.write_str("current_annex_hash"),
4747            Bitcoin::CurrentIndex => f.write_str("current_index"),
4748            Bitcoin::CurrentPrevOutpoint => f.write_str("current_prev_outpoint"),
4749            Bitcoin::CurrentScriptHash => f.write_str("current_script_hash"),
4750            Bitcoin::CurrentScriptSigHash => f.write_str("current_script_sig_hash"),
4751            Bitcoin::CurrentSequence => f.write_str("current_sequence"),
4752            Bitcoin::CurrentValue => f.write_str("current_value"),
4753            Bitcoin::Decompress => f.write_str("decompress"),
4754            Bitcoin::Decrement16 => f.write_str("decrement_16"),
4755            Bitcoin::Decrement32 => f.write_str("decrement_32"),
4756            Bitcoin::Decrement64 => f.write_str("decrement_64"),
4757            Bitcoin::Decrement8 => f.write_str("decrement_8"),
4758            Bitcoin::DivMod128_64 => f.write_str("div_mod_128_64"),
4759            Bitcoin::DivMod16 => f.write_str("div_mod_16"),
4760            Bitcoin::DivMod32 => f.write_str("div_mod_32"),
4761            Bitcoin::DivMod64 => f.write_str("div_mod_64"),
4762            Bitcoin::DivMod8 => f.write_str("div_mod_8"),
4763            Bitcoin::Divide16 => f.write_str("divide_16"),
4764            Bitcoin::Divide32 => f.write_str("divide_32"),
4765            Bitcoin::Divide64 => f.write_str("divide_64"),
4766            Bitcoin::Divide8 => f.write_str("divide_8"),
4767            Bitcoin::Divides16 => f.write_str("divides_16"),
4768            Bitcoin::Divides32 => f.write_str("divides_32"),
4769            Bitcoin::Divides64 => f.write_str("divides_64"),
4770            Bitcoin::Divides8 => f.write_str("divides_8"),
4771            Bitcoin::Eq1 => f.write_str("eq_1"),
4772            Bitcoin::Eq16 => f.write_str("eq_16"),
4773            Bitcoin::Eq256 => f.write_str("eq_256"),
4774            Bitcoin::Eq32 => f.write_str("eq_32"),
4775            Bitcoin::Eq64 => f.write_str("eq_64"),
4776            Bitcoin::Eq8 => f.write_str("eq_8"),
4777            Bitcoin::FeAdd => f.write_str("fe_add"),
4778            Bitcoin::FeInvert => f.write_str("fe_invert"),
4779            Bitcoin::FeIsOdd => f.write_str("fe_is_odd"),
4780            Bitcoin::FeIsZero => f.write_str("fe_is_zero"),
4781            Bitcoin::FeMultiply => f.write_str("fe_multiply"),
4782            Bitcoin::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
4783            Bitcoin::FeNegate => f.write_str("fe_negate"),
4784            Bitcoin::FeNormalize => f.write_str("fe_normalize"),
4785            Bitcoin::FeSquare => f.write_str("fe_square"),
4786            Bitcoin::FeSquareRoot => f.write_str("fe_square_root"),
4787            Bitcoin::Fee => f.write_str("fee"),
4788            Bitcoin::FullAdd16 => f.write_str("full_add_16"),
4789            Bitcoin::FullAdd32 => f.write_str("full_add_32"),
4790            Bitcoin::FullAdd64 => f.write_str("full_add_64"),
4791            Bitcoin::FullAdd8 => f.write_str("full_add_8"),
4792            Bitcoin::FullDecrement16 => f.write_str("full_decrement_16"),
4793            Bitcoin::FullDecrement32 => f.write_str("full_decrement_32"),
4794            Bitcoin::FullDecrement64 => f.write_str("full_decrement_64"),
4795            Bitcoin::FullDecrement8 => f.write_str("full_decrement_8"),
4796            Bitcoin::FullIncrement16 => f.write_str("full_increment_16"),
4797            Bitcoin::FullIncrement32 => f.write_str("full_increment_32"),
4798            Bitcoin::FullIncrement64 => f.write_str("full_increment_64"),
4799            Bitcoin::FullIncrement8 => f.write_str("full_increment_8"),
4800            Bitcoin::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
4801            Bitcoin::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
4802            Bitcoin::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
4803            Bitcoin::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
4804            Bitcoin::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
4805            Bitcoin::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
4806            Bitcoin::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
4807            Bitcoin::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
4808            Bitcoin::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
4809            Bitcoin::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
4810            Bitcoin::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
4811            Bitcoin::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
4812            Bitcoin::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
4813            Bitcoin::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
4814            Bitcoin::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
4815            Bitcoin::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
4816            Bitcoin::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
4817            Bitcoin::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
4818            Bitcoin::FullMultiply16 => f.write_str("full_multiply_16"),
4819            Bitcoin::FullMultiply32 => f.write_str("full_multiply_32"),
4820            Bitcoin::FullMultiply64 => f.write_str("full_multiply_64"),
4821            Bitcoin::FullMultiply8 => f.write_str("full_multiply_8"),
4822            Bitcoin::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
4823            Bitcoin::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
4824            Bitcoin::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
4825            Bitcoin::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
4826            Bitcoin::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
4827            Bitcoin::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
4828            Bitcoin::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
4829            Bitcoin::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
4830            Bitcoin::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
4831            Bitcoin::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
4832            Bitcoin::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
4833            Bitcoin::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
4834            Bitcoin::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
4835            Bitcoin::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
4836            Bitcoin::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
4837            Bitcoin::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
4838            Bitcoin::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
4839            Bitcoin::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
4840            Bitcoin::FullSubtract16 => f.write_str("full_subtract_16"),
4841            Bitcoin::FullSubtract32 => f.write_str("full_subtract_32"),
4842            Bitcoin::FullSubtract64 => f.write_str("full_subtract_64"),
4843            Bitcoin::FullSubtract8 => f.write_str("full_subtract_8"),
4844            Bitcoin::GeIsOnCurve => f.write_str("ge_is_on_curve"),
4845            Bitcoin::GeNegate => f.write_str("ge_negate"),
4846            Bitcoin::GejAdd => f.write_str("gej_add"),
4847            Bitcoin::GejDouble => f.write_str("gej_double"),
4848            Bitcoin::GejEquiv => f.write_str("gej_equiv"),
4849            Bitcoin::GejGeAdd => f.write_str("gej_ge_add"),
4850            Bitcoin::GejGeAddEx => f.write_str("gej_ge_add_ex"),
4851            Bitcoin::GejGeEquiv => f.write_str("gej_ge_equiv"),
4852            Bitcoin::GejInfinity => f.write_str("gej_infinity"),
4853            Bitcoin::GejIsInfinity => f.write_str("gej_is_infinity"),
4854            Bitcoin::GejIsOnCurve => f.write_str("gej_is_on_curve"),
4855            Bitcoin::GejNegate => f.write_str("gej_negate"),
4856            Bitcoin::GejNormalize => f.write_str("gej_normalize"),
4857            Bitcoin::GejRescale => f.write_str("gej_rescale"),
4858            Bitcoin::GejXEquiv => f.write_str("gej_x_equiv"),
4859            Bitcoin::GejYIsOdd => f.write_str("gej_y_is_odd"),
4860            Bitcoin::Generate => f.write_str("generate"),
4861            Bitcoin::HashToCurve => f.write_str("hash_to_curve"),
4862            Bitcoin::High1 => f.write_str("high_1"),
4863            Bitcoin::High16 => f.write_str("high_16"),
4864            Bitcoin::High32 => f.write_str("high_32"),
4865            Bitcoin::High64 => f.write_str("high_64"),
4866            Bitcoin::High8 => f.write_str("high_8"),
4867            Bitcoin::Increment16 => f.write_str("increment_16"),
4868            Bitcoin::Increment32 => f.write_str("increment_32"),
4869            Bitcoin::Increment64 => f.write_str("increment_64"),
4870            Bitcoin::Increment8 => f.write_str("increment_8"),
4871            Bitcoin::InputAnnexHash => f.write_str("input_annex_hash"),
4872            Bitcoin::InputAnnexesHash => f.write_str("input_annexes_hash"),
4873            Bitcoin::InputHash => f.write_str("input_hash"),
4874            Bitcoin::InputOutpointsHash => f.write_str("input_outpoints_hash"),
4875            Bitcoin::InputPrevOutpoint => f.write_str("input_prev_outpoint"),
4876            Bitcoin::InputScriptHash => f.write_str("input_script_hash"),
4877            Bitcoin::InputScriptSigHash => f.write_str("input_script_sig_hash"),
4878            Bitcoin::InputScriptSigsHash => f.write_str("input_script_sigs_hash"),
4879            Bitcoin::InputScriptsHash => f.write_str("input_scripts_hash"),
4880            Bitcoin::InputSequence => f.write_str("input_sequence"),
4881            Bitcoin::InputSequencesHash => f.write_str("input_sequences_hash"),
4882            Bitcoin::InputUtxoHash => f.write_str("input_utxo_hash"),
4883            Bitcoin::InputUtxosHash => f.write_str("input_utxos_hash"),
4884            Bitcoin::InputValue => f.write_str("input_value"),
4885            Bitcoin::InputValuesHash => f.write_str("input_values_hash"),
4886            Bitcoin::InputsHash => f.write_str("inputs_hash"),
4887            Bitcoin::InternalKey => f.write_str("internal_key"),
4888            Bitcoin::IsOne16 => f.write_str("is_one_16"),
4889            Bitcoin::IsOne32 => f.write_str("is_one_32"),
4890            Bitcoin::IsOne64 => f.write_str("is_one_64"),
4891            Bitcoin::IsOne8 => f.write_str("is_one_8"),
4892            Bitcoin::IsZero16 => f.write_str("is_zero_16"),
4893            Bitcoin::IsZero32 => f.write_str("is_zero_32"),
4894            Bitcoin::IsZero64 => f.write_str("is_zero_64"),
4895            Bitcoin::IsZero8 => f.write_str("is_zero_8"),
4896            Bitcoin::Le16 => f.write_str("le_16"),
4897            Bitcoin::Le32 => f.write_str("le_32"),
4898            Bitcoin::Le64 => f.write_str("le_64"),
4899            Bitcoin::Le8 => f.write_str("le_8"),
4900            Bitcoin::LeftExtend16_32 => f.write_str("left_extend_16_32"),
4901            Bitcoin::LeftExtend16_64 => f.write_str("left_extend_16_64"),
4902            Bitcoin::LeftExtend1_16 => f.write_str("left_extend_1_16"),
4903            Bitcoin::LeftExtend1_32 => f.write_str("left_extend_1_32"),
4904            Bitcoin::LeftExtend1_64 => f.write_str("left_extend_1_64"),
4905            Bitcoin::LeftExtend1_8 => f.write_str("left_extend_1_8"),
4906            Bitcoin::LeftExtend32_64 => f.write_str("left_extend_32_64"),
4907            Bitcoin::LeftExtend8_16 => f.write_str("left_extend_8_16"),
4908            Bitcoin::LeftExtend8_32 => f.write_str("left_extend_8_32"),
4909            Bitcoin::LeftExtend8_64 => f.write_str("left_extend_8_64"),
4910            Bitcoin::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
4911            Bitcoin::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
4912            Bitcoin::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
4913            Bitcoin::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
4914            Bitcoin::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
4915            Bitcoin::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
4916            Bitcoin::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
4917            Bitcoin::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
4918            Bitcoin::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
4919            Bitcoin::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
4920            Bitcoin::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
4921            Bitcoin::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
4922            Bitcoin::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
4923            Bitcoin::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
4924            Bitcoin::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
4925            Bitcoin::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
4926            Bitcoin::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
4927            Bitcoin::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
4928            Bitcoin::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
4929            Bitcoin::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
4930            Bitcoin::LeftRotate16 => f.write_str("left_rotate_16"),
4931            Bitcoin::LeftRotate32 => f.write_str("left_rotate_32"),
4932            Bitcoin::LeftRotate64 => f.write_str("left_rotate_64"),
4933            Bitcoin::LeftRotate8 => f.write_str("left_rotate_8"),
4934            Bitcoin::LeftShift16 => f.write_str("left_shift_16"),
4935            Bitcoin::LeftShift32 => f.write_str("left_shift_32"),
4936            Bitcoin::LeftShift64 => f.write_str("left_shift_64"),
4937            Bitcoin::LeftShift8 => f.write_str("left_shift_8"),
4938            Bitcoin::LeftShiftWith16 => f.write_str("left_shift_with_16"),
4939            Bitcoin::LeftShiftWith32 => f.write_str("left_shift_with_32"),
4940            Bitcoin::LeftShiftWith64 => f.write_str("left_shift_with_64"),
4941            Bitcoin::LeftShiftWith8 => f.write_str("left_shift_with_8"),
4942            Bitcoin::Leftmost16_1 => f.write_str("leftmost_16_1"),
4943            Bitcoin::Leftmost16_2 => f.write_str("leftmost_16_2"),
4944            Bitcoin::Leftmost16_4 => f.write_str("leftmost_16_4"),
4945            Bitcoin::Leftmost16_8 => f.write_str("leftmost_16_8"),
4946            Bitcoin::Leftmost32_1 => f.write_str("leftmost_32_1"),
4947            Bitcoin::Leftmost32_16 => f.write_str("leftmost_32_16"),
4948            Bitcoin::Leftmost32_2 => f.write_str("leftmost_32_2"),
4949            Bitcoin::Leftmost32_4 => f.write_str("leftmost_32_4"),
4950            Bitcoin::Leftmost32_8 => f.write_str("leftmost_32_8"),
4951            Bitcoin::Leftmost64_1 => f.write_str("leftmost_64_1"),
4952            Bitcoin::Leftmost64_16 => f.write_str("leftmost_64_16"),
4953            Bitcoin::Leftmost64_2 => f.write_str("leftmost_64_2"),
4954            Bitcoin::Leftmost64_32 => f.write_str("leftmost_64_32"),
4955            Bitcoin::Leftmost64_4 => f.write_str("leftmost_64_4"),
4956            Bitcoin::Leftmost64_8 => f.write_str("leftmost_64_8"),
4957            Bitcoin::Leftmost8_1 => f.write_str("leftmost_8_1"),
4958            Bitcoin::Leftmost8_2 => f.write_str("leftmost_8_2"),
4959            Bitcoin::Leftmost8_4 => f.write_str("leftmost_8_4"),
4960            Bitcoin::LinearCombination1 => f.write_str("linear_combination_1"),
4961            Bitcoin::LinearVerify1 => f.write_str("linear_verify_1"),
4962            Bitcoin::LockTime => f.write_str("lock_time"),
4963            Bitcoin::Low1 => f.write_str("low_1"),
4964            Bitcoin::Low16 => f.write_str("low_16"),
4965            Bitcoin::Low32 => f.write_str("low_32"),
4966            Bitcoin::Low64 => f.write_str("low_64"),
4967            Bitcoin::Low8 => f.write_str("low_8"),
4968            Bitcoin::Lt16 => f.write_str("lt_16"),
4969            Bitcoin::Lt32 => f.write_str("lt_32"),
4970            Bitcoin::Lt64 => f.write_str("lt_64"),
4971            Bitcoin::Lt8 => f.write_str("lt_8"),
4972            Bitcoin::Maj1 => f.write_str("maj_1"),
4973            Bitcoin::Maj16 => f.write_str("maj_16"),
4974            Bitcoin::Maj32 => f.write_str("maj_32"),
4975            Bitcoin::Maj64 => f.write_str("maj_64"),
4976            Bitcoin::Maj8 => f.write_str("maj_8"),
4977            Bitcoin::Max16 => f.write_str("max_16"),
4978            Bitcoin::Max32 => f.write_str("max_32"),
4979            Bitcoin::Max64 => f.write_str("max_64"),
4980            Bitcoin::Max8 => f.write_str("max_8"),
4981            Bitcoin::Median16 => f.write_str("median_16"),
4982            Bitcoin::Median32 => f.write_str("median_32"),
4983            Bitcoin::Median64 => f.write_str("median_64"),
4984            Bitcoin::Median8 => f.write_str("median_8"),
4985            Bitcoin::Min16 => f.write_str("min_16"),
4986            Bitcoin::Min32 => f.write_str("min_32"),
4987            Bitcoin::Min64 => f.write_str("min_64"),
4988            Bitcoin::Min8 => f.write_str("min_8"),
4989            Bitcoin::Modulo16 => f.write_str("modulo_16"),
4990            Bitcoin::Modulo32 => f.write_str("modulo_32"),
4991            Bitcoin::Modulo64 => f.write_str("modulo_64"),
4992            Bitcoin::Modulo8 => f.write_str("modulo_8"),
4993            Bitcoin::Multiply16 => f.write_str("multiply_16"),
4994            Bitcoin::Multiply32 => f.write_str("multiply_32"),
4995            Bitcoin::Multiply64 => f.write_str("multiply_64"),
4996            Bitcoin::Multiply8 => f.write_str("multiply_8"),
4997            Bitcoin::Negate16 => f.write_str("negate_16"),
4998            Bitcoin::Negate32 => f.write_str("negate_32"),
4999            Bitcoin::Negate64 => f.write_str("negate_64"),
5000            Bitcoin::Negate8 => f.write_str("negate_8"),
5001            Bitcoin::NumInputs => f.write_str("num_inputs"),
5002            Bitcoin::NumOutputs => f.write_str("num_outputs"),
5003            Bitcoin::One16 => f.write_str("one_16"),
5004            Bitcoin::One32 => f.write_str("one_32"),
5005            Bitcoin::One64 => f.write_str("one_64"),
5006            Bitcoin::One8 => f.write_str("one_8"),
5007            Bitcoin::Or1 => f.write_str("or_1"),
5008            Bitcoin::Or16 => f.write_str("or_16"),
5009            Bitcoin::Or32 => f.write_str("or_32"),
5010            Bitcoin::Or64 => f.write_str("or_64"),
5011            Bitcoin::Or8 => f.write_str("or_8"),
5012            Bitcoin::OutpointHash => f.write_str("outpoint_hash"),
5013            Bitcoin::OutputHash => f.write_str("output_hash"),
5014            Bitcoin::OutputScriptHash => f.write_str("output_script_hash"),
5015            Bitcoin::OutputScriptsHash => f.write_str("output_scripts_hash"),
5016            Bitcoin::OutputValue => f.write_str("output_value"),
5017            Bitcoin::OutputValuesHash => f.write_str("output_values_hash"),
5018            Bitcoin::OutputsHash => f.write_str("outputs_hash"),
5019            Bitcoin::ParseLock => f.write_str("parse_lock"),
5020            Bitcoin::ParseSequence => f.write_str("parse_sequence"),
5021            Bitcoin::PointVerify1 => f.write_str("point_verify_1"),
5022            Bitcoin::RightExtend16_32 => f.write_str("right_extend_16_32"),
5023            Bitcoin::RightExtend16_64 => f.write_str("right_extend_16_64"),
5024            Bitcoin::RightExtend32_64 => f.write_str("right_extend_32_64"),
5025            Bitcoin::RightExtend8_16 => f.write_str("right_extend_8_16"),
5026            Bitcoin::RightExtend8_32 => f.write_str("right_extend_8_32"),
5027            Bitcoin::RightExtend8_64 => f.write_str("right_extend_8_64"),
5028            Bitcoin::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
5029            Bitcoin::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
5030            Bitcoin::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
5031            Bitcoin::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
5032            Bitcoin::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
5033            Bitcoin::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
5034            Bitcoin::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
5035            Bitcoin::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
5036            Bitcoin::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
5037            Bitcoin::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
5038            Bitcoin::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
5039            Bitcoin::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
5040            Bitcoin::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
5041            Bitcoin::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
5042            Bitcoin::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
5043            Bitcoin::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
5044            Bitcoin::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
5045            Bitcoin::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
5046            Bitcoin::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
5047            Bitcoin::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
5048            Bitcoin::RightRotate16 => f.write_str("right_rotate_16"),
5049            Bitcoin::RightRotate32 => f.write_str("right_rotate_32"),
5050            Bitcoin::RightRotate64 => f.write_str("right_rotate_64"),
5051            Bitcoin::RightRotate8 => f.write_str("right_rotate_8"),
5052            Bitcoin::RightShift16 => f.write_str("right_shift_16"),
5053            Bitcoin::RightShift32 => f.write_str("right_shift_32"),
5054            Bitcoin::RightShift64 => f.write_str("right_shift_64"),
5055            Bitcoin::RightShift8 => f.write_str("right_shift_8"),
5056            Bitcoin::RightShiftWith16 => f.write_str("right_shift_with_16"),
5057            Bitcoin::RightShiftWith32 => f.write_str("right_shift_with_32"),
5058            Bitcoin::RightShiftWith64 => f.write_str("right_shift_with_64"),
5059            Bitcoin::RightShiftWith8 => f.write_str("right_shift_with_8"),
5060            Bitcoin::Rightmost16_1 => f.write_str("rightmost_16_1"),
5061            Bitcoin::Rightmost16_2 => f.write_str("rightmost_16_2"),
5062            Bitcoin::Rightmost16_4 => f.write_str("rightmost_16_4"),
5063            Bitcoin::Rightmost16_8 => f.write_str("rightmost_16_8"),
5064            Bitcoin::Rightmost32_1 => f.write_str("rightmost_32_1"),
5065            Bitcoin::Rightmost32_16 => f.write_str("rightmost_32_16"),
5066            Bitcoin::Rightmost32_2 => f.write_str("rightmost_32_2"),
5067            Bitcoin::Rightmost32_4 => f.write_str("rightmost_32_4"),
5068            Bitcoin::Rightmost32_8 => f.write_str("rightmost_32_8"),
5069            Bitcoin::Rightmost64_1 => f.write_str("rightmost_64_1"),
5070            Bitcoin::Rightmost64_16 => f.write_str("rightmost_64_16"),
5071            Bitcoin::Rightmost64_2 => f.write_str("rightmost_64_2"),
5072            Bitcoin::Rightmost64_32 => f.write_str("rightmost_64_32"),
5073            Bitcoin::Rightmost64_4 => f.write_str("rightmost_64_4"),
5074            Bitcoin::Rightmost64_8 => f.write_str("rightmost_64_8"),
5075            Bitcoin::Rightmost8_1 => f.write_str("rightmost_8_1"),
5076            Bitcoin::Rightmost8_2 => f.write_str("rightmost_8_2"),
5077            Bitcoin::Rightmost8_4 => f.write_str("rightmost_8_4"),
5078            Bitcoin::ScalarAdd => f.write_str("scalar_add"),
5079            Bitcoin::ScalarInvert => f.write_str("scalar_invert"),
5080            Bitcoin::ScalarIsZero => f.write_str("scalar_is_zero"),
5081            Bitcoin::ScalarMultiply => f.write_str("scalar_multiply"),
5082            Bitcoin::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
5083            Bitcoin::ScalarNegate => f.write_str("scalar_negate"),
5084            Bitcoin::ScalarNormalize => f.write_str("scalar_normalize"),
5085            Bitcoin::ScalarSquare => f.write_str("scalar_square"),
5086            Bitcoin::Scale => f.write_str("scale"),
5087            Bitcoin::ScriptCMR => f.write_str("script_cmr"),
5088            Bitcoin::Sha256Block => f.write_str("sha_256_block"),
5089            Bitcoin::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
5090            Bitcoin::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
5091            Bitcoin::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
5092            Bitcoin::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
5093            Bitcoin::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
5094            Bitcoin::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
5095            Bitcoin::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
5096            Bitcoin::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
5097            Bitcoin::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
5098            Bitcoin::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
5099            Bitcoin::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
5100            Bitcoin::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
5101            Bitcoin::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
5102            Bitcoin::Sha256Iv => f.write_str("sha_256_iv"),
5103            Bitcoin::SigAllHash => f.write_str("sig_all_hash"),
5104            Bitcoin::Some1 => f.write_str("some_1"),
5105            Bitcoin::Some16 => f.write_str("some_16"),
5106            Bitcoin::Some32 => f.write_str("some_32"),
5107            Bitcoin::Some64 => f.write_str("some_64"),
5108            Bitcoin::Some8 => f.write_str("some_8"),
5109            Bitcoin::Subtract16 => f.write_str("subtract_16"),
5110            Bitcoin::Subtract32 => f.write_str("subtract_32"),
5111            Bitcoin::Subtract64 => f.write_str("subtract_64"),
5112            Bitcoin::Subtract8 => f.write_str("subtract_8"),
5113            Bitcoin::Swu => f.write_str("swu"),
5114            Bitcoin::TapEnvHash => f.write_str("tap_env_hash"),
5115            Bitcoin::TapdataInit => f.write_str("tapdata_init"),
5116            Bitcoin::TapleafHash => f.write_str("tapleaf_hash"),
5117            Bitcoin::TapleafVersion => f.write_str("tapleaf_version"),
5118            Bitcoin::Tappath => f.write_str("tappath"),
5119            Bitcoin::TappathHash => f.write_str("tappath_hash"),
5120            Bitcoin::TotalInputValue => f.write_str("total_input_value"),
5121            Bitcoin::TotalOutputValue => f.write_str("total_output_value"),
5122            Bitcoin::TransactionId => f.write_str("transaction_id"),
5123            Bitcoin::TxHash => f.write_str("tx_hash"),
5124            Bitcoin::TxIsFinal => f.write_str("tx_is_final"),
5125            Bitcoin::TxLockDistance => f.write_str("tx_lock_distance"),
5126            Bitcoin::TxLockDuration => f.write_str("tx_lock_duration"),
5127            Bitcoin::TxLockHeight => f.write_str("tx_lock_height"),
5128            Bitcoin::TxLockTime => f.write_str("tx_lock_time"),
5129            Bitcoin::Verify => f.write_str("verify"),
5130            Bitcoin::Version => f.write_str("version"),
5131            Bitcoin::Xor1 => f.write_str("xor_1"),
5132            Bitcoin::Xor16 => f.write_str("xor_16"),
5133            Bitcoin::Xor32 => f.write_str("xor_32"),
5134            Bitcoin::Xor64 => f.write_str("xor_64"),
5135            Bitcoin::Xor8 => f.write_str("xor_8"),
5136            Bitcoin::XorXor1 => f.write_str("xor_xor_1"),
5137            Bitcoin::XorXor16 => f.write_str("xor_xor_16"),
5138            Bitcoin::XorXor32 => f.write_str("xor_xor_32"),
5139            Bitcoin::XorXor64 => f.write_str("xor_xor_64"),
5140            Bitcoin::XorXor8 => f.write_str("xor_xor_8"),
5141        }
5142    }
5143}
5144
5145impl str::FromStr for Bitcoin {
5146    type Err = crate::Error;
5147
5148    fn from_str(s: &str) -> Result<Self, Self::Err> {
5149        match s {
5150            "add_16" => Ok(Bitcoin::Add16),
5151            "add_32" => Ok(Bitcoin::Add32),
5152            "add_64" => Ok(Bitcoin::Add64),
5153            "add_8" => Ok(Bitcoin::Add8),
5154            "all_16" => Ok(Bitcoin::All16),
5155            "all_32" => Ok(Bitcoin::All32),
5156            "all_64" => Ok(Bitcoin::All64),
5157            "all_8" => Ok(Bitcoin::All8),
5158            "and_1" => Ok(Bitcoin::And1),
5159            "and_16" => Ok(Bitcoin::And16),
5160            "and_32" => Ok(Bitcoin::And32),
5161            "and_64" => Ok(Bitcoin::And64),
5162            "and_8" => Ok(Bitcoin::And8),
5163            "annex_hash" => Ok(Bitcoin::AnnexHash),
5164            "bip_0340_verify" => Ok(Bitcoin::Bip0340Verify),
5165            "build_tapbranch" => Ok(Bitcoin::BuildTapbranch),
5166            "build_tapleaf_simplicity" => Ok(Bitcoin::BuildTapleafSimplicity),
5167            "build_taptweak" => Ok(Bitcoin::BuildTaptweak),
5168            "ch_1" => Ok(Bitcoin::Ch1),
5169            "ch_16" => Ok(Bitcoin::Ch16),
5170            "ch_32" => Ok(Bitcoin::Ch32),
5171            "ch_64" => Ok(Bitcoin::Ch64),
5172            "ch_8" => Ok(Bitcoin::Ch8),
5173            "check_lock_distance" => Ok(Bitcoin::CheckLockDistance),
5174            "check_lock_duration" => Ok(Bitcoin::CheckLockDuration),
5175            "check_lock_height" => Ok(Bitcoin::CheckLockHeight),
5176            "check_lock_time" => Ok(Bitcoin::CheckLockTime),
5177            "check_sig_verify" => Ok(Bitcoin::CheckSigVerify),
5178            "complement_1" => Ok(Bitcoin::Complement1),
5179            "complement_16" => Ok(Bitcoin::Complement16),
5180            "complement_32" => Ok(Bitcoin::Complement32),
5181            "complement_64" => Ok(Bitcoin::Complement64),
5182            "complement_8" => Ok(Bitcoin::Complement8),
5183            "current_annex_hash" => Ok(Bitcoin::CurrentAnnexHash),
5184            "current_index" => Ok(Bitcoin::CurrentIndex),
5185            "current_prev_outpoint" => Ok(Bitcoin::CurrentPrevOutpoint),
5186            "current_script_hash" => Ok(Bitcoin::CurrentScriptHash),
5187            "current_script_sig_hash" => Ok(Bitcoin::CurrentScriptSigHash),
5188            "current_sequence" => Ok(Bitcoin::CurrentSequence),
5189            "current_value" => Ok(Bitcoin::CurrentValue),
5190            "decompress" => Ok(Bitcoin::Decompress),
5191            "decrement_16" => Ok(Bitcoin::Decrement16),
5192            "decrement_32" => Ok(Bitcoin::Decrement32),
5193            "decrement_64" => Ok(Bitcoin::Decrement64),
5194            "decrement_8" => Ok(Bitcoin::Decrement8),
5195            "div_mod_128_64" => Ok(Bitcoin::DivMod128_64),
5196            "div_mod_16" => Ok(Bitcoin::DivMod16),
5197            "div_mod_32" => Ok(Bitcoin::DivMod32),
5198            "div_mod_64" => Ok(Bitcoin::DivMod64),
5199            "div_mod_8" => Ok(Bitcoin::DivMod8),
5200            "divide_16" => Ok(Bitcoin::Divide16),
5201            "divide_32" => Ok(Bitcoin::Divide32),
5202            "divide_64" => Ok(Bitcoin::Divide64),
5203            "divide_8" => Ok(Bitcoin::Divide8),
5204            "divides_16" => Ok(Bitcoin::Divides16),
5205            "divides_32" => Ok(Bitcoin::Divides32),
5206            "divides_64" => Ok(Bitcoin::Divides64),
5207            "divides_8" => Ok(Bitcoin::Divides8),
5208            "eq_1" => Ok(Bitcoin::Eq1),
5209            "eq_16" => Ok(Bitcoin::Eq16),
5210            "eq_256" => Ok(Bitcoin::Eq256),
5211            "eq_32" => Ok(Bitcoin::Eq32),
5212            "eq_64" => Ok(Bitcoin::Eq64),
5213            "eq_8" => Ok(Bitcoin::Eq8),
5214            "fe_add" => Ok(Bitcoin::FeAdd),
5215            "fe_invert" => Ok(Bitcoin::FeInvert),
5216            "fe_is_odd" => Ok(Bitcoin::FeIsOdd),
5217            "fe_is_zero" => Ok(Bitcoin::FeIsZero),
5218            "fe_multiply" => Ok(Bitcoin::FeMultiply),
5219            "fe_multiply_beta" => Ok(Bitcoin::FeMultiplyBeta),
5220            "fe_negate" => Ok(Bitcoin::FeNegate),
5221            "fe_normalize" => Ok(Bitcoin::FeNormalize),
5222            "fe_square" => Ok(Bitcoin::FeSquare),
5223            "fe_square_root" => Ok(Bitcoin::FeSquareRoot),
5224            "fee" => Ok(Bitcoin::Fee),
5225            "full_add_16" => Ok(Bitcoin::FullAdd16),
5226            "full_add_32" => Ok(Bitcoin::FullAdd32),
5227            "full_add_64" => Ok(Bitcoin::FullAdd64),
5228            "full_add_8" => Ok(Bitcoin::FullAdd8),
5229            "full_decrement_16" => Ok(Bitcoin::FullDecrement16),
5230            "full_decrement_32" => Ok(Bitcoin::FullDecrement32),
5231            "full_decrement_64" => Ok(Bitcoin::FullDecrement64),
5232            "full_decrement_8" => Ok(Bitcoin::FullDecrement8),
5233            "full_increment_16" => Ok(Bitcoin::FullIncrement16),
5234            "full_increment_32" => Ok(Bitcoin::FullIncrement32),
5235            "full_increment_64" => Ok(Bitcoin::FullIncrement64),
5236            "full_increment_8" => Ok(Bitcoin::FullIncrement8),
5237            "full_left_shift_16_1" => Ok(Bitcoin::FullLeftShift16_1),
5238            "full_left_shift_16_2" => Ok(Bitcoin::FullLeftShift16_2),
5239            "full_left_shift_16_4" => Ok(Bitcoin::FullLeftShift16_4),
5240            "full_left_shift_16_8" => Ok(Bitcoin::FullLeftShift16_8),
5241            "full_left_shift_32_1" => Ok(Bitcoin::FullLeftShift32_1),
5242            "full_left_shift_32_16" => Ok(Bitcoin::FullLeftShift32_16),
5243            "full_left_shift_32_2" => Ok(Bitcoin::FullLeftShift32_2),
5244            "full_left_shift_32_4" => Ok(Bitcoin::FullLeftShift32_4),
5245            "full_left_shift_32_8" => Ok(Bitcoin::FullLeftShift32_8),
5246            "full_left_shift_64_1" => Ok(Bitcoin::FullLeftShift64_1),
5247            "full_left_shift_64_16" => Ok(Bitcoin::FullLeftShift64_16),
5248            "full_left_shift_64_2" => Ok(Bitcoin::FullLeftShift64_2),
5249            "full_left_shift_64_32" => Ok(Bitcoin::FullLeftShift64_32),
5250            "full_left_shift_64_4" => Ok(Bitcoin::FullLeftShift64_4),
5251            "full_left_shift_64_8" => Ok(Bitcoin::FullLeftShift64_8),
5252            "full_left_shift_8_1" => Ok(Bitcoin::FullLeftShift8_1),
5253            "full_left_shift_8_2" => Ok(Bitcoin::FullLeftShift8_2),
5254            "full_left_shift_8_4" => Ok(Bitcoin::FullLeftShift8_4),
5255            "full_multiply_16" => Ok(Bitcoin::FullMultiply16),
5256            "full_multiply_32" => Ok(Bitcoin::FullMultiply32),
5257            "full_multiply_64" => Ok(Bitcoin::FullMultiply64),
5258            "full_multiply_8" => Ok(Bitcoin::FullMultiply8),
5259            "full_right_shift_16_1" => Ok(Bitcoin::FullRightShift16_1),
5260            "full_right_shift_16_2" => Ok(Bitcoin::FullRightShift16_2),
5261            "full_right_shift_16_4" => Ok(Bitcoin::FullRightShift16_4),
5262            "full_right_shift_16_8" => Ok(Bitcoin::FullRightShift16_8),
5263            "full_right_shift_32_1" => Ok(Bitcoin::FullRightShift32_1),
5264            "full_right_shift_32_16" => Ok(Bitcoin::FullRightShift32_16),
5265            "full_right_shift_32_2" => Ok(Bitcoin::FullRightShift32_2),
5266            "full_right_shift_32_4" => Ok(Bitcoin::FullRightShift32_4),
5267            "full_right_shift_32_8" => Ok(Bitcoin::FullRightShift32_8),
5268            "full_right_shift_64_1" => Ok(Bitcoin::FullRightShift64_1),
5269            "full_right_shift_64_16" => Ok(Bitcoin::FullRightShift64_16),
5270            "full_right_shift_64_2" => Ok(Bitcoin::FullRightShift64_2),
5271            "full_right_shift_64_32" => Ok(Bitcoin::FullRightShift64_32),
5272            "full_right_shift_64_4" => Ok(Bitcoin::FullRightShift64_4),
5273            "full_right_shift_64_8" => Ok(Bitcoin::FullRightShift64_8),
5274            "full_right_shift_8_1" => Ok(Bitcoin::FullRightShift8_1),
5275            "full_right_shift_8_2" => Ok(Bitcoin::FullRightShift8_2),
5276            "full_right_shift_8_4" => Ok(Bitcoin::FullRightShift8_4),
5277            "full_subtract_16" => Ok(Bitcoin::FullSubtract16),
5278            "full_subtract_32" => Ok(Bitcoin::FullSubtract32),
5279            "full_subtract_64" => Ok(Bitcoin::FullSubtract64),
5280            "full_subtract_8" => Ok(Bitcoin::FullSubtract8),
5281            "ge_is_on_curve" => Ok(Bitcoin::GeIsOnCurve),
5282            "ge_negate" => Ok(Bitcoin::GeNegate),
5283            "gej_add" => Ok(Bitcoin::GejAdd),
5284            "gej_double" => Ok(Bitcoin::GejDouble),
5285            "gej_equiv" => Ok(Bitcoin::GejEquiv),
5286            "gej_ge_add" => Ok(Bitcoin::GejGeAdd),
5287            "gej_ge_add_ex" => Ok(Bitcoin::GejGeAddEx),
5288            "gej_ge_equiv" => Ok(Bitcoin::GejGeEquiv),
5289            "gej_infinity" => Ok(Bitcoin::GejInfinity),
5290            "gej_is_infinity" => Ok(Bitcoin::GejIsInfinity),
5291            "gej_is_on_curve" => Ok(Bitcoin::GejIsOnCurve),
5292            "gej_negate" => Ok(Bitcoin::GejNegate),
5293            "gej_normalize" => Ok(Bitcoin::GejNormalize),
5294            "gej_rescale" => Ok(Bitcoin::GejRescale),
5295            "gej_x_equiv" => Ok(Bitcoin::GejXEquiv),
5296            "gej_y_is_odd" => Ok(Bitcoin::GejYIsOdd),
5297            "generate" => Ok(Bitcoin::Generate),
5298            "hash_to_curve" => Ok(Bitcoin::HashToCurve),
5299            "high_1" => Ok(Bitcoin::High1),
5300            "high_16" => Ok(Bitcoin::High16),
5301            "high_32" => Ok(Bitcoin::High32),
5302            "high_64" => Ok(Bitcoin::High64),
5303            "high_8" => Ok(Bitcoin::High8),
5304            "increment_16" => Ok(Bitcoin::Increment16),
5305            "increment_32" => Ok(Bitcoin::Increment32),
5306            "increment_64" => Ok(Bitcoin::Increment64),
5307            "increment_8" => Ok(Bitcoin::Increment8),
5308            "input_annex_hash" => Ok(Bitcoin::InputAnnexHash),
5309            "input_annexes_hash" => Ok(Bitcoin::InputAnnexesHash),
5310            "input_hash" => Ok(Bitcoin::InputHash),
5311            "input_outpoints_hash" => Ok(Bitcoin::InputOutpointsHash),
5312            "input_prev_outpoint" => Ok(Bitcoin::InputPrevOutpoint),
5313            "input_script_hash" => Ok(Bitcoin::InputScriptHash),
5314            "input_script_sig_hash" => Ok(Bitcoin::InputScriptSigHash),
5315            "input_script_sigs_hash" => Ok(Bitcoin::InputScriptSigsHash),
5316            "input_scripts_hash" => Ok(Bitcoin::InputScriptsHash),
5317            "input_sequence" => Ok(Bitcoin::InputSequence),
5318            "input_sequences_hash" => Ok(Bitcoin::InputSequencesHash),
5319            "input_utxo_hash" => Ok(Bitcoin::InputUtxoHash),
5320            "input_utxos_hash" => Ok(Bitcoin::InputUtxosHash),
5321            "input_value" => Ok(Bitcoin::InputValue),
5322            "input_values_hash" => Ok(Bitcoin::InputValuesHash),
5323            "inputs_hash" => Ok(Bitcoin::InputsHash),
5324            "internal_key" => Ok(Bitcoin::InternalKey),
5325            "is_one_16" => Ok(Bitcoin::IsOne16),
5326            "is_one_32" => Ok(Bitcoin::IsOne32),
5327            "is_one_64" => Ok(Bitcoin::IsOne64),
5328            "is_one_8" => Ok(Bitcoin::IsOne8),
5329            "is_zero_16" => Ok(Bitcoin::IsZero16),
5330            "is_zero_32" => Ok(Bitcoin::IsZero32),
5331            "is_zero_64" => Ok(Bitcoin::IsZero64),
5332            "is_zero_8" => Ok(Bitcoin::IsZero8),
5333            "le_16" => Ok(Bitcoin::Le16),
5334            "le_32" => Ok(Bitcoin::Le32),
5335            "le_64" => Ok(Bitcoin::Le64),
5336            "le_8" => Ok(Bitcoin::Le8),
5337            "left_extend_16_32" => Ok(Bitcoin::LeftExtend16_32),
5338            "left_extend_16_64" => Ok(Bitcoin::LeftExtend16_64),
5339            "left_extend_1_16" => Ok(Bitcoin::LeftExtend1_16),
5340            "left_extend_1_32" => Ok(Bitcoin::LeftExtend1_32),
5341            "left_extend_1_64" => Ok(Bitcoin::LeftExtend1_64),
5342            "left_extend_1_8" => Ok(Bitcoin::LeftExtend1_8),
5343            "left_extend_32_64" => Ok(Bitcoin::LeftExtend32_64),
5344            "left_extend_8_16" => Ok(Bitcoin::LeftExtend8_16),
5345            "left_extend_8_32" => Ok(Bitcoin::LeftExtend8_32),
5346            "left_extend_8_64" => Ok(Bitcoin::LeftExtend8_64),
5347            "left_pad_high_16_32" => Ok(Bitcoin::LeftPadHigh16_32),
5348            "left_pad_high_16_64" => Ok(Bitcoin::LeftPadHigh16_64),
5349            "left_pad_high_1_16" => Ok(Bitcoin::LeftPadHigh1_16),
5350            "left_pad_high_1_32" => Ok(Bitcoin::LeftPadHigh1_32),
5351            "left_pad_high_1_64" => Ok(Bitcoin::LeftPadHigh1_64),
5352            "left_pad_high_1_8" => Ok(Bitcoin::LeftPadHigh1_8),
5353            "left_pad_high_32_64" => Ok(Bitcoin::LeftPadHigh32_64),
5354            "left_pad_high_8_16" => Ok(Bitcoin::LeftPadHigh8_16),
5355            "left_pad_high_8_32" => Ok(Bitcoin::LeftPadHigh8_32),
5356            "left_pad_high_8_64" => Ok(Bitcoin::LeftPadHigh8_64),
5357            "left_pad_low_16_32" => Ok(Bitcoin::LeftPadLow16_32),
5358            "left_pad_low_16_64" => Ok(Bitcoin::LeftPadLow16_64),
5359            "left_pad_low_1_16" => Ok(Bitcoin::LeftPadLow1_16),
5360            "left_pad_low_1_32" => Ok(Bitcoin::LeftPadLow1_32),
5361            "left_pad_low_1_64" => Ok(Bitcoin::LeftPadLow1_64),
5362            "left_pad_low_1_8" => Ok(Bitcoin::LeftPadLow1_8),
5363            "left_pad_low_32_64" => Ok(Bitcoin::LeftPadLow32_64),
5364            "left_pad_low_8_16" => Ok(Bitcoin::LeftPadLow8_16),
5365            "left_pad_low_8_32" => Ok(Bitcoin::LeftPadLow8_32),
5366            "left_pad_low_8_64" => Ok(Bitcoin::LeftPadLow8_64),
5367            "left_rotate_16" => Ok(Bitcoin::LeftRotate16),
5368            "left_rotate_32" => Ok(Bitcoin::LeftRotate32),
5369            "left_rotate_64" => Ok(Bitcoin::LeftRotate64),
5370            "left_rotate_8" => Ok(Bitcoin::LeftRotate8),
5371            "left_shift_16" => Ok(Bitcoin::LeftShift16),
5372            "left_shift_32" => Ok(Bitcoin::LeftShift32),
5373            "left_shift_64" => Ok(Bitcoin::LeftShift64),
5374            "left_shift_8" => Ok(Bitcoin::LeftShift8),
5375            "left_shift_with_16" => Ok(Bitcoin::LeftShiftWith16),
5376            "left_shift_with_32" => Ok(Bitcoin::LeftShiftWith32),
5377            "left_shift_with_64" => Ok(Bitcoin::LeftShiftWith64),
5378            "left_shift_with_8" => Ok(Bitcoin::LeftShiftWith8),
5379            "leftmost_16_1" => Ok(Bitcoin::Leftmost16_1),
5380            "leftmost_16_2" => Ok(Bitcoin::Leftmost16_2),
5381            "leftmost_16_4" => Ok(Bitcoin::Leftmost16_4),
5382            "leftmost_16_8" => Ok(Bitcoin::Leftmost16_8),
5383            "leftmost_32_1" => Ok(Bitcoin::Leftmost32_1),
5384            "leftmost_32_16" => Ok(Bitcoin::Leftmost32_16),
5385            "leftmost_32_2" => Ok(Bitcoin::Leftmost32_2),
5386            "leftmost_32_4" => Ok(Bitcoin::Leftmost32_4),
5387            "leftmost_32_8" => Ok(Bitcoin::Leftmost32_8),
5388            "leftmost_64_1" => Ok(Bitcoin::Leftmost64_1),
5389            "leftmost_64_16" => Ok(Bitcoin::Leftmost64_16),
5390            "leftmost_64_2" => Ok(Bitcoin::Leftmost64_2),
5391            "leftmost_64_32" => Ok(Bitcoin::Leftmost64_32),
5392            "leftmost_64_4" => Ok(Bitcoin::Leftmost64_4),
5393            "leftmost_64_8" => Ok(Bitcoin::Leftmost64_8),
5394            "leftmost_8_1" => Ok(Bitcoin::Leftmost8_1),
5395            "leftmost_8_2" => Ok(Bitcoin::Leftmost8_2),
5396            "leftmost_8_4" => Ok(Bitcoin::Leftmost8_4),
5397            "linear_combination_1" => Ok(Bitcoin::LinearCombination1),
5398            "linear_verify_1" => Ok(Bitcoin::LinearVerify1),
5399            "lock_time" => Ok(Bitcoin::LockTime),
5400            "low_1" => Ok(Bitcoin::Low1),
5401            "low_16" => Ok(Bitcoin::Low16),
5402            "low_32" => Ok(Bitcoin::Low32),
5403            "low_64" => Ok(Bitcoin::Low64),
5404            "low_8" => Ok(Bitcoin::Low8),
5405            "lt_16" => Ok(Bitcoin::Lt16),
5406            "lt_32" => Ok(Bitcoin::Lt32),
5407            "lt_64" => Ok(Bitcoin::Lt64),
5408            "lt_8" => Ok(Bitcoin::Lt8),
5409            "maj_1" => Ok(Bitcoin::Maj1),
5410            "maj_16" => Ok(Bitcoin::Maj16),
5411            "maj_32" => Ok(Bitcoin::Maj32),
5412            "maj_64" => Ok(Bitcoin::Maj64),
5413            "maj_8" => Ok(Bitcoin::Maj8),
5414            "max_16" => Ok(Bitcoin::Max16),
5415            "max_32" => Ok(Bitcoin::Max32),
5416            "max_64" => Ok(Bitcoin::Max64),
5417            "max_8" => Ok(Bitcoin::Max8),
5418            "median_16" => Ok(Bitcoin::Median16),
5419            "median_32" => Ok(Bitcoin::Median32),
5420            "median_64" => Ok(Bitcoin::Median64),
5421            "median_8" => Ok(Bitcoin::Median8),
5422            "min_16" => Ok(Bitcoin::Min16),
5423            "min_32" => Ok(Bitcoin::Min32),
5424            "min_64" => Ok(Bitcoin::Min64),
5425            "min_8" => Ok(Bitcoin::Min8),
5426            "modulo_16" => Ok(Bitcoin::Modulo16),
5427            "modulo_32" => Ok(Bitcoin::Modulo32),
5428            "modulo_64" => Ok(Bitcoin::Modulo64),
5429            "modulo_8" => Ok(Bitcoin::Modulo8),
5430            "multiply_16" => Ok(Bitcoin::Multiply16),
5431            "multiply_32" => Ok(Bitcoin::Multiply32),
5432            "multiply_64" => Ok(Bitcoin::Multiply64),
5433            "multiply_8" => Ok(Bitcoin::Multiply8),
5434            "negate_16" => Ok(Bitcoin::Negate16),
5435            "negate_32" => Ok(Bitcoin::Negate32),
5436            "negate_64" => Ok(Bitcoin::Negate64),
5437            "negate_8" => Ok(Bitcoin::Negate8),
5438            "num_inputs" => Ok(Bitcoin::NumInputs),
5439            "num_outputs" => Ok(Bitcoin::NumOutputs),
5440            "one_16" => Ok(Bitcoin::One16),
5441            "one_32" => Ok(Bitcoin::One32),
5442            "one_64" => Ok(Bitcoin::One64),
5443            "one_8" => Ok(Bitcoin::One8),
5444            "or_1" => Ok(Bitcoin::Or1),
5445            "or_16" => Ok(Bitcoin::Or16),
5446            "or_32" => Ok(Bitcoin::Or32),
5447            "or_64" => Ok(Bitcoin::Or64),
5448            "or_8" => Ok(Bitcoin::Or8),
5449            "outpoint_hash" => Ok(Bitcoin::OutpointHash),
5450            "output_hash" => Ok(Bitcoin::OutputHash),
5451            "output_script_hash" => Ok(Bitcoin::OutputScriptHash),
5452            "output_scripts_hash" => Ok(Bitcoin::OutputScriptsHash),
5453            "output_value" => Ok(Bitcoin::OutputValue),
5454            "output_values_hash" => Ok(Bitcoin::OutputValuesHash),
5455            "outputs_hash" => Ok(Bitcoin::OutputsHash),
5456            "parse_lock" => Ok(Bitcoin::ParseLock),
5457            "parse_sequence" => Ok(Bitcoin::ParseSequence),
5458            "point_verify_1" => Ok(Bitcoin::PointVerify1),
5459            "right_extend_16_32" => Ok(Bitcoin::RightExtend16_32),
5460            "right_extend_16_64" => Ok(Bitcoin::RightExtend16_64),
5461            "right_extend_32_64" => Ok(Bitcoin::RightExtend32_64),
5462            "right_extend_8_16" => Ok(Bitcoin::RightExtend8_16),
5463            "right_extend_8_32" => Ok(Bitcoin::RightExtend8_32),
5464            "right_extend_8_64" => Ok(Bitcoin::RightExtend8_64),
5465            "right_pad_high_16_32" => Ok(Bitcoin::RightPadHigh16_32),
5466            "right_pad_high_16_64" => Ok(Bitcoin::RightPadHigh16_64),
5467            "right_pad_high_1_16" => Ok(Bitcoin::RightPadHigh1_16),
5468            "right_pad_high_1_32" => Ok(Bitcoin::RightPadHigh1_32),
5469            "right_pad_high_1_64" => Ok(Bitcoin::RightPadHigh1_64),
5470            "right_pad_high_1_8" => Ok(Bitcoin::RightPadHigh1_8),
5471            "right_pad_high_32_64" => Ok(Bitcoin::RightPadHigh32_64),
5472            "right_pad_high_8_16" => Ok(Bitcoin::RightPadHigh8_16),
5473            "right_pad_high_8_32" => Ok(Bitcoin::RightPadHigh8_32),
5474            "right_pad_high_8_64" => Ok(Bitcoin::RightPadHigh8_64),
5475            "right_pad_low_16_32" => Ok(Bitcoin::RightPadLow16_32),
5476            "right_pad_low_16_64" => Ok(Bitcoin::RightPadLow16_64),
5477            "right_pad_low_1_16" => Ok(Bitcoin::RightPadLow1_16),
5478            "right_pad_low_1_32" => Ok(Bitcoin::RightPadLow1_32),
5479            "right_pad_low_1_64" => Ok(Bitcoin::RightPadLow1_64),
5480            "right_pad_low_1_8" => Ok(Bitcoin::RightPadLow1_8),
5481            "right_pad_low_32_64" => Ok(Bitcoin::RightPadLow32_64),
5482            "right_pad_low_8_16" => Ok(Bitcoin::RightPadLow8_16),
5483            "right_pad_low_8_32" => Ok(Bitcoin::RightPadLow8_32),
5484            "right_pad_low_8_64" => Ok(Bitcoin::RightPadLow8_64),
5485            "right_rotate_16" => Ok(Bitcoin::RightRotate16),
5486            "right_rotate_32" => Ok(Bitcoin::RightRotate32),
5487            "right_rotate_64" => Ok(Bitcoin::RightRotate64),
5488            "right_rotate_8" => Ok(Bitcoin::RightRotate8),
5489            "right_shift_16" => Ok(Bitcoin::RightShift16),
5490            "right_shift_32" => Ok(Bitcoin::RightShift32),
5491            "right_shift_64" => Ok(Bitcoin::RightShift64),
5492            "right_shift_8" => Ok(Bitcoin::RightShift8),
5493            "right_shift_with_16" => Ok(Bitcoin::RightShiftWith16),
5494            "right_shift_with_32" => Ok(Bitcoin::RightShiftWith32),
5495            "right_shift_with_64" => Ok(Bitcoin::RightShiftWith64),
5496            "right_shift_with_8" => Ok(Bitcoin::RightShiftWith8),
5497            "rightmost_16_1" => Ok(Bitcoin::Rightmost16_1),
5498            "rightmost_16_2" => Ok(Bitcoin::Rightmost16_2),
5499            "rightmost_16_4" => Ok(Bitcoin::Rightmost16_4),
5500            "rightmost_16_8" => Ok(Bitcoin::Rightmost16_8),
5501            "rightmost_32_1" => Ok(Bitcoin::Rightmost32_1),
5502            "rightmost_32_16" => Ok(Bitcoin::Rightmost32_16),
5503            "rightmost_32_2" => Ok(Bitcoin::Rightmost32_2),
5504            "rightmost_32_4" => Ok(Bitcoin::Rightmost32_4),
5505            "rightmost_32_8" => Ok(Bitcoin::Rightmost32_8),
5506            "rightmost_64_1" => Ok(Bitcoin::Rightmost64_1),
5507            "rightmost_64_16" => Ok(Bitcoin::Rightmost64_16),
5508            "rightmost_64_2" => Ok(Bitcoin::Rightmost64_2),
5509            "rightmost_64_32" => Ok(Bitcoin::Rightmost64_32),
5510            "rightmost_64_4" => Ok(Bitcoin::Rightmost64_4),
5511            "rightmost_64_8" => Ok(Bitcoin::Rightmost64_8),
5512            "rightmost_8_1" => Ok(Bitcoin::Rightmost8_1),
5513            "rightmost_8_2" => Ok(Bitcoin::Rightmost8_2),
5514            "rightmost_8_4" => Ok(Bitcoin::Rightmost8_4),
5515            "scalar_add" => Ok(Bitcoin::ScalarAdd),
5516            "scalar_invert" => Ok(Bitcoin::ScalarInvert),
5517            "scalar_is_zero" => Ok(Bitcoin::ScalarIsZero),
5518            "scalar_multiply" => Ok(Bitcoin::ScalarMultiply),
5519            "scalar_multiply_lambda" => Ok(Bitcoin::ScalarMultiplyLambda),
5520            "scalar_negate" => Ok(Bitcoin::ScalarNegate),
5521            "scalar_normalize" => Ok(Bitcoin::ScalarNormalize),
5522            "scalar_square" => Ok(Bitcoin::ScalarSquare),
5523            "scale" => Ok(Bitcoin::Scale),
5524            "script_cmr" => Ok(Bitcoin::ScriptCMR),
5525            "sha_256_block" => Ok(Bitcoin::Sha256Block),
5526            "sha_256_ctx_8_add_1" => Ok(Bitcoin::Sha256Ctx8Add1),
5527            "sha_256_ctx_8_add_128" => Ok(Bitcoin::Sha256Ctx8Add128),
5528            "sha_256_ctx_8_add_16" => Ok(Bitcoin::Sha256Ctx8Add16),
5529            "sha_256_ctx_8_add_2" => Ok(Bitcoin::Sha256Ctx8Add2),
5530            "sha_256_ctx_8_add_256" => Ok(Bitcoin::Sha256Ctx8Add256),
5531            "sha_256_ctx_8_add_32" => Ok(Bitcoin::Sha256Ctx8Add32),
5532            "sha_256_ctx_8_add_4" => Ok(Bitcoin::Sha256Ctx8Add4),
5533            "sha_256_ctx_8_add_512" => Ok(Bitcoin::Sha256Ctx8Add512),
5534            "sha_256_ctx_8_add_64" => Ok(Bitcoin::Sha256Ctx8Add64),
5535            "sha_256_ctx_8_add_8" => Ok(Bitcoin::Sha256Ctx8Add8),
5536            "sha_256_ctx_8_add_buffer_511" => Ok(Bitcoin::Sha256Ctx8AddBuffer511),
5537            "sha_256_ctx_8_finalize" => Ok(Bitcoin::Sha256Ctx8Finalize),
5538            "sha_256_ctx_8_init" => Ok(Bitcoin::Sha256Ctx8Init),
5539            "sha_256_iv" => Ok(Bitcoin::Sha256Iv),
5540            "sig_all_hash" => Ok(Bitcoin::SigAllHash),
5541            "some_1" => Ok(Bitcoin::Some1),
5542            "some_16" => Ok(Bitcoin::Some16),
5543            "some_32" => Ok(Bitcoin::Some32),
5544            "some_64" => Ok(Bitcoin::Some64),
5545            "some_8" => Ok(Bitcoin::Some8),
5546            "subtract_16" => Ok(Bitcoin::Subtract16),
5547            "subtract_32" => Ok(Bitcoin::Subtract32),
5548            "subtract_64" => Ok(Bitcoin::Subtract64),
5549            "subtract_8" => Ok(Bitcoin::Subtract8),
5550            "swu" => Ok(Bitcoin::Swu),
5551            "tap_env_hash" => Ok(Bitcoin::TapEnvHash),
5552            "tapdata_init" => Ok(Bitcoin::TapdataInit),
5553            "tapleaf_hash" => Ok(Bitcoin::TapleafHash),
5554            "tapleaf_version" => Ok(Bitcoin::TapleafVersion),
5555            "tappath" => Ok(Bitcoin::Tappath),
5556            "tappath_hash" => Ok(Bitcoin::TappathHash),
5557            "total_input_value" => Ok(Bitcoin::TotalInputValue),
5558            "total_output_value" => Ok(Bitcoin::TotalOutputValue),
5559            "transaction_id" => Ok(Bitcoin::TransactionId),
5560            "tx_hash" => Ok(Bitcoin::TxHash),
5561            "tx_is_final" => Ok(Bitcoin::TxIsFinal),
5562            "tx_lock_distance" => Ok(Bitcoin::TxLockDistance),
5563            "tx_lock_duration" => Ok(Bitcoin::TxLockDuration),
5564            "tx_lock_height" => Ok(Bitcoin::TxLockHeight),
5565            "tx_lock_time" => Ok(Bitcoin::TxLockTime),
5566            "verify" => Ok(Bitcoin::Verify),
5567            "version" => Ok(Bitcoin::Version),
5568            "xor_1" => Ok(Bitcoin::Xor1),
5569            "xor_16" => Ok(Bitcoin::Xor16),
5570            "xor_32" => Ok(Bitcoin::Xor32),
5571            "xor_64" => Ok(Bitcoin::Xor64),
5572            "xor_8" => Ok(Bitcoin::Xor8),
5573            "xor_xor_1" => Ok(Bitcoin::XorXor1),
5574            "xor_xor_16" => Ok(Bitcoin::XorXor16),
5575            "xor_xor_32" => Ok(Bitcoin::XorXor32),
5576            "xor_xor_64" => Ok(Bitcoin::XorXor64),
5577            "xor_xor_8" => Ok(Bitcoin::XorXor8),
5578            x => Err(crate::Error::InvalidJetName(x.to_owned())),
5579        }
5580    }
5581}
5582
5583pub(crate) fn c_jet_ptr(jet: &Bitcoin) -> fn(&mut CFrameItem, CFrameItem, &()) -> bool {
5584        unimplemented!("Bitcoin jets have not yet been implemented.")
5585}