@@ factory GF(q) table @@
59 2 v_1^2+58*v_1+2; 2 1 58 2
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
