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_255_21=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_255_5 34fe z_255_21 35 36enter pow225521 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_255_5 = z_250_0^2^5 59z_255_21 = z_255_5*z11 60 61return 62