1:name:fe:t0:t1:t2:t3:t4:t5:t6:t7:t8:t9:z:out:
2fe r:var/r=fe:
3
4enter f:enter/f:>z1=fe#11:
5return:nofallthrough:<z_252_3=fe#12:leave:
6
7h=f*g:<f=fe:<g=fe:>h=fe:asm/fe_mul(>h,<f,<g);:
8h=f^2^k:<f=fe:>h=fe:#k:asm/fe_sq(>h,<f); for (i = 1;i !lt; #k;++i) fe_sq(>h,>h);:
9
10:
11
12fe z1
13fe z2
14fe z8
15fe z9
16fe z11
17fe z22
18fe z_5_0
19fe z_10_5
20fe z_10_0
21fe z_20_10
22fe z_20_0
23fe z_40_20
24fe z_40_0
25fe z_50_10
26fe z_50_0
27fe z_100_50
28fe z_100_0
29fe z_200_100
30fe z_200_0
31fe z_250_50
32fe z_250_0
33fe z_252_2
34fe z_252_3
35
36enter pow22523
37
38z2 = z1^2^1
39z8 = z2^2^2
40z9 = z1*z8
41z11 = z2*z9
42z22 = z11^2^1
43z_5_0 = z9*z22
44z_10_5 = z_5_0^2^5
45z_10_0 = z_10_5*z_5_0
46z_20_10 = z_10_0^2^10
47z_20_0 = z_20_10*z_10_0
48z_40_20 = z_20_0^2^20
49z_40_0 = z_40_20*z_20_0
50z_50_10 = z_40_0^2^10
51z_50_0 = z_50_10*z_10_0
52z_100_50 = z_50_0^2^50
53z_100_0 = z_100_50*z_50_0
54z_200_100 = z_100_0^2^100
55z_200_0 = z_200_100*z_100_0
56z_250_50 = z_200_0^2^50
57z_250_0 = z_250_50*z_50_0
58z_252_2 = z_250_0^2^2
59z_252_3 = z_252_2*z1
60
61return
62