simplicity/jet/init/
elements.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};
13use crate::jet::elements::ElementsEnv;
14use simplicity_sys::CElementsTxEnv;
15
16/// The Elements jet family.
17#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
18pub enum Elements {
19    Add16,
20    Add32,
21    Add64,
22    Add8,
23    All16,
24    All32,
25    All64,
26    All8,
27    And1,
28    And16,
29    And32,
30    And64,
31    And8,
32    AnnexHash,
33    AssetAmountHash,
34    Bip0340Verify,
35    BuildTapbranch,
36    BuildTapleafSimplicity,
37    BuildTaptweak,
38    CalculateAsset,
39    CalculateConfidentialToken,
40    CalculateExplicitToken,
41    CalculateIssuanceEntropy,
42    Ch1,
43    Ch16,
44    Ch32,
45    Ch64,
46    Ch8,
47    CheckLockDistance,
48    CheckLockDuration,
49    CheckLockHeight,
50    CheckLockTime,
51    CheckSigVerify,
52    Complement1,
53    Complement16,
54    Complement32,
55    Complement64,
56    Complement8,
57    CurrentAmount,
58    CurrentAnnexHash,
59    CurrentAsset,
60    CurrentIndex,
61    CurrentIssuanceAssetAmount,
62    CurrentIssuanceAssetProof,
63    CurrentIssuanceTokenAmount,
64    CurrentIssuanceTokenProof,
65    CurrentNewIssuanceContract,
66    CurrentPegin,
67    CurrentPrevOutpoint,
68    CurrentReissuanceBlinding,
69    CurrentReissuanceEntropy,
70    CurrentScriptHash,
71    CurrentScriptSigHash,
72    CurrentSequence,
73    Decompress,
74    Decrement16,
75    Decrement32,
76    Decrement64,
77    Decrement8,
78    DivMod128_64,
79    DivMod16,
80    DivMod32,
81    DivMod64,
82    DivMod8,
83    Divide16,
84    Divide32,
85    Divide64,
86    Divide8,
87    Divides16,
88    Divides32,
89    Divides64,
90    Divides8,
91    Eq1,
92    Eq16,
93    Eq256,
94    Eq32,
95    Eq64,
96    Eq8,
97    FeAdd,
98    FeInvert,
99    FeIsOdd,
100    FeIsZero,
101    FeMultiply,
102    FeMultiplyBeta,
103    FeNegate,
104    FeNormalize,
105    FeSquare,
106    FeSquareRoot,
107    FullAdd16,
108    FullAdd32,
109    FullAdd64,
110    FullAdd8,
111    FullDecrement16,
112    FullDecrement32,
113    FullDecrement64,
114    FullDecrement8,
115    FullIncrement16,
116    FullIncrement32,
117    FullIncrement64,
118    FullIncrement8,
119    FullLeftShift16_1,
120    FullLeftShift16_2,
121    FullLeftShift16_4,
122    FullLeftShift16_8,
123    FullLeftShift32_1,
124    FullLeftShift32_16,
125    FullLeftShift32_2,
126    FullLeftShift32_4,
127    FullLeftShift32_8,
128    FullLeftShift64_1,
129    FullLeftShift64_16,
130    FullLeftShift64_2,
131    FullLeftShift64_32,
132    FullLeftShift64_4,
133    FullLeftShift64_8,
134    FullLeftShift8_1,
135    FullLeftShift8_2,
136    FullLeftShift8_4,
137    FullMultiply16,
138    FullMultiply32,
139    FullMultiply64,
140    FullMultiply8,
141    FullRightShift16_1,
142    FullRightShift16_2,
143    FullRightShift16_4,
144    FullRightShift16_8,
145    FullRightShift32_1,
146    FullRightShift32_16,
147    FullRightShift32_2,
148    FullRightShift32_4,
149    FullRightShift32_8,
150    FullRightShift64_1,
151    FullRightShift64_16,
152    FullRightShift64_2,
153    FullRightShift64_32,
154    FullRightShift64_4,
155    FullRightShift64_8,
156    FullRightShift8_1,
157    FullRightShift8_2,
158    FullRightShift8_4,
159    FullSubtract16,
160    FullSubtract32,
161    FullSubtract64,
162    FullSubtract8,
163    GeIsOnCurve,
164    GeNegate,
165    GejAdd,
166    GejDouble,
167    GejEquiv,
168    GejGeAdd,
169    GejGeAddEx,
170    GejGeEquiv,
171    GejInfinity,
172    GejIsInfinity,
173    GejIsOnCurve,
174    GejNegate,
175    GejNormalize,
176    GejRescale,
177    GejXEquiv,
178    GejYIsOdd,
179    Generate,
180    GenesisBlockHash,
181    HashToCurve,
182    High1,
183    High16,
184    High32,
185    High64,
186    High8,
187    Increment16,
188    Increment32,
189    Increment64,
190    Increment8,
191    InputAmount,
192    InputAmountsHash,
193    InputAnnexHash,
194    InputAnnexesHash,
195    InputAsset,
196    InputHash,
197    InputOutpointsHash,
198    InputPegin,
199    InputPrevOutpoint,
200    InputScriptHash,
201    InputScriptSigHash,
202    InputScriptSigsHash,
203    InputScriptsHash,
204    InputSequence,
205    InputSequencesHash,
206    InputUtxoHash,
207    InputUtxosHash,
208    InputsHash,
209    InternalKey,
210    IsOne16,
211    IsOne32,
212    IsOne64,
213    IsOne8,
214    IsZero16,
215    IsZero32,
216    IsZero64,
217    IsZero8,
218    Issuance,
219    IssuanceAsset,
220    IssuanceAssetAmount,
221    IssuanceAssetAmountsHash,
222    IssuanceAssetProof,
223    IssuanceBlindingEntropyHash,
224    IssuanceEntropy,
225    IssuanceHash,
226    IssuanceRangeProofsHash,
227    IssuanceToken,
228    IssuanceTokenAmount,
229    IssuanceTokenAmountsHash,
230    IssuanceTokenProof,
231    IssuancesHash,
232    LbtcAsset,
233    Le16,
234    Le32,
235    Le64,
236    Le8,
237    LeftExtend16_32,
238    LeftExtend16_64,
239    LeftExtend1_16,
240    LeftExtend1_32,
241    LeftExtend1_64,
242    LeftExtend1_8,
243    LeftExtend32_64,
244    LeftExtend8_16,
245    LeftExtend8_32,
246    LeftExtend8_64,
247    LeftPadHigh16_32,
248    LeftPadHigh16_64,
249    LeftPadHigh1_16,
250    LeftPadHigh1_32,
251    LeftPadHigh1_64,
252    LeftPadHigh1_8,
253    LeftPadHigh32_64,
254    LeftPadHigh8_16,
255    LeftPadHigh8_32,
256    LeftPadHigh8_64,
257    LeftPadLow16_32,
258    LeftPadLow16_64,
259    LeftPadLow1_16,
260    LeftPadLow1_32,
261    LeftPadLow1_64,
262    LeftPadLow1_8,
263    LeftPadLow32_64,
264    LeftPadLow8_16,
265    LeftPadLow8_32,
266    LeftPadLow8_64,
267    LeftRotate16,
268    LeftRotate32,
269    LeftRotate64,
270    LeftRotate8,
271    LeftShift16,
272    LeftShift32,
273    LeftShift64,
274    LeftShift8,
275    LeftShiftWith16,
276    LeftShiftWith32,
277    LeftShiftWith64,
278    LeftShiftWith8,
279    Leftmost16_1,
280    Leftmost16_2,
281    Leftmost16_4,
282    Leftmost16_8,
283    Leftmost32_1,
284    Leftmost32_16,
285    Leftmost32_2,
286    Leftmost32_4,
287    Leftmost32_8,
288    Leftmost64_1,
289    Leftmost64_16,
290    Leftmost64_2,
291    Leftmost64_32,
292    Leftmost64_4,
293    Leftmost64_8,
294    Leftmost8_1,
295    Leftmost8_2,
296    Leftmost8_4,
297    LinearCombination1,
298    LinearVerify1,
299    LockTime,
300    Low1,
301    Low16,
302    Low32,
303    Low64,
304    Low8,
305    Lt16,
306    Lt32,
307    Lt64,
308    Lt8,
309    Maj1,
310    Maj16,
311    Maj32,
312    Maj64,
313    Maj8,
314    Max16,
315    Max32,
316    Max64,
317    Max8,
318    Median16,
319    Median32,
320    Median64,
321    Median8,
322    Min16,
323    Min32,
324    Min64,
325    Min8,
326    Modulo16,
327    Modulo32,
328    Modulo64,
329    Modulo8,
330    Multiply16,
331    Multiply32,
332    Multiply64,
333    Multiply8,
334    Negate16,
335    Negate32,
336    Negate64,
337    Negate8,
338    NewIssuanceContract,
339    NonceHash,
340    NumInputs,
341    NumOutputs,
342    One16,
343    One32,
344    One64,
345    One8,
346    Or1,
347    Or16,
348    Or32,
349    Or64,
350    Or8,
351    OutpointHash,
352    OutputAmount,
353    OutputAmountsHash,
354    OutputAsset,
355    OutputHash,
356    OutputIsFee,
357    OutputNonce,
358    OutputNoncesHash,
359    OutputNullDatum,
360    OutputRangeProof,
361    OutputRangeProofsHash,
362    OutputScriptHash,
363    OutputScriptsHash,
364    OutputSurjectionProof,
365    OutputSurjectionProofsHash,
366    OutputsHash,
367    ParseLock,
368    ParseSequence,
369    PointVerify1,
370    ReissuanceBlinding,
371    ReissuanceEntropy,
372    RightExtend16_32,
373    RightExtend16_64,
374    RightExtend32_64,
375    RightExtend8_16,
376    RightExtend8_32,
377    RightExtend8_64,
378    RightPadHigh16_32,
379    RightPadHigh16_64,
380    RightPadHigh1_16,
381    RightPadHigh1_32,
382    RightPadHigh1_64,
383    RightPadHigh1_8,
384    RightPadHigh32_64,
385    RightPadHigh8_16,
386    RightPadHigh8_32,
387    RightPadHigh8_64,
388    RightPadLow16_32,
389    RightPadLow16_64,
390    RightPadLow1_16,
391    RightPadLow1_32,
392    RightPadLow1_64,
393    RightPadLow1_8,
394    RightPadLow32_64,
395    RightPadLow8_16,
396    RightPadLow8_32,
397    RightPadLow8_64,
398    RightRotate16,
399    RightRotate32,
400    RightRotate64,
401    RightRotate8,
402    RightShift16,
403    RightShift32,
404    RightShift64,
405    RightShift8,
406    RightShiftWith16,
407    RightShiftWith32,
408    RightShiftWith64,
409    RightShiftWith8,
410    Rightmost16_1,
411    Rightmost16_2,
412    Rightmost16_4,
413    Rightmost16_8,
414    Rightmost32_1,
415    Rightmost32_16,
416    Rightmost32_2,
417    Rightmost32_4,
418    Rightmost32_8,
419    Rightmost64_1,
420    Rightmost64_16,
421    Rightmost64_2,
422    Rightmost64_32,
423    Rightmost64_4,
424    Rightmost64_8,
425    Rightmost8_1,
426    Rightmost8_2,
427    Rightmost8_4,
428    ScalarAdd,
429    ScalarInvert,
430    ScalarIsZero,
431    ScalarMultiply,
432    ScalarMultiplyLambda,
433    ScalarNegate,
434    ScalarNormalize,
435    ScalarSquare,
436    Scale,
437    ScriptCMR,
438    Sha256Block,
439    Sha256Ctx8Add1,
440    Sha256Ctx8Add128,
441    Sha256Ctx8Add16,
442    Sha256Ctx8Add2,
443    Sha256Ctx8Add256,
444    Sha256Ctx8Add32,
445    Sha256Ctx8Add4,
446    Sha256Ctx8Add512,
447    Sha256Ctx8Add64,
448    Sha256Ctx8Add8,
449    Sha256Ctx8AddBuffer511,
450    Sha256Ctx8Finalize,
451    Sha256Ctx8Init,
452    Sha256Iv,
453    SigAllHash,
454    Some1,
455    Some16,
456    Some32,
457    Some64,
458    Some8,
459    Subtract16,
460    Subtract32,
461    Subtract64,
462    Subtract8,
463    Swu,
464    TapEnvHash,
465    TapdataInit,
466    TapleafHash,
467    TapleafVersion,
468    Tappath,
469    TappathHash,
470    TotalFee,
471    TransactionId,
472    TxHash,
473    TxIsFinal,
474    TxLockDistance,
475    TxLockDuration,
476    TxLockHeight,
477    TxLockTime,
478    Verify,
479    Version,
480    Xor1,
481    Xor16,
482    Xor32,
483    Xor64,
484    Xor8,
485    XorXor1,
486    XorXor16,
487    XorXor32,
488    XorXor64,
489    XorXor8,
490}
491
492impl Elements {
493    /// Array of all Elements jets.
494    pub const ALL: [Self; 471] = [
495        Self::Add16,
496        Self::Add32,
497        Self::Add64,
498        Self::Add8,
499        Self::All16,
500        Self::All32,
501        Self::All64,
502        Self::All8,
503        Self::And1,
504        Self::And16,
505        Self::And32,
506        Self::And64,
507        Self::And8,
508        Self::AnnexHash,
509        Self::AssetAmountHash,
510        Self::Bip0340Verify,
511        Self::BuildTapbranch,
512        Self::BuildTapleafSimplicity,
513        Self::BuildTaptweak,
514        Self::CalculateAsset,
515        Self::CalculateConfidentialToken,
516        Self::CalculateExplicitToken,
517        Self::CalculateIssuanceEntropy,
518        Self::Ch1,
519        Self::Ch16,
520        Self::Ch32,
521        Self::Ch64,
522        Self::Ch8,
523        Self::CheckLockDistance,
524        Self::CheckLockDuration,
525        Self::CheckLockHeight,
526        Self::CheckLockTime,
527        Self::CheckSigVerify,
528        Self::Complement1,
529        Self::Complement16,
530        Self::Complement32,
531        Self::Complement64,
532        Self::Complement8,
533        Self::CurrentAmount,
534        Self::CurrentAnnexHash,
535        Self::CurrentAsset,
536        Self::CurrentIndex,
537        Self::CurrentIssuanceAssetAmount,
538        Self::CurrentIssuanceAssetProof,
539        Self::CurrentIssuanceTokenAmount,
540        Self::CurrentIssuanceTokenProof,
541        Self::CurrentNewIssuanceContract,
542        Self::CurrentPegin,
543        Self::CurrentPrevOutpoint,
544        Self::CurrentReissuanceBlinding,
545        Self::CurrentReissuanceEntropy,
546        Self::CurrentScriptHash,
547        Self::CurrentScriptSigHash,
548        Self::CurrentSequence,
549        Self::Decompress,
550        Self::Decrement16,
551        Self::Decrement32,
552        Self::Decrement64,
553        Self::Decrement8,
554        Self::DivMod128_64,
555        Self::DivMod16,
556        Self::DivMod32,
557        Self::DivMod64,
558        Self::DivMod8,
559        Self::Divide16,
560        Self::Divide32,
561        Self::Divide64,
562        Self::Divide8,
563        Self::Divides16,
564        Self::Divides32,
565        Self::Divides64,
566        Self::Divides8,
567        Self::Eq1,
568        Self::Eq16,
569        Self::Eq256,
570        Self::Eq32,
571        Self::Eq64,
572        Self::Eq8,
573        Self::FeAdd,
574        Self::FeInvert,
575        Self::FeIsOdd,
576        Self::FeIsZero,
577        Self::FeMultiply,
578        Self::FeMultiplyBeta,
579        Self::FeNegate,
580        Self::FeNormalize,
581        Self::FeSquare,
582        Self::FeSquareRoot,
583        Self::FullAdd16,
584        Self::FullAdd32,
585        Self::FullAdd64,
586        Self::FullAdd8,
587        Self::FullDecrement16,
588        Self::FullDecrement32,
589        Self::FullDecrement64,
590        Self::FullDecrement8,
591        Self::FullIncrement16,
592        Self::FullIncrement32,
593        Self::FullIncrement64,
594        Self::FullIncrement8,
595        Self::FullLeftShift16_1,
596        Self::FullLeftShift16_2,
597        Self::FullLeftShift16_4,
598        Self::FullLeftShift16_8,
599        Self::FullLeftShift32_1,
600        Self::FullLeftShift32_16,
601        Self::FullLeftShift32_2,
602        Self::FullLeftShift32_4,
603        Self::FullLeftShift32_8,
604        Self::FullLeftShift64_1,
605        Self::FullLeftShift64_16,
606        Self::FullLeftShift64_2,
607        Self::FullLeftShift64_32,
608        Self::FullLeftShift64_4,
609        Self::FullLeftShift64_8,
610        Self::FullLeftShift8_1,
611        Self::FullLeftShift8_2,
612        Self::FullLeftShift8_4,
613        Self::FullMultiply16,
614        Self::FullMultiply32,
615        Self::FullMultiply64,
616        Self::FullMultiply8,
617        Self::FullRightShift16_1,
618        Self::FullRightShift16_2,
619        Self::FullRightShift16_4,
620        Self::FullRightShift16_8,
621        Self::FullRightShift32_1,
622        Self::FullRightShift32_16,
623        Self::FullRightShift32_2,
624        Self::FullRightShift32_4,
625        Self::FullRightShift32_8,
626        Self::FullRightShift64_1,
627        Self::FullRightShift64_16,
628        Self::FullRightShift64_2,
629        Self::FullRightShift64_32,
630        Self::FullRightShift64_4,
631        Self::FullRightShift64_8,
632        Self::FullRightShift8_1,
633        Self::FullRightShift8_2,
634        Self::FullRightShift8_4,
635        Self::FullSubtract16,
636        Self::FullSubtract32,
637        Self::FullSubtract64,
638        Self::FullSubtract8,
639        Self::GeIsOnCurve,
640        Self::GeNegate,
641        Self::GejAdd,
642        Self::GejDouble,
643        Self::GejEquiv,
644        Self::GejGeAdd,
645        Self::GejGeAddEx,
646        Self::GejGeEquiv,
647        Self::GejInfinity,
648        Self::GejIsInfinity,
649        Self::GejIsOnCurve,
650        Self::GejNegate,
651        Self::GejNormalize,
652        Self::GejRescale,
653        Self::GejXEquiv,
654        Self::GejYIsOdd,
655        Self::Generate,
656        Self::GenesisBlockHash,
657        Self::HashToCurve,
658        Self::High1,
659        Self::High16,
660        Self::High32,
661        Self::High64,
662        Self::High8,
663        Self::Increment16,
664        Self::Increment32,
665        Self::Increment64,
666        Self::Increment8,
667        Self::InputAmount,
668        Self::InputAmountsHash,
669        Self::InputAnnexHash,
670        Self::InputAnnexesHash,
671        Self::InputAsset,
672        Self::InputHash,
673        Self::InputOutpointsHash,
674        Self::InputPegin,
675        Self::InputPrevOutpoint,
676        Self::InputScriptHash,
677        Self::InputScriptSigHash,
678        Self::InputScriptSigsHash,
679        Self::InputScriptsHash,
680        Self::InputSequence,
681        Self::InputSequencesHash,
682        Self::InputUtxoHash,
683        Self::InputUtxosHash,
684        Self::InputsHash,
685        Self::InternalKey,
686        Self::IsOne16,
687        Self::IsOne32,
688        Self::IsOne64,
689        Self::IsOne8,
690        Self::IsZero16,
691        Self::IsZero32,
692        Self::IsZero64,
693        Self::IsZero8,
694        Self::Issuance,
695        Self::IssuanceAsset,
696        Self::IssuanceAssetAmount,
697        Self::IssuanceAssetAmountsHash,
698        Self::IssuanceAssetProof,
699        Self::IssuanceBlindingEntropyHash,
700        Self::IssuanceEntropy,
701        Self::IssuanceHash,
702        Self::IssuanceRangeProofsHash,
703        Self::IssuanceToken,
704        Self::IssuanceTokenAmount,
705        Self::IssuanceTokenAmountsHash,
706        Self::IssuanceTokenProof,
707        Self::IssuancesHash,
708        Self::LbtcAsset,
709        Self::Le16,
710        Self::Le32,
711        Self::Le64,
712        Self::Le8,
713        Self::LeftExtend16_32,
714        Self::LeftExtend16_64,
715        Self::LeftExtend1_16,
716        Self::LeftExtend1_32,
717        Self::LeftExtend1_64,
718        Self::LeftExtend1_8,
719        Self::LeftExtend32_64,
720        Self::LeftExtend8_16,
721        Self::LeftExtend8_32,
722        Self::LeftExtend8_64,
723        Self::LeftPadHigh16_32,
724        Self::LeftPadHigh16_64,
725        Self::LeftPadHigh1_16,
726        Self::LeftPadHigh1_32,
727        Self::LeftPadHigh1_64,
728        Self::LeftPadHigh1_8,
729        Self::LeftPadHigh32_64,
730        Self::LeftPadHigh8_16,
731        Self::LeftPadHigh8_32,
732        Self::LeftPadHigh8_64,
733        Self::LeftPadLow16_32,
734        Self::LeftPadLow16_64,
735        Self::LeftPadLow1_16,
736        Self::LeftPadLow1_32,
737        Self::LeftPadLow1_64,
738        Self::LeftPadLow1_8,
739        Self::LeftPadLow32_64,
740        Self::LeftPadLow8_16,
741        Self::LeftPadLow8_32,
742        Self::LeftPadLow8_64,
743        Self::LeftRotate16,
744        Self::LeftRotate32,
745        Self::LeftRotate64,
746        Self::LeftRotate8,
747        Self::LeftShift16,
748        Self::LeftShift32,
749        Self::LeftShift64,
750        Self::LeftShift8,
751        Self::LeftShiftWith16,
752        Self::LeftShiftWith32,
753        Self::LeftShiftWith64,
754        Self::LeftShiftWith8,
755        Self::Leftmost16_1,
756        Self::Leftmost16_2,
757        Self::Leftmost16_4,
758        Self::Leftmost16_8,
759        Self::Leftmost32_1,
760        Self::Leftmost32_16,
761        Self::Leftmost32_2,
762        Self::Leftmost32_4,
763        Self::Leftmost32_8,
764        Self::Leftmost64_1,
765        Self::Leftmost64_16,
766        Self::Leftmost64_2,
767        Self::Leftmost64_32,
768        Self::Leftmost64_4,
769        Self::Leftmost64_8,
770        Self::Leftmost8_1,
771        Self::Leftmost8_2,
772        Self::Leftmost8_4,
773        Self::LinearCombination1,
774        Self::LinearVerify1,
775        Self::LockTime,
776        Self::Low1,
777        Self::Low16,
778        Self::Low32,
779        Self::Low64,
780        Self::Low8,
781        Self::Lt16,
782        Self::Lt32,
783        Self::Lt64,
784        Self::Lt8,
785        Self::Maj1,
786        Self::Maj16,
787        Self::Maj32,
788        Self::Maj64,
789        Self::Maj8,
790        Self::Max16,
791        Self::Max32,
792        Self::Max64,
793        Self::Max8,
794        Self::Median16,
795        Self::Median32,
796        Self::Median64,
797        Self::Median8,
798        Self::Min16,
799        Self::Min32,
800        Self::Min64,
801        Self::Min8,
802        Self::Modulo16,
803        Self::Modulo32,
804        Self::Modulo64,
805        Self::Modulo8,
806        Self::Multiply16,
807        Self::Multiply32,
808        Self::Multiply64,
809        Self::Multiply8,
810        Self::Negate16,
811        Self::Negate32,
812        Self::Negate64,
813        Self::Negate8,
814        Self::NewIssuanceContract,
815        Self::NonceHash,
816        Self::NumInputs,
817        Self::NumOutputs,
818        Self::One16,
819        Self::One32,
820        Self::One64,
821        Self::One8,
822        Self::Or1,
823        Self::Or16,
824        Self::Or32,
825        Self::Or64,
826        Self::Or8,
827        Self::OutpointHash,
828        Self::OutputAmount,
829        Self::OutputAmountsHash,
830        Self::OutputAsset,
831        Self::OutputHash,
832        Self::OutputIsFee,
833        Self::OutputNonce,
834        Self::OutputNoncesHash,
835        Self::OutputNullDatum,
836        Self::OutputRangeProof,
837        Self::OutputRangeProofsHash,
838        Self::OutputScriptHash,
839        Self::OutputScriptsHash,
840        Self::OutputSurjectionProof,
841        Self::OutputSurjectionProofsHash,
842        Self::OutputsHash,
843        Self::ParseLock,
844        Self::ParseSequence,
845        Self::PointVerify1,
846        Self::ReissuanceBlinding,
847        Self::ReissuanceEntropy,
848        Self::RightExtend16_32,
849        Self::RightExtend16_64,
850        Self::RightExtend32_64,
851        Self::RightExtend8_16,
852        Self::RightExtend8_32,
853        Self::RightExtend8_64,
854        Self::RightPadHigh16_32,
855        Self::RightPadHigh16_64,
856        Self::RightPadHigh1_16,
857        Self::RightPadHigh1_32,
858        Self::RightPadHigh1_64,
859        Self::RightPadHigh1_8,
860        Self::RightPadHigh32_64,
861        Self::RightPadHigh8_16,
862        Self::RightPadHigh8_32,
863        Self::RightPadHigh8_64,
864        Self::RightPadLow16_32,
865        Self::RightPadLow16_64,
866        Self::RightPadLow1_16,
867        Self::RightPadLow1_32,
868        Self::RightPadLow1_64,
869        Self::RightPadLow1_8,
870        Self::RightPadLow32_64,
871        Self::RightPadLow8_16,
872        Self::RightPadLow8_32,
873        Self::RightPadLow8_64,
874        Self::RightRotate16,
875        Self::RightRotate32,
876        Self::RightRotate64,
877        Self::RightRotate8,
878        Self::RightShift16,
879        Self::RightShift32,
880        Self::RightShift64,
881        Self::RightShift8,
882        Self::RightShiftWith16,
883        Self::RightShiftWith32,
884        Self::RightShiftWith64,
885        Self::RightShiftWith8,
886        Self::Rightmost16_1,
887        Self::Rightmost16_2,
888        Self::Rightmost16_4,
889        Self::Rightmost16_8,
890        Self::Rightmost32_1,
891        Self::Rightmost32_16,
892        Self::Rightmost32_2,
893        Self::Rightmost32_4,
894        Self::Rightmost32_8,
895        Self::Rightmost64_1,
896        Self::Rightmost64_16,
897        Self::Rightmost64_2,
898        Self::Rightmost64_32,
899        Self::Rightmost64_4,
900        Self::Rightmost64_8,
901        Self::Rightmost8_1,
902        Self::Rightmost8_2,
903        Self::Rightmost8_4,
904        Self::ScalarAdd,
905        Self::ScalarInvert,
906        Self::ScalarIsZero,
907        Self::ScalarMultiply,
908        Self::ScalarMultiplyLambda,
909        Self::ScalarNegate,
910        Self::ScalarNormalize,
911        Self::ScalarSquare,
912        Self::Scale,
913        Self::ScriptCMR,
914        Self::Sha256Block,
915        Self::Sha256Ctx8Add1,
916        Self::Sha256Ctx8Add128,
917        Self::Sha256Ctx8Add16,
918        Self::Sha256Ctx8Add2,
919        Self::Sha256Ctx8Add256,
920        Self::Sha256Ctx8Add32,
921        Self::Sha256Ctx8Add4,
922        Self::Sha256Ctx8Add512,
923        Self::Sha256Ctx8Add64,
924        Self::Sha256Ctx8Add8,
925        Self::Sha256Ctx8AddBuffer511,
926        Self::Sha256Ctx8Finalize,
927        Self::Sha256Ctx8Init,
928        Self::Sha256Iv,
929        Self::SigAllHash,
930        Self::Some1,
931        Self::Some16,
932        Self::Some32,
933        Self::Some64,
934        Self::Some8,
935        Self::Subtract16,
936        Self::Subtract32,
937        Self::Subtract64,
938        Self::Subtract8,
939        Self::Swu,
940        Self::TapEnvHash,
941        Self::TapdataInit,
942        Self::TapleafHash,
943        Self::TapleafVersion,
944        Self::Tappath,
945        Self::TappathHash,
946        Self::TotalFee,
947        Self::TransactionId,
948        Self::TxHash,
949        Self::TxIsFinal,
950        Self::TxLockDistance,
951        Self::TxLockDuration,
952        Self::TxLockHeight,
953        Self::TxLockTime,
954        Self::Verify,
955        Self::Version,
956        Self::Xor1,
957        Self::Xor16,
958        Self::Xor32,
959        Self::Xor64,
960        Self::Xor8,
961        Self::XorXor1,
962        Self::XorXor16,
963        Self::XorXor32,
964        Self::XorXor64,
965        Self::XorXor8,
966    ];
967}
968
969impl Jet for Elements {
970
971    type Environment = ElementsEnv<std::sync::Arc<elements::Transaction>>;
972    type CJetEnvironment = CElementsTxEnv;
973
974    fn c_jet_env(env: &Self::Environment) -> &Self::CJetEnvironment {
975        env.c_tx_env()
976    }
977
978    fn cmr(&self) -> Cmr {
979        let bytes = match self {
980            Elements::Add16 => [
981                0x26, 0xae, 0x09, 0x94, 0xce, 0x8b, 0x77, 0x1a, 0xf7, 0xad, 0x28, 0x51, 0xb8, 0x3b,
982                0x49, 0xa5, 0x95, 0x05, 0x36, 0x58, 0x9f, 0x67, 0xbd, 0x85, 0x59, 0x47, 0x04, 0x60,
983                0x29, 0x75, 0x1c, 0x0d,
984            ],
985            Elements::Add32 => [
986                0x3d, 0x76, 0x74, 0x46, 0x6e, 0xd6, 0x9e, 0x1d, 0xbe, 0xdc, 0xd4, 0x80, 0x57, 0xa9,
987                0xe6, 0x28, 0x8c, 0x22, 0x25, 0x32, 0xfb, 0xc5, 0x04, 0x80, 0x49, 0x92, 0x8c, 0xfb,
988                0x77, 0xf8, 0x29, 0xd9,
989            ],
990            Elements::Add64 => [
991                0x9b, 0x56, 0xe6, 0x1e, 0xef, 0xe2, 0x80, 0x5c, 0xa8, 0x73, 0x96, 0xbd, 0xfb, 0x03,
992                0xf5, 0xe1, 0xb1, 0x38, 0x5f, 0x7a, 0xc4, 0xbf, 0xf7, 0x68, 0x40, 0x26, 0xa0, 0x7c,
993                0xf9, 0x7f, 0xb6, 0xf6,
994            ],
995            Elements::Add8 => [
996                0xd7, 0x32, 0x8c, 0x09, 0x14, 0xee, 0x99, 0x9e, 0xfa, 0x0a, 0x6c, 0xb2, 0x6e, 0xb4,
997                0x09, 0x12, 0xc2, 0x15, 0xc0, 0x62, 0xe5, 0x8a, 0x98, 0x1a, 0xe6, 0xb2, 0xe4, 0xa8,
998                0x04, 0x74, 0xa1, 0xda,
999            ],
1000            Elements::All16 => [
1001                0x16, 0xf0, 0xc9, 0x30, 0x7e, 0xb8, 0xf4, 0xc1, 0xfd, 0xd1, 0xba, 0xfa, 0xef, 0x28,
1002                0x79, 0x24, 0x29, 0x58, 0x49, 0x8e, 0x8f, 0x5b, 0x2e, 0x0d, 0x29, 0xf0, 0x65, 0x53,
1003                0xdc, 0x06, 0xa0, 0xbd,
1004            ],
1005            Elements::All32 => [
1006                0x0e, 0xb8, 0xb4, 0x0d, 0x29, 0x02, 0x17, 0x47, 0xee, 0xc4, 0x51, 0xd4, 0xe6, 0x63,
1007                0x58, 0x6a, 0x43, 0x6c, 0x2d, 0xb0, 0x93, 0x26, 0x75, 0xda, 0xf2, 0x16, 0x61, 0x23,
1008                0xbf, 0xe4, 0x52, 0xa6,
1009            ],
1010            Elements::All64 => [
1011                0xa6, 0x5c, 0x82, 0xd5, 0x3d, 0x38, 0x2e, 0xe2, 0x9a, 0xa8, 0x8b, 0x77, 0x18, 0xa9,
1012                0x7f, 0xbb, 0xce, 0x64, 0x75, 0xec, 0x32, 0xc4, 0xb4, 0xcd, 0x69, 0x08, 0xfd, 0xe4,
1013                0x5d, 0x81, 0xb6, 0x24,
1014            ],
1015            Elements::All8 => [
1016                0x1d, 0x3e, 0xc7, 0xfb, 0x6a, 0x07, 0x84, 0x7c, 0x92, 0xb8, 0xa9, 0x98, 0xe1, 0xf6,
1017                0xb4, 0x78, 0x31, 0x9d, 0x05, 0x0a, 0x38, 0x76, 0x42, 0xf4, 0x03, 0x2d, 0x2f, 0x7d,
1018                0x2e, 0x02, 0x7f, 0xcd,
1019            ],
1020            Elements::And1 => [
1021                0xb7, 0x73, 0xce, 0xfa, 0x41, 0x89, 0x57, 0xfe, 0xa7, 0xdf, 0xb4, 0x9c, 0x6c, 0x43,
1022                0xb3, 0xdb, 0xfa, 0x35, 0xfa, 0x3d, 0x80, 0xde, 0x8c, 0xfd, 0x4d, 0x70, 0xc0, 0x8d,
1023                0x94, 0x5f, 0x5f, 0xba,
1024            ],
1025            Elements::And16 => [
1026                0x57, 0xdd, 0x73, 0x0b, 0x1c, 0x8d, 0xdf, 0xf1, 0x3c, 0xae, 0x27, 0x69, 0x56, 0x2b,
1027                0xe0, 0xab, 0xc6, 0xca, 0x3b, 0xc8, 0x02, 0xda, 0x0a, 0xbb, 0xb7, 0xfc, 0x13, 0x8c,
1028                0xa4, 0x63, 0xda, 0x59,
1029            ],
1030            Elements::And32 => [
1031                0x75, 0x3e, 0x33, 0x2d, 0xdf, 0xa0, 0x96, 0xf0, 0x83, 0x99, 0xff, 0xaa, 0x7e, 0xc4,
1032                0xda, 0x40, 0x35, 0xbc, 0xba, 0xa1, 0x42, 0xe6, 0xe3, 0x8d, 0x4c, 0xb6, 0x07, 0xce,
1033                0x1f, 0x0b, 0x05, 0x1d,
1034            ],
1035            Elements::And64 => [
1036                0xf1, 0xad, 0x5e, 0x6c, 0x63, 0xee, 0x5c, 0x89, 0x0b, 0x0f, 0x2e, 0x71, 0x15, 0x61,
1037                0xb9, 0x05, 0x31, 0x64, 0x87, 0xac, 0x40, 0x44, 0xdd, 0x23, 0x0c, 0xf6, 0xa7, 0x36,
1038                0xf8, 0x1b, 0xd4, 0xf3,
1039            ],
1040            Elements::And8 => [
1041                0xac, 0x82, 0x8b, 0x72, 0x4c, 0x5f, 0x53, 0x40, 0xb5, 0x1e, 0x76, 0xe7, 0xb6, 0xe8,
1042                0xb2, 0x3a, 0xea, 0xb7, 0x53, 0x3f, 0xd8, 0xc0, 0x91, 0xae, 0x2a, 0x51, 0x55, 0x30,
1043                0xae, 0x7a, 0xb2, 0x00,
1044            ],
1045            Elements::AnnexHash => [
1046                0xeb, 0xa1, 0xb7, 0xfb, 0x2e, 0xa8, 0xd5, 0x7a, 0xf3, 0xb6, 0x27, 0x3e, 0x51, 0x82,
1047                0xfb, 0x99, 0xdb, 0x17, 0x08, 0xb2, 0xd0, 0xaf, 0xb9, 0xc6, 0xad, 0x03, 0x58, 0xcc,
1048                0x3f, 0x64, 0x7d, 0xc8,
1049            ],
1050            Elements::AssetAmountHash => [
1051                0xa8, 0x64, 0xd1, 0xf1, 0xf8, 0x39, 0x50, 0xb6, 0x31, 0x96, 0xfe, 0x88, 0xba, 0xec,
1052                0x2e, 0x42, 0x28, 0x95, 0x32, 0x30, 0xbe, 0x45, 0xc8, 0x8c, 0x4e, 0x0b, 0x99, 0x17,
1053                0x8b, 0x33, 0x8f, 0x07,
1054            ],
1055            Elements::Bip0340Verify => [
1056                0xc9, 0xc4, 0x5a, 0x8a, 0xec, 0x86, 0x59, 0x14, 0x3b, 0xfe, 0x2a, 0xf6, 0xea, 0xd4,
1057                0x8d, 0x4e, 0x05, 0x42, 0x45, 0x3a, 0xca, 0xe8, 0x4b, 0x9b, 0xbb, 0x97, 0x65, 0x6b,
1058                0x67, 0x0b, 0xdf, 0xdd,
1059            ],
1060            Elements::BuildTapbranch => [
1061                0xcb, 0xec, 0xf9, 0xbc, 0xe1, 0x72, 0xc5, 0x0f, 0x58, 0x59, 0x51, 0xdf, 0xf0, 0xe0,
1062                0x52, 0x3d, 0xb1, 0x09, 0xe5, 0x70, 0x25, 0xec, 0x37, 0xde, 0x2c, 0x3a, 0x74, 0xd4,
1063                0xa6, 0x73, 0xf2, 0x25,
1064            ],
1065            Elements::BuildTapleafSimplicity => [
1066                0x73, 0x6e, 0x9f, 0xce, 0xfb, 0x5b, 0x87, 0x3e, 0x09, 0xf2, 0x68, 0x1e, 0x74, 0xe4,
1067                0x9f, 0x5a, 0x10, 0x56, 0xf9, 0x0a, 0xf5, 0x2a, 0xb3, 0xec, 0x5b, 0x19, 0x77, 0x27,
1068                0xd3, 0x98, 0x34, 0xbe,
1069            ],
1070            Elements::BuildTaptweak => [
1071                0x38, 0x74, 0x1f, 0x80, 0xa2, 0xbf, 0x10, 0xf8, 0xf8, 0x72, 0x30, 0x77, 0xc6, 0x74,
1072                0x1c, 0xbe, 0xae, 0x2d, 0xca, 0xc8, 0x57, 0x90, 0x1b, 0x81, 0x37, 0x25, 0x80, 0x6f,
1073                0x21, 0x89, 0x8e, 0xe3,
1074            ],
1075            Elements::CalculateAsset => [
1076                0x67, 0x6f, 0x98, 0x8e, 0x54, 0x72, 0x51, 0xe7, 0xa0, 0x9e, 0xed, 0xe1, 0x92, 0x0a,
1077                0x9c, 0x5d, 0x35, 0xe7, 0x57, 0x59, 0xe6, 0xd8, 0xd4, 0x9b, 0x58, 0x0c, 0xeb, 0x3e,
1078                0x14, 0x6b, 0xcf, 0x7e,
1079            ],
1080            Elements::CalculateConfidentialToken => [
1081                0x8e, 0x40, 0x29, 0x05, 0x60, 0x74, 0x33, 0x98, 0x40, 0xc0, 0xe7, 0x00, 0x9b, 0x66,
1082                0xf3, 0x82, 0xbb, 0x98, 0xd7, 0xdd, 0xe7, 0x19, 0xdd, 0x2c, 0x9f, 0x2f, 0xd3, 0xac,
1083                0xd9, 0x32, 0x5a, 0xc6,
1084            ],
1085            Elements::CalculateExplicitToken => [
1086                0x87, 0x52, 0x28, 0x02, 0x0b, 0x45, 0x6c, 0x99, 0x8a, 0xad, 0x3a, 0xc5, 0xc4, 0x83,
1087                0x6f, 0x71, 0x94, 0x45, 0xdc, 0xbe, 0x6b, 0xd2, 0x74, 0xe8, 0xca, 0x14, 0x5d, 0x82,
1088                0x79, 0x7e, 0x1b, 0x92,
1089            ],
1090            Elements::CalculateIssuanceEntropy => [
1091                0xa6, 0xe7, 0xc4, 0x34, 0xae, 0xe5, 0xa7, 0x33, 0x0c, 0x1f, 0xc2, 0x46, 0xf7, 0x1d,
1092                0xcf, 0x05, 0x1c, 0xe5, 0x4b, 0xde, 0xe7, 0xb8, 0xe6, 0x39, 0x57, 0xbe, 0x18, 0xc2,
1093                0xd7, 0x51, 0xc6, 0x53,
1094            ],
1095            Elements::Ch1 => [
1096                0xb8, 0x41, 0xb8, 0x57, 0xa4, 0xaa, 0x50, 0xea, 0xca, 0x27, 0xa2, 0x6f, 0x74, 0x42,
1097                0xfc, 0xbf, 0xe9, 0x54, 0x67, 0x7a, 0xe6, 0xd4, 0x55, 0xf6, 0x05, 0x65, 0x49, 0x89,
1098                0xe3, 0x5a, 0xeb, 0x13,
1099            ],
1100            Elements::Ch16 => [
1101                0x9c, 0xff, 0x11, 0xa0, 0x9b, 0x60, 0x41, 0xe5, 0xf2, 0x63, 0x9a, 0xe4, 0xc0, 0x65,
1102                0xa1, 0x8f, 0xc6, 0x75, 0xdb, 0x2f, 0xbd, 0x98, 0x54, 0x08, 0xe2, 0x8f, 0x02, 0x7a,
1103                0x99, 0x11, 0x0e, 0x11,
1104            ],
1105            Elements::Ch32 => [
1106                0x07, 0x1c, 0xef, 0x80, 0x39, 0xc7, 0x9f, 0x71, 0x31, 0xcd, 0x6a, 0x5f, 0xe4, 0x93,
1107                0xdc, 0x26, 0x8f, 0x9d, 0xb5, 0x8f, 0x7b, 0x20, 0xa8, 0x55, 0x55, 0xe2, 0x97, 0xbd,
1108                0xd2, 0x16, 0xcf, 0x40,
1109            ],
1110            Elements::Ch64 => [
1111                0xd5, 0x55, 0xd2, 0x19, 0x63, 0xb0, 0x19, 0x2f, 0xc9, 0x72, 0x14, 0xb6, 0x3d, 0xc1,
1112                0xc3, 0xaf, 0x75, 0x8b, 0x29, 0x11, 0x58, 0xf0, 0xe1, 0xa3, 0xbc, 0xfd, 0xea, 0x67,
1113                0x9c, 0x66, 0x6d, 0xa6,
1114            ],
1115            Elements::Ch8 => [
1116                0x35, 0x3f, 0x63, 0xb0, 0xf8, 0xcb, 0x54, 0xf5, 0xae, 0x65, 0x75, 0xaf, 0x8c, 0xa2,
1117                0x24, 0x2c, 0xee, 0xe9, 0xf2, 0x7a, 0x84, 0x18, 0x6e, 0xb8, 0x0e, 0x62, 0x0d, 0x5e,
1118                0x2e, 0x85, 0x48, 0xec,
1119            ],
1120            Elements::CheckLockDistance => [
1121                0x7f, 0x78, 0xc7, 0xa7, 0x7a, 0x25, 0xad, 0xa2, 0x23, 0x26, 0x7d, 0x23, 0x9a, 0x59,
1122                0x22, 0xf7, 0x64, 0xb8, 0xac, 0x0c, 0x2f, 0xce, 0xf6, 0x8e, 0xb9, 0x3c, 0x0d, 0x92,
1123                0xda, 0x4a, 0xf5, 0x15,
1124            ],
1125            Elements::CheckLockDuration => [
1126                0x73, 0xda, 0xc8, 0xe2, 0x5d, 0x87, 0xea, 0xf3, 0x82, 0xc2, 0xa7, 0x72, 0x06, 0xad,
1127                0x38, 0xb9, 0x38, 0x43, 0x61, 0xe7, 0xd0, 0xdc, 0x87, 0xc0, 0xfa, 0x7a, 0xf7, 0xea,
1128                0x52, 0x45, 0x97, 0xb7,
1129            ],
1130            Elements::CheckLockHeight => [
1131                0x9e, 0x78, 0x98, 0xd0, 0x37, 0x62, 0x71, 0x34, 0xd2, 0xbd, 0x70, 0xc7, 0xfc, 0xa9,
1132                0xcb, 0xa4, 0x5e, 0xaf, 0x26, 0x7d, 0x4d, 0x09, 0xad, 0x50, 0xa9, 0xef, 0x71, 0x7a,
1133                0x8f, 0x27, 0x49, 0xdb,
1134            ],
1135            Elements::CheckLockTime => [
1136                0x68, 0x67, 0x3d, 0x12, 0xe2, 0x73, 0x2f, 0xaa, 0x1d, 0x39, 0xe2, 0x13, 0x6b, 0x14,
1137                0x06, 0xaf, 0xa0, 0x98, 0xa8, 0x4c, 0x96, 0xe8, 0xd6, 0x05, 0x02, 0xa2, 0xdd, 0x61,
1138                0xc5, 0x95, 0x70, 0xbb,
1139            ],
1140            Elements::CheckSigVerify => [
1141                0xb5, 0x80, 0x15, 0x54, 0x6d, 0x28, 0x52, 0x66, 0x5d, 0xd2, 0x1b, 0xf1, 0x12, 0x66,
1142                0x26, 0x70, 0x20, 0xfa, 0x5e, 0x27, 0x50, 0x01, 0xdd, 0x46, 0x18, 0xfa, 0x41, 0x56,
1143                0x25, 0x95, 0x2e, 0x68,
1144            ],
1145            Elements::Complement1 => [
1146                0xed, 0x74, 0xee, 0xb8, 0x3a, 0x00, 0xc7, 0x13, 0xcc, 0x14, 0xf3, 0x3e, 0xfe, 0x55,
1147                0x33, 0x83, 0xcd, 0x04, 0x11, 0xcc, 0x30, 0x20, 0xfd, 0x89, 0x27, 0x93, 0x16, 0x67,
1148                0x5d, 0x91, 0x0e, 0x66,
1149            ],
1150            Elements::Complement16 => [
1151                0x61, 0xfd, 0xd9, 0x04, 0xa4, 0xae, 0xb7, 0xeb, 0x76, 0x84, 0xaf, 0x61, 0x8e, 0x25,
1152                0xaa, 0xe9, 0x07, 0xcd, 0x1d, 0xb0, 0xf6, 0x2d, 0x97, 0x03, 0xc5, 0xb8, 0x54, 0xe1,
1153                0x66, 0x3c, 0xac, 0x9f,
1154            ],
1155            Elements::Complement32 => [
1156                0xfe, 0xb0, 0x2c, 0xc3, 0x6e, 0x19, 0x5b, 0x46, 0x2a, 0xe5, 0x04, 0xa9, 0x12, 0xda,
1157                0xdf, 0xe6, 0x6a, 0xd4, 0x7f, 0x23, 0xa0, 0xcb, 0x3b, 0xae, 0xa2, 0x1d, 0x31, 0xaa,
1158                0xa0, 0xce, 0x10, 0x1d,
1159            ],
1160            Elements::Complement64 => [
1161                0x45, 0x07, 0x2d, 0x5a, 0xa0, 0xe5, 0xc3, 0x7c, 0x9e, 0x52, 0x1d, 0xcc, 0x92, 0xe8,
1162                0xf3, 0x9a, 0x5f, 0x75, 0xe7, 0xd9, 0x28, 0x67, 0x0a, 0xca, 0xb7, 0x9c, 0xd8, 0xc8,
1163                0xb5, 0xb5, 0x9e, 0x1a,
1164            ],
1165            Elements::Complement8 => [
1166                0x69, 0x16, 0xb2, 0x8f, 0xb5, 0x74, 0xd9, 0xc9, 0x08, 0xa3, 0xf3, 0x3f, 0x74, 0xbf,
1167                0x06, 0xf7, 0xed, 0x93, 0x72, 0x54, 0x24, 0x7f, 0x9e, 0xfc, 0x26, 0x03, 0xd7, 0x17,
1168                0x1d, 0xd4, 0x97, 0xbe,
1169            ],
1170            Elements::CurrentAmount => [
1171                0x9e, 0x7b, 0xc9, 0x6d, 0x06, 0xc1, 0xf4, 0xa4, 0xd2, 0xbd, 0x43, 0x33, 0xd5, 0x56,
1172                0x43, 0xcb, 0xa6, 0x86, 0x3d, 0x3a, 0x33, 0x8e, 0x31, 0xdc, 0x0d, 0x17, 0x95, 0x58,
1173                0x41, 0x56, 0xea, 0x69,
1174            ],
1175            Elements::CurrentAnnexHash => [
1176                0x5f, 0x68, 0xbd, 0xaf, 0xd4, 0x17, 0xfe, 0xbb, 0x10, 0xde, 0xe1, 0x6b, 0x1d, 0x47,
1177                0xc2, 0x1f, 0xa9, 0x7e, 0xfc, 0x91, 0x91, 0x57, 0xc7, 0xf7, 0xbc, 0x54, 0xa6, 0x1d,
1178                0xc4, 0xf9, 0xf7, 0xd6,
1179            ],
1180            Elements::CurrentAsset => [
1181                0x03, 0xc8, 0x44, 0x59, 0xa5, 0xec, 0xdf, 0xdb, 0x46, 0xe3, 0xd3, 0x8e, 0xcb, 0x79,
1182                0xff, 0x22, 0x24, 0x3f, 0xdc, 0xf7, 0x0d, 0x80, 0xda, 0x1b, 0xa4, 0x56, 0x99, 0xe7,
1183                0x00, 0x8e, 0xec, 0xfe,
1184            ],
1185            Elements::CurrentIndex => [
1186                0x15, 0xe1, 0x05, 0x1f, 0xf2, 0x3f, 0x85, 0x1c, 0x19, 0x13, 0x1f, 0x0d, 0xe6, 0xed,
1187                0xc4, 0x88, 0x23, 0x76, 0xa2, 0x57, 0x90, 0xdb, 0xd9, 0x10, 0x28, 0x24, 0xaa, 0x22,
1188                0xa8, 0x89, 0xae, 0x84,
1189            ],
1190            Elements::CurrentIssuanceAssetAmount => [
1191                0xdc, 0x41, 0x0e, 0xc6, 0x99, 0x46, 0xf0, 0x8b, 0x9c, 0x4a, 0x40, 0xcf, 0x38, 0x81,
1192                0x9c, 0xbb, 0x01, 0x4e, 0x98, 0xfc, 0xe0, 0xa9, 0xb1, 0x96, 0x51, 0x45, 0x57, 0x47,
1193                0x7f, 0xe1, 0xc2, 0xa7,
1194            ],
1195            Elements::CurrentIssuanceAssetProof => [
1196                0xe5, 0xc1, 0xc6, 0xf7, 0xea, 0x02, 0x96, 0x14, 0x8e, 0x76, 0xf8, 0xb1, 0x79, 0xd4,
1197                0x15, 0x19, 0x82, 0x73, 0xdc, 0xc8, 0xe1, 0xfd, 0x89, 0x1f, 0x83, 0xef, 0x2b, 0xdf,
1198                0xb0, 0x69, 0x29, 0x36,
1199            ],
1200            Elements::CurrentIssuanceTokenAmount => [
1201                0xe3, 0xea, 0x9c, 0x61, 0x70, 0x95, 0x5f, 0x27, 0xb0, 0x1b, 0x12, 0x0c, 0xd6, 0x3a,
1202                0x36, 0x08, 0x50, 0xcc, 0x70, 0x0f, 0x47, 0x25, 0x19, 0x3b, 0xdf, 0xf8, 0x8e, 0x01,
1203                0xdf, 0xb0, 0x4e, 0xad,
1204            ],
1205            Elements::CurrentIssuanceTokenProof => [
1206                0x92, 0xe7, 0xd9, 0xdd, 0xbf, 0x75, 0x6e, 0x3e, 0x62, 0x2a, 0x44, 0xd4, 0xd0, 0x0e,
1207                0x84, 0x23, 0x6b, 0xcc, 0xe4, 0x2f, 0x16, 0xf3, 0x20, 0x0e, 0x8b, 0x89, 0xc0, 0x3c,
1208                0x44, 0x1e, 0x45, 0x8a,
1209            ],
1210            Elements::CurrentNewIssuanceContract => [
1211                0x23, 0x78, 0x15, 0x67, 0x5e, 0x9e, 0x9c, 0xf4, 0xd8, 0x54, 0x85, 0x60, 0xc7, 0x61,
1212                0xe3, 0xba, 0x7f, 0x64, 0xdc, 0xf2, 0x5c, 0x99, 0x52, 0x1b, 0xe9, 0xd8, 0x57, 0xe4,
1213                0xea, 0x41, 0xd8, 0x68,
1214            ],
1215            Elements::CurrentPegin => [
1216                0x36, 0x9a, 0xd5, 0xf6, 0xd7, 0x60, 0x48, 0x1c, 0xb3, 0x53, 0xa9, 0xba, 0xcf, 0x90,
1217                0x0f, 0xf1, 0x62, 0xb7, 0x60, 0x40, 0xc0, 0x7a, 0xd0, 0xa8, 0x3e, 0x52, 0xfc, 0xce,
1218                0xf1, 0x29, 0x57, 0x90,
1219            ],
1220            Elements::CurrentPrevOutpoint => [
1221                0xa1, 0xec, 0x90, 0x9c, 0x81, 0xe5, 0x08, 0xe8, 0x6e, 0x13, 0x61, 0xba, 0x82, 0xe5,
1222                0xfb, 0x47, 0xa2, 0xc7, 0x6b, 0xff, 0xba, 0x73, 0x21, 0xa6, 0xfc, 0x13, 0xcb, 0x12,
1223                0xaf, 0x7f, 0x69, 0x7c,
1224            ],
1225            Elements::CurrentReissuanceBlinding => [
1226                0xb7, 0x15, 0x50, 0xc8, 0xf6, 0x2e, 0x7a, 0xac, 0xff, 0x13, 0xe8, 0xd3, 0xc0, 0xae,
1227                0x05, 0x4e, 0xf0, 0x36, 0x40, 0x9d, 0x76, 0xc0, 0x65, 0x79, 0xc0, 0x26, 0xad, 0x68,
1228                0xa1, 0xb5, 0x61, 0xf8,
1229            ],
1230            Elements::CurrentReissuanceEntropy => [
1231                0x8b, 0x27, 0x15, 0x32, 0x7a, 0x0a, 0xc6, 0xb0, 0xd1, 0x8a, 0x2e, 0x51, 0xfb, 0xda,
1232                0x46, 0xc4, 0xb1, 0x18, 0xee, 0x06, 0x37, 0xd1, 0x14, 0xae, 0x3e, 0x58, 0xa2, 0x3b,
1233                0x45, 0xd6, 0x7f, 0xf8,
1234            ],
1235            Elements::CurrentScriptHash => [
1236                0xbf, 0xaf, 0x85, 0x84, 0x43, 0xce, 0xc8, 0x33, 0x7e, 0x37, 0x83, 0x9d, 0xc4, 0x11,
1237                0x35, 0x02, 0x71, 0x84, 0x58, 0x0c, 0x89, 0x21, 0x57, 0xce, 0x73, 0x04, 0x18, 0xc0,
1238                0x8d, 0x5e, 0xd8, 0x38,
1239            ],
1240            Elements::CurrentScriptSigHash => [
1241                0x8b, 0xaa, 0x9d, 0xf8, 0x54, 0xfe, 0x33, 0xee, 0xea, 0x66, 0x19, 0x5c, 0x97, 0xce,
1242                0x18, 0xed, 0x70, 0x1e, 0x10, 0x7e, 0xea, 0x7e, 0x02, 0xfb, 0x26, 0x03, 0xb2, 0xc1,
1243                0x21, 0x57, 0x50, 0x66,
1244            ],
1245            Elements::CurrentSequence => [
1246                0x0f, 0x42, 0x24, 0xf9, 0xaa, 0x86, 0x44, 0xf5, 0xc0, 0xf7, 0x91, 0x0f, 0x17, 0x39,
1247                0x04, 0x1a, 0xec, 0x8e, 0x7a, 0xf7, 0x7b, 0x5f, 0x38, 0xcf, 0xdc, 0xa0, 0xfd, 0xf4,
1248                0x82, 0x67, 0xa6, 0xc3,
1249            ],
1250            Elements::Decompress => [
1251                0x13, 0x97, 0x33, 0x17, 0xd5, 0x87, 0x41, 0x8e, 0xf3, 0x06, 0x36, 0x31, 0xa6, 0xed,
1252                0xb0, 0xac, 0xfa, 0x1c, 0xbe, 0x49, 0x83, 0xd7, 0x57, 0x4b, 0x1b, 0x30, 0x5f, 0x96,
1253                0x61, 0xc0, 0x48, 0xcb,
1254            ],
1255            Elements::Decrement16 => [
1256                0xe3, 0x4d, 0xb1, 0x18, 0x79, 0x27, 0x2b, 0x32, 0x7a, 0x3b, 0xd0, 0x34, 0xc0, 0xf6,
1257                0x1e, 0xf6, 0x0a, 0x2b, 0xe9, 0x6f, 0xdf, 0xe0, 0xb2, 0xd5, 0x7f, 0xfe, 0x39, 0xce,
1258                0x71, 0x4c, 0x78, 0xfb,
1259            ],
1260            Elements::Decrement32 => [
1261                0x01, 0x9e, 0xad, 0x5a, 0x73, 0x05, 0x60, 0x6d, 0xc9, 0x50, 0xfb, 0x55, 0x47, 0x6d,
1262                0x09, 0xc1, 0x7d, 0x66, 0xf5, 0x70, 0xda, 0xb5, 0x10, 0xb9, 0x0d, 0x2a, 0x27, 0xe2,
1263                0x26, 0x65, 0x99, 0xcf,
1264            ],
1265            Elements::Decrement64 => [
1266                0x34, 0x75, 0x2c, 0xf4, 0xe1, 0xd0, 0xa4, 0x31, 0xf0, 0x17, 0xa6, 0x8b, 0xeb, 0xfa,
1267                0xb7, 0x41, 0xbb, 0xc8, 0x8a, 0xff, 0xb5, 0x7c, 0xc0, 0xb3, 0x02, 0x5c, 0xcf, 0xdd,
1268                0x67, 0x62, 0x2f, 0x35,
1269            ],
1270            Elements::Decrement8 => [
1271                0x28, 0x92, 0xce, 0xb3, 0xb6, 0xec, 0x53, 0x25, 0xd0, 0xc1, 0xb9, 0xf5, 0x20, 0x42,
1272                0x5e, 0x4b, 0x05, 0xc2, 0xe1, 0xf4, 0x37, 0xe0, 0xb3, 0xf5, 0x81, 0xf4, 0x1b, 0x9d,
1273                0x0f, 0x7d, 0xff, 0x4d,
1274            ],
1275            Elements::DivMod128_64 => [
1276                0x22, 0x96, 0xb7, 0x0f, 0x60, 0x0e, 0x8a, 0x21, 0x4a, 0xd0, 0x70, 0xb2, 0x19, 0x4a,
1277                0x67, 0x7d, 0x30, 0x51, 0xbc, 0x1c, 0x49, 0x01, 0x83, 0x97, 0x5f, 0x2a, 0x1d, 0x3e,
1278                0x0c, 0xad, 0xe3, 0x78,
1279            ],
1280            Elements::DivMod16 => [
1281                0x64, 0x8f, 0xab, 0x86, 0x43, 0x74, 0x84, 0x6a, 0xbf, 0x4f, 0x9d, 0x9d, 0xef, 0xe2,
1282                0x75, 0x61, 0x4d, 0x33, 0xf4, 0x82, 0x9c, 0x36, 0xa4, 0x7e, 0xcb, 0x53, 0xd7, 0xbf,
1283                0xb6, 0x05, 0x48, 0x5f,
1284            ],
1285            Elements::DivMod32 => [
1286                0xbd, 0x3d, 0x4d, 0x55, 0x2d, 0x7b, 0x34, 0x7b, 0xd8, 0xa4, 0x4e, 0x3e, 0xe2, 0x24,
1287                0xc8, 0x46, 0xbe, 0x23, 0x0f, 0xf6, 0xe2, 0x04, 0x4d, 0xdb, 0x97, 0xf4, 0x8e, 0x27,
1288                0xd2, 0x0c, 0x42, 0x25,
1289            ],
1290            Elements::DivMod64 => [
1291                0xfa, 0x6b, 0xad, 0x6a, 0x95, 0xe2, 0xab, 0xa4, 0x30, 0x5b, 0xfe, 0x91, 0xcc, 0x47,
1292                0xac, 0xc3, 0xd9, 0x9b, 0x92, 0xe6, 0x75, 0xe6, 0x9d, 0x3b, 0x37, 0xbb, 0x09, 0x13,
1293                0x3d, 0x39, 0x0d, 0x0f,
1294            ],
1295            Elements::DivMod8 => [
1296                0x48, 0xcd, 0x50, 0x1b, 0xb2, 0xaa, 0x2a, 0xca, 0xe0, 0x14, 0xfe, 0x20, 0x8b, 0xb9,
1297                0x94, 0x1d, 0x07, 0xa9, 0xbf, 0xfe, 0x1a, 0xd6, 0xcd, 0x3d, 0x36, 0xfc, 0x6b, 0x08,
1298                0x60, 0xf6, 0xeb, 0xa7,
1299            ],
1300            Elements::Divide16 => [
1301                0x47, 0x0b, 0x01, 0xa5, 0x7c, 0x4f, 0x9d, 0x8f, 0x99, 0x7f, 0xcd, 0xe0, 0x06, 0x19,
1302                0x16, 0x11, 0xdd, 0xa4, 0xc9, 0x8b, 0xa2, 0xa5, 0xf1, 0xda, 0x13, 0x4a, 0xe4, 0xc2,
1303                0x2d, 0x52, 0xe9, 0x20,
1304            ],
1305            Elements::Divide32 => [
1306                0xab, 0x03, 0xac, 0xd8, 0x93, 0x61, 0x0c, 0x3c, 0x65, 0x82, 0xe7, 0xf7, 0xfb, 0xe5,
1307                0xe7, 0x56, 0x25, 0x74, 0xa7, 0xb2, 0x66, 0x46, 0xf1, 0xc2, 0xfd, 0xc6, 0xe7, 0x6e,
1308                0x44, 0x5a, 0x77, 0xa1,
1309            ],
1310            Elements::Divide64 => [
1311                0xeb, 0xfc, 0x56, 0xfb, 0xb8, 0xa4, 0x7e, 0x73, 0xff, 0xab, 0xb7, 0xea, 0x22, 0x8a,
1312                0xc7, 0x84, 0x37, 0xbe, 0x82, 0x0e, 0xdd, 0xfa, 0x47, 0x81, 0x4c, 0xce, 0xbd, 0x26,
1313                0x1b, 0xd8, 0xcf, 0xff,
1314            ],
1315            Elements::Divide8 => [
1316                0x2c, 0xcf, 0xbc, 0x7c, 0x02, 0xbf, 0x4d, 0x53, 0x04, 0x93, 0xbb, 0x22, 0x86, 0x7a,
1317                0x95, 0x1d, 0x8a, 0xe9, 0x13, 0x12, 0x66, 0x87, 0x59, 0x72, 0x84, 0xe9, 0xbb, 0xb3,
1318                0xe1, 0xe7, 0xe3, 0x49,
1319            ],
1320            Elements::Divides16 => [
1321                0x5f, 0xc3, 0xac, 0x38, 0x4d, 0x5f, 0x45, 0x40, 0x41, 0x56, 0x97, 0x1a, 0x76, 0x8d,
1322                0x93, 0xbc, 0x06, 0x4b, 0xc1, 0x7c, 0x15, 0xa3, 0x7c, 0x27, 0x01, 0x9d, 0xde, 0xef,
1323                0x17, 0x04, 0x6d, 0xd4,
1324            ],
1325            Elements::Divides32 => [
1326                0xcc, 0x45, 0xb4, 0x05, 0x24, 0x64, 0x38, 0xf7, 0x65, 0x74, 0x0b, 0x4f, 0xb0, 0xa3,
1327                0x4d, 0xc8, 0x1b, 0x34, 0x78, 0x01, 0x98, 0x86, 0x3b, 0x0f, 0xb1, 0x86, 0x44, 0x6a,
1328                0xdf, 0xbb, 0x09, 0xde,
1329            ],
1330            Elements::Divides64 => [
1331                0xdc, 0x47, 0x3b, 0xfd, 0xec, 0x30, 0xab, 0x98, 0xd4, 0x8c, 0xd0, 0x88, 0x84, 0xef,
1332                0x4f, 0xff, 0xef, 0x3d, 0x4b, 0x16, 0xad, 0x5c, 0x37, 0x11, 0x2a, 0x20, 0x35, 0xb9,
1333                0x9b, 0xb7, 0x74, 0x58,
1334            ],
1335            Elements::Divides8 => [
1336                0x0b, 0x55, 0x02, 0xac, 0x4f, 0x21, 0xf2, 0x30, 0xa0, 0x9c, 0xcf, 0xaf, 0xfa, 0xac,
1337                0x77, 0xa7, 0xc4, 0x1b, 0x2b, 0xf3, 0x0b, 0x14, 0x68, 0x48, 0x1e, 0x4d, 0xfb, 0x98,
1338                0xb6, 0x18, 0x7a, 0x0d,
1339            ],
1340            Elements::Eq1 => [
1341                0x60, 0x7f, 0x6b, 0x8f, 0x5d, 0x25, 0xb8, 0x0e, 0x05, 0xa2, 0xbf, 0x79, 0xd6, 0x2e,
1342                0x87, 0x07, 0x99, 0x52, 0x2c, 0xc3, 0xe3, 0x9c, 0xe9, 0x62, 0x57, 0x45, 0x52, 0x93,
1343                0xf9, 0xb2, 0xb2, 0xed,
1344            ],
1345            Elements::Eq16 => [
1346                0xc9, 0x96, 0xe4, 0x2b, 0x97, 0x9a, 0xbc, 0x53, 0x0c, 0xc2, 0x71, 0x63, 0x66, 0x71,
1347                0xe9, 0x20, 0x54, 0x87, 0x6a, 0x1e, 0xca, 0xed, 0x14, 0x33, 0xfd, 0x61, 0x9a, 0x25,
1348                0xfe, 0x6d, 0x03, 0xad,
1349            ],
1350            Elements::Eq256 => [
1351                0x77, 0x8d, 0x15, 0x06, 0xc7, 0x35, 0xd2, 0x77, 0x6b, 0x95, 0x0f, 0xac, 0xef, 0xc1,
1352                0x59, 0xb6, 0x78, 0xde, 0xc0, 0x38, 0x28, 0xcf, 0x02, 0x73, 0xee, 0xea, 0x64, 0xa9,
1353                0xda, 0x98, 0xc1, 0x2c,
1354            ],
1355            Elements::Eq32 => [
1356                0x66, 0xd3, 0x89, 0x03, 0xe7, 0x3b, 0x1a, 0x13, 0x20, 0xc6, 0x8a, 0x4a, 0x39, 0x70,
1357                0xd7, 0x1f, 0x94, 0xba, 0x9e, 0x2b, 0x15, 0x16, 0x83, 0x99, 0x43, 0xfb, 0x15, 0xe4,
1358                0x4e, 0xbf, 0x57, 0xfb,
1359            ],
1360            Elements::Eq64 => [
1361                0xd6, 0xa6, 0x66, 0xb4, 0xe0, 0xf9, 0xf5, 0x75, 0x50, 0x8d, 0xbf, 0x3b, 0x31, 0xce,
1362                0xea, 0x68, 0x39, 0x3c, 0x7d, 0xb2, 0xe9, 0x8b, 0xc5, 0x92, 0xfd, 0xd2, 0x6f, 0xae,
1363                0x83, 0x7a, 0x0b, 0x87,
1364            ],
1365            Elements::Eq8 => [
1366                0x99, 0x78, 0x7b, 0xa2, 0x67, 0x2d, 0xd0, 0xeb, 0x4d, 0x7d, 0x2e, 0xa9, 0x94, 0x49,
1367                0xde, 0x8f, 0x79, 0x8e, 0x7c, 0xb1, 0x81, 0xa5, 0xe1, 0x66, 0xe1, 0xa5, 0x3f, 0x98,
1368                0x02, 0xb6, 0x20, 0x64,
1369            ],
1370            Elements::FeAdd => [
1371                0xb0, 0x59, 0x3e, 0x18, 0x7e, 0xe7, 0x33, 0x3c, 0x47, 0xa0, 0x54, 0x67, 0xdf, 0x66,
1372                0xd5, 0x82, 0x0a, 0x6f, 0x5b, 0xef, 0x91, 0x4a, 0x4b, 0x76, 0xe5, 0xd1, 0x63, 0x31,
1373                0x4b, 0x5e, 0xf2, 0x0e,
1374            ],
1375            Elements::FeInvert => [
1376                0x34, 0x3e, 0x9c, 0x90, 0xf1, 0x28, 0x50, 0x60, 0x56, 0xb5, 0x48, 0xd2, 0xed, 0x5e,
1377                0x22, 0x3c, 0x81, 0xf5, 0xb0, 0x6a, 0x1e, 0xd8, 0x6b, 0x7c, 0xd9, 0x35, 0x40, 0x57,
1378                0xaa, 0x59, 0x51, 0x02,
1379            ],
1380            Elements::FeIsOdd => [
1381                0xdc, 0xf0, 0x37, 0x5d, 0x20, 0x81, 0x8a, 0x99, 0xf7, 0x23, 0xf8, 0x12, 0x3c, 0xbd,
1382                0x05, 0x1a, 0x38, 0x78, 0xa4, 0x28, 0x24, 0xb3, 0x74, 0x0f, 0x68, 0x21, 0xa5, 0xfa,
1383                0x12, 0x3f, 0x14, 0xc7,
1384            ],
1385            Elements::FeIsZero => [
1386                0x28, 0xff, 0x41, 0x69, 0x9a, 0x88, 0x1a, 0xaf, 0xb7, 0xa9, 0x76, 0xc0, 0xc5, 0x76,
1387                0x35, 0x3f, 0x7f, 0xe5, 0x44, 0x63, 0xb6, 0xaa, 0x75, 0x4c, 0xf2, 0xc6, 0x32, 0x9a,
1388                0xf2, 0x65, 0x0e, 0x3b,
1389            ],
1390            Elements::FeMultiply => [
1391                0x56, 0x69, 0x92, 0x9b, 0x5f, 0x31, 0xfa, 0x3d, 0x02, 0xc5, 0x83, 0x9d, 0xd0, 0x63,
1392                0x54, 0xcd, 0x17, 0x16, 0x35, 0xf3, 0xa0, 0x72, 0x7f, 0x32, 0x2a, 0xbf, 0xc9, 0x94,
1393                0xba, 0x62, 0x90, 0xde,
1394            ],
1395            Elements::FeMultiplyBeta => [
1396                0x7a, 0x78, 0x13, 0x45, 0x0d, 0x82, 0xe9, 0x35, 0x69, 0x0f, 0x43, 0x3e, 0x65, 0xdf,
1397                0x70, 0x7a, 0x4d, 0xd1, 0x75, 0x34, 0xa0, 0x0d, 0xdd, 0x40, 0xdd, 0x85, 0xe3, 0xe3,
1398                0xf7, 0x84, 0x02, 0xc3,
1399            ],
1400            Elements::FeNegate => [
1401                0x3b, 0x0d, 0x7b, 0x5c, 0x2e, 0x6c, 0x3a, 0xeb, 0x5e, 0x00, 0x08, 0x5b, 0x9d, 0x30,
1402                0x58, 0x5a, 0xff, 0x05, 0x4e, 0x32, 0x5a, 0x99, 0x83, 0x61, 0x11, 0x3b, 0xfd, 0x23,
1403                0x28, 0xc0, 0x08, 0xf6,
1404            ],
1405            Elements::FeNormalize => [
1406                0xc5, 0x1b, 0xef, 0xfa, 0x21, 0x5e, 0x9c, 0xde, 0x8e, 0x93, 0x3b, 0xb9, 0x46, 0x80,
1407                0xba, 0xe0, 0x12, 0xc4, 0xda, 0xab, 0x3d, 0x04, 0xb6, 0xcb, 0xf0, 0x73, 0x3f, 0xd7,
1408                0x35, 0x73, 0x35, 0x38,
1409            ],
1410            Elements::FeSquare => [
1411                0x5a, 0x6e, 0x7b, 0x2e, 0xac, 0x73, 0xf4, 0xe4, 0x4d, 0xfa, 0x28, 0xfb, 0x86, 0xbb,
1412                0x11, 0x7b, 0x65, 0x60, 0x6f, 0x28, 0x74, 0xd5, 0x65, 0xc9, 0x79, 0x9c, 0x63, 0xe0,
1413                0xfe, 0x69, 0x2b, 0x1a,
1414            ],
1415            Elements::FeSquareRoot => [
1416                0xe0, 0x01, 0x42, 0xea, 0x03, 0x09, 0x4a, 0x30, 0x4a, 0xc8, 0x2b, 0xc1, 0xe2, 0xd2,
1417                0xdc, 0x71, 0xfb, 0x06, 0x4e, 0xd0, 0x82, 0x85, 0x67, 0x35, 0xb1, 0x4f, 0xf2, 0xc7,
1418                0xfa, 0xf0, 0x36, 0xf0,
1419            ],
1420            Elements::FullAdd16 => [
1421                0xfc, 0x9e, 0x5d, 0xf8, 0x3b, 0xfd, 0xb9, 0x02, 0x8c, 0x87, 0xd1, 0x39, 0xf8, 0x58,
1422                0x39, 0x03, 0xcb, 0x2a, 0x07, 0x04, 0x2a, 0x73, 0xe5, 0x34, 0x81, 0xde, 0xb5, 0x2f,
1423                0xf1, 0xf1, 0xf8, 0x84,
1424            ],
1425            Elements::FullAdd32 => [
1426                0xa7, 0xd9, 0x8d, 0x50, 0xd0, 0x45, 0xcb, 0x90, 0x6b, 0x19, 0x5e, 0x65, 0x11, 0x87,
1427                0x94, 0x95, 0xc8, 0x51, 0x09, 0x59, 0x49, 0xa9, 0xc0, 0x1e, 0x60, 0x39, 0xa8, 0x4b,
1428                0x2a, 0x5e, 0xc9, 0x09,
1429            ],
1430            Elements::FullAdd64 => [
1431                0x7a, 0xec, 0xc8, 0xc9, 0x05, 0x3b, 0xb2, 0xfb, 0x17, 0x0c, 0x1c, 0x97, 0x2f, 0xd4,
1432                0x00, 0x25, 0x64, 0xe1, 0x52, 0xa0, 0x6d, 0x9f, 0x45, 0x80, 0x75, 0xe3, 0x8c, 0x7a,
1433                0x06, 0x98, 0xa7, 0xf4,
1434            ],
1435            Elements::FullAdd8 => [
1436                0xed, 0x3b, 0xa5, 0xb7, 0x9e, 0xa4, 0x5b, 0x18, 0x7a, 0x2d, 0x43, 0xe8, 0xed, 0x80,
1437                0x2d, 0xe1, 0xed, 0x44, 0x26, 0x59, 0x6c, 0xbe, 0x32, 0xe7, 0x57, 0xc8, 0x51, 0x19,
1438                0x15, 0xff, 0xa5, 0xcf,
1439            ],
1440            Elements::FullDecrement16 => [
1441                0xd4, 0xc2, 0xed, 0xda, 0x87, 0x2c, 0x05, 0x50, 0x6f, 0x79, 0x2c, 0xf5, 0x46, 0xa8,
1442                0x9d, 0x4d, 0x7c, 0xff, 0xcb, 0x1e, 0x17, 0xf5, 0xda, 0x61, 0x03, 0x10, 0x0e, 0x7e,
1443                0x73, 0xa7, 0x73, 0x7d,
1444            ],
1445            Elements::FullDecrement32 => [
1446                0x7c, 0xc2, 0x30, 0x4d, 0x17, 0x43, 0x12, 0x10, 0x2e, 0x9b, 0x73, 0x63, 0x45, 0xc7,
1447                0x7f, 0x77, 0x1d, 0x1f, 0x6a, 0x9c, 0x9e, 0x1d, 0x1c, 0xd8, 0xdb, 0x8c, 0xb4, 0x61,
1448                0x39, 0x80, 0xc8, 0xc2,
1449            ],
1450            Elements::FullDecrement64 => [
1451                0x15, 0xc1, 0x63, 0x45, 0x4b, 0xcd, 0x75, 0x44, 0x30, 0xda, 0x55, 0x79, 0xbb, 0xca,
1452                0xad, 0x26, 0xe5, 0x7e, 0x95, 0xc7, 0x72, 0x22, 0x4b, 0x7b, 0x83, 0xc7, 0x05, 0xf7,
1453                0xde, 0xb6, 0x4a, 0xa6,
1454            ],
1455            Elements::FullDecrement8 => [
1456                0x7c, 0x5e, 0x94, 0xa9, 0x98, 0x02, 0x81, 0x82, 0x17, 0x37, 0xb1, 0xce, 0x73, 0xbf,
1457                0xda, 0x4c, 0x79, 0xef, 0x64, 0x9b, 0x3d, 0x05, 0xcc, 0x1c, 0x00, 0xc4, 0xa8, 0xb6,
1458                0x4b, 0x94, 0x9b, 0xbe,
1459            ],
1460            Elements::FullIncrement16 => [
1461                0x81, 0x38, 0x0a, 0xda, 0xa3, 0xa5, 0x47, 0xf1, 0xbc, 0x4b, 0xbb, 0x64, 0x6b, 0xda,
1462                0x9d, 0x9f, 0xb7, 0xbd, 0x4d, 0xc1, 0xb3, 0xa9, 0xf3, 0xdd, 0x22, 0x0b, 0x56, 0xa4,
1463                0x7c, 0x27, 0x98, 0xfb,
1464            ],
1465            Elements::FullIncrement32 => [
1466                0xa7, 0x60, 0xa8, 0x44, 0x9a, 0x2a, 0xb5, 0xde, 0xdb, 0x4e, 0xe5, 0x1b, 0xf5, 0xc2,
1467                0x5a, 0x8f, 0x06, 0xaf, 0x06, 0x66, 0xdf, 0x7f, 0xc4, 0x19, 0xb4, 0x98, 0xb9, 0x09,
1468                0x76, 0xd6, 0x98, 0xcb,
1469            ],
1470            Elements::FullIncrement64 => [
1471                0xc6, 0xaf, 0x30, 0xdd, 0x28, 0x6d, 0x6e, 0x21, 0xc3, 0x88, 0x60, 0xed, 0x1e, 0x2f,
1472                0x21, 0x2a, 0x21, 0xb2, 0xfd, 0x1e, 0xde, 0xad, 0xb5, 0xe0, 0xfc, 0xe2, 0xe3, 0xfd,
1473                0x75, 0xb7, 0xf3, 0xc2,
1474            ],
1475            Elements::FullIncrement8 => [
1476                0xd3, 0x04, 0xea, 0x28, 0xa9, 0x5d, 0x49, 0x6d, 0x14, 0xb4, 0xf2, 0xfb, 0x5c, 0x86,
1477                0x03, 0x72, 0xec, 0xf2, 0x47, 0xbe, 0xfd, 0xe3, 0xea, 0x3b, 0x2a, 0xd6, 0x7b, 0xce,
1478                0x99, 0x03, 0x9d, 0xbc,
1479            ],
1480            Elements::FullLeftShift16_1 => [
1481                0x14, 0xdc, 0xc3, 0x46, 0x6f, 0xa8, 0x28, 0xa3, 0xf0, 0x74, 0x04, 0x51, 0xb8, 0x03,
1482                0x7d, 0x7a, 0xd6, 0x03, 0xea, 0xdc, 0x80, 0xaa, 0xea, 0xdc, 0x66, 0x44, 0x34, 0xac,
1483                0x2a, 0xd7, 0xfd, 0x9c,
1484            ],
1485            Elements::FullLeftShift16_2 => [
1486                0xaf, 0xb7, 0xe9, 0x28, 0xb0, 0x52, 0xc2, 0x28, 0x79, 0x21, 0x66, 0x2c, 0xd8, 0xab,
1487                0x12, 0x2f, 0xe0, 0x74, 0xef, 0xd2, 0x51, 0xa5, 0xc9, 0xcf, 0xbc, 0xaa, 0x36, 0x9d,
1488                0x06, 0x33, 0x73, 0x92,
1489            ],
1490            Elements::FullLeftShift16_4 => [
1491                0x16, 0x6f, 0x34, 0x8c, 0x59, 0xe2, 0x6f, 0x89, 0xa8, 0x3a, 0x99, 0x1f, 0x67, 0xe5,
1492                0xdb, 0xf7, 0x10, 0xcf, 0xae, 0x3d, 0x6d, 0x96, 0x93, 0x82, 0x82, 0xbb, 0x44, 0xc1,
1493                0xaf, 0xa7, 0x10, 0x9b,
1494            ],
1495            Elements::FullLeftShift16_8 => [
1496                0xc0, 0xcd, 0x01, 0x5d, 0xe8, 0xac, 0x4f, 0xcc, 0xd8, 0xdb, 0x89, 0xf4, 0xe5, 0x14,
1497                0x2f, 0xde, 0x27, 0x97, 0x55, 0xb5, 0x42, 0xa2, 0x4f, 0x57, 0xa2, 0xa3, 0xc7, 0xc1,
1498                0xf5, 0x0d, 0x1d, 0xb5,
1499            ],
1500            Elements::FullLeftShift32_1 => [
1501                0xce, 0x33, 0xb5, 0xd0, 0xc5, 0x8d, 0x2d, 0x0b, 0x9b, 0x5a, 0x99, 0x44, 0xd3, 0xda,
1502                0xbd, 0xa0, 0x23, 0xcd, 0x44, 0x64, 0x7b, 0xe6, 0x7c, 0xf4, 0x08, 0x28, 0x30, 0xbb,
1503                0x20, 0x5f, 0x8f, 0xbb,
1504            ],
1505            Elements::FullLeftShift32_16 => [
1506                0x1c, 0xb3, 0x6e, 0x6f, 0x99, 0x30, 0x85, 0x15, 0xd4, 0xb7, 0x11, 0x90, 0x9c, 0x57,
1507                0x4b, 0x21, 0x24, 0xc1, 0xff, 0x42, 0x2d, 0x8d, 0x7d, 0x94, 0x82, 0xe2, 0x5d, 0x87,
1508                0x88, 0xb3, 0xb9, 0x57,
1509            ],
1510            Elements::FullLeftShift32_2 => [
1511                0x3f, 0xae, 0xa9, 0xb5, 0x73, 0xfc, 0x06, 0x9d, 0x8f, 0x43, 0x0f, 0xac, 0xa8, 0x97,
1512                0xb6, 0x87, 0x1e, 0xa0, 0x95, 0x73, 0xc7, 0x15, 0x09, 0x4b, 0x1f, 0x1b, 0xe0, 0x81,
1513                0x84, 0x88, 0xa7, 0x16,
1514            ],
1515            Elements::FullLeftShift32_4 => [
1516                0xcd, 0xbb, 0x0d, 0x23, 0x31, 0x05, 0x90, 0x11, 0x3c, 0x93, 0x4f, 0xe6, 0x60, 0x04,
1517                0xd2, 0xa1, 0x1d, 0xa9, 0xcb, 0xf8, 0x87, 0x3d, 0x00, 0xde, 0xe7, 0xf0, 0x22, 0x96,
1518                0xff, 0x0a, 0x2f, 0x12,
1519            ],
1520            Elements::FullLeftShift32_8 => [
1521                0xcc, 0xd9, 0x24, 0xe1, 0xa6, 0x18, 0x49, 0x42, 0x0f, 0xf6, 0x2e, 0xd8, 0xb2, 0x45,
1522                0xa3, 0xaa, 0x18, 0xc9, 0x8c, 0x41, 0xf9, 0xc5, 0xa3, 0xc0, 0xb8, 0x85, 0x86, 0x3c,
1523                0x44, 0x9b, 0x7d, 0x14,
1524            ],
1525            Elements::FullLeftShift64_1 => [
1526                0xd4, 0x63, 0xcc, 0xdc, 0x7f, 0xd1, 0x4e, 0x5e, 0x89, 0x41, 0x62, 0xb2, 0xae, 0x71,
1527                0x41, 0x28, 0xa1, 0x0d, 0xc9, 0x20, 0x00, 0xb5, 0x4c, 0x84, 0x3b, 0x64, 0x9c, 0xcb,
1528                0x77, 0x56, 0x26, 0xe5,
1529            ],
1530            Elements::FullLeftShift64_16 => [
1531                0x88, 0x2d, 0xce, 0x21, 0x2a, 0x0e, 0x61, 0xf8, 0xf9, 0x4c, 0xb5, 0xe3, 0x2e, 0x00,
1532                0xa5, 0x28, 0x7c, 0xf6, 0x4f, 0x20, 0xc2, 0x1f, 0xca, 0x84, 0xf1, 0xe3, 0xdf, 0x7f,
1533                0x4a, 0x62, 0x91, 0xcd,
1534            ],
1535            Elements::FullLeftShift64_2 => [
1536                0x48, 0xc8, 0x9b, 0x19, 0x1a, 0x51, 0xb6, 0xab, 0x03, 0x4c, 0x80, 0xea, 0xff, 0x34,
1537                0x82, 0x38, 0xd9, 0x3f, 0xb3, 0x1c, 0x1e, 0x92, 0xe7, 0xf2, 0xae, 0x49, 0x31, 0x7e,
1538                0x0e, 0x33, 0xf8, 0x2d,
1539            ],
1540            Elements::FullLeftShift64_32 => [
1541                0x39, 0x75, 0x90, 0x73, 0x33, 0xe1, 0x27, 0x30, 0x62, 0x55, 0xb7, 0xf8, 0x89, 0x39,
1542                0xe2, 0x85, 0x7f, 0x42, 0xae, 0x1b, 0xf0, 0xc6, 0x62, 0x40, 0xa8, 0x22, 0x4c, 0x8d,
1543                0xa3, 0x8b, 0xb1, 0xbe,
1544            ],
1545            Elements::FullLeftShift64_4 => [
1546                0x29, 0x31, 0x32, 0xeb, 0x15, 0xdd, 0xf4, 0x17, 0x74, 0xb0, 0x00, 0x5a, 0x3b, 0x5c,
1547                0x50, 0x95, 0x9f, 0xa8, 0x98, 0x2b, 0x75, 0x9e, 0x83, 0x28, 0x27, 0xc7, 0x4f, 0xa8,
1548                0x28, 0x50, 0x66, 0x6c,
1549            ],
1550            Elements::FullLeftShift64_8 => [
1551                0xe6, 0xab, 0xde, 0xd8, 0xbe, 0x58, 0x5e, 0xb0, 0xb6, 0xd4, 0x6e, 0x0c, 0x5e, 0xb2,
1552                0x8a, 0x74, 0x5f, 0x4e, 0x5c, 0x56, 0xfd, 0x65, 0x21, 0xf8, 0xf3, 0x96, 0xcb, 0x21,
1553                0xa7, 0x58, 0xf7, 0x4c,
1554            ],
1555            Elements::FullLeftShift8_1 => [
1556                0x73, 0x3f, 0xed, 0x08, 0x47, 0xa2, 0xff, 0xac, 0x9a, 0xab, 0xf5, 0x0a, 0x2f, 0xeb,
1557                0x50, 0x59, 0x89, 0x84, 0xf1, 0x6d, 0x8b, 0x73, 0x24, 0x68, 0xb3, 0xd3, 0x15, 0xc0,
1558                0x1e, 0xa4, 0x29, 0x9b,
1559            ],
1560            Elements::FullLeftShift8_2 => [
1561                0xb4, 0x47, 0x4d, 0x0b, 0xa1, 0xcf, 0x4f, 0xa2, 0xd6, 0x4c, 0xd4, 0xfe, 0x67, 0xbd,
1562                0xc9, 0x2c, 0xb8, 0x9e, 0xfa, 0x70, 0xcb, 0x99, 0xaf, 0x77, 0x91, 0xbf, 0x7e, 0xf6,
1563                0xe9, 0x09, 0xd2, 0xc7,
1564            ],
1565            Elements::FullLeftShift8_4 => [
1566                0x8e, 0xb5, 0x22, 0xb9, 0x97, 0x04, 0x74, 0xad, 0xbb, 0x7a, 0xb0, 0xde, 0x37, 0xc4,
1567                0xe7, 0xa0, 0x56, 0xa1, 0xcb, 0x21, 0x2e, 0x41, 0x03, 0xe4, 0xa8, 0xcb, 0xbb, 0xb6,
1568                0x3d, 0x97, 0x56, 0x06,
1569            ],
1570            Elements::FullMultiply16 => [
1571                0x88, 0x47, 0x0c, 0xbf, 0x9b, 0x4d, 0xec, 0x37, 0xea, 0x05, 0xd7, 0xb6, 0x30, 0xf2,
1572                0xf1, 0x12, 0x54, 0x75, 0x67, 0xd3, 0x4f, 0x33, 0xd9, 0x6e, 0x5f, 0x61, 0x1b, 0xd9,
1573                0xda, 0x97, 0xab, 0xb5,
1574            ],
1575            Elements::FullMultiply32 => [
1576                0x28, 0x04, 0x06, 0x00, 0xa6, 0x6e, 0x1a, 0x0c, 0x52, 0x25, 0x85, 0x20, 0x48, 0x8b,
1577                0x94, 0xc8, 0x20, 0xc6, 0xcf, 0x86, 0xca, 0x27, 0xae, 0x39, 0x03, 0x4d, 0xdd, 0xca,
1578                0xb9, 0x04, 0xd1, 0xd5,
1579            ],
1580            Elements::FullMultiply64 => [
1581                0x53, 0x01, 0x4f, 0x35, 0xa8, 0xdf, 0x20, 0x91, 0xaf, 0x3e, 0xf9, 0xb8, 0xd1, 0x6b,
1582                0x38, 0xb9, 0xbc, 0x96, 0x61, 0xbf, 0xdb, 0xc9, 0x57, 0x33, 0x3f, 0xba, 0x2a, 0x94,
1583                0x8c, 0x1e, 0x8c, 0x25,
1584            ],
1585            Elements::FullMultiply8 => [
1586                0xd3, 0xd2, 0x45, 0x54, 0xc4, 0x66, 0xdd, 0x60, 0x37, 0x54, 0x52, 0x47, 0x36, 0xa7,
1587                0x1e, 0xb2, 0x35, 0xde, 0xf9, 0xb5, 0x06, 0x96, 0x5e, 0x32, 0xd5, 0x68, 0x26, 0xe1,
1588                0x9f, 0xba, 0xd6, 0xc1,
1589            ],
1590            Elements::FullRightShift16_1 => [
1591                0xb3, 0x79, 0xe2, 0x96, 0xe9, 0xa9, 0x8f, 0xb3, 0xb5, 0x66, 0x2b, 0x8b, 0xa0, 0x4e,
1592                0x3c, 0xc1, 0xa4, 0x3c, 0x74, 0x42, 0x9e, 0x93, 0x12, 0x33, 0xfd, 0xd7, 0xfc, 0x8f,
1593                0xe6, 0xb7, 0xa2, 0xe0,
1594            ],
1595            Elements::FullRightShift16_2 => [
1596                0xae, 0xb8, 0xc6, 0x08, 0x06, 0xa4, 0x79, 0x20, 0x77, 0x58, 0xe3, 0x90, 0x83, 0xb4,
1597                0xa9, 0xa7, 0xa1, 0x4d, 0xa4, 0xee, 0x9b, 0xc1, 0x09, 0x7f, 0xc5, 0xcb, 0x4b, 0x75,
1598                0x54, 0x0d, 0x75, 0x78,
1599            ],
1600            Elements::FullRightShift16_4 => [
1601                0x60, 0xb7, 0xf0, 0x84, 0x75, 0xcc, 0x0c, 0xce, 0x64, 0xdc, 0xa1, 0x2d, 0x9f, 0x6a,
1602                0x91, 0x9c, 0x30, 0x61, 0x81, 0x10, 0xed, 0xa1, 0x40, 0x65, 0x92, 0x9c, 0x00, 0x4e,
1603                0x7f, 0xc1, 0xb0, 0xfb,
1604            ],
1605            Elements::FullRightShift16_8 => [
1606                0xf7, 0x9d, 0xba, 0x3e, 0x0a, 0xf3, 0xd6, 0xa5, 0x59, 0xa9, 0xe9, 0xdf, 0xfe, 0xa7,
1607                0x10, 0xaf, 0x62, 0x3f, 0xe6, 0xe6, 0x64, 0x4b, 0x89, 0x79, 0x95, 0xd7, 0x1b, 0x8a,
1608                0x41, 0x67, 0xdd, 0xb0,
1609            ],
1610            Elements::FullRightShift32_1 => [
1611                0xad, 0x0d, 0x5c, 0x75, 0xea, 0x68, 0x43, 0x71, 0x91, 0x77, 0x0d, 0x7f, 0xdf, 0x80,
1612                0x4b, 0xbc, 0x9d, 0x57, 0x3d, 0x5f, 0x10, 0x19, 0x98, 0x23, 0xd8, 0x09, 0xc9, 0xc4,
1613                0x6c, 0xd2, 0x75, 0xad,
1614            ],
1615            Elements::FullRightShift32_16 => [
1616                0x45, 0x52, 0x99, 0xfd, 0x6f, 0x42, 0xab, 0x49, 0xdb, 0xb7, 0x09, 0xe6, 0x5a, 0x3b,
1617                0x53, 0x66, 0x25, 0x0b, 0xdc, 0x54, 0x5d, 0x62, 0x29, 0xe8, 0xe2, 0x36, 0x05, 0x6d,
1618                0xdd, 0x19, 0x77, 0xfd,
1619            ],
1620            Elements::FullRightShift32_2 => [
1621                0x44, 0x38, 0x4b, 0x15, 0x06, 0xd4, 0x43, 0xd2, 0xf8, 0xa2, 0x88, 0x2b, 0x45, 0x63,
1622                0xd7, 0x93, 0x1a, 0x7e, 0xbc, 0xe6, 0x4a, 0xcf, 0x0d, 0x02, 0xee, 0x59, 0xec, 0x69,
1623                0xd3, 0x06, 0x52, 0x39,
1624            ],
1625            Elements::FullRightShift32_4 => [
1626                0x2e, 0x9a, 0x8a, 0xb5, 0xa1, 0x81, 0x7b, 0xd0, 0xb8, 0xa4, 0x66, 0x26, 0x99, 0x49,
1627                0x17, 0xa0, 0xde, 0x1a, 0x74, 0x5e, 0x99, 0x52, 0x0c, 0xe6, 0xeb, 0xcc, 0x67, 0xd4,
1628                0x63, 0x65, 0x51, 0xb7,
1629            ],
1630            Elements::FullRightShift32_8 => [
1631                0xaf, 0x47, 0xd4, 0xf9, 0x6e, 0x7d, 0x80, 0x26, 0xd4, 0x4e, 0x6e, 0xca, 0x1b, 0x80,
1632                0x7f, 0x73, 0x34, 0x4c, 0xe2, 0xea, 0xf7, 0x00, 0xb2, 0xc8, 0x2b, 0x4b, 0xb0, 0x02,
1633                0x61, 0xa8, 0x6f, 0x94,
1634            ],
1635            Elements::FullRightShift64_1 => [
1636                0x03, 0xaf, 0xb5, 0x47, 0xc3, 0x09, 0x13, 0xf1, 0x6f, 0x3e, 0x37, 0x0d, 0x7f, 0x9c,
1637                0xa0, 0x29, 0x0b, 0x61, 0x5b, 0x42, 0x85, 0x05, 0x1b, 0xb9, 0x3c, 0x3c, 0x1a, 0x9b,
1638                0x72, 0xee, 0x8d, 0xe4,
1639            ],
1640            Elements::FullRightShift64_16 => [
1641                0x1f, 0xb0, 0x56, 0xfc, 0xb6, 0x90, 0xce, 0xe3, 0xcf, 0xf7, 0x2c, 0x7d, 0xec, 0xda,
1642                0x80, 0x6d, 0x21, 0x46, 0xc4, 0x92, 0xae, 0x73, 0x1a, 0x6b, 0x94, 0xb8, 0xbb, 0x4f,
1643                0x15, 0x99, 0xb0, 0xcc,
1644            ],
1645            Elements::FullRightShift64_2 => [
1646                0x06, 0x73, 0xbf, 0xf2, 0x1e, 0x37, 0x5e, 0x5d, 0xbc, 0xaf, 0x38, 0x04, 0x66, 0x48,
1647                0x25, 0xdd, 0x67, 0x48, 0x44, 0xd2, 0xfd, 0xb7, 0x84, 0xa4, 0xfe, 0xfb, 0xc9, 0x25,
1648                0xcf, 0x6b, 0x27, 0xad,
1649            ],
1650            Elements::FullRightShift64_32 => [
1651                0x35, 0x6f, 0x7d, 0xd4, 0x6b, 0xa3, 0x3f, 0x84, 0xb0, 0x66, 0x72, 0xfd, 0xe9, 0xa2,
1652                0x97, 0x2e, 0x80, 0xf3, 0xea, 0x96, 0x5a, 0xe8, 0xbc, 0x0b, 0xff, 0x67, 0xaa, 0x2f,
1653                0x69, 0xf1, 0x0b, 0x56,
1654            ],
1655            Elements::FullRightShift64_4 => [
1656                0x4c, 0x25, 0xf6, 0x01, 0x1f, 0xd3, 0xd1, 0xac, 0x18, 0xe1, 0x1e, 0xb4, 0x30, 0x61,
1657                0xfa, 0xd6, 0x9f, 0x3c, 0xe3, 0x9f, 0x7a, 0x99, 0xce, 0xde, 0x50, 0xcc, 0x85, 0xbf,
1658                0x88, 0xbf, 0xba, 0x82,
1659            ],
1660            Elements::FullRightShift64_8 => [
1661                0xa5, 0x1d, 0xf9, 0x44, 0x86, 0x02, 0xfa, 0x81, 0x00, 0x1a, 0xa1, 0xb5, 0xb1, 0x3b,
1662                0xe8, 0x8d, 0x4b, 0x2f, 0x4d, 0x0f, 0x60, 0x74, 0x08, 0x01, 0xce, 0xf9, 0x91, 0x00,
1663                0x2f, 0xe3, 0x7d, 0x6d,
1664            ],
1665            Elements::FullRightShift8_1 => [
1666                0xd9, 0xd4, 0xb1, 0x6d, 0x37, 0xe4, 0xeb, 0x5c, 0xc5, 0x15, 0x04, 0x26, 0xe3, 0xe8,
1667                0x6c, 0xf6, 0x0a, 0xbb, 0xdf, 0xa1, 0xd0, 0xec, 0xb4, 0x15, 0x82, 0x96, 0x5e, 0x80,
1668                0x00, 0xcb, 0xd2, 0x91,
1669            ],
1670            Elements::FullRightShift8_2 => [
1671                0x07, 0x9a, 0xa1, 0x66, 0x17, 0x19, 0x8a, 0xd5, 0xdf, 0x2c, 0x98, 0xa6, 0x3a, 0xf7,
1672                0x6c, 0x1b, 0x3e, 0x12, 0x0f, 0xd2, 0x10, 0x6b, 0x22, 0x5f, 0x63, 0xfd, 0x06, 0xac,
1673                0x57, 0x1d, 0x04, 0xa4,
1674            ],
1675            Elements::FullRightShift8_4 => [
1676                0x9d, 0x9d, 0x3f, 0x63, 0x8a, 0x84, 0x63, 0x86, 0xa2, 0x1e, 0x71, 0x5f, 0x39, 0x46,
1677                0x16, 0x86, 0x4a, 0x2e, 0xf7, 0x98, 0x4a, 0x88, 0xcd, 0x95, 0x50, 0x55, 0x66, 0x29,
1678                0x7b, 0xe7, 0xe0, 0x6c,
1679            ],
1680            Elements::FullSubtract16 => [
1681                0x1f, 0xc8, 0x8e, 0x23, 0x29, 0xf4, 0xaa, 0xf1, 0x2b, 0x30, 0x51, 0x3f, 0x7a, 0x21,
1682                0xcf, 0x5d, 0x8d, 0xe2, 0x4b, 0x60, 0x0a, 0x19, 0xa2, 0x17, 0x41, 0x28, 0x1b, 0x4d,
1683                0x61, 0xaa, 0xc6, 0x33,
1684            ],
1685            Elements::FullSubtract32 => [
1686                0x78, 0x27, 0x05, 0xfb, 0x42, 0xe3, 0x6a, 0x7e, 0xf8, 0x31, 0x20, 0x0c, 0x61, 0x77,
1687                0x38, 0xd3, 0x1e, 0x13, 0xb1, 0xd0, 0xe7, 0xce, 0xed, 0x69, 0x3f, 0x13, 0x33, 0x88,
1688                0x35, 0xb3, 0x0a, 0xcb,
1689            ],
1690            Elements::FullSubtract64 => [
1691                0xb2, 0x85, 0x6a, 0x91, 0x80, 0x23, 0x1b, 0xee, 0x3c, 0xb8, 0x92, 0x30, 0xf7, 0x5c,
1692                0x29, 0x2a, 0xf3, 0xe7, 0x52, 0x39, 0xdb, 0xeb, 0x39, 0x65, 0x48, 0x44, 0x1e, 0x6b,
1693                0x5a, 0x27, 0xe8, 0x13,
1694            ],
1695            Elements::FullSubtract8 => [
1696                0x68, 0x85, 0xe1, 0x41, 0xae, 0x23, 0x4c, 0x1e, 0x2a, 0x7e, 0x4f, 0x23, 0x52, 0x98,
1697                0x93, 0x90, 0x36, 0x96, 0x9c, 0x95, 0x0f, 0x2c, 0xef, 0xd4, 0x59, 0xb4, 0x98, 0xac,
1698                0x3d, 0xd8, 0x92, 0x20,
1699            ],
1700            Elements::GeIsOnCurve => [
1701                0x69, 0xf0, 0xe7, 0xa0, 0xc5, 0xff, 0xf8, 0x70, 0x84, 0xed, 0x69, 0x25, 0xf8, 0xdb,
1702                0x76, 0x2e, 0x41, 0x9e, 0x05, 0x7b, 0x96, 0x83, 0x4d, 0xce, 0x96, 0x99, 0xb0, 0xb0,
1703                0x09, 0x42, 0x30, 0x59,
1704            ],
1705            Elements::GeNegate => [
1706                0x1e, 0xd0, 0xce, 0xd8, 0xdd, 0x25, 0x58, 0xe3, 0x48, 0x5f, 0x6f, 0xc3, 0x2d, 0x69,
1707                0xa2, 0x40, 0x5e, 0xca, 0xee, 0x31, 0x2d, 0xc4, 0xdc, 0x65, 0xe0, 0xfd, 0x34, 0x77,
1708                0x73, 0xf5, 0x98, 0x3d,
1709            ],
1710            Elements::GejAdd => [
1711                0x5a, 0x1c, 0x31, 0x03, 0x49, 0xe8, 0xff, 0x5c, 0x5a, 0x61, 0xac, 0x3e, 0x10, 0x12,
1712                0x3f, 0x74, 0xe8, 0x7f, 0xab, 0xa1, 0x4c, 0x78, 0xbc, 0x83, 0xf9, 0xe3, 0x41, 0x36,
1713                0x87, 0xec, 0xf2, 0x8b,
1714            ],
1715            Elements::GejDouble => [
1716                0x1e, 0xdd, 0x05, 0x82, 0xe2, 0xfc, 0xad, 0x99, 0xb1, 0x2d, 0x50, 0x6d, 0x29, 0xb5,
1717                0x0a, 0x63, 0x01, 0x7f, 0x67, 0x69, 0x28, 0xbe, 0x51, 0x13, 0x69, 0x00, 0x6e, 0x07,
1718                0xcb, 0x80, 0xd9, 0x82,
1719            ],
1720            Elements::GejEquiv => [
1721                0x02, 0x74, 0x71, 0x05, 0x94, 0x87, 0xa1, 0x2c, 0xa2, 0x07, 0xf0, 0x94, 0x05, 0x94,
1722                0xd6, 0xcd, 0x87, 0xfc, 0x93, 0x0a, 0x8b, 0x5b, 0x31, 0x43, 0x4a, 0x16, 0xa2, 0xd6,
1723                0x7f, 0x1d, 0x8d, 0xd4,
1724            ],
1725            Elements::GejGeAdd => [
1726                0x1e, 0xa7, 0x10, 0xd5, 0x6e, 0xaf, 0xee, 0x32, 0x5d, 0x26, 0x07, 0xdd, 0xb4, 0x5f,
1727                0xf0, 0x17, 0x0a, 0xde, 0xc2, 0xe0, 0xee, 0x9b, 0xcc, 0x68, 0xe4, 0xb9, 0x3e, 0x1d,
1728                0xe6, 0xad, 0x35, 0x68,
1729            ],
1730            Elements::GejGeAddEx => [
1731                0x78, 0xf0, 0x87, 0x1b, 0x81, 0x73, 0xab, 0xde, 0x71, 0x87, 0x11, 0x26, 0x3b, 0x3a,
1732                0xc1, 0xd9, 0x22, 0x33, 0x7e, 0xd5, 0xed, 0x13, 0x8d, 0x29, 0x49, 0x62, 0xd6, 0x5c,
1733                0xe5, 0x59, 0xbd, 0x92,
1734            ],
1735            Elements::GejGeEquiv => [
1736                0xba, 0x89, 0x9a, 0x00, 0x62, 0x16, 0xd1, 0xc9, 0x3b, 0xd5, 0xec, 0xbe, 0x00, 0x80,
1737                0xd9, 0x07, 0x8a, 0x50, 0x0a, 0x72, 0x9b, 0xbd, 0x39, 0x6a, 0x00, 0x4a, 0xf5, 0x1d,
1738                0x4f, 0xf7, 0xd9, 0x3a,
1739            ],
1740            Elements::GejInfinity => [
1741                0x88, 0xa9, 0x52, 0xdb, 0x38, 0x16, 0xe9, 0x42, 0x59, 0xa6, 0x75, 0x37, 0xfa, 0x8f,
1742                0xca, 0x1a, 0x35, 0xa9, 0x07, 0xa8, 0x6f, 0x51, 0xed, 0xe4, 0x51, 0xfd, 0x32, 0xec,
1743                0x25, 0x3d, 0x9c, 0x62,
1744            ],
1745            Elements::GejIsInfinity => [
1746                0x29, 0x80, 0xa7, 0x35, 0x41, 0x4e, 0x43, 0x21, 0xaf, 0xef, 0xfe, 0xfa, 0x88, 0x37,
1747                0xed, 0xb0, 0xa3, 0x30, 0x9a, 0x33, 0x7d, 0x59, 0xb7, 0xbd, 0xea, 0x92, 0x1c, 0x13,
1748                0x05, 0x6b, 0x04, 0x28,
1749            ],
1750            Elements::GejIsOnCurve => [
1751                0x01, 0x87, 0xe1, 0xe5, 0xef, 0x76, 0x34, 0xa5, 0xf0, 0x16, 0x12, 0x4d, 0x4f, 0xeb,
1752                0x5a, 0x93, 0xdd, 0xe6, 0xaa, 0x78, 0x17, 0x6c, 0xda, 0x48, 0xb1, 0x65, 0xa9, 0xaa,
1753                0x8e, 0x04, 0x49, 0xf2,
1754            ],
1755            Elements::GejNegate => [
1756                0xb3, 0x2c, 0x74, 0xca, 0xb2, 0xc7, 0x50, 0x0b, 0x73, 0xf8, 0xec, 0x05, 0x60, 0xfe,
1757                0x23, 0xfc, 0x4c, 0x21, 0xaa, 0x66, 0x59, 0x6d, 0x7f, 0x2a, 0xcf, 0x49, 0x67, 0x88,
1758                0x6b, 0x76, 0xd8, 0x56,
1759            ],
1760            Elements::GejNormalize => [
1761                0x5d, 0xe0, 0x97, 0x6a, 0xe7, 0xf3, 0x8b, 0x36, 0xf0, 0x02, 0x28, 0x14, 0x96, 0x6d,
1762                0xb2, 0xba, 0xed, 0x5c, 0x47, 0x67, 0x14, 0x94, 0x4d, 0x74, 0x1a, 0x89, 0x79, 0xc4,
1763                0xbc, 0xf8, 0xbe, 0x25,
1764            ],
1765            Elements::GejRescale => [
1766                0xdc, 0xfc, 0x72, 0xa7, 0x68, 0xd5, 0xbe, 0x77, 0x0f, 0x8d, 0xb2, 0x78, 0xae, 0xaf,
1767                0xd1, 0x8e, 0x27, 0x70, 0x4c, 0x64, 0xf8, 0xb4, 0x0f, 0xa6, 0xfe, 0x54, 0xca, 0x94,
1768                0x72, 0x7a, 0x07, 0x6e,
1769            ],
1770            Elements::GejXEquiv => [
1771                0x52, 0xcc, 0x21, 0x47, 0x09, 0xc0, 0xd9, 0xfc, 0xa9, 0xdb, 0x1d, 0x09, 0xcc, 0x80,
1772                0x7c, 0x75, 0xcf, 0x5a, 0x63, 0x13, 0xca, 0x54, 0x0a, 0x77, 0x2d, 0x4e, 0xa9, 0x92,
1773                0x1f, 0x37, 0xe6, 0x24,
1774            ],
1775            Elements::GejYIsOdd => [
1776                0xfe, 0x01, 0x06, 0xaf, 0xb9, 0xd9, 0xe2, 0x4f, 0xd4, 0xdb, 0xe5, 0x45, 0x11, 0xfe,
1777                0x27, 0x2f, 0x4d, 0xcb, 0x30, 0x7a, 0x0e, 0xa5, 0x6d, 0x59, 0x1c, 0xeb, 0x93, 0xab,
1778                0x4b, 0xf8, 0x87, 0x45,
1779            ],
1780            Elements::Generate => [
1781                0xdf, 0x44, 0xe1, 0x7d, 0x2a, 0x55, 0x9d, 0xd0, 0xa7, 0x03, 0x49, 0x54, 0xab, 0x33,
1782                0x37, 0x77, 0x78, 0xb1, 0x51, 0xf1, 0xcd, 0x1e, 0x4f, 0x9f, 0xd3, 0x1b, 0x36, 0x1d,
1783                0x34, 0xa8, 0xd9, 0x73,
1784            ],
1785            Elements::GenesisBlockHash => [
1786                0x00, 0x60, 0xb6, 0x0d, 0x02, 0xb1, 0x33, 0x60, 0x72, 0x84, 0x6a, 0xcf, 0xf4, 0x4d,
1787                0xd0, 0xf4, 0x34, 0x6c, 0x74, 0xa3, 0x5e, 0x7b, 0x56, 0x42, 0x3f, 0x95, 0x19, 0xc4,
1788                0x42, 0xd1, 0x5d, 0xaf,
1789            ],
1790            Elements::HashToCurve => [
1791                0x76, 0xf7, 0xca, 0x1d, 0xb9, 0x44, 0xee, 0x31, 0x5e, 0xd3, 0x62, 0xfe, 0xe0, 0x67,
1792                0x3c, 0x58, 0x94, 0xf8, 0x85, 0x3b, 0x44, 0x60, 0x70, 0x90, 0x1b, 0x85, 0x79, 0x01,
1793                0xf9, 0x49, 0x9d, 0x9b,
1794            ],
1795            Elements::High1 => [
1796                0xc3, 0x2d, 0x87, 0x7e, 0x67, 0x0d, 0x6c, 0x03, 0x7c, 0xb3, 0x35, 0x33, 0x28, 0x9e,
1797                0x19, 0xa7, 0x24, 0xc3, 0x68, 0xaa, 0x75, 0x51, 0xda, 0xa6, 0xd2, 0xda, 0xcc, 0xcd,
1798                0x8c, 0x95, 0xf4, 0xd0,
1799            ],
1800            Elements::High16 => [
1801                0x41, 0x64, 0xab, 0x6e, 0x2f, 0xf8, 0xee, 0xf6, 0x3c, 0x06, 0xc0, 0x80, 0xf1, 0xde,
1802                0xc6, 0x97, 0x0b, 0x4c, 0x5c, 0x31, 0xc0, 0x23, 0x05, 0xab, 0xcc, 0xd8, 0xed, 0x2c,
1803                0x5e, 0x1c, 0x45, 0xce,
1804            ],
1805            Elements::High32 => [
1806                0xd3, 0xa7, 0xce, 0x9c, 0xd5, 0xd5, 0xfb, 0x67, 0x9a, 0x98, 0xef, 0x57, 0xb8, 0x63,
1807                0x22, 0x77, 0x0c, 0xb6, 0x6f, 0xb6, 0xf0, 0x61, 0x6e, 0x16, 0x34, 0xcf, 0xa8, 0x4c,
1808                0x8f, 0x68, 0x09, 0xc6,
1809            ],
1810            Elements::High64 => [
1811                0x4a, 0xf9, 0x1f, 0xaf, 0x8e, 0x39, 0xf4, 0xda, 0x7c, 0x28, 0xa8, 0x79, 0x65, 0x94,
1812                0xa9, 0x22, 0x82, 0x13, 0xd7, 0x32, 0x3e, 0xea, 0x2c, 0xa6, 0x30, 0x75, 0x2c, 0xe4,
1813                0xc5, 0x7f, 0x16, 0xe1,
1814            ],
1815            Elements::High8 => [
1816                0xcb, 0xd7, 0x8d, 0x50, 0xaf, 0x77, 0x99, 0x85, 0x5a, 0xdc, 0x49, 0x03, 0xdb, 0xbe,
1817                0xfc, 0x13, 0x45, 0xd5, 0x14, 0x84, 0xf0, 0x3d, 0x3c, 0x75, 0x5c, 0xaa, 0xa5, 0xca,
1818                0xa9, 0x7d, 0x4a, 0x14,
1819            ],
1820            Elements::Increment16 => [
1821                0xdf, 0x27, 0x48, 0x88, 0xce, 0x4c, 0xeb, 0xdd, 0x57, 0x08, 0xb3, 0x8d, 0xc3, 0xdb,
1822                0xb1, 0x9c, 0xc2, 0xf0, 0x36, 0x4b, 0x24, 0x63, 0xe9, 0x9c, 0xf5, 0xaa, 0xb4, 0xf8,
1823                0xa2, 0x3e, 0xa5, 0x8a,
1824            ],
1825            Elements::Increment32 => [
1826                0x54, 0xf7, 0x57, 0xae, 0xa7, 0x6b, 0xc7, 0xa3, 0x9f, 0xc4, 0x3d, 0x19, 0xb8, 0xdd,
1827                0x56, 0x3a, 0x68, 0x07, 0xdf, 0x02, 0x77, 0xa5, 0x6f, 0xcb, 0x50, 0x10, 0x89, 0xce,
1828                0x7d, 0x06, 0x77, 0x4c,
1829            ],
1830            Elements::Increment64 => [
1831                0x79, 0xed, 0x5f, 0x77, 0x99, 0xfb, 0x09, 0xda, 0x51, 0x04, 0x29, 0xa2, 0x01, 0x28,
1832                0xbe, 0xd0, 0x91, 0xd8, 0x58, 0x76, 0x47, 0x07, 0x12, 0x85, 0xcd, 0xec, 0x3a, 0x0c,
1833                0x95, 0x70, 0x9e, 0x5b,
1834            ],
1835            Elements::Increment8 => [
1836                0x0c, 0x71, 0x7e, 0x84, 0xdf, 0x67, 0x82, 0x3f, 0x57, 0x41, 0xb3, 0xd5, 0x5d, 0xbe,
1837                0xb4, 0x72, 0x9c, 0x2b, 0xd6, 0x2f, 0x5d, 0x1d, 0xef, 0x3c, 0xab, 0xcc, 0xdd, 0x6c,
1838                0xb8, 0xdc, 0xb5, 0x6c,
1839            ],
1840            Elements::InputAmount => [
1841                0xdd, 0x65, 0xac, 0x32, 0xc8, 0x7d, 0x99, 0x6b, 0x40, 0x72, 0x00, 0xfe, 0xef, 0xc4,
1842                0x79, 0xa9, 0x11, 0x9c, 0x1f, 0x28, 0xca, 0xa4, 0x88, 0xb0, 0xaa, 0xc3, 0xac, 0xf5,
1843                0x93, 0x78, 0xd6, 0xba,
1844            ],
1845            Elements::InputAmountsHash => [
1846                0x2b, 0x4d, 0xf4, 0x7e, 0x75, 0x8f, 0xfe, 0x88, 0xe9, 0xcd, 0x5d, 0x39, 0x6d, 0xf3,
1847                0xd7, 0xf9, 0xec, 0x2f, 0xbd, 0x5a, 0x53, 0x95, 0xa6, 0xd8, 0xc1, 0xab, 0x70, 0x44,
1848                0x00, 0xc6, 0x4f, 0x70,
1849            ],
1850            Elements::InputAnnexHash => [
1851                0x0f, 0xd9, 0xe4, 0xc6, 0x31, 0x6b, 0x37, 0x28, 0x6e, 0x88, 0x54, 0x43, 0x0e, 0x7d,
1852                0x74, 0x18, 0x21, 0xdc, 0x89, 0x54, 0x4a, 0x3a, 0x59, 0xf0, 0x3d, 0xfa, 0x40, 0xe5,
1853                0x32, 0xb8, 0x10, 0x7f,
1854            ],
1855            Elements::InputAnnexesHash => [
1856                0xde, 0xd1, 0x52, 0x2e, 0xfa, 0x5a, 0x2b, 0x37, 0x61, 0x73, 0xe4, 0x40, 0xde, 0x22,
1857                0x7a, 0xd0, 0xc9, 0x2b, 0xe2, 0xed, 0xce, 0x7c, 0x23, 0xb5, 0x14, 0x80, 0xe5, 0x0a,
1858                0x77, 0xfc, 0x56, 0x4b,
1859            ],
1860            Elements::InputAsset => [
1861                0x87, 0x2b, 0x36, 0x53, 0xd6, 0x5a, 0xe7, 0xf9, 0x16, 0x6c, 0xbf, 0x70, 0xd4, 0xfd,
1862                0x31, 0x40, 0x47, 0x98, 0x88, 0x4d, 0x61, 0x1b, 0x64, 0x7f, 0xb9, 0xf4, 0xa3, 0x07,
1863                0xc4, 0x80, 0x11, 0xb8,
1864            ],
1865            Elements::InputHash => [
1866                0x33, 0x09, 0xbb, 0x46, 0xb3, 0x15, 0x8d, 0x23, 0x12, 0x4f, 0x8c, 0xed, 0xaa, 0xa1,
1867                0xed, 0x3b, 0x09, 0xa8, 0xae, 0xfe, 0x81, 0x21, 0x2e, 0x11, 0x33, 0x55, 0x23, 0xb6,
1868                0xb2, 0x07, 0xc5, 0x44,
1869            ],
1870            Elements::InputOutpointsHash => [
1871                0x14, 0x0a, 0x2b, 0xae, 0xad, 0x08, 0x3b, 0xaa, 0xc8, 0x06, 0x12, 0x8a, 0xb6, 0x49,
1872                0xe5, 0x2b, 0xbd, 0x3c, 0x64, 0x56, 0x70, 0x0c, 0xbc, 0xfc, 0x6d, 0xbb, 0x29, 0x59,
1873                0x17, 0x3a, 0x4d, 0xf2,
1874            ],
1875            Elements::InputPegin => [
1876                0xdb, 0x37, 0x6f, 0x4a, 0xe8, 0x4e, 0xc0, 0x51, 0xa4, 0x94, 0xd7, 0x66, 0x80, 0x39,
1877                0x72, 0x7b, 0x53, 0x35, 0x3b, 0xe5, 0xae, 0x04, 0x5b, 0xe7, 0x6c, 0x4b, 0x04, 0xda,
1878                0xbd, 0x5b, 0xbf, 0xbb,
1879            ],
1880            Elements::InputPrevOutpoint => [
1881                0x91, 0xf4, 0xd6, 0xec, 0x48, 0x4f, 0x60, 0xca, 0xe9, 0x29, 0x78, 0x58, 0xca, 0xc4,
1882                0x7d, 0xad, 0x50, 0xdb, 0x07, 0xdc, 0x1f, 0x93, 0x7a, 0xc6, 0x14, 0x4c, 0x9c, 0xb4,
1883                0xa9, 0xef, 0x79, 0xd2,
1884            ],
1885            Elements::InputScriptHash => [
1886                0xc3, 0x16, 0xdf, 0x21, 0x77, 0x8e, 0x62, 0x41, 0x05, 0xca, 0x59, 0x90, 0x4b, 0x92,
1887                0x08, 0xe2, 0xd4, 0x23, 0x22, 0x8b, 0x3e, 0xb1, 0xcf, 0x68, 0xb8, 0xec, 0xa4, 0x7b,
1888                0xbc, 0x7b, 0x2f, 0xf3,
1889            ],
1890            Elements::InputScriptSigHash => [
1891                0x94, 0x1f, 0x2b, 0x4f, 0x3b, 0x7f, 0x20, 0x97, 0xd6, 0xea, 0x00, 0xe9, 0x7c, 0x1e,
1892                0x2b, 0xa0, 0x1c, 0xb2, 0x64, 0x87, 0xc5, 0xd2, 0xf4, 0x72, 0x37, 0x38, 0xb3, 0x7c,
1893                0x73, 0x2c, 0x05, 0xc4,
1894            ],
1895            Elements::InputScriptSigsHash => [
1896                0x6c, 0x74, 0x81, 0x42, 0x01, 0x24, 0xb6, 0x64, 0x5d, 0x32, 0xff, 0x9b, 0x45, 0x4a,
1897                0x1c, 0x92, 0xc6, 0x71, 0x86, 0x41, 0x0e, 0x23, 0xcf, 0x60, 0x99, 0x15, 0xdf, 0x90,
1898                0x72, 0x12, 0x0f, 0xc6,
1899            ],
1900            Elements::InputScriptsHash => [
1901                0xdc, 0x13, 0x51, 0x9e, 0x75, 0x3e, 0x58, 0x75, 0x3c, 0x70, 0x98, 0x85, 0x41, 0xad,
1902                0x8a, 0x0b, 0xb5, 0x88, 0x8d, 0x08, 0x46, 0xe3, 0x5e, 0x4d, 0x42, 0x73, 0xf6, 0x56,
1903                0x85, 0x32, 0x2a, 0xe9,
1904            ],
1905            Elements::InputSequence => [
1906                0x3c, 0x6e, 0x4a, 0x3c, 0x21, 0xce, 0xd5, 0x24, 0x73, 0x6c, 0x54, 0x5c, 0x20, 0xe4,
1907                0xe2, 0xde, 0xf7, 0x67, 0x8f, 0x08, 0x4c, 0xd1, 0x2b, 0xcd, 0x65, 0x06, 0xa5, 0x20,
1908                0x0b, 0x5c, 0x17, 0x38,
1909            ],
1910            Elements::InputSequencesHash => [
1911                0xc8, 0x88, 0xc8, 0x73, 0x30, 0x2b, 0x92, 0xb0, 0x0f, 0x20, 0x68, 0x52, 0xc9, 0xea,
1912                0xef, 0x00, 0x0b, 0x40, 0x10, 0x9a, 0x53, 0xdd, 0x68, 0x6a, 0x53, 0xf1, 0x1d, 0xb5,
1913                0x07, 0x4d, 0x99, 0x37,
1914            ],
1915            Elements::InputUtxoHash => [
1916                0x85, 0x03, 0xd0, 0x52, 0x6b, 0xa9, 0x5a, 0x8f, 0xba, 0x8c, 0xa1, 0x35, 0x1c, 0x79,
1917                0x91, 0xc2, 0xa3, 0x86, 0xb7, 0x2f, 0xa8, 0x14, 0x31, 0xea, 0xdb, 0xab, 0x62, 0xcc,
1918                0x1f, 0x5d, 0xc5, 0x18,
1919            ],
1920            Elements::InputUtxosHash => [
1921                0x9c, 0x48, 0xab, 0x31, 0xc0, 0x50, 0xed, 0x06, 0x5a, 0xed, 0x51, 0x68, 0x66, 0xc1,
1922                0x6c, 0x1b, 0x96, 0xc1, 0x95, 0xea, 0x8e, 0x18, 0xb0, 0x24, 0xbf, 0xc0, 0xb8, 0x17,
1923                0x58, 0x49, 0xf0, 0x4e,
1924            ],
1925            Elements::InputsHash => [
1926                0x52, 0x3c, 0xd7, 0x1c, 0x57, 0x89, 0x88, 0x2f, 0x83, 0x75, 0xa5, 0xa5, 0x45, 0x60,
1927                0xde, 0xf8, 0x46, 0x3d, 0x1c, 0x51, 0xe5, 0x6b, 0x7e, 0x11, 0x26, 0x93, 0xe7, 0x7b,
1928                0x84, 0x4f, 0x47, 0x40,
1929            ],
1930            Elements::InternalKey => [
1931                0x9b, 0x74, 0x2e, 0x47, 0x1b, 0x0e, 0x59, 0x1a, 0x97, 0x2b, 0x0d, 0x44, 0x21, 0xf9,
1932                0xc9, 0x65, 0x93, 0x97, 0xf5, 0xda, 0xba, 0x2c, 0x14, 0xda, 0xc6, 0x2c, 0x4a, 0x33,
1933                0x9c, 0xc3, 0xe7, 0xec,
1934            ],
1935            Elements::IsOne16 => [
1936                0x84, 0x35, 0x87, 0x9c, 0xcb, 0x86, 0x44, 0x19, 0x8d, 0xcb, 0x9a, 0x0c, 0xd7, 0x35,
1937                0x46, 0xd7, 0x01, 0xfd, 0xd5, 0xa4, 0xc4, 0x43, 0x23, 0xf5, 0x63, 0x97, 0x15, 0x99,
1938                0xc3, 0x7d, 0x16, 0xfb,
1939            ],
1940            Elements::IsOne32 => [
1941                0xdd, 0xfb, 0xd9, 0xf0, 0xa2, 0xe6, 0x7c, 0x07, 0xde, 0xdb, 0x89, 0xe8, 0x96, 0xb6,
1942                0xc4, 0xf7, 0xd4, 0x5c, 0x51, 0x47, 0xee, 0xd0, 0x61, 0x4e, 0x4c, 0xe7, 0xd0, 0x87,
1943                0x69, 0xaf, 0xf8, 0x2d,
1944            ],
1945            Elements::IsOne64 => [
1946                0x35, 0xc5, 0x25, 0x54, 0x8e, 0x48, 0xee, 0xa0, 0xf7, 0x7b, 0x3b, 0xf9, 0x7a, 0xb6,
1947                0x7a, 0x1f, 0xfe, 0x8f, 0xb0, 0x94, 0xed, 0xe3, 0x32, 0x5e, 0x40, 0x64, 0xb1, 0x65,
1948                0x9c, 0x6d, 0x07, 0x65,
1949            ],
1950            Elements::IsOne8 => [
1951                0x0a, 0xba, 0x9e, 0x57, 0x6e, 0x64, 0xd2, 0x80, 0x4c, 0x8a, 0xc4, 0x68, 0x2b, 0xbb,
1952                0xa5, 0x39, 0x0e, 0xbc, 0x31, 0xa6, 0xe3, 0xe2, 0x65, 0x0f, 0x92, 0x19, 0x23, 0x5d,
1953                0xf4, 0xa6, 0xec, 0xbb,
1954            ],
1955            Elements::IsZero16 => [
1956                0xa2, 0x5a, 0xbd, 0x9c, 0xd2, 0xa4, 0x07, 0x0c, 0x74, 0x2e, 0xf8, 0xde, 0xb0, 0x68,
1957                0x29, 0x22, 0x46, 0x03, 0x2b, 0x96, 0xa5, 0x17, 0x22, 0x3b, 0x12, 0x8c, 0xfc, 0x12,
1958                0xd2, 0x15, 0xc5, 0xba,
1959            ],
1960            Elements::IsZero32 => [
1961                0x61, 0x2a, 0x48, 0x0c, 0xed, 0x6a, 0x79, 0xda, 0x61, 0x19, 0x54, 0x6e, 0x05, 0x6b,
1962                0x8d, 0xf9, 0xfa, 0x95, 0xd1, 0x12, 0x4b, 0x96, 0xd6, 0x01, 0xe1, 0xd3, 0xea, 0x91,
1963                0x8c, 0xc5, 0x60, 0x69,
1964            ],
1965            Elements::IsZero64 => [
1966                0x18, 0xe8, 0xe1, 0x77, 0x6b, 0xa0, 0x80, 0xcc, 0xd3, 0xe1, 0xd6, 0x0c, 0xb7, 0x53,
1967                0x41, 0x45, 0x36, 0xbf, 0x70, 0xdf, 0x18, 0x5f, 0x72, 0xc9, 0xe0, 0x70, 0x79, 0x6f,
1968                0x4c, 0x63, 0xcc, 0x71,
1969            ],
1970            Elements::IsZero8 => [
1971                0xb4, 0xba, 0xa5, 0x09, 0x38, 0x10, 0x84, 0x26, 0x74, 0x0d, 0x82, 0xcf, 0x12, 0x11,
1972                0xe0, 0xed, 0x12, 0x6d, 0xe3, 0xb7, 0x6b, 0x8d, 0x25, 0x9c, 0x50, 0xad, 0x4b, 0x8f,
1973                0xca, 0xb1, 0x0a, 0xb6,
1974            ],
1975            Elements::Issuance => [
1976                0x5c, 0x64, 0x63, 0x12, 0xc1, 0x69, 0xc6, 0x80, 0x27, 0x97, 0x9e, 0x1b, 0xc3, 0x26,
1977                0xc5, 0xdc, 0x95, 0xe5, 0xc5, 0x16, 0x8d, 0x00, 0xd9, 0x8e, 0x9d, 0x50, 0x4a, 0x7c,
1978                0xde, 0x21, 0xd7, 0x68,
1979            ],
1980            Elements::IssuanceAsset => [
1981                0x69, 0x0b, 0xf9, 0x18, 0xe1, 0x52, 0x77, 0x56, 0xcf, 0xbb, 0xf5, 0x1c, 0x83, 0x13,
1982                0x62, 0x14, 0x37, 0x56, 0xd5, 0x2d, 0x04, 0xe1, 0x29, 0x4f, 0x12, 0x64, 0x95, 0x0c,
1983                0x62, 0x67, 0xe5, 0xc9,
1984            ],
1985            Elements::IssuanceAssetAmount => [
1986                0x83, 0x60, 0x51, 0x46, 0xff, 0x26, 0xa4, 0x9c, 0xa1, 0x6f, 0x1c, 0x4a, 0x6e, 0x0c,
1987                0xe0, 0xb7, 0xc2, 0x14, 0xdf, 0x12, 0xc3, 0x77, 0xf5, 0x22, 0x52, 0x3d, 0xeb, 0x6d,
1988                0x5d, 0x0e, 0xe4, 0x4d,
1989            ],
1990            Elements::IssuanceAssetAmountsHash => [
1991                0x70, 0xf1, 0x1c, 0x3b, 0x3b, 0x5d, 0x16, 0x57, 0xd3, 0xb7, 0xc7, 0xee, 0xec, 0x85,
1992                0x0c, 0x30, 0xa3, 0x2e, 0xa9, 0x6a, 0xa3, 0x64, 0x26, 0xfa, 0x30, 0xeb, 0xf5, 0x49,
1993                0x98, 0x51, 0xa8, 0x80,
1994            ],
1995            Elements::IssuanceAssetProof => [
1996                0x0b, 0x06, 0x1f, 0x9f, 0x67, 0x0c, 0x05, 0xdc, 0x39, 0xf4, 0x38, 0x31, 0x3c, 0x13,
1997                0x79, 0xd9, 0xbf, 0x63, 0xf4, 0x4f, 0x98, 0x76, 0xb9, 0x56, 0x69, 0x3b, 0x41, 0xb7,
1998                0xf9, 0x4c, 0x6c, 0x9d,
1999            ],
2000            Elements::IssuanceBlindingEntropyHash => [
2001                0xbf, 0xb6, 0xa9, 0x34, 0x44, 0xe2, 0xa0, 0xb3, 0xfb, 0x7c, 0x13, 0xd1, 0x58, 0x9a,
2002                0x78, 0x7b, 0x66, 0xe8, 0x4b, 0x69, 0xb6, 0x27, 0x4c, 0xea, 0x20, 0xad, 0x99, 0x99,
2003                0xeb, 0x8c, 0xa6, 0x7c,
2004            ],
2005            Elements::IssuanceEntropy => [
2006                0x6d, 0xdf, 0x99, 0xf2, 0x8c, 0x70, 0x19, 0x8d, 0x65, 0x41, 0x7a, 0x83, 0x60, 0x74,
2007                0xf1, 0xb9, 0xb6, 0x10, 0xf2, 0x1f, 0x51, 0x19, 0xfd, 0x55, 0x0f, 0x60, 0xb6, 0xf8,
2008                0xe9, 0x95, 0xbb, 0xf3,
2009            ],
2010            Elements::IssuanceHash => [
2011                0x6e, 0x9f, 0x8a, 0xe8, 0xc4, 0x5b, 0xfb, 0x7e, 0x4e, 0x0c, 0xf2, 0xd0, 0x0f, 0x66,
2012                0x83, 0x2b, 0x47, 0x9d, 0xe7, 0x58, 0x2c, 0xdb, 0xc8, 0x51, 0xd0, 0xb3, 0x23, 0x0f,
2013                0xdf, 0xbb, 0xb7, 0x8d,
2014            ],
2015            Elements::IssuanceRangeProofsHash => [
2016                0x7e, 0x97, 0xf5, 0x19, 0x53, 0x48, 0x31, 0xc7, 0x7a, 0xcf, 0x73, 0xa2, 0x0f, 0xd5,
2017                0x3c, 0xb3, 0x1d, 0x1d, 0x15, 0x6c, 0x9a, 0xcb, 0xbf, 0x87, 0x3d, 0x14, 0x92, 0xd6,
2018                0x0d, 0x13, 0x67, 0xd8,
2019            ],
2020            Elements::IssuanceToken => [
2021                0xbc, 0x2c, 0xb7, 0xe9, 0x64, 0xb2, 0xa2, 0xae, 0xd7, 0x9b, 0x75, 0xc5, 0xf4, 0x40,
2022                0x8f, 0xe8, 0x4a, 0x6d, 0xc9, 0xb9, 0xe8, 0xcd, 0x2c, 0x69, 0x4d, 0x57, 0xc5, 0xf9,
2023                0xb6, 0x12, 0x05, 0xb9,
2024            ],
2025            Elements::IssuanceTokenAmount => [
2026                0x7e, 0x10, 0x64, 0x64, 0xa1, 0x3b, 0x67, 0x64, 0xce, 0x74, 0xd3, 0xfe, 0x6b, 0xa1,
2027                0xcb, 0xd5, 0xf4, 0xae, 0xb8, 0x6b, 0xbb, 0xdf, 0x58, 0x88, 0xdd, 0xf9, 0x90, 0x1d,
2028                0xd8, 0xb6, 0x19, 0xaa,
2029            ],
2030            Elements::IssuanceTokenAmountsHash => [
2031                0x94, 0xb5, 0xa4, 0x59, 0x5b, 0x67, 0x4d, 0xbf, 0xc4, 0x9c, 0x4e, 0x8e, 0xa1, 0xa9,
2032                0xab, 0xc9, 0x3e, 0xd2, 0xf7, 0x70, 0x7c, 0x42, 0x12, 0xa3, 0x2b, 0x5b, 0x86, 0xac,
2033                0x13, 0x18, 0xc9, 0xde,
2034            ],
2035            Elements::IssuanceTokenProof => [
2036                0x46, 0xed, 0x52, 0x75, 0xf5, 0x5a, 0xb3, 0x41, 0xf5, 0x7c, 0x35, 0x19, 0xff, 0xed,
2037                0xf4, 0xe3, 0x7f, 0x3f, 0x59, 0xc9, 0x7c, 0xe9, 0xb8, 0xe1, 0x7f, 0xff, 0xae, 0x16,
2038                0xc6, 0xcc, 0x1c, 0x0e,
2039            ],
2040            Elements::IssuancesHash => [
2041                0x58, 0x65, 0x9f, 0x3f, 0x7e, 0x01, 0x30, 0xc4, 0xfc, 0x91, 0x6f, 0x49, 0xbc, 0x32,
2042                0xea, 0xa0, 0x88, 0x3a, 0xcb, 0x90, 0x22, 0xfc, 0xad, 0x5e, 0x78, 0x05, 0x83, 0x9a,
2043                0x99, 0xe5, 0x0c, 0xf9,
2044            ],
2045            Elements::LbtcAsset => [
2046                0x2a, 0xf7, 0xf7, 0x3a, 0xe3, 0xfb, 0xbf, 0xa2, 0xd2, 0x3a, 0x87, 0x74, 0xe6, 0xe3,
2047                0xca, 0x09, 0x32, 0x54, 0xda, 0x2f, 0xd2, 0xa9, 0xf3, 0x97, 0xa6, 0xae, 0x0a, 0x30,
2048                0xbb, 0x48, 0xf0, 0xd7,
2049            ],
2050            Elements::Le16 => [
2051                0x63, 0xda, 0x72, 0x7c, 0xcb, 0x4c, 0x6a, 0x9d, 0x4e, 0x00, 0x09, 0x64, 0xe7, 0x63,
2052                0xbf, 0xf9, 0x34, 0xea, 0xaf, 0xd0, 0x44, 0x28, 0x7e, 0x12, 0x68, 0xd0, 0x7e, 0xcd,
2053                0xfd, 0xe2, 0x07, 0xe1,
2054            ],
2055            Elements::Le32 => [
2056                0xde, 0xe2, 0x9a, 0x91, 0x65, 0x6d, 0x7a, 0xe7, 0x3d, 0xf4, 0x95, 0x6f, 0xd8, 0xa2,
2057                0xc6, 0xb6, 0x27, 0xaa, 0xb5, 0x1c, 0x11, 0x29, 0xf9, 0xfe, 0x7f, 0x6e, 0xd3, 0xe3,
2058                0x47, 0x92, 0xc7, 0x62,
2059            ],
2060            Elements::Le64 => [
2061                0x01, 0xc5, 0x5d, 0xf7, 0xd4, 0x46, 0x59, 0x66, 0x65, 0x9d, 0xdf, 0xc9, 0x4b, 0x36,
2062                0xd0, 0x33, 0x24, 0x2c, 0x2e, 0xc5, 0x93, 0xce, 0xe1, 0x21, 0x22, 0x44, 0x07, 0x75,
2063                0x66, 0xed, 0x01, 0x5f,
2064            ],
2065            Elements::Le8 => [
2066                0x0f, 0xb7, 0x2d, 0x9f, 0x8e, 0xe2, 0x37, 0x0a, 0xba, 0x55, 0x66, 0x3a, 0x48, 0x99,
2067                0x16, 0x2e, 0x40, 0xca, 0x55, 0x14, 0x71, 0x3e, 0xfb, 0x25, 0xe4, 0xa8, 0x9e, 0x2a,
2068                0x10, 0x4b, 0x34, 0xdb,
2069            ],
2070            Elements::LeftExtend16_32 => [
2071                0xdc, 0xf4, 0x2b, 0x65, 0x42, 0xf6, 0xd4, 0x1c, 0xb7, 0xb5, 0x0e, 0x7c, 0x77, 0x2f,
2072                0x3c, 0x7f, 0x6e, 0x43, 0x22, 0x32, 0xf2, 0xba, 0x20, 0x79, 0xb3, 0x86, 0xa0, 0x5d,
2073                0x7b, 0x46, 0x6a, 0xdd,
2074            ],
2075            Elements::LeftExtend16_64 => [
2076                0x2e, 0xee, 0x48, 0xa9, 0x22, 0x37, 0x94, 0x7c, 0x1a, 0x51, 0x7d, 0xf9, 0x95, 0xf4,
2077                0x4f, 0x1d, 0xfe, 0xf2, 0x0d, 0xdb, 0x4e, 0x9b, 0x53, 0x0b, 0x22, 0xd1, 0x8a, 0x0a,
2078                0x7f, 0xd6, 0x28, 0xaa,
2079            ],
2080            Elements::LeftExtend1_16 => [
2081                0x9a, 0x48, 0xa4, 0x77, 0x8e, 0x7c, 0x3c, 0x28, 0x5a, 0xb6, 0x53, 0x29, 0xd1, 0xcc,
2082                0xc4, 0x99, 0x9d, 0x2d, 0x19, 0x4e, 0x00, 0x5b, 0xd7, 0x94, 0x69, 0x49, 0x53, 0x3d,
2083                0x8c, 0xba, 0x80, 0x6c,
2084            ],
2085            Elements::LeftExtend1_32 => [
2086                0xda, 0xb6, 0xa5, 0x33, 0xcb, 0xcb, 0xe8, 0x36, 0x2c, 0xf1, 0xd5, 0xa1, 0x6e, 0xa3,
2087                0x7c, 0xbc, 0x7e, 0xdc, 0x7f, 0xc8, 0xa9, 0x42, 0x85, 0x71, 0xe1, 0x71, 0xec, 0x6e,
2088                0xe4, 0x4d, 0x08, 0x00,
2089            ],
2090            Elements::LeftExtend1_64 => [
2091                0x11, 0x0e, 0x5c, 0x1e, 0xf0, 0xb4, 0x69, 0xa7, 0x63, 0x85, 0x70, 0xda, 0x94, 0x4d,
2092                0x23, 0x2e, 0x0f, 0x28, 0xc4, 0x61, 0x51, 0xa2, 0x25, 0x35, 0x7d, 0xe3, 0xe9, 0x04,
2093                0x57, 0xa8, 0x8e, 0xa2,
2094            ],
2095            Elements::LeftExtend1_8 => [
2096                0x5a, 0x83, 0x1c, 0xa9, 0x96, 0x21, 0x51, 0x7a, 0x2b, 0x35, 0x4e, 0x5c, 0xac, 0x38,
2097                0xbc, 0x3a, 0x30, 0xc4, 0x00, 0x1f, 0x20, 0xd2, 0x5d, 0x77, 0x97, 0xad, 0xdc, 0xac,
2098                0x5d, 0xa8, 0x61, 0x06,
2099            ],
2100            Elements::LeftExtend32_64 => [
2101                0x84, 0xfc, 0xc6, 0x9b, 0xa1, 0xdb, 0x50, 0xdb, 0xd5, 0x36, 0x3c, 0xf2, 0x77, 0x79,
2102                0x57, 0x60, 0x1d, 0xe2, 0x56, 0x8a, 0xdf, 0x07, 0xaf, 0x41, 0x61, 0xde, 0xbb, 0x1e,
2103                0x5e, 0x37, 0x31, 0x0a,
2104            ],
2105            Elements::LeftExtend8_16 => [
2106                0xfe, 0xa1, 0xf2, 0x5a, 0x82, 0xfd, 0xf6, 0xf8, 0x66, 0x9c, 0xc4, 0x0f, 0xbb, 0x8e,
2107                0x54, 0xa9, 0x26, 0x58, 0xbf, 0xab, 0x94, 0xeb, 0x08, 0x2f, 0x71, 0x7b, 0xa2, 0x65,
2108                0xb5, 0xd8, 0x44, 0xb4,
2109            ],
2110            Elements::LeftExtend8_32 => [
2111                0x09, 0xd7, 0x03, 0xca, 0x46, 0xf7, 0x5d, 0x05, 0x1a, 0x93, 0xd0, 0xe8, 0xa2, 0xaf,
2112                0x05, 0x01, 0xa3, 0x8e, 0x84, 0x86, 0x83, 0xef, 0x10, 0x9c, 0x1f, 0xb4, 0xb5, 0xbe,
2113                0x20, 0xe6, 0x31, 0x5d,
2114            ],
2115            Elements::LeftExtend8_64 => [
2116                0xd3, 0xda, 0xfc, 0xbd, 0xab, 0x69, 0xa2, 0xbb, 0x32, 0x0f, 0x8d, 0x23, 0x0c, 0xef,
2117                0xd0, 0x9c, 0x27, 0xa1, 0x54, 0xc5, 0x1e, 0x7e, 0x5c, 0xd5, 0x33, 0x4e, 0xaf, 0xed,
2118                0x19, 0xe2, 0x0d, 0xf4,
2119            ],
2120            Elements::LeftPadHigh16_32 => [
2121                0x88, 0x8c, 0x7e, 0x0a, 0xb0, 0x03, 0x14, 0x75, 0xc5, 0x14, 0xf9, 0xb3, 0x7c, 0x81,
2122                0xf4, 0x5a, 0x47, 0x31, 0x49, 0x84, 0xe5, 0x02, 0x75, 0x08, 0xdd, 0xc5, 0xeb, 0x8d,
2123                0x8d, 0x10, 0xbe, 0xb9,
2124            ],
2125            Elements::LeftPadHigh16_64 => [
2126                0x52, 0x6b, 0x35, 0x05, 0x45, 0x01, 0x36, 0xd6, 0x81, 0xa5, 0x0b, 0x4b, 0xde, 0x4f,
2127                0xa6, 0x12, 0xda, 0x9d, 0x69, 0xbd, 0x08, 0x17, 0x0e, 0xa3, 0x2d, 0x0a, 0x26, 0x51,
2128                0x11, 0x50, 0x72, 0xeb,
2129            ],
2130            Elements::LeftPadHigh1_16 => [
2131                0x93, 0xae, 0xd6, 0xf6, 0x87, 0x50, 0x77, 0x4b, 0x2d, 0xbf, 0x83, 0x14, 0xca, 0xde,
2132                0xbe, 0x5a, 0x41, 0x52, 0x43, 0xfb, 0xdf, 0x7c, 0x2e, 0xea, 0x8b, 0x22, 0x3d, 0xf3,
2133                0x26, 0x1e, 0x3b, 0xdb,
2134            ],
2135            Elements::LeftPadHigh1_32 => [
2136                0x00, 0x82, 0x98, 0xf8, 0x2f, 0xb6, 0xcf, 0x37, 0xe9, 0xdc, 0x70, 0x3e, 0xa4, 0xf9,
2137                0x49, 0x56, 0x5c, 0x29, 0x65, 0xa7, 0xc7, 0xf4, 0xfa, 0x22, 0xf5, 0x54, 0x56, 0x42,
2138                0x34, 0x08, 0xa3, 0xab,
2139            ],
2140            Elements::LeftPadHigh1_64 => [
2141                0x2b, 0x45, 0x4e, 0xbd, 0x79, 0x1e, 0xc7, 0xda, 0xce, 0xdc, 0xb8, 0x6c, 0x69, 0xd0,
2142                0x26, 0x79, 0x4a, 0x5d, 0xc3, 0x72, 0x52, 0x61, 0xe7, 0xdc, 0x16, 0x50, 0xcc, 0x88,
2143                0x81, 0x17, 0xfc, 0x4f,
2144            ],
2145            Elements::LeftPadHigh1_8 => [
2146                0x6c, 0x27, 0x7c, 0x4c, 0xd0, 0x53, 0xdd, 0x35, 0x02, 0xdb, 0xe0, 0xbb, 0xc1, 0x4e,
2147                0xb0, 0xb3, 0x6a, 0x20, 0x1a, 0xbe, 0xf3, 0xb1, 0x74, 0xb0, 0xeb, 0xfe, 0x05, 0x20,
2148                0x18, 0xb6, 0x7e, 0x67,
2149            ],
2150            Elements::LeftPadHigh32_64 => [
2151                0x5d, 0x41, 0x22, 0x1c, 0xf6, 0x15, 0x82, 0x97, 0xb0, 0x6c, 0x19, 0x57, 0x11, 0x2c,
2152                0x0d, 0x12, 0xf3, 0xeb, 0x91, 0x7a, 0x2f, 0x50, 0x9a, 0x53, 0x9d, 0x5c, 0x9b, 0x79,
2153                0x10, 0x21, 0x9b, 0x65,
2154            ],
2155            Elements::LeftPadHigh8_16 => [
2156                0x21, 0x78, 0xdc, 0x76, 0xc0, 0x4c, 0x79, 0xd9, 0x18, 0x15, 0xd3, 0x8c, 0x96, 0x7f,
2157                0x34, 0x21, 0x3f, 0xfc, 0xc6, 0xc5, 0xf2, 0x43, 0xc9, 0x56, 0x29, 0x73, 0xf0, 0x90,
2158                0xca, 0x5c, 0xae, 0xfa,
2159            ],
2160            Elements::LeftPadHigh8_32 => [
2161                0xa4, 0xe8, 0x6b, 0x53, 0xe5, 0xd0, 0x0f, 0xaf, 0x0b, 0x3e, 0x9d, 0x53, 0x20, 0x2a,
2162                0xf7, 0x73, 0x8d, 0xcb, 0x88, 0x87, 0xa1, 0x8d, 0xfe, 0xe5, 0xbe, 0x34, 0xc4, 0x97,
2163                0x69, 0x8c, 0xa6, 0xb7,
2164            ],
2165            Elements::LeftPadHigh8_64 => [
2166                0xc8, 0x43, 0xa7, 0x2c, 0x41, 0x17, 0x0f, 0x40, 0x34, 0x33, 0xc4, 0x36, 0xa3, 0x9b,
2167                0x05, 0xcf, 0x19, 0x3c, 0x27, 0xd8, 0xbe, 0x35, 0x30, 0xf9, 0xb9, 0x4e, 0x42, 0xd7,
2168                0x63, 0x00, 0x3d, 0x54,
2169            ],
2170            Elements::LeftPadLow16_32 => [
2171                0x21, 0x53, 0x7f, 0x7d, 0x8f, 0x97, 0xf2, 0x20, 0x3c, 0xcc, 0xb0, 0x35, 0xef, 0x1d,
2172                0x46, 0x28, 0x9e, 0xe8, 0xaa, 0x50, 0xf0, 0x23, 0x60, 0x77, 0xd0, 0xd0, 0xb2, 0x10,
2173                0x70, 0x04, 0x40, 0xa1,
2174            ],
2175            Elements::LeftPadLow16_64 => [
2176                0x6b, 0x2e, 0xa9, 0x63, 0x0c, 0x5d, 0xde, 0x03, 0x7a, 0xab, 0x2b, 0xf7, 0x33, 0x21,
2177                0x9b, 0x99, 0xc7, 0xed, 0xc2, 0xec, 0xed, 0xb9, 0xa0, 0x3a, 0xdf, 0xd1, 0x69, 0x43,
2178                0x0b, 0x08, 0xbb, 0x9c,
2179            ],
2180            Elements::LeftPadLow1_16 => [
2181                0x4a, 0xa4, 0x05, 0x20, 0xfa, 0xed, 0x72, 0xe6, 0xe9, 0xbe, 0x3b, 0xe6, 0x93, 0x0f,
2182                0x1e, 0x32, 0xb0, 0xb1, 0x82, 0xc4, 0x32, 0x7a, 0xda, 0x94, 0xa7, 0x1f, 0x00, 0x6d,
2183                0x14, 0x90, 0x15, 0xf9,
2184            ],
2185            Elements::LeftPadLow1_32 => [
2186                0xcf, 0xb4, 0x75, 0x3b, 0xb9, 0xba, 0x36, 0x21, 0xba, 0x09, 0x37, 0x82, 0x5f, 0xad,
2187                0xe6, 0x43, 0x09, 0x8e, 0x38, 0x5e, 0xd6, 0x8e, 0xfb, 0x16, 0xff, 0x58, 0xec, 0xf3,
2188                0x65, 0xd7, 0xe5, 0xe2,
2189            ],
2190            Elements::LeftPadLow1_64 => [
2191                0xe6, 0xf1, 0xc0, 0x9b, 0x5f, 0xe1, 0x26, 0xd0, 0xea, 0x86, 0xe7, 0xbf, 0xc0, 0xb2,
2192                0x8e, 0x84, 0x9f, 0x8f, 0x7e, 0xfd, 0x31, 0x06, 0x4e, 0xa4, 0xfd, 0x1c, 0xca, 0x07,
2193                0x1b, 0x45, 0xdb, 0x93,
2194            ],
2195            Elements::LeftPadLow1_8 => [
2196                0xdc, 0x5a, 0x47, 0xf8, 0xd7, 0x77, 0x65, 0xc9, 0x94, 0xcb, 0xe8, 0x6a, 0xae, 0x44,
2197                0xa9, 0xc5, 0xff, 0x2e, 0xbc, 0x38, 0x10, 0xd7, 0x9c, 0xd8, 0x3b, 0xd2, 0xc4, 0x09,
2198                0x8c, 0x76, 0x2b, 0xf5,
2199            ],
2200            Elements::LeftPadLow32_64 => [
2201                0x2d, 0x88, 0xe4, 0xd0, 0x1e, 0x01, 0x08, 0xc0, 0xd6, 0x88, 0x0f, 0x3c, 0xe8, 0x48,
2202                0x2b, 0xb0, 0x95, 0x1f, 0x2b, 0x3f, 0xc5, 0xdf, 0x4b, 0x1a, 0xdb, 0x18, 0x4a, 0x1b,
2203                0xfd, 0x1f, 0x64, 0x65,
2204            ],
2205            Elements::LeftPadLow8_16 => [
2206                0xac, 0x1a, 0x4c, 0x97, 0x83, 0xe4, 0xdb, 0xed, 0x27, 0x00, 0xeb, 0x29, 0x52, 0xe3,
2207                0x06, 0x2a, 0x5a, 0x72, 0x71, 0x2f, 0x82, 0x15, 0x98, 0x61, 0xb0, 0x8e, 0x67, 0xef,
2208                0x4a, 0x71, 0xf5, 0xf2,
2209            ],
2210            Elements::LeftPadLow8_32 => [
2211                0x3d, 0xa5, 0xf1, 0xa8, 0xc9, 0x78, 0x19, 0xae, 0x7e, 0x10, 0xb9, 0x36, 0x4f, 0xf8,
2212                0x49, 0x96, 0xd0, 0xd7, 0x3e, 0x69, 0x8a, 0x49, 0xda, 0x69, 0x1f, 0x69, 0xa2, 0x73,
2213                0x25, 0x42, 0x01, 0xcd,
2214            ],
2215            Elements::LeftPadLow8_64 => [
2216                0x25, 0xbc, 0x18, 0xd4, 0x9f, 0x93, 0x40, 0x72, 0x27, 0x7d, 0x3f, 0x61, 0x3b, 0xf1,
2217                0x6c, 0x11, 0x8d, 0xf1, 0x97, 0xbc, 0x92, 0x87, 0x2d, 0x2a, 0xff, 0xe4, 0x17, 0xad,
2218                0xea, 0xaf, 0x1a, 0x85,
2219            ],
2220            Elements::LeftRotate16 => [
2221                0x88, 0xc1, 0x23, 0x37, 0xcd, 0x75, 0x4f, 0x83, 0x80, 0x98, 0x6d, 0x86, 0xfe, 0x3a,
2222                0x89, 0xe2, 0x62, 0x74, 0x66, 0x53, 0xe1, 0xba, 0xdd, 0x9c, 0xc9, 0xb4, 0x76, 0x45,
2223                0xfe, 0x57, 0x19, 0x5a,
2224            ],
2225            Elements::LeftRotate32 => [
2226                0x39, 0x81, 0x6c, 0xcd, 0x9e, 0x9c, 0xf1, 0x19, 0x1f, 0x06, 0x5d, 0x2e, 0xb7, 0xa7,
2227                0xfb, 0x83, 0x82, 0x8d, 0x91, 0xec, 0x7d, 0x99, 0x77, 0xa1, 0xfc, 0x70, 0xbe, 0x9b,
2228                0x31, 0xa4, 0x68, 0xb9,
2229            ],
2230            Elements::LeftRotate64 => [
2231                0x8b, 0x23, 0x55, 0xc3, 0x1e, 0x3b, 0x61, 0x4b, 0xd4, 0xb4, 0x1c, 0x3e, 0xcf, 0x27,
2232                0x74, 0x24, 0xd0, 0x26, 0x76, 0x6b, 0x37, 0xbc, 0x6c, 0x10, 0x56, 0x21, 0xf4, 0xf6,
2233                0xa1, 0x6f, 0x9b, 0xdf,
2234            ],
2235            Elements::LeftRotate8 => [
2236                0x9e, 0x96, 0x6e, 0x88, 0x0c, 0x6b, 0x0c, 0x48, 0x3c, 0x90, 0xbe, 0xee, 0xd7, 0xc5,
2237                0x73, 0x7c, 0xa5, 0xf3, 0xfa, 0xcf, 0x85, 0xaa, 0xb3, 0xd5, 0x31, 0xad, 0x34, 0xbd,
2238                0x7b, 0x1a, 0x9b, 0x68,
2239            ],
2240            Elements::LeftShift16 => [
2241                0xb0, 0x53, 0x60, 0x18, 0x4d, 0x06, 0x02, 0xb5, 0x81, 0x40, 0x5e, 0x32, 0x96, 0x0b,
2242                0x31, 0xc0, 0x52, 0x19, 0x35, 0x8d, 0xe8, 0x9e, 0xfd, 0xf4, 0x94, 0x64, 0x72, 0x3d,
2243                0xd6, 0x25, 0x61, 0x7a,
2244            ],
2245            Elements::LeftShift32 => [
2246                0x34, 0xbf, 0x54, 0xf5, 0x94, 0xc2, 0x62, 0x10, 0x07, 0xf8, 0xc7, 0x8b, 0x30, 0xfa,
2247                0xd3, 0x96, 0x72, 0x00, 0x9b, 0xb3, 0x66, 0xaa, 0xce, 0x1e, 0x5e, 0x41, 0xee, 0x4d,
2248                0x9c, 0xc5, 0x41, 0xa8,
2249            ],
2250            Elements::LeftShift64 => [
2251                0x5d, 0xe9, 0x53, 0xf0, 0x4d, 0xea, 0xed, 0x90, 0x47, 0x56, 0x76, 0x47, 0xa1, 0xeb,
2252                0x7a, 0xbe, 0x66, 0x5f, 0xec, 0xcb, 0xe7, 0xed, 0x10, 0xcb, 0x7d, 0xbe, 0x69, 0x12,
2253                0x73, 0xc0, 0x94, 0xb0,
2254            ],
2255            Elements::LeftShift8 => [
2256                0xab, 0x9d, 0x3e, 0x9a, 0xc3, 0x90, 0x38, 0xad, 0x88, 0xb1, 0x03, 0xf0, 0x72, 0x25,
2257                0x4c, 0x0e, 0xc6, 0xe2, 0x74, 0x75, 0xe2, 0x75, 0xc2, 0x45, 0xe8, 0x8c, 0xce, 0x0d,
2258                0x07, 0x2e, 0x64, 0x46,
2259            ],
2260            Elements::LeftShiftWith16 => [
2261                0xe2, 0x91, 0x07, 0x88, 0x55, 0x50, 0x45, 0x0e, 0xb7, 0x27, 0xd0, 0xcf, 0x14, 0xe1,
2262                0x04, 0xae, 0x12, 0xf8, 0x3a, 0x24, 0xe2, 0xe2, 0xac, 0xa3, 0xcc, 0xe4, 0x33, 0xde,
2263                0x2f, 0x35, 0xd7, 0xb3,
2264            ],
2265            Elements::LeftShiftWith32 => [
2266                0xf3, 0x92, 0x50, 0xc4, 0x5a, 0x13, 0x10, 0xcc, 0x63, 0x8c, 0x78, 0x8d, 0xee, 0xc5,
2267                0xc3, 0x65, 0xb4, 0xd1, 0x76, 0xd1, 0x0e, 0xfb, 0xf4, 0xc6, 0x01, 0xcf, 0x5e, 0xeb,
2268                0xe0, 0xa5, 0x73, 0xe9,
2269            ],
2270            Elements::LeftShiftWith64 => [
2271                0xad, 0x87, 0x94, 0xcf, 0xae, 0xf2, 0xb7, 0xf7, 0x74, 0xfa, 0x68, 0xd3, 0x09, 0xbb,
2272                0xc9, 0x8d, 0xfe, 0xe5, 0x8c, 0x40, 0x40, 0x0b, 0x2e, 0xb5, 0x78, 0xa2, 0x12, 0xf4,
2273                0x38, 0xbd, 0x07, 0xab,
2274            ],
2275            Elements::LeftShiftWith8 => [
2276                0xdd, 0x9c, 0xc1, 0xce, 0xa7, 0x49, 0x09, 0x48, 0x1f, 0xf5, 0x8f, 0x87, 0x6f, 0xf6,
2277                0x6e, 0x0f, 0x5d, 0x52, 0xbf, 0x89, 0xb0, 0x25, 0x8f, 0xa9, 0x5b, 0x32, 0x00, 0x02,
2278                0xc3, 0x2a, 0x79, 0x15,
2279            ],
2280            Elements::Leftmost16_1 => [
2281                0xde, 0x6a, 0x4c, 0x98, 0x33, 0x7e, 0x68, 0x0d, 0x6e, 0x6e, 0xe2, 0xbf, 0x36, 0xd3,
2282                0xa0, 0x81, 0x7d, 0x2a, 0x9a, 0x98, 0x32, 0x5f, 0x87, 0xe5, 0xec, 0xeb, 0x8a, 0x6f,
2283                0x11, 0x68, 0xf5, 0xca,
2284            ],
2285            Elements::Leftmost16_2 => [
2286                0x00, 0x58, 0x09, 0xb8, 0x05, 0x1a, 0x2a, 0x50, 0x28, 0x33, 0xb2, 0x2c, 0x2c, 0x17,
2287                0x98, 0x1e, 0xaf, 0x9d, 0xd1, 0xd3, 0xdb, 0xc8, 0xf8, 0xc8, 0x94, 0x51, 0x6c, 0x1d,
2288                0x5f, 0x31, 0x14, 0x6c,
2289            ],
2290            Elements::Leftmost16_4 => [
2291                0x9c, 0x50, 0xee, 0x22, 0x84, 0xd8, 0x57, 0xc4, 0x7c, 0x05, 0x44, 0x47, 0x13, 0x54,
2292                0x10, 0x5e, 0x98, 0xdf, 0xe0, 0x27, 0x54, 0xd2, 0xe4, 0x2d, 0xe1, 0x1d, 0x32, 0x34,
2293                0xed, 0x10, 0xb6, 0x42,
2294            ],
2295            Elements::Leftmost16_8 => [
2296                0x5a, 0x1a, 0x72, 0x91, 0x4e, 0x14, 0x9c, 0x22, 0xb4, 0x64, 0xc8, 0xf6, 0xa3, 0xd9,
2297                0xcf, 0x41, 0xb0, 0x71, 0x92, 0xbe, 0xf0, 0xd8, 0xa1, 0xcc, 0x7c, 0xbe, 0x57, 0x04,
2298                0xa9, 0xe8, 0xea, 0x70,
2299            ],
2300            Elements::Leftmost32_1 => [
2301                0x5f, 0xb8, 0xe6, 0x34, 0x2a, 0xb7, 0x4e, 0xe2, 0xc9, 0x22, 0x5b, 0x87, 0x2f, 0xa0,
2302                0xc9, 0x12, 0x04, 0x6a, 0x69, 0xdb, 0xb7, 0x19, 0xbc, 0xd6, 0xc8, 0xd7, 0x9b, 0x76,
2303                0x60, 0xc4, 0xeb, 0xca,
2304            ],
2305            Elements::Leftmost32_16 => [
2306                0x54, 0xae, 0x50, 0xb4, 0x6b, 0x5b, 0x2e, 0x68, 0xf5, 0x36, 0xc0, 0x1c, 0x39, 0x61,
2307                0x7b, 0x0c, 0xee, 0x42, 0xe1, 0xc4, 0x9a, 0x2c, 0xd1, 0xd2, 0x6a, 0xf8, 0xea, 0x87,
2308                0x15, 0xac, 0x4d, 0x11,
2309            ],
2310            Elements::Leftmost32_2 => [
2311                0x12, 0x30, 0x68, 0x55, 0x45, 0x95, 0x42, 0x7e, 0x3c, 0x1d, 0xe2, 0x43, 0xba, 0xb6,
2312                0x6f, 0x33, 0x48, 0x36, 0x8a, 0xaa, 0x44, 0x61, 0x7d, 0x6a, 0x02, 0x47, 0x9f, 0xb7,
2313                0x04, 0xbc, 0xfd, 0x1e,
2314            ],
2315            Elements::Leftmost32_4 => [
2316                0x55, 0xa8, 0x7b, 0x66, 0xc3, 0x39, 0xe3, 0x63, 0xe0, 0x3d, 0x4d, 0xaa, 0xc6, 0x22,
2317                0x90, 0xeb, 0xa9, 0x3c, 0x1a, 0x3a, 0x73, 0x82, 0xcb, 0xf6, 0x1f, 0x20, 0xb3, 0x4a,
2318                0x50, 0x51, 0x24, 0xad,
2319            ],
2320            Elements::Leftmost32_8 => [
2321                0x9f, 0x34, 0x5b, 0xee, 0x0b, 0x16, 0x2d, 0x42, 0xa0, 0x35, 0x71, 0x8f, 0x8c, 0xa1,
2322                0xad, 0xc8, 0xac, 0x2f, 0x71, 0x0d, 0xc4, 0x00, 0x52, 0xa8, 0x25, 0x66, 0xe6, 0xd8,
2323                0x07, 0xbe, 0xf8, 0xb8,
2324            ],
2325            Elements::Leftmost64_1 => [
2326                0xb9, 0x24, 0xd3, 0x3b, 0x5e, 0xfe, 0xfc, 0x8e, 0x20, 0x42, 0x08, 0x19, 0x25, 0x91,
2327                0x7c, 0xff, 0x23, 0x9b, 0x31, 0xc8, 0xbd, 0xbd, 0xf4, 0xac, 0xae, 0x6b, 0xb8, 0xd9,
2328                0xcd, 0x21, 0x7b, 0x4f,
2329            ],
2330            Elements::Leftmost64_16 => [
2331                0x12, 0xaa, 0x85, 0xe0, 0x5c, 0x1e, 0x96, 0x22, 0x27, 0x9c, 0x4c, 0x2d, 0xdc, 0xf8,
2332                0x97, 0xc9, 0x5d, 0xdc, 0xc0, 0x11, 0x39, 0x97, 0x28, 0x3b, 0x6b, 0x3e, 0x09, 0x49,
2333                0xbc, 0x81, 0x13, 0xcb,
2334            ],
2335            Elements::Leftmost64_2 => [
2336                0xbc, 0xec, 0x97, 0xf4, 0x3b, 0xa5, 0x5c, 0xd4, 0x0d, 0x85, 0xa1, 0xe7, 0x6c, 0xba,
2337                0xde, 0x7b, 0x0b, 0x1e, 0x9f, 0x13, 0x97, 0x47, 0x79, 0x3d, 0xcb, 0x34, 0x80, 0xbe,
2338                0xe1, 0xf7, 0x51, 0xca,
2339            ],
2340            Elements::Leftmost64_32 => [
2341                0x9c, 0x89, 0x69, 0x39, 0x86, 0xe5, 0x57, 0x33, 0xab, 0x96, 0x2a, 0x30, 0x0b, 0x05,
2342                0x79, 0x50, 0x3d, 0x83, 0xde, 0x8a, 0xc1, 0x9b, 0x17, 0x9b, 0x41, 0x7e, 0x1c, 0xa2,
2343                0x53, 0x85, 0xb3, 0x8f,
2344            ],
2345            Elements::Leftmost64_4 => [
2346                0xd2, 0xd6, 0x45, 0x20, 0x92, 0xd6, 0x56, 0x6f, 0x89, 0xa1, 0xf6, 0x4e, 0x73, 0x65,
2347                0x96, 0xf9, 0x00, 0x0e, 0x5e, 0x6f, 0x63, 0xe4, 0x00, 0x17, 0xd0, 0xcb, 0x80, 0xf3,
2348                0xf7, 0xad, 0xfd, 0x18,
2349            ],
2350            Elements::Leftmost64_8 => [
2351                0xf7, 0x7b, 0x62, 0xbb, 0x01, 0xb9, 0x05, 0x11, 0xb6, 0xd0, 0x6e, 0xbf, 0x2e, 0x36,
2352                0xc0, 0x65, 0x65, 0xac, 0xb5, 0xaa, 0xd1, 0xef, 0xc7, 0x7c, 0x36, 0xa1, 0x0a, 0x26,
2353                0x1d, 0xe9, 0x21, 0xda,
2354            ],
2355            Elements::Leftmost8_1 => [
2356                0x5a, 0x73, 0x0b, 0x58, 0xe3, 0xab, 0xcb, 0x2f, 0x4d, 0xe2, 0x21, 0x59, 0x80, 0x30,
2357                0x23, 0x10, 0x2c, 0xd6, 0x64, 0x21, 0x91, 0x19, 0x20, 0xca, 0x21, 0xa2, 0xa0, 0x5c,
2358                0x9b, 0x21, 0x1c, 0xe8,
2359            ],
2360            Elements::Leftmost8_2 => [
2361                0x25, 0x79, 0x08, 0x56, 0x10, 0x3d, 0xce, 0x6c, 0x7b, 0xbb, 0x3d, 0xd7, 0x18, 0xb1,
2362                0x69, 0x10, 0x9c, 0xae, 0x85, 0x37, 0x99, 0xd1, 0x24, 0x56, 0xc8, 0x5d, 0x83, 0x49,
2363                0xec, 0x18, 0xdc, 0x53,
2364            ],
2365            Elements::Leftmost8_4 => [
2366                0x73, 0xd9, 0xf0, 0x18, 0x15, 0x7a, 0x14, 0x78, 0x4e, 0xe7, 0x0b, 0x21, 0x9c, 0xeb,
2367                0x40, 0x42, 0xfa, 0x62, 0x1d, 0x0e, 0xe6, 0xd5, 0x45, 0xa0, 0xfd, 0xba, 0xb9, 0x44,
2368                0x43, 0x46, 0xe3, 0x31,
2369            ],
2370            Elements::LinearCombination1 => [
2371                0x6d, 0x9f, 0x4a, 0x87, 0x0f, 0xbf, 0x74, 0x0c, 0x22, 0x0e, 0xff, 0xf3, 0x07, 0xb5,
2372                0xed, 0x91, 0xa5, 0x8c, 0x5e, 0x51, 0xa8, 0xad, 0xfc, 0x3b, 0x15, 0x90, 0x30, 0xf5,
2373                0x12, 0xd3, 0x99, 0x41,
2374            ],
2375            Elements::LinearVerify1 => [
2376                0x27, 0x83, 0x13, 0xd7, 0xce, 0x4a, 0xd5, 0x89, 0x11, 0xde, 0x24, 0xee, 0x54, 0x0d,
2377                0x19, 0xec, 0xeb, 0xb6, 0x2f, 0x4a, 0xb4, 0xa7, 0x1e, 0x2a, 0xad, 0xd4, 0x51, 0x2b,
2378                0x2e, 0x4b, 0xc2, 0xe2,
2379            ],
2380            Elements::LockTime => [
2381                0xa1, 0x68, 0x97, 0xc5, 0xdb, 0x49, 0x27, 0xc6, 0xcb, 0x07, 0xb1, 0x65, 0xbd, 0x2c,
2382                0xc3, 0x8b, 0x36, 0xa6, 0x02, 0x68, 0x6c, 0x74, 0xa1, 0x90, 0x34, 0xaa, 0x37, 0x87,
2383                0xac, 0x58, 0x2a, 0x0b,
2384            ],
2385            Elements::Low1 => [
2386                0xf2, 0x7b, 0x69, 0xbb, 0x09, 0x16, 0x09, 0xf5, 0x9e, 0x00, 0x33, 0x05, 0x0d, 0x01,
2387                0xa5, 0xbc, 0x77, 0xff, 0x07, 0xd9, 0x42, 0x70, 0x7a, 0x79, 0xcf, 0x5e, 0xe4, 0x10,
2388                0xa9, 0x98, 0xa0, 0x43,
2389            ],
2390            Elements::Low16 => [
2391                0x97, 0x7c, 0xbd, 0x1e, 0x7f, 0xfc, 0x05, 0xe7, 0x16, 0xd9, 0xc1, 0xb4, 0x9f, 0x7d,
2392                0x51, 0x7f, 0x85, 0x3d, 0xbf, 0x3e, 0x98, 0xa4, 0xc7, 0x48, 0x04, 0x6e, 0xac, 0xf4,
2393                0x17, 0xf8, 0x9c, 0x2f,
2394            ],
2395            Elements::Low32 => [
2396                0xbe, 0x41, 0x69, 0x82, 0x8f, 0x07, 0x67, 0x78, 0xb6, 0x0d, 0x54, 0x56, 0xf7, 0x88,
2397                0x6e, 0xd7, 0xf3, 0x0b, 0x10, 0x1d, 0x6c, 0xcb, 0xd9, 0xea, 0x0c, 0x4d, 0xb1, 0x42,
2398                0xea, 0xc6, 0x6b, 0x12,
2399            ],
2400            Elements::Low64 => [
2401                0x01, 0x9a, 0x66, 0xbf, 0xba, 0x17, 0x51, 0x68, 0x8b, 0xe7, 0x13, 0x89, 0xed, 0x7b,
2402                0xf3, 0x71, 0xb3, 0x01, 0x4d, 0xfb, 0x32, 0x95, 0x62, 0xac, 0x3b, 0x3e, 0x9d, 0xfe,
2403                0x92, 0x06, 0xa5, 0xbc,
2404            ],
2405            Elements::Low8 => [
2406                0x21, 0x7b, 0x56, 0x43, 0x95, 0x6b, 0x48, 0x33, 0xaa, 0x56, 0x22, 0xf0, 0x0f, 0x06,
2407                0x88, 0xba, 0x86, 0x0d, 0x4a, 0xdb, 0xf9, 0x40, 0xcb, 0xdc, 0xd2, 0xb5, 0x9f, 0x26,
2408                0xd6, 0x15, 0x93, 0xb1,
2409            ],
2410            Elements::Lt16 => [
2411                0x56, 0xa2, 0x0d, 0x55, 0xed, 0xb4, 0x43, 0x88, 0x18, 0x05, 0x44, 0xc3, 0xed, 0x40,
2412                0x41, 0x45, 0xa3, 0xb6, 0x6f, 0xd2, 0xc4, 0x11, 0x38, 0x42, 0xf6, 0x4e, 0xae, 0xaf,
2413                0xba, 0xd4, 0xbb, 0x06,
2414            ],
2415            Elements::Lt32 => [
2416                0xca, 0xb0, 0xdc, 0x5b, 0x0e, 0xcb, 0xf6, 0xd2, 0x48, 0x16, 0xfc, 0x20, 0x10, 0xfc,
2417                0x31, 0x19, 0x36, 0x63, 0xc3, 0x06, 0x96, 0x8d, 0x9c, 0xee, 0x3b, 0x00, 0x4c, 0x0b,
2418                0xc1, 0x84, 0xb4, 0x78,
2419            ],
2420            Elements::Lt64 => [
2421                0x47, 0xd6, 0x7e, 0x52, 0xb2, 0x7b, 0xa7, 0x8e, 0xdd, 0x07, 0x5a, 0xa2, 0x70, 0xde,
2422                0xd0, 0x07, 0xa7, 0xa9, 0xa6, 0x84, 0x99, 0x34, 0x4f, 0x28, 0x62, 0xf5, 0x06, 0x90,
2423                0x49, 0xa0, 0xce, 0xfe,
2424            ],
2425            Elements::Lt8 => [
2426                0x73, 0xd0, 0x04, 0x46, 0x55, 0xc0, 0xdf, 0x45, 0xc2, 0x71, 0xa1, 0x71, 0x3f, 0xf9,
2427                0xb9, 0xa4, 0x3d, 0xde, 0x56, 0xe6, 0x74, 0xd1, 0x75, 0x4e, 0x76, 0xed, 0xb1, 0x6f,
2428                0x94, 0x9c, 0x4f, 0xab,
2429            ],
2430            Elements::Maj1 => [
2431                0xcb, 0x2d, 0x98, 0x6d, 0x7f, 0x00, 0x10, 0x7a, 0x3c, 0x25, 0xf6, 0xb2, 0xf1, 0x48,
2432                0x91, 0xd0, 0x2e, 0x20, 0xae, 0x16, 0xf0, 0xa1, 0x25, 0x2c, 0x92, 0xd9, 0xb5, 0x8a,
2433                0xe7, 0x33, 0x88, 0xaa,
2434            ],
2435            Elements::Maj16 => [
2436                0x0a, 0xf6, 0xd0, 0xc1, 0x71, 0xfe, 0x33, 0xa2, 0x15, 0x9b, 0xf9, 0x88, 0x00, 0xf0,
2437                0x41, 0x2c, 0x25, 0x97, 0xe9, 0x97, 0x84, 0xd0, 0x74, 0xfd, 0xfa, 0x33, 0xd7, 0xfd,
2438                0xe5, 0x97, 0xdd, 0xfd,
2439            ],
2440            Elements::Maj32 => [
2441                0x30, 0x60, 0x83, 0x8d, 0x48, 0x45, 0x6f, 0x33, 0x92, 0xd5, 0xd6, 0x9b, 0x5e, 0xec,
2442                0x08, 0x92, 0x76, 0xcd, 0x58, 0xbb, 0x67, 0xa1, 0x2c, 0x64, 0x2e, 0xc7, 0x3a, 0xeb,
2443                0x9a, 0xda, 0xcb, 0xdd,
2444            ],
2445            Elements::Maj64 => [
2446                0x8e, 0xbc, 0xc1, 0x74, 0x57, 0xea, 0x2b, 0x14, 0x23, 0x1b, 0x0e, 0x90, 0x1e, 0xa7,
2447                0xb1, 0xd4, 0x7b, 0x9b, 0x78, 0x98, 0x63, 0x72, 0xa4, 0x41, 0x6f, 0xe7, 0x3f, 0x67,
2448                0x63, 0xfe, 0xb2, 0x4b,
2449            ],
2450            Elements::Maj8 => [
2451                0x89, 0x30, 0xd1, 0xd0, 0x99, 0x1b, 0x0a, 0x58, 0x1d, 0x0b, 0x1d, 0x85, 0xad, 0x72,
2452                0x14, 0x7d, 0x66, 0x49, 0xa3, 0x59, 0x93, 0x28, 0x3f, 0xc9, 0x72, 0x14, 0x43, 0x1f,
2453                0x0b, 0x6a, 0x7a, 0xa8,
2454            ],
2455            Elements::Max16 => [
2456                0xe0, 0x11, 0x47, 0x17, 0x69, 0x1a, 0xc1, 0xa7, 0x39, 0x28, 0x8f, 0xc6, 0xff, 0xa1,
2457                0xc6, 0x50, 0x7c, 0x43, 0xe6, 0xf1, 0xd4, 0xc1, 0x87, 0x70, 0xff, 0xa1, 0x66, 0xae,
2458                0x83, 0x9d, 0xd5, 0x33,
2459            ],
2460            Elements::Max32 => [
2461                0x1d, 0x72, 0x3c, 0xb3, 0x89, 0x94, 0x22, 0x19, 0xec, 0x10, 0x34, 0x85, 0x31, 0x7f,
2462                0xa5, 0xd8, 0x7e, 0xe1, 0x5c, 0x24, 0xb2, 0x08, 0x0f, 0x50, 0x46, 0x65, 0x0d, 0x80,
2463                0x30, 0x8b, 0x18, 0x9d,
2464            ],
2465            Elements::Max64 => [
2466                0x00, 0x73, 0xac, 0x3c, 0x6e, 0xa9, 0x39, 0xdc, 0xc7, 0xee, 0xe4, 0xea, 0x63, 0xdc,
2467                0xfd, 0x75, 0x20, 0x37, 0x35, 0x5b, 0x48, 0x4f, 0x6e, 0x70, 0x16, 0xb3, 0x00, 0xe2,
2468                0xd2, 0x8c, 0x07, 0xc3,
2469            ],
2470            Elements::Max8 => [
2471                0x6b, 0xc1, 0x03, 0x70, 0xf3, 0xe7, 0xa7, 0xb9, 0x2a, 0xcb, 0x14, 0x23, 0xbb, 0xdf,
2472                0x0b, 0x3d, 0x7e, 0x3c, 0xd0, 0xd2, 0xdb, 0xc7, 0x05, 0xa3, 0x4d, 0x8d, 0xc9, 0x9c,
2473                0x91, 0x04, 0x22, 0xfb,
2474            ],
2475            Elements::Median16 => [
2476                0x24, 0x14, 0xe3, 0xc4, 0x39, 0x65, 0x9d, 0x8a, 0xa9, 0xd0, 0x87, 0xe1, 0xad, 0xe7,
2477                0x72, 0x66, 0x67, 0x3d, 0x1c, 0x8b, 0xd4, 0xe7, 0x50, 0x1b, 0x22, 0xac, 0x46, 0xa3,
2478                0xff, 0x39, 0x97, 0x5d,
2479            ],
2480            Elements::Median32 => [
2481                0x07, 0x92, 0x35, 0x6b, 0x61, 0x0b, 0x57, 0xd0, 0xec, 0x19, 0x9e, 0x98, 0x53, 0x5e,
2482                0xa9, 0xbc, 0xcc, 0xe8, 0x43, 0xa5, 0xdf, 0x5d, 0xd2, 0x40, 0x8c, 0x41, 0x48, 0x86,
2483                0xdf, 0xd6, 0xbd, 0x1e,
2484            ],
2485            Elements::Median64 => [
2486                0x07, 0x66, 0xd8, 0x9b, 0x43, 0x0f, 0xfd, 0xf0, 0x38, 0x69, 0x1b, 0x18, 0x43, 0x9c,
2487                0xd6, 0xfc, 0x49, 0x29, 0x17, 0x2e, 0xa8, 0x84, 0xfd, 0xaf, 0x16, 0x69, 0x36, 0xb3,
2488                0x8b, 0x15, 0xfd, 0x0c,
2489            ],
2490            Elements::Median8 => [
2491                0xa4, 0xa0, 0xb6, 0x31, 0x0f, 0xf0, 0xed, 0x4a, 0x4c, 0x3e, 0x03, 0xeb, 0xc7, 0xa9,
2492                0x13, 0x06, 0xef, 0x66, 0x04, 0x24, 0xbc, 0x95, 0xa0, 0xd3, 0xf2, 0xfd, 0xb7, 0x1f,
2493                0xb6, 0xaf, 0xd8, 0xb7,
2494            ],
2495            Elements::Min16 => [
2496                0xf1, 0x58, 0xf4, 0x0a, 0x86, 0x09, 0x93, 0xb4, 0x10, 0x7f, 0xb2, 0x71, 0xfb, 0x4c,
2497                0x8f, 0x95, 0x5b, 0xa4, 0x54, 0x2a, 0xd1, 0x82, 0x1c, 0xd2, 0xf1, 0x3c, 0x88, 0x0c,
2498                0xa4, 0xbe, 0xe2, 0xe2,
2499            ],
2500            Elements::Min32 => [
2501                0xe5, 0xe4, 0x13, 0xdc, 0x5d, 0xe5, 0xe2, 0x2d, 0x66, 0xf3, 0x2d, 0x8d, 0xbf, 0x50,
2502                0x05, 0x3e, 0xd2, 0x78, 0xe1, 0x75, 0xc0, 0xd4, 0xb3, 0x44, 0xeb, 0xd4, 0x61, 0xbe,
2503                0xb1, 0x08, 0xe5, 0x5e,
2504            ],
2505            Elements::Min64 => [
2506                0x43, 0xd8, 0x2f, 0x6c, 0x61, 0x28, 0xaa, 0x01, 0xa9, 0x97, 0xbb, 0x17, 0xe5, 0xe7,
2507                0xf5, 0x01, 0xe7, 0xbe, 0x7d, 0xb9, 0x58, 0x9e, 0x56, 0x6d, 0xe9, 0x7a, 0x32, 0xea,
2508                0xe7, 0xe7, 0xb3, 0x39,
2509            ],
2510            Elements::Min8 => [
2511                0x6b, 0x01, 0x2c, 0xa3, 0x18, 0x5d, 0xc0, 0x05, 0xe8, 0x94, 0x2c, 0xfb, 0xc9, 0xf2,
2512                0x38, 0xdc, 0xed, 0xaf, 0x0c, 0x00, 0x43, 0x52, 0x64, 0x47, 0xe3, 0xec, 0x31, 0xce,
2513                0xfa, 0x6e, 0x40, 0x64,
2514            ],
2515            Elements::Modulo16 => [
2516                0x62, 0xc1, 0x79, 0xac, 0x84, 0xc5, 0x75, 0x0b, 0x42, 0x5f, 0x9a, 0x1b, 0x8f, 0x81,
2517                0xed, 0xaa, 0x7f, 0x5c, 0xf2, 0x2c, 0x19, 0xd8, 0x6b, 0x0d, 0xcf, 0x96, 0xde, 0xa6,
2518                0xba, 0xd9, 0x9b, 0x3b,
2519            ],
2520            Elements::Modulo32 => [
2521                0xa1, 0xf0, 0x1c, 0x10, 0x6f, 0xc3, 0x6a, 0x76, 0x4e, 0x99, 0xb2, 0x33, 0x98, 0xe2,
2522                0x1e, 0x7c, 0x26, 0x7f, 0x88, 0x9f, 0xcc, 0xeb, 0xd1, 0x48, 0x7d, 0x3d, 0xe1, 0xcc,
2523                0x67, 0xc3, 0x2b, 0xd9,
2524            ],
2525            Elements::Modulo64 => [
2526                0x50, 0xc8, 0x2f, 0xd0, 0x31, 0x09, 0xc9, 0x8b, 0x72, 0x37, 0xe9, 0x16, 0x74, 0x04,
2527                0x19, 0x64, 0x38, 0x1e, 0x6c, 0x2e, 0xbb, 0xe2, 0x5b, 0xf3, 0xe0, 0xd3, 0x7a, 0x9f,
2528                0x06, 0x0f, 0x15, 0x02,
2529            ],
2530            Elements::Modulo8 => [
2531                0x5c, 0x63, 0xc7, 0x7a, 0x16, 0x08, 0xe2, 0xf6, 0xa3, 0x74, 0x8c, 0x11, 0x0f, 0xbb,
2532                0x9a, 0x1c, 0x56, 0x9f, 0xb4, 0xd5, 0x40, 0xf3, 0xdd, 0x2e, 0x4f, 0x80, 0xe9, 0x0d,
2533                0xd5, 0xea, 0x99, 0x82,
2534            ],
2535            Elements::Multiply16 => [
2536                0x46, 0xe6, 0x2a, 0xbf, 0x8e, 0x30, 0xa7, 0x74, 0x6d, 0xe0, 0xe9, 0x29, 0xf7, 0xbe,
2537                0xed, 0xdb, 0xde, 0x8b, 0x26, 0x9b, 0xab, 0x08, 0xf7, 0x6e, 0x95, 0x47, 0x10, 0x8b,
2538                0x1c, 0x36, 0x01, 0x74,
2539            ],
2540            Elements::Multiply32 => [
2541                0x2d, 0xec, 0xdc, 0x5b, 0x0c, 0x6f, 0xf6, 0x3d, 0x11, 0xf5, 0x38, 0x52, 0xe0, 0xde,
2542                0xed, 0x11, 0x44, 0x81, 0x35, 0x5b, 0xb6, 0xc6, 0xce, 0x15, 0x46, 0xae, 0x9f, 0x81,
2543                0x5b, 0xee, 0x77, 0x50,
2544            ],
2545            Elements::Multiply64 => [
2546                0xbf, 0xa8, 0x62, 0x6d, 0xbf, 0x10, 0x00, 0x1d, 0xe3, 0x90, 0xd9, 0x97, 0xf2, 0xee,
2547                0x7b, 0x19, 0x0c, 0x24, 0xa7, 0x8c, 0xfe, 0xcb, 0x91, 0xf5, 0xd7, 0xc1, 0x0c, 0x3f,
2548                0x9d, 0xdb, 0xb1, 0xe6,
2549            ],
2550            Elements::Multiply8 => [
2551                0x29, 0xda, 0x13, 0x37, 0x4f, 0x7c, 0xb3, 0x08, 0x40, 0x5f, 0xe2, 0x30, 0xf8, 0x99,
2552                0x48, 0x5c, 0x50, 0x0e, 0x6e, 0x95, 0x20, 0xc1, 0x5e, 0x8a, 0x76, 0xe5, 0x3a, 0x92,
2553                0xe7, 0xac, 0x64, 0xd6,
2554            ],
2555            Elements::Negate16 => [
2556                0xf6, 0x42, 0x17, 0x3b, 0x85, 0xef, 0x21, 0x96, 0x9d, 0x8d, 0x90, 0x48, 0x80, 0x7e,
2557                0x3d, 0x4f, 0xac, 0xf3, 0xf5, 0xf9, 0xe5, 0x9a, 0xa5, 0xcf, 0x0c, 0x60, 0xf8, 0x74,
2558                0x22, 0xed, 0x7c, 0x8f,
2559            ],
2560            Elements::Negate32 => [
2561                0x54, 0x9b, 0x65, 0xce, 0x97, 0xc6, 0xb3, 0x34, 0xb8, 0xae, 0x94, 0x56, 0x96, 0x0e,
2562                0x36, 0x5b, 0xb2, 0x84, 0xd7, 0x6d, 0x40, 0x05, 0xe9, 0x21, 0xf4, 0x89, 0xbc, 0x36,
2563                0x26, 0x17, 0x1b, 0x06,
2564            ],
2565            Elements::Negate64 => [
2566                0x35, 0xac, 0xca, 0x27, 0xce, 0x65, 0x85, 0x79, 0xef, 0x1c, 0x55, 0xad, 0x1a, 0xbe,
2567                0xa0, 0x05, 0x0d, 0x93, 0x66, 0xd1, 0x22, 0x09, 0xad, 0x13, 0x05, 0x25, 0x49, 0xc3,
2568                0x43, 0x64, 0x91, 0xd0,
2569            ],
2570            Elements::Negate8 => [
2571                0xd8, 0x71, 0xc5, 0x42, 0x47, 0x3f, 0x4d, 0xd9, 0x02, 0xd3, 0x1f, 0xe3, 0xfc, 0x9a,
2572                0xc0, 0xf3, 0x31, 0x9e, 0x42, 0xe8, 0x0c, 0xae, 0x21, 0x81, 0xff, 0xc8, 0x5e, 0x6c,
2573                0x60, 0xfb, 0x09, 0x88,
2574            ],
2575            Elements::NewIssuanceContract => [
2576                0xdb, 0x64, 0x80, 0x8c, 0x3f, 0xf4, 0x48, 0x80, 0xd7, 0x2b, 0xc2, 0x95, 0xd9, 0xac,
2577                0x06, 0x43, 0xe5, 0x14, 0x04, 0xde, 0x53, 0x98, 0xad, 0x9e, 0x93, 0x1b, 0xd3, 0xd2,
2578                0xad, 0xbc, 0xa6, 0xc4,
2579            ],
2580            Elements::NonceHash => [
2581                0xfb, 0x1e, 0x03, 0x44, 0xdc, 0xda, 0xf9, 0xdb, 0x91, 0xb9, 0x87, 0xe8, 0xf9, 0x66,
2582                0x10, 0x67, 0x9f, 0x05, 0xde, 0xb2, 0x06, 0xb4, 0x01, 0x05, 0x75, 0x02, 0xa4, 0x84,
2583                0xaa, 0x87, 0xf8, 0xbf,
2584            ],
2585            Elements::NumInputs => [
2586                0xb2, 0x28, 0x8e, 0xba, 0xad, 0xcb, 0xcf, 0xce, 0x1c, 0x63, 0x19, 0x64, 0xc8, 0x6b,
2587                0x12, 0x7d, 0x6f, 0x91, 0xdc, 0x65, 0x7c, 0x59, 0xa7, 0xfb, 0x45, 0x3e, 0x91, 0x11,
2588                0xd8, 0x74, 0x81, 0xf5,
2589            ],
2590            Elements::NumOutputs => [
2591                0x26, 0x7d, 0x41, 0x65, 0x44, 0x93, 0x90, 0x3e, 0x02, 0x57, 0x75, 0x1a, 0xe6, 0xd4,
2592                0x2d, 0x9c, 0xe1, 0xbb, 0x92, 0x24, 0x6d, 0x0e, 0xf7, 0x67, 0xc3, 0x37, 0xb0, 0xc3,
2593                0x2b, 0x19, 0x72, 0xfd,
2594            ],
2595            Elements::One16 => [
2596                0x3f, 0x9f, 0x8d, 0xd1, 0x4c, 0x46, 0xee, 0x02, 0x47, 0x15, 0x57, 0x92, 0x9a, 0xc2,
2597                0xbb, 0x6c, 0x1a, 0xca, 0x00, 0x52, 0x1d, 0x8a, 0xfa, 0xf0, 0xdc, 0xd9, 0xf2, 0xca,
2598                0x7f, 0x31, 0xe6, 0x04,
2599            ],
2600            Elements::One32 => [
2601                0x47, 0x8d, 0xc3, 0x9d, 0xc3, 0x99, 0x5e, 0x2e, 0xdb, 0x7e, 0xc6, 0x74, 0x65, 0x6c,
2602                0xae, 0x79, 0x8f, 0x52, 0xe5, 0x72, 0x92, 0x61, 0x74, 0xa6, 0x68, 0xcc, 0x97, 0xbc,
2603                0xa4, 0x48, 0xd1, 0xcc,
2604            ],
2605            Elements::One64 => [
2606                0xa3, 0x92, 0xce, 0xfc, 0x0d, 0xa5, 0x3c, 0x65, 0xae, 0xe6, 0x12, 0xf5, 0xc6, 0x81,
2607                0x6c, 0xa8, 0x92, 0xfc, 0x15, 0x6d, 0x43, 0x71, 0x48, 0x76, 0xb3, 0xa0, 0x05, 0x68,
2608                0xe1, 0xba, 0x3e, 0xba,
2609            ],
2610            Elements::One8 => [
2611                0xff, 0x59, 0x4e, 0x22, 0xbf, 0xd7, 0x58, 0x13, 0xc0, 0x56, 0xe0, 0xa2, 0x34, 0xed,
2612                0x12, 0xfa, 0x82, 0x87, 0xd1, 0xd5, 0x31, 0x6f, 0x23, 0x90, 0x2b, 0xf0, 0x79, 0xdb,
2613                0xcc, 0x4f, 0x4e, 0xa8,
2614            ],
2615            Elements::Or1 => [
2616                0x9b, 0xf5, 0x91, 0x74, 0x41, 0x0a, 0x80, 0x9d, 0x3d, 0xa2, 0xb5, 0x8c, 0x7e, 0x0d,
2617                0x05, 0xc5, 0x5c, 0xec, 0x38, 0xbd, 0xaa, 0x5f, 0xca, 0xc3, 0x82, 0xa3, 0x11, 0x77,
2618                0x0e, 0xe0, 0xeb, 0x38,
2619            ],
2620            Elements::Or16 => [
2621                0xdd, 0x9a, 0x31, 0x93, 0xd6, 0x19, 0xd9, 0x59, 0xfa, 0x0b, 0x6d, 0x8b, 0x47, 0xaf,
2622                0x78, 0x54, 0xf7, 0xe0, 0x46, 0x7b, 0xa3, 0x59, 0x01, 0xce, 0x43, 0xd8, 0x00, 0xfc,
2623                0xaf, 0x73, 0x0f, 0xf9,
2624            ],
2625            Elements::Or32 => [
2626                0x9a, 0x01, 0x9f, 0x07, 0xdf, 0x49, 0x96, 0xb3, 0x3e, 0x64, 0x7f, 0x4d, 0xe7, 0xe5,
2627                0x6c, 0x1d, 0x8f, 0x03, 0x26, 0x9c, 0xbf, 0xa3, 0xc7, 0x58, 0x2c, 0xfe, 0x80, 0x8e,
2628                0x90, 0x98, 0x70, 0xb7,
2629            ],
2630            Elements::Or64 => [
2631                0xc2, 0x4f, 0x35, 0x80, 0x05, 0xf8, 0x03, 0x77, 0x2b, 0x1c, 0x3e, 0x43, 0x9c, 0xf1,
2632                0xb7, 0x09, 0xbd, 0x9f, 0x4d, 0x42, 0x52, 0x75, 0x91, 0x30, 0x3a, 0x36, 0xf6, 0xb1,
2633                0xc3, 0xcf, 0x29, 0xcc,
2634            ],
2635            Elements::Or8 => [
2636                0x84, 0xb5, 0x36, 0x89, 0xf2, 0x1d, 0x4e, 0x69, 0x7d, 0x0f, 0xe8, 0x98, 0x8c, 0xe7,
2637                0x36, 0xab, 0x72, 0xc9, 0xc8, 0x6f, 0x84, 0x75, 0x89, 0xda, 0xa9, 0xae, 0x6a, 0x78,
2638                0x46, 0x30, 0xe6, 0x20,
2639            ],
2640            Elements::OutpointHash => [
2641                0x8d, 0x2a, 0x5a, 0xa0, 0x6e, 0x98, 0xc4, 0x1b, 0x30, 0xfd, 0x07, 0x03, 0xe5, 0xe5,
2642                0x4c, 0x86, 0xb4, 0x2b, 0xee, 0x33, 0xbc, 0x89, 0xcb, 0x60, 0x93, 0xcd, 0xb0, 0x94,
2643                0x05, 0xa7, 0x2d, 0x9d,
2644            ],
2645            Elements::OutputAmount => [
2646                0x55, 0xe4, 0x13, 0x99, 0x21, 0x69, 0x40, 0x8e, 0x33, 0x8e, 0x11, 0xa8, 0xd7, 0xbe,
2647                0x60, 0x2b, 0x3e, 0xc9, 0x51, 0x1e, 0x7e, 0xb6, 0x91, 0xdf, 0x32, 0xd9, 0x79, 0x7a,
2648                0x63, 0x95, 0xa1, 0xa1,
2649            ],
2650            Elements::OutputAmountsHash => [
2651                0x40, 0x23, 0x69, 0x63, 0xe1, 0x0e, 0xf8, 0xad, 0x9c, 0xb6, 0xe0, 0xa7, 0xc7, 0x9a,
2652                0xc8, 0x66, 0x0d, 0x2f, 0xc1, 0xa5, 0x7f, 0xef, 0xf8, 0x85, 0x15, 0xa7, 0x85, 0x27,
2653                0x91, 0xb1, 0x86, 0xcb,
2654            ],
2655            Elements::OutputAsset => [
2656                0x57, 0x5a, 0x49, 0xba, 0xb2, 0x1f, 0xfe, 0xe8, 0xe5, 0xbd, 0x00, 0xed, 0xce, 0x32,
2657                0x40, 0x61, 0x04, 0xa0, 0x5d, 0xde, 0xf5, 0xfc, 0x31, 0xa1, 0xa6, 0x45, 0xb1, 0x29,
2658                0x54, 0x8c, 0x8f, 0x3e,
2659            ],
2660            Elements::OutputHash => [
2661                0x7c, 0xb1, 0x7f, 0x8f, 0xc7, 0xa1, 0xae, 0x4e, 0xfc, 0xe3, 0x0a, 0x14, 0x54, 0xe5,
2662                0x2f, 0x85, 0x85, 0x21, 0x3c, 0xd0, 0xf3, 0x67, 0xa1, 0x27, 0xac, 0x27, 0xbb, 0x97,
2663                0x66, 0xea, 0x9e, 0xee,
2664            ],
2665            Elements::OutputIsFee => [
2666                0x9f, 0xbb, 0xe8, 0xae, 0xbd, 0xed, 0xd5, 0x77, 0xae, 0x46, 0x62, 0x80, 0xa9, 0x9b,
2667                0x67, 0xb7, 0x34, 0x32, 0x87, 0xef, 0x34, 0x06, 0x92, 0x53, 0x4a, 0x00, 0x98, 0x03,
2668                0x15, 0xe5, 0x17, 0x72,
2669            ],
2670            Elements::OutputNonce => [
2671                0x71, 0x75, 0xfd, 0x99, 0xa2, 0xba, 0xa1, 0xc3, 0xaf, 0xaa, 0xf7, 0xfa, 0xbd, 0xaa,
2672                0x67, 0xc2, 0xc8, 0x27, 0x48, 0x3b, 0xc8, 0xa0, 0xb9, 0x76, 0x50, 0xcb, 0x79, 0x42,
2673                0xea, 0x29, 0x5a, 0x18,
2674            ],
2675            Elements::OutputNoncesHash => [
2676                0x50, 0xf1, 0x87, 0x66, 0xde, 0x98, 0x28, 0xdb, 0x0a, 0x8c, 0x41, 0xd7, 0xbe, 0xb8,
2677                0x40, 0xf7, 0x7b, 0xc6, 0xe1, 0x21, 0xff, 0x12, 0x3d, 0x54, 0x96, 0xf1, 0xea, 0x0d,
2678                0x6a, 0x78, 0xb8, 0x3a,
2679            ],
2680            Elements::OutputNullDatum => [
2681                0x38, 0xa5, 0xa7, 0xe8, 0x61, 0xb3, 0xb3, 0x6c, 0xce, 0x68, 0x3a, 0x77, 0x2d, 0xb0,
2682                0xc8, 0x62, 0x8b, 0x7f, 0xd3, 0xb4, 0xcf, 0x8e, 0x7b, 0xce, 0x70, 0x75, 0x8f, 0xa6,
2683                0xf6, 0xf1, 0x47, 0xbf,
2684            ],
2685            Elements::OutputRangeProof => [
2686                0x6f, 0xf9, 0xef, 0x3d, 0xac, 0x50, 0x43, 0x10, 0xdf, 0xbc, 0x60, 0x56, 0x1d, 0x2a,
2687                0xdd, 0xeb, 0x44, 0x93, 0x2f, 0x77, 0x7e, 0x7f, 0x13, 0xad, 0xf0, 0x77, 0x4e, 0xb6,
2688                0xb1, 0x4d, 0xf9, 0x66,
2689            ],
2690            Elements::OutputRangeProofsHash => [
2691                0x0d, 0x7d, 0x8a, 0xc9, 0x7a, 0xf9, 0x53, 0x9a, 0xbb, 0xa6, 0x4d, 0x81, 0x04, 0xd1,
2692                0x7e, 0x97, 0x08, 0x54, 0x67, 0x7c, 0x27, 0x46, 0x1d, 0x25, 0xdf, 0x21, 0xa7, 0xf6,
2693                0xb6, 0x62, 0x08, 0x1e,
2694            ],
2695            Elements::OutputScriptHash => [
2696                0x2f, 0x51, 0x39, 0x26, 0x6f, 0x14, 0x3a, 0x33, 0xe1, 0x66, 0x8e, 0x59, 0x4f, 0x43,
2697                0xe8, 0xd1, 0x39, 0x44, 0x07, 0xe3, 0xa9, 0xb8, 0xb8, 0x02, 0xb3, 0x9a, 0x5e, 0x1e,
2698                0xdc, 0x54, 0xe8, 0x51,
2699            ],
2700            Elements::OutputScriptsHash => [
2701                0x21, 0x33, 0x3a, 0xc9, 0x58, 0xa4, 0xeb, 0xfd, 0x5e, 0xab, 0x79, 0x56, 0xdb, 0x73,
2702                0xed, 0x03, 0x26, 0x94, 0x26, 0xaf, 0x8d, 0x7d, 0x24, 0x98, 0xde, 0x57, 0xee, 0xf6,
2703                0x87, 0x04, 0xfb, 0x0a,
2704            ],
2705            Elements::OutputSurjectionProof => [
2706                0x09, 0x16, 0x60, 0x08, 0x1d, 0x52, 0xc3, 0x3f, 0x17, 0xa9, 0x56, 0xbd, 0xda, 0xc6,
2707                0x2a, 0xa2, 0xd2, 0xed, 0x92, 0x8f, 0x8c, 0xff, 0xef, 0x4c, 0xf8, 0xdb, 0xb6, 0x97,
2708                0xb1, 0x53, 0xaa, 0x65,
2709            ],
2710            Elements::OutputSurjectionProofsHash => [
2711                0x36, 0x30, 0xb5, 0x20, 0x83, 0x02, 0x64, 0x1b, 0xf1, 0x9c, 0x4b, 0xf5, 0xca, 0x04,
2712                0x7a, 0xc3, 0xeb, 0x7a, 0xf5, 0x4d, 0x5d, 0x3f, 0x5b, 0xf8, 0xf1, 0xd4, 0x13, 0x12,
2713                0x49, 0x9d, 0x63, 0x84,
2714            ],
2715            Elements::OutputsHash => [
2716                0x95, 0xb3, 0x51, 0x1a, 0xea, 0x00, 0xd0, 0x43, 0xa4, 0xe0, 0x28, 0xb2, 0x5a, 0x17,
2717                0x1c, 0x74, 0x2e, 0xc2, 0xff, 0x7a, 0xd3, 0xa7, 0xdf, 0x2f, 0x1f, 0x6e, 0xda, 0xd0,
2718                0x8b, 0xad, 0x2b, 0x69,
2719            ],
2720            Elements::ParseLock => [
2721                0x3d, 0x38, 0x36, 0xfd, 0x30, 0x85, 0xc1, 0xfb, 0xac, 0x6c, 0xd5, 0xfa, 0x0d, 0xbf,
2722                0x4a, 0x3f, 0xb2, 0x55, 0x45, 0x93, 0x17, 0xa2, 0x66, 0xd6, 0xd6, 0xf7, 0x38, 0x2b,
2723                0xb0, 0x5f, 0x07, 0xad,
2724            ],
2725            Elements::ParseSequence => [
2726                0x74, 0xf3, 0x5c, 0x01, 0x9e, 0xf5, 0x14, 0xb7, 0x0a, 0xb0, 0x08, 0xbf, 0x2a, 0x12,
2727                0x6d, 0xe7, 0xe0, 0x0f, 0x6e, 0x3c, 0xcd, 0x28, 0x5d, 0x51, 0xdb, 0xd3, 0xac, 0x71,
2728                0xbe, 0xa9, 0xc8, 0x8d,
2729            ],
2730            Elements::PointVerify1 => [
2731                0x90, 0xa3, 0xd6, 0x69, 0xb0, 0x0d, 0xa7, 0x95, 0xef, 0xb2, 0xbe, 0xd8, 0xc3, 0x70,
2732                0xc9, 0xe3, 0xea, 0x0f, 0x19, 0xc4, 0x1c, 0x7c, 0xf2, 0x3e, 0x49, 0x2e, 0x33, 0x17,
2733                0x1a, 0x47, 0xf5, 0xff,
2734            ],
2735            Elements::ReissuanceBlinding => [
2736                0xeb, 0x6e, 0x58, 0x1e, 0x20, 0xba, 0x0b, 0xab, 0xe9, 0x04, 0xc8, 0xda, 0x71, 0xa8,
2737                0x1f, 0x7c, 0x88, 0xb9, 0xcf, 0x4f, 0x42, 0xd7, 0x8b, 0x54, 0x0c, 0x1b, 0x39, 0x8c,
2738                0x3f, 0x10, 0x5c, 0xcc,
2739            ],
2740            Elements::ReissuanceEntropy => [
2741                0xd1, 0xd2, 0x2c, 0x49, 0x7f, 0x12, 0x9c, 0x6d, 0x6f, 0xdb, 0xe4, 0x91, 0x36, 0x4a,
2742                0x35, 0x13, 0xbc, 0xd6, 0x6e, 0x15, 0x61, 0x8c, 0xbb, 0xe2, 0xe5, 0x07, 0x39, 0xbd,
2743                0x83, 0x4d, 0xb7, 0xf8,
2744            ],
2745            Elements::RightExtend16_32 => [
2746                0x78, 0x07, 0x16, 0xd3, 0xe8, 0x29, 0x1a, 0x51, 0xe4, 0x5a, 0xda, 0x50, 0x55, 0x8e,
2747                0xfe, 0x41, 0x1c, 0x47, 0x5c, 0x08, 0x5e, 0xec, 0x5a, 0x28, 0xad, 0x97, 0x91, 0xc3,
2748                0x12, 0xfe, 0xe2, 0xbc,
2749            ],
2750            Elements::RightExtend16_64 => [
2751                0xc7, 0x70, 0x49, 0x7e, 0x45, 0x23, 0x08, 0xeb, 0xf5, 0x2e, 0x51, 0xb0, 0x58, 0x5e,
2752                0x91, 0x51, 0xe0, 0xff, 0xc3, 0x50, 0x86, 0xab, 0x77, 0x2d, 0x72, 0x41, 0x53, 0x2a,
2753                0x1b, 0xe1, 0x5e, 0x07,
2754            ],
2755            Elements::RightExtend32_64 => [
2756                0x42, 0xb4, 0x3a, 0xdc, 0x74, 0xb5, 0x26, 0x6c, 0x91, 0xd7, 0x3d, 0xf4, 0x91, 0xdc,
2757                0xae, 0x59, 0x73, 0x88, 0x04, 0xeb, 0x44, 0x0b, 0x23, 0xda, 0x32, 0x75, 0x30, 0x48,
2758                0x74, 0x86, 0xb7, 0xe8,
2759            ],
2760            Elements::RightExtend8_16 => [
2761                0xbc, 0xb2, 0x68, 0x3a, 0x8c, 0xb8, 0xb8, 0xc2, 0x35, 0xfa, 0xa8, 0x96, 0xa9, 0xc0,
2762                0x69, 0xe1, 0xb5, 0x5b, 0xb0, 0x55, 0x8e, 0x73, 0x9e, 0x70, 0xe2, 0x89, 0x14, 0x21,
2763                0x1e, 0x32, 0x75, 0xc8,
2764            ],
2765            Elements::RightExtend8_32 => [
2766                0x6d, 0xdb, 0x55, 0x48, 0xfd, 0x58, 0x3c, 0xd2, 0xd3, 0x58, 0x6e, 0x6b, 0x8b, 0xf9,
2767                0x95, 0x24, 0x6b, 0x61, 0x93, 0x4f, 0x49, 0x76, 0x44, 0x67, 0x77, 0xdd, 0x57, 0x40,
2768                0xb3, 0x19, 0xe4, 0x62,
2769            ],
2770            Elements::RightExtend8_64 => [
2771                0xda, 0x4f, 0x9c, 0x21, 0x45, 0x51, 0x26, 0x82, 0x07, 0x58, 0xa2, 0xe4, 0xb5, 0x3f,
2772                0xce, 0xb4, 0x52, 0x3e, 0x6e, 0x7a, 0x29, 0x23, 0xa1, 0xa1, 0x61, 0xfc, 0x37, 0x89,
2773                0x2a, 0xc8, 0xda, 0x2a,
2774            ],
2775            Elements::RightPadHigh16_32 => [
2776                0x3e, 0x4e, 0x5e, 0x9e, 0x71, 0xe1, 0x37, 0xa2, 0x68, 0x63, 0x43, 0xe0, 0x5a, 0xc5,
2777                0x63, 0x16, 0xac, 0xfc, 0x58, 0x99, 0x1c, 0xb3, 0x8d, 0xb1, 0xb3, 0x23, 0x44, 0x13,
2778                0xf7, 0x30, 0xa1, 0x42,
2779            ],
2780            Elements::RightPadHigh16_64 => [
2781                0xde, 0x09, 0xdf, 0x9d, 0x43, 0xdd, 0xad, 0x2d, 0x69, 0x12, 0x04, 0x98, 0x6c, 0xf0,
2782                0x81, 0x9d, 0x6b, 0x80, 0x45, 0xbc, 0xa4, 0x14, 0xd8, 0x0a, 0xf2, 0x16, 0x28, 0x92,
2783                0xa9, 0x25, 0x7e, 0xad,
2784            ],
2785            Elements::RightPadHigh1_16 => [
2786                0xff, 0x12, 0x97, 0xd8, 0x78, 0xe2, 0x6e, 0x19, 0x59, 0xbc, 0xc7, 0xe8, 0xae, 0xf9,
2787                0x7a, 0xc0, 0xb6, 0x5a, 0xdc, 0x39, 0x92, 0x3e, 0xc6, 0x50, 0x5e, 0x50, 0xf9, 0x83,
2788                0x05, 0x73, 0x3b, 0x6c,
2789            ],
2790            Elements::RightPadHigh1_32 => [
2791                0x28, 0x3f, 0x8a, 0xfb, 0x41, 0x38, 0x2d, 0x2b, 0xe1, 0x8f, 0x8a, 0x77, 0xc3, 0x14,
2792                0xba, 0x17, 0x76, 0xcb, 0x80, 0xc8, 0xec, 0x36, 0xca, 0x12, 0xaa, 0x67, 0xb3, 0x2b,
2793                0xb6, 0x4e, 0xd8, 0x43,
2794            ],
2795            Elements::RightPadHigh1_64 => [
2796                0xa3, 0x42, 0x35, 0x28, 0x60, 0xa3, 0x35, 0x0d, 0x79, 0xc3, 0xe9, 0xfc, 0x7a, 0x4a,
2797                0xb3, 0x78, 0x9b, 0x8b, 0x02, 0x97, 0x85, 0x6f, 0xd1, 0x69, 0xca, 0x4d, 0x7d, 0xe2,
2798                0x5f, 0x7d, 0x7c, 0xc4,
2799            ],
2800            Elements::RightPadHigh1_8 => [
2801                0x71, 0x03, 0xc0, 0xfe, 0x00, 0xf5, 0x22, 0xa2, 0x21, 0x6c, 0x4a, 0x6b, 0xe5, 0xf7,
2802                0xe0, 0xeb, 0x4d, 0x70, 0x3c, 0xa7, 0x8f, 0x9c, 0x59, 0x8f, 0x6b, 0x3d, 0xfd, 0xe4,
2803                0x37, 0xd8, 0x0c, 0x84,
2804            ],
2805            Elements::RightPadHigh32_64 => [
2806                0x5d, 0xc9, 0x10, 0x7d, 0x45, 0x34, 0x95, 0x8c, 0xe4, 0x42, 0x27, 0x67, 0x56, 0x3a,
2807                0x03, 0x1a, 0x38, 0x0f, 0x60, 0xd3, 0x83, 0x71, 0x48, 0xab, 0x3c, 0x8c, 0xc9, 0xc4,
2808                0xc7, 0xd9, 0x96, 0xa2,
2809            ],
2810            Elements::RightPadHigh8_16 => [
2811                0xc0, 0xe2, 0xfd, 0x46, 0xf7, 0x88, 0x3b, 0x12, 0x85, 0xa6, 0xf1, 0xa1, 0xdb, 0x96,
2812                0xd9, 0x3c, 0x25, 0x48, 0x04, 0x0f, 0xcd, 0x3f, 0x5c, 0x23, 0xfb, 0xb2, 0x0b, 0x5e,
2813                0x83, 0x03, 0x7c, 0x96,
2814            ],
2815            Elements::RightPadHigh8_32 => [
2816                0x29, 0x1e, 0x62, 0x77, 0x08, 0x52, 0x0c, 0x2c, 0xa6, 0xae, 0xce, 0x32, 0xa8, 0x77,
2817                0xb7, 0x78, 0x49, 0xc4, 0xa7, 0xa2, 0x13, 0xcb, 0x89, 0xe1, 0xbd, 0xa7, 0xc5, 0xc5,
2818                0xfe, 0x75, 0x5f, 0x73,
2819            ],
2820            Elements::RightPadHigh8_64 => [
2821                0x6b, 0x6f, 0xa2, 0x37, 0x2e, 0xd2, 0x5e, 0x4a, 0x34, 0xd4, 0xae, 0x17, 0x23, 0x42,
2822                0xad, 0xbb, 0x25, 0x9b, 0xe8, 0x98, 0x76, 0x00, 0xdb, 0x19, 0x2e, 0xcb, 0x8d, 0xa4,
2823                0x34, 0xb9, 0xd8, 0x8f,
2824            ],
2825            Elements::RightPadLow16_32 => [
2826                0x77, 0x31, 0xd5, 0x60, 0xd3, 0x75, 0x92, 0xd1, 0xa3, 0x1f, 0x73, 0x62, 0x96, 0x7a,
2827                0xb2, 0xe4, 0x75, 0x92, 0xac, 0xa6, 0xe9, 0x2a, 0xb8, 0x58, 0x82, 0x37, 0x92, 0xda,
2828                0xe5, 0xd2, 0xdb, 0x52,
2829            ],
2830            Elements::RightPadLow16_64 => [
2831                0x0f, 0xe1, 0xc0, 0xdb, 0x9d, 0x4a, 0x2d, 0x63, 0xe2, 0xba, 0x4a, 0x33, 0x11, 0x7a,
2832                0xad, 0xba, 0x64, 0x51, 0x4a, 0x2b, 0x87, 0xa7, 0xa4, 0xe7, 0x93, 0xfa, 0xac, 0xfe,
2833                0x6b, 0x36, 0x34, 0x47,
2834            ],
2835            Elements::RightPadLow1_16 => [
2836                0x79, 0x14, 0xc8, 0xf2, 0x22, 0x47, 0xc2, 0xc3, 0x4b, 0x9c, 0x84, 0xe9, 0x2d, 0x14,
2837                0x44, 0xae, 0xc2, 0xe1, 0x7a, 0x0e, 0xf5, 0x86, 0xba, 0xb2, 0x78, 0x8e, 0xe6, 0xef,
2838                0x68, 0x84, 0x0d, 0x98,
2839            ],
2840            Elements::RightPadLow1_32 => [
2841                0x31, 0xb6, 0xce, 0x26, 0xe5, 0x59, 0xf7, 0x6c, 0xf3, 0x66, 0xf4, 0x80, 0x69, 0x85,
2842                0xec, 0xc2, 0x99, 0x55, 0x0f, 0x15, 0xd4, 0xc3, 0xa6, 0x72, 0x9e, 0x29, 0xd7, 0x0e,
2843                0x39, 0x89, 0x56, 0x52,
2844            ],
2845            Elements::RightPadLow1_64 => [
2846                0xc5, 0x52, 0x4a, 0xe6, 0x54, 0x8a, 0xcd, 0x63, 0x08, 0x2d, 0x94, 0x89, 0x3e, 0x18,
2847                0xf9, 0xed, 0xbb, 0x92, 0x31, 0xe7, 0x6b, 0xb4, 0xe1, 0x1b, 0xbf, 0xf6, 0xa7, 0xbd,
2848                0x16, 0xf4, 0xb0, 0x29,
2849            ],
2850            Elements::RightPadLow1_8 => [
2851                0x59, 0xd7, 0x22, 0x70, 0xef, 0x0e, 0x8f, 0x77, 0x0c, 0x8d, 0x11, 0xf3, 0x17, 0x73,
2852                0xf9, 0xb6, 0xe9, 0x0a, 0x4a, 0xec, 0xeb, 0x5b, 0xfb, 0x3d, 0xfe, 0x96, 0x8c, 0x4e,
2853                0x9d, 0xac, 0x5f, 0xe8,
2854            ],
2855            Elements::RightPadLow32_64 => [
2856                0xd4, 0x22, 0x7d, 0x06, 0x6f, 0x18, 0xb9, 0x11, 0xd6, 0xf5, 0xd9, 0xbf, 0xb9, 0xd9,
2857                0xf4, 0x6e, 0x9a, 0xea, 0xdb, 0xbe, 0xfa, 0x34, 0xd4, 0x74, 0x43, 0x2a, 0x1e, 0x78,
2858                0x9e, 0x48, 0x86, 0xff,
2859            ],
2860            Elements::RightPadLow8_16 => [
2861                0xab, 0xa4, 0x7a, 0x53, 0x6e, 0x12, 0x27, 0xe1, 0x22, 0xba, 0xac, 0xf1, 0x9c, 0xfd,
2862                0x28, 0x23, 0xb9, 0xb7, 0x8d, 0x79, 0xcc, 0x06, 0xd3, 0x4c, 0x34, 0x8b, 0x14, 0xa1,
2863                0xa1, 0x5a, 0xbd, 0x64,
2864            ],
2865            Elements::RightPadLow8_32 => [
2866                0x8f, 0x80, 0xa6, 0xc2, 0x74, 0x71, 0x6b, 0x67, 0x22, 0x04, 0x11, 0x34, 0xea, 0x1c,
2867                0x68, 0xaa, 0xbf, 0x02, 0x13, 0x29, 0x8f, 0x4e, 0x18, 0xf8, 0xf4, 0x92, 0xdc, 0x53,
2868                0x80, 0x8a, 0x31, 0x74,
2869            ],
2870            Elements::RightPadLow8_64 => [
2871                0xd6, 0x9c, 0x85, 0xe7, 0xb2, 0xd7, 0xe9, 0x49, 0x43, 0x6c, 0xb1, 0x29, 0x5e, 0x4a,
2872                0xa7, 0x05, 0x57, 0xd7, 0x5e, 0x7c, 0xbd, 0xec, 0x02, 0xcc, 0xa8, 0x5f, 0xbf, 0xb1,
2873                0x33, 0x08, 0xb2, 0x10,
2874            ],
2875            Elements::RightRotate16 => [
2876                0xe5, 0x10, 0x70, 0x82, 0x47, 0xf9, 0x1b, 0x4f, 0x0a, 0x8a, 0x22, 0xa4, 0x46, 0xb8,
2877                0x13, 0x7d, 0x0d, 0x42, 0xbe, 0xe7, 0x4c, 0x8c, 0x1e, 0xdd, 0x6d, 0x44, 0x6e, 0xdb,
2878                0x20, 0x13, 0xb5, 0x98,
2879            ],
2880            Elements::RightRotate32 => [
2881                0x98, 0x91, 0x57, 0x31, 0x41, 0x29, 0x22, 0xdb, 0xc5, 0x16, 0xa7, 0x37, 0x3a, 0xfc,
2882                0x4d, 0xe6, 0x48, 0x09, 0xf8, 0x3b, 0x26, 0x4b, 0xcf, 0xca, 0x6a, 0xe7, 0x48, 0x83,
2883                0xdb, 0xe1, 0x04, 0xd6,
2884            ],
2885            Elements::RightRotate64 => [
2886                0x9e, 0x2f, 0xb9, 0x8a, 0xdf, 0x10, 0x29, 0x33, 0x9d, 0xbe, 0x45, 0xa2, 0x2a, 0x54,
2887                0xa3, 0x90, 0xca, 0x09, 0x86, 0xed, 0xce, 0xa3, 0x2e, 0xac, 0xb8, 0x2e, 0xbc, 0xc8,
2888                0x94, 0xa2, 0x71, 0x1a,
2889            ],
2890            Elements::RightRotate8 => [
2891                0x00, 0xc7, 0xc2, 0x6d, 0x95, 0xa5, 0x0b, 0x5a, 0xf9, 0x34, 0x9f, 0xfe, 0x47, 0xe1,
2892                0xd4, 0x3f, 0x3d, 0x76, 0x1f, 0x17, 0xa7, 0x45, 0x3c, 0x98, 0x47, 0x91, 0xe8, 0x7d,
2893                0xc6, 0xa3, 0x11, 0xc8,
2894            ],
2895            Elements::RightShift16 => [
2896                0x8b, 0x5e, 0x0f, 0xeb, 0x95, 0x81, 0x30, 0xf0, 0x50, 0x83, 0x32, 0x15, 0x9e, 0x54,
2897                0xc2, 0xdf, 0x98, 0xaf, 0x83, 0x52, 0x1a, 0xca, 0xb3, 0x08, 0x4f, 0xd4, 0xf7, 0xc3,
2898                0xa2, 0xcc, 0xea, 0x77,
2899            ],
2900            Elements::RightShift32 => [
2901                0x4b, 0x1f, 0x25, 0x80, 0xe0, 0x85, 0x0d, 0x38, 0xe2, 0xa1, 0x15, 0x73, 0x38, 0x05,
2902                0x2f, 0x1c, 0x37, 0x9f, 0x9d, 0x81, 0x57, 0xf6, 0x2d, 0x33, 0x89, 0x0a, 0xf2, 0x4f,
2903                0xd9, 0xa7, 0xf7, 0x3e,
2904            ],
2905            Elements::RightShift64 => [
2906                0x91, 0xa2, 0x97, 0xd7, 0xb5, 0x8a, 0x39, 0x3b, 0xf5, 0x90, 0x25, 0x94, 0x77, 0x47,
2907                0xc8, 0x6d, 0xd4, 0x87, 0x65, 0x9c, 0xc5, 0x6f, 0xb5, 0xa6, 0xf6, 0x43, 0x99, 0x55,
2908                0x12, 0x9a, 0x95, 0x63,
2909            ],
2910            Elements::RightShift8 => [
2911                0xa4, 0xc3, 0x54, 0x6f, 0xf2, 0x7e, 0x56, 0xd6, 0x4e, 0x91, 0x8a, 0xb2, 0xfa, 0x6d,
2912                0x00, 0xfc, 0x27, 0x04, 0x58, 0x5b, 0x25, 0xbd, 0xe0, 0x04, 0x9d, 0x6d, 0x8f, 0x48,
2913                0xd8, 0xcf, 0x1c, 0xd0,
2914            ],
2915            Elements::RightShiftWith16 => [
2916                0xfd, 0x97, 0x70, 0x30, 0xe3, 0xa2, 0x5a, 0x32, 0xe7, 0x75, 0xb8, 0xd5, 0xe8, 0x71,
2917                0x74, 0xa7, 0xa9, 0xe8, 0x73, 0x1e, 0xc3, 0x6c, 0xf1, 0x32, 0x64, 0x20, 0xad, 0x91,
2918                0x50, 0x2e, 0x6e, 0x98,
2919            ],
2920            Elements::RightShiftWith32 => [
2921                0x28, 0x29, 0xba, 0x02, 0x1f, 0x54, 0x07, 0x7a, 0xff, 0xb6, 0x6a, 0xc6, 0xb6, 0xdf,
2922                0xd3, 0xfe, 0xf3, 0x8b, 0xc4, 0x14, 0x91, 0x84, 0x5a, 0x41, 0xce, 0x9d, 0xd3, 0x70,
2923                0x58, 0x6c, 0x2d, 0x04,
2924            ],
2925            Elements::RightShiftWith64 => [
2926                0x00, 0x6f, 0xa3, 0xc5, 0x45, 0x79, 0x75, 0x47, 0x86, 0xfc, 0x64, 0xdc, 0x32, 0xe1,
2927                0x9a, 0x22, 0x5c, 0xc1, 0x52, 0xc9, 0x4d, 0xee, 0xb3, 0xc6, 0xab, 0x29, 0x67, 0xdd,
2928                0xbf, 0xc6, 0x46, 0x53,
2929            ],
2930            Elements::RightShiftWith8 => [
2931                0xfc, 0xb5, 0xbe, 0x65, 0x07, 0xf0, 0xca, 0x44, 0xbe, 0x2b, 0xe1, 0xcc, 0x3c, 0x3c,
2932                0xfe, 0x39, 0x94, 0x40, 0x4b, 0x80, 0x83, 0xbd, 0x76, 0x02, 0xb2, 0x10, 0x2c, 0xb1,
2933                0xfc, 0xfa, 0x2c, 0x61,
2934            ],
2935            Elements::Rightmost16_1 => [
2936                0x3f, 0x3c, 0x43, 0x46, 0x87, 0x17, 0x42, 0x26, 0x5e, 0x87, 0xf0, 0x01, 0xb4, 0x6d,
2937                0xe7, 0xd1, 0x98, 0x75, 0x1b, 0x34, 0xfa, 0xa1, 0x80, 0x18, 0xde, 0x60, 0xc8, 0x46,
2938                0x8d, 0x9b, 0x98, 0xa4,
2939            ],
2940            Elements::Rightmost16_2 => [
2941                0x78, 0xf1, 0x71, 0x47, 0x6a, 0x3b, 0x0e, 0xd1, 0xe3, 0xa5, 0x45, 0x5a, 0x5f, 0xbb,
2942                0xcc, 0x90, 0x19, 0x81, 0xb3, 0x23, 0x0f, 0xea, 0x12, 0x64, 0x20, 0x4d, 0xac, 0xd0,
2943                0x81, 0xf9, 0x40, 0x80,
2944            ],
2945            Elements::Rightmost16_4 => [
2946                0x75, 0xa1, 0xdf, 0xb6, 0xae, 0x2c, 0x06, 0x6b, 0x2d, 0x0e, 0x20, 0x93, 0x04, 0x8a,
2947                0xdb, 0xc5, 0x0d, 0x46, 0x50, 0x65, 0x6f, 0xb2, 0xd3, 0x57, 0x8b, 0x57, 0xd9, 0xde,
2948                0x4c, 0x61, 0xc8, 0xb5,
2949            ],
2950            Elements::Rightmost16_8 => [
2951                0xee, 0x76, 0x9c, 0x1c, 0xc8, 0xa3, 0xfd, 0xd1, 0x83, 0x8f, 0xc9, 0xf0, 0x49, 0x0c,
2952                0xe7, 0x03, 0x93, 0xfd, 0x91, 0xba, 0x3c, 0xbd, 0x4a, 0xbd, 0x08, 0x64, 0x9f, 0xb9,
2953                0xc4, 0x43, 0x11, 0xbd,
2954            ],
2955            Elements::Rightmost32_1 => [
2956                0xcb, 0x0d, 0xb5, 0x69, 0xa3, 0x61, 0x86, 0xa2, 0x56, 0x05, 0xa9, 0xd2, 0xe4, 0xe1,
2957                0x0a, 0x20, 0xc1, 0x11, 0xd5, 0x0c, 0x34, 0xf1, 0x72, 0x46, 0x52, 0x0b, 0xc4, 0x54,
2958                0xd8, 0x68, 0x28, 0x36,
2959            ],
2960            Elements::Rightmost32_16 => [
2961                0x06, 0xfa, 0xa3, 0xbe, 0x67, 0x8c, 0xd6, 0xfd, 0xd7, 0xf3, 0x11, 0x2e, 0xbf, 0x2c,
2962                0x48, 0x62, 0x7a, 0xfa, 0x78, 0x75, 0xf7, 0x06, 0x8d, 0x26, 0xa9, 0xcc, 0x04, 0x5b,
2963                0x2c, 0x8f, 0x11, 0xbc,
2964            ],
2965            Elements::Rightmost32_2 => [
2966                0x00, 0xb8, 0x81, 0x5a, 0xd7, 0x42, 0x3d, 0xd5, 0x8c, 0xb9, 0x8b, 0xe8, 0x2c, 0xad,
2967                0x26, 0x67, 0x5c, 0x3b, 0xf5, 0x4a, 0x0b, 0xed, 0xba, 0xde, 0x34, 0x64, 0xb4, 0xfe,
2968                0x5a, 0x4e, 0x8c, 0xe6,
2969            ],
2970            Elements::Rightmost32_4 => [
2971                0x3d, 0xfa, 0x7a, 0x20, 0x19, 0x8e, 0x42, 0xd6, 0xa7, 0x94, 0x8c, 0x8e, 0xd8, 0xe0,
2972                0xd4, 0x7e, 0xc7, 0xc0, 0x00, 0x7b, 0x3d, 0x68, 0x66, 0xca, 0x15, 0xe3, 0xda, 0x04,
2973                0x5b, 0x85, 0x63, 0xc7,
2974            ],
2975            Elements::Rightmost32_8 => [
2976                0x17, 0xb5, 0x8d, 0x6e, 0x30, 0x4b, 0x1c, 0x7e, 0x5d, 0xbf, 0x0c, 0x4d, 0xf6, 0xfc,
2977                0xc8, 0x03, 0xc0, 0x08, 0x94, 0x4c, 0x79, 0x95, 0x55, 0x5b, 0x94, 0xe1, 0x28, 0x9b,
2978                0x25, 0x49, 0xbe, 0x99,
2979            ],
2980            Elements::Rightmost64_1 => [
2981                0x5e, 0x8f, 0xb4, 0x9f, 0xac, 0xe0, 0x34, 0x48, 0x1d, 0xc6, 0x53, 0x61, 0x8e, 0x2a,
2982                0x8b, 0x65, 0xea, 0xf0, 0x99, 0x3f, 0x28, 0x84, 0x4c, 0xc9, 0xb1, 0x30, 0xca, 0xcc,
2983                0xe4, 0x5e, 0x82, 0xde,
2984            ],
2985            Elements::Rightmost64_16 => [
2986                0xc6, 0x4c, 0xa9, 0x96, 0x55, 0x36, 0xf2, 0x37, 0xbc, 0x4d, 0x16, 0x6e, 0x4a, 0xec,
2987                0xa5, 0x6e, 0xac, 0x26, 0x62, 0xe6, 0x3a, 0xcc, 0xb9, 0x8b, 0x6e, 0x54, 0x25, 0x60,
2988                0xf9, 0xe5, 0x38, 0xda,
2989            ],
2990            Elements::Rightmost64_2 => [
2991                0x83, 0xd2, 0xda, 0x6f, 0x34, 0x20, 0xd7, 0x79, 0xbc, 0xb8, 0xf6, 0x0d, 0x0b, 0x69,
2992                0x6e, 0xed, 0x74, 0xc3, 0x1d, 0xb0, 0x8a, 0xdd, 0xbe, 0xbd, 0x12, 0x35, 0xa5, 0xdf,
2993                0x8f, 0x59, 0xc4, 0x2f,
2994            ],
2995            Elements::Rightmost64_32 => [
2996                0x7d, 0x2d, 0xff, 0x6e, 0x3d, 0xd5, 0x04, 0xbb, 0x0e, 0x57, 0x03, 0xa0, 0x33, 0x58,
2997                0x6d, 0x27, 0xd9, 0x66, 0x44, 0xc0, 0x48, 0xab, 0x34, 0xa4, 0x5b, 0xf5, 0x35, 0x12,
2998                0x9d, 0x50, 0x11, 0x67,
2999            ],
3000            Elements::Rightmost64_4 => [
3001                0x84, 0x1b, 0xbd, 0x65, 0x27, 0x42, 0xdd, 0xd3, 0xad, 0xea, 0xe4, 0x3c, 0xfe, 0xd6,
3002                0x32, 0x9f, 0x2f, 0xd6, 0x2e, 0x6f, 0xec, 0xd0, 0xfd, 0x58, 0xe3, 0xc3, 0xfb, 0x8b,
3003                0x5a, 0x0e, 0x4d, 0xd5,
3004            ],
3005            Elements::Rightmost64_8 => [
3006                0xa0, 0xa6, 0x1c, 0x76, 0x58, 0xa1, 0x86, 0x23, 0xbf, 0x1d, 0x01, 0x1a, 0x97, 0x92,
3007                0xd5, 0x18, 0xfb, 0xd0, 0x24, 0x14, 0x2a, 0x90, 0x44, 0x00, 0xec, 0xde, 0xea, 0x92,
3008                0x45, 0x7a, 0x0a, 0x81,
3009            ],
3010            Elements::Rightmost8_1 => [
3011                0x99, 0x9b, 0x68, 0x6e, 0x60, 0xb3, 0xd1, 0xec, 0xd6, 0xc6, 0xd7, 0x7f, 0xbc, 0xa8,
3012                0x2c, 0xb2, 0xab, 0xbd, 0x41, 0x82, 0xc8, 0x21, 0x12, 0x67, 0x47, 0x5f, 0xa0, 0xc1,
3013                0x90, 0x1d, 0x89, 0xf9,
3014            ],
3015            Elements::Rightmost8_2 => [
3016                0x53, 0x07, 0xff, 0xbf, 0x51, 0x6c, 0xd0, 0xee, 0xf3, 0xff, 0x43, 0x87, 0xb9, 0x05,
3017                0x2c, 0x14, 0x4a, 0x4d, 0xfa, 0x23, 0x29, 0x23, 0x7c, 0x6b, 0x27, 0x49, 0x92, 0xb2,
3018                0xc8, 0x04, 0x7b, 0x60,
3019            ],
3020            Elements::Rightmost8_4 => [
3021                0x7f, 0x52, 0xe6, 0x45, 0xbb, 0xbb, 0xd7, 0x92, 0x69, 0xc4, 0x3e, 0xf0, 0x2d, 0xb9,
3022                0x82, 0xf8, 0xc6, 0x36, 0x33, 0xc1, 0x79, 0xe4, 0x06, 0x91, 0x73, 0x93, 0x36, 0x04,
3023                0xcc, 0x63, 0x5b, 0xca,
3024            ],
3025            Elements::ScalarAdd => [
3026                0x34, 0xba, 0xa4, 0x0b, 0x2e, 0x0a, 0xa8, 0xcb, 0x7e, 0x97, 0xc7, 0x3e, 0x3e, 0xd3,
3027                0xb3, 0x65, 0xa1, 0x5b, 0x7c, 0x3f, 0x76, 0x61, 0xfb, 0x19, 0x71, 0x5e, 0xc6, 0x05,
3028                0xc1, 0x14, 0x9d, 0x11,
3029            ],
3030            Elements::ScalarInvert => [
3031                0x62, 0x31, 0xbd, 0xab, 0x73, 0xca, 0x34, 0xea, 0x7e, 0x83, 0x7d, 0xaa, 0xd6, 0x92,
3032                0xed, 0xe5, 0xba, 0xbf, 0xae, 0x09, 0xb5, 0x75, 0x6d, 0x2a, 0xb3, 0x6c, 0x5a, 0x36,
3033                0x47, 0x5a, 0x65, 0x89,
3034            ],
3035            Elements::ScalarIsZero => [
3036                0xf7, 0x5e, 0xda, 0x06, 0xce, 0x6a, 0xf0, 0x9f, 0xae, 0x37, 0xdb, 0x4e, 0x62, 0x25,
3037                0xe6, 0xa8, 0xac, 0x86, 0xa2, 0x36, 0x37, 0x62, 0x7d, 0x62, 0x64, 0x09, 0x19, 0x0f,
3038                0xf3, 0xb3, 0x9d, 0x90,
3039            ],
3040            Elements::ScalarMultiply => [
3041                0xb2, 0xbc, 0xc3, 0x90, 0xd6, 0x37, 0xb9, 0xe0, 0x3f, 0xbf, 0xc4, 0x2f, 0xff, 0x71,
3042                0xd2, 0x2e, 0x72, 0x00, 0xf6, 0x93, 0x29, 0xce, 0xf7, 0x16, 0x9e, 0x68, 0xa8, 0xc7,
3043                0x1a, 0x7f, 0x0a, 0x4b,
3044            ],
3045            Elements::ScalarMultiplyLambda => [
3046                0x89, 0xd5, 0x85, 0x5c, 0x5f, 0x85, 0xc0, 0x03, 0x5d, 0x27, 0xb0, 0xc0, 0x9e, 0x20,
3047                0x33, 0x0b, 0x00, 0x1c, 0x68, 0x4b, 0x59, 0x86, 0xab, 0xce, 0xd8, 0x36, 0x0c, 0xd3,
3048                0x9b, 0x08, 0xc4, 0xe1,
3049            ],
3050            Elements::ScalarNegate => [
3051                0x07, 0x05, 0xac, 0xdf, 0xb8, 0x66, 0x40, 0x00, 0x0e, 0x3d, 0x3b, 0xad, 0x50, 0x9a,
3052                0x14, 0xa7, 0x8c, 0x17, 0x1f, 0x61, 0xed, 0xc0, 0x84, 0x23, 0xb0, 0x42, 0xb9, 0x47,
3053                0x48, 0x43, 0x9c, 0xf8,
3054            ],
3055            Elements::ScalarNormalize => [
3056                0xa0, 0x61, 0xe1, 0x9d, 0x75, 0xc3, 0x25, 0xa2, 0x6d, 0x56, 0x5a, 0xad, 0x7e, 0x3f,
3057                0x9a, 0xe2, 0x6b, 0x22, 0x2f, 0x25, 0xe8, 0x02, 0x17, 0x4f, 0x6b, 0xac, 0xd5, 0x11,
3058                0x27, 0x7a, 0xea, 0xa5,
3059            ],
3060            Elements::ScalarSquare => [
3061                0x49, 0xf7, 0x34, 0xa2, 0x65, 0x9c, 0xa0, 0xab, 0x7c, 0x9e, 0x67, 0xfc, 0xfc, 0x3c,
3062                0x0d, 0x72, 0xaf, 0x0f, 0x91, 0x7c, 0x9e, 0xdc, 0xb9, 0x92, 0x9d, 0x17, 0x7a, 0x0f,
3063                0x0d, 0xe8, 0x9d, 0x59,
3064            ],
3065            Elements::Scale => [
3066                0xc0, 0x45, 0x43, 0xdc, 0x85, 0xef, 0x11, 0x37, 0x4a, 0x93, 0x0f, 0x4a, 0x94, 0x8e,
3067                0xb7, 0x35, 0xa6, 0x50, 0x0a, 0x1a, 0x71, 0x58, 0xd5, 0x73, 0x12, 0x3f, 0x07, 0x21,
3068                0x71, 0x75, 0xf3, 0x18,
3069            ],
3070            Elements::ScriptCMR => [
3071                0xec, 0x15, 0xf5, 0x9c, 0x52, 0x4d, 0x94, 0x14, 0x69, 0x81, 0x19, 0x54, 0x65, 0x4f,
3072                0x63, 0x58, 0x30, 0xec, 0xd7, 0xde, 0x51, 0x76, 0x62, 0xb2, 0x5c, 0xa4, 0xe8, 0xd0,
3073                0x5c, 0x2c, 0xce, 0x89,
3074            ],
3075            Elements::Sha256Block => [
3076                0x0c, 0x97, 0xa0, 0x08, 0xad, 0xe8, 0x7b, 0xb1, 0xe0, 0xac, 0x06, 0xb7, 0xd0, 0x31,
3077                0x30, 0x23, 0x36, 0x28, 0x58, 0xef, 0x90, 0xec, 0x14, 0xec, 0x9c, 0xb9, 0x5f, 0x0d,
3078                0xa9, 0x64, 0xe0, 0x08,
3079            ],
3080            Elements::Sha256Ctx8Add1 => [
3081                0x37, 0x06, 0x6c, 0x67, 0xad, 0x95, 0x24, 0x9d, 0x4b, 0xa6, 0xe1, 0x81, 0x44, 0xca,
3082                0x0a, 0x41, 0x5d, 0x9c, 0x83, 0x2a, 0xa6, 0xb6, 0x06, 0x28, 0xe9, 0x7c, 0x96, 0x7e,
3083                0xb1, 0x79, 0x33, 0x83,
3084            ],
3085            Elements::Sha256Ctx8Add128 => [
3086                0x2d, 0xcf, 0x48, 0x4c, 0x25, 0x7f, 0x67, 0x94, 0x0c, 0xa3, 0x75, 0xba, 0x98, 0xe8,
3087                0x3c, 0xe0, 0xe2, 0xa7, 0x1e, 0x16, 0xda, 0x50, 0x51, 0xd1, 0xbb, 0x19, 0xfb, 0x5f,
3088                0x34, 0x6f, 0x15, 0x4f,
3089            ],
3090            Elements::Sha256Ctx8Add16 => [
3091                0x82, 0x99, 0x25, 0x20, 0x40, 0xcb, 0x39, 0xe3, 0x26, 0xa2, 0x48, 0xd5, 0xc7, 0x88,
3092                0xf9, 0x51, 0x6d, 0x15, 0xa2, 0xff, 0x41, 0x45, 0xbb, 0x64, 0xad, 0x65, 0x77, 0xae,
3093                0x1a, 0x3e, 0xf7, 0x27,
3094            ],
3095            Elements::Sha256Ctx8Add2 => [
3096                0x8b, 0xae, 0x3e, 0x7e, 0x1e, 0xd4, 0xdc, 0xba, 0x6e, 0x64, 0x5a, 0xa1, 0x43, 0x41,
3097                0xbb, 0xae, 0x0d, 0xbb, 0x3a, 0xe2, 0x1b, 0xb6, 0x3d, 0xc0, 0x30, 0xca, 0x0e, 0x44,
3098                0x7a, 0x85, 0x7e, 0xc2,
3099            ],
3100            Elements::Sha256Ctx8Add256 => [
3101                0x44, 0xb7, 0x17, 0xe1, 0x97, 0x09, 0x99, 0xb6, 0x6b, 0x69, 0x3d, 0x8c, 0x9d, 0x1d,
3102                0x3b, 0x06, 0x05, 0xc2, 0xb7, 0xa6, 0x21, 0x3e, 0x6b, 0xa5, 0x6c, 0x69, 0xaf, 0x8d,
3103                0x7f, 0xae, 0x16, 0x86,
3104            ],
3105            Elements::Sha256Ctx8Add32 => [
3106                0x39, 0x23, 0x9a, 0x43, 0xa8, 0x4b, 0xac, 0x6f, 0x29, 0x69, 0xbf, 0xa9, 0x5b, 0xfe,
3107                0x6a, 0x04, 0xfc, 0xba, 0x80, 0x92, 0x89, 0x59, 0x39, 0xf1, 0x2a, 0x1c, 0xe0, 0xe2,
3108                0x63, 0x21, 0xec, 0x10,
3109            ],
3110            Elements::Sha256Ctx8Add4 => [
3111                0xd7, 0xd7, 0x45, 0x61, 0x4b, 0x37, 0xa7, 0xe0, 0x7d, 0xce, 0x22, 0xf6, 0x4e, 0x7b,
3112                0x1e, 0xdf, 0xe2, 0x3b, 0xed, 0xa8, 0x51, 0xf1, 0xe7, 0x6f, 0x1a, 0x6b, 0x02, 0x8f,
3113                0xcc, 0x5e, 0x9f, 0xc0,
3114            ],
3115            Elements::Sha256Ctx8Add512 => [
3116                0xbe, 0x36, 0x80, 0x32, 0xd8, 0x6e, 0xbc, 0xf2, 0x13, 0xca, 0x45, 0xba, 0x6e, 0xca,
3117                0xb5, 0x4c, 0xb1, 0xf2, 0x66, 0x1d, 0x40, 0x3d, 0xa0, 0x59, 0x06, 0x30, 0x0b, 0xc5,
3118                0x11, 0x37, 0xaa, 0xb5,
3119            ],
3120            Elements::Sha256Ctx8Add64 => [
3121                0xfd, 0xc4, 0x34, 0xce, 0x83, 0xdb, 0xdc, 0xe0, 0x78, 0x2a, 0xa3, 0x6d, 0x41, 0x8d,
3122                0xef, 0x7f, 0x99, 0xaf, 0x82, 0x93, 0xaf, 0xb2, 0x9e, 0x83, 0x9f, 0xe4, 0x94, 0x8f,
3123                0x62, 0x34, 0xf7, 0x7f,
3124            ],
3125            Elements::Sha256Ctx8Add8 => [
3126                0x9c, 0x98, 0x83, 0x30, 0x79, 0x9a, 0x68, 0x0b, 0xfe, 0x73, 0xd7, 0xca, 0xa3, 0x68,
3127                0x9f, 0xe4, 0xe4, 0x83, 0xda, 0x4e, 0xe6, 0xd8, 0x18, 0x58, 0x79, 0x27, 0xc7, 0xf4,
3128                0x33, 0x92, 0xde, 0xf7,
3129            ],
3130            Elements::Sha256Ctx8AddBuffer511 => [
3131                0xc0, 0x27, 0xe1, 0x06, 0x29, 0x96, 0xae, 0x94, 0xac, 0x39, 0x71, 0xa2, 0xc4, 0xfa,
3132                0xe5, 0x49, 0x97, 0xeb, 0xf0, 0x9b, 0x9f, 0x7d, 0xa5, 0x75, 0x63, 0x9b, 0xe6, 0x17,
3133                0x16, 0x7f, 0x02, 0xe3,
3134            ],
3135            Elements::Sha256Ctx8Finalize => [
3136                0xcb, 0xba, 0x1f, 0x1d, 0x8a, 0x97, 0xab, 0x4d, 0x1f, 0xa9, 0x68, 0x6e, 0x7a, 0xee,
3137                0xf0, 0x66, 0xfb, 0x5b, 0xf2, 0x90, 0x71, 0x6e, 0xae, 0x10, 0xe7, 0x0b, 0x61, 0x99,
3138                0x96, 0xc5, 0x95, 0x94,
3139            ],
3140            Elements::Sha256Ctx8Init => [
3141                0xa5, 0x3c, 0x76, 0x79, 0xe3, 0xae, 0x03, 0x47, 0xd4, 0xd7, 0x91, 0x26, 0xa7, 0xc7,
3142                0xe4, 0x9a, 0xc0, 0xde, 0xc9, 0x0c, 0xdf, 0x93, 0x57, 0x99, 0xcd, 0xdb, 0x58, 0xda,
3143                0x8f, 0x44, 0x96, 0xe4,
3144            ],
3145            Elements::Sha256Iv => [
3146                0x73, 0x89, 0xf0, 0x02, 0x53, 0x05, 0xdc, 0xe8, 0x28, 0xd4, 0xa1, 0xfe, 0x83, 0x74,
3147                0x30, 0x46, 0xa3, 0x67, 0xc9, 0x23, 0xf1, 0x8a, 0xbf, 0x36, 0x5e, 0x39, 0x1e, 0x5b,
3148                0x04, 0xaf, 0x1a, 0x47,
3149            ],
3150            Elements::SigAllHash => [
3151                0x6a, 0xc5, 0x3d, 0x3f, 0x93, 0xb8, 0xca, 0xf3, 0xea, 0x85, 0x34, 0xae, 0x61, 0x2a,
3152                0xbd, 0x32, 0x32, 0x5d, 0x2b, 0x0f, 0xec, 0x17, 0xde, 0x36, 0xaf, 0x0f, 0x71, 0xaa,
3153                0x97, 0x8f, 0x7c, 0xde,
3154            ],
3155            Elements::Some1 => [
3156                0xfb, 0xda, 0xd6, 0xb0, 0x22, 0xa0, 0xc7, 0x8f, 0xf3, 0x56, 0x04, 0xaa, 0xfa, 0xcd,
3157                0x27, 0xcc, 0x10, 0xf5, 0x1e, 0xe0, 0x69, 0x8c, 0x41, 0xf1, 0xad, 0xa9, 0x03, 0x97,
3158                0x61, 0x8d, 0x52, 0x6f,
3159            ],
3160            Elements::Some16 => [
3161                0x7e, 0x2c, 0xcd, 0xbf, 0xc2, 0x4d, 0xd8, 0xd8, 0xa9, 0x04, 0xb0, 0x17, 0xdd, 0x4f,
3162                0x57, 0xe7, 0xc8, 0x74, 0x96, 0x34, 0x8a, 0xca, 0x7d, 0x04, 0x58, 0xc9, 0xd1, 0x6b,
3163                0x68, 0xbc, 0xda, 0x1c,
3164            ],
3165            Elements::Some32 => [
3166                0x45, 0x36, 0xae, 0xb1, 0x21, 0xc4, 0x27, 0x3f, 0xfc, 0x2a, 0x48, 0xfe, 0xd9, 0xee,
3167                0xd0, 0x31, 0x2e, 0xbd, 0x97, 0x2d, 0xec, 0x56, 0x81, 0xf4, 0x7e, 0xad, 0x0f, 0x62,
3168                0xd9, 0x54, 0x45, 0x2a,
3169            ],
3170            Elements::Some64 => [
3171                0x7f, 0x0b, 0xbd, 0x9d, 0x66, 0x31, 0xc1, 0x30, 0x9f, 0x90, 0x1c, 0x2f, 0x0d, 0x7a,
3172                0x0d, 0x28, 0x4a, 0x34, 0x41, 0x6c, 0xf7, 0x50, 0xdb, 0x1f, 0xe2, 0xb9, 0xf3, 0xd6,
3173                0xed, 0x70, 0x94, 0x09,
3174            ],
3175            Elements::Some8 => [
3176                0x2d, 0x8c, 0x8f, 0x71, 0xee, 0x5e, 0x75, 0x82, 0xf0, 0xed, 0x65, 0xf5, 0x26, 0xc0,
3177                0x26, 0x05, 0xdc, 0xb9, 0x3c, 0x0b, 0xdd, 0xb9, 0x43, 0x3a, 0xff, 0x3f, 0x25, 0xc2,
3178                0x28, 0xac, 0xda, 0x8a,
3179            ],
3180            Elements::Subtract16 => [
3181                0x56, 0x9e, 0x6c, 0x6b, 0x39, 0xe7, 0xd8, 0x12, 0x65, 0x9b, 0x67, 0xaa, 0xc0, 0x8a,
3182                0xd1, 0x50, 0x99, 0xee, 0xad, 0x79, 0x8f, 0xd1, 0xd4, 0x2d, 0xa1, 0x7e, 0xe3, 0xf0,
3183                0xd4, 0xd4, 0x49, 0x2a,
3184            ],
3185            Elements::Subtract32 => [
3186                0x19, 0xd3, 0x5e, 0x0a, 0xf1, 0xe1, 0x65, 0x14, 0xa6, 0xdf, 0xc2, 0x9a, 0x91, 0x41,
3187                0x87, 0x13, 0x39, 0x64, 0xc4, 0x80, 0xf6, 0x60, 0xe7, 0xeb, 0x92, 0x4e, 0xe1, 0x6d,
3188                0xba, 0xa2, 0x49, 0xcb,
3189            ],
3190            Elements::Subtract64 => [
3191                0x52, 0x3e, 0x11, 0x86, 0x28, 0xbf, 0x3a, 0xc1, 0xa6, 0xbe, 0x5a, 0x72, 0xbd, 0xb1,
3192                0x14, 0x1b, 0x89, 0xe0, 0xe0, 0x01, 0xe4, 0x02, 0xad, 0xda, 0x82, 0x58, 0x79, 0x00,
3193                0x03, 0xf8, 0x8a, 0xd8,
3194            ],
3195            Elements::Subtract8 => [
3196                0x40, 0x95, 0x0b, 0x86, 0xf6, 0xf1, 0xf9, 0x93, 0x55, 0xde, 0xe1, 0x1f, 0x77, 0xda,
3197                0xf2, 0x79, 0xa0, 0xcb, 0x6c, 0x6d, 0x15, 0x6a, 0xe4, 0x4b, 0x7d, 0x5d, 0x25, 0x71,
3198                0x64, 0xb2, 0x67, 0xc5,
3199            ],
3200            Elements::Swu => [
3201                0xab, 0xf7, 0x0b, 0xe0, 0x0b, 0x30, 0xf5, 0x77, 0xf9, 0x87, 0xcb, 0x50, 0x48, 0x89,
3202                0x96, 0xba, 0x35, 0x96, 0xdb, 0xf9, 0xc1, 0xe8, 0x44, 0xa8, 0xb1, 0xb8, 0xb7, 0x10,
3203                0x85, 0x3b, 0x65, 0xeb,
3204            ],
3205            Elements::TapEnvHash => [
3206                0x72, 0x27, 0x07, 0x71, 0x93, 0xec, 0x17, 0x41, 0x8e, 0xbf, 0x78, 0x77, 0xaf, 0xdc,
3207                0x70, 0x97, 0xbd, 0x5e, 0xed, 0x57, 0xe8, 0x26, 0xdf, 0x66, 0x05, 0xc6, 0x48, 0x69,
3208                0x1d, 0x00, 0x34, 0x03,
3209            ],
3210            Elements::TapdataInit => [
3211                0x6c, 0x67, 0xe5, 0xc1, 0x07, 0x35, 0x30, 0x5e, 0xe7, 0xde, 0xb5, 0x9a, 0x6c, 0x6a,
3212                0xc2, 0xef, 0xfc, 0xab, 0x4f, 0xf7, 0xbb, 0x47, 0x9e, 0xa7, 0x00, 0x81, 0x60, 0x6e,
3213                0x60, 0x48, 0x4c, 0xa7,
3214            ],
3215            Elements::TapleafHash => [
3216                0xd4, 0x5a, 0x66, 0x1f, 0xc9, 0x10, 0x0e, 0x2e, 0xa9, 0xdf, 0x78, 0x9c, 0xa2, 0x34,
3217                0x6d, 0xa8, 0x42, 0x71, 0x7e, 0xf6, 0xa8, 0xc8, 0x24, 0x18, 0x4f, 0x2d, 0xa8, 0xc7,
3218                0xfb, 0x01, 0x62, 0x03,
3219            ],
3220            Elements::TapleafVersion => [
3221                0xdd, 0xb0, 0xed, 0xd6, 0xce, 0x1e, 0x07, 0x98, 0x3d, 0x1a, 0x62, 0x26, 0xf0, 0x0b,
3222                0x12, 0x51, 0x89, 0xaf, 0x13, 0xbd, 0x5c, 0xd0, 0x68, 0x12, 0x3a, 0xd4, 0x3f, 0x48,
3223                0x20, 0x1b, 0x00, 0x6f,
3224            ],
3225            Elements::Tappath => [
3226                0x42, 0xc0, 0xc1, 0xf2, 0xef, 0x0e, 0x28, 0xae, 0x7d, 0xef, 0xa1, 0x5e, 0x84, 0xa0,
3227                0x6f, 0x35, 0xfb, 0xf6, 0xfc, 0x89, 0x7b, 0x29, 0xf6, 0x83, 0xfe, 0x1a, 0x24, 0xe3,
3228                0x0d, 0xc5, 0x8b, 0xaf,
3229            ],
3230            Elements::TappathHash => [
3231                0x9d, 0xa9, 0x06, 0xe3, 0xec, 0x08, 0x60, 0x65, 0xbe, 0x14, 0x41, 0x36, 0xb5, 0x16,
3232                0x20, 0xb6, 0x6d, 0xdf, 0x4d, 0x71, 0x38, 0x57, 0x35, 0x4e, 0xba, 0x3b, 0x97, 0xc7,
3233                0x75, 0x85, 0xf4, 0x43,
3234            ],
3235            Elements::TotalFee => [
3236                0x4e, 0xba, 0x3f, 0x22, 0xba, 0xc0, 0xa4, 0x65, 0xe4, 0xd0, 0x8a, 0x9a, 0xc4, 0x05,
3237                0x18, 0xef, 0x97, 0x2c, 0x2e, 0x86, 0x12, 0x09, 0x0a, 0x51, 0xe3, 0x20, 0x3f, 0xcb,
3238                0xd2, 0xf4, 0xed, 0xbe,
3239            ],
3240            Elements::TransactionId => [
3241                0x08, 0xb8, 0xeb, 0x3c, 0x2d, 0x2d, 0x95, 0x84, 0x58, 0xe1, 0x63, 0xe9, 0x43, 0x34,
3242                0x95, 0x0c, 0x0b, 0xb9, 0x14, 0xa0, 0xb9, 0xd2, 0x14, 0xfc, 0x5e, 0x9d, 0xe8, 0xf7,
3243                0x0a, 0x17, 0xa0, 0xd4,
3244            ],
3245            Elements::TxHash => [
3246                0xc3, 0x61, 0x02, 0xae, 0xda, 0x8b, 0xcf, 0x62, 0xa8, 0x5e, 0x71, 0x4b, 0x18, 0xe4,
3247                0xc5, 0x0c, 0xd4, 0x17, 0xff, 0xbf, 0x86, 0xd7, 0x37, 0x34, 0xe0, 0x2c, 0xbf, 0xcb,
3248                0x53, 0x13, 0xfc, 0xcf,
3249            ],
3250            Elements::TxIsFinal => [
3251                0x8b, 0x31, 0x45, 0x72, 0x24, 0x70, 0xa0, 0x7d, 0xe9, 0x0a, 0x28, 0xba, 0x89, 0xf3,
3252                0xf8, 0x86, 0x42, 0x61, 0x00, 0x96, 0x54, 0xce, 0x86, 0x6c, 0xd8, 0xea, 0xf7, 0x6c,
3253                0x5d, 0x86, 0x26, 0xeb,
3254            ],
3255            Elements::TxLockDistance => [
3256                0x4c, 0x77, 0x73, 0xb8, 0x18, 0xcb, 0x7e, 0xe5, 0xf5, 0x4f, 0x92, 0x5a, 0xad, 0x01,
3257                0x56, 0x77, 0xa0, 0x43, 0xa7, 0x2f, 0x31, 0x6a, 0x18, 0x7c, 0xc2, 0x8c, 0x69, 0x6c,
3258                0xfc, 0xb9, 0x08, 0x07,
3259            ],
3260            Elements::TxLockDuration => [
3261                0xcc, 0x9c, 0x64, 0xc8, 0xb6, 0xeb, 0x4b, 0xf0, 0x96, 0x94, 0xaf, 0x5a, 0x35, 0xd9,
3262                0x57, 0xa4, 0x05, 0xe6, 0x6c, 0x1b, 0x35, 0x22, 0x4e, 0xd6, 0x75, 0x87, 0x89, 0x18,
3263                0x45, 0x24, 0x40, 0xb2,
3264            ],
3265            Elements::TxLockHeight => [
3266                0xc2, 0x02, 0x57, 0xf8, 0xe7, 0x6e, 0xcd, 0x0a, 0xe7, 0xad, 0x63, 0x4f, 0x5d, 0xfa,
3267                0x68, 0xae, 0x9a, 0x5e, 0xde, 0xd0, 0xe2, 0xee, 0xbe, 0x4e, 0xe5, 0x2c, 0xb4, 0x7a,
3268                0xcf, 0xb0, 0x26, 0x4c,
3269            ],
3270            Elements::TxLockTime => [
3271                0x3e, 0xe1, 0x90, 0x05, 0x42, 0xd0, 0x1e, 0xfd, 0x4e, 0x9a, 0x01, 0xd4, 0xef, 0xb1,
3272                0xf9, 0xdd, 0x99, 0x2c, 0xed, 0x35, 0xb7, 0xa7, 0x52, 0xf8, 0x3d, 0xa5, 0x93, 0x38,
3273                0x15, 0x38, 0xde, 0xa4,
3274            ],
3275            Elements::Verify => [
3276                0x34, 0x3e, 0x6d, 0xc1, 0x6b, 0x3f, 0x52, 0xe8, 0x3e, 0x3b, 0x4c, 0xcc, 0x99, 0xb8,
3277                0xc6, 0xf9, 0x6a, 0x07, 0x4f, 0xe3, 0x99, 0x32, 0x7a, 0xf3, 0x64, 0xbc, 0x28, 0x5e,
3278                0x29, 0x97, 0x45, 0xa2,
3279            ],
3280            Elements::Version => [
3281                0x08, 0x7f, 0xc9, 0x5c, 0x41, 0x00, 0x33, 0x48, 0x75, 0x9f, 0xd8, 0x40, 0x37, 0x2c,
3282                0x6f, 0x91, 0x2d, 0x9b, 0xe4, 0xe6, 0x1e, 0xee, 0x3c, 0x6a, 0x7a, 0x40, 0xdc, 0x13,
3283                0xc9, 0xc1, 0xbc, 0x70,
3284            ],
3285            Elements::Xor1 => [
3286                0x9d, 0xc9, 0xfe, 0x42, 0xf7, 0xeb, 0x34, 0x64, 0x9f, 0x1c, 0x72, 0xd2, 0xe5, 0xdd,
3287                0x16, 0x7d, 0xb2, 0x1b, 0xe5, 0x32, 0x13, 0x72, 0xd5, 0xca, 0x7f, 0x6a, 0x18, 0x4f,
3288                0x93, 0xe0, 0x5e, 0xe3,
3289            ],
3290            Elements::Xor16 => [
3291                0x1f, 0xca, 0xf4, 0x0b, 0xde, 0xdd, 0x72, 0xe7, 0x97, 0xb0, 0x9f, 0xe7, 0x87, 0x53,
3292                0xb0, 0xab, 0x27, 0x87, 0x2c, 0x0b, 0xd1, 0x2b, 0x03, 0x49, 0x55, 0xfb, 0xfa, 0xc2,
3293                0x38, 0x12, 0xef, 0x26,
3294            ],
3295            Elements::Xor32 => [
3296                0x1d, 0x49, 0xfc, 0x94, 0xf2, 0x2b, 0x5d, 0x31, 0xb7, 0xf9, 0xef, 0xb5, 0x37, 0x8e,
3297                0x5f, 0x8a, 0x42, 0x62, 0x6a, 0xed, 0x4e, 0x92, 0x79, 0x93, 0x48, 0xd6, 0xb7, 0x88,
3298                0xdf, 0xe8, 0x6b, 0x1c,
3299            ],
3300            Elements::Xor64 => [
3301                0x7a, 0x3f, 0x3f, 0x55, 0x20, 0x47, 0x83, 0x65, 0x33, 0x44, 0x31, 0x1d, 0x1d, 0xc5,
3302                0x09, 0xd3, 0x5b, 0x66, 0x39, 0xc0, 0xd8, 0xb9, 0x67, 0xa2, 0x07, 0x80, 0x6c, 0xd8,
3303                0x7d, 0x31, 0xd6, 0xe6,
3304            ],
3305            Elements::Xor8 => [
3306                0xd8, 0x33, 0x5f, 0x48, 0x90, 0xc1, 0xd8, 0xed, 0x76, 0x6c, 0x71, 0x35, 0x90, 0x2e,
3307                0x01, 0xa0, 0x09, 0x4e, 0x3a, 0x98, 0x16, 0xf7, 0x0c, 0x84, 0x7c, 0xc3, 0xd7, 0xc0,
3308                0x00, 0x40, 0x6e, 0xfe,
3309            ],
3310            Elements::XorXor1 => [
3311                0x1e, 0x10, 0x7b, 0x05, 0xff, 0x94, 0x1d, 0x31, 0xd7, 0x57, 0x8b, 0x43, 0x73, 0x28,
3312                0xba, 0x52, 0xf3, 0xff, 0x20, 0xa0, 0x68, 0xc0, 0xd2, 0xbd, 0xef, 0x08, 0x76, 0x80,
3313                0x93, 0xcc, 0x7c, 0x63,
3314            ],
3315            Elements::XorXor16 => [
3316                0xb7, 0x76, 0x98, 0x9d, 0xa5, 0x09, 0x5c, 0x4b, 0xe9, 0x4b, 0x1a, 0xef, 0x75, 0x94,
3317                0x66, 0xe1, 0x1f, 0x63, 0x9c, 0x19, 0x39, 0x47, 0x1f, 0xa1, 0x8e, 0x36, 0xe7, 0xe4,
3318                0x90, 0xc3, 0x89, 0x61,
3319            ],
3320            Elements::XorXor32 => [
3321                0xd1, 0x68, 0xfa, 0xc1, 0xac, 0x7f, 0xc4, 0x83, 0x57, 0xbe, 0x1b, 0x65, 0x33, 0x75,
3322                0xec, 0x5e, 0x3f, 0x05, 0x82, 0x3a, 0xae, 0x6a, 0xc9, 0x85, 0xe9, 0x40, 0x3e, 0xea,
3323                0xb1, 0x2b, 0xb9, 0xf8,
3324            ],
3325            Elements::XorXor64 => [
3326                0x36, 0x1c, 0x57, 0x93, 0x0e, 0xf9, 0x7d, 0x49, 0xcb, 0xc6, 0x79, 0xfa, 0xef, 0x1e,
3327                0x3b, 0xcf, 0xfb, 0x78, 0x79, 0x95, 0xb9, 0x61, 0xe5, 0x53, 0x7d, 0x2b, 0x1e, 0xeb,
3328                0xc9, 0xc9, 0xa6, 0xe8,
3329            ],
3330            Elements::XorXor8 => [
3331                0xc2, 0xda, 0x6e, 0x9c, 0xa6, 0x4d, 0x8a, 0x73, 0xc1, 0x77, 0x26, 0x67, 0xb3, 0xd7,
3332                0xa0, 0x93, 0x8b, 0xcb, 0x8a, 0x6c, 0x43, 0xfd, 0x04, 0x73, 0xee, 0xc7, 0x1b, 0x77,
3333                0x49, 0x4a, 0xad, 0x94,
3334            ],
3335        };
3336
3337        Cmr(Midstate(bytes))
3338    }
3339
3340    fn source_ty(&self) -> TypeName {
3341        let name: &'static [u8] = match self {
3342            Elements::Add16 => b"i",
3343            Elements::Add32 => b"l",
3344            Elements::Add64 => b"*ll",
3345            Elements::Add8 => b"****22*22**22*22***22*22**22*22",
3346            Elements::All16 => b"****22*22**22*22***22*22**22*22",
3347            Elements::All32 => b"i",
3348            Elements::All64 => b"l",
3349            Elements::All8 => b"***22*22**22*22",
3350            Elements::And1 => b"*22",
3351            Elements::And16 => b"i",
3352            Elements::And32 => b"l",
3353            Elements::And64 => b"*ll",
3354            Elements::And8 => b"****22*22**22*22***22*22**22*22",
3355            Elements::AnnexHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh+1h",
3356            Elements::AssetAmountHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+*2hh+*2hl",
3357            Elements::Bip0340Verify => b"**hh*hh",
3358            Elements::BuildTapbranch => b"*hh",
3359            Elements::BuildTapleafSimplicity => b"h",
3360            Elements::BuildTaptweak => b"*hh",
3361            Elements::CalculateAsset => b"h",
3362            Elements::CalculateConfidentialToken => b"h",
3363            Elements::CalculateExplicitToken => b"h",
3364            Elements::CalculateIssuanceEntropy => b"**hih",
3365            Elements::Ch1 => b"*2*22",
3366            Elements::Ch16 => b"*****22*22**22*22***22*22**22*22i",
3367            Elements::Ch32 => b"*il",
3368            Elements::Ch64 => b"*l*ll",
3369            Elements::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3370            Elements::CheckLockDistance => b"****22*22**22*22***22*22**22*22",
3371            Elements::CheckLockDuration => b"****22*22**22*22***22*22**22*22",
3372            Elements::CheckLockHeight => b"i",
3373            Elements::CheckLockTime => b"i",
3374            Elements::CheckSigVerify => b"**h*hh*hh",
3375            Elements::Complement1 => b"2",
3376            Elements::Complement16 => b"****22*22**22*22***22*22**22*22",
3377            Elements::Complement32 => b"i",
3378            Elements::Complement64 => b"l",
3379            Elements::Complement8 => b"***22*22**22*22",
3380            Elements::CurrentAmount => b"1",
3381            Elements::CurrentAnnexHash => b"1",
3382            Elements::CurrentAsset => b"1",
3383            Elements::CurrentIndex => b"1",
3384            Elements::CurrentIssuanceAssetAmount => b"1",
3385            Elements::CurrentIssuanceAssetProof => b"1",
3386            Elements::CurrentIssuanceTokenAmount => b"1",
3387            Elements::CurrentIssuanceTokenProof => b"1",
3388            Elements::CurrentNewIssuanceContract => b"1",
3389            Elements::CurrentPegin => b"1",
3390            Elements::CurrentPrevOutpoint => b"1",
3391            Elements::CurrentReissuanceBlinding => b"1",
3392            Elements::CurrentReissuanceEntropy => b"1",
3393            Elements::CurrentScriptHash => b"1",
3394            Elements::CurrentScriptSigHash => b"1",
3395            Elements::CurrentSequence => b"1",
3396            Elements::Decompress => b"*2h",
3397            Elements::Decrement16 => b"****22*22**22*22***22*22**22*22",
3398            Elements::Decrement32 => b"i",
3399            Elements::Decrement64 => b"l",
3400            Elements::Decrement8 => b"***22*22**22*22",
3401            Elements::DivMod128_64 => b"**lll",
3402            Elements::DivMod16 => b"i",
3403            Elements::DivMod32 => b"l",
3404            Elements::DivMod64 => b"*ll",
3405            Elements::DivMod8 => b"****22*22**22*22***22*22**22*22",
3406            Elements::Divide16 => b"i",
3407            Elements::Divide32 => b"l",
3408            Elements::Divide64 => b"*ll",
3409            Elements::Divide8 => b"****22*22**22*22***22*22**22*22",
3410            Elements::Divides16 => b"i",
3411            Elements::Divides32 => b"l",
3412            Elements::Divides64 => b"*ll",
3413            Elements::Divides8 => b"****22*22**22*22***22*22**22*22",
3414            Elements::Eq1 => b"*22",
3415            Elements::Eq16 => b"i",
3416            Elements::Eq256 => b"*hh",
3417            Elements::Eq32 => b"l",
3418            Elements::Eq64 => b"*ll",
3419            Elements::Eq8 => b"****22*22**22*22***22*22**22*22",
3420            Elements::FeAdd => b"*hh",
3421            Elements::FeInvert => b"h",
3422            Elements::FeIsOdd => b"h",
3423            Elements::FeIsZero => b"h",
3424            Elements::FeMultiply => b"*hh",
3425            Elements::FeMultiplyBeta => b"h",
3426            Elements::FeNegate => b"h",
3427            Elements::FeNormalize => b"h",
3428            Elements::FeSquare => b"h",
3429            Elements::FeSquareRoot => b"h",
3430            Elements::FullAdd16 => b"*2i",
3431            Elements::FullAdd32 => b"*2l",
3432            Elements::FullAdd64 => b"*2*ll",
3433            Elements::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
3434            Elements::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3435            Elements::FullDecrement32 => b"*2i",
3436            Elements::FullDecrement64 => b"*2l",
3437            Elements::FullDecrement8 => b"*2***22*22**22*22",
3438            Elements::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3439            Elements::FullIncrement32 => b"*2i",
3440            Elements::FullIncrement64 => b"*2l",
3441            Elements::FullIncrement8 => b"*2***22*22**22*22",
3442            Elements::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
3443            Elements::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3444            Elements::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3445            Elements::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3446            Elements::FullLeftShift32_1 => b"*i2",
3447            Elements::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3448            Elements::FullLeftShift32_2 => b"*i*22",
3449            Elements::FullLeftShift32_4 => b"*i**22*22",
3450            Elements::FullLeftShift32_8 => b"*i***22*22**22*22",
3451            Elements::FullLeftShift64_1 => b"*l2",
3452            Elements::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3453            Elements::FullLeftShift64_2 => b"*l*22",
3454            Elements::FullLeftShift64_32 => b"*li",
3455            Elements::FullLeftShift64_4 => b"*l**22*22",
3456            Elements::FullLeftShift64_8 => b"*l***22*22**22*22",
3457            Elements::FullLeftShift8_1 => b"****22*22**22*222",
3458            Elements::FullLeftShift8_2 => b"****22*22**22*22*22",
3459            Elements::FullLeftShift8_4 => b"****22*22**22*22**22*22",
3460            Elements::FullMultiply16 => b"l",
3461            Elements::FullMultiply32 => b"*ll",
3462            Elements::FullMultiply64 => b"h",
3463            Elements::FullMultiply8 => b"i",
3464            Elements::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3465            Elements::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3466            Elements::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3467            Elements::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3468            Elements::FullRightShift32_1 => b"*2i",
3469            Elements::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3470            Elements::FullRightShift32_2 => b"**22i",
3471            Elements::FullRightShift32_4 => b"***22*22i",
3472            Elements::FullRightShift32_8 => b"****22*22**22*22i",
3473            Elements::FullRightShift64_1 => b"*2l",
3474            Elements::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3475            Elements::FullRightShift64_2 => b"**22l",
3476            Elements::FullRightShift64_32 => b"*il",
3477            Elements::FullRightShift64_4 => b"***22*22l",
3478            Elements::FullRightShift64_8 => b"****22*22**22*22l",
3479            Elements::FullRightShift8_1 => b"*2***22*22**22*22",
3480            Elements::FullRightShift8_2 => b"**22***22*22**22*22",
3481            Elements::FullRightShift8_4 => b"***22*22***22*22**22*22",
3482            Elements::FullSubtract16 => b"*2i",
3483            Elements::FullSubtract32 => b"*2l",
3484            Elements::FullSubtract64 => b"*2*ll",
3485            Elements::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
3486            Elements::GeIsOnCurve => b"*hh",
3487            Elements::GeNegate => b"*hh",
3488            Elements::GejAdd => b"***hhh**hhh",
3489            Elements::GejDouble => b"**hhh",
3490            Elements::GejEquiv => b"***hhh**hhh",
3491            Elements::GejGeAdd => b"***hhh*hh",
3492            Elements::GejGeAddEx => b"***hhh*hh",
3493            Elements::GejGeEquiv => b"***hhh*hh",
3494            Elements::GejInfinity => b"1",
3495            Elements::GejIsInfinity => b"**hhh",
3496            Elements::GejIsOnCurve => b"**hhh",
3497            Elements::GejNegate => b"**hhh",
3498            Elements::GejNormalize => b"**hhh",
3499            Elements::GejRescale => b"***hhhh",
3500            Elements::GejXEquiv => b"*h**hhh",
3501            Elements::GejYIsOdd => b"**hhh",
3502            Elements::Generate => b"h",
3503            Elements::GenesisBlockHash => b"1",
3504            Elements::HashToCurve => b"h",
3505            Elements::High1 => b"1",
3506            Elements::High16 => b"1",
3507            Elements::High32 => b"1",
3508            Elements::High64 => b"1",
3509            Elements::High8 => b"1",
3510            Elements::Increment16 => b"****22*22**22*22***22*22**22*22",
3511            Elements::Increment32 => b"i",
3512            Elements::Increment64 => b"l",
3513            Elements::Increment8 => b"***22*22**22*22",
3514            Elements::InputAmount => b"i",
3515            Elements::InputAmountsHash => b"1",
3516            Elements::InputAnnexHash => b"i",
3517            Elements::InputAnnexesHash => b"1",
3518            Elements::InputAsset => b"i",
3519            Elements::InputHash => b"i",
3520            Elements::InputOutpointsHash => b"1",
3521            Elements::InputPegin => b"i",
3522            Elements::InputPrevOutpoint => b"i",
3523            Elements::InputScriptHash => b"i",
3524            Elements::InputScriptSigHash => b"i",
3525            Elements::InputScriptSigsHash => b"1",
3526            Elements::InputScriptsHash => b"1",
3527            Elements::InputSequence => b"i",
3528            Elements::InputSequencesHash => b"1",
3529            Elements::InputUtxoHash => b"i",
3530            Elements::InputUtxosHash => b"1",
3531            Elements::InputsHash => b"1",
3532            Elements::InternalKey => b"1",
3533            Elements::IsOne16 => b"****22*22**22*22***22*22**22*22",
3534            Elements::IsOne32 => b"i",
3535            Elements::IsOne64 => b"l",
3536            Elements::IsOne8 => b"***22*22**22*22",
3537            Elements::IsZero16 => b"****22*22**22*22***22*22**22*22",
3538            Elements::IsZero32 => b"i",
3539            Elements::IsZero64 => b"l",
3540            Elements::IsZero8 => b"***22*22**22*22",
3541            Elements::Issuance => b"i",
3542            Elements::IssuanceAsset => b"i",
3543            Elements::IssuanceAssetAmount => b"i",
3544            Elements::IssuanceAssetAmountsHash => b"1",
3545            Elements::IssuanceAssetProof => b"i",
3546            Elements::IssuanceBlindingEntropyHash => b"1",
3547            Elements::IssuanceEntropy => b"i",
3548            Elements::IssuanceHash => b"i",
3549            Elements::IssuanceRangeProofsHash => b"1",
3550            Elements::IssuanceToken => b"i",
3551            Elements::IssuanceTokenAmount => b"i",
3552            Elements::IssuanceTokenAmountsHash => b"1",
3553            Elements::IssuanceTokenProof => b"i",
3554            Elements::IssuancesHash => b"1",
3555            Elements::LbtcAsset => b"1",
3556            Elements::Le16 => b"i",
3557            Elements::Le32 => b"l",
3558            Elements::Le64 => b"*ll",
3559            Elements::Le8 => b"****22*22**22*22***22*22**22*22",
3560            Elements::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
3561            Elements::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
3562            Elements::LeftExtend1_16 => b"2",
3563            Elements::LeftExtend1_32 => b"2",
3564            Elements::LeftExtend1_64 => b"2",
3565            Elements::LeftExtend1_8 => b"2",
3566            Elements::LeftExtend32_64 => b"i",
3567            Elements::LeftExtend8_16 => b"***22*22**22*22",
3568            Elements::LeftExtend8_32 => b"***22*22**22*22",
3569            Elements::LeftExtend8_64 => b"***22*22**22*22",
3570            Elements::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
3571            Elements::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
3572            Elements::LeftPadHigh1_16 => b"2",
3573            Elements::LeftPadHigh1_32 => b"2",
3574            Elements::LeftPadHigh1_64 => b"2",
3575            Elements::LeftPadHigh1_8 => b"2",
3576            Elements::LeftPadHigh32_64 => b"i",
3577            Elements::LeftPadHigh8_16 => b"***22*22**22*22",
3578            Elements::LeftPadHigh8_32 => b"***22*22**22*22",
3579            Elements::LeftPadHigh8_64 => b"***22*22**22*22",
3580            Elements::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
3581            Elements::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
3582            Elements::LeftPadLow1_16 => b"2",
3583            Elements::LeftPadLow1_32 => b"2",
3584            Elements::LeftPadLow1_64 => b"2",
3585            Elements::LeftPadLow1_8 => b"2",
3586            Elements::LeftPadLow32_64 => b"i",
3587            Elements::LeftPadLow8_16 => b"***22*22**22*22",
3588            Elements::LeftPadLow8_32 => b"***22*22**22*22",
3589            Elements::LeftPadLow8_64 => b"***22*22**22*22",
3590            Elements::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
3591            Elements::LeftRotate32 => b"****22*22**22*22i",
3592            Elements::LeftRotate64 => b"****22*22**22*22l",
3593            Elements::LeftRotate8 => b"***22*22***22*22**22*22",
3594            Elements::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
3595            Elements::LeftShift32 => b"****22*22**22*22i",
3596            Elements::LeftShift64 => b"****22*22**22*22l",
3597            Elements::LeftShift8 => b"***22*22***22*22**22*22",
3598            Elements::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
3599            Elements::LeftShiftWith32 => b"*2****22*22**22*22i",
3600            Elements::LeftShiftWith64 => b"*2****22*22**22*22l",
3601            Elements::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
3602            Elements::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
3603            Elements::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
3604            Elements::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
3605            Elements::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
3606            Elements::Leftmost32_1 => b"i",
3607            Elements::Leftmost32_16 => b"i",
3608            Elements::Leftmost32_2 => b"i",
3609            Elements::Leftmost32_4 => b"i",
3610            Elements::Leftmost32_8 => b"i",
3611            Elements::Leftmost64_1 => b"l",
3612            Elements::Leftmost64_16 => b"l",
3613            Elements::Leftmost64_2 => b"l",
3614            Elements::Leftmost64_32 => b"l",
3615            Elements::Leftmost64_4 => b"l",
3616            Elements::Leftmost64_8 => b"l",
3617            Elements::Leftmost8_1 => b"***22*22**22*22",
3618            Elements::Leftmost8_2 => b"***22*22**22*22",
3619            Elements::Leftmost8_4 => b"***22*22**22*22",
3620            Elements::LinearCombination1 => b"**h**hhhh",
3621            Elements::LinearVerify1 => b"***h*hhh*hh",
3622            Elements::LockTime => b"1",
3623            Elements::Low1 => b"1",
3624            Elements::Low16 => b"1",
3625            Elements::Low32 => b"1",
3626            Elements::Low64 => b"1",
3627            Elements::Low8 => b"1",
3628            Elements::Lt16 => b"i",
3629            Elements::Lt32 => b"l",
3630            Elements::Lt64 => b"*ll",
3631            Elements::Lt8 => b"****22*22**22*22***22*22**22*22",
3632            Elements::Maj1 => b"*2*22",
3633            Elements::Maj16 => b"*****22*22**22*22***22*22**22*22i",
3634            Elements::Maj32 => b"*il",
3635            Elements::Maj64 => b"*l*ll",
3636            Elements::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3637            Elements::Max16 => b"i",
3638            Elements::Max32 => b"l",
3639            Elements::Max64 => b"*ll",
3640            Elements::Max8 => b"****22*22**22*22***22*22**22*22",
3641            Elements::Median16 => b"*****22*22**22*22***22*22**22*22i",
3642            Elements::Median32 => b"*il",
3643            Elements::Median64 => b"*l*ll",
3644            Elements::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3645            Elements::Min16 => b"i",
3646            Elements::Min32 => b"l",
3647            Elements::Min64 => b"*ll",
3648            Elements::Min8 => b"****22*22**22*22***22*22**22*22",
3649            Elements::Modulo16 => b"i",
3650            Elements::Modulo32 => b"l",
3651            Elements::Modulo64 => b"*ll",
3652            Elements::Modulo8 => b"****22*22**22*22***22*22**22*22",
3653            Elements::Multiply16 => b"i",
3654            Elements::Multiply32 => b"l",
3655            Elements::Multiply64 => b"*ll",
3656            Elements::Multiply8 => b"****22*22**22*22***22*22**22*22",
3657            Elements::Negate16 => b"****22*22**22*22***22*22**22*22",
3658            Elements::Negate32 => b"i",
3659            Elements::Negate64 => b"l",
3660            Elements::Negate8 => b"***22*22**22*22",
3661            Elements::NewIssuanceContract => b"i",
3662            Elements::NonceHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh+1+*2hh",
3663            Elements::NumInputs => b"1",
3664            Elements::NumOutputs => b"1",
3665            Elements::One16 => b"1",
3666            Elements::One32 => b"1",
3667            Elements::One64 => b"1",
3668            Elements::One8 => b"1",
3669            Elements::Or1 => b"*22",
3670            Elements::Or16 => b"i",
3671            Elements::Or32 => b"l",
3672            Elements::Or64 => b"*ll",
3673            Elements::Or8 => b"****22*22**22*22***22*22**22*22",
3674            Elements::OutpointHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+1h*hi",
3675            Elements::OutputAmount => b"i",
3676            Elements::OutputAmountsHash => b"1",
3677            Elements::OutputAsset => b"i",
3678            Elements::OutputHash => b"i",
3679            Elements::OutputIsFee => b"i",
3680            Elements::OutputNonce => b"i",
3681            Elements::OutputNoncesHash => b"1",
3682            Elements::OutputNullDatum => b"l",
3683            Elements::OutputRangeProof => b"i",
3684            Elements::OutputRangeProofsHash => b"1",
3685            Elements::OutputScriptHash => b"i",
3686            Elements::OutputScriptsHash => b"1",
3687            Elements::OutputSurjectionProof => b"i",
3688            Elements::OutputSurjectionProofsHash => b"1",
3689            Elements::OutputsHash => b"1",
3690            Elements::ParseLock => b"i",
3691            Elements::ParseSequence => b"i",
3692            Elements::PointVerify1 => b"***h*2hh*2h",
3693            Elements::ReissuanceBlinding => b"i",
3694            Elements::ReissuanceEntropy => b"i",
3695            Elements::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
3696            Elements::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
3697            Elements::RightExtend32_64 => b"i",
3698            Elements::RightExtend8_16 => b"***22*22**22*22",
3699            Elements::RightExtend8_32 => b"***22*22**22*22",
3700            Elements::RightExtend8_64 => b"***22*22**22*22",
3701            Elements::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
3702            Elements::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
3703            Elements::RightPadHigh1_16 => b"2",
3704            Elements::RightPadHigh1_32 => b"2",
3705            Elements::RightPadHigh1_64 => b"2",
3706            Elements::RightPadHigh1_8 => b"2",
3707            Elements::RightPadHigh32_64 => b"i",
3708            Elements::RightPadHigh8_16 => b"***22*22**22*22",
3709            Elements::RightPadHigh8_32 => b"***22*22**22*22",
3710            Elements::RightPadHigh8_64 => b"***22*22**22*22",
3711            Elements::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
3712            Elements::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
3713            Elements::RightPadLow1_16 => b"2",
3714            Elements::RightPadLow1_32 => b"2",
3715            Elements::RightPadLow1_64 => b"2",
3716            Elements::RightPadLow1_8 => b"2",
3717            Elements::RightPadLow32_64 => b"i",
3718            Elements::RightPadLow8_16 => b"***22*22**22*22",
3719            Elements::RightPadLow8_32 => b"***22*22**22*22",
3720            Elements::RightPadLow8_64 => b"***22*22**22*22",
3721            Elements::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
3722            Elements::RightRotate32 => b"****22*22**22*22i",
3723            Elements::RightRotate64 => b"****22*22**22*22l",
3724            Elements::RightRotate8 => b"***22*22***22*22**22*22",
3725            Elements::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
3726            Elements::RightShift32 => b"****22*22**22*22i",
3727            Elements::RightShift64 => b"****22*22**22*22l",
3728            Elements::RightShift8 => b"***22*22***22*22**22*22",
3729            Elements::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
3730            Elements::RightShiftWith32 => b"*2****22*22**22*22i",
3731            Elements::RightShiftWith64 => b"*2****22*22**22*22l",
3732            Elements::RightShiftWith8 => b"*2***22*22***22*22**22*22",
3733            Elements::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
3734            Elements::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
3735            Elements::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
3736            Elements::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
3737            Elements::Rightmost32_1 => b"i",
3738            Elements::Rightmost32_16 => b"i",
3739            Elements::Rightmost32_2 => b"i",
3740            Elements::Rightmost32_4 => b"i",
3741            Elements::Rightmost32_8 => b"i",
3742            Elements::Rightmost64_1 => b"l",
3743            Elements::Rightmost64_16 => b"l",
3744            Elements::Rightmost64_2 => b"l",
3745            Elements::Rightmost64_32 => b"l",
3746            Elements::Rightmost64_4 => b"l",
3747            Elements::Rightmost64_8 => b"l",
3748            Elements::Rightmost8_1 => b"***22*22**22*22",
3749            Elements::Rightmost8_2 => b"***22*22**22*22",
3750            Elements::Rightmost8_4 => b"***22*22**22*22",
3751            Elements::ScalarAdd => b"*hh",
3752            Elements::ScalarInvert => b"h",
3753            Elements::ScalarIsZero => b"h",
3754            Elements::ScalarMultiply => b"*hh",
3755            Elements::ScalarMultiplyLambda => b"h",
3756            Elements::ScalarNegate => b"h",
3757            Elements::ScalarNormalize => b"h",
3758            Elements::ScalarSquare => b"h",
3759            Elements::Scale => b"*h**hhh",
3760            Elements::ScriptCMR => b"1",
3761            Elements::Sha256Block => b"*h*hh",
3762            Elements::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",
3763            Elements::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
3764            Elements::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
3765            Elements::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",
3766            Elements::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",
3767            Elements::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
3768            Elements::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
3769            Elements::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",
3770            Elements::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
3771            Elements::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
3772            Elements::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",
3773            Elements::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3774            Elements::Sha256Ctx8Init => b"1",
3775            Elements::Sha256Iv => b"1",
3776            Elements::SigAllHash => b"1",
3777            Elements::Some1 => b"2",
3778            Elements::Some16 => b"****22*22**22*22***22*22**22*22",
3779            Elements::Some32 => b"i",
3780            Elements::Some64 => b"l",
3781            Elements::Some8 => b"***22*22**22*22",
3782            Elements::Subtract16 => b"i",
3783            Elements::Subtract32 => b"l",
3784            Elements::Subtract64 => b"*ll",
3785            Elements::Subtract8 => b"****22*22**22*22***22*22**22*22",
3786            Elements::Swu => b"h",
3787            Elements::TapEnvHash => b"1",
3788            Elements::TapdataInit => b"1",
3789            Elements::TapleafHash => b"1",
3790            Elements::TapleafVersion => b"1",
3791            Elements::Tappath => b"***22*22**22*22",
3792            Elements::TappathHash => b"1",
3793            Elements::TotalFee => b"h",
3794            Elements::TransactionId => b"1",
3795            Elements::TxHash => b"1",
3796            Elements::TxIsFinal => b"1",
3797            Elements::TxLockDistance => b"1",
3798            Elements::TxLockDuration => b"1",
3799            Elements::TxLockHeight => b"1",
3800            Elements::TxLockTime => b"1",
3801            Elements::Verify => b"2",
3802            Elements::Version => b"1",
3803            Elements::Xor1 => b"*22",
3804            Elements::Xor16 => b"i",
3805            Elements::Xor32 => b"l",
3806            Elements::Xor64 => b"*ll",
3807            Elements::Xor8 => b"****22*22**22*22***22*22**22*22",
3808            Elements::XorXor1 => b"*2*22",
3809            Elements::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
3810            Elements::XorXor32 => b"*il",
3811            Elements::XorXor64 => b"*l*ll",
3812            Elements::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3813        };
3814
3815        TypeName(name)
3816    }
3817
3818    fn target_ty(&self) -> TypeName {
3819        let name: &'static [u8] = match self {
3820            Elements::Add16 => b"*2****22*22**22*22***22*22**22*22",
3821            Elements::Add32 => b"*2i",
3822            Elements::Add64 => b"*2l",
3823            Elements::Add8 => b"*2***22*22**22*22",
3824            Elements::All16 => b"2",
3825            Elements::All32 => b"2",
3826            Elements::All64 => b"2",
3827            Elements::All8 => b"2",
3828            Elements::And1 => b"2",
3829            Elements::And16 => b"****22*22**22*22***22*22**22*22",
3830            Elements::And32 => b"i",
3831            Elements::And64 => b"l",
3832            Elements::And8 => b"***22*22**22*22",
3833            Elements::AnnexHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3834            Elements::AssetAmountHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3835            Elements::Bip0340Verify => b"1",
3836            Elements::BuildTapbranch => b"h",
3837            Elements::BuildTapleafSimplicity => b"h",
3838            Elements::BuildTaptweak => b"h",
3839            Elements::CalculateAsset => b"h",
3840            Elements::CalculateConfidentialToken => b"h",
3841            Elements::CalculateExplicitToken => b"h",
3842            Elements::CalculateIssuanceEntropy => b"h",
3843            Elements::Ch1 => b"2",
3844            Elements::Ch16 => b"****22*22**22*22***22*22**22*22",
3845            Elements::Ch32 => b"i",
3846            Elements::Ch64 => b"l",
3847            Elements::Ch8 => b"***22*22**22*22",
3848            Elements::CheckLockDistance => b"1",
3849            Elements::CheckLockDuration => b"1",
3850            Elements::CheckLockHeight => b"1",
3851            Elements::CheckLockTime => b"1",
3852            Elements::CheckSigVerify => b"1",
3853            Elements::Complement1 => b"2",
3854            Elements::Complement16 => b"****22*22**22*22***22*22**22*22",
3855            Elements::Complement32 => b"i",
3856            Elements::Complement64 => b"l",
3857            Elements::Complement8 => b"***22*22**22*22",
3858            Elements::CurrentAmount => b"*+*2hh+*2hl",
3859            Elements::CurrentAnnexHash => b"+1h",
3860            Elements::CurrentAsset => b"+*2hh",
3861            Elements::CurrentIndex => b"i",
3862            Elements::CurrentIssuanceAssetAmount => b"+1+*2hl",
3863            Elements::CurrentIssuanceAssetProof => b"h",
3864            Elements::CurrentIssuanceTokenAmount => b"+1+*2hl",
3865            Elements::CurrentIssuanceTokenProof => b"h",
3866            Elements::CurrentNewIssuanceContract => b"+1h",
3867            Elements::CurrentPegin => b"+1h",
3868            Elements::CurrentPrevOutpoint => b"*hi",
3869            Elements::CurrentReissuanceBlinding => b"+1h",
3870            Elements::CurrentReissuanceEntropy => b"+1h",
3871            Elements::CurrentScriptHash => b"h",
3872            Elements::CurrentScriptSigHash => b"h",
3873            Elements::CurrentSequence => b"i",
3874            Elements::Decompress => b"+1*hh",
3875            Elements::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
3876            Elements::Decrement32 => b"*2i",
3877            Elements::Decrement64 => b"*2l",
3878            Elements::Decrement8 => b"*2***22*22**22*22",
3879            Elements::DivMod128_64 => b"*ll",
3880            Elements::DivMod16 => b"i",
3881            Elements::DivMod32 => b"l",
3882            Elements::DivMod64 => b"*ll",
3883            Elements::DivMod8 => b"****22*22**22*22***22*22**22*22",
3884            Elements::Divide16 => b"****22*22**22*22***22*22**22*22",
3885            Elements::Divide32 => b"i",
3886            Elements::Divide64 => b"l",
3887            Elements::Divide8 => b"***22*22**22*22",
3888            Elements::Divides16 => b"2",
3889            Elements::Divides32 => b"2",
3890            Elements::Divides64 => b"2",
3891            Elements::Divides8 => b"2",
3892            Elements::Eq1 => b"2",
3893            Elements::Eq16 => b"2",
3894            Elements::Eq256 => b"2",
3895            Elements::Eq32 => b"2",
3896            Elements::Eq64 => b"2",
3897            Elements::Eq8 => b"2",
3898            Elements::FeAdd => b"h",
3899            Elements::FeInvert => b"h",
3900            Elements::FeIsOdd => b"2",
3901            Elements::FeIsZero => b"2",
3902            Elements::FeMultiply => b"h",
3903            Elements::FeMultiplyBeta => b"h",
3904            Elements::FeNegate => b"h",
3905            Elements::FeNormalize => b"h",
3906            Elements::FeSquare => b"h",
3907            Elements::FeSquareRoot => b"+1h",
3908            Elements::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
3909            Elements::FullAdd32 => b"*2i",
3910            Elements::FullAdd64 => b"*2l",
3911            Elements::FullAdd8 => b"*2***22*22**22*22",
3912            Elements::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3913            Elements::FullDecrement32 => b"*2i",
3914            Elements::FullDecrement64 => b"*2l",
3915            Elements::FullDecrement8 => b"*2***22*22**22*22",
3916            Elements::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3917            Elements::FullIncrement32 => b"*2i",
3918            Elements::FullIncrement64 => b"*2l",
3919            Elements::FullIncrement8 => b"*2***22*22**22*22",
3920            Elements::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3921            Elements::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3922            Elements::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3923            Elements::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3924            Elements::FullLeftShift32_1 => b"*2i",
3925            Elements::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3926            Elements::FullLeftShift32_2 => b"**22i",
3927            Elements::FullLeftShift32_4 => b"***22*22i",
3928            Elements::FullLeftShift32_8 => b"****22*22**22*22i",
3929            Elements::FullLeftShift64_1 => b"*2l",
3930            Elements::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3931            Elements::FullLeftShift64_2 => b"**22l",
3932            Elements::FullLeftShift64_32 => b"*il",
3933            Elements::FullLeftShift64_4 => b"***22*22l",
3934            Elements::FullLeftShift64_8 => b"****22*22**22*22l",
3935            Elements::FullLeftShift8_1 => b"*2***22*22**22*22",
3936            Elements::FullLeftShift8_2 => b"**22***22*22**22*22",
3937            Elements::FullLeftShift8_4 => b"***22*22***22*22**22*22",
3938            Elements::FullMultiply16 => b"i",
3939            Elements::FullMultiply32 => b"l",
3940            Elements::FullMultiply64 => b"*ll",
3941            Elements::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
3942            Elements::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
3943            Elements::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3944            Elements::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3945            Elements::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3946            Elements::FullRightShift32_1 => b"*i2",
3947            Elements::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3948            Elements::FullRightShift32_2 => b"*i*22",
3949            Elements::FullRightShift32_4 => b"*i**22*22",
3950            Elements::FullRightShift32_8 => b"*i***22*22**22*22",
3951            Elements::FullRightShift64_1 => b"*l2",
3952            Elements::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3953            Elements::FullRightShift64_2 => b"*l*22",
3954            Elements::FullRightShift64_32 => b"*li",
3955            Elements::FullRightShift64_4 => b"*l**22*22",
3956            Elements::FullRightShift64_8 => b"*l***22*22**22*22",
3957            Elements::FullRightShift8_1 => b"****22*22**22*222",
3958            Elements::FullRightShift8_2 => b"****22*22**22*22*22",
3959            Elements::FullRightShift8_4 => b"****22*22**22*22**22*22",
3960            Elements::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
3961            Elements::FullSubtract32 => b"*2i",
3962            Elements::FullSubtract64 => b"*2l",
3963            Elements::FullSubtract8 => b"*2***22*22**22*22",
3964            Elements::GeIsOnCurve => b"2",
3965            Elements::GeNegate => b"*hh",
3966            Elements::GejAdd => b"**hhh",
3967            Elements::GejDouble => b"**hhh",
3968            Elements::GejEquiv => b"2",
3969            Elements::GejGeAdd => b"**hhh",
3970            Elements::GejGeAddEx => b"*h**hhh",
3971            Elements::GejGeEquiv => b"2",
3972            Elements::GejInfinity => b"**hhh",
3973            Elements::GejIsInfinity => b"2",
3974            Elements::GejIsOnCurve => b"2",
3975            Elements::GejNegate => b"**hhh",
3976            Elements::GejNormalize => b"+1*hh",
3977            Elements::GejRescale => b"**hhh",
3978            Elements::GejXEquiv => b"2",
3979            Elements::GejYIsOdd => b"2",
3980            Elements::Generate => b"**hhh",
3981            Elements::GenesisBlockHash => b"h",
3982            Elements::HashToCurve => b"*hh",
3983            Elements::High1 => b"2",
3984            Elements::High16 => b"****22*22**22*22***22*22**22*22",
3985            Elements::High32 => b"i",
3986            Elements::High64 => b"l",
3987            Elements::High8 => b"***22*22**22*22",
3988            Elements::Increment16 => b"*2****22*22**22*22***22*22**22*22",
3989            Elements::Increment32 => b"*2i",
3990            Elements::Increment64 => b"*2l",
3991            Elements::Increment8 => b"*2***22*22**22*22",
3992            Elements::InputAmount => b"+1*+*2hh+*2hl",
3993            Elements::InputAmountsHash => b"h",
3994            Elements::InputAnnexHash => b"+1+1h",
3995            Elements::InputAnnexesHash => b"h",
3996            Elements::InputAsset => b"+1+*2hh",
3997            Elements::InputHash => b"+1h",
3998            Elements::InputOutpointsHash => b"h",
3999            Elements::InputPegin => b"+1+1h",
4000            Elements::InputPrevOutpoint => b"+1*hi",
4001            Elements::InputScriptHash => b"+1h",
4002            Elements::InputScriptSigHash => b"+1h",
4003            Elements::InputScriptSigsHash => b"h",
4004            Elements::InputScriptsHash => b"h",
4005            Elements::InputSequence => b"+1i",
4006            Elements::InputSequencesHash => b"h",
4007            Elements::InputUtxoHash => b"+1h",
4008            Elements::InputUtxosHash => b"h",
4009            Elements::InputsHash => b"h",
4010            Elements::InternalKey => b"h",
4011            Elements::IsOne16 => b"2",
4012            Elements::IsOne32 => b"2",
4013            Elements::IsOne64 => b"2",
4014            Elements::IsOne8 => b"2",
4015            Elements::IsZero16 => b"2",
4016            Elements::IsZero32 => b"2",
4017            Elements::IsZero64 => b"2",
4018            Elements::IsZero8 => b"2",
4019            Elements::Issuance => b"+1+12",
4020            Elements::IssuanceAsset => b"+1+1h",
4021            Elements::IssuanceAssetAmount => b"+1+1+*2hl",
4022            Elements::IssuanceAssetAmountsHash => b"h",
4023            Elements::IssuanceAssetProof => b"+1h",
4024            Elements::IssuanceBlindingEntropyHash => b"h",
4025            Elements::IssuanceEntropy => b"+1+1h",
4026            Elements::IssuanceHash => b"+1h",
4027            Elements::IssuanceRangeProofsHash => b"h",
4028            Elements::IssuanceToken => b"+1+1h",
4029            Elements::IssuanceTokenAmount => b"+1+1+*2hl",
4030            Elements::IssuanceTokenAmountsHash => b"h",
4031            Elements::IssuanceTokenProof => b"+1h",
4032            Elements::IssuancesHash => b"h",
4033            Elements::LbtcAsset => b"h",
4034            Elements::Le16 => b"2",
4035            Elements::Le32 => b"2",
4036            Elements::Le64 => b"2",
4037            Elements::Le8 => b"2",
4038            Elements::LeftExtend16_32 => b"i",
4039            Elements::LeftExtend16_64 => b"l",
4040            Elements::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
4041            Elements::LeftExtend1_32 => b"i",
4042            Elements::LeftExtend1_64 => b"l",
4043            Elements::LeftExtend1_8 => b"***22*22**22*22",
4044            Elements::LeftExtend32_64 => b"l",
4045            Elements::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
4046            Elements::LeftExtend8_32 => b"i",
4047            Elements::LeftExtend8_64 => b"l",
4048            Elements::LeftPadHigh16_32 => b"i",
4049            Elements::LeftPadHigh16_64 => b"l",
4050            Elements::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
4051            Elements::LeftPadHigh1_32 => b"i",
4052            Elements::LeftPadHigh1_64 => b"l",
4053            Elements::LeftPadHigh1_8 => b"***22*22**22*22",
4054            Elements::LeftPadHigh32_64 => b"l",
4055            Elements::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
4056            Elements::LeftPadHigh8_32 => b"i",
4057            Elements::LeftPadHigh8_64 => b"l",
4058            Elements::LeftPadLow16_32 => b"i",
4059            Elements::LeftPadLow16_64 => b"l",
4060            Elements::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
4061            Elements::LeftPadLow1_32 => b"i",
4062            Elements::LeftPadLow1_64 => b"l",
4063            Elements::LeftPadLow1_8 => b"***22*22**22*22",
4064            Elements::LeftPadLow32_64 => b"l",
4065            Elements::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
4066            Elements::LeftPadLow8_32 => b"i",
4067            Elements::LeftPadLow8_64 => b"l",
4068            Elements::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
4069            Elements::LeftRotate32 => b"i",
4070            Elements::LeftRotate64 => b"l",
4071            Elements::LeftRotate8 => b"***22*22**22*22",
4072            Elements::LeftShift16 => b"****22*22**22*22***22*22**22*22",
4073            Elements::LeftShift32 => b"i",
4074            Elements::LeftShift64 => b"l",
4075            Elements::LeftShift8 => b"***22*22**22*22",
4076            Elements::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
4077            Elements::LeftShiftWith32 => b"i",
4078            Elements::LeftShiftWith64 => b"l",
4079            Elements::LeftShiftWith8 => b"***22*22**22*22",
4080            Elements::Leftmost16_1 => b"2",
4081            Elements::Leftmost16_2 => b"*22",
4082            Elements::Leftmost16_4 => b"**22*22",
4083            Elements::Leftmost16_8 => b"***22*22**22*22",
4084            Elements::Leftmost32_1 => b"2",
4085            Elements::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
4086            Elements::Leftmost32_2 => b"*22",
4087            Elements::Leftmost32_4 => b"**22*22",
4088            Elements::Leftmost32_8 => b"***22*22**22*22",
4089            Elements::Leftmost64_1 => b"2",
4090            Elements::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
4091            Elements::Leftmost64_2 => b"*22",
4092            Elements::Leftmost64_32 => b"i",
4093            Elements::Leftmost64_4 => b"**22*22",
4094            Elements::Leftmost64_8 => b"***22*22**22*22",
4095            Elements::Leftmost8_1 => b"2",
4096            Elements::Leftmost8_2 => b"*22",
4097            Elements::Leftmost8_4 => b"**22*22",
4098            Elements::LinearCombination1 => b"**hhh",
4099            Elements::LinearVerify1 => b"1",
4100            Elements::LockTime => b"i",
4101            Elements::Low1 => b"2",
4102            Elements::Low16 => b"****22*22**22*22***22*22**22*22",
4103            Elements::Low32 => b"i",
4104            Elements::Low64 => b"l",
4105            Elements::Low8 => b"***22*22**22*22",
4106            Elements::Lt16 => b"2",
4107            Elements::Lt32 => b"2",
4108            Elements::Lt64 => b"2",
4109            Elements::Lt8 => b"2",
4110            Elements::Maj1 => b"2",
4111            Elements::Maj16 => b"****22*22**22*22***22*22**22*22",
4112            Elements::Maj32 => b"i",
4113            Elements::Maj64 => b"l",
4114            Elements::Maj8 => b"***22*22**22*22",
4115            Elements::Max16 => b"****22*22**22*22***22*22**22*22",
4116            Elements::Max32 => b"i",
4117            Elements::Max64 => b"l",
4118            Elements::Max8 => b"***22*22**22*22",
4119            Elements::Median16 => b"****22*22**22*22***22*22**22*22",
4120            Elements::Median32 => b"i",
4121            Elements::Median64 => b"l",
4122            Elements::Median8 => b"***22*22**22*22",
4123            Elements::Min16 => b"****22*22**22*22***22*22**22*22",
4124            Elements::Min32 => b"i",
4125            Elements::Min64 => b"l",
4126            Elements::Min8 => b"***22*22**22*22",
4127            Elements::Modulo16 => b"****22*22**22*22***22*22**22*22",
4128            Elements::Modulo32 => b"i",
4129            Elements::Modulo64 => b"l",
4130            Elements::Modulo8 => b"***22*22**22*22",
4131            Elements::Multiply16 => b"i",
4132            Elements::Multiply32 => b"l",
4133            Elements::Multiply64 => b"*ll",
4134            Elements::Multiply8 => b"****22*22**22*22***22*22**22*22",
4135            Elements::Negate16 => b"*2****22*22**22*22***22*22**22*22",
4136            Elements::Negate32 => b"*2i",
4137            Elements::Negate64 => b"*2l",
4138            Elements::Negate8 => b"*2***22*22**22*22",
4139            Elements::NewIssuanceContract => b"+1+1h",
4140            Elements::NonceHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4141            Elements::NumInputs => b"i",
4142            Elements::NumOutputs => b"i",
4143            Elements::One16 => b"****22*22**22*22***22*22**22*22",
4144            Elements::One32 => b"i",
4145            Elements::One64 => b"l",
4146            Elements::One8 => b"***22*22**22*22",
4147            Elements::Or1 => b"2",
4148            Elements::Or16 => b"****22*22**22*22***22*22**22*22",
4149            Elements::Or32 => b"i",
4150            Elements::Or64 => b"l",
4151            Elements::Or8 => b"***22*22**22*22",
4152            Elements::OutpointHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4153            Elements::OutputAmount => b"+1*+*2hh+*2hl",
4154            Elements::OutputAmountsHash => b"h",
4155            Elements::OutputAsset => b"+1+*2hh",
4156            Elements::OutputHash => b"+1h",
4157            Elements::OutputIsFee => b"+12",
4158            Elements::OutputNonce => b"+1+1+*2hh",
4159            Elements::OutputNoncesHash => b"h",
4160            Elements::OutputNullDatum => b"+1+1+**22h+2**22*22",
4161            Elements::OutputRangeProof => b"+1h",
4162            Elements::OutputRangeProofsHash => b"h",
4163            Elements::OutputScriptHash => b"+1h",
4164            Elements::OutputScriptsHash => b"h",
4165            Elements::OutputSurjectionProof => b"+1h",
4166            Elements::OutputSurjectionProofsHash => b"h",
4167            Elements::OutputsHash => b"h",
4168            Elements::ParseLock => b"+ii",
4169            Elements::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
4170            Elements::PointVerify1 => b"1",
4171            Elements::ReissuanceBlinding => b"+1+1h",
4172            Elements::ReissuanceEntropy => b"+1+1h",
4173            Elements::RightExtend16_32 => b"i",
4174            Elements::RightExtend16_64 => b"l",
4175            Elements::RightExtend32_64 => b"l",
4176            Elements::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
4177            Elements::RightExtend8_32 => b"i",
4178            Elements::RightExtend8_64 => b"l",
4179            Elements::RightPadHigh16_32 => b"i",
4180            Elements::RightPadHigh16_64 => b"l",
4181            Elements::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
4182            Elements::RightPadHigh1_32 => b"i",
4183            Elements::RightPadHigh1_64 => b"l",
4184            Elements::RightPadHigh1_8 => b"***22*22**22*22",
4185            Elements::RightPadHigh32_64 => b"l",
4186            Elements::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
4187            Elements::RightPadHigh8_32 => b"i",
4188            Elements::RightPadHigh8_64 => b"l",
4189            Elements::RightPadLow16_32 => b"i",
4190            Elements::RightPadLow16_64 => b"l",
4191            Elements::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
4192            Elements::RightPadLow1_32 => b"i",
4193            Elements::RightPadLow1_64 => b"l",
4194            Elements::RightPadLow1_8 => b"***22*22**22*22",
4195            Elements::RightPadLow32_64 => b"l",
4196            Elements::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
4197            Elements::RightPadLow8_32 => b"i",
4198            Elements::RightPadLow8_64 => b"l",
4199            Elements::RightRotate16 => b"****22*22**22*22***22*22**22*22",
4200            Elements::RightRotate32 => b"i",
4201            Elements::RightRotate64 => b"l",
4202            Elements::RightRotate8 => b"***22*22**22*22",
4203            Elements::RightShift16 => b"****22*22**22*22***22*22**22*22",
4204            Elements::RightShift32 => b"i",
4205            Elements::RightShift64 => b"l",
4206            Elements::RightShift8 => b"***22*22**22*22",
4207            Elements::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
4208            Elements::RightShiftWith32 => b"i",
4209            Elements::RightShiftWith64 => b"l",
4210            Elements::RightShiftWith8 => b"***22*22**22*22",
4211            Elements::Rightmost16_1 => b"2",
4212            Elements::Rightmost16_2 => b"*22",
4213            Elements::Rightmost16_4 => b"**22*22",
4214            Elements::Rightmost16_8 => b"***22*22**22*22",
4215            Elements::Rightmost32_1 => b"2",
4216            Elements::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
4217            Elements::Rightmost32_2 => b"*22",
4218            Elements::Rightmost32_4 => b"**22*22",
4219            Elements::Rightmost32_8 => b"***22*22**22*22",
4220            Elements::Rightmost64_1 => b"2",
4221            Elements::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
4222            Elements::Rightmost64_2 => b"*22",
4223            Elements::Rightmost64_32 => b"i",
4224            Elements::Rightmost64_4 => b"**22*22",
4225            Elements::Rightmost64_8 => b"***22*22**22*22",
4226            Elements::Rightmost8_1 => b"2",
4227            Elements::Rightmost8_2 => b"*22",
4228            Elements::Rightmost8_4 => b"**22*22",
4229            Elements::ScalarAdd => b"h",
4230            Elements::ScalarInvert => b"h",
4231            Elements::ScalarIsZero => b"2",
4232            Elements::ScalarMultiply => b"h",
4233            Elements::ScalarMultiplyLambda => b"h",
4234            Elements::ScalarNegate => b"h",
4235            Elements::ScalarNormalize => b"h",
4236            Elements::ScalarSquare => b"h",
4237            Elements::Scale => b"**hhh",
4238            Elements::ScriptCMR => b"h",
4239            Elements::Sha256Block => b"h",
4240            Elements::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4241            Elements::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4242            Elements::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4243            Elements::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4244            Elements::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4245            Elements::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4246            Elements::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4247            Elements::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4248            Elements::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4249            Elements::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4250            Elements::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4251            Elements::Sha256Ctx8Finalize => b"h",
4252            Elements::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4253            Elements::Sha256Iv => b"h",
4254            Elements::SigAllHash => b"h",
4255            Elements::Some1 => b"2",
4256            Elements::Some16 => b"2",
4257            Elements::Some32 => b"2",
4258            Elements::Some64 => b"2",
4259            Elements::Some8 => b"2",
4260            Elements::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
4261            Elements::Subtract32 => b"*2i",
4262            Elements::Subtract64 => b"*2l",
4263            Elements::Subtract8 => b"*2***22*22**22*22",
4264            Elements::Swu => b"*hh",
4265            Elements::TapEnvHash => b"h",
4266            Elements::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4267            Elements::TapleafHash => b"h",
4268            Elements::TapleafVersion => b"***22*22**22*22",
4269            Elements::Tappath => b"+1h",
4270            Elements::TappathHash => b"h",
4271            Elements::TotalFee => b"l",
4272            Elements::TransactionId => b"h",
4273            Elements::TxHash => b"h",
4274            Elements::TxIsFinal => b"2",
4275            Elements::TxLockDistance => b"****22*22**22*22***22*22**22*22",
4276            Elements::TxLockDuration => b"****22*22**22*22***22*22**22*22",
4277            Elements::TxLockHeight => b"i",
4278            Elements::TxLockTime => b"i",
4279            Elements::Verify => b"1",
4280            Elements::Version => b"i",
4281            Elements::Xor1 => b"2",
4282            Elements::Xor16 => b"****22*22**22*22***22*22**22*22",
4283            Elements::Xor32 => b"i",
4284            Elements::Xor64 => b"l",
4285            Elements::Xor8 => b"***22*22**22*22",
4286            Elements::XorXor1 => b"2",
4287            Elements::XorXor16 => b"****22*22**22*22***22*22**22*22",
4288            Elements::XorXor32 => b"i",
4289            Elements::XorXor64 => b"l",
4290            Elements::XorXor8 => b"***22*22**22*22",
4291        };
4292
4293        TypeName(name)
4294    }
4295
4296    fn encode<W: Write>(&self, w: &mut BitWriter<W>) -> std::io::Result<usize> {
4297        let (n, len) = match self {
4298            Elements::Verify => (0, 3),
4299            Elements::Low1 => (8, 6),
4300            Elements::Low8 => (37, 8),
4301            Elements::Low16 => (304, 11),
4302            Elements::Low32 => (305, 11),
4303            Elements::Low64 => (306, 11),
4304            Elements::High1 => (10, 6),
4305            Elements::High8 => (45, 8),
4306            Elements::High16 => (368, 11),
4307            Elements::High32 => (369, 11),
4308            Elements::High64 => (370, 11),
4309            Elements::Complement1 => (96, 9),
4310            Elements::Complement8 => (389, 11),
4311            Elements::Complement16 => (3120, 14),
4312            Elements::Complement32 => (3121, 14),
4313            Elements::Complement64 => (3122, 14),
4314            Elements::And1 => (98, 9),
4315            Elements::And8 => (397, 11),
4316            Elements::And16 => (3184, 14),
4317            Elements::And32 => (3185, 14),
4318            Elements::And64 => (3186, 14),
4319            Elements::Or1 => (100, 9),
4320            Elements::Or8 => (405, 11),
4321            Elements::Or16 => (3248, 14),
4322            Elements::Or32 => (3249, 14),
4323            Elements::Or64 => (3250, 14),
4324            Elements::Xor1 => (102, 9),
4325            Elements::Xor8 => (413, 11),
4326            Elements::Xor16 => (3312, 14),
4327            Elements::Xor32 => (3313, 14),
4328            Elements::Xor64 => (3314, 14),
4329            Elements::Maj1 => (208, 10),
4330            Elements::Maj8 => (837, 12),
4331            Elements::Maj16 => (6704, 15),
4332            Elements::Maj32 => (6705, 15),
4333            Elements::Maj64 => (6706, 15),
4334            Elements::XorXor1 => (210, 10),
4335            Elements::XorXor8 => (845, 12),
4336            Elements::XorXor16 => (6768, 15),
4337            Elements::XorXor32 => (6769, 15),
4338            Elements::XorXor64 => (6770, 15),
4339            Elements::Ch1 => (212, 10),
4340            Elements::Ch8 => (853, 12),
4341            Elements::Ch16 => (6832, 15),
4342            Elements::Ch32 => (6833, 15),
4343            Elements::Ch64 => (6834, 15),
4344            Elements::Some1 => (214, 10),
4345            Elements::Some8 => (861, 12),
4346            Elements::Some16 => (6896, 15),
4347            Elements::Some32 => (6897, 15),
4348            Elements::Some64 => (6898, 15),
4349            Elements::All8 => (869, 12),
4350            Elements::All16 => (6960, 15),
4351            Elements::All32 => (6961, 15),
4352            Elements::All64 => (6962, 15),
4353            Elements::Eq1 => (218, 10),
4354            Elements::Eq8 => (877, 12),
4355            Elements::Eq16 => (7024, 15),
4356            Elements::Eq32 => (7025, 15),
4357            Elements::Eq64 => (7026, 15),
4358            Elements::Eq256 => (14056, 16),
4359            Elements::FullLeftShift8_1 => (1765, 13),
4360            Elements::FullLeftShift16_1 => (14128, 16),
4361            Elements::FullLeftShift32_1 => (14129, 16),
4362            Elements::FullLeftShift64_1 => (14130, 16),
4363            Elements::FullLeftShift8_2 => (7076, 15),
4364            Elements::FullLeftShift16_2 => (7077, 15),
4365            Elements::FullLeftShift32_2 => (56624, 18),
4366            Elements::FullLeftShift64_2 => (56625, 18),
4367            Elements::FullLeftShift8_4 => (1770, 13),
4368            Elements::FullLeftShift16_4 => (7084, 15),
4369            Elements::FullLeftShift32_4 => (7085, 15),
4370            Elements::FullLeftShift64_4 => (56688, 18),
4371            Elements::FullLeftShift16_8 => (14176, 16),
4372            Elements::FullLeftShift32_8 => (56708, 18),
4373            Elements::FullLeftShift64_8 => (56709, 18),
4374            Elements::FullLeftShift32_16 => (14178, 16),
4375            Elements::FullLeftShift64_16 => (56716, 18),
4376            Elements::FullLeftShift64_32 => (14180, 16),
4377            Elements::FullRightShift8_1 => (1781, 13),
4378            Elements::FullRightShift16_1 => (14256, 16),
4379            Elements::FullRightShift32_1 => (14257, 16),
4380            Elements::FullRightShift64_1 => (14258, 16),
4381            Elements::FullRightShift8_2 => (7140, 15),
4382            Elements::FullRightShift16_2 => (7141, 15),
4383            Elements::FullRightShift32_2 => (57136, 18),
4384            Elements::FullRightShift64_2 => (57137, 18),
4385            Elements::FullRightShift8_4 => (1786, 13),
4386            Elements::FullRightShift16_4 => (7148, 15),
4387            Elements::FullRightShift32_4 => (7149, 15),
4388            Elements::FullRightShift64_4 => (57200, 18),
4389            Elements::FullRightShift16_8 => (14304, 16),
4390            Elements::FullRightShift32_8 => (57220, 18),
4391            Elements::FullRightShift64_8 => (57221, 18),
4392            Elements::FullRightShift32_16 => (14306, 16),
4393            Elements::FullRightShift64_16 => (57228, 18),
4394            Elements::FullRightShift64_32 => (14308, 16),
4395            Elements::Leftmost8_1 => (28677, 17),
4396            Elements::Leftmost16_1 => (229424, 20),
4397            Elements::Leftmost32_1 => (229425, 20),
4398            Elements::Leftmost64_1 => (229426, 20),
4399            Elements::Leftmost8_2 => (114724, 19),
4400            Elements::Leftmost16_2 => (114725, 19),
4401            Elements::Leftmost32_2 => (917808, 22),
4402            Elements::Leftmost64_2 => (917809, 22),
4403            Elements::Leftmost8_4 => (28682, 17),
4404            Elements::Leftmost16_4 => (114732, 19),
4405            Elements::Leftmost32_4 => (114733, 19),
4406            Elements::Leftmost64_4 => (917872, 22),
4407            Elements::Leftmost16_8 => (229472, 20),
4408            Elements::Leftmost32_8 => (917892, 22),
4409            Elements::Leftmost64_8 => (917893, 22),
4410            Elements::Leftmost32_16 => (229474, 20),
4411            Elements::Leftmost64_16 => (917900, 22),
4412            Elements::Leftmost64_32 => (229476, 20),
4413            Elements::Rightmost8_1 => (28693, 17),
4414            Elements::Rightmost16_1 => (229552, 20),
4415            Elements::Rightmost32_1 => (229553, 20),
4416            Elements::Rightmost64_1 => (229554, 20),
4417            Elements::Rightmost8_2 => (114788, 19),
4418            Elements::Rightmost16_2 => (114789, 19),
4419            Elements::Rightmost32_2 => (918320, 22),
4420            Elements::Rightmost64_2 => (918321, 22),
4421            Elements::Rightmost8_4 => (28698, 17),
4422            Elements::Rightmost16_4 => (114796, 19),
4423            Elements::Rightmost32_4 => (114797, 19),
4424            Elements::Rightmost64_4 => (918384, 22),
4425            Elements::Rightmost16_8 => (229600, 20),
4426            Elements::Rightmost32_8 => (918404, 22),
4427            Elements::Rightmost64_8 => (918405, 22),
4428            Elements::Rightmost32_16 => (229602, 20),
4429            Elements::Rightmost64_16 => (918412, 22),
4430            Elements::Rightmost64_32 => (229604, 20),
4431            Elements::LeftPadLow1_8 => (28709, 17),
4432            Elements::LeftPadLow1_16 => (229680, 20),
4433            Elements::LeftPadLow1_32 => (229681, 20),
4434            Elements::LeftPadLow1_64 => (229682, 20),
4435            Elements::LeftPadLow8_16 => (229728, 20),
4436            Elements::LeftPadLow8_32 => (918916, 22),
4437            Elements::LeftPadLow8_64 => (918917, 22),
4438            Elements::LeftPadLow16_32 => (229730, 20),
4439            Elements::LeftPadLow16_64 => (918924, 22),
4440            Elements::LeftPadLow32_64 => (229732, 20),
4441            Elements::LeftPadHigh1_8 => (28725, 17),
4442            Elements::LeftPadHigh1_16 => (229808, 20),
4443            Elements::LeftPadHigh1_32 => (229809, 20),
4444            Elements::LeftPadHigh1_64 => (229810, 20),
4445            Elements::LeftPadHigh8_16 => (229856, 20),
4446            Elements::LeftPadHigh8_32 => (919428, 22),
4447            Elements::LeftPadHigh8_64 => (919429, 22),
4448            Elements::LeftPadHigh16_32 => (229858, 20),
4449            Elements::LeftPadHigh16_64 => (919436, 22),
4450            Elements::LeftPadHigh32_64 => (229860, 20),
4451            Elements::LeftExtend1_8 => (28741, 17),
4452            Elements::LeftExtend1_16 => (229936, 20),
4453            Elements::LeftExtend1_32 => (229937, 20),
4454            Elements::LeftExtend1_64 => (229938, 20),
4455            Elements::LeftExtend8_16 => (229984, 20),
4456            Elements::LeftExtend8_32 => (919940, 22),
4457            Elements::LeftExtend8_64 => (919941, 22),
4458            Elements::LeftExtend16_32 => (229986, 20),
4459            Elements::LeftExtend16_64 => (919948, 22),
4460            Elements::LeftExtend32_64 => (229988, 20),
4461            Elements::RightPadLow1_8 => (28757, 17),
4462            Elements::RightPadLow1_16 => (230064, 20),
4463            Elements::RightPadLow1_32 => (230065, 20),
4464            Elements::RightPadLow1_64 => (230066, 20),
4465            Elements::RightPadLow8_16 => (230112, 20),
4466            Elements::RightPadLow8_32 => (920452, 22),
4467            Elements::RightPadLow8_64 => (920453, 22),
4468            Elements::RightPadLow16_32 => (230114, 20),
4469            Elements::RightPadLow16_64 => (920460, 22),
4470            Elements::RightPadLow32_64 => (230116, 20),
4471            Elements::RightPadHigh1_8 => (28773, 17),
4472            Elements::RightPadHigh1_16 => (230192, 20),
4473            Elements::RightPadHigh1_32 => (230193, 20),
4474            Elements::RightPadHigh1_64 => (230194, 20),
4475            Elements::RightPadHigh8_16 => (230240, 20),
4476            Elements::RightPadHigh8_32 => (920964, 22),
4477            Elements::RightPadHigh8_64 => (920965, 22),
4478            Elements::RightPadHigh16_32 => (230242, 20),
4479            Elements::RightPadHigh16_64 => (920972, 22),
4480            Elements::RightPadHigh32_64 => (230244, 20),
4481            Elements::RightExtend8_16 => (230368, 20),
4482            Elements::RightExtend8_32 => (921476, 22),
4483            Elements::RightExtend8_64 => (921477, 22),
4484            Elements::RightExtend16_32 => (230370, 20),
4485            Elements::RightExtend16_64 => (921484, 22),
4486            Elements::RightExtend32_64 => (230372, 20),
4487            Elements::LeftShiftWith8 => (14405, 16),
4488            Elements::LeftShiftWith16 => (115248, 19),
4489            Elements::LeftShiftWith32 => (115249, 19),
4490            Elements::LeftShiftWith64 => (115250, 19),
4491            Elements::RightShiftWith8 => (14413, 16),
4492            Elements::RightShiftWith16 => (115312, 19),
4493            Elements::RightShiftWith32 => (115313, 19),
4494            Elements::RightShiftWith64 => (115314, 19),
4495            Elements::LeftShift8 => (14421, 16),
4496            Elements::LeftShift16 => (115376, 19),
4497            Elements::LeftShift32 => (115377, 19),
4498            Elements::LeftShift64 => (115378, 19),
4499            Elements::RightShift8 => (14429, 16),
4500            Elements::RightShift16 => (115440, 19),
4501            Elements::RightShift32 => (115441, 19),
4502            Elements::RightShift64 => (115442, 19),
4503            Elements::LeftRotate8 => (14437, 16),
4504            Elements::LeftRotate16 => (115504, 19),
4505            Elements::LeftRotate32 => (115505, 19),
4506            Elements::LeftRotate64 => (115506, 19),
4507            Elements::RightRotate8 => (14445, 16),
4508            Elements::RightRotate16 => (115568, 19),
4509            Elements::RightRotate32 => (115569, 19),
4510            Elements::RightRotate64 => (115570, 19),
4511            Elements::One8 => (69, 8),
4512            Elements::One16 => (560, 11),
4513            Elements::One32 => (561, 11),
4514            Elements::One64 => (562, 11),
4515            Elements::FullAdd8 => (293, 10),
4516            Elements::FullAdd16 => (2352, 13),
4517            Elements::FullAdd32 => (2353, 13),
4518            Elements::FullAdd64 => (2354, 13),
4519            Elements::Add8 => (301, 10),
4520            Elements::Add16 => (2416, 13),
4521            Elements::Add32 => (2417, 13),
4522            Elements::Add64 => (2418, 13),
4523            Elements::FullIncrement8 => (2437, 13),
4524            Elements::FullIncrement16 => (19504, 16),
4525            Elements::FullIncrement32 => (19505, 16),
4526            Elements::FullIncrement64 => (19506, 16),
4527            Elements::Increment8 => (2445, 13),
4528            Elements::Increment16 => (19568, 16),
4529            Elements::Increment32 => (19569, 16),
4530            Elements::Increment64 => (19570, 16),
4531            Elements::FullSubtract8 => (2461, 13),
4532            Elements::FullSubtract16 => (19696, 16),
4533            Elements::FullSubtract32 => (19697, 16),
4534            Elements::FullSubtract64 => (19698, 16),
4535            Elements::Subtract8 => (4933, 14),
4536            Elements::Subtract16 => (39472, 17),
4537            Elements::Subtract32 => (39473, 17),
4538            Elements::Subtract64 => (39474, 17),
4539            Elements::Negate8 => (4941, 14),
4540            Elements::Negate16 => (39536, 17),
4541            Elements::Negate32 => (39537, 17),
4542            Elements::Negate64 => (39538, 17),
4543            Elements::FullDecrement8 => (4949, 14),
4544            Elements::FullDecrement16 => (39600, 17),
4545            Elements::FullDecrement32 => (39601, 17),
4546            Elements::FullDecrement64 => (39602, 17),
4547            Elements::Decrement8 => (4957, 14),
4548            Elements::Decrement16 => (39664, 17),
4549            Elements::Decrement32 => (39665, 17),
4550            Elements::Decrement64 => (39666, 17),
4551            Elements::FullMultiply8 => (4965, 14),
4552            Elements::FullMultiply16 => (39728, 17),
4553            Elements::FullMultiply32 => (39729, 17),
4554            Elements::FullMultiply64 => (39730, 17),
4555            Elements::Multiply8 => (4973, 14),
4556            Elements::Multiply16 => (39792, 17),
4557            Elements::Multiply32 => (39793, 17),
4558            Elements::Multiply64 => (39794, 17),
4559            Elements::IsZero8 => (4981, 14),
4560            Elements::IsZero16 => (39856, 17),
4561            Elements::IsZero32 => (39857, 17),
4562            Elements::IsZero64 => (39858, 17),
4563            Elements::IsOne8 => (4989, 14),
4564            Elements::IsOne16 => (39920, 17),
4565            Elements::IsOne32 => (39921, 17),
4566            Elements::IsOne64 => (39922, 17),
4567            Elements::Le8 => (79877, 18),
4568            Elements::Le16 => (639024, 21),
4569            Elements::Le32 => (639025, 21),
4570            Elements::Le64 => (639026, 21),
4571            Elements::Lt8 => (79885, 18),
4572            Elements::Lt16 => (639088, 21),
4573            Elements::Lt32 => (639089, 21),
4574            Elements::Lt64 => (639090, 21),
4575            Elements::Min8 => (79893, 18),
4576            Elements::Min16 => (639152, 21),
4577            Elements::Min32 => (639153, 21),
4578            Elements::Min64 => (639154, 21),
4579            Elements::Max8 => (79901, 18),
4580            Elements::Max16 => (639216, 21),
4581            Elements::Max32 => (639217, 21),
4582            Elements::Max64 => (639218, 21),
4583            Elements::Median8 => (79909, 18),
4584            Elements::Median16 => (639280, 21),
4585            Elements::Median32 => (639281, 21),
4586            Elements::Median64 => (639282, 21),
4587            Elements::DivMod128_64 => (639346, 21),
4588            Elements::DivMod8 => (79925, 18),
4589            Elements::DivMod16 => (639408, 21),
4590            Elements::DivMod32 => (639409, 21),
4591            Elements::DivMod64 => (639410, 21),
4592            Elements::Divide8 => (79933, 18),
4593            Elements::Divide16 => (639472, 21),
4594            Elements::Divide32 => (639473, 21),
4595            Elements::Divide64 => (639474, 21),
4596            Elements::Modulo8 => (79941, 18),
4597            Elements::Modulo16 => (639536, 21),
4598            Elements::Modulo32 => (639537, 21),
4599            Elements::Modulo64 => (639538, 21),
4600            Elements::Divides8 => (79949, 18),
4601            Elements::Divides16 => (639600, 21),
4602            Elements::Divides32 => (639601, 21),
4603            Elements::Divides64 => (639602, 21),
4604            Elements::Sha256Block => (20, 6),
4605            Elements::Sha256Iv => (84, 8),
4606            Elements::Sha256Ctx8Add1 => (170, 9),
4607            Elements::Sha256Ctx8Add2 => (684, 11),
4608            Elements::Sha256Ctx8Add4 => (685, 11),
4609            Elements::Sha256Ctx8Add8 => (5488, 14),
4610            Elements::Sha256Ctx8Add16 => (5489, 14),
4611            Elements::Sha256Ctx8Add32 => (5490, 14),
4612            Elements::Sha256Ctx8Add64 => (5491, 14),
4613            Elements::Sha256Ctx8Add128 => (10984, 15),
4614            Elements::Sha256Ctx8Add256 => (10985, 15),
4615            Elements::Sha256Ctx8Add512 => (10986, 15),
4616            Elements::Sha256Ctx8AddBuffer511 => (688, 11),
4617            Elements::Sha256Ctx8Finalize => (689, 11),
4618            Elements::Sha256Ctx8Init => (690, 11),
4619            Elements::PointVerify1 => (192, 9),
4620            Elements::Decompress => (388, 10),
4621            Elements::LinearVerify1 => (778, 11),
4622            Elements::LinearCombination1 => (6240, 14),
4623            Elements::Scale => (3121, 13),
4624            Elements::Generate => (3122, 13),
4625            Elements::GejInfinity => (3123, 13),
4626            Elements::GejNormalize => (6248, 14),
4627            Elements::GejNegate => (6249, 14),
4628            Elements::GeNegate => (6250, 14),
4629            Elements::GejDouble => (6251, 14),
4630            Elements::GejAdd => (6252, 14),
4631            Elements::GejGeAddEx => (6253, 14),
4632            Elements::GejGeAdd => (6254, 14),
4633            Elements::GejRescale => (6255, 14),
4634            Elements::GejIsInfinity => (100096, 18),
4635            Elements::GejEquiv => (100097, 18),
4636            Elements::GejGeEquiv => (100098, 18),
4637            Elements::GejXEquiv => (100099, 18),
4638            Elements::GejYIsOdd => (100100, 18),
4639            Elements::GejIsOnCurve => (100101, 18),
4640            Elements::GeIsOnCurve => (100102, 18),
4641            Elements::ScalarNormalize => (100103, 18),
4642            Elements::ScalarNegate => (100104, 18),
4643            Elements::ScalarAdd => (100105, 18),
4644            Elements::ScalarSquare => (100106, 18),
4645            Elements::ScalarMultiply => (100107, 18),
4646            Elements::ScalarMultiplyLambda => (100108, 18),
4647            Elements::ScalarInvert => (100109, 18),
4648            Elements::ScalarIsZero => (100110, 18),
4649            Elements::FeNormalize => (200227, 19),
4650            Elements::FeNegate => (200228, 19),
4651            Elements::FeAdd => (200229, 19),
4652            Elements::FeSquare => (200230, 19),
4653            Elements::FeMultiply => (200231, 19),
4654            Elements::FeMultiplyBeta => (200232, 19),
4655            Elements::FeInvert => (200233, 19),
4656            Elements::FeSquareRoot => (200234, 19),
4657            Elements::FeIsZero => (200235, 19),
4658            Elements::FeIsOdd => (200236, 19),
4659            Elements::HashToCurve => (200238, 19),
4660            Elements::Swu => (200239, 19),
4661            Elements::CheckSigVerify => (98, 8),
4662            Elements::Bip0340Verify => (396, 10),
4663            Elements::ParseLock => (102, 8),
4664            Elements::ParseSequence => (412, 10),
4665            Elements::TapdataInit => (413, 10),
4666            Elements::SigAllHash => (4, 3),
4667            Elements::TxHash => (20, 5),
4668            Elements::TapEnvHash => (21, 5),
4669            Elements::OutputsHash => (176, 8),
4670            Elements::InputsHash => (177, 8),
4671            Elements::IssuancesHash => (178, 8),
4672            Elements::InputUtxosHash => (179, 8),
4673            Elements::OutputHash => (360, 9),
4674            Elements::OutputAmountsHash => (361, 9),
4675            Elements::OutputScriptsHash => (362, 9),
4676            Elements::OutputNoncesHash => (363, 9),
4677            Elements::OutputRangeProofsHash => (364, 9),
4678            Elements::OutputSurjectionProofsHash => (365, 9),
4679            Elements::InputHash => (366, 9),
4680            Elements::InputOutpointsHash => (367, 9),
4681            Elements::InputSequencesHash => (5888, 13),
4682            Elements::InputAnnexesHash => (5889, 13),
4683            Elements::InputScriptSigsHash => (5890, 13),
4684            Elements::IssuanceHash => (5891, 13),
4685            Elements::IssuanceAssetAmountsHash => (5892, 13),
4686            Elements::IssuanceTokenAmountsHash => (5893, 13),
4687            Elements::IssuanceRangeProofsHash => (5894, 13),
4688            Elements::IssuanceBlindingEntropyHash => (5895, 13),
4689            Elements::InputUtxoHash => (5896, 13),
4690            Elements::InputAmountsHash => (5897, 13),
4691            Elements::InputScriptsHash => (5898, 13),
4692            Elements::TapleafHash => (5899, 13),
4693            Elements::TappathHash => (5900, 13),
4694            Elements::OutpointHash => (5901, 13),
4695            Elements::AssetAmountHash => (5902, 13),
4696            Elements::NonceHash => (5903, 13),
4697            Elements::AnnexHash => (11808, 14),
4698            Elements::BuildTapleafSimplicity => (11809, 14),
4699            Elements::BuildTapbranch => (11810, 14),
4700            Elements::BuildTaptweak => (11811, 14),
4701            Elements::CheckLockHeight => (24, 5),
4702            Elements::CheckLockTime => (100, 7),
4703            Elements::CheckLockDistance => (101, 7),
4704            Elements::CheckLockDuration => (816, 10),
4705            Elements::TxLockHeight => (817, 10),
4706            Elements::TxLockTime => (818, 10),
4707            Elements::TxLockDistance => (819, 10),
4708            Elements::TxLockDuration => (1640, 11),
4709            Elements::TxIsFinal => (1641, 11),
4710            Elements::Issuance => (26, 5),
4711            Elements::IssuanceAsset => (108, 7),
4712            Elements::IssuanceToken => (109, 7),
4713            Elements::IssuanceEntropy => (880, 10),
4714            Elements::CalculateIssuanceEntropy => (881, 10),
4715            Elements::CalculateAsset => (882, 10),
4716            Elements::CalculateExplicitToken => (883, 10),
4717            Elements::CalculateConfidentialToken => (1768, 11),
4718            Elements::LbtcAsset => (1769, 11),
4719            Elements::ScriptCMR => (224, 8),
4720            Elements::InternalKey => (900, 10),
4721            Elements::CurrentIndex => (901, 10),
4722            Elements::NumInputs => (7216, 13),
4723            Elements::NumOutputs => (7217, 13),
4724            Elements::LockTime => (7218, 13),
4725            Elements::OutputAsset => (7219, 13),
4726            Elements::OutputAmount => (14440, 14),
4727            Elements::OutputNonce => (14441, 14),
4728            Elements::OutputScriptHash => (14442, 14),
4729            Elements::OutputNullDatum => (14443, 14),
4730            Elements::OutputIsFee => (14444, 14),
4731            Elements::OutputSurjectionProof => (14445, 14),
4732            Elements::OutputRangeProof => (14446, 14),
4733            Elements::TotalFee => (14447, 14),
4734            Elements::CurrentPegin => (231168, 18),
4735            Elements::CurrentPrevOutpoint => (231169, 18),
4736            Elements::CurrentAsset => (231170, 18),
4737            Elements::CurrentAmount => (231171, 18),
4738            Elements::CurrentScriptHash => (231172, 18),
4739            Elements::CurrentSequence => (231173, 18),
4740            Elements::CurrentAnnexHash => (231174, 18),
4741            Elements::CurrentScriptSigHash => (231175, 18),
4742            Elements::CurrentReissuanceBlinding => (231176, 18),
4743            Elements::CurrentNewIssuanceContract => (231177, 18),
4744            Elements::CurrentReissuanceEntropy => (231178, 18),
4745            Elements::CurrentIssuanceAssetAmount => (231179, 18),
4746            Elements::CurrentIssuanceTokenAmount => (231180, 18),
4747            Elements::CurrentIssuanceAssetProof => (231181, 18),
4748            Elements::CurrentIssuanceTokenProof => (231182, 18),
4749            Elements::InputPegin => (231183, 18),
4750            Elements::InputPrevOutpoint => (462368, 19),
4751            Elements::InputAsset => (462369, 19),
4752            Elements::InputAmount => (462370, 19),
4753            Elements::InputScriptHash => (462371, 19),
4754            Elements::InputSequence => (462372, 19),
4755            Elements::InputAnnexHash => (462373, 19),
4756            Elements::InputScriptSigHash => (462374, 19),
4757            Elements::ReissuanceBlinding => (462375, 19),
4758            Elements::NewIssuanceContract => (462376, 19),
4759            Elements::ReissuanceEntropy => (462377, 19),
4760            Elements::IssuanceAssetAmount => (462378, 19),
4761            Elements::IssuanceTokenAmount => (462379, 19),
4762            Elements::IssuanceAssetProof => (462380, 19),
4763            Elements::IssuanceTokenProof => (462381, 19),
4764            Elements::TapleafVersion => (462382, 19),
4765            Elements::Tappath => (462383, 19),
4766            Elements::Version => (462384, 19),
4767            Elements::GenesisBlockHash => (462385, 19),
4768            Elements::TransactionId => (462386, 19),
4769        };
4770
4771        w.write_bits_be(n, len)
4772    }
4773
4774    fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> {
4775        decode_bits!(bits, {
4776            0 => {
4777                0 => {
4778                    0 => {Elements::Verify},
4779                    1 => {
4780                        0 => {
4781                            0 => {
4782                                0 => {Elements::Low1},
4783                                1 => {
4784                                    0 => {
4785                                        0 => {},
4786                                        1 => {Elements::Low8}
4787                                    },
4788                                    1 => {
4789                                        0 => {
4790                                            0 => {
4791                                                0 => {
4792                                                    0 => {Elements::Low16},
4793                                                    1 => {Elements::Low32}
4794                                                },
4795                                                1 => {
4796                                                    0 => {Elements::Low64},
4797                                                    1 => {}
4798                                                }
4799                                            },
4800                                            1 => {}
4801                                        },
4802                                        1 => {}
4803                                    }
4804                                }
4805                            },
4806                            1 => {
4807                                0 => {Elements::High1},
4808                                1 => {
4809                                    0 => {
4810                                        0 => {},
4811                                        1 => {Elements::High8}
4812                                    },
4813                                    1 => {
4814                                        0 => {
4815                                            0 => {
4816                                                0 => {
4817                                                    0 => {Elements::High16},
4818                                                    1 => {Elements::High32}
4819                                                },
4820                                                1 => {
4821                                                    0 => {Elements::High64},
4822                                                    1 => {}
4823                                                }
4824                                            },
4825                                            1 => {}
4826                                        },
4827                                        1 => {}
4828                                    }
4829                                }
4830                            }
4831                        },
4832                        1 => {
4833                            0 => {
4834                                0 => {
4835                                    0 => {
4836                                        0 => {
4837                                            0 => {Elements::Complement1},
4838                                            1 => {
4839                                                0 => {
4840                                                    0 => {},
4841                                                    1 => {Elements::Complement8}
4842                                                },
4843                                                1 => {
4844                                                    0 => {
4845                                                        0 => {
4846                                                            0 => {
4847                                                                0 => {Elements::Complement16},
4848                                                                1 => {Elements::Complement32}
4849                                                            },
4850                                                            1 => {
4851                                                                0 => {Elements::Complement64},
4852                                                                1 => {}
4853                                                            }
4854                                                        },
4855                                                        1 => {}
4856                                                    },
4857                                                    1 => {}
4858                                                }
4859                                            }
4860                                        },
4861                                        1 => {
4862                                            0 => {Elements::And1},
4863                                            1 => {
4864                                                0 => {
4865                                                    0 => {},
4866                                                    1 => {Elements::And8}
4867                                                },
4868                                                1 => {
4869                                                    0 => {
4870                                                        0 => {
4871                                                            0 => {
4872                                                                0 => {Elements::And16},
4873                                                                1 => {Elements::And32}
4874                                                            },
4875                                                            1 => {
4876                                                                0 => {Elements::And64},
4877                                                                1 => {}
4878                                                            }
4879                                                        },
4880                                                        1 => {}
4881                                                    },
4882                                                    1 => {}
4883                                                }
4884                                            }
4885                                        }
4886                                    },
4887                                    1 => {
4888                                        0 => {
4889                                            0 => {Elements::Or1},
4890                                            1 => {
4891                                                0 => {
4892                                                    0 => {},
4893                                                    1 => {Elements::Or8}
4894                                                },
4895                                                1 => {
4896                                                    0 => {
4897                                                        0 => {
4898                                                            0 => {
4899                                                                0 => {Elements::Or16},
4900                                                                1 => {Elements::Or32}
4901                                                            },
4902                                                            1 => {
4903                                                                0 => {Elements::Or64},
4904                                                                1 => {}
4905                                                            }
4906                                                        },
4907                                                        1 => {}
4908                                                    },
4909                                                    1 => {}
4910                                                }
4911                                            }
4912                                        },
4913                                        1 => {
4914                                            0 => {Elements::Xor1},
4915                                            1 => {
4916                                                0 => {
4917                                                    0 => {},
4918                                                    1 => {Elements::Xor8}
4919                                                },
4920                                                1 => {
4921                                                    0 => {
4922                                                        0 => {
4923                                                            0 => {
4924                                                                0 => {Elements::Xor16},
4925                                                                1 => {Elements::Xor32}
4926                                                            },
4927                                                            1 => {
4928                                                                0 => {Elements::Xor64},
4929                                                                1 => {}
4930                                                            }
4931                                                        },
4932                                                        1 => {}
4933                                                    },
4934                                                    1 => {}
4935                                                }
4936                                            }
4937                                        }
4938                                    }
4939                                },
4940                                1 => {
4941                                    0 => {
4942                                        0 => {
4943                                            0 => {
4944                                                0 => {Elements::Maj1},
4945                                                1 => {
4946                                                    0 => {
4947                                                        0 => {},
4948                                                        1 => {Elements::Maj8}
4949                                                    },
4950                                                    1 => {
4951                                                        0 => {
4952                                                            0 => {
4953                                                                0 => {
4954                                                                    0 => {Elements::Maj16},
4955                                                                    1 => {Elements::Maj32}
4956                                                                },
4957                                                                1 => {
4958                                                                    0 => {Elements::Maj64},
4959                                                                    1 => {}
4960                                                                }
4961                                                            },
4962                                                            1 => {}
4963                                                        },
4964                                                        1 => {}
4965                                                    }
4966                                                }
4967                                            },
4968                                            1 => {
4969                                                0 => {Elements::XorXor1},
4970                                                1 => {
4971                                                    0 => {
4972                                                        0 => {},
4973                                                        1 => {Elements::XorXor8}
4974                                                    },
4975                                                    1 => {
4976                                                        0 => {
4977                                                            0 => {
4978                                                                0 => {
4979                                                                    0 => {Elements::XorXor16},
4980                                                                    1 => {Elements::XorXor32}
4981                                                                },
4982                                                                1 => {
4983                                                                    0 => {Elements::XorXor64},
4984                                                                    1 => {}
4985                                                                }
4986                                                            },
4987                                                            1 => {}
4988                                                        },
4989                                                        1 => {}
4990                                                    }
4991                                                }
4992                                            }
4993                                        },
4994                                        1 => {
4995                                            0 => {
4996                                                0 => {Elements::Ch1},
4997                                                1 => {
4998                                                    0 => {
4999                                                        0 => {},
5000                                                        1 => {Elements::Ch8}
5001                                                    },
5002                                                    1 => {
5003                                                        0 => {
5004                                                            0 => {
5005                                                                0 => {
5006                                                                    0 => {Elements::Ch16},
5007                                                                    1 => {Elements::Ch32}
5008                                                                },
5009                                                                1 => {
5010                                                                    0 => {Elements::Ch64},
5011                                                                    1 => {}
5012                                                                }
5013                                                            },
5014                                                            1 => {}
5015                                                        },
5016                                                        1 => {}
5017                                                    }
5018                                                }
5019                                            },
5020                                            1 => {
5021                                                0 => {Elements::Some1},
5022                                                1 => {
5023                                                    0 => {
5024                                                        0 => {},
5025                                                        1 => {Elements::Some8}
5026                                                    },
5027                                                    1 => {
5028                                                        0 => {
5029                                                            0 => {
5030                                                                0 => {
5031                                                                    0 => {Elements::Some16},
5032                                                                    1 => {Elements::Some32}
5033                                                                },
5034                                                                1 => {
5035                                                                    0 => {Elements::Some64},
5036                                                                    1 => {}
5037                                                                }
5038                                                            },
5039                                                            1 => {}
5040                                                        },
5041                                                        1 => {}
5042                                                    }
5043                                                }
5044                                            }
5045                                        }
5046                                    },
5047                                    1 => {
5048                                        0 => {
5049                                            0 => {
5050                                                0 => {},
5051                                                1 => {
5052                                                    0 => {
5053                                                        0 => {},
5054                                                        1 => {Elements::All8}
5055                                                    },
5056                                                    1 => {
5057                                                        0 => {
5058                                                            0 => {
5059                                                                0 => {
5060                                                                    0 => {Elements::All16},
5061                                                                    1 => {Elements::All32}
5062                                                                },
5063                                                                1 => {
5064                                                                    0 => {Elements::All64},
5065                                                                    1 => {}
5066                                                                }
5067                                                            },
5068                                                            1 => {}
5069                                                        },
5070                                                        1 => {}
5071                                                    }
5072                                                }
5073                                            },
5074                                            1 => {
5075                                                0 => {Elements::Eq1},
5076                                                1 => {
5077                                                    0 => {
5078                                                        0 => {},
5079                                                        1 => {Elements::Eq8}
5080                                                    },
5081                                                    1 => {
5082                                                        0 => {
5083                                                            0 => {
5084                                                                0 => {
5085                                                                    0 => {Elements::Eq16},
5086                                                                    1 => {Elements::Eq32}
5087                                                                },
5088                                                                1 => {
5089                                                                    0 => {Elements::Eq64},
5090                                                                    1 => {}
5091                                                                }
5092                                                            },
5093                                                            1 => {
5094                                                                0 => {
5095                                                                    0 => {
5096                                                                        0 => {Elements::Eq256},
5097                                                                        1 => {}
5098                                                                    },
5099                                                                    1 => {}
5100                                                                },
5101                                                                1 => {}
5102                                                            }
5103                                                        },
5104                                                        1 => {}
5105                                                    }
5106                                                }
5107                                            }
5108                                        },
5109                                        1 => {
5110                                            0 => {
5111                                                0 => {
5112                                                    0 => {},
5113                                                    1 => {
5114                                                        0 => {
5115                                                            0 => {},
5116                                                            1 => {Elements::FullLeftShift8_1}
5117                                                        },
5118                                                        1 => {
5119                                                            0 => {
5120                                                                0 => {
5121                                                                    0 => {
5122                                                                        0 => {Elements::FullLeftShift16_1},
5123                                                                        1 => {Elements::FullLeftShift32_1}
5124                                                                    },
5125                                                                    1 => {
5126                                                                        0 => {Elements::FullLeftShift64_1},
5127                                                                        1 => {}
5128                                                                    }
5129                                                                },
5130                                                                1 => {}
5131                                                            },
5132                                                            1 => {}
5133                                                        }
5134                                                    }
5135                                                },
5136                                                1 => {
5137                                                    0 => {
5138                                                        0 => {
5139                                                            0 => {},
5140                                                            1 => {
5141                                                                0 => {
5142                                                                    0 => {Elements::FullLeftShift8_2},
5143                                                                    1 => {Elements::FullLeftShift16_2}
5144                                                                },
5145                                                                1 => {
5146                                                                    0 => {
5147                                                                        0 => {
5148                                                                            0 => {
5149                                                                                0 => {Elements::FullLeftShift32_2},
5150                                                                                1 => {Elements::FullLeftShift64_2}
5151                                                                            },
5152                                                                            1 => {}
5153                                                                        },
5154                                                                        1 => {}
5155                                                                    },
5156                                                                    1 => {}
5157                                                                }
5158                                                            }
5159                                                        },
5160                                                        1 => {
5161                                                            0 => {Elements::FullLeftShift8_4},
5162                                                            1 => {
5163                                                                0 => {
5164                                                                    0 => {Elements::FullLeftShift16_4},
5165                                                                    1 => {Elements::FullLeftShift32_4}
5166                                                                },
5167                                                                1 => {
5168                                                                    0 => {
5169                                                                        0 => {
5170                                                                            0 => {
5171                                                                                0 => {Elements::FullLeftShift64_4},
5172                                                                                1 => {}
5173                                                                            },
5174                                                                            1 => {}
5175                                                                        },
5176                                                                        1 => {}
5177                                                                    },
5178                                                                    1 => {}
5179                                                                }
5180                                                            }
5181                                                        }
5182                                                    },
5183                                                    1 => {
5184                                                        0 => {
5185                                                            0 => {
5186                                                                0 => {
5187                                                                    0 => {
5188                                                                        0 => {Elements::FullLeftShift16_8},
5189                                                                        1 => {
5190                                                                            0 => {
5191                                                                                0 => {Elements::FullLeftShift32_8},
5192                                                                                1 => {Elements::FullLeftShift64_8}
5193                                                                            },
5194                                                                            1 => {}
5195                                                                        }
5196                                                                    },
5197                                                                    1 => {
5198                                                                        0 => {Elements::FullLeftShift32_16},
5199                                                                        1 => {
5200                                                                            0 => {
5201                                                                                0 => {Elements::FullLeftShift64_16},
5202                                                                                1 => {}
5203                                                                            },
5204                                                                            1 => {}
5205                                                                        }
5206                                                                    }
5207                                                                },
5208                                                                1 => {
5209                                                                    0 => {
5210                                                                        0 => {Elements::FullLeftShift64_32},
5211                                                                        1 => {}
5212                                                                    },
5213                                                                    1 => {}
5214                                                                }
5215                                                            },
5216                                                            1 => {}
5217                                                        },
5218                                                        1 => {}
5219                                                    }
5220                                                }
5221                                            },
5222                                            1 => {
5223                                                0 => {
5224                                                    0 => {},
5225                                                    1 => {
5226                                                        0 => {
5227                                                            0 => {},
5228                                                            1 => {Elements::FullRightShift8_1}
5229                                                        },
5230                                                        1 => {
5231                                                            0 => {
5232                                                                0 => {
5233                                                                    0 => {
5234                                                                        0 => {Elements::FullRightShift16_1},
5235                                                                        1 => {Elements::FullRightShift32_1}
5236                                                                    },
5237                                                                    1 => {
5238                                                                        0 => {Elements::FullRightShift64_1},
5239                                                                        1 => {}
5240                                                                    }
5241                                                                },
5242                                                                1 => {}
5243                                                            },
5244                                                            1 => {}
5245                                                        }
5246                                                    }
5247                                                },
5248                                                1 => {
5249                                                    0 => {
5250                                                        0 => {
5251                                                            0 => {},
5252                                                            1 => {
5253                                                                0 => {
5254                                                                    0 => {Elements::FullRightShift8_2},
5255                                                                    1 => {Elements::FullRightShift16_2}
5256                                                                },
5257                                                                1 => {
5258                                                                    0 => {
5259                                                                        0 => {
5260                                                                            0 => {
5261                                                                                0 => {Elements::FullRightShift32_2},
5262                                                                                1 => {Elements::FullRightShift64_2}
5263                                                                            },
5264                                                                            1 => {}
5265                                                                        },
5266                                                                        1 => {}
5267                                                                    },
5268                                                                    1 => {}
5269                                                                }
5270                                                            }
5271                                                        },
5272                                                        1 => {
5273                                                            0 => {Elements::FullRightShift8_4},
5274                                                            1 => {
5275                                                                0 => {
5276                                                                    0 => {Elements::FullRightShift16_4},
5277                                                                    1 => {Elements::FullRightShift32_4}
5278                                                                },
5279                                                                1 => {
5280                                                                    0 => {
5281                                                                        0 => {
5282                                                                            0 => {
5283                                                                                0 => {Elements::FullRightShift64_4},
5284                                                                                1 => {}
5285                                                                            },
5286                                                                            1 => {}
5287                                                                        },
5288                                                                        1 => {}
5289                                                                    },
5290                                                                    1 => {}
5291                                                                }
5292                                                            }
5293                                                        }
5294                                                    },
5295                                                    1 => {
5296                                                        0 => {
5297                                                            0 => {
5298                                                                0 => {
5299                                                                    0 => {
5300                                                                        0 => {Elements::FullRightShift16_8},
5301                                                                        1 => {
5302                                                                            0 => {
5303                                                                                0 => {Elements::FullRightShift32_8},
5304                                                                                1 => {Elements::FullRightShift64_8}
5305                                                                            },
5306                                                                            1 => {}
5307                                                                        }
5308                                                                    },
5309                                                                    1 => {
5310                                                                        0 => {Elements::FullRightShift32_16},
5311                                                                        1 => {
5312                                                                            0 => {
5313                                                                                0 => {Elements::FullRightShift64_16},
5314                                                                                1 => {}
5315                                                                            },
5316                                                                            1 => {}
5317                                                                        }
5318                                                                    }
5319                                                                },
5320                                                                1 => {
5321                                                                    0 => {
5322                                                                        0 => {Elements::FullRightShift64_32},
5323                                                                        1 => {}
5324                                                                    },
5325                                                                    1 => {}
5326                                                                }
5327                                                            },
5328                                                            1 => {}
5329                                                        },
5330                                                        1 => {}
5331                                                    }
5332                                                }
5333                                            }
5334                                        }
5335                                    }
5336                                }
5337                            },
5338                            1 => {
5339                                0 => {
5340                                    0 => {
5341                                        0 => {
5342                                            0 => {
5343                                                0 => {
5344                                                    0 => {
5345                                                        0 => {
5346                                                            0 => {
5347                                                                0 => {
5348                                                                    0 => {},
5349                                                                    1 => {
5350                                                                        0 => {
5351                                                                            0 => {},
5352                                                                            1 => {Elements::Leftmost8_1}
5353                                                                        },
5354                                                                        1 => {
5355                                                                            0 => {
5356                                                                                0 => {
5357                                                                                    0 => {
5358                                                                                        0 => {Elements::Leftmost16_1},
5359                                                                                        1 => {Elements::Leftmost32_1}
5360                                                                                    },
5361                                                                                    1 => {
5362                                                                                        0 => {Elements::Leftmost64_1},
5363                                                                                        1 => {}
5364                                                                                    }
5365                                                                                },
5366                                                                                1 => {}
5367                                                                            },
5368                                                                            1 => {}
5369                                                                        }
5370                                                                    }
5371                                                                },
5372                                                                1 => {
5373                                                                    0 => {
5374                                                                        0 => {
5375                                                                            0 => {},
5376                                                                            1 => {
5377                                                                                0 => {
5378                                                                                    0 => {Elements::Leftmost8_2},
5379                                                                                    1 => {Elements::Leftmost16_2}
5380                                                                                },
5381                                                                                1 => {
5382                                                                                    0 => {
5383                                                                                        0 => {
5384                                                                                            0 => {
5385                                                                                                0 => {Elements::Leftmost32_2},
5386                                                                                                1 => {Elements::Leftmost64_2}
5387                                                                                            },
5388                                                                                            1 => {}
5389                                                                                        },
5390                                                                                        1 => {}
5391                                                                                    },
5392                                                                                    1 => {}
5393                                                                                }
5394                                                                            }
5395                                                                        },
5396                                                                        1 => {
5397                                                                            0 => {Elements::Leftmost8_4},
5398                                                                            1 => {
5399                                                                                0 => {
5400                                                                                    0 => {Elements::Leftmost16_4},
5401                                                                                    1 => {Elements::Leftmost32_4}
5402                                                                                },
5403                                                                                1 => {
5404                                                                                    0 => {
5405                                                                                        0 => {
5406                                                                                            0 => {
5407                                                                                                0 => {Elements::Leftmost64_4},
5408                                                                                                1 => {}
5409                                                                                            },
5410                                                                                            1 => {}
5411                                                                                        },
5412                                                                                        1 => {}
5413                                                                                    },
5414                                                                                    1 => {}
5415                                                                                }
5416                                                                            }
5417                                                                        }
5418                                                                    },
5419                                                                    1 => {
5420                                                                        0 => {
5421                                                                            0 => {
5422                                                                                0 => {
5423                                                                                    0 => {
5424                                                                                        0 => {Elements::Leftmost16_8},
5425                                                                                        1 => {
5426                                                                                            0 => {
5427                                                                                                0 => {Elements::Leftmost32_8},
5428                                                                                                1 => {Elements::Leftmost64_8}
5429                                                                                            },
5430                                                                                            1 => {}
5431                                                                                        }
5432                                                                                    },
5433                                                                                    1 => {
5434                                                                                        0 => {Elements::Leftmost32_16},
5435                                                                                        1 => {
5436                                                                                            0 => {
5437                                                                                                0 => {Elements::Leftmost64_16},
5438                                                                                                1 => {}
5439                                                                                            },
5440                                                                                            1 => {}
5441                                                                                        }
5442                                                                                    }
5443                                                                                },
5444                                                                                1 => {
5445                                                                                    0 => {
5446                                                                                        0 => {Elements::Leftmost64_32},
5447                                                                                        1 => {}
5448                                                                                    },
5449                                                                                    1 => {}
5450                                                                                }
5451                                                                            },
5452                                                                            1 => {}
5453                                                                        },
5454                                                                        1 => {}
5455                                                                    }
5456                                                                }
5457                                                            },
5458                                                            1 => {
5459                                                                0 => {
5460                                                                    0 => {},
5461                                                                    1 => {
5462                                                                        0 => {
5463                                                                            0 => {},
5464                                                                            1 => {Elements::Rightmost8_1}
5465                                                                        },
5466                                                                        1 => {
5467                                                                            0 => {
5468                                                                                0 => {
5469                                                                                    0 => {
5470                                                                                        0 => {Elements::Rightmost16_1},
5471                                                                                        1 => {Elements::Rightmost32_1}
5472                                                                                    },
5473                                                                                    1 => {
5474                                                                                        0 => {Elements::Rightmost64_1},
5475                                                                                        1 => {}
5476                                                                                    }
5477                                                                                },
5478                                                                                1 => {}
5479                                                                            },
5480                                                                            1 => {}
5481                                                                        }
5482                                                                    }
5483                                                                },
5484                                                                1 => {
5485                                                                    0 => {
5486                                                                        0 => {
5487                                                                            0 => {},
5488                                                                            1 => {
5489                                                                                0 => {
5490                                                                                    0 => {Elements::Rightmost8_2},
5491                                                                                    1 => {Elements::Rightmost16_2}
5492                                                                                },
5493                                                                                1 => {
5494                                                                                    0 => {
5495                                                                                        0 => {
5496                                                                                            0 => {
5497                                                                                                0 => {Elements::Rightmost32_2},
5498                                                                                                1 => {Elements::Rightmost64_2}
5499                                                                                            },
5500                                                                                            1 => {}
5501                                                                                        },
5502                                                                                        1 => {}
5503                                                                                    },
5504                                                                                    1 => {}
5505                                                                                }
5506                                                                            }
5507                                                                        },
5508                                                                        1 => {
5509                                                                            0 => {Elements::Rightmost8_4},
5510                                                                            1 => {
5511                                                                                0 => {
5512                                                                                    0 => {Elements::Rightmost16_4},
5513                                                                                    1 => {Elements::Rightmost32_4}
5514                                                                                },
5515                                                                                1 => {
5516                                                                                    0 => {
5517                                                                                        0 => {
5518                                                                                            0 => {
5519                                                                                                0 => {Elements::Rightmost64_4},
5520                                                                                                1 => {}
5521                                                                                            },
5522                                                                                            1 => {}
5523                                                                                        },
5524                                                                                        1 => {}
5525                                                                                    },
5526                                                                                    1 => {}
5527                                                                                }
5528                                                                            }
5529                                                                        }
5530                                                                    },
5531                                                                    1 => {
5532                                                                        0 => {
5533                                                                            0 => {
5534                                                                                0 => {
5535                                                                                    0 => {
5536                                                                                        0 => {Elements::Rightmost16_8},
5537                                                                                        1 => {
5538                                                                                            0 => {
5539                                                                                                0 => {Elements::Rightmost32_8},
5540                                                                                                1 => {Elements::Rightmost64_8}
5541                                                                                            },
5542                                                                                            1 => {}
5543                                                                                        }
5544                                                                                    },
5545                                                                                    1 => {
5546                                                                                        0 => {Elements::Rightmost32_16},
5547                                                                                        1 => {
5548                                                                                            0 => {
5549                                                                                                0 => {Elements::Rightmost64_16},
5550                                                                                                1 => {}
5551                                                                                            },
5552                                                                                            1 => {}
5553                                                                                        }
5554                                                                                    }
5555                                                                                },
5556                                                                                1 => {
5557                                                                                    0 => {
5558                                                                                        0 => {Elements::Rightmost64_32},
5559                                                                                        1 => {}
5560                                                                                    },
5561                                                                                    1 => {}
5562                                                                                }
5563                                                                            },
5564                                                                            1 => {}
5565                                                                        },
5566                                                                        1 => {}
5567                                                                    }
5568                                                                }
5569                                                            }
5570                                                        },
5571                                                        1 => {
5572                                                            0 => {
5573                                                                0 => {
5574                                                                    0 => {},
5575                                                                    1 => {
5576                                                                        0 => {
5577                                                                            0 => {},
5578                                                                            1 => {Elements::LeftPadLow1_8}
5579                                                                        },
5580                                                                        1 => {
5581                                                                            0 => {
5582                                                                                0 => {
5583                                                                                    0 => {
5584                                                                                        0 => {Elements::LeftPadLow1_16},
5585                                                                                        1 => {Elements::LeftPadLow1_32}
5586                                                                                    },
5587                                                                                    1 => {
5588                                                                                        0 => {Elements::LeftPadLow1_64},
5589                                                                                        1 => {}
5590                                                                                    }
5591                                                                                },
5592                                                                                1 => {}
5593                                                                            },
5594                                                                            1 => {}
5595                                                                        }
5596                                                                    }
5597                                                                },
5598                                                                1 => {
5599                                                                    0 => {},
5600                                                                    1 => {
5601                                                                        0 => {
5602                                                                            0 => {
5603                                                                                0 => {
5604                                                                                    0 => {
5605                                                                                        0 => {Elements::LeftPadLow8_16},
5606                                                                                        1 => {
5607                                                                                            0 => {
5608                                                                                                0 => {Elements::LeftPadLow8_32},
5609                                                                                                1 => {Elements::LeftPadLow8_64}
5610                                                                                            },
5611                                                                                            1 => {}
5612                                                                                        }
5613                                                                                    },
5614                                                                                    1 => {
5615                                                                                        0 => {Elements::LeftPadLow16_32},
5616                                                                                        1 => {
5617                                                                                            0 => {
5618                                                                                                0 => {Elements::LeftPadLow16_64},
5619                                                                                                1 => {}
5620                                                                                            },
5621                                                                                            1 => {}
5622                                                                                        }
5623                                                                                    }
5624                                                                                },
5625                                                                                1 => {
5626                                                                                    0 => {
5627                                                                                        0 => {Elements::LeftPadLow32_64},
5628                                                                                        1 => {}
5629                                                                                    },
5630                                                                                    1 => {}
5631                                                                                }
5632                                                                            },
5633                                                                            1 => {}
5634                                                                        },
5635                                                                        1 => {}
5636                                                                    }
5637                                                                }
5638                                                            },
5639                                                            1 => {
5640                                                                0 => {
5641                                                                    0 => {},
5642                                                                    1 => {
5643                                                                        0 => {
5644                                                                            0 => {},
5645                                                                            1 => {Elements::LeftPadHigh1_8}
5646                                                                        },
5647                                                                        1 => {
5648                                                                            0 => {
5649                                                                                0 => {
5650                                                                                    0 => {
5651                                                                                        0 => {Elements::LeftPadHigh1_16},
5652                                                                                        1 => {Elements::LeftPadHigh1_32}
5653                                                                                    },
5654                                                                                    1 => {
5655                                                                                        0 => {Elements::LeftPadHigh1_64},
5656                                                                                        1 => {}
5657                                                                                    }
5658                                                                                },
5659                                                                                1 => {}
5660                                                                            },
5661                                                                            1 => {}
5662                                                                        }
5663                                                                    }
5664                                                                },
5665                                                                1 => {
5666                                                                    0 => {},
5667                                                                    1 => {
5668                                                                        0 => {
5669                                                                            0 => {
5670                                                                                0 => {
5671                                                                                    0 => {
5672                                                                                        0 => {Elements::LeftPadHigh8_16},
5673                                                                                        1 => {
5674                                                                                            0 => {
5675                                                                                                0 => {Elements::LeftPadHigh8_32},
5676                                                                                                1 => {Elements::LeftPadHigh8_64}
5677                                                                                            },
5678                                                                                            1 => {}
5679                                                                                        }
5680                                                                                    },
5681                                                                                    1 => {
5682                                                                                        0 => {Elements::LeftPadHigh16_32},
5683                                                                                        1 => {
5684                                                                                            0 => {
5685                                                                                                0 => {Elements::LeftPadHigh16_64},
5686                                                                                                1 => {}
5687                                                                                            },
5688                                                                                            1 => {}
5689                                                                                        }
5690                                                                                    }
5691                                                                                },
5692                                                                                1 => {
5693                                                                                    0 => {
5694                                                                                        0 => {Elements::LeftPadHigh32_64},
5695                                                                                        1 => {}
5696                                                                                    },
5697                                                                                    1 => {}
5698                                                                                }
5699                                                                            },
5700                                                                            1 => {}
5701                                                                        },
5702                                                                        1 => {}
5703                                                                    }
5704                                                                }
5705                                                            }
5706                                                        }
5707                                                    },
5708                                                    1 => {
5709                                                        0 => {
5710                                                            0 => {
5711                                                                0 => {
5712                                                                    0 => {},
5713                                                                    1 => {
5714                                                                        0 => {
5715                                                                            0 => {},
5716                                                                            1 => {Elements::LeftExtend1_8}
5717                                                                        },
5718                                                                        1 => {
5719                                                                            0 => {
5720                                                                                0 => {
5721                                                                                    0 => {
5722                                                                                        0 => {Elements::LeftExtend1_16},
5723                                                                                        1 => {Elements::LeftExtend1_32}
5724                                                                                    },
5725                                                                                    1 => {
5726                                                                                        0 => {Elements::LeftExtend1_64},
5727                                                                                        1 => {}
5728                                                                                    }
5729                                                                                },
5730                                                                                1 => {}
5731                                                                            },
5732                                                                            1 => {}
5733                                                                        }
5734                                                                    }
5735                                                                },
5736                                                                1 => {
5737                                                                    0 => {},
5738                                                                    1 => {
5739                                                                        0 => {
5740                                                                            0 => {
5741                                                                                0 => {
5742                                                                                    0 => {
5743                                                                                        0 => {Elements::LeftExtend8_16},
5744                                                                                        1 => {
5745                                                                                            0 => {
5746                                                                                                0 => {Elements::LeftExtend8_32},
5747                                                                                                1 => {Elements::LeftExtend8_64}
5748                                                                                            },
5749                                                                                            1 => {}
5750                                                                                        }
5751                                                                                    },
5752                                                                                    1 => {
5753                                                                                        0 => {Elements::LeftExtend16_32},
5754                                                                                        1 => {
5755                                                                                            0 => {
5756                                                                                                0 => {Elements::LeftExtend16_64},
5757                                                                                                1 => {}
5758                                                                                            },
5759                                                                                            1 => {}
5760                                                                                        }
5761                                                                                    }
5762                                                                                },
5763                                                                                1 => {
5764                                                                                    0 => {
5765                                                                                        0 => {Elements::LeftExtend32_64},
5766                                                                                        1 => {}
5767                                                                                    },
5768                                                                                    1 => {}
5769                                                                                }
5770                                                                            },
5771                                                                            1 => {}
5772                                                                        },
5773                                                                        1 => {}
5774                                                                    }
5775                                                                }
5776                                                            },
5777                                                            1 => {
5778                                                                0 => {
5779                                                                    0 => {},
5780                                                                    1 => {
5781                                                                        0 => {
5782                                                                            0 => {},
5783                                                                            1 => {Elements::RightPadLow1_8}
5784                                                                        },
5785                                                                        1 => {
5786                                                                            0 => {
5787                                                                                0 => {
5788                                                                                    0 => {
5789                                                                                        0 => {Elements::RightPadLow1_16},
5790                                                                                        1 => {Elements::RightPadLow1_32}
5791                                                                                    },
5792                                                                                    1 => {
5793                                                                                        0 => {Elements::RightPadLow1_64},
5794                                                                                        1 => {}
5795                                                                                    }
5796                                                                                },
5797                                                                                1 => {}
5798                                                                            },
5799                                                                            1 => {}
5800                                                                        }
5801                                                                    }
5802                                                                },
5803                                                                1 => {
5804                                                                    0 => {},
5805                                                                    1 => {
5806                                                                        0 => {
5807                                                                            0 => {
5808                                                                                0 => {
5809                                                                                    0 => {
5810                                                                                        0 => {Elements::RightPadLow8_16},
5811                                                                                        1 => {
5812                                                                                            0 => {
5813                                                                                                0 => {Elements::RightPadLow8_32},
5814                                                                                                1 => {Elements::RightPadLow8_64}
5815                                                                                            },
5816                                                                                            1 => {}
5817                                                                                        }
5818                                                                                    },
5819                                                                                    1 => {
5820                                                                                        0 => {Elements::RightPadLow16_32},
5821                                                                                        1 => {
5822                                                                                            0 => {
5823                                                                                                0 => {Elements::RightPadLow16_64},
5824                                                                                                1 => {}
5825                                                                                            },
5826                                                                                            1 => {}
5827                                                                                        }
5828                                                                                    }
5829                                                                                },
5830                                                                                1 => {
5831                                                                                    0 => {
5832                                                                                        0 => {Elements::RightPadLow32_64},
5833                                                                                        1 => {}
5834                                                                                    },
5835                                                                                    1 => {}
5836                                                                                }
5837                                                                            },
5838                                                                            1 => {}
5839                                                                        },
5840                                                                        1 => {}
5841                                                                    }
5842                                                                }
5843                                                            }
5844                                                        },
5845                                                        1 => {
5846                                                            0 => {
5847                                                                0 => {
5848                                                                    0 => {},
5849                                                                    1 => {
5850                                                                        0 => {
5851                                                                            0 => {},
5852                                                                            1 => {Elements::RightPadHigh1_8}
5853                                                                        },
5854                                                                        1 => {
5855                                                                            0 => {
5856                                                                                0 => {
5857                                                                                    0 => {
5858                                                                                        0 => {Elements::RightPadHigh1_16},
5859                                                                                        1 => {Elements::RightPadHigh1_32}
5860                                                                                    },
5861                                                                                    1 => {
5862                                                                                        0 => {Elements::RightPadHigh1_64},
5863                                                                                        1 => {}
5864                                                                                    }
5865                                                                                },
5866                                                                                1 => {}
5867                                                                            },
5868                                                                            1 => {}
5869                                                                        }
5870                                                                    }
5871                                                                },
5872                                                                1 => {
5873                                                                    0 => {},
5874                                                                    1 => {
5875                                                                        0 => {
5876                                                                            0 => {
5877                                                                                0 => {
5878                                                                                    0 => {
5879                                                                                        0 => {Elements::RightPadHigh8_16},
5880                                                                                        1 => {
5881                                                                                            0 => {
5882                                                                                                0 => {Elements::RightPadHigh8_32},
5883                                                                                                1 => {Elements::RightPadHigh8_64}
5884                                                                                            },
5885                                                                                            1 => {}
5886                                                                                        }
5887                                                                                    },
5888                                                                                    1 => {
5889                                                                                        0 => {Elements::RightPadHigh16_32},
5890                                                                                        1 => {
5891                                                                                            0 => {
5892                                                                                                0 => {Elements::RightPadHigh16_64},
5893                                                                                                1 => {}
5894                                                                                            },
5895                                                                                            1 => {}
5896                                                                                        }
5897                                                                                    }
5898                                                                                },
5899                                                                                1 => {
5900                                                                                    0 => {
5901                                                                                        0 => {Elements::RightPadHigh32_64},
5902                                                                                        1 => {}
5903                                                                                    },
5904                                                                                    1 => {}
5905                                                                                }
5906                                                                            },
5907                                                                            1 => {}
5908                                                                        },
5909                                                                        1 => {}
5910                                                                    }
5911                                                                }
5912                                                            },
5913                                                            1 => {
5914                                                                0 => {},
5915                                                                1 => {
5916                                                                    0 => {},
5917                                                                    1 => {
5918                                                                        0 => {
5919                                                                            0 => {
5920                                                                                0 => {
5921                                                                                    0 => {
5922                                                                                        0 => {Elements::RightExtend8_16},
5923                                                                                        1 => {
5924                                                                                            0 => {
5925                                                                                                0 => {Elements::RightExtend8_32},
5926                                                                                                1 => {Elements::RightExtend8_64}
5927                                                                                            },
5928                                                                                            1 => {}
5929                                                                                        }
5930                                                                                    },
5931                                                                                    1 => {
5932                                                                                        0 => {Elements::RightExtend16_32},
5933                                                                                        1 => {
5934                                                                                            0 => {
5935                                                                                                0 => {Elements::RightExtend16_64},
5936                                                                                                1 => {}
5937                                                                                            },
5938                                                                                            1 => {}
5939                                                                                        }
5940                                                                                    }
5941                                                                                },
5942                                                                                1 => {
5943                                                                                    0 => {
5944                                                                                        0 => {Elements::RightExtend32_64},
5945                                                                                        1 => {}
5946                                                                                    },
5947                                                                                    1 => {}
5948                                                                                }
5949                                                                            },
5950                                                                            1 => {}
5951                                                                        },
5952                                                                        1 => {}
5953                                                                    }
5954                                                                }
5955                                                            }
5956                                                        }
5957                                                    }
5958                                                },
5959                                                1 => {
5960                                                    0 => {
5961                                                        0 => {
5962                                                            0 => {
5963                                                                0 => {},
5964                                                                1 => {
5965                                                                    0 => {
5966                                                                        0 => {},
5967                                                                        1 => {Elements::LeftShiftWith8}
5968                                                                    },
5969                                                                    1 => {
5970                                                                        0 => {
5971                                                                            0 => {
5972                                                                                0 => {
5973                                                                                    0 => {Elements::LeftShiftWith16},
5974                                                                                    1 => {Elements::LeftShiftWith32}
5975                                                                                },
5976                                                                                1 => {
5977                                                                                    0 => {Elements::LeftShiftWith64},
5978                                                                                    1 => {}
5979                                                                                }
5980                                                                            },
5981                                                                            1 => {}
5982                                                                        },
5983                                                                        1 => {}
5984                                                                    }
5985                                                                }
5986                                                            },
5987                                                            1 => {
5988                                                                0 => {},
5989                                                                1 => {
5990                                                                    0 => {
5991                                                                        0 => {},
5992                                                                        1 => {Elements::RightShiftWith8}
5993                                                                    },
5994                                                                    1 => {
5995                                                                        0 => {
5996                                                                            0 => {
5997                                                                                0 => {
5998                                                                                    0 => {Elements::RightShiftWith16},
5999                                                                                    1 => {Elements::RightShiftWith32}
6000                                                                                },
6001                                                                                1 => {
6002                                                                                    0 => {Elements::RightShiftWith64},
6003                                                                                    1 => {}
6004                                                                                }
6005                                                                            },
6006                                                                            1 => {}
6007                                                                        },
6008                                                                        1 => {}
6009                                                                    }
6010                                                                }
6011                                                            }
6012                                                        },
6013                                                        1 => {
6014                                                            0 => {
6015                                                                0 => {},
6016                                                                1 => {
6017                                                                    0 => {
6018                                                                        0 => {},
6019                                                                        1 => {Elements::LeftShift8}
6020                                                                    },
6021                                                                    1 => {
6022                                                                        0 => {
6023                                                                            0 => {
6024                                                                                0 => {
6025                                                                                    0 => {Elements::LeftShift16},
6026                                                                                    1 => {Elements::LeftShift32}
6027                                                                                },
6028                                                                                1 => {
6029                                                                                    0 => {Elements::LeftShift64},
6030                                                                                    1 => {}
6031                                                                                }
6032                                                                            },
6033                                                                            1 => {}
6034                                                                        },
6035                                                                        1 => {}
6036                                                                    }
6037                                                                }
6038                                                            },
6039                                                            1 => {
6040                                                                0 => {},
6041                                                                1 => {
6042                                                                    0 => {
6043                                                                        0 => {},
6044                                                                        1 => {Elements::RightShift8}
6045                                                                    },
6046                                                                    1 => {
6047                                                                        0 => {
6048                                                                            0 => {
6049                                                                                0 => {
6050                                                                                    0 => {Elements::RightShift16},
6051                                                                                    1 => {Elements::RightShift32}
6052                                                                                },
6053                                                                                1 => {
6054                                                                                    0 => {Elements::RightShift64},
6055                                                                                    1 => {}
6056                                                                                }
6057                                                                            },
6058                                                                            1 => {}
6059                                                                        },
6060                                                                        1 => {}
6061                                                                    }
6062                                                                }
6063                                                            }
6064                                                        }
6065                                                    },
6066                                                    1 => {
6067                                                        0 => {
6068                                                            0 => {
6069                                                                0 => {},
6070                                                                1 => {
6071                                                                    0 => {
6072                                                                        0 => {},
6073                                                                        1 => {Elements::LeftRotate8}
6074                                                                    },
6075                                                                    1 => {
6076                                                                        0 => {
6077                                                                            0 => {
6078                                                                                0 => {
6079                                                                                    0 => {Elements::LeftRotate16},
6080                                                                                    1 => {Elements::LeftRotate32}
6081                                                                                },
6082                                                                                1 => {
6083                                                                                    0 => {Elements::LeftRotate64},
6084                                                                                    1 => {}
6085                                                                                }
6086                                                                            },
6087                                                                            1 => {}
6088                                                                        },
6089                                                                        1 => {}
6090                                                                    }
6091                                                                }
6092                                                            },
6093                                                            1 => {
6094                                                                0 => {},
6095                                                                1 => {
6096                                                                    0 => {
6097                                                                        0 => {},
6098                                                                        1 => {Elements::RightRotate8}
6099                                                                    },
6100                                                                    1 => {
6101                                                                        0 => {
6102                                                                            0 => {
6103                                                                                0 => {
6104                                                                                    0 => {Elements::RightRotate16},
6105                                                                                    1 => {Elements::RightRotate32}
6106                                                                                },
6107                                                                                1 => {
6108                                                                                    0 => {Elements::RightRotate64},
6109                                                                                    1 => {}
6110                                                                                }
6111                                                                            },
6112                                                                            1 => {}
6113                                                                        },
6114                                                                        1 => {}
6115                                                                    }
6116                                                                }
6117                                                            }
6118                                                        },
6119                                                        1 => {}
6120                                                    }
6121                                                }
6122                                            },
6123                                            1 => {}
6124                                        },
6125                                        1 => {}
6126                                    },
6127                                    1 => {}
6128                                },
6129                                1 => {}
6130                            }
6131                        }
6132                    }
6133                },
6134                1 => {
6135                    0 => {
6136                        0 => {
6137                            0 => {
6138                                0 => {},
6139                                1 => {
6140                                    0 => {
6141                                        0 => {},
6142                                        1 => {Elements::One8}
6143                                    },
6144                                    1 => {
6145                                        0 => {
6146                                            0 => {
6147                                                0 => {
6148                                                    0 => {Elements::One16},
6149                                                    1 => {Elements::One32}
6150                                                },
6151                                                1 => {
6152                                                    0 => {Elements::One64},
6153                                                    1 => {}
6154                                                }
6155                                            },
6156                                            1 => {}
6157                                        },
6158                                        1 => {}
6159                                    }
6160                                }
6161                            },
6162                            1 => {
6163                                0 => {
6164                                    0 => {
6165                                        0 => {},
6166                                        1 => {
6167                                            0 => {
6168                                                0 => {},
6169                                                1 => {Elements::FullAdd8}
6170                                            },
6171                                            1 => {
6172                                                0 => {
6173                                                    0 => {
6174                                                        0 => {
6175                                                            0 => {Elements::FullAdd16},
6176                                                            1 => {Elements::FullAdd32}
6177                                                        },
6178                                                        1 => {
6179                                                            0 => {Elements::FullAdd64},
6180                                                            1 => {}
6181                                                        }
6182                                                    },
6183                                                    1 => {}
6184                                                },
6185                                                1 => {}
6186                                            }
6187                                        }
6188                                    },
6189                                    1 => {
6190                                        0 => {},
6191                                        1 => {
6192                                            0 => {
6193                                                0 => {},
6194                                                1 => {Elements::Add8}
6195                                            },
6196                                            1 => {
6197                                                0 => {
6198                                                    0 => {
6199                                                        0 => {
6200                                                            0 => {Elements::Add16},
6201                                                            1 => {Elements::Add32}
6202                                                        },
6203                                                        1 => {
6204                                                            0 => {Elements::Add64},
6205                                                            1 => {}
6206                                                        }
6207                                                    },
6208                                                    1 => {}
6209                                                },
6210                                                1 => {}
6211                                            }
6212                                        }
6213                                    }
6214                                },
6215                                1 => {
6216                                    0 => {
6217                                        0 => {
6218                                            0 => {
6219                                                0 => {
6220                                                    0 => {},
6221                                                    1 => {
6222                                                        0 => {
6223                                                            0 => {},
6224                                                            1 => {Elements::FullIncrement8}
6225                                                        },
6226                                                        1 => {
6227                                                            0 => {
6228                                                                0 => {
6229                                                                    0 => {
6230                                                                        0 => {Elements::FullIncrement16},
6231                                                                        1 => {Elements::FullIncrement32}
6232                                                                    },
6233                                                                    1 => {
6234                                                                        0 => {Elements::FullIncrement64},
6235                                                                        1 => {}
6236                                                                    }
6237                                                                },
6238                                                                1 => {}
6239                                                            },
6240                                                            1 => {}
6241                                                        }
6242                                                    }
6243                                                },
6244                                                1 => {
6245                                                    0 => {},
6246                                                    1 => {
6247                                                        0 => {
6248                                                            0 => {},
6249                                                            1 => {Elements::Increment8}
6250                                                        },
6251                                                        1 => {
6252                                                            0 => {
6253                                                                0 => {
6254                                                                    0 => {
6255                                                                        0 => {Elements::Increment16},
6256                                                                        1 => {Elements::Increment32}
6257                                                                    },
6258                                                                    1 => {
6259                                                                        0 => {Elements::Increment64},
6260                                                                        1 => {}
6261                                                                    }
6262                                                                },
6263                                                                1 => {}
6264                                                            },
6265                                                            1 => {}
6266                                                        }
6267                                                    }
6268                                                }
6269                                            },
6270                                            1 => {
6271                                                0 => {},
6272                                                1 => {
6273                                                    0 => {},
6274                                                    1 => {
6275                                                        0 => {
6276                                                            0 => {},
6277                                                            1 => {Elements::FullSubtract8}
6278                                                        },
6279                                                        1 => {
6280                                                            0 => {
6281                                                                0 => {
6282                                                                    0 => {
6283                                                                        0 => {Elements::FullSubtract16},
6284                                                                        1 => {Elements::FullSubtract32}
6285                                                                    },
6286                                                                    1 => {
6287                                                                        0 => {Elements::FullSubtract64},
6288                                                                        1 => {}
6289                                                                    }
6290                                                                },
6291                                                                1 => {}
6292                                                            },
6293                                                            1 => {}
6294                                                        }
6295                                                    }
6296                                                }
6297                                            }
6298                                        },
6299                                        1 => {
6300                                            0 => {
6301                                                0 => {
6302                                                    0 => {
6303                                                        0 => {},
6304                                                        1 => {
6305                                                            0 => {
6306                                                                0 => {},
6307                                                                1 => {Elements::Subtract8}
6308                                                            },
6309                                                            1 => {
6310                                                                0 => {
6311                                                                    0 => {
6312                                                                        0 => {
6313                                                                            0 => {Elements::Subtract16},
6314                                                                            1 => {Elements::Subtract32}
6315                                                                        },
6316                                                                        1 => {
6317                                                                            0 => {Elements::Subtract64},
6318                                                                            1 => {}
6319                                                                        }
6320                                                                    },
6321                                                                    1 => {}
6322                                                                },
6323                                                                1 => {}
6324                                                            }
6325                                                        }
6326                                                    },
6327                                                    1 => {
6328                                                        0 => {},
6329                                                        1 => {
6330                                                            0 => {
6331                                                                0 => {},
6332                                                                1 => {Elements::Negate8}
6333                                                            },
6334                                                            1 => {
6335                                                                0 => {
6336                                                                    0 => {
6337                                                                        0 => {
6338                                                                            0 => {Elements::Negate16},
6339                                                                            1 => {Elements::Negate32}
6340                                                                        },
6341                                                                        1 => {
6342                                                                            0 => {Elements::Negate64},
6343                                                                            1 => {}
6344                                                                        }
6345                                                                    },
6346                                                                    1 => {}
6347                                                                },
6348                                                                1 => {}
6349                                                            }
6350                                                        }
6351                                                    }
6352                                                },
6353                                                1 => {
6354                                                    0 => {
6355                                                        0 => {},
6356                                                        1 => {
6357                                                            0 => {
6358                                                                0 => {},
6359                                                                1 => {Elements::FullDecrement8}
6360                                                            },
6361                                                            1 => {
6362                                                                0 => {
6363                                                                    0 => {
6364                                                                        0 => {
6365                                                                            0 => {Elements::FullDecrement16},
6366                                                                            1 => {Elements::FullDecrement32}
6367                                                                        },
6368                                                                        1 => {
6369                                                                            0 => {Elements::FullDecrement64},
6370                                                                            1 => {}
6371                                                                        }
6372                                                                    },
6373                                                                    1 => {}
6374                                                                },
6375                                                                1 => {}
6376                                                            }
6377                                                        }
6378                                                    },
6379                                                    1 => {
6380                                                        0 => {},
6381                                                        1 => {
6382                                                            0 => {
6383                                                                0 => {},
6384                                                                1 => {Elements::Decrement8}
6385                                                            },
6386                                                            1 => {
6387                                                                0 => {
6388                                                                    0 => {
6389                                                                        0 => {
6390                                                                            0 => {Elements::Decrement16},
6391                                                                            1 => {Elements::Decrement32}
6392                                                                        },
6393                                                                        1 => {
6394                                                                            0 => {Elements::Decrement64},
6395                                                                            1 => {}
6396                                                                        }
6397                                                                    },
6398                                                                    1 => {}
6399                                                                },
6400                                                                1 => {}
6401                                                            }
6402                                                        }
6403                                                    }
6404                                                }
6405                                            },
6406                                            1 => {
6407                                                0 => {
6408                                                    0 => {
6409                                                        0 => {},
6410                                                        1 => {
6411                                                            0 => {
6412                                                                0 => {},
6413                                                                1 => {Elements::FullMultiply8}
6414                                                            },
6415                                                            1 => {
6416                                                                0 => {
6417                                                                    0 => {
6418                                                                        0 => {
6419                                                                            0 => {Elements::FullMultiply16},
6420                                                                            1 => {Elements::FullMultiply32}
6421                                                                        },
6422                                                                        1 => {
6423                                                                            0 => {Elements::FullMultiply64},
6424                                                                            1 => {}
6425                                                                        }
6426                                                                    },
6427                                                                    1 => {}
6428                                                                },
6429                                                                1 => {}
6430                                                            }
6431                                                        }
6432                                                    },
6433                                                    1 => {
6434                                                        0 => {},
6435                                                        1 => {
6436                                                            0 => {
6437                                                                0 => {},
6438                                                                1 => {Elements::Multiply8}
6439                                                            },
6440                                                            1 => {
6441                                                                0 => {
6442                                                                    0 => {
6443                                                                        0 => {
6444                                                                            0 => {Elements::Multiply16},
6445                                                                            1 => {Elements::Multiply32}
6446                                                                        },
6447                                                                        1 => {
6448                                                                            0 => {Elements::Multiply64},
6449                                                                            1 => {}
6450                                                                        }
6451                                                                    },
6452                                                                    1 => {}
6453                                                                },
6454                                                                1 => {}
6455                                                            }
6456                                                        }
6457                                                    }
6458                                                },
6459                                                1 => {
6460                                                    0 => {
6461                                                        0 => {},
6462                                                        1 => {
6463                                                            0 => {
6464                                                                0 => {},
6465                                                                1 => {Elements::IsZero8}
6466                                                            },
6467                                                            1 => {
6468                                                                0 => {
6469                                                                    0 => {
6470                                                                        0 => {
6471                                                                            0 => {Elements::IsZero16},
6472                                                                            1 => {Elements::IsZero32}
6473                                                                        },
6474                                                                        1 => {
6475                                                                            0 => {Elements::IsZero64},
6476                                                                            1 => {}
6477                                                                        }
6478                                                                    },
6479                                                                    1 => {}
6480                                                                },
6481                                                                1 => {}
6482                                                            }
6483                                                        }
6484                                                    },
6485                                                    1 => {
6486                                                        0 => {},
6487                                                        1 => {
6488                                                            0 => {
6489                                                                0 => {},
6490                                                                1 => {Elements::IsOne8}
6491                                                            },
6492                                                            1 => {
6493                                                                0 => {
6494                                                                    0 => {
6495                                                                        0 => {
6496                                                                            0 => {Elements::IsOne16},
6497                                                                            1 => {Elements::IsOne32}
6498                                                                        },
6499                                                                        1 => {
6500                                                                            0 => {Elements::IsOne64},
6501                                                                            1 => {}
6502                                                                        }
6503                                                                    },
6504                                                                    1 => {}
6505                                                                },
6506                                                                1 => {}
6507                                                            }
6508                                                        }
6509                                                    }
6510                                                }
6511                                            }
6512                                        }
6513                                    },
6514                                    1 => {
6515                                        0 => {
6516                                            0 => {
6517                                                0 => {
6518                                                    0 => {
6519                                                        0 => {
6520                                                            0 => {
6521                                                                0 => {
6522                                                                    0 => {
6523                                                                        0 => {},
6524                                                                        1 => {
6525                                                                            0 => {
6526                                                                                0 => {},
6527                                                                                1 => {Elements::Le8}
6528                                                                            },
6529                                                                            1 => {
6530                                                                                0 => {
6531                                                                                    0 => {
6532                                                                                        0 => {
6533                                                                                            0 => {Elements::Le16},
6534                                                                                            1 => {Elements::Le32}
6535                                                                                        },
6536                                                                                        1 => {
6537                                                                                            0 => {Elements::Le64},
6538                                                                                            1 => {}
6539                                                                                        }
6540                                                                                    },
6541                                                                                    1 => {}
6542                                                                                },
6543                                                                                1 => {}
6544                                                                            }
6545                                                                        }
6546                                                                    },
6547                                                                    1 => {
6548                                                                        0 => {},
6549                                                                        1 => {
6550                                                                            0 => {
6551                                                                                0 => {},
6552                                                                                1 => {Elements::Lt8}
6553                                                                            },
6554                                                                            1 => {
6555                                                                                0 => {
6556                                                                                    0 => {
6557                                                                                        0 => {
6558                                                                                            0 => {Elements::Lt16},
6559                                                                                            1 => {Elements::Lt32}
6560                                                                                        },
6561                                                                                        1 => {
6562                                                                                            0 => {Elements::Lt64},
6563                                                                                            1 => {}
6564                                                                                        }
6565                                                                                    },
6566                                                                                    1 => {}
6567                                                                                },
6568                                                                                1 => {}
6569                                                                            }
6570                                                                        }
6571                                                                    }
6572                                                                },
6573                                                                1 => {
6574                                                                    0 => {
6575                                                                        0 => {},
6576                                                                        1 => {
6577                                                                            0 => {
6578                                                                                0 => {},
6579                                                                                1 => {Elements::Min8}
6580                                                                            },
6581                                                                            1 => {
6582                                                                                0 => {
6583                                                                                    0 => {
6584                                                                                        0 => {
6585                                                                                            0 => {Elements::Min16},
6586                                                                                            1 => {Elements::Min32}
6587                                                                                        },
6588                                                                                        1 => {
6589                                                                                            0 => {Elements::Min64},
6590                                                                                            1 => {}
6591                                                                                        }
6592                                                                                    },
6593                                                                                    1 => {}
6594                                                                                },
6595                                                                                1 => {}
6596                                                                            }
6597                                                                        }
6598                                                                    },
6599                                                                    1 => {
6600                                                                        0 => {},
6601                                                                        1 => {
6602                                                                            0 => {
6603                                                                                0 => {},
6604                                                                                1 => {Elements::Max8}
6605                                                                            },
6606                                                                            1 => {
6607                                                                                0 => {
6608                                                                                    0 => {
6609                                                                                        0 => {
6610                                                                                            0 => {Elements::Max16},
6611                                                                                            1 => {Elements::Max32}
6612                                                                                        },
6613                                                                                        1 => {
6614                                                                                            0 => {Elements::Max64},
6615                                                                                            1 => {}
6616                                                                                        }
6617                                                                                    },
6618                                                                                    1 => {}
6619                                                                                },
6620                                                                                1 => {}
6621                                                                            }
6622                                                                        }
6623                                                                    }
6624                                                                }
6625                                                            },
6626                                                            1 => {
6627                                                                0 => {
6628                                                                    0 => {
6629                                                                        0 => {},
6630                                                                        1 => {
6631                                                                            0 => {
6632                                                                                0 => {},
6633                                                                                1 => {Elements::Median8}
6634                                                                            },
6635                                                                            1 => {
6636                                                                                0 => {
6637                                                                                    0 => {
6638                                                                                        0 => {
6639                                                                                            0 => {Elements::Median16},
6640                                                                                            1 => {Elements::Median32}
6641                                                                                        },
6642                                                                                        1 => {
6643                                                                                            0 => {Elements::Median64},
6644                                                                                            1 => {}
6645                                                                                        }
6646                                                                                    },
6647                                                                                    1 => {}
6648                                                                                },
6649                                                                                1 => {}
6650                                                                            }
6651                                                                        }
6652                                                                    },
6653                                                                    1 => {
6654                                                                        0 => {},
6655                                                                        1 => {
6656                                                                            0 => {},
6657                                                                            1 => {
6658                                                                                0 => {
6659                                                                                    0 => {
6660                                                                                        0 => {},
6661                                                                                        1 => {
6662                                                                                            0 => {Elements::DivMod128_64},
6663                                                                                            1 => {}
6664                                                                                        }
6665                                                                                    },
6666                                                                                    1 => {}
6667                                                                                },
6668                                                                                1 => {}
6669                                                                            }
6670                                                                        }
6671                                                                    }
6672                                                                },
6673                                                                1 => {
6674                                                                    0 => {
6675                                                                        0 => {},
6676                                                                        1 => {
6677                                                                            0 => {
6678                                                                                0 => {},
6679                                                                                1 => {Elements::DivMod8}
6680                                                                            },
6681                                                                            1 => {
6682                                                                                0 => {
6683                                                                                    0 => {
6684                                                                                        0 => {
6685                                                                                            0 => {Elements::DivMod16},
6686                                                                                            1 => {Elements::DivMod32}
6687                                                                                        },
6688                                                                                        1 => {
6689                                                                                            0 => {Elements::DivMod64},
6690                                                                                            1 => {}
6691                                                                                        }
6692                                                                                    },
6693                                                                                    1 => {}
6694                                                                                },
6695                                                                                1 => {}
6696                                                                            }
6697                                                                        }
6698                                                                    },
6699                                                                    1 => {
6700                                                                        0 => {},
6701                                                                        1 => {
6702                                                                            0 => {
6703                                                                                0 => {},
6704                                                                                1 => {Elements::Divide8}
6705                                                                            },
6706                                                                            1 => {
6707                                                                                0 => {
6708                                                                                    0 => {
6709                                                                                        0 => {
6710                                                                                            0 => {Elements::Divide16},
6711                                                                                            1 => {Elements::Divide32}
6712                                                                                        },
6713                                                                                        1 => {
6714                                                                                            0 => {Elements::Divide64},
6715                                                                                            1 => {}
6716                                                                                        }
6717                                                                                    },
6718                                                                                    1 => {}
6719                                                                                },
6720                                                                                1 => {}
6721                                                                            }
6722                                                                        }
6723                                                                    }
6724                                                                }
6725                                                            }
6726                                                        },
6727                                                        1 => {
6728                                                            0 => {
6729                                                                0 => {
6730                                                                    0 => {
6731                                                                        0 => {},
6732                                                                        1 => {
6733                                                                            0 => {
6734                                                                                0 => {},
6735                                                                                1 => {Elements::Modulo8}
6736                                                                            },
6737                                                                            1 => {
6738                                                                                0 => {
6739                                                                                    0 => {
6740                                                                                        0 => {
6741                                                                                            0 => {Elements::Modulo16},
6742                                                                                            1 => {Elements::Modulo32}
6743                                                                                        },
6744                                                                                        1 => {
6745                                                                                            0 => {Elements::Modulo64},
6746                                                                                            1 => {}
6747                                                                                        }
6748                                                                                    },
6749                                                                                    1 => {}
6750                                                                                },
6751                                                                                1 => {}
6752                                                                            }
6753                                                                        }
6754                                                                    },
6755                                                                    1 => {
6756                                                                        0 => {},
6757                                                                        1 => {
6758                                                                            0 => {
6759                                                                                0 => {},
6760                                                                                1 => {Elements::Divides8}
6761                                                                            },
6762                                                                            1 => {
6763                                                                                0 => {
6764                                                                                    0 => {
6765                                                                                        0 => {
6766                                                                                            0 => {Elements::Divides16},
6767                                                                                            1 => {Elements::Divides32}
6768                                                                                        },
6769                                                                                        1 => {
6770                                                                                            0 => {Elements::Divides64},
6771                                                                                            1 => {}
6772                                                                                        }
6773                                                                                    },
6774                                                                                    1 => {}
6775                                                                                },
6776                                                                                1 => {}
6777                                                                            }
6778                                                                        }
6779                                                                    }
6780                                                                },
6781                                                                1 => {}
6782                                                            },
6783                                                            1 => {}
6784                                                        }
6785                                                    },
6786                                                    1 => {}
6787                                                },
6788                                                1 => {}
6789                                            },
6790                                            1 => {}
6791                                        },
6792                                        1 => {}
6793                                    }
6794                                }
6795                            }
6796                        },
6797                        1 => {
6798                            0 => {
6799                                0 => {Elements::Sha256Block},
6800                                1 => {
6801                                    0 => {
6802                                        0 => {Elements::Sha256Iv},
6803                                        1 => {
6804                                            0 => {Elements::Sha256Ctx8Add1},
6805                                            1 => {
6806                                                0 => {
6807                                                    0 => {Elements::Sha256Ctx8Add2},
6808                                                    1 => {Elements::Sha256Ctx8Add4}
6809                                                },
6810                                                1 => {
6811                                                    0 => {
6812                                                        0 => {
6813                                                            0 => {
6814                                                                0 => {Elements::Sha256Ctx8Add8},
6815                                                                1 => {Elements::Sha256Ctx8Add16}
6816                                                            },
6817                                                            1 => {
6818                                                                0 => {Elements::Sha256Ctx8Add32},
6819                                                                1 => {Elements::Sha256Ctx8Add64}
6820                                                            }
6821                                                        },
6822                                                        1 => {
6823                                                            0 => {
6824                                                                0 => {
6825                                                                    0 => {Elements::Sha256Ctx8Add128},
6826                                                                    1 => {Elements::Sha256Ctx8Add256}
6827                                                                },
6828                                                                1 => {
6829                                                                    0 => {Elements::Sha256Ctx8Add512},
6830                                                                    1 => {}
6831                                                                }
6832                                                            },
6833                                                            1 => {}
6834                                                        }
6835                                                    },
6836                                                    1 => {}
6837                                                }
6838                                            }
6839                                        }
6840                                    },
6841                                    1 => {
6842                                        0 => {
6843                                            0 => {
6844                                                0 => {
6845                                                    0 => {Elements::Sha256Ctx8AddBuffer511},
6846                                                    1 => {Elements::Sha256Ctx8Finalize}
6847                                                },
6848                                                1 => {
6849                                                    0 => {Elements::Sha256Ctx8Init},
6850                                                    1 => {}
6851                                                }
6852                                            },
6853                                            1 => {}
6854                                        },
6855                                        1 => {}
6856                                    }
6857                                }
6858                            },
6859                            1 => {}
6860                        }
6861                    },
6862                    1 => {
6863                        0 => {
6864                            0 => {
6865                                0 => {
6866                                    0 => {
6867                                        0 => {
6868                                            0 => {Elements::PointVerify1},
6869                                            1 => {}
6870                                        },
6871                                        1 => {
6872                                            0 => {
6873                                                0 => {Elements::Decompress},
6874                                                1 => {
6875                                                    0 => {Elements::LinearVerify1},
6876                                                    1 => {}
6877                                                }
6878                                            },
6879                                            1 => {
6880                                                0 => {
6881                                                    0 => {
6882                                                        0 => {
6883                                                            0 => {
6884                                                                0 => {Elements::LinearCombination1},
6885                                                                1 => {}
6886                                                            },
6887                                                            1 => {Elements::Scale}
6888                                                        },
6889                                                        1 => {
6890                                                            0 => {Elements::Generate},
6891                                                            1 => {Elements::GejInfinity}
6892                                                        }
6893                                                    },
6894                                                    1 => {
6895                                                        0 => {
6896                                                            0 => {
6897                                                                0 => {Elements::GejNormalize},
6898                                                                1 => {Elements::GejNegate}
6899                                                            },
6900                                                            1 => {
6901                                                                0 => {Elements::GeNegate},
6902                                                                1 => {Elements::GejDouble}
6903                                                            }
6904                                                        },
6905                                                        1 => {
6906                                                            0 => {
6907                                                                0 => {Elements::GejAdd},
6908                                                                1 => {Elements::GejGeAddEx}
6909                                                            },
6910                                                            1 => {
6911                                                                0 => {Elements::GejGeAdd},
6912                                                                1 => {Elements::GejRescale}
6913                                                            }
6914                                                        }
6915                                                    }
6916                                                },
6917                                                1 => {
6918                                                    0 => {
6919                                                        0 => {
6920                                                            0 => {
6921                                                                0 => {
6922                                                                    0 => {
6923                                                                        0 => {
6924                                                                            0 => {
6925                                                                                0 => {Elements::GejIsInfinity},
6926                                                                                1 => {Elements::GejEquiv}
6927                                                                            },
6928                                                                            1 => {
6929                                                                                0 => {Elements::GejGeEquiv},
6930                                                                                1 => {Elements::GejXEquiv}
6931                                                                            }
6932                                                                        },
6933                                                                        1 => {
6934                                                                            0 => {
6935                                                                                0 => {Elements::GejYIsOdd},
6936                                                                                1 => {Elements::GejIsOnCurve}
6937                                                                            },
6938                                                                            1 => {
6939                                                                                0 => {Elements::GeIsOnCurve},
6940                                                                                1 => {Elements::ScalarNormalize}
6941                                                                            }
6942                                                                        }
6943                                                                    },
6944                                                                    1 => {
6945                                                                        0 => {
6946                                                                            0 => {
6947                                                                                0 => {Elements::ScalarNegate},
6948                                                                                1 => {Elements::ScalarAdd}
6949                                                                            },
6950                                                                            1 => {
6951                                                                                0 => {Elements::ScalarSquare},
6952                                                                                1 => {Elements::ScalarMultiply}
6953                                                                            }
6954                                                                        },
6955                                                                        1 => {
6956                                                                            0 => {
6957                                                                                0 => {Elements::ScalarMultiplyLambda},
6958                                                                                1 => {Elements::ScalarInvert}
6959                                                                            },
6960                                                                            1 => {
6961                                                                                0 => {Elements::ScalarIsZero},
6962                                                                                1 => {}
6963                                                                            }
6964                                                                        }
6965                                                                    }
6966                                                                },
6967                                                                1 => {
6968                                                                    0 => {
6969                                                                        0 => {
6970                                                                            0 => {
6971                                                                                0 => {},
6972                                                                                1 => {
6973                                                                                    0 => {},
6974                                                                                    1 => {Elements::FeNormalize}
6975                                                                                }
6976                                                                            },
6977                                                                            1 => {
6978                                                                                0 => {
6979                                                                                    0 => {Elements::FeNegate},
6980                                                                                    1 => {Elements::FeAdd}
6981                                                                                },
6982                                                                                1 => {
6983                                                                                    0 => {Elements::FeSquare},
6984                                                                                    1 => {Elements::FeMultiply}
6985                                                                                }
6986                                                                            }
6987                                                                        },
6988                                                                        1 => {
6989                                                                            0 => {
6990                                                                                0 => {
6991                                                                                    0 => {Elements::FeMultiplyBeta},
6992                                                                                    1 => {Elements::FeInvert}
6993                                                                                },
6994                                                                                1 => {
6995                                                                                    0 => {Elements::FeSquareRoot},
6996                                                                                    1 => {Elements::FeIsZero}
6997                                                                                }
6998                                                                            },
6999                                                                            1 => {
7000                                                                                0 => {
7001                                                                                    0 => {Elements::FeIsOdd},
7002                                                                                    1 => {}
7003                                                                                },
7004                                                                                1 => {
7005                                                                                    0 => {Elements::HashToCurve},
7006                                                                                    1 => {Elements::Swu}
7007                                                                                }
7008                                                                            }
7009                                                                        }
7010                                                                    },
7011                                                                    1 => {}
7012                                                                }
7013                                                            },
7014                                                            1 => {}
7015                                                        },
7016                                                        1 => {}
7017                                                    },
7018                                                    1 => {}
7019                                                }
7020                                            }
7021                                        }
7022                                    },
7023                                    1 => {
7024                                        0 => {Elements::CheckSigVerify},
7025                                        1 => {
7026                                            0 => {
7027                                                0 => {Elements::Bip0340Verify},
7028                                                1 => {}
7029                                            },
7030                                            1 => {}
7031                                        }
7032                                    }
7033                                },
7034                                1 => {
7035                                    0 => {},
7036                                    1 => {
7037                                        0 => {Elements::ParseLock},
7038                                        1 => {
7039                                            0 => {
7040                                                0 => {Elements::ParseSequence},
7041                                                1 => {Elements::TapdataInit}
7042                                            },
7043                                            1 => {}
7044                                        }
7045                                    }
7046                                }
7047                            },
7048                            1 => {}
7049                        },
7050                        1 => {}
7051                    }
7052                }
7053            },
7054            1 => {
7055                0 => {
7056                    0 => {Elements::SigAllHash},
7057                    1 => {
7058                        0 => {
7059                            0 => {Elements::TxHash},
7060                            1 => {Elements::TapEnvHash}
7061                        },
7062                        1 => {
7063                            0 => {
7064                                0 => {
7065                                    0 => {
7066                                        0 => {Elements::OutputsHash},
7067                                        1 => {Elements::InputsHash}
7068                                    },
7069                                    1 => {
7070                                        0 => {Elements::IssuancesHash},
7071                                        1 => {Elements::InputUtxosHash}
7072                                    }
7073                                },
7074                                1 => {
7075                                    0 => {
7076                                        0 => {
7077                                            0 => {Elements::OutputHash},
7078                                            1 => {Elements::OutputAmountsHash}
7079                                        },
7080                                        1 => {
7081                                            0 => {Elements::OutputScriptsHash},
7082                                            1 => {Elements::OutputNoncesHash}
7083                                        }
7084                                    },
7085                                    1 => {
7086                                        0 => {
7087                                            0 => {Elements::OutputRangeProofsHash},
7088                                            1 => {Elements::OutputSurjectionProofsHash}
7089                                        },
7090                                        1 => {
7091                                            0 => {Elements::InputHash},
7092                                            1 => {Elements::InputOutpointsHash}
7093                                        }
7094                                    }
7095                                }
7096                            },
7097                            1 => {
7098                                0 => {
7099                                    0 => {
7100                                        0 => {
7101                                            0 => {
7102                                                0 => {
7103                                                    0 => {
7104                                                        0 => {
7105                                                            0 => {Elements::InputSequencesHash},
7106                                                            1 => {Elements::InputAnnexesHash}
7107                                                        },
7108                                                        1 => {
7109                                                            0 => {Elements::InputScriptSigsHash},
7110                                                            1 => {Elements::IssuanceHash}
7111                                                        }
7112                                                    },
7113                                                    1 => {
7114                                                        0 => {
7115                                                            0 => {Elements::IssuanceAssetAmountsHash},
7116                                                            1 => {Elements::IssuanceTokenAmountsHash}
7117                                                        },
7118                                                        1 => {
7119                                                            0 => {Elements::IssuanceRangeProofsHash},
7120                                                            1 => {Elements::IssuanceBlindingEntropyHash}
7121                                                        }
7122                                                    }
7123                                                },
7124                                                1 => {
7125                                                    0 => {
7126                                                        0 => {
7127                                                            0 => {Elements::InputUtxoHash},
7128                                                            1 => {Elements::InputAmountsHash}
7129                                                        },
7130                                                        1 => {
7131                                                            0 => {Elements::InputScriptsHash},
7132                                                            1 => {Elements::TapleafHash}
7133                                                        }
7134                                                    },
7135                                                    1 => {
7136                                                        0 => {
7137                                                            0 => {Elements::TappathHash},
7138                                                            1 => {Elements::OutpointHash}
7139                                                        },
7140                                                        1 => {
7141                                                            0 => {Elements::AssetAmountHash},
7142                                                            1 => {Elements::NonceHash}
7143                                                        }
7144                                                    }
7145                                                }
7146                                            },
7147                                            1 => {
7148                                                0 => {
7149                                                    0 => {
7150                                                        0 => {
7151                                                            0 => {
7152                                                                0 => {Elements::AnnexHash},
7153                                                                1 => {Elements::BuildTapleafSimplicity}
7154                                                            },
7155                                                            1 => {
7156                                                                0 => {Elements::BuildTapbranch},
7157                                                                1 => {Elements::BuildTaptweak}
7158                                                            }
7159                                                        },
7160                                                        1 => {}
7161                                                    },
7162                                                    1 => {}
7163                                                },
7164                                                1 => {}
7165                                            }
7166                                        },
7167                                        1 => {}
7168                                    },
7169                                    1 => {}
7170                                },
7171                                1 => {}
7172                            }
7173                        }
7174                    }
7175                },
7176                1 => {
7177                    0 => {
7178                        0 => {
7179                            0 => {Elements::CheckLockHeight},
7180                            1 => {
7181                                0 => {
7182                                    0 => {Elements::CheckLockTime},
7183                                    1 => {Elements::CheckLockDistance}
7184                                },
7185                                1 => {
7186                                    0 => {
7187                                        0 => {
7188                                            0 => {
7189                                                0 => {Elements::CheckLockDuration},
7190                                                1 => {Elements::TxLockHeight}
7191                                            },
7192                                            1 => {
7193                                                0 => {Elements::TxLockTime},
7194                                                1 => {Elements::TxLockDistance}
7195                                            }
7196                                        },
7197                                        1 => {
7198                                            0 => {
7199                                                0 => {
7200                                                    0 => {Elements::TxLockDuration},
7201                                                    1 => {Elements::TxIsFinal}
7202                                                },
7203                                                1 => {}
7204                                            },
7205                                            1 => {}
7206                                        }
7207                                    },
7208                                    1 => {}
7209                                }
7210                            }
7211                        },
7212                        1 => {
7213                            0 => {Elements::Issuance},
7214                            1 => {
7215                                0 => {
7216                                    0 => {Elements::IssuanceAsset},
7217                                    1 => {Elements::IssuanceToken}
7218                                },
7219                                1 => {
7220                                    0 => {
7221                                        0 => {
7222                                            0 => {
7223                                                0 => {Elements::IssuanceEntropy},
7224                                                1 => {Elements::CalculateIssuanceEntropy}
7225                                            },
7226                                            1 => {
7227                                                0 => {Elements::CalculateAsset},
7228                                                1 => {Elements::CalculateExplicitToken}
7229                                            }
7230                                        },
7231                                        1 => {
7232                                            0 => {
7233                                                0 => {
7234                                                    0 => {Elements::CalculateConfidentialToken},
7235                                                    1 => {Elements::LbtcAsset}
7236                                                },
7237                                                1 => {}
7238                                            },
7239                                            1 => {}
7240                                        }
7241                                    },
7242                                    1 => {}
7243                                }
7244                            }
7245                        }
7246                    },
7247                    1 => {
7248                        0 => {
7249                            0 => {
7250                                0 => {
7251                                    0 => {
7252                                        0 => {Elements::ScriptCMR},
7253                                        1 => {
7254                                            0 => {
7255                                                0 => {Elements::InternalKey},
7256                                                1 => {Elements::CurrentIndex}
7257                                            },
7258                                            1 => {
7259                                                0 => {
7260                                                    0 => {
7261                                                        0 => {
7262                                                            0 => {Elements::NumInputs},
7263                                                            1 => {Elements::NumOutputs}
7264                                                        },
7265                                                        1 => {
7266                                                            0 => {Elements::LockTime},
7267                                                            1 => {Elements::OutputAsset}
7268                                                        }
7269                                                    },
7270                                                    1 => {
7271                                                        0 => {
7272                                                            0 => {
7273                                                                0 => {Elements::OutputAmount},
7274                                                                1 => {Elements::OutputNonce}
7275                                                            },
7276                                                            1 => {
7277                                                                0 => {Elements::OutputScriptHash},
7278                                                                1 => {Elements::OutputNullDatum}
7279                                                            }
7280                                                        },
7281                                                        1 => {
7282                                                            0 => {
7283                                                                0 => {Elements::OutputIsFee},
7284                                                                1 => {Elements::OutputSurjectionProof}
7285                                                            },
7286                                                            1 => {
7287                                                                0 => {Elements::OutputRangeProof},
7288                                                                1 => {Elements::TotalFee}
7289                                                            }
7290                                                        }
7291                                                    }
7292                                                },
7293                                                1 => {
7294                                                    0 => {
7295                                                        0 => {
7296                                                            0 => {
7297                                                                0 => {
7298                                                                    0 => {
7299                                                                        0 => {
7300                                                                            0 => {
7301                                                                                0 => {Elements::CurrentPegin},
7302                                                                                1 => {Elements::CurrentPrevOutpoint}
7303                                                                            },
7304                                                                            1 => {
7305                                                                                0 => {Elements::CurrentAsset},
7306                                                                                1 => {Elements::CurrentAmount}
7307                                                                            }
7308                                                                        },
7309                                                                        1 => {
7310                                                                            0 => {
7311                                                                                0 => {Elements::CurrentScriptHash},
7312                                                                                1 => {Elements::CurrentSequence}
7313                                                                            },
7314                                                                            1 => {
7315                                                                                0 => {Elements::CurrentAnnexHash},
7316                                                                                1 => {Elements::CurrentScriptSigHash}
7317                                                                            }
7318                                                                        }
7319                                                                    },
7320                                                                    1 => {
7321                                                                        0 => {
7322                                                                            0 => {
7323                                                                                0 => {Elements::CurrentReissuanceBlinding},
7324                                                                                1 => {Elements::CurrentNewIssuanceContract}
7325                                                                            },
7326                                                                            1 => {
7327                                                                                0 => {Elements::CurrentReissuanceEntropy},
7328                                                                                1 => {Elements::CurrentIssuanceAssetAmount}
7329                                                                            }
7330                                                                        },
7331                                                                        1 => {
7332                                                                            0 => {
7333                                                                                0 => {Elements::CurrentIssuanceTokenAmount},
7334                                                                                1 => {Elements::CurrentIssuanceAssetProof}
7335                                                                            },
7336                                                                            1 => {
7337                                                                                0 => {Elements::CurrentIssuanceTokenProof},
7338                                                                                1 => {Elements::InputPegin}
7339                                                                            }
7340                                                                        }
7341                                                                    }
7342                                                                },
7343                                                                1 => {
7344                                                                    0 => {
7345                                                                        0 => {
7346                                                                            0 => {
7347                                                                                0 => {
7348                                                                                    0 => {Elements::InputPrevOutpoint},
7349                                                                                    1 => {Elements::InputAsset}
7350                                                                                },
7351                                                                                1 => {
7352                                                                                    0 => {Elements::InputAmount},
7353                                                                                    1 => {Elements::InputScriptHash}
7354                                                                                }
7355                                                                            },
7356                                                                            1 => {
7357                                                                                0 => {
7358                                                                                    0 => {Elements::InputSequence},
7359                                                                                    1 => {Elements::InputAnnexHash}
7360                                                                                },
7361                                                                                1 => {
7362                                                                                    0 => {Elements::InputScriptSigHash},
7363                                                                                    1 => {Elements::ReissuanceBlinding}
7364                                                                                }
7365                                                                            }
7366                                                                        },
7367                                                                        1 => {
7368                                                                            0 => {
7369                                                                                0 => {
7370                                                                                    0 => {Elements::NewIssuanceContract},
7371                                                                                    1 => {Elements::ReissuanceEntropy}
7372                                                                                },
7373                                                                                1 => {
7374                                                                                    0 => {Elements::IssuanceAssetAmount},
7375                                                                                    1 => {Elements::IssuanceTokenAmount}
7376                                                                                }
7377                                                                            },
7378                                                                            1 => {
7379                                                                                0 => {
7380                                                                                    0 => {Elements::IssuanceAssetProof},
7381                                                                                    1 => {Elements::IssuanceTokenProof}
7382                                                                                },
7383                                                                                1 => {
7384                                                                                    0 => {Elements::TapleafVersion},
7385                                                                                    1 => {Elements::Tappath}
7386                                                                                }
7387                                                                            }
7388                                                                        }
7389                                                                    },
7390                                                                    1 => {
7391                                                                        0 => {
7392                                                                            0 => {
7393                                                                                0 => {
7394                                                                                    0 => {Elements::Version},
7395                                                                                    1 => {Elements::GenesisBlockHash}
7396                                                                                },
7397                                                                                1 => {
7398                                                                                    0 => {Elements::TransactionId},
7399                                                                                    1 => {}
7400                                                                                }
7401                                                                            },
7402                                                                            1 => {}
7403                                                                        },
7404                                                                        1 => {}
7405                                                                    }
7406                                                                }
7407                                                            },
7408                                                            1 => {}
7409                                                        },
7410                                                        1 => {}
7411                                                    },
7412                                                    1 => {}
7413                                                }
7414                                            }
7415                                        }
7416                                    },
7417                                    1 => {}
7418                                },
7419                                1 => {}
7420                            },
7421                            1 => {}
7422                        },
7423                        1 => {}
7424                    }
7425                }
7426            }
7427        })
7428    }
7429
7430    fn c_jet_ptr(&self) -> &dyn Fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool {
7431        match self {
7432            Elements::Add16 => &simplicity_sys::c_jets::jets_wrapper::add_16,
7433            Elements::Add32 => &simplicity_sys::c_jets::jets_wrapper::add_32,
7434            Elements::Add64 => &simplicity_sys::c_jets::jets_wrapper::add_64,
7435            Elements::Add8 => &simplicity_sys::c_jets::jets_wrapper::add_8,
7436            Elements::All16 => &simplicity_sys::c_jets::jets_wrapper::all_16,
7437            Elements::All32 => &simplicity_sys::c_jets::jets_wrapper::all_32,
7438            Elements::All64 => &simplicity_sys::c_jets::jets_wrapper::all_64,
7439            Elements::All8 => &simplicity_sys::c_jets::jets_wrapper::all_8,
7440            Elements::And1 => &simplicity_sys::c_jets::jets_wrapper::and_1,
7441            Elements::And16 => &simplicity_sys::c_jets::jets_wrapper::and_16,
7442            Elements::And32 => &simplicity_sys::c_jets::jets_wrapper::and_32,
7443            Elements::And64 => &simplicity_sys::c_jets::jets_wrapper::and_64,
7444            Elements::And8 => &simplicity_sys::c_jets::jets_wrapper::and_8,
7445            Elements::AnnexHash => &simplicity_sys::c_jets::jets_wrapper::annex_hash,
7446            Elements::AssetAmountHash => &simplicity_sys::c_jets::jets_wrapper::asset_amount_hash,
7447            Elements::Bip0340Verify => &simplicity_sys::c_jets::jets_wrapper::bip_0340_verify,
7448            Elements::BuildTapbranch => &simplicity_sys::c_jets::jets_wrapper::build_tapbranch,
7449            Elements::BuildTapleafSimplicity => &simplicity_sys::c_jets::jets_wrapper::build_tapleaf_simplicity,
7450            Elements::BuildTaptweak => &simplicity_sys::c_jets::jets_wrapper::build_taptweak,
7451            Elements::CalculateAsset => &simplicity_sys::c_jets::jets_wrapper::calculate_asset,
7452            Elements::CalculateConfidentialToken => &simplicity_sys::c_jets::jets_wrapper::calculate_confidential_token,
7453            Elements::CalculateExplicitToken => &simplicity_sys::c_jets::jets_wrapper::calculate_explicit_token,
7454            Elements::CalculateIssuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::calculate_issuance_entropy,
7455            Elements::Ch1 => &simplicity_sys::c_jets::jets_wrapper::ch_1,
7456            Elements::Ch16 => &simplicity_sys::c_jets::jets_wrapper::ch_16,
7457            Elements::Ch32 => &simplicity_sys::c_jets::jets_wrapper::ch_32,
7458            Elements::Ch64 => &simplicity_sys::c_jets::jets_wrapper::ch_64,
7459            Elements::Ch8 => &simplicity_sys::c_jets::jets_wrapper::ch_8,
7460            Elements::CheckLockDistance => &simplicity_sys::c_jets::jets_wrapper::check_lock_distance,
7461            Elements::CheckLockDuration => &simplicity_sys::c_jets::jets_wrapper::check_lock_duration,
7462            Elements::CheckLockHeight => &simplicity_sys::c_jets::jets_wrapper::check_lock_height,
7463            Elements::CheckLockTime => &simplicity_sys::c_jets::jets_wrapper::check_lock_time,
7464            Elements::CheckSigVerify => &simplicity_sys::c_jets::jets_wrapper::check_sig_verify,
7465            Elements::Complement1 => &simplicity_sys::c_jets::jets_wrapper::complement_1,
7466            Elements::Complement16 => &simplicity_sys::c_jets::jets_wrapper::complement_16,
7467            Elements::Complement32 => &simplicity_sys::c_jets::jets_wrapper::complement_32,
7468            Elements::Complement64 => &simplicity_sys::c_jets::jets_wrapper::complement_64,
7469            Elements::Complement8 => &simplicity_sys::c_jets::jets_wrapper::complement_8,
7470            Elements::CurrentAmount => &simplicity_sys::c_jets::jets_wrapper::current_amount,
7471            Elements::CurrentAnnexHash => &simplicity_sys::c_jets::jets_wrapper::current_annex_hash,
7472            Elements::CurrentAsset => &simplicity_sys::c_jets::jets_wrapper::current_asset,
7473            Elements::CurrentIndex => &simplicity_sys::c_jets::jets_wrapper::current_index,
7474            Elements::CurrentIssuanceAssetAmount => &simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_amount,
7475            Elements::CurrentIssuanceAssetProof => &simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_proof,
7476            Elements::CurrentIssuanceTokenAmount => &simplicity_sys::c_jets::jets_wrapper::current_issuance_token_amount,
7477            Elements::CurrentIssuanceTokenProof => &simplicity_sys::c_jets::jets_wrapper::current_issuance_token_proof,
7478            Elements::CurrentNewIssuanceContract => &simplicity_sys::c_jets::jets_wrapper::current_new_issuance_contract,
7479            Elements::CurrentPegin => &simplicity_sys::c_jets::jets_wrapper::current_pegin,
7480            Elements::CurrentPrevOutpoint => &simplicity_sys::c_jets::jets_wrapper::current_prev_outpoint,
7481            Elements::CurrentReissuanceBlinding => &simplicity_sys::c_jets::jets_wrapper::current_reissuance_blinding,
7482            Elements::CurrentReissuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::current_reissuance_entropy,
7483            Elements::CurrentScriptHash => &simplicity_sys::c_jets::jets_wrapper::current_script_hash,
7484            Elements::CurrentScriptSigHash => &simplicity_sys::c_jets::jets_wrapper::current_script_sig_hash,
7485            Elements::CurrentSequence => &simplicity_sys::c_jets::jets_wrapper::current_sequence,
7486            Elements::Decompress => &simplicity_sys::c_jets::jets_wrapper::decompress,
7487            Elements::Decrement16 => &simplicity_sys::c_jets::jets_wrapper::decrement_16,
7488            Elements::Decrement32 => &simplicity_sys::c_jets::jets_wrapper::decrement_32,
7489            Elements::Decrement64 => &simplicity_sys::c_jets::jets_wrapper::decrement_64,
7490            Elements::Decrement8 => &simplicity_sys::c_jets::jets_wrapper::decrement_8,
7491            Elements::DivMod128_64 => &simplicity_sys::c_jets::jets_wrapper::div_mod_128_64,
7492            Elements::DivMod16 => &simplicity_sys::c_jets::jets_wrapper::div_mod_16,
7493            Elements::DivMod32 => &simplicity_sys::c_jets::jets_wrapper::div_mod_32,
7494            Elements::DivMod64 => &simplicity_sys::c_jets::jets_wrapper::div_mod_64,
7495            Elements::DivMod8 => &simplicity_sys::c_jets::jets_wrapper::div_mod_8,
7496            Elements::Divide16 => &simplicity_sys::c_jets::jets_wrapper::divide_16,
7497            Elements::Divide32 => &simplicity_sys::c_jets::jets_wrapper::divide_32,
7498            Elements::Divide64 => &simplicity_sys::c_jets::jets_wrapper::divide_64,
7499            Elements::Divide8 => &simplicity_sys::c_jets::jets_wrapper::divide_8,
7500            Elements::Divides16 => &simplicity_sys::c_jets::jets_wrapper::divides_16,
7501            Elements::Divides32 => &simplicity_sys::c_jets::jets_wrapper::divides_32,
7502            Elements::Divides64 => &simplicity_sys::c_jets::jets_wrapper::divides_64,
7503            Elements::Divides8 => &simplicity_sys::c_jets::jets_wrapper::divides_8,
7504            Elements::Eq1 => &simplicity_sys::c_jets::jets_wrapper::eq_1,
7505            Elements::Eq16 => &simplicity_sys::c_jets::jets_wrapper::eq_16,
7506            Elements::Eq256 => &simplicity_sys::c_jets::jets_wrapper::eq_256,
7507            Elements::Eq32 => &simplicity_sys::c_jets::jets_wrapper::eq_32,
7508            Elements::Eq64 => &simplicity_sys::c_jets::jets_wrapper::eq_64,
7509            Elements::Eq8 => &simplicity_sys::c_jets::jets_wrapper::eq_8,
7510            Elements::FeAdd => &simplicity_sys::c_jets::jets_wrapper::fe_add,
7511            Elements::FeInvert => &simplicity_sys::c_jets::jets_wrapper::fe_invert,
7512            Elements::FeIsOdd => &simplicity_sys::c_jets::jets_wrapper::fe_is_odd,
7513            Elements::FeIsZero => &simplicity_sys::c_jets::jets_wrapper::fe_is_zero,
7514            Elements::FeMultiply => &simplicity_sys::c_jets::jets_wrapper::fe_multiply,
7515            Elements::FeMultiplyBeta => &simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta,
7516            Elements::FeNegate => &simplicity_sys::c_jets::jets_wrapper::fe_negate,
7517            Elements::FeNormalize => &simplicity_sys::c_jets::jets_wrapper::fe_normalize,
7518            Elements::FeSquare => &simplicity_sys::c_jets::jets_wrapper::fe_square,
7519            Elements::FeSquareRoot => &simplicity_sys::c_jets::jets_wrapper::fe_square_root,
7520            Elements::FullAdd16 => &simplicity_sys::c_jets::jets_wrapper::full_add_16,
7521            Elements::FullAdd32 => &simplicity_sys::c_jets::jets_wrapper::full_add_32,
7522            Elements::FullAdd64 => &simplicity_sys::c_jets::jets_wrapper::full_add_64,
7523            Elements::FullAdd8 => &simplicity_sys::c_jets::jets_wrapper::full_add_8,
7524            Elements::FullDecrement16 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_16,
7525            Elements::FullDecrement32 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_32,
7526            Elements::FullDecrement64 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_64,
7527            Elements::FullDecrement8 => &simplicity_sys::c_jets::jets_wrapper::full_decrement_8,
7528            Elements::FullIncrement16 => &simplicity_sys::c_jets::jets_wrapper::full_increment_16,
7529            Elements::FullIncrement32 => &simplicity_sys::c_jets::jets_wrapper::full_increment_32,
7530            Elements::FullIncrement64 => &simplicity_sys::c_jets::jets_wrapper::full_increment_64,
7531            Elements::FullIncrement8 => &simplicity_sys::c_jets::jets_wrapper::full_increment_8,
7532            Elements::FullLeftShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1,
7533            Elements::FullLeftShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2,
7534            Elements::FullLeftShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4,
7535            Elements::FullLeftShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8,
7536            Elements::FullLeftShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1,
7537            Elements::FullLeftShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16,
7538            Elements::FullLeftShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2,
7539            Elements::FullLeftShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4,
7540            Elements::FullLeftShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8,
7541            Elements::FullLeftShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1,
7542            Elements::FullLeftShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16,
7543            Elements::FullLeftShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2,
7544            Elements::FullLeftShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32,
7545            Elements::FullLeftShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4,
7546            Elements::FullLeftShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8,
7547            Elements::FullLeftShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1,
7548            Elements::FullLeftShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2,
7549            Elements::FullLeftShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4,
7550            Elements::FullMultiply16 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_16,
7551            Elements::FullMultiply32 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_32,
7552            Elements::FullMultiply64 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_64,
7553            Elements::FullMultiply8 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_8,
7554            Elements::FullRightShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1,
7555            Elements::FullRightShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2,
7556            Elements::FullRightShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4,
7557            Elements::FullRightShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8,
7558            Elements::FullRightShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1,
7559            Elements::FullRightShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16,
7560            Elements::FullRightShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2,
7561            Elements::FullRightShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4,
7562            Elements::FullRightShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8,
7563            Elements::FullRightShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1,
7564            Elements::FullRightShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16,
7565            Elements::FullRightShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2,
7566            Elements::FullRightShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32,
7567            Elements::FullRightShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4,
7568            Elements::FullRightShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8,
7569            Elements::FullRightShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1,
7570            Elements::FullRightShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2,
7571            Elements::FullRightShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4,
7572            Elements::FullSubtract16 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_16,
7573            Elements::FullSubtract32 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_32,
7574            Elements::FullSubtract64 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_64,
7575            Elements::FullSubtract8 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_8,
7576            Elements::GeIsOnCurve => &simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve,
7577            Elements::GeNegate => &simplicity_sys::c_jets::jets_wrapper::ge_negate,
7578            Elements::GejAdd => &simplicity_sys::c_jets::jets_wrapper::gej_add,
7579            Elements::GejDouble => &simplicity_sys::c_jets::jets_wrapper::gej_double,
7580            Elements::GejEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_equiv,
7581            Elements::GejGeAdd => &simplicity_sys::c_jets::jets_wrapper::gej_ge_add,
7582            Elements::GejGeAddEx => &simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex,
7583            Elements::GejGeEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv,
7584            Elements::GejInfinity => &simplicity_sys::c_jets::jets_wrapper::gej_infinity,
7585            Elements::GejIsInfinity => &simplicity_sys::c_jets::jets_wrapper::gej_is_infinity,
7586            Elements::GejIsOnCurve => &simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve,
7587            Elements::GejNegate => &simplicity_sys::c_jets::jets_wrapper::gej_negate,
7588            Elements::GejNormalize => &simplicity_sys::c_jets::jets_wrapper::gej_normalize,
7589            Elements::GejRescale => &simplicity_sys::c_jets::jets_wrapper::gej_rescale,
7590            Elements::GejXEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_x_equiv,
7591            Elements::GejYIsOdd => &simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd,
7592            Elements::Generate => &simplicity_sys::c_jets::jets_wrapper::generate,
7593            Elements::GenesisBlockHash => &simplicity_sys::c_jets::jets_wrapper::genesis_block_hash,
7594            Elements::HashToCurve => &simplicity_sys::c_jets::jets_wrapper::hash_to_curve,
7595            Elements::High1 => &simplicity_sys::c_jets::jets_wrapper::high_1,
7596            Elements::High16 => &simplicity_sys::c_jets::jets_wrapper::high_16,
7597            Elements::High32 => &simplicity_sys::c_jets::jets_wrapper::high_32,
7598            Elements::High64 => &simplicity_sys::c_jets::jets_wrapper::high_64,
7599            Elements::High8 => &simplicity_sys::c_jets::jets_wrapper::high_8,
7600            Elements::Increment16 => &simplicity_sys::c_jets::jets_wrapper::increment_16,
7601            Elements::Increment32 => &simplicity_sys::c_jets::jets_wrapper::increment_32,
7602            Elements::Increment64 => &simplicity_sys::c_jets::jets_wrapper::increment_64,
7603            Elements::Increment8 => &simplicity_sys::c_jets::jets_wrapper::increment_8,
7604            Elements::InputAmount => &simplicity_sys::c_jets::jets_wrapper::input_amount,
7605            Elements::InputAmountsHash => &simplicity_sys::c_jets::jets_wrapper::input_amounts_hash,
7606            Elements::InputAnnexHash => &simplicity_sys::c_jets::jets_wrapper::input_annex_hash,
7607            Elements::InputAnnexesHash => &simplicity_sys::c_jets::jets_wrapper::input_annexes_hash,
7608            Elements::InputAsset => &simplicity_sys::c_jets::jets_wrapper::input_asset,
7609            Elements::InputHash => &simplicity_sys::c_jets::jets_wrapper::input_hash,
7610            Elements::InputOutpointsHash => &simplicity_sys::c_jets::jets_wrapper::input_outpoints_hash,
7611            Elements::InputPegin => &simplicity_sys::c_jets::jets_wrapper::input_pegin,
7612            Elements::InputPrevOutpoint => &simplicity_sys::c_jets::jets_wrapper::input_prev_outpoint,
7613            Elements::InputScriptHash => &simplicity_sys::c_jets::jets_wrapper::input_script_hash,
7614            Elements::InputScriptSigHash => &simplicity_sys::c_jets::jets_wrapper::input_script_sig_hash,
7615            Elements::InputScriptSigsHash => &simplicity_sys::c_jets::jets_wrapper::input_script_sigs_hash,
7616            Elements::InputScriptsHash => &simplicity_sys::c_jets::jets_wrapper::input_scripts_hash,
7617            Elements::InputSequence => &simplicity_sys::c_jets::jets_wrapper::input_sequence,
7618            Elements::InputSequencesHash => &simplicity_sys::c_jets::jets_wrapper::input_sequences_hash,
7619            Elements::InputUtxoHash => &simplicity_sys::c_jets::jets_wrapper::input_utxo_hash,
7620            Elements::InputUtxosHash => &simplicity_sys::c_jets::jets_wrapper::input_utxos_hash,
7621            Elements::InputsHash => &simplicity_sys::c_jets::jets_wrapper::inputs_hash,
7622            Elements::InternalKey => &simplicity_sys::c_jets::jets_wrapper::internal_key,
7623            Elements::IsOne16 => &simplicity_sys::c_jets::jets_wrapper::is_one_16,
7624            Elements::IsOne32 => &simplicity_sys::c_jets::jets_wrapper::is_one_32,
7625            Elements::IsOne64 => &simplicity_sys::c_jets::jets_wrapper::is_one_64,
7626            Elements::IsOne8 => &simplicity_sys::c_jets::jets_wrapper::is_one_8,
7627            Elements::IsZero16 => &simplicity_sys::c_jets::jets_wrapper::is_zero_16,
7628            Elements::IsZero32 => &simplicity_sys::c_jets::jets_wrapper::is_zero_32,
7629            Elements::IsZero64 => &simplicity_sys::c_jets::jets_wrapper::is_zero_64,
7630            Elements::IsZero8 => &simplicity_sys::c_jets::jets_wrapper::is_zero_8,
7631            Elements::Issuance => &simplicity_sys::c_jets::jets_wrapper::issuance,
7632            Elements::IssuanceAsset => &simplicity_sys::c_jets::jets_wrapper::issuance_asset,
7633            Elements::IssuanceAssetAmount => &simplicity_sys::c_jets::jets_wrapper::issuance_asset_amount,
7634            Elements::IssuanceAssetAmountsHash => &simplicity_sys::c_jets::jets_wrapper::issuance_asset_amounts_hash,
7635            Elements::IssuanceAssetProof => &simplicity_sys::c_jets::jets_wrapper::issuance_asset_proof,
7636            Elements::IssuanceBlindingEntropyHash => &simplicity_sys::c_jets::jets_wrapper::issuance_blinding_entropy_hash,
7637            Elements::IssuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::issuance_entropy,
7638            Elements::IssuanceHash => &simplicity_sys::c_jets::jets_wrapper::issuance_hash,
7639            Elements::IssuanceRangeProofsHash => &simplicity_sys::c_jets::jets_wrapper::issuance_range_proofs_hash,
7640            Elements::IssuanceToken => &simplicity_sys::c_jets::jets_wrapper::issuance_token,
7641            Elements::IssuanceTokenAmount => &simplicity_sys::c_jets::jets_wrapper::issuance_token_amount,
7642            Elements::IssuanceTokenAmountsHash => &simplicity_sys::c_jets::jets_wrapper::issuance_token_amounts_hash,
7643            Elements::IssuanceTokenProof => &simplicity_sys::c_jets::jets_wrapper::issuance_token_proof,
7644            Elements::IssuancesHash => &simplicity_sys::c_jets::jets_wrapper::issuances_hash,
7645            Elements::LbtcAsset => &simplicity_sys::c_jets::jets_wrapper::lbtc_asset,
7646            Elements::Le16 => &simplicity_sys::c_jets::jets_wrapper::le_16,
7647            Elements::Le32 => &simplicity_sys::c_jets::jets_wrapper::le_32,
7648            Elements::Le64 => &simplicity_sys::c_jets::jets_wrapper::le_64,
7649            Elements::Le8 => &simplicity_sys::c_jets::jets_wrapper::le_8,
7650            Elements::LeftExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_32,
7651            Elements::LeftExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_64,
7652            Elements::LeftExtend1_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_16,
7653            Elements::LeftExtend1_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_32,
7654            Elements::LeftExtend1_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_64,
7655            Elements::LeftExtend1_8 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_8,
7656            Elements::LeftExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_32_64,
7657            Elements::LeftExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_16,
7658            Elements::LeftExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_32,
7659            Elements::LeftExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_64,
7660            Elements::LeftPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32,
7661            Elements::LeftPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64,
7662            Elements::LeftPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16,
7663            Elements::LeftPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32,
7664            Elements::LeftPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64,
7665            Elements::LeftPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8,
7666            Elements::LeftPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64,
7667            Elements::LeftPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16,
7668            Elements::LeftPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32,
7669            Elements::LeftPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64,
7670            Elements::LeftPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32,
7671            Elements::LeftPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64,
7672            Elements::LeftPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16,
7673            Elements::LeftPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32,
7674            Elements::LeftPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64,
7675            Elements::LeftPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8,
7676            Elements::LeftPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64,
7677            Elements::LeftPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16,
7678            Elements::LeftPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32,
7679            Elements::LeftPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64,
7680            Elements::LeftRotate16 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_16,
7681            Elements::LeftRotate32 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_32,
7682            Elements::LeftRotate64 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_64,
7683            Elements::LeftRotate8 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_8,
7684            Elements::LeftShift16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_16,
7685            Elements::LeftShift32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_32,
7686            Elements::LeftShift64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_64,
7687            Elements::LeftShift8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_8,
7688            Elements::LeftShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_16,
7689            Elements::LeftShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_32,
7690            Elements::LeftShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_64,
7691            Elements::LeftShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_8,
7692            Elements::Leftmost16_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_1,
7693            Elements::Leftmost16_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_2,
7694            Elements::Leftmost16_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_4,
7695            Elements::Leftmost16_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_8,
7696            Elements::Leftmost32_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_1,
7697            Elements::Leftmost32_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_16,
7698            Elements::Leftmost32_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_2,
7699            Elements::Leftmost32_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_4,
7700            Elements::Leftmost32_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_8,
7701            Elements::Leftmost64_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_1,
7702            Elements::Leftmost64_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_16,
7703            Elements::Leftmost64_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_2,
7704            Elements::Leftmost64_32 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_32,
7705            Elements::Leftmost64_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_4,
7706            Elements::Leftmost64_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_8,
7707            Elements::Leftmost8_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_1,
7708            Elements::Leftmost8_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_2,
7709            Elements::Leftmost8_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_4,
7710            Elements::LinearCombination1 => &simplicity_sys::c_jets::jets_wrapper::linear_combination_1,
7711            Elements::LinearVerify1 => &simplicity_sys::c_jets::jets_wrapper::linear_verify_1,
7712            Elements::LockTime => &simplicity_sys::c_jets::jets_wrapper::lock_time,
7713            Elements::Low1 => &simplicity_sys::c_jets::jets_wrapper::low_1,
7714            Elements::Low16 => &simplicity_sys::c_jets::jets_wrapper::low_16,
7715            Elements::Low32 => &simplicity_sys::c_jets::jets_wrapper::low_32,
7716            Elements::Low64 => &simplicity_sys::c_jets::jets_wrapper::low_64,
7717            Elements::Low8 => &simplicity_sys::c_jets::jets_wrapper::low_8,
7718            Elements::Lt16 => &simplicity_sys::c_jets::jets_wrapper::lt_16,
7719            Elements::Lt32 => &simplicity_sys::c_jets::jets_wrapper::lt_32,
7720            Elements::Lt64 => &simplicity_sys::c_jets::jets_wrapper::lt_64,
7721            Elements::Lt8 => &simplicity_sys::c_jets::jets_wrapper::lt_8,
7722            Elements::Maj1 => &simplicity_sys::c_jets::jets_wrapper::maj_1,
7723            Elements::Maj16 => &simplicity_sys::c_jets::jets_wrapper::maj_16,
7724            Elements::Maj32 => &simplicity_sys::c_jets::jets_wrapper::maj_32,
7725            Elements::Maj64 => &simplicity_sys::c_jets::jets_wrapper::maj_64,
7726            Elements::Maj8 => &simplicity_sys::c_jets::jets_wrapper::maj_8,
7727            Elements::Max16 => &simplicity_sys::c_jets::jets_wrapper::max_16,
7728            Elements::Max32 => &simplicity_sys::c_jets::jets_wrapper::max_32,
7729            Elements::Max64 => &simplicity_sys::c_jets::jets_wrapper::max_64,
7730            Elements::Max8 => &simplicity_sys::c_jets::jets_wrapper::max_8,
7731            Elements::Median16 => &simplicity_sys::c_jets::jets_wrapper::median_16,
7732            Elements::Median32 => &simplicity_sys::c_jets::jets_wrapper::median_32,
7733            Elements::Median64 => &simplicity_sys::c_jets::jets_wrapper::median_64,
7734            Elements::Median8 => &simplicity_sys::c_jets::jets_wrapper::median_8,
7735            Elements::Min16 => &simplicity_sys::c_jets::jets_wrapper::min_16,
7736            Elements::Min32 => &simplicity_sys::c_jets::jets_wrapper::min_32,
7737            Elements::Min64 => &simplicity_sys::c_jets::jets_wrapper::min_64,
7738            Elements::Min8 => &simplicity_sys::c_jets::jets_wrapper::min_8,
7739            Elements::Modulo16 => &simplicity_sys::c_jets::jets_wrapper::modulo_16,
7740            Elements::Modulo32 => &simplicity_sys::c_jets::jets_wrapper::modulo_32,
7741            Elements::Modulo64 => &simplicity_sys::c_jets::jets_wrapper::modulo_64,
7742            Elements::Modulo8 => &simplicity_sys::c_jets::jets_wrapper::modulo_8,
7743            Elements::Multiply16 => &simplicity_sys::c_jets::jets_wrapper::multiply_16,
7744            Elements::Multiply32 => &simplicity_sys::c_jets::jets_wrapper::multiply_32,
7745            Elements::Multiply64 => &simplicity_sys::c_jets::jets_wrapper::multiply_64,
7746            Elements::Multiply8 => &simplicity_sys::c_jets::jets_wrapper::multiply_8,
7747            Elements::Negate16 => &simplicity_sys::c_jets::jets_wrapper::negate_16,
7748            Elements::Negate32 => &simplicity_sys::c_jets::jets_wrapper::negate_32,
7749            Elements::Negate64 => &simplicity_sys::c_jets::jets_wrapper::negate_64,
7750            Elements::Negate8 => &simplicity_sys::c_jets::jets_wrapper::negate_8,
7751            Elements::NewIssuanceContract => &simplicity_sys::c_jets::jets_wrapper::new_issuance_contract,
7752            Elements::NonceHash => &simplicity_sys::c_jets::jets_wrapper::nonce_hash,
7753            Elements::NumInputs => &simplicity_sys::c_jets::jets_wrapper::num_inputs,
7754            Elements::NumOutputs => &simplicity_sys::c_jets::jets_wrapper::num_outputs,
7755            Elements::One16 => &simplicity_sys::c_jets::jets_wrapper::one_16,
7756            Elements::One32 => &simplicity_sys::c_jets::jets_wrapper::one_32,
7757            Elements::One64 => &simplicity_sys::c_jets::jets_wrapper::one_64,
7758            Elements::One8 => &simplicity_sys::c_jets::jets_wrapper::one_8,
7759            Elements::Or1 => &simplicity_sys::c_jets::jets_wrapper::or_1,
7760            Elements::Or16 => &simplicity_sys::c_jets::jets_wrapper::or_16,
7761            Elements::Or32 => &simplicity_sys::c_jets::jets_wrapper::or_32,
7762            Elements::Or64 => &simplicity_sys::c_jets::jets_wrapper::or_64,
7763            Elements::Or8 => &simplicity_sys::c_jets::jets_wrapper::or_8,
7764            Elements::OutpointHash => &simplicity_sys::c_jets::jets_wrapper::outpoint_hash,
7765            Elements::OutputAmount => &simplicity_sys::c_jets::jets_wrapper::output_amount,
7766            Elements::OutputAmountsHash => &simplicity_sys::c_jets::jets_wrapper::output_amounts_hash,
7767            Elements::OutputAsset => &simplicity_sys::c_jets::jets_wrapper::output_asset,
7768            Elements::OutputHash => &simplicity_sys::c_jets::jets_wrapper::output_hash,
7769            Elements::OutputIsFee => &simplicity_sys::c_jets::jets_wrapper::output_is_fee,
7770            Elements::OutputNonce => &simplicity_sys::c_jets::jets_wrapper::output_nonce,
7771            Elements::OutputNoncesHash => &simplicity_sys::c_jets::jets_wrapper::output_nonces_hash,
7772            Elements::OutputNullDatum => &simplicity_sys::c_jets::jets_wrapper::output_null_datum,
7773            Elements::OutputRangeProof => &simplicity_sys::c_jets::jets_wrapper::output_range_proof,
7774            Elements::OutputRangeProofsHash => &simplicity_sys::c_jets::jets_wrapper::output_range_proofs_hash,
7775            Elements::OutputScriptHash => &simplicity_sys::c_jets::jets_wrapper::output_script_hash,
7776            Elements::OutputScriptsHash => &simplicity_sys::c_jets::jets_wrapper::output_scripts_hash,
7777            Elements::OutputSurjectionProof => &simplicity_sys::c_jets::jets_wrapper::output_surjection_proof,
7778            Elements::OutputSurjectionProofsHash => &simplicity_sys::c_jets::jets_wrapper::output_surjection_proofs_hash,
7779            Elements::OutputsHash => &simplicity_sys::c_jets::jets_wrapper::outputs_hash,
7780            Elements::ParseLock => &simplicity_sys::c_jets::jets_wrapper::parse_lock,
7781            Elements::ParseSequence => &simplicity_sys::c_jets::jets_wrapper::parse_sequence,
7782            Elements::PointVerify1 => &simplicity_sys::c_jets::jets_wrapper::point_verify_1,
7783            Elements::ReissuanceBlinding => &simplicity_sys::c_jets::jets_wrapper::reissuance_blinding,
7784            Elements::ReissuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::reissuance_entropy,
7785            Elements::RightExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_32,
7786            Elements::RightExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_64,
7787            Elements::RightExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_32_64,
7788            Elements::RightExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_16,
7789            Elements::RightExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_32,
7790            Elements::RightExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_64,
7791            Elements::RightPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32,
7792            Elements::RightPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64,
7793            Elements::RightPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16,
7794            Elements::RightPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32,
7795            Elements::RightPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64,
7796            Elements::RightPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8,
7797            Elements::RightPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64,
7798            Elements::RightPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16,
7799            Elements::RightPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32,
7800            Elements::RightPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64,
7801            Elements::RightPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32,
7802            Elements::RightPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64,
7803            Elements::RightPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16,
7804            Elements::RightPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32,
7805            Elements::RightPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64,
7806            Elements::RightPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8,
7807            Elements::RightPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64,
7808            Elements::RightPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16,
7809            Elements::RightPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32,
7810            Elements::RightPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64,
7811            Elements::RightRotate16 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_16,
7812            Elements::RightRotate32 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_32,
7813            Elements::RightRotate64 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_64,
7814            Elements::RightRotate8 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_8,
7815            Elements::RightShift16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_16,
7816            Elements::RightShift32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_32,
7817            Elements::RightShift64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_64,
7818            Elements::RightShift8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_8,
7819            Elements::RightShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_16,
7820            Elements::RightShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_32,
7821            Elements::RightShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_64,
7822            Elements::RightShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_8,
7823            Elements::Rightmost16_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_1,
7824            Elements::Rightmost16_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_2,
7825            Elements::Rightmost16_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_4,
7826            Elements::Rightmost16_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_8,
7827            Elements::Rightmost32_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_1,
7828            Elements::Rightmost32_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_16,
7829            Elements::Rightmost32_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_2,
7830            Elements::Rightmost32_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_4,
7831            Elements::Rightmost32_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_8,
7832            Elements::Rightmost64_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_1,
7833            Elements::Rightmost64_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_16,
7834            Elements::Rightmost64_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_2,
7835            Elements::Rightmost64_32 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_32,
7836            Elements::Rightmost64_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_4,
7837            Elements::Rightmost64_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_8,
7838            Elements::Rightmost8_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_1,
7839            Elements::Rightmost8_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_2,
7840            Elements::Rightmost8_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_4,
7841            Elements::ScalarAdd => &simplicity_sys::c_jets::jets_wrapper::scalar_add,
7842            Elements::ScalarInvert => &simplicity_sys::c_jets::jets_wrapper::scalar_invert,
7843            Elements::ScalarIsZero => &simplicity_sys::c_jets::jets_wrapper::scalar_is_zero,
7844            Elements::ScalarMultiply => &simplicity_sys::c_jets::jets_wrapper::scalar_multiply,
7845            Elements::ScalarMultiplyLambda => &simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda,
7846            Elements::ScalarNegate => &simplicity_sys::c_jets::jets_wrapper::scalar_negate,
7847            Elements::ScalarNormalize => &simplicity_sys::c_jets::jets_wrapper::scalar_normalize,
7848            Elements::ScalarSquare => &simplicity_sys::c_jets::jets_wrapper::scalar_square,
7849            Elements::Scale => &simplicity_sys::c_jets::jets_wrapper::scale,
7850            Elements::ScriptCMR => &simplicity_sys::c_jets::jets_wrapper::script_cmr,
7851            Elements::Sha256Block => &simplicity_sys::c_jets::jets_wrapper::sha_256_block,
7852            Elements::Sha256Ctx8Add1 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1,
7853            Elements::Sha256Ctx8Add128 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128,
7854            Elements::Sha256Ctx8Add16 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16,
7855            Elements::Sha256Ctx8Add2 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2,
7856            Elements::Sha256Ctx8Add256 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256,
7857            Elements::Sha256Ctx8Add32 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32,
7858            Elements::Sha256Ctx8Add4 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4,
7859            Elements::Sha256Ctx8Add512 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512,
7860            Elements::Sha256Ctx8Add64 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64,
7861            Elements::Sha256Ctx8Add8 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8,
7862            Elements::Sha256Ctx8AddBuffer511 => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511,
7863            Elements::Sha256Ctx8Finalize => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize,
7864            Elements::Sha256Ctx8Init => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init,
7865            Elements::Sha256Iv => &simplicity_sys::c_jets::jets_wrapper::sha_256_iv,
7866            Elements::SigAllHash => &simplicity_sys::c_jets::jets_wrapper::sig_all_hash,
7867            Elements::Some1 => &simplicity_sys::c_jets::jets_wrapper::some_1,
7868            Elements::Some16 => &simplicity_sys::c_jets::jets_wrapper::some_16,
7869            Elements::Some32 => &simplicity_sys::c_jets::jets_wrapper::some_32,
7870            Elements::Some64 => &simplicity_sys::c_jets::jets_wrapper::some_64,
7871            Elements::Some8 => &simplicity_sys::c_jets::jets_wrapper::some_8,
7872            Elements::Subtract16 => &simplicity_sys::c_jets::jets_wrapper::subtract_16,
7873            Elements::Subtract32 => &simplicity_sys::c_jets::jets_wrapper::subtract_32,
7874            Elements::Subtract64 => &simplicity_sys::c_jets::jets_wrapper::subtract_64,
7875            Elements::Subtract8 => &simplicity_sys::c_jets::jets_wrapper::subtract_8,
7876            Elements::Swu => &simplicity_sys::c_jets::jets_wrapper::swu,
7877            Elements::TapEnvHash => &simplicity_sys::c_jets::jets_wrapper::tap_env_hash,
7878            Elements::TapdataInit => &simplicity_sys::c_jets::jets_wrapper::tapdata_init,
7879            Elements::TapleafHash => &simplicity_sys::c_jets::jets_wrapper::tapleaf_hash,
7880            Elements::TapleafVersion => &simplicity_sys::c_jets::jets_wrapper::tapleaf_version,
7881            Elements::Tappath => &simplicity_sys::c_jets::jets_wrapper::tappath,
7882            Elements::TappathHash => &simplicity_sys::c_jets::jets_wrapper::tappath_hash,
7883            Elements::TotalFee => &simplicity_sys::c_jets::jets_wrapper::total_fee,
7884            Elements::TransactionId => &simplicity_sys::c_jets::jets_wrapper::transaction_id,
7885            Elements::TxHash => &simplicity_sys::c_jets::jets_wrapper::tx_hash,
7886            Elements::TxIsFinal => &simplicity_sys::c_jets::jets_wrapper::tx_is_final,
7887            Elements::TxLockDistance => &simplicity_sys::c_jets::jets_wrapper::tx_lock_distance,
7888            Elements::TxLockDuration => &simplicity_sys::c_jets::jets_wrapper::tx_lock_duration,
7889            Elements::TxLockHeight => &simplicity_sys::c_jets::jets_wrapper::tx_lock_height,
7890            Elements::TxLockTime => &simplicity_sys::c_jets::jets_wrapper::tx_lock_time,
7891            Elements::Verify => &simplicity_sys::c_jets::jets_wrapper::verify,
7892            Elements::Version => &simplicity_sys::c_jets::jets_wrapper::version,
7893            Elements::Xor1 => &simplicity_sys::c_jets::jets_wrapper::xor_1,
7894            Elements::Xor16 => &simplicity_sys::c_jets::jets_wrapper::xor_16,
7895            Elements::Xor32 => &simplicity_sys::c_jets::jets_wrapper::xor_32,
7896            Elements::Xor64 => &simplicity_sys::c_jets::jets_wrapper::xor_64,
7897            Elements::Xor8 => &simplicity_sys::c_jets::jets_wrapper::xor_8,
7898            Elements::XorXor1 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_1,
7899            Elements::XorXor16 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_16,
7900            Elements::XorXor32 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_32,
7901            Elements::XorXor64 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_64,
7902            Elements::XorXor8 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_8,
7903        }
7904    }
7905
7906    fn cost(&self) -> Cost {
7907        match self {
7908            Elements::Add16 => Cost::from_milliweight(108),
7909            Elements::Add32 => Cost::from_milliweight(117),
7910            Elements::Add64 => Cost::from_milliweight(109),
7911            Elements::Add8 => Cost::from_milliweight(112),
7912            Elements::All16 => Cost::from_milliweight(62),
7913            Elements::All32 => Cost::from_milliweight(65),
7914            Elements::All64 => Cost::from_milliweight(79),
7915            Elements::All8 => Cost::from_milliweight(76),
7916            Elements::And1 => Cost::from_milliweight(79),
7917            Elements::And16 => Cost::from_milliweight(88),
7918            Elements::And32 => Cost::from_milliweight(94),
7919            Elements::And64 => Cost::from_milliweight(93),
7920            Elements::And8 => Cost::from_milliweight(91),
7921            Elements::AnnexHash => Cost::from_milliweight(241),
7922            Elements::AssetAmountHash => Cost::from_milliweight(308),
7923            Elements::Bip0340Verify => Cost::from_milliweight(49087),
7924            Elements::BuildTapbranch => Cost::from_milliweight(2563),
7925            Elements::BuildTapleafSimplicity => Cost::from_milliweight(1843),
7926            Elements::BuildTaptweak => Cost::from_milliweight(92813),
7927            Elements::CalculateAsset => Cost::from_milliweight(807),
7928            Elements::CalculateConfidentialToken => Cost::from_milliweight(707),
7929            Elements::CalculateExplicitToken => Cost::from_milliweight(771),
7930            Elements::CalculateIssuanceEntropy => Cost::from_milliweight(2095),
7931            Elements::Ch1 => Cost::from_milliweight(78),
7932            Elements::Ch16 => Cost::from_milliweight(94),
7933            Elements::Ch32 => Cost::from_milliweight(91),
7934            Elements::Ch64 => Cost::from_milliweight(91),
7935            Elements::Ch8 => Cost::from_milliweight(77),
7936            Elements::CheckLockDistance => Cost::from_milliweight(105),
7937            Elements::CheckLockDuration => Cost::from_milliweight(102),
7938            Elements::CheckLockHeight => Cost::from_milliweight(77),
7939            Elements::CheckLockTime => Cost::from_milliweight(93),
7940            Elements::CheckSigVerify => Cost::from_milliweight(50000),
7941            Elements::Complement1 => Cost::from_milliweight(79),
7942            Elements::Complement16 => Cost::from_milliweight(75),
7943            Elements::Complement32 => Cost::from_milliweight(93),
7944            Elements::Complement64 => Cost::from_milliweight(88),
7945            Elements::Complement8 => Cost::from_milliweight(80),
7946            Elements::CurrentAmount => Cost::from_milliweight(225),
7947            Elements::CurrentAnnexHash => Cost::from_milliweight(79),
7948            Elements::CurrentAsset => Cost::from_milliweight(171),
7949            Elements::CurrentIndex => Cost::from_milliweight(88),
7950            Elements::CurrentIssuanceAssetAmount => Cost::from_milliweight(165),
7951            Elements::CurrentIssuanceAssetProof => Cost::from_milliweight(140),
7952            Elements::CurrentIssuanceTokenAmount => Cost::from_milliweight(188),
7953            Elements::CurrentIssuanceTokenProof => Cost::from_milliweight(144),
7954            Elements::CurrentNewIssuanceContract => Cost::from_milliweight(145),
7955            Elements::CurrentPegin => Cost::from_milliweight(147),
7956            Elements::CurrentPrevOutpoint => Cost::from_milliweight(156),
7957            Elements::CurrentReissuanceBlinding => Cost::from_milliweight(94),
7958            Elements::CurrentReissuanceEntropy => Cost::from_milliweight(85),
7959            Elements::CurrentScriptHash => Cost::from_milliweight(134),
7960            Elements::CurrentScriptSigHash => Cost::from_milliweight(139),
7961            Elements::CurrentSequence => Cost::from_milliweight(89),
7962            Elements::Decompress => Cost::from_milliweight(10861),
7963            Elements::Decrement16 => Cost::from_milliweight(85),
7964            Elements::Decrement32 => Cost::from_milliweight(91),
7965            Elements::Decrement64 => Cost::from_milliweight(89),
7966            Elements::Decrement8 => Cost::from_milliweight(79),
7967            Elements::DivMod128_64 => Cost::from_milliweight(208),
7968            Elements::DivMod16 => Cost::from_milliweight(118),
7969            Elements::DivMod32 => Cost::from_milliweight(115),
7970            Elements::DivMod64 => Cost::from_milliweight(86),
7971            Elements::DivMod8 => Cost::from_milliweight(128),
7972            Elements::Divide16 => Cost::from_milliweight(98),
7973            Elements::Divide32 => Cost::from_milliweight(100),
7974            Elements::Divide64 => Cost::from_milliweight(101),
7975            Elements::Divide8 => Cost::from_milliweight(108),
7976            Elements::Divides16 => Cost::from_milliweight(93),
7977            Elements::Divides32 => Cost::from_milliweight(87),
7978            Elements::Divides64 => Cost::from_milliweight(91),
7979            Elements::Divides8 => Cost::from_milliweight(98),
7980            Elements::Eq1 => Cost::from_milliweight(74),
7981            Elements::Eq16 => Cost::from_milliweight(84),
7982            Elements::Eq256 => Cost::from_milliweight(225),
7983            Elements::Eq32 => Cost::from_milliweight(88),
7984            Elements::Eq64 => Cost::from_milliweight(100),
7985            Elements::Eq8 => Cost::from_milliweight(95),
7986            Elements::FeAdd => Cost::from_milliweight(755),
7987            Elements::FeInvert => Cost::from_milliweight(3175),
7988            Elements::FeIsOdd => Cost::from_milliweight(290),
7989            Elements::FeIsZero => Cost::from_milliweight(268),
7990            Elements::FeMultiply => Cost::from_milliweight(808),
7991            Elements::FeMultiplyBeta => Cost::from_milliweight(579),
7992            Elements::FeNegate => Cost::from_milliweight(531),
7993            Elements::FeNormalize => Cost::from_milliweight(521),
7994            Elements::FeSquare => Cost::from_milliweight(556),
7995            Elements::FeSquareRoot => Cost::from_milliweight(10275),
7996            Elements::FullAdd16 => Cost::from_milliweight(121),
7997            Elements::FullAdd32 => Cost::from_milliweight(119),
7998            Elements::FullAdd64 => Cost::from_milliweight(121),
7999            Elements::FullAdd8 => Cost::from_milliweight(127),
8000            Elements::FullDecrement16 => Cost::from_milliweight(92),
8001            Elements::FullDecrement32 => Cost::from_milliweight(107),
8002            Elements::FullDecrement64 => Cost::from_milliweight(81),
8003            Elements::FullDecrement8 => Cost::from_milliweight(91),
8004            Elements::FullIncrement16 => Cost::from_milliweight(89),
8005            Elements::FullIncrement32 => Cost::from_milliweight(104),
8006            Elements::FullIncrement64 => Cost::from_milliweight(99),
8007            Elements::FullIncrement8 => Cost::from_milliweight(72),
8008            Elements::FullLeftShift16_1 => Cost::from_milliweight(83),
8009            Elements::FullLeftShift16_2 => Cost::from_milliweight(83),
8010            Elements::FullLeftShift16_4 => Cost::from_milliweight(89),
8011            Elements::FullLeftShift16_8 => Cost::from_milliweight(65),
8012            Elements::FullLeftShift32_1 => Cost::from_milliweight(84),
8013            Elements::FullLeftShift32_16 => Cost::from_milliweight(81),
8014            Elements::FullLeftShift32_2 => Cost::from_milliweight(67),
8015            Elements::FullLeftShift32_4 => Cost::from_milliweight(84),
8016            Elements::FullLeftShift32_8 => Cost::from_milliweight(91),
8017            Elements::FullLeftShift64_1 => Cost::from_milliweight(99),
8018            Elements::FullLeftShift64_16 => Cost::from_milliweight(90),
8019            Elements::FullLeftShift64_2 => Cost::from_milliweight(94),
8020            Elements::FullLeftShift64_32 => Cost::from_milliweight(86),
8021            Elements::FullLeftShift64_4 => Cost::from_milliweight(94),
8022            Elements::FullLeftShift64_8 => Cost::from_milliweight(86),
8023            Elements::FullLeftShift8_1 => Cost::from_milliweight(96),
8024            Elements::FullLeftShift8_2 => Cost::from_milliweight(96),
8025            Elements::FullLeftShift8_4 => Cost::from_milliweight(85),
8026            Elements::FullMultiply16 => Cost::from_milliweight(112),
8027            Elements::FullMultiply32 => Cost::from_milliweight(96),
8028            Elements::FullMultiply64 => Cost::from_milliweight(127),
8029            Elements::FullMultiply8 => Cost::from_milliweight(109),
8030            Elements::FullRightShift16_1 => Cost::from_milliweight(80),
8031            Elements::FullRightShift16_2 => Cost::from_milliweight(79),
8032            Elements::FullRightShift16_4 => Cost::from_milliweight(88),
8033            Elements::FullRightShift16_8 => Cost::from_milliweight(57),
8034            Elements::FullRightShift32_1 => Cost::from_milliweight(74),
8035            Elements::FullRightShift32_16 => Cost::from_milliweight(64),
8036            Elements::FullRightShift32_2 => Cost::from_milliweight(63),
8037            Elements::FullRightShift32_4 => Cost::from_milliweight(71),
8038            Elements::FullRightShift32_8 => Cost::from_milliweight(84),
8039            Elements::FullRightShift64_1 => Cost::from_milliweight(99),
8040            Elements::FullRightShift64_16 => Cost::from_milliweight(86),
8041            Elements::FullRightShift64_2 => Cost::from_milliweight(86),
8042            Elements::FullRightShift64_32 => Cost::from_milliweight(73),
8043            Elements::FullRightShift64_4 => Cost::from_milliweight(93),
8044            Elements::FullRightShift64_8 => Cost::from_milliweight(99),
8045            Elements::FullRightShift8_1 => Cost::from_milliweight(88),
8046            Elements::FullRightShift8_2 => Cost::from_milliweight(86),
8047            Elements::FullRightShift8_4 => Cost::from_milliweight(89),
8048            Elements::FullSubtract16 => Cost::from_milliweight(121),
8049            Elements::FullSubtract32 => Cost::from_milliweight(116),
8050            Elements::FullSubtract64 => Cost::from_milliweight(98),
8051            Elements::FullSubtract8 => Cost::from_milliweight(126),
8052            Elements::GeIsOnCurve => Cost::from_milliweight(642),
8053            Elements::GeNegate => Cost::from_milliweight(945),
8054            Elements::GejAdd => Cost::from_milliweight(2897),
8055            Elements::GejDouble => Cost::from_milliweight(1764),
8056            Elements::GejEquiv => Cost::from_milliweight(2220),
8057            Elements::GejGeAdd => Cost::from_milliweight(2477),
8058            Elements::GejGeAddEx => Cost::from_milliweight(2719),
8059            Elements::GejGeEquiv => Cost::from_milliweight(1765),
8060            Elements::GejInfinity => Cost::from_milliweight(716),
8061            Elements::GejIsInfinity => Cost::from_milliweight(666),
8062            Elements::GejIsOnCurve => Cost::from_milliweight(1016),
8063            Elements::GejNegate => Cost::from_milliweight(1381),
8064            Elements::GejNormalize => Cost::from_milliweight(4099),
8065            Elements::GejRescale => Cost::from_milliweight(1908),
8066            Elements::GejXEquiv => Cost::from_milliweight(1047),
8067            Elements::GejYIsOdd => Cost::from_milliweight(3651),
8068            Elements::Generate => Cost::from_milliweight(50071),
8069            Elements::GenesisBlockHash => Cost::from_milliweight(148),
8070            Elements::HashToCurve => Cost::from_milliweight(68094),
8071            Elements::High1 => Cost::from_milliweight(57),
8072            Elements::High16 => Cost::from_milliweight(66),
8073            Elements::High32 => Cost::from_milliweight(58),
8074            Elements::High64 => Cost::from_milliweight(68),
8075            Elements::High8 => Cost::from_milliweight(59),
8076            Elements::Increment16 => Cost::from_milliweight(69),
8077            Elements::Increment32 => Cost::from_milliweight(92),
8078            Elements::Increment64 => Cost::from_milliweight(87),
8079            Elements::Increment8 => Cost::from_milliweight(85),
8080            Elements::InputAmount => Cost::from_milliweight(285),
8081            Elements::InputAmountsHash => Cost::from_milliweight(140),
8082            Elements::InputAnnexHash => Cost::from_milliweight(90),
8083            Elements::InputAnnexesHash => Cost::from_milliweight(155),
8084            Elements::InputAsset => Cost::from_milliweight(162),
8085            Elements::InputHash => Cost::from_milliweight(965),
8086            Elements::InputOutpointsHash => Cost::from_milliweight(142),
8087            Elements::InputPegin => Cost::from_milliweight(151),
8088            Elements::InputPrevOutpoint => Cost::from_milliweight(160),
8089            Elements::InputScriptHash => Cost::from_milliweight(147),
8090            Elements::InputScriptSigHash => Cost::from_milliweight(153),
8091            Elements::InputScriptSigsHash => Cost::from_milliweight(138),
8092            Elements::InputScriptsHash => Cost::from_milliweight(137),
8093            Elements::InputSequence => Cost::from_milliweight(99),
8094            Elements::InputSequencesHash => Cost::from_milliweight(142),
8095            Elements::InputUtxoHash => Cost::from_milliweight(1996),
8096            Elements::InputUtxosHash => Cost::from_milliweight(140),
8097            Elements::InputsHash => Cost::from_milliweight(154),
8098            Elements::InternalKey => Cost::from_milliweight(152),
8099            Elements::IsOne16 => Cost::from_milliweight(82),
8100            Elements::IsOne32 => Cost::from_milliweight(65),
8101            Elements::IsOne64 => Cost::from_milliweight(83),
8102            Elements::IsOne8 => Cost::from_milliweight(91),
8103            Elements::IsZero16 => Cost::from_milliweight(75),
8104            Elements::IsZero32 => Cost::from_milliweight(85),
8105            Elements::IsZero64 => Cost::from_milliweight(80),
8106            Elements::IsZero8 => Cost::from_milliweight(77),
8107            Elements::Issuance => Cost::from_milliweight(91),
8108            Elements::IssuanceAsset => Cost::from_milliweight(151),
8109            Elements::IssuanceAssetAmount => Cost::from_milliweight(162),
8110            Elements::IssuanceAssetAmountsHash => Cost::from_milliweight(139),
8111            Elements::IssuanceAssetProof => Cost::from_milliweight(150),
8112            Elements::IssuanceBlindingEntropyHash => Cost::from_milliweight(129),
8113            Elements::IssuanceEntropy => Cost::from_milliweight(153),
8114            Elements::IssuanceHash => Cost::from_milliweight(3738),
8115            Elements::IssuanceRangeProofsHash => Cost::from_milliweight(129),
8116            Elements::IssuanceToken => Cost::from_milliweight(149),
8117            Elements::IssuanceTokenAmount => Cost::from_milliweight(196),
8118            Elements::IssuanceTokenAmountsHash => Cost::from_milliweight(138),
8119            Elements::IssuanceTokenProof => Cost::from_milliweight(150),
8120            Elements::IssuancesHash => Cost::from_milliweight(141),
8121            Elements::LbtcAsset => Cost::from_milliweight(145),
8122            Elements::Le16 => Cost::from_milliweight(112),
8123            Elements::Le32 => Cost::from_milliweight(93),
8124            Elements::Le64 => Cost::from_milliweight(93),
8125            Elements::Le8 => Cost::from_milliweight(109),
8126            Elements::LeftExtend16_32 => Cost::from_milliweight(86),
8127            Elements::LeftExtend16_64 => Cost::from_milliweight(89),
8128            Elements::LeftExtend1_16 => Cost::from_milliweight(67),
8129            Elements::LeftExtend1_32 => Cost::from_milliweight(60),
8130            Elements::LeftExtend1_64 => Cost::from_milliweight(76),
8131            Elements::LeftExtend1_8 => Cost::from_milliweight(65),
8132            Elements::LeftExtend32_64 => Cost::from_milliweight(63),
8133            Elements::LeftExtend8_16 => Cost::from_milliweight(88),
8134            Elements::LeftExtend8_32 => Cost::from_milliweight(90),
8135            Elements::LeftExtend8_64 => Cost::from_milliweight(107),
8136            Elements::LeftPadHigh16_32 => Cost::from_milliweight(91),
8137            Elements::LeftPadHigh16_64 => Cost::from_milliweight(110),
8138            Elements::LeftPadHigh1_16 => Cost::from_milliweight(141),
8139            Elements::LeftPadHigh1_32 => Cost::from_milliweight(263),
8140            Elements::LeftPadHigh1_64 => Cost::from_milliweight(422),
8141            Elements::LeftPadHigh1_8 => Cost::from_milliweight(99),
8142            Elements::LeftPadHigh32_64 => Cost::from_milliweight(93),
8143            Elements::LeftPadHigh8_16 => Cost::from_milliweight(88),
8144            Elements::LeftPadHigh8_32 => Cost::from_milliweight(103),
8145            Elements::LeftPadHigh8_64 => Cost::from_milliweight(136),
8146            Elements::LeftPadLow16_32 => Cost::from_milliweight(69),
8147            Elements::LeftPadLow16_64 => Cost::from_milliweight(106),
8148            Elements::LeftPadLow1_16 => Cost::from_milliweight(65),
8149            Elements::LeftPadLow1_32 => Cost::from_milliweight(63),
8150            Elements::LeftPadLow1_64 => Cost::from_milliweight(61),
8151            Elements::LeftPadLow1_8 => Cost::from_milliweight(56),
8152            Elements::LeftPadLow32_64 => Cost::from_milliweight(91),
8153            Elements::LeftPadLow8_16 => Cost::from_milliweight(66),
8154            Elements::LeftPadLow8_32 => Cost::from_milliweight(61),
8155            Elements::LeftPadLow8_64 => Cost::from_milliweight(112),
8156            Elements::LeftRotate16 => Cost::from_milliweight(77),
8157            Elements::LeftRotate32 => Cost::from_milliweight(106),
8158            Elements::LeftRotate64 => Cost::from_milliweight(98),
8159            Elements::LeftRotate8 => Cost::from_milliweight(88),
8160            Elements::LeftShift16 => Cost::from_milliweight(72),
8161            Elements::LeftShift32 => Cost::from_milliweight(78),
8162            Elements::LeftShift64 => Cost::from_milliweight(82),
8163            Elements::LeftShift8 => Cost::from_milliweight(91),
8164            Elements::LeftShiftWith16 => Cost::from_milliweight(83),
8165            Elements::LeftShiftWith32 => Cost::from_milliweight(95),
8166            Elements::LeftShiftWith64 => Cost::from_milliweight(103),
8167            Elements::LeftShiftWith8 => Cost::from_milliweight(107),
8168            Elements::Leftmost16_1 => Cost::from_milliweight(93),
8169            Elements::Leftmost16_2 => Cost::from_milliweight(90),
8170            Elements::Leftmost16_4 => Cost::from_milliweight(75),
8171            Elements::Leftmost16_8 => Cost::from_milliweight(71),
8172            Elements::Leftmost32_1 => Cost::from_milliweight(77),
8173            Elements::Leftmost32_16 => Cost::from_milliweight(102),
8174            Elements::Leftmost32_2 => Cost::from_milliweight(66),
8175            Elements::Leftmost32_4 => Cost::from_milliweight(52),
8176            Elements::Leftmost32_8 => Cost::from_milliweight(103),
8177            Elements::Leftmost64_1 => Cost::from_milliweight(78),
8178            Elements::Leftmost64_16 => Cost::from_milliweight(88),
8179            Elements::Leftmost64_2 => Cost::from_milliweight(71),
8180            Elements::Leftmost64_32 => Cost::from_milliweight(90),
8181            Elements::Leftmost64_4 => Cost::from_milliweight(79),
8182            Elements::Leftmost64_8 => Cost::from_milliweight(86),
8183            Elements::Leftmost8_1 => Cost::from_milliweight(90),
8184            Elements::Leftmost8_2 => Cost::from_milliweight(90),
8185            Elements::Leftmost8_4 => Cost::from_milliweight(87),
8186            Elements::LinearCombination1 => Cost::from_milliweight(84674),
8187            Elements::LinearVerify1 => Cost::from_milliweight(43364),
8188            Elements::LockTime => Cost::from_milliweight(85),
8189            Elements::Low1 => Cost::from_milliweight(38),
8190            Elements::Low16 => Cost::from_milliweight(69),
8191            Elements::Low32 => Cost::from_milliweight(62),
8192            Elements::Low64 => Cost::from_milliweight(47),
8193            Elements::Low8 => Cost::from_milliweight(47),
8194            Elements::Lt16 => Cost::from_milliweight(123),
8195            Elements::Lt32 => Cost::from_milliweight(107),
8196            Elements::Lt64 => Cost::from_milliweight(76),
8197            Elements::Lt8 => Cost::from_milliweight(107),
8198            Elements::Maj1 => Cost::from_milliweight(62),
8199            Elements::Maj16 => Cost::from_milliweight(80),
8200            Elements::Maj32 => Cost::from_milliweight(96),
8201            Elements::Maj64 => Cost::from_milliweight(93),
8202            Elements::Maj8 => Cost::from_milliweight(94),
8203            Elements::Max16 => Cost::from_milliweight(114),
8204            Elements::Max32 => Cost::from_milliweight(92),
8205            Elements::Max64 => Cost::from_milliweight(104),
8206            Elements::Max8 => Cost::from_milliweight(96),
8207            Elements::Median16 => Cost::from_milliweight(123),
8208            Elements::Median32 => Cost::from_milliweight(101),
8209            Elements::Median64 => Cost::from_milliweight(109),
8210            Elements::Median8 => Cost::from_milliweight(122),
8211            Elements::Min16 => Cost::from_milliweight(97),
8212            Elements::Min32 => Cost::from_milliweight(113),
8213            Elements::Min64 => Cost::from_milliweight(102),
8214            Elements::Min8 => Cost::from_milliweight(99),
8215            Elements::Modulo16 => Cost::from_milliweight(103),
8216            Elements::Modulo32 => Cost::from_milliweight(102),
8217            Elements::Modulo64 => Cost::from_milliweight(85),
8218            Elements::Modulo8 => Cost::from_milliweight(102),
8219            Elements::Multiply16 => Cost::from_milliweight(90),
8220            Elements::Multiply32 => Cost::from_milliweight(90),
8221            Elements::Multiply64 => Cost::from_milliweight(85),
8222            Elements::Multiply8 => Cost::from_milliweight(93),
8223            Elements::Negate16 => Cost::from_milliweight(70),
8224            Elements::Negate32 => Cost::from_milliweight(85),
8225            Elements::Negate64 => Cost::from_milliweight(94),
8226            Elements::Negate8 => Cost::from_milliweight(91),
8227            Elements::NewIssuanceContract => Cost::from_milliweight(157),
8228            Elements::NonceHash => Cost::from_milliweight(317),
8229            Elements::NumInputs => Cost::from_milliweight(86),
8230            Elements::NumOutputs => Cost::from_milliweight(79),
8231            Elements::One16 => Cost::from_milliweight(60),
8232            Elements::One32 => Cost::from_milliweight(59),
8233            Elements::One64 => Cost::from_milliweight(59),
8234            Elements::One8 => Cost::from_milliweight(62),
8235            Elements::Or1 => Cost::from_milliweight(77),
8236            Elements::Or16 => Cost::from_milliweight(94),
8237            Elements::Or32 => Cost::from_milliweight(105),
8238            Elements::Or64 => Cost::from_milliweight(99),
8239            Elements::Or8 => Cost::from_milliweight(93),
8240            Elements::OutpointHash => Cost::from_milliweight(319),
8241            Elements::OutputAmount => Cost::from_milliweight(298),
8242            Elements::OutputAmountsHash => Cost::from_milliweight(140),
8243            Elements::OutputAsset => Cost::from_milliweight(170),
8244            Elements::OutputHash => Cost::from_milliweight(2849),
8245            Elements::OutputIsFee => Cost::from_milliweight(92),
8246            Elements::OutputNonce => Cost::from_milliweight(196),
8247            Elements::OutputNoncesHash => Cost::from_milliweight(151),
8248            Elements::OutputNullDatum => Cost::from_milliweight(87),
8249            Elements::OutputRangeProof => Cost::from_milliweight(154),
8250            Elements::OutputRangeProofsHash => Cost::from_milliweight(136),
8251            Elements::OutputScriptHash => Cost::from_milliweight(151),
8252            Elements::OutputScriptsHash => Cost::from_milliweight(142),
8253            Elements::OutputSurjectionProof => Cost::from_milliweight(151),
8254            Elements::OutputSurjectionProofsHash => Cost::from_milliweight(138),
8255            Elements::OutputsHash => Cost::from_milliweight(135),
8256            Elements::ParseLock => Cost::from_milliweight(97),
8257            Elements::ParseSequence => Cost::from_milliweight(116),
8258            Elements::PointVerify1 => Cost::from_milliweight(41494),
8259            Elements::ReissuanceBlinding => Cost::from_milliweight(91),
8260            Elements::ReissuanceEntropy => Cost::from_milliweight(93),
8261            Elements::RightExtend16_32 => Cost::from_milliweight(74),
8262            Elements::RightExtend16_64 => Cost::from_milliweight(82),
8263            Elements::RightExtend32_64 => Cost::from_milliweight(94),
8264            Elements::RightExtend8_16 => Cost::from_milliweight(76),
8265            Elements::RightExtend8_32 => Cost::from_milliweight(106),
8266            Elements::RightExtend8_64 => Cost::from_milliweight(124),
8267            Elements::RightPadHigh16_32 => Cost::from_milliweight(70),
8268            Elements::RightPadHigh16_64 => Cost::from_milliweight(88),
8269            Elements::RightPadHigh1_16 => Cost::from_milliweight(143),
8270            Elements::RightPadHigh1_32 => Cost::from_milliweight(223),
8271            Elements::RightPadHigh1_64 => Cost::from_milliweight(476),
8272            Elements::RightPadHigh1_8 => Cost::from_milliweight(107),
8273            Elements::RightPadHigh32_64 => Cost::from_milliweight(94),
8274            Elements::RightPadHigh8_16 => Cost::from_milliweight(89),
8275            Elements::RightPadHigh8_32 => Cost::from_milliweight(110),
8276            Elements::RightPadHigh8_64 => Cost::from_milliweight(107),
8277            Elements::RightPadLow16_32 => Cost::from_milliweight(71),
8278            Elements::RightPadLow16_64 => Cost::from_milliweight(96),
8279            Elements::RightPadLow1_16 => Cost::from_milliweight(81),
8280            Elements::RightPadLow1_32 => Cost::from_milliweight(75),
8281            Elements::RightPadLow1_64 => Cost::from_milliweight(73),
8282            Elements::RightPadLow1_8 => Cost::from_milliweight(68),
8283            Elements::RightPadLow32_64 => Cost::from_milliweight(80),
8284            Elements::RightPadLow8_16 => Cost::from_milliweight(75),
8285            Elements::RightPadLow8_32 => Cost::from_milliweight(77),
8286            Elements::RightPadLow8_64 => Cost::from_milliweight(82),
8287            Elements::RightRotate16 => Cost::from_milliweight(99),
8288            Elements::RightRotate32 => Cost::from_milliweight(92),
8289            Elements::RightRotate64 => Cost::from_milliweight(93),
8290            Elements::RightRotate8 => Cost::from_milliweight(75),
8291            Elements::RightShift16 => Cost::from_milliweight(84),
8292            Elements::RightShift32 => Cost::from_milliweight(88),
8293            Elements::RightShift64 => Cost::from_milliweight(91),
8294            Elements::RightShift8 => Cost::from_milliweight(88),
8295            Elements::RightShiftWith16 => Cost::from_milliweight(105),
8296            Elements::RightShiftWith32 => Cost::from_milliweight(92),
8297            Elements::RightShiftWith64 => Cost::from_milliweight(97),
8298            Elements::RightShiftWith8 => Cost::from_milliweight(103),
8299            Elements::Rightmost16_1 => Cost::from_milliweight(70),
8300            Elements::Rightmost16_2 => Cost::from_milliweight(82),
8301            Elements::Rightmost16_4 => Cost::from_milliweight(76),
8302            Elements::Rightmost16_8 => Cost::from_milliweight(69),
8303            Elements::Rightmost32_1 => Cost::from_milliweight(90),
8304            Elements::Rightmost32_16 => Cost::from_milliweight(64),
8305            Elements::Rightmost32_2 => Cost::from_milliweight(74),
8306            Elements::Rightmost32_4 => Cost::from_milliweight(92),
8307            Elements::Rightmost32_8 => Cost::from_milliweight(78),
8308            Elements::Rightmost64_1 => Cost::from_milliweight(77),
8309            Elements::Rightmost64_16 => Cost::from_milliweight(86),
8310            Elements::Rightmost64_2 => Cost::from_milliweight(74),
8311            Elements::Rightmost64_32 => Cost::from_milliweight(76),
8312            Elements::Rightmost64_4 => Cost::from_milliweight(70),
8313            Elements::Rightmost64_8 => Cost::from_milliweight(69),
8314            Elements::Rightmost8_1 => Cost::from_milliweight(79),
8315            Elements::Rightmost8_2 => Cost::from_milliweight(98),
8316            Elements::Rightmost8_4 => Cost::from_milliweight(98),
8317            Elements::ScalarAdd => Cost::from_milliweight(739),
8318            Elements::ScalarInvert => Cost::from_milliweight(3193),
8319            Elements::ScalarIsZero => Cost::from_milliweight(271),
8320            Elements::ScalarMultiply => Cost::from_milliweight(774),
8321            Elements::ScalarMultiplyLambda => Cost::from_milliweight(557),
8322            Elements::ScalarNegate => Cost::from_milliweight(490),
8323            Elements::ScalarNormalize => Cost::from_milliweight(472),
8324            Elements::ScalarSquare => Cost::from_milliweight(575),
8325            Elements::Scale => Cost::from_milliweight(72675),
8326            Elements::ScriptCMR => Cost::from_milliweight(136),
8327            Elements::Sha256Block => Cost::from_milliweight(771),
8328            Elements::Sha256Ctx8Add1 => Cost::from_milliweight(642),
8329            Elements::Sha256Ctx8Add128 => Cost::from_milliweight(1779),
8330            Elements::Sha256Ctx8Add16 => Cost::from_milliweight(747),
8331            Elements::Sha256Ctx8Add2 => Cost::from_milliweight(661),
8332            Elements::Sha256Ctx8Add256 => Cost::from_milliweight(2912),
8333            Elements::Sha256Ctx8Add32 => Cost::from_milliweight(896),
8334            Elements::Sha256Ctx8Add4 => Cost::from_milliweight(645),
8335            Elements::Sha256Ctx8Add512 => Cost::from_milliweight(5299),
8336            Elements::Sha256Ctx8Add64 => Cost::from_milliweight(1187),
8337            Elements::Sha256Ctx8Add8 => Cost::from_milliweight(674),
8338            Elements::Sha256Ctx8AddBuffer511 => Cost::from_milliweight(5060),
8339            Elements::Sha256Ctx8Finalize => Cost::from_milliweight(835),
8340            Elements::Sha256Ctx8Init => Cost::from_milliweight(118),
8341            Elements::Sha256Iv => Cost::from_milliweight(93),
8342            Elements::SigAllHash => Cost::from_milliweight(133),
8343            Elements::Some1 => Cost::from_milliweight(70),
8344            Elements::Some16 => Cost::from_milliweight(63),
8345            Elements::Some32 => Cost::from_milliweight(64),
8346            Elements::Some64 => Cost::from_milliweight(93),
8347            Elements::Some8 => Cost::from_milliweight(75),
8348            Elements::Subtract16 => Cost::from_milliweight(113),
8349            Elements::Subtract32 => Cost::from_milliweight(118),
8350            Elements::Subtract64 => Cost::from_milliweight(115),
8351            Elements::Subtract8 => Cost::from_milliweight(109),
8352            Elements::Swu => Cost::from_milliweight(32120),
8353            Elements::TapEnvHash => Cost::from_milliweight(162),
8354            Elements::TapdataInit => Cost::from_milliweight(1178),
8355            Elements::TapleafHash => Cost::from_milliweight(136),
8356            Elements::TapleafVersion => Cost::from_milliweight(105),
8357            Elements::Tappath => Cost::from_milliweight(83),
8358            Elements::TappathHash => Cost::from_milliweight(143),
8359            Elements::TotalFee => Cost::from_milliweight(230),
8360            Elements::TransactionId => Cost::from_milliweight(139),
8361            Elements::TxHash => Cost::from_milliweight(143),
8362            Elements::TxIsFinal => Cost::from_milliweight(71),
8363            Elements::TxLockDistance => Cost::from_milliweight(91),
8364            Elements::TxLockDuration => Cost::from_milliweight(84),
8365            Elements::TxLockHeight => Cost::from_milliweight(80),
8366            Elements::TxLockTime => Cost::from_milliweight(80),
8367            Elements::Verify => Cost::from_milliweight(57),
8368            Elements::Version => Cost::from_milliweight(93),
8369            Elements::Xor1 => Cost::from_milliweight(67),
8370            Elements::Xor16 => Cost::from_milliweight(83),
8371            Elements::Xor32 => Cost::from_milliweight(92),
8372            Elements::Xor64 => Cost::from_milliweight(95),
8373            Elements::Xor8 => Cost::from_milliweight(85),
8374            Elements::XorXor1 => Cost::from_milliweight(72),
8375            Elements::XorXor16 => Cost::from_milliweight(79),
8376            Elements::XorXor32 => Cost::from_milliweight(96),
8377            Elements::XorXor64 => Cost::from_milliweight(93),
8378            Elements::XorXor8 => Cost::from_milliweight(98),
8379        }
8380    }
8381}
8382
8383impl fmt::Display for Elements {
8384    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8385        match self {
8386            Elements::Add16 => f.write_str("add_16"),
8387            Elements::Add32 => f.write_str("add_32"),
8388            Elements::Add64 => f.write_str("add_64"),
8389            Elements::Add8 => f.write_str("add_8"),
8390            Elements::All16 => f.write_str("all_16"),
8391            Elements::All32 => f.write_str("all_32"),
8392            Elements::All64 => f.write_str("all_64"),
8393            Elements::All8 => f.write_str("all_8"),
8394            Elements::And1 => f.write_str("and_1"),
8395            Elements::And16 => f.write_str("and_16"),
8396            Elements::And32 => f.write_str("and_32"),
8397            Elements::And64 => f.write_str("and_64"),
8398            Elements::And8 => f.write_str("and_8"),
8399            Elements::AnnexHash => f.write_str("annex_hash"),
8400            Elements::AssetAmountHash => f.write_str("asset_amount_hash"),
8401            Elements::Bip0340Verify => f.write_str("bip_0340_verify"),
8402            Elements::BuildTapbranch => f.write_str("build_tapbranch"),
8403            Elements::BuildTapleafSimplicity => f.write_str("build_tapleaf_simplicity"),
8404            Elements::BuildTaptweak => f.write_str("build_taptweak"),
8405            Elements::CalculateAsset => f.write_str("calculate_asset"),
8406            Elements::CalculateConfidentialToken => f.write_str("calculate_confidential_token"),
8407            Elements::CalculateExplicitToken => f.write_str("calculate_explicit_token"),
8408            Elements::CalculateIssuanceEntropy => f.write_str("calculate_issuance_entropy"),
8409            Elements::Ch1 => f.write_str("ch_1"),
8410            Elements::Ch16 => f.write_str("ch_16"),
8411            Elements::Ch32 => f.write_str("ch_32"),
8412            Elements::Ch64 => f.write_str("ch_64"),
8413            Elements::Ch8 => f.write_str("ch_8"),
8414            Elements::CheckLockDistance => f.write_str("check_lock_distance"),
8415            Elements::CheckLockDuration => f.write_str("check_lock_duration"),
8416            Elements::CheckLockHeight => f.write_str("check_lock_height"),
8417            Elements::CheckLockTime => f.write_str("check_lock_time"),
8418            Elements::CheckSigVerify => f.write_str("check_sig_verify"),
8419            Elements::Complement1 => f.write_str("complement_1"),
8420            Elements::Complement16 => f.write_str("complement_16"),
8421            Elements::Complement32 => f.write_str("complement_32"),
8422            Elements::Complement64 => f.write_str("complement_64"),
8423            Elements::Complement8 => f.write_str("complement_8"),
8424            Elements::CurrentAmount => f.write_str("current_amount"),
8425            Elements::CurrentAnnexHash => f.write_str("current_annex_hash"),
8426            Elements::CurrentAsset => f.write_str("current_asset"),
8427            Elements::CurrentIndex => f.write_str("current_index"),
8428            Elements::CurrentIssuanceAssetAmount => f.write_str("current_issuance_asset_amount"),
8429            Elements::CurrentIssuanceAssetProof => f.write_str("current_issuance_asset_proof"),
8430            Elements::CurrentIssuanceTokenAmount => f.write_str("current_issuance_token_amount"),
8431            Elements::CurrentIssuanceTokenProof => f.write_str("current_issuance_token_proof"),
8432            Elements::CurrentNewIssuanceContract => f.write_str("current_new_issuance_contract"),
8433            Elements::CurrentPegin => f.write_str("current_pegin"),
8434            Elements::CurrentPrevOutpoint => f.write_str("current_prev_outpoint"),
8435            Elements::CurrentReissuanceBlinding => f.write_str("current_reissuance_blinding"),
8436            Elements::CurrentReissuanceEntropy => f.write_str("current_reissuance_entropy"),
8437            Elements::CurrentScriptHash => f.write_str("current_script_hash"),
8438            Elements::CurrentScriptSigHash => f.write_str("current_script_sig_hash"),
8439            Elements::CurrentSequence => f.write_str("current_sequence"),
8440            Elements::Decompress => f.write_str("decompress"),
8441            Elements::Decrement16 => f.write_str("decrement_16"),
8442            Elements::Decrement32 => f.write_str("decrement_32"),
8443            Elements::Decrement64 => f.write_str("decrement_64"),
8444            Elements::Decrement8 => f.write_str("decrement_8"),
8445            Elements::DivMod128_64 => f.write_str("div_mod_128_64"),
8446            Elements::DivMod16 => f.write_str("div_mod_16"),
8447            Elements::DivMod32 => f.write_str("div_mod_32"),
8448            Elements::DivMod64 => f.write_str("div_mod_64"),
8449            Elements::DivMod8 => f.write_str("div_mod_8"),
8450            Elements::Divide16 => f.write_str("divide_16"),
8451            Elements::Divide32 => f.write_str("divide_32"),
8452            Elements::Divide64 => f.write_str("divide_64"),
8453            Elements::Divide8 => f.write_str("divide_8"),
8454            Elements::Divides16 => f.write_str("divides_16"),
8455            Elements::Divides32 => f.write_str("divides_32"),
8456            Elements::Divides64 => f.write_str("divides_64"),
8457            Elements::Divides8 => f.write_str("divides_8"),
8458            Elements::Eq1 => f.write_str("eq_1"),
8459            Elements::Eq16 => f.write_str("eq_16"),
8460            Elements::Eq256 => f.write_str("eq_256"),
8461            Elements::Eq32 => f.write_str("eq_32"),
8462            Elements::Eq64 => f.write_str("eq_64"),
8463            Elements::Eq8 => f.write_str("eq_8"),
8464            Elements::FeAdd => f.write_str("fe_add"),
8465            Elements::FeInvert => f.write_str("fe_invert"),
8466            Elements::FeIsOdd => f.write_str("fe_is_odd"),
8467            Elements::FeIsZero => f.write_str("fe_is_zero"),
8468            Elements::FeMultiply => f.write_str("fe_multiply"),
8469            Elements::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
8470            Elements::FeNegate => f.write_str("fe_negate"),
8471            Elements::FeNormalize => f.write_str("fe_normalize"),
8472            Elements::FeSquare => f.write_str("fe_square"),
8473            Elements::FeSquareRoot => f.write_str("fe_square_root"),
8474            Elements::FullAdd16 => f.write_str("full_add_16"),
8475            Elements::FullAdd32 => f.write_str("full_add_32"),
8476            Elements::FullAdd64 => f.write_str("full_add_64"),
8477            Elements::FullAdd8 => f.write_str("full_add_8"),
8478            Elements::FullDecrement16 => f.write_str("full_decrement_16"),
8479            Elements::FullDecrement32 => f.write_str("full_decrement_32"),
8480            Elements::FullDecrement64 => f.write_str("full_decrement_64"),
8481            Elements::FullDecrement8 => f.write_str("full_decrement_8"),
8482            Elements::FullIncrement16 => f.write_str("full_increment_16"),
8483            Elements::FullIncrement32 => f.write_str("full_increment_32"),
8484            Elements::FullIncrement64 => f.write_str("full_increment_64"),
8485            Elements::FullIncrement8 => f.write_str("full_increment_8"),
8486            Elements::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
8487            Elements::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
8488            Elements::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
8489            Elements::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
8490            Elements::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
8491            Elements::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
8492            Elements::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
8493            Elements::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
8494            Elements::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
8495            Elements::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
8496            Elements::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
8497            Elements::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
8498            Elements::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
8499            Elements::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
8500            Elements::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
8501            Elements::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
8502            Elements::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
8503            Elements::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
8504            Elements::FullMultiply16 => f.write_str("full_multiply_16"),
8505            Elements::FullMultiply32 => f.write_str("full_multiply_32"),
8506            Elements::FullMultiply64 => f.write_str("full_multiply_64"),
8507            Elements::FullMultiply8 => f.write_str("full_multiply_8"),
8508            Elements::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
8509            Elements::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
8510            Elements::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
8511            Elements::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
8512            Elements::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
8513            Elements::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
8514            Elements::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
8515            Elements::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
8516            Elements::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
8517            Elements::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
8518            Elements::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
8519            Elements::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
8520            Elements::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
8521            Elements::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
8522            Elements::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
8523            Elements::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
8524            Elements::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
8525            Elements::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
8526            Elements::FullSubtract16 => f.write_str("full_subtract_16"),
8527            Elements::FullSubtract32 => f.write_str("full_subtract_32"),
8528            Elements::FullSubtract64 => f.write_str("full_subtract_64"),
8529            Elements::FullSubtract8 => f.write_str("full_subtract_8"),
8530            Elements::GeIsOnCurve => f.write_str("ge_is_on_curve"),
8531            Elements::GeNegate => f.write_str("ge_negate"),
8532            Elements::GejAdd => f.write_str("gej_add"),
8533            Elements::GejDouble => f.write_str("gej_double"),
8534            Elements::GejEquiv => f.write_str("gej_equiv"),
8535            Elements::GejGeAdd => f.write_str("gej_ge_add"),
8536            Elements::GejGeAddEx => f.write_str("gej_ge_add_ex"),
8537            Elements::GejGeEquiv => f.write_str("gej_ge_equiv"),
8538            Elements::GejInfinity => f.write_str("gej_infinity"),
8539            Elements::GejIsInfinity => f.write_str("gej_is_infinity"),
8540            Elements::GejIsOnCurve => f.write_str("gej_is_on_curve"),
8541            Elements::GejNegate => f.write_str("gej_negate"),
8542            Elements::GejNormalize => f.write_str("gej_normalize"),
8543            Elements::GejRescale => f.write_str("gej_rescale"),
8544            Elements::GejXEquiv => f.write_str("gej_x_equiv"),
8545            Elements::GejYIsOdd => f.write_str("gej_y_is_odd"),
8546            Elements::Generate => f.write_str("generate"),
8547            Elements::GenesisBlockHash => f.write_str("genesis_block_hash"),
8548            Elements::HashToCurve => f.write_str("hash_to_curve"),
8549            Elements::High1 => f.write_str("high_1"),
8550            Elements::High16 => f.write_str("high_16"),
8551            Elements::High32 => f.write_str("high_32"),
8552            Elements::High64 => f.write_str("high_64"),
8553            Elements::High8 => f.write_str("high_8"),
8554            Elements::Increment16 => f.write_str("increment_16"),
8555            Elements::Increment32 => f.write_str("increment_32"),
8556            Elements::Increment64 => f.write_str("increment_64"),
8557            Elements::Increment8 => f.write_str("increment_8"),
8558            Elements::InputAmount => f.write_str("input_amount"),
8559            Elements::InputAmountsHash => f.write_str("input_amounts_hash"),
8560            Elements::InputAnnexHash => f.write_str("input_annex_hash"),
8561            Elements::InputAnnexesHash => f.write_str("input_annexes_hash"),
8562            Elements::InputAsset => f.write_str("input_asset"),
8563            Elements::InputHash => f.write_str("input_hash"),
8564            Elements::InputOutpointsHash => f.write_str("input_outpoints_hash"),
8565            Elements::InputPegin => f.write_str("input_pegin"),
8566            Elements::InputPrevOutpoint => f.write_str("input_prev_outpoint"),
8567            Elements::InputScriptHash => f.write_str("input_script_hash"),
8568            Elements::InputScriptSigHash => f.write_str("input_script_sig_hash"),
8569            Elements::InputScriptSigsHash => f.write_str("input_script_sigs_hash"),
8570            Elements::InputScriptsHash => f.write_str("input_scripts_hash"),
8571            Elements::InputSequence => f.write_str("input_sequence"),
8572            Elements::InputSequencesHash => f.write_str("input_sequences_hash"),
8573            Elements::InputUtxoHash => f.write_str("input_utxo_hash"),
8574            Elements::InputUtxosHash => f.write_str("input_utxos_hash"),
8575            Elements::InputsHash => f.write_str("inputs_hash"),
8576            Elements::InternalKey => f.write_str("internal_key"),
8577            Elements::IsOne16 => f.write_str("is_one_16"),
8578            Elements::IsOne32 => f.write_str("is_one_32"),
8579            Elements::IsOne64 => f.write_str("is_one_64"),
8580            Elements::IsOne8 => f.write_str("is_one_8"),
8581            Elements::IsZero16 => f.write_str("is_zero_16"),
8582            Elements::IsZero32 => f.write_str("is_zero_32"),
8583            Elements::IsZero64 => f.write_str("is_zero_64"),
8584            Elements::IsZero8 => f.write_str("is_zero_8"),
8585            Elements::Issuance => f.write_str("issuance"),
8586            Elements::IssuanceAsset => f.write_str("issuance_asset"),
8587            Elements::IssuanceAssetAmount => f.write_str("issuance_asset_amount"),
8588            Elements::IssuanceAssetAmountsHash => f.write_str("issuance_asset_amounts_hash"),
8589            Elements::IssuanceAssetProof => f.write_str("issuance_asset_proof"),
8590            Elements::IssuanceBlindingEntropyHash => f.write_str("issuance_blinding_entropy_hash"),
8591            Elements::IssuanceEntropy => f.write_str("issuance_entropy"),
8592            Elements::IssuanceHash => f.write_str("issuance_hash"),
8593            Elements::IssuanceRangeProofsHash => f.write_str("issuance_range_proofs_hash"),
8594            Elements::IssuanceToken => f.write_str("issuance_token"),
8595            Elements::IssuanceTokenAmount => f.write_str("issuance_token_amount"),
8596            Elements::IssuanceTokenAmountsHash => f.write_str("issuance_token_amounts_hash"),
8597            Elements::IssuanceTokenProof => f.write_str("issuance_token_proof"),
8598            Elements::IssuancesHash => f.write_str("issuances_hash"),
8599            Elements::LbtcAsset => f.write_str("lbtc_asset"),
8600            Elements::Le16 => f.write_str("le_16"),
8601            Elements::Le32 => f.write_str("le_32"),
8602            Elements::Le64 => f.write_str("le_64"),
8603            Elements::Le8 => f.write_str("le_8"),
8604            Elements::LeftExtend16_32 => f.write_str("left_extend_16_32"),
8605            Elements::LeftExtend16_64 => f.write_str("left_extend_16_64"),
8606            Elements::LeftExtend1_16 => f.write_str("left_extend_1_16"),
8607            Elements::LeftExtend1_32 => f.write_str("left_extend_1_32"),
8608            Elements::LeftExtend1_64 => f.write_str("left_extend_1_64"),
8609            Elements::LeftExtend1_8 => f.write_str("left_extend_1_8"),
8610            Elements::LeftExtend32_64 => f.write_str("left_extend_32_64"),
8611            Elements::LeftExtend8_16 => f.write_str("left_extend_8_16"),
8612            Elements::LeftExtend8_32 => f.write_str("left_extend_8_32"),
8613            Elements::LeftExtend8_64 => f.write_str("left_extend_8_64"),
8614            Elements::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
8615            Elements::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
8616            Elements::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
8617            Elements::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
8618            Elements::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
8619            Elements::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
8620            Elements::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
8621            Elements::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
8622            Elements::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
8623            Elements::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
8624            Elements::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
8625            Elements::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
8626            Elements::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
8627            Elements::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
8628            Elements::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
8629            Elements::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
8630            Elements::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
8631            Elements::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
8632            Elements::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
8633            Elements::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
8634            Elements::LeftRotate16 => f.write_str("left_rotate_16"),
8635            Elements::LeftRotate32 => f.write_str("left_rotate_32"),
8636            Elements::LeftRotate64 => f.write_str("left_rotate_64"),
8637            Elements::LeftRotate8 => f.write_str("left_rotate_8"),
8638            Elements::LeftShift16 => f.write_str("left_shift_16"),
8639            Elements::LeftShift32 => f.write_str("left_shift_32"),
8640            Elements::LeftShift64 => f.write_str("left_shift_64"),
8641            Elements::LeftShift8 => f.write_str("left_shift_8"),
8642            Elements::LeftShiftWith16 => f.write_str("left_shift_with_16"),
8643            Elements::LeftShiftWith32 => f.write_str("left_shift_with_32"),
8644            Elements::LeftShiftWith64 => f.write_str("left_shift_with_64"),
8645            Elements::LeftShiftWith8 => f.write_str("left_shift_with_8"),
8646            Elements::Leftmost16_1 => f.write_str("leftmost_16_1"),
8647            Elements::Leftmost16_2 => f.write_str("leftmost_16_2"),
8648            Elements::Leftmost16_4 => f.write_str("leftmost_16_4"),
8649            Elements::Leftmost16_8 => f.write_str("leftmost_16_8"),
8650            Elements::Leftmost32_1 => f.write_str("leftmost_32_1"),
8651            Elements::Leftmost32_16 => f.write_str("leftmost_32_16"),
8652            Elements::Leftmost32_2 => f.write_str("leftmost_32_2"),
8653            Elements::Leftmost32_4 => f.write_str("leftmost_32_4"),
8654            Elements::Leftmost32_8 => f.write_str("leftmost_32_8"),
8655            Elements::Leftmost64_1 => f.write_str("leftmost_64_1"),
8656            Elements::Leftmost64_16 => f.write_str("leftmost_64_16"),
8657            Elements::Leftmost64_2 => f.write_str("leftmost_64_2"),
8658            Elements::Leftmost64_32 => f.write_str("leftmost_64_32"),
8659            Elements::Leftmost64_4 => f.write_str("leftmost_64_4"),
8660            Elements::Leftmost64_8 => f.write_str("leftmost_64_8"),
8661            Elements::Leftmost8_1 => f.write_str("leftmost_8_1"),
8662            Elements::Leftmost8_2 => f.write_str("leftmost_8_2"),
8663            Elements::Leftmost8_4 => f.write_str("leftmost_8_4"),
8664            Elements::LinearCombination1 => f.write_str("linear_combination_1"),
8665            Elements::LinearVerify1 => f.write_str("linear_verify_1"),
8666            Elements::LockTime => f.write_str("lock_time"),
8667            Elements::Low1 => f.write_str("low_1"),
8668            Elements::Low16 => f.write_str("low_16"),
8669            Elements::Low32 => f.write_str("low_32"),
8670            Elements::Low64 => f.write_str("low_64"),
8671            Elements::Low8 => f.write_str("low_8"),
8672            Elements::Lt16 => f.write_str("lt_16"),
8673            Elements::Lt32 => f.write_str("lt_32"),
8674            Elements::Lt64 => f.write_str("lt_64"),
8675            Elements::Lt8 => f.write_str("lt_8"),
8676            Elements::Maj1 => f.write_str("maj_1"),
8677            Elements::Maj16 => f.write_str("maj_16"),
8678            Elements::Maj32 => f.write_str("maj_32"),
8679            Elements::Maj64 => f.write_str("maj_64"),
8680            Elements::Maj8 => f.write_str("maj_8"),
8681            Elements::Max16 => f.write_str("max_16"),
8682            Elements::Max32 => f.write_str("max_32"),
8683            Elements::Max64 => f.write_str("max_64"),
8684            Elements::Max8 => f.write_str("max_8"),
8685            Elements::Median16 => f.write_str("median_16"),
8686            Elements::Median32 => f.write_str("median_32"),
8687            Elements::Median64 => f.write_str("median_64"),
8688            Elements::Median8 => f.write_str("median_8"),
8689            Elements::Min16 => f.write_str("min_16"),
8690            Elements::Min32 => f.write_str("min_32"),
8691            Elements::Min64 => f.write_str("min_64"),
8692            Elements::Min8 => f.write_str("min_8"),
8693            Elements::Modulo16 => f.write_str("modulo_16"),
8694            Elements::Modulo32 => f.write_str("modulo_32"),
8695            Elements::Modulo64 => f.write_str("modulo_64"),
8696            Elements::Modulo8 => f.write_str("modulo_8"),
8697            Elements::Multiply16 => f.write_str("multiply_16"),
8698            Elements::Multiply32 => f.write_str("multiply_32"),
8699            Elements::Multiply64 => f.write_str("multiply_64"),
8700            Elements::Multiply8 => f.write_str("multiply_8"),
8701            Elements::Negate16 => f.write_str("negate_16"),
8702            Elements::Negate32 => f.write_str("negate_32"),
8703            Elements::Negate64 => f.write_str("negate_64"),
8704            Elements::Negate8 => f.write_str("negate_8"),
8705            Elements::NewIssuanceContract => f.write_str("new_issuance_contract"),
8706            Elements::NonceHash => f.write_str("nonce_hash"),
8707            Elements::NumInputs => f.write_str("num_inputs"),
8708            Elements::NumOutputs => f.write_str("num_outputs"),
8709            Elements::One16 => f.write_str("one_16"),
8710            Elements::One32 => f.write_str("one_32"),
8711            Elements::One64 => f.write_str("one_64"),
8712            Elements::One8 => f.write_str("one_8"),
8713            Elements::Or1 => f.write_str("or_1"),
8714            Elements::Or16 => f.write_str("or_16"),
8715            Elements::Or32 => f.write_str("or_32"),
8716            Elements::Or64 => f.write_str("or_64"),
8717            Elements::Or8 => f.write_str("or_8"),
8718            Elements::OutpointHash => f.write_str("outpoint_hash"),
8719            Elements::OutputAmount => f.write_str("output_amount"),
8720            Elements::OutputAmountsHash => f.write_str("output_amounts_hash"),
8721            Elements::OutputAsset => f.write_str("output_asset"),
8722            Elements::OutputHash => f.write_str("output_hash"),
8723            Elements::OutputIsFee => f.write_str("output_is_fee"),
8724            Elements::OutputNonce => f.write_str("output_nonce"),
8725            Elements::OutputNoncesHash => f.write_str("output_nonces_hash"),
8726            Elements::OutputNullDatum => f.write_str("output_null_datum"),
8727            Elements::OutputRangeProof => f.write_str("output_range_proof"),
8728            Elements::OutputRangeProofsHash => f.write_str("output_range_proofs_hash"),
8729            Elements::OutputScriptHash => f.write_str("output_script_hash"),
8730            Elements::OutputScriptsHash => f.write_str("output_scripts_hash"),
8731            Elements::OutputSurjectionProof => f.write_str("output_surjection_proof"),
8732            Elements::OutputSurjectionProofsHash => f.write_str("output_surjection_proofs_hash"),
8733            Elements::OutputsHash => f.write_str("outputs_hash"),
8734            Elements::ParseLock => f.write_str("parse_lock"),
8735            Elements::ParseSequence => f.write_str("parse_sequence"),
8736            Elements::PointVerify1 => f.write_str("point_verify_1"),
8737            Elements::ReissuanceBlinding => f.write_str("reissuance_blinding"),
8738            Elements::ReissuanceEntropy => f.write_str("reissuance_entropy"),
8739            Elements::RightExtend16_32 => f.write_str("right_extend_16_32"),
8740            Elements::RightExtend16_64 => f.write_str("right_extend_16_64"),
8741            Elements::RightExtend32_64 => f.write_str("right_extend_32_64"),
8742            Elements::RightExtend8_16 => f.write_str("right_extend_8_16"),
8743            Elements::RightExtend8_32 => f.write_str("right_extend_8_32"),
8744            Elements::RightExtend8_64 => f.write_str("right_extend_8_64"),
8745            Elements::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
8746            Elements::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
8747            Elements::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
8748            Elements::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
8749            Elements::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
8750            Elements::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
8751            Elements::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
8752            Elements::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
8753            Elements::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
8754            Elements::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
8755            Elements::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
8756            Elements::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
8757            Elements::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
8758            Elements::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
8759            Elements::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
8760            Elements::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
8761            Elements::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
8762            Elements::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
8763            Elements::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
8764            Elements::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
8765            Elements::RightRotate16 => f.write_str("right_rotate_16"),
8766            Elements::RightRotate32 => f.write_str("right_rotate_32"),
8767            Elements::RightRotate64 => f.write_str("right_rotate_64"),
8768            Elements::RightRotate8 => f.write_str("right_rotate_8"),
8769            Elements::RightShift16 => f.write_str("right_shift_16"),
8770            Elements::RightShift32 => f.write_str("right_shift_32"),
8771            Elements::RightShift64 => f.write_str("right_shift_64"),
8772            Elements::RightShift8 => f.write_str("right_shift_8"),
8773            Elements::RightShiftWith16 => f.write_str("right_shift_with_16"),
8774            Elements::RightShiftWith32 => f.write_str("right_shift_with_32"),
8775            Elements::RightShiftWith64 => f.write_str("right_shift_with_64"),
8776            Elements::RightShiftWith8 => f.write_str("right_shift_with_8"),
8777            Elements::Rightmost16_1 => f.write_str("rightmost_16_1"),
8778            Elements::Rightmost16_2 => f.write_str("rightmost_16_2"),
8779            Elements::Rightmost16_4 => f.write_str("rightmost_16_4"),
8780            Elements::Rightmost16_8 => f.write_str("rightmost_16_8"),
8781            Elements::Rightmost32_1 => f.write_str("rightmost_32_1"),
8782            Elements::Rightmost32_16 => f.write_str("rightmost_32_16"),
8783            Elements::Rightmost32_2 => f.write_str("rightmost_32_2"),
8784            Elements::Rightmost32_4 => f.write_str("rightmost_32_4"),
8785            Elements::Rightmost32_8 => f.write_str("rightmost_32_8"),
8786            Elements::Rightmost64_1 => f.write_str("rightmost_64_1"),
8787            Elements::Rightmost64_16 => f.write_str("rightmost_64_16"),
8788            Elements::Rightmost64_2 => f.write_str("rightmost_64_2"),
8789            Elements::Rightmost64_32 => f.write_str("rightmost_64_32"),
8790            Elements::Rightmost64_4 => f.write_str("rightmost_64_4"),
8791            Elements::Rightmost64_8 => f.write_str("rightmost_64_8"),
8792            Elements::Rightmost8_1 => f.write_str("rightmost_8_1"),
8793            Elements::Rightmost8_2 => f.write_str("rightmost_8_2"),
8794            Elements::Rightmost8_4 => f.write_str("rightmost_8_4"),
8795            Elements::ScalarAdd => f.write_str("scalar_add"),
8796            Elements::ScalarInvert => f.write_str("scalar_invert"),
8797            Elements::ScalarIsZero => f.write_str("scalar_is_zero"),
8798            Elements::ScalarMultiply => f.write_str("scalar_multiply"),
8799            Elements::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
8800            Elements::ScalarNegate => f.write_str("scalar_negate"),
8801            Elements::ScalarNormalize => f.write_str("scalar_normalize"),
8802            Elements::ScalarSquare => f.write_str("scalar_square"),
8803            Elements::Scale => f.write_str("scale"),
8804            Elements::ScriptCMR => f.write_str("script_cmr"),
8805            Elements::Sha256Block => f.write_str("sha_256_block"),
8806            Elements::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
8807            Elements::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
8808            Elements::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
8809            Elements::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
8810            Elements::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
8811            Elements::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
8812            Elements::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
8813            Elements::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
8814            Elements::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
8815            Elements::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
8816            Elements::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
8817            Elements::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
8818            Elements::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
8819            Elements::Sha256Iv => f.write_str("sha_256_iv"),
8820            Elements::SigAllHash => f.write_str("sig_all_hash"),
8821            Elements::Some1 => f.write_str("some_1"),
8822            Elements::Some16 => f.write_str("some_16"),
8823            Elements::Some32 => f.write_str("some_32"),
8824            Elements::Some64 => f.write_str("some_64"),
8825            Elements::Some8 => f.write_str("some_8"),
8826            Elements::Subtract16 => f.write_str("subtract_16"),
8827            Elements::Subtract32 => f.write_str("subtract_32"),
8828            Elements::Subtract64 => f.write_str("subtract_64"),
8829            Elements::Subtract8 => f.write_str("subtract_8"),
8830            Elements::Swu => f.write_str("swu"),
8831            Elements::TapEnvHash => f.write_str("tap_env_hash"),
8832            Elements::TapdataInit => f.write_str("tapdata_init"),
8833            Elements::TapleafHash => f.write_str("tapleaf_hash"),
8834            Elements::TapleafVersion => f.write_str("tapleaf_version"),
8835            Elements::Tappath => f.write_str("tappath"),
8836            Elements::TappathHash => f.write_str("tappath_hash"),
8837            Elements::TotalFee => f.write_str("total_fee"),
8838            Elements::TransactionId => f.write_str("transaction_id"),
8839            Elements::TxHash => f.write_str("tx_hash"),
8840            Elements::TxIsFinal => f.write_str("tx_is_final"),
8841            Elements::TxLockDistance => f.write_str("tx_lock_distance"),
8842            Elements::TxLockDuration => f.write_str("tx_lock_duration"),
8843            Elements::TxLockHeight => f.write_str("tx_lock_height"),
8844            Elements::TxLockTime => f.write_str("tx_lock_time"),
8845            Elements::Verify => f.write_str("verify"),
8846            Elements::Version => f.write_str("version"),
8847            Elements::Xor1 => f.write_str("xor_1"),
8848            Elements::Xor16 => f.write_str("xor_16"),
8849            Elements::Xor32 => f.write_str("xor_32"),
8850            Elements::Xor64 => f.write_str("xor_64"),
8851            Elements::Xor8 => f.write_str("xor_8"),
8852            Elements::XorXor1 => f.write_str("xor_xor_1"),
8853            Elements::XorXor16 => f.write_str("xor_xor_16"),
8854            Elements::XorXor32 => f.write_str("xor_xor_32"),
8855            Elements::XorXor64 => f.write_str("xor_xor_64"),
8856            Elements::XorXor8 => f.write_str("xor_xor_8"),
8857        }
8858    }
8859}
8860
8861impl str::FromStr for Elements {
8862    type Err = crate::Error;
8863
8864    fn from_str(s: &str) -> Result<Self, Self::Err> {
8865        match s {
8866            "add_16" => Ok(Elements::Add16),
8867            "add_32" => Ok(Elements::Add32),
8868            "add_64" => Ok(Elements::Add64),
8869            "add_8" => Ok(Elements::Add8),
8870            "all_16" => Ok(Elements::All16),
8871            "all_32" => Ok(Elements::All32),
8872            "all_64" => Ok(Elements::All64),
8873            "all_8" => Ok(Elements::All8),
8874            "and_1" => Ok(Elements::And1),
8875            "and_16" => Ok(Elements::And16),
8876            "and_32" => Ok(Elements::And32),
8877            "and_64" => Ok(Elements::And64),
8878            "and_8" => Ok(Elements::And8),
8879            "annex_hash" => Ok(Elements::AnnexHash),
8880            "asset_amount_hash" => Ok(Elements::AssetAmountHash),
8881            "bip_0340_verify" => Ok(Elements::Bip0340Verify),
8882            "build_tapbranch" => Ok(Elements::BuildTapbranch),
8883            "build_tapleaf_simplicity" => Ok(Elements::BuildTapleafSimplicity),
8884            "build_taptweak" => Ok(Elements::BuildTaptweak),
8885            "calculate_asset" => Ok(Elements::CalculateAsset),
8886            "calculate_confidential_token" => Ok(Elements::CalculateConfidentialToken),
8887            "calculate_explicit_token" => Ok(Elements::CalculateExplicitToken),
8888            "calculate_issuance_entropy" => Ok(Elements::CalculateIssuanceEntropy),
8889            "ch_1" => Ok(Elements::Ch1),
8890            "ch_16" => Ok(Elements::Ch16),
8891            "ch_32" => Ok(Elements::Ch32),
8892            "ch_64" => Ok(Elements::Ch64),
8893            "ch_8" => Ok(Elements::Ch8),
8894            "check_lock_distance" => Ok(Elements::CheckLockDistance),
8895            "check_lock_duration" => Ok(Elements::CheckLockDuration),
8896            "check_lock_height" => Ok(Elements::CheckLockHeight),
8897            "check_lock_time" => Ok(Elements::CheckLockTime),
8898            "check_sig_verify" => Ok(Elements::CheckSigVerify),
8899            "complement_1" => Ok(Elements::Complement1),
8900            "complement_16" => Ok(Elements::Complement16),
8901            "complement_32" => Ok(Elements::Complement32),
8902            "complement_64" => Ok(Elements::Complement64),
8903            "complement_8" => Ok(Elements::Complement8),
8904            "current_amount" => Ok(Elements::CurrentAmount),
8905            "current_annex_hash" => Ok(Elements::CurrentAnnexHash),
8906            "current_asset" => Ok(Elements::CurrentAsset),
8907            "current_index" => Ok(Elements::CurrentIndex),
8908            "current_issuance_asset_amount" => Ok(Elements::CurrentIssuanceAssetAmount),
8909            "current_issuance_asset_proof" => Ok(Elements::CurrentIssuanceAssetProof),
8910            "current_issuance_token_amount" => Ok(Elements::CurrentIssuanceTokenAmount),
8911            "current_issuance_token_proof" => Ok(Elements::CurrentIssuanceTokenProof),
8912            "current_new_issuance_contract" => Ok(Elements::CurrentNewIssuanceContract),
8913            "current_pegin" => Ok(Elements::CurrentPegin),
8914            "current_prev_outpoint" => Ok(Elements::CurrentPrevOutpoint),
8915            "current_reissuance_blinding" => Ok(Elements::CurrentReissuanceBlinding),
8916            "current_reissuance_entropy" => Ok(Elements::CurrentReissuanceEntropy),
8917            "current_script_hash" => Ok(Elements::CurrentScriptHash),
8918            "current_script_sig_hash" => Ok(Elements::CurrentScriptSigHash),
8919            "current_sequence" => Ok(Elements::CurrentSequence),
8920            "decompress" => Ok(Elements::Decompress),
8921            "decrement_16" => Ok(Elements::Decrement16),
8922            "decrement_32" => Ok(Elements::Decrement32),
8923            "decrement_64" => Ok(Elements::Decrement64),
8924            "decrement_8" => Ok(Elements::Decrement8),
8925            "div_mod_128_64" => Ok(Elements::DivMod128_64),
8926            "div_mod_16" => Ok(Elements::DivMod16),
8927            "div_mod_32" => Ok(Elements::DivMod32),
8928            "div_mod_64" => Ok(Elements::DivMod64),
8929            "div_mod_8" => Ok(Elements::DivMod8),
8930            "divide_16" => Ok(Elements::Divide16),
8931            "divide_32" => Ok(Elements::Divide32),
8932            "divide_64" => Ok(Elements::Divide64),
8933            "divide_8" => Ok(Elements::Divide8),
8934            "divides_16" => Ok(Elements::Divides16),
8935            "divides_32" => Ok(Elements::Divides32),
8936            "divides_64" => Ok(Elements::Divides64),
8937            "divides_8" => Ok(Elements::Divides8),
8938            "eq_1" => Ok(Elements::Eq1),
8939            "eq_16" => Ok(Elements::Eq16),
8940            "eq_256" => Ok(Elements::Eq256),
8941            "eq_32" => Ok(Elements::Eq32),
8942            "eq_64" => Ok(Elements::Eq64),
8943            "eq_8" => Ok(Elements::Eq8),
8944            "fe_add" => Ok(Elements::FeAdd),
8945            "fe_invert" => Ok(Elements::FeInvert),
8946            "fe_is_odd" => Ok(Elements::FeIsOdd),
8947            "fe_is_zero" => Ok(Elements::FeIsZero),
8948            "fe_multiply" => Ok(Elements::FeMultiply),
8949            "fe_multiply_beta" => Ok(Elements::FeMultiplyBeta),
8950            "fe_negate" => Ok(Elements::FeNegate),
8951            "fe_normalize" => Ok(Elements::FeNormalize),
8952            "fe_square" => Ok(Elements::FeSquare),
8953            "fe_square_root" => Ok(Elements::FeSquareRoot),
8954            "full_add_16" => Ok(Elements::FullAdd16),
8955            "full_add_32" => Ok(Elements::FullAdd32),
8956            "full_add_64" => Ok(Elements::FullAdd64),
8957            "full_add_8" => Ok(Elements::FullAdd8),
8958            "full_decrement_16" => Ok(Elements::FullDecrement16),
8959            "full_decrement_32" => Ok(Elements::FullDecrement32),
8960            "full_decrement_64" => Ok(Elements::FullDecrement64),
8961            "full_decrement_8" => Ok(Elements::FullDecrement8),
8962            "full_increment_16" => Ok(Elements::FullIncrement16),
8963            "full_increment_32" => Ok(Elements::FullIncrement32),
8964            "full_increment_64" => Ok(Elements::FullIncrement64),
8965            "full_increment_8" => Ok(Elements::FullIncrement8),
8966            "full_left_shift_16_1" => Ok(Elements::FullLeftShift16_1),
8967            "full_left_shift_16_2" => Ok(Elements::FullLeftShift16_2),
8968            "full_left_shift_16_4" => Ok(Elements::FullLeftShift16_4),
8969            "full_left_shift_16_8" => Ok(Elements::FullLeftShift16_8),
8970            "full_left_shift_32_1" => Ok(Elements::FullLeftShift32_1),
8971            "full_left_shift_32_16" => Ok(Elements::FullLeftShift32_16),
8972            "full_left_shift_32_2" => Ok(Elements::FullLeftShift32_2),
8973            "full_left_shift_32_4" => Ok(Elements::FullLeftShift32_4),
8974            "full_left_shift_32_8" => Ok(Elements::FullLeftShift32_8),
8975            "full_left_shift_64_1" => Ok(Elements::FullLeftShift64_1),
8976            "full_left_shift_64_16" => Ok(Elements::FullLeftShift64_16),
8977            "full_left_shift_64_2" => Ok(Elements::FullLeftShift64_2),
8978            "full_left_shift_64_32" => Ok(Elements::FullLeftShift64_32),
8979            "full_left_shift_64_4" => Ok(Elements::FullLeftShift64_4),
8980            "full_left_shift_64_8" => Ok(Elements::FullLeftShift64_8),
8981            "full_left_shift_8_1" => Ok(Elements::FullLeftShift8_1),
8982            "full_left_shift_8_2" => Ok(Elements::FullLeftShift8_2),
8983            "full_left_shift_8_4" => Ok(Elements::FullLeftShift8_4),
8984            "full_multiply_16" => Ok(Elements::FullMultiply16),
8985            "full_multiply_32" => Ok(Elements::FullMultiply32),
8986            "full_multiply_64" => Ok(Elements::FullMultiply64),
8987            "full_multiply_8" => Ok(Elements::FullMultiply8),
8988            "full_right_shift_16_1" => Ok(Elements::FullRightShift16_1),
8989            "full_right_shift_16_2" => Ok(Elements::FullRightShift16_2),
8990            "full_right_shift_16_4" => Ok(Elements::FullRightShift16_4),
8991            "full_right_shift_16_8" => Ok(Elements::FullRightShift16_8),
8992            "full_right_shift_32_1" => Ok(Elements::FullRightShift32_1),
8993            "full_right_shift_32_16" => Ok(Elements::FullRightShift32_16),
8994            "full_right_shift_32_2" => Ok(Elements::FullRightShift32_2),
8995            "full_right_shift_32_4" => Ok(Elements::FullRightShift32_4),
8996            "full_right_shift_32_8" => Ok(Elements::FullRightShift32_8),
8997            "full_right_shift_64_1" => Ok(Elements::FullRightShift64_1),
8998            "full_right_shift_64_16" => Ok(Elements::FullRightShift64_16),
8999            "full_right_shift_64_2" => Ok(Elements::FullRightShift64_2),
9000            "full_right_shift_64_32" => Ok(Elements::FullRightShift64_32),
9001            "full_right_shift_64_4" => Ok(Elements::FullRightShift64_4),
9002            "full_right_shift_64_8" => Ok(Elements::FullRightShift64_8),
9003            "full_right_shift_8_1" => Ok(Elements::FullRightShift8_1),
9004            "full_right_shift_8_2" => Ok(Elements::FullRightShift8_2),
9005            "full_right_shift_8_4" => Ok(Elements::FullRightShift8_4),
9006            "full_subtract_16" => Ok(Elements::FullSubtract16),
9007            "full_subtract_32" => Ok(Elements::FullSubtract32),
9008            "full_subtract_64" => Ok(Elements::FullSubtract64),
9009            "full_subtract_8" => Ok(Elements::FullSubtract8),
9010            "ge_is_on_curve" => Ok(Elements::GeIsOnCurve),
9011            "ge_negate" => Ok(Elements::GeNegate),
9012            "gej_add" => Ok(Elements::GejAdd),
9013            "gej_double" => Ok(Elements::GejDouble),
9014            "gej_equiv" => Ok(Elements::GejEquiv),
9015            "gej_ge_add" => Ok(Elements::GejGeAdd),
9016            "gej_ge_add_ex" => Ok(Elements::GejGeAddEx),
9017            "gej_ge_equiv" => Ok(Elements::GejGeEquiv),
9018            "gej_infinity" => Ok(Elements::GejInfinity),
9019            "gej_is_infinity" => Ok(Elements::GejIsInfinity),
9020            "gej_is_on_curve" => Ok(Elements::GejIsOnCurve),
9021            "gej_negate" => Ok(Elements::GejNegate),
9022            "gej_normalize" => Ok(Elements::GejNormalize),
9023            "gej_rescale" => Ok(Elements::GejRescale),
9024            "gej_x_equiv" => Ok(Elements::GejXEquiv),
9025            "gej_y_is_odd" => Ok(Elements::GejYIsOdd),
9026            "generate" => Ok(Elements::Generate),
9027            "genesis_block_hash" => Ok(Elements::GenesisBlockHash),
9028            "hash_to_curve" => Ok(Elements::HashToCurve),
9029            "high_1" => Ok(Elements::High1),
9030            "high_16" => Ok(Elements::High16),
9031            "high_32" => Ok(Elements::High32),
9032            "high_64" => Ok(Elements::High64),
9033            "high_8" => Ok(Elements::High8),
9034            "increment_16" => Ok(Elements::Increment16),
9035            "increment_32" => Ok(Elements::Increment32),
9036            "increment_64" => Ok(Elements::Increment64),
9037            "increment_8" => Ok(Elements::Increment8),
9038            "input_amount" => Ok(Elements::InputAmount),
9039            "input_amounts_hash" => Ok(Elements::InputAmountsHash),
9040            "input_annex_hash" => Ok(Elements::InputAnnexHash),
9041            "input_annexes_hash" => Ok(Elements::InputAnnexesHash),
9042            "input_asset" => Ok(Elements::InputAsset),
9043            "input_hash" => Ok(Elements::InputHash),
9044            "input_outpoints_hash" => Ok(Elements::InputOutpointsHash),
9045            "input_pegin" => Ok(Elements::InputPegin),
9046            "input_prev_outpoint" => Ok(Elements::InputPrevOutpoint),
9047            "input_script_hash" => Ok(Elements::InputScriptHash),
9048            "input_script_sig_hash" => Ok(Elements::InputScriptSigHash),
9049            "input_script_sigs_hash" => Ok(Elements::InputScriptSigsHash),
9050            "input_scripts_hash" => Ok(Elements::InputScriptsHash),
9051            "input_sequence" => Ok(Elements::InputSequence),
9052            "input_sequences_hash" => Ok(Elements::InputSequencesHash),
9053            "input_utxo_hash" => Ok(Elements::InputUtxoHash),
9054            "input_utxos_hash" => Ok(Elements::InputUtxosHash),
9055            "inputs_hash" => Ok(Elements::InputsHash),
9056            "internal_key" => Ok(Elements::InternalKey),
9057            "is_one_16" => Ok(Elements::IsOne16),
9058            "is_one_32" => Ok(Elements::IsOne32),
9059            "is_one_64" => Ok(Elements::IsOne64),
9060            "is_one_8" => Ok(Elements::IsOne8),
9061            "is_zero_16" => Ok(Elements::IsZero16),
9062            "is_zero_32" => Ok(Elements::IsZero32),
9063            "is_zero_64" => Ok(Elements::IsZero64),
9064            "is_zero_8" => Ok(Elements::IsZero8),
9065            "issuance" => Ok(Elements::Issuance),
9066            "issuance_asset" => Ok(Elements::IssuanceAsset),
9067            "issuance_asset_amount" => Ok(Elements::IssuanceAssetAmount),
9068            "issuance_asset_amounts_hash" => Ok(Elements::IssuanceAssetAmountsHash),
9069            "issuance_asset_proof" => Ok(Elements::IssuanceAssetProof),
9070            "issuance_blinding_entropy_hash" => Ok(Elements::IssuanceBlindingEntropyHash),
9071            "issuance_entropy" => Ok(Elements::IssuanceEntropy),
9072            "issuance_hash" => Ok(Elements::IssuanceHash),
9073            "issuance_range_proofs_hash" => Ok(Elements::IssuanceRangeProofsHash),
9074            "issuance_token" => Ok(Elements::IssuanceToken),
9075            "issuance_token_amount" => Ok(Elements::IssuanceTokenAmount),
9076            "issuance_token_amounts_hash" => Ok(Elements::IssuanceTokenAmountsHash),
9077            "issuance_token_proof" => Ok(Elements::IssuanceTokenProof),
9078            "issuances_hash" => Ok(Elements::IssuancesHash),
9079            "lbtc_asset" => Ok(Elements::LbtcAsset),
9080            "le_16" => Ok(Elements::Le16),
9081            "le_32" => Ok(Elements::Le32),
9082            "le_64" => Ok(Elements::Le64),
9083            "le_8" => Ok(Elements::Le8),
9084            "left_extend_16_32" => Ok(Elements::LeftExtend16_32),
9085            "left_extend_16_64" => Ok(Elements::LeftExtend16_64),
9086            "left_extend_1_16" => Ok(Elements::LeftExtend1_16),
9087            "left_extend_1_32" => Ok(Elements::LeftExtend1_32),
9088            "left_extend_1_64" => Ok(Elements::LeftExtend1_64),
9089            "left_extend_1_8" => Ok(Elements::LeftExtend1_8),
9090            "left_extend_32_64" => Ok(Elements::LeftExtend32_64),
9091            "left_extend_8_16" => Ok(Elements::LeftExtend8_16),
9092            "left_extend_8_32" => Ok(Elements::LeftExtend8_32),
9093            "left_extend_8_64" => Ok(Elements::LeftExtend8_64),
9094            "left_pad_high_16_32" => Ok(Elements::LeftPadHigh16_32),
9095            "left_pad_high_16_64" => Ok(Elements::LeftPadHigh16_64),
9096            "left_pad_high_1_16" => Ok(Elements::LeftPadHigh1_16),
9097            "left_pad_high_1_32" => Ok(Elements::LeftPadHigh1_32),
9098            "left_pad_high_1_64" => Ok(Elements::LeftPadHigh1_64),
9099            "left_pad_high_1_8" => Ok(Elements::LeftPadHigh1_8),
9100            "left_pad_high_32_64" => Ok(Elements::LeftPadHigh32_64),
9101            "left_pad_high_8_16" => Ok(Elements::LeftPadHigh8_16),
9102            "left_pad_high_8_32" => Ok(Elements::LeftPadHigh8_32),
9103            "left_pad_high_8_64" => Ok(Elements::LeftPadHigh8_64),
9104            "left_pad_low_16_32" => Ok(Elements::LeftPadLow16_32),
9105            "left_pad_low_16_64" => Ok(Elements::LeftPadLow16_64),
9106            "left_pad_low_1_16" => Ok(Elements::LeftPadLow1_16),
9107            "left_pad_low_1_32" => Ok(Elements::LeftPadLow1_32),
9108            "left_pad_low_1_64" => Ok(Elements::LeftPadLow1_64),
9109            "left_pad_low_1_8" => Ok(Elements::LeftPadLow1_8),
9110            "left_pad_low_32_64" => Ok(Elements::LeftPadLow32_64),
9111            "left_pad_low_8_16" => Ok(Elements::LeftPadLow8_16),
9112            "left_pad_low_8_32" => Ok(Elements::LeftPadLow8_32),
9113            "left_pad_low_8_64" => Ok(Elements::LeftPadLow8_64),
9114            "left_rotate_16" => Ok(Elements::LeftRotate16),
9115            "left_rotate_32" => Ok(Elements::LeftRotate32),
9116            "left_rotate_64" => Ok(Elements::LeftRotate64),
9117            "left_rotate_8" => Ok(Elements::LeftRotate8),
9118            "left_shift_16" => Ok(Elements::LeftShift16),
9119            "left_shift_32" => Ok(Elements::LeftShift32),
9120            "left_shift_64" => Ok(Elements::LeftShift64),
9121            "left_shift_8" => Ok(Elements::LeftShift8),
9122            "left_shift_with_16" => Ok(Elements::LeftShiftWith16),
9123            "left_shift_with_32" => Ok(Elements::LeftShiftWith32),
9124            "left_shift_with_64" => Ok(Elements::LeftShiftWith64),
9125            "left_shift_with_8" => Ok(Elements::LeftShiftWith8),
9126            "leftmost_16_1" => Ok(Elements::Leftmost16_1),
9127            "leftmost_16_2" => Ok(Elements::Leftmost16_2),
9128            "leftmost_16_4" => Ok(Elements::Leftmost16_4),
9129            "leftmost_16_8" => Ok(Elements::Leftmost16_8),
9130            "leftmost_32_1" => Ok(Elements::Leftmost32_1),
9131            "leftmost_32_16" => Ok(Elements::Leftmost32_16),
9132            "leftmost_32_2" => Ok(Elements::Leftmost32_2),
9133            "leftmost_32_4" => Ok(Elements::Leftmost32_4),
9134            "leftmost_32_8" => Ok(Elements::Leftmost32_8),
9135            "leftmost_64_1" => Ok(Elements::Leftmost64_1),
9136            "leftmost_64_16" => Ok(Elements::Leftmost64_16),
9137            "leftmost_64_2" => Ok(Elements::Leftmost64_2),
9138            "leftmost_64_32" => Ok(Elements::Leftmost64_32),
9139            "leftmost_64_4" => Ok(Elements::Leftmost64_4),
9140            "leftmost_64_8" => Ok(Elements::Leftmost64_8),
9141            "leftmost_8_1" => Ok(Elements::Leftmost8_1),
9142            "leftmost_8_2" => Ok(Elements::Leftmost8_2),
9143            "leftmost_8_4" => Ok(Elements::Leftmost8_4),
9144            "linear_combination_1" => Ok(Elements::LinearCombination1),
9145            "linear_verify_1" => Ok(Elements::LinearVerify1),
9146            "lock_time" => Ok(Elements::LockTime),
9147            "low_1" => Ok(Elements::Low1),
9148            "low_16" => Ok(Elements::Low16),
9149            "low_32" => Ok(Elements::Low32),
9150            "low_64" => Ok(Elements::Low64),
9151            "low_8" => Ok(Elements::Low8),
9152            "lt_16" => Ok(Elements::Lt16),
9153            "lt_32" => Ok(Elements::Lt32),
9154            "lt_64" => Ok(Elements::Lt64),
9155            "lt_8" => Ok(Elements::Lt8),
9156            "maj_1" => Ok(Elements::Maj1),
9157            "maj_16" => Ok(Elements::Maj16),
9158            "maj_32" => Ok(Elements::Maj32),
9159            "maj_64" => Ok(Elements::Maj64),
9160            "maj_8" => Ok(Elements::Maj8),
9161            "max_16" => Ok(Elements::Max16),
9162            "max_32" => Ok(Elements::Max32),
9163            "max_64" => Ok(Elements::Max64),
9164            "max_8" => Ok(Elements::Max8),
9165            "median_16" => Ok(Elements::Median16),
9166            "median_32" => Ok(Elements::Median32),
9167            "median_64" => Ok(Elements::Median64),
9168            "median_8" => Ok(Elements::Median8),
9169            "min_16" => Ok(Elements::Min16),
9170            "min_32" => Ok(Elements::Min32),
9171            "min_64" => Ok(Elements::Min64),
9172            "min_8" => Ok(Elements::Min8),
9173            "modulo_16" => Ok(Elements::Modulo16),
9174            "modulo_32" => Ok(Elements::Modulo32),
9175            "modulo_64" => Ok(Elements::Modulo64),
9176            "modulo_8" => Ok(Elements::Modulo8),
9177            "multiply_16" => Ok(Elements::Multiply16),
9178            "multiply_32" => Ok(Elements::Multiply32),
9179            "multiply_64" => Ok(Elements::Multiply64),
9180            "multiply_8" => Ok(Elements::Multiply8),
9181            "negate_16" => Ok(Elements::Negate16),
9182            "negate_32" => Ok(Elements::Negate32),
9183            "negate_64" => Ok(Elements::Negate64),
9184            "negate_8" => Ok(Elements::Negate8),
9185            "new_issuance_contract" => Ok(Elements::NewIssuanceContract),
9186            "nonce_hash" => Ok(Elements::NonceHash),
9187            "num_inputs" => Ok(Elements::NumInputs),
9188            "num_outputs" => Ok(Elements::NumOutputs),
9189            "one_16" => Ok(Elements::One16),
9190            "one_32" => Ok(Elements::One32),
9191            "one_64" => Ok(Elements::One64),
9192            "one_8" => Ok(Elements::One8),
9193            "or_1" => Ok(Elements::Or1),
9194            "or_16" => Ok(Elements::Or16),
9195            "or_32" => Ok(Elements::Or32),
9196            "or_64" => Ok(Elements::Or64),
9197            "or_8" => Ok(Elements::Or8),
9198            "outpoint_hash" => Ok(Elements::OutpointHash),
9199            "output_amount" => Ok(Elements::OutputAmount),
9200            "output_amounts_hash" => Ok(Elements::OutputAmountsHash),
9201            "output_asset" => Ok(Elements::OutputAsset),
9202            "output_hash" => Ok(Elements::OutputHash),
9203            "output_is_fee" => Ok(Elements::OutputIsFee),
9204            "output_nonce" => Ok(Elements::OutputNonce),
9205            "output_nonces_hash" => Ok(Elements::OutputNoncesHash),
9206            "output_null_datum" => Ok(Elements::OutputNullDatum),
9207            "output_range_proof" => Ok(Elements::OutputRangeProof),
9208            "output_range_proofs_hash" => Ok(Elements::OutputRangeProofsHash),
9209            "output_script_hash" => Ok(Elements::OutputScriptHash),
9210            "output_scripts_hash" => Ok(Elements::OutputScriptsHash),
9211            "output_surjection_proof" => Ok(Elements::OutputSurjectionProof),
9212            "output_surjection_proofs_hash" => Ok(Elements::OutputSurjectionProofsHash),
9213            "outputs_hash" => Ok(Elements::OutputsHash),
9214            "parse_lock" => Ok(Elements::ParseLock),
9215            "parse_sequence" => Ok(Elements::ParseSequence),
9216            "point_verify_1" => Ok(Elements::PointVerify1),
9217            "reissuance_blinding" => Ok(Elements::ReissuanceBlinding),
9218            "reissuance_entropy" => Ok(Elements::ReissuanceEntropy),
9219            "right_extend_16_32" => Ok(Elements::RightExtend16_32),
9220            "right_extend_16_64" => Ok(Elements::RightExtend16_64),
9221            "right_extend_32_64" => Ok(Elements::RightExtend32_64),
9222            "right_extend_8_16" => Ok(Elements::RightExtend8_16),
9223            "right_extend_8_32" => Ok(Elements::RightExtend8_32),
9224            "right_extend_8_64" => Ok(Elements::RightExtend8_64),
9225            "right_pad_high_16_32" => Ok(Elements::RightPadHigh16_32),
9226            "right_pad_high_16_64" => Ok(Elements::RightPadHigh16_64),
9227            "right_pad_high_1_16" => Ok(Elements::RightPadHigh1_16),
9228            "right_pad_high_1_32" => Ok(Elements::RightPadHigh1_32),
9229            "right_pad_high_1_64" => Ok(Elements::RightPadHigh1_64),
9230            "right_pad_high_1_8" => Ok(Elements::RightPadHigh1_8),
9231            "right_pad_high_32_64" => Ok(Elements::RightPadHigh32_64),
9232            "right_pad_high_8_16" => Ok(Elements::RightPadHigh8_16),
9233            "right_pad_high_8_32" => Ok(Elements::RightPadHigh8_32),
9234            "right_pad_high_8_64" => Ok(Elements::RightPadHigh8_64),
9235            "right_pad_low_16_32" => Ok(Elements::RightPadLow16_32),
9236            "right_pad_low_16_64" => Ok(Elements::RightPadLow16_64),
9237            "right_pad_low_1_16" => Ok(Elements::RightPadLow1_16),
9238            "right_pad_low_1_32" => Ok(Elements::RightPadLow1_32),
9239            "right_pad_low_1_64" => Ok(Elements::RightPadLow1_64),
9240            "right_pad_low_1_8" => Ok(Elements::RightPadLow1_8),
9241            "right_pad_low_32_64" => Ok(Elements::RightPadLow32_64),
9242            "right_pad_low_8_16" => Ok(Elements::RightPadLow8_16),
9243            "right_pad_low_8_32" => Ok(Elements::RightPadLow8_32),
9244            "right_pad_low_8_64" => Ok(Elements::RightPadLow8_64),
9245            "right_rotate_16" => Ok(Elements::RightRotate16),
9246            "right_rotate_32" => Ok(Elements::RightRotate32),
9247            "right_rotate_64" => Ok(Elements::RightRotate64),
9248            "right_rotate_8" => Ok(Elements::RightRotate8),
9249            "right_shift_16" => Ok(Elements::RightShift16),
9250            "right_shift_32" => Ok(Elements::RightShift32),
9251            "right_shift_64" => Ok(Elements::RightShift64),
9252            "right_shift_8" => Ok(Elements::RightShift8),
9253            "right_shift_with_16" => Ok(Elements::RightShiftWith16),
9254            "right_shift_with_32" => Ok(Elements::RightShiftWith32),
9255            "right_shift_with_64" => Ok(Elements::RightShiftWith64),
9256            "right_shift_with_8" => Ok(Elements::RightShiftWith8),
9257            "rightmost_16_1" => Ok(Elements::Rightmost16_1),
9258            "rightmost_16_2" => Ok(Elements::Rightmost16_2),
9259            "rightmost_16_4" => Ok(Elements::Rightmost16_4),
9260            "rightmost_16_8" => Ok(Elements::Rightmost16_8),
9261            "rightmost_32_1" => Ok(Elements::Rightmost32_1),
9262            "rightmost_32_16" => Ok(Elements::Rightmost32_16),
9263            "rightmost_32_2" => Ok(Elements::Rightmost32_2),
9264            "rightmost_32_4" => Ok(Elements::Rightmost32_4),
9265            "rightmost_32_8" => Ok(Elements::Rightmost32_8),
9266            "rightmost_64_1" => Ok(Elements::Rightmost64_1),
9267            "rightmost_64_16" => Ok(Elements::Rightmost64_16),
9268            "rightmost_64_2" => Ok(Elements::Rightmost64_2),
9269            "rightmost_64_32" => Ok(Elements::Rightmost64_32),
9270            "rightmost_64_4" => Ok(Elements::Rightmost64_4),
9271            "rightmost_64_8" => Ok(Elements::Rightmost64_8),
9272            "rightmost_8_1" => Ok(Elements::Rightmost8_1),
9273            "rightmost_8_2" => Ok(Elements::Rightmost8_2),
9274            "rightmost_8_4" => Ok(Elements::Rightmost8_4),
9275            "scalar_add" => Ok(Elements::ScalarAdd),
9276            "scalar_invert" => Ok(Elements::ScalarInvert),
9277            "scalar_is_zero" => Ok(Elements::ScalarIsZero),
9278            "scalar_multiply" => Ok(Elements::ScalarMultiply),
9279            "scalar_multiply_lambda" => Ok(Elements::ScalarMultiplyLambda),
9280            "scalar_negate" => Ok(Elements::ScalarNegate),
9281            "scalar_normalize" => Ok(Elements::ScalarNormalize),
9282            "scalar_square" => Ok(Elements::ScalarSquare),
9283            "scale" => Ok(Elements::Scale),
9284            "script_cmr" => Ok(Elements::ScriptCMR),
9285            "sha_256_block" => Ok(Elements::Sha256Block),
9286            "sha_256_ctx_8_add_1" => Ok(Elements::Sha256Ctx8Add1),
9287            "sha_256_ctx_8_add_128" => Ok(Elements::Sha256Ctx8Add128),
9288            "sha_256_ctx_8_add_16" => Ok(Elements::Sha256Ctx8Add16),
9289            "sha_256_ctx_8_add_2" => Ok(Elements::Sha256Ctx8Add2),
9290            "sha_256_ctx_8_add_256" => Ok(Elements::Sha256Ctx8Add256),
9291            "sha_256_ctx_8_add_32" => Ok(Elements::Sha256Ctx8Add32),
9292            "sha_256_ctx_8_add_4" => Ok(Elements::Sha256Ctx8Add4),
9293            "sha_256_ctx_8_add_512" => Ok(Elements::Sha256Ctx8Add512),
9294            "sha_256_ctx_8_add_64" => Ok(Elements::Sha256Ctx8Add64),
9295            "sha_256_ctx_8_add_8" => Ok(Elements::Sha256Ctx8Add8),
9296            "sha_256_ctx_8_add_buffer_511" => Ok(Elements::Sha256Ctx8AddBuffer511),
9297            "sha_256_ctx_8_finalize" => Ok(Elements::Sha256Ctx8Finalize),
9298            "sha_256_ctx_8_init" => Ok(Elements::Sha256Ctx8Init),
9299            "sha_256_iv" => Ok(Elements::Sha256Iv),
9300            "sig_all_hash" => Ok(Elements::SigAllHash),
9301            "some_1" => Ok(Elements::Some1),
9302            "some_16" => Ok(Elements::Some16),
9303            "some_32" => Ok(Elements::Some32),
9304            "some_64" => Ok(Elements::Some64),
9305            "some_8" => Ok(Elements::Some8),
9306            "subtract_16" => Ok(Elements::Subtract16),
9307            "subtract_32" => Ok(Elements::Subtract32),
9308            "subtract_64" => Ok(Elements::Subtract64),
9309            "subtract_8" => Ok(Elements::Subtract8),
9310            "swu" => Ok(Elements::Swu),
9311            "tap_env_hash" => Ok(Elements::TapEnvHash),
9312            "tapdata_init" => Ok(Elements::TapdataInit),
9313            "tapleaf_hash" => Ok(Elements::TapleafHash),
9314            "tapleaf_version" => Ok(Elements::TapleafVersion),
9315            "tappath" => Ok(Elements::Tappath),
9316            "tappath_hash" => Ok(Elements::TappathHash),
9317            "total_fee" => Ok(Elements::TotalFee),
9318            "transaction_id" => Ok(Elements::TransactionId),
9319            "tx_hash" => Ok(Elements::TxHash),
9320            "tx_is_final" => Ok(Elements::TxIsFinal),
9321            "tx_lock_distance" => Ok(Elements::TxLockDistance),
9322            "tx_lock_duration" => Ok(Elements::TxLockDuration),
9323            "tx_lock_height" => Ok(Elements::TxLockHeight),
9324            "tx_lock_time" => Ok(Elements::TxLockTime),
9325            "verify" => Ok(Elements::Verify),
9326            "version" => Ok(Elements::Version),
9327            "xor_1" => Ok(Elements::Xor1),
9328            "xor_16" => Ok(Elements::Xor16),
9329            "xor_32" => Ok(Elements::Xor32),
9330            "xor_64" => Ok(Elements::Xor64),
9331            "xor_8" => Ok(Elements::Xor8),
9332            "xor_xor_1" => Ok(Elements::XorXor1),
9333            "xor_xor_16" => Ok(Elements::XorXor16),
9334            "xor_xor_32" => Ok(Elements::XorXor32),
9335            "xor_xor_64" => Ok(Elements::XorXor64),
9336            "xor_xor_8" => Ok(Elements::XorXor8),
9337            x => Err(crate::Error::InvalidJetName(x.to_owned())),
9338        }
9339    }
9340}