3 i  h       h   h h  h      h ^ ^  $ h  h '  h h     *  h  h  ' '! '" '# '$ j% '& ' () D '* '+ ', '- '. / 01 '2 h3 4 h5 6 h78 9  : h; <= >? h@ A BC ^DE `F hG H2IJKLMN InnerClasses exponents[IrandomLjava/security/SecureRandom;ed25519/Lnet/i2p/crypto/eddsa/spec/EdDSANamedCurveSpec;curve!Lnet/i2p/crypto/eddsa/math/Curve;dLjava/math/BigInteger; groupOrder()VCodeLineNumberTableLocalVariableTablethis%Lnet/i2p/crypto/eddsa/math/MathUtils;getQ()Ljava/math/BigInteger; getGroupOrdergetField#()Lnet/i2p/crypto/eddsa/math/Field; toBigInteger([I)Ljava/math/BigInteger;iItb StackMapTable([B)Ljava/math/BigInteger;bytes[B@(Lnet/i2p/crypto/eddsa/math/FieldElement;)Ljava/math/BigInteger;f(Lnet/i2p/crypto/eddsa/math/FieldElement;toFieldElement@(Ljava/math/BigInteger;)Lnet/i2p/crypto/eddsa/math/FieldElement; toByteArray(Ljava/math/BigInteger;)[BoriginaloffsetreduceModGroupOrder([B)[BmultiplyAndAddModGroupOrder ([B[B[B)[BacresultgetRandomByteArray(I)[BlengthgetRandomFieldElement*()Lnet/i2p/crypto/eddsa/math/FieldElement;jmgetRandomGroupElement*()Lnet/i2p/crypto/eddsa/math/GroupElement;+(Z)Lnet/i2p/crypto/eddsa/math/GroupElement; precomputeZtoGroupElement,([B)Lnet/i2p/crypto/eddsa/math/GroupElement;shouldBeNegativeyuvtmpx isNegativetoRepresentationORepresentation(Lnet/i2p/crypto/eddsa/math/GroupElement;Lnet/i2p/crypto/eddsa/math/GroupElement$Representation;)Lnet/i2p/crypto/eddsa/math/GroupElement;g(Lnet/i2p/crypto/eddsa/math/GroupElement;repr7Lnet/i2p/crypto/eddsa/math/GroupElement$Representation;gXgYgZgT OaddGroupElementsz(Lnet/i2p/crypto/eddsa/math/GroupElement;Lnet/i2p/crypto/eddsa/math/GroupElement;)Lnet/i2p/crypto/eddsa/math/GroupElement;g1g2g1Xg1Yg1Zg2Xg2Yg2Zg1xg1yg2xg2y dx1x2y1y2x3y3t3doubleGroupElementR(Lnet/i2p/crypto/eddsa/math/GroupElement;)Lnet/i2p/crypto/eddsa/math/GroupElement;scalarMultiplyGroupElementz(Lnet/i2p/crypto/eddsa/math/GroupElement;Lnet/i2p/crypto/eddsa/math/FieldElement;)Lnet/i2p/crypto/eddsa/math/GroupElement;h!doubleScalarMultiplyGroupElements(Lnet/i2p/crypto/eddsa/math/GroupElement;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/GroupElement;Lnet/i2p/crypto/eddsa/math/FieldElement;)Lnet/i2p/crypto/eddsa/math/GroupElement;f1f2h1h2negateGroupElementmathUtilsWorkAsExpectedneutralRuntimeVisibleAnnotationsLorg/junit/Test; SourceFileMathUtils.java wxjava/math/BigInteger@7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed wP vunet/i2p/crypto/eddsa/math/Field@edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fQ RS=net/i2p/crypto/eddsa/math/ed25519/Ed25519LittleEndianEncoding wT Uu Vu WX YZ lm [\ ]Z^ _ `a b cd efjava/lang/RuntimeException only numbers < 2^256 are allowed wg hZ no ij kl5net/i2p/crypto/eddsa/math/ed25519/Ed25519FieldElement wm &net/i2p/crypto/eddsa/math/GroupElement rs wn"java/lang/IllegalArgumentException oZ ~ tu p\3 qr stnot a valid GroupElementu v 2 w V xy z { | } ~m   Z'java/lang/UnsupportedOperationException  x y y   +g1 and g2 must have representation P2 or P3    g must have representation P3 w U     java/security/SecureRandom.net/i2p/crypto/eddsa/spec/EdDSANamedCurveTableEd25519  pq-121665121666&27742317777372353535851937790883648493#net/i2p/crypto/eddsa/math/MathUtilsjava/lang/Object%net/i2p/crypto/eddsa/math/MathUtils$15net/i2p/crypto/eddsa/math/GroupElement$Representation(Ljava/lang/String;I)Vnet/i2p/crypto/eddsa/Utils hexToBytes(Ljava/lang/String;)[B*(I[BLnet/i2p/crypto/eddsa/math/Encoding;)VZEROONEvalueOf(J)Ljava/math/BigInteger;multiply.(Ljava/math/BigInteger;)Ljava/math/BigInteger; shiftLeft(I)Ljava/math/BigInteger;add&net/i2p/crypto/eddsa/math/FieldElement()[B getEncoding&()Lnet/i2p/crypto/eddsa/math/Encoding;"net/i2p/crypto/eddsa/math/Encodingdecode,([B)Lnet/i2p/crypto/eddsa/math/FieldElement; compareTo(Ljava/math/BigInteger;)I(Ljava/lang/String;)Vmod nextBytes([B)VnextInt(I)I&(Lnet/i2p/crypto/eddsa/math/Field;[I)V'(Lnet/i2p/crypto/eddsa/math/Curve;[BZ)VsubtractpowmodPowD(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;equals(Ljava/lang/Object;)Znet/i2p/crypto/eddsa/math/CurvegetInegatep3(Lnet/i2p/crypto/eddsa/math/Curve;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/FieldElement;)Lnet/i2p/crypto/eddsa/math/GroupElement;getXgetYgetZgetT@$SwitchMap$net$i2p$crypto$eddsa$math$GroupElement$RepresentationgetRepresentation9()Lnet/i2p/crypto/eddsa/math/GroupElement$Representation;ordinal()I modInversep2(Lnet/i2p/crypto/eddsa/math/Curve;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/FieldElement;)Lnet/i2p/crypto/eddsa/math/GroupElement;(Lnet/i2p/crypto/eddsa/math/Curve;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/FieldElement;Lnet/i2p/crypto/eddsa/math/FieldElement;Z)Lnet/i2p/crypto/eddsa/math/GroupElement;p1p1cachedprecompP2P3getCurve#()Lnet/i2p/crypto/eddsa/math/Curve;getZeroa(Lnet/i2p/crypto/eddsa/math/GroupElement$Representation;)Lnet/i2p/crypto/eddsa/math/GroupElement;bit([BI)Iorg/hamcrest/core/IsEqualequalTo*(Ljava/lang/Object;)Lorg/hamcrest/Matcher;org/junit/Assert assertThat+(Ljava/lang/Object;Lorg/hamcrest/Matcher;)VP1P1CACHED getByNameC(Ljava/lang/String;)Lnet/i2p/crypto/eddsa/spec/EdDSANamedCurveSpec;-net/i2p/crypto/eddsa/spec/EdDSANamedCurveSpec!hilmnopqrstuvuwxy/*z{ |} ~y$ Yz& yz- y7Y Y z6 86 y. L= #+ *..L+zGH I&H,L{ &.m*u % y1 L=*&+ *3~hL+zXY Z)Y/]{ )1-u ( y2*zg{  y8*zq{ u yZ*  Y L*M, , d>6,d+,ddd,`3T+z& {|~$5ARX{48 Zu;$65%@ yH*L+z  { u yj*+,N-z {*u yI L+ +z {   y- K< *!"#dO$Y*%z !{(m  y&z y{ L+ 'Y(+)M*z { S yG*3z<*\3~T*M,, +,N-,, ,:-. Y/0+,1,:-.,:-+, 2B-, 2 *Y34(56,:Y70 26 8,:(9,9:,,9;z>1Jx"{RG7(u1uJuxuuD&@ y*<:*=:*>:*? *?:@*AB. %%%P{,C,M,C,N,C,M,C,N+Y70,C,MY70,C,NN+Y70,C,MY70,C,N DYE@+B.*&;_(,9-9:F(,9-9:,-,9G(,9-9:,-,9G(,9-9::H(-,,9-,+,9:-Y70,-,9I(-,,9-,+,9-Y70,-,9JDYEz6 $<l     /ORZ !"$&'()$+-./0+2456729;<=1>E9I@NB\CtD@F{uuuu(u u/#uOuZ:uZ:u u|u$pu<XuV0I1**LB-##HB yi*AK *AL+AK+AL *YM4*<M*=N*>:+<:+=:+>:,,C,:-,C,: ,C,: ,C,: -   ,:      ,C,:      +,C,: ,:*N 99:9;zRUV(W2[=\H]T^`_l`xcdefopqr)s=tLv{ii=,uH!uTu` uluxuuu u u u Vu =,uLu y0**Oz{  y6+M(LPN6-QN,R -*ON-z"(.4{4 661' yz*+S:,-S:Oz{> ym2*AL *YT4*N*<U*=*>*?U;z { 2xy6((VW(V:(V:(VW;L=-XN-+O:+-O:-YZ-YZ=wXN-K[:-YZ-\[:-YZ-][:-YZ-K[N-L[:-YZ-K[N-\[:-YZ= -XN-(VWS:(LPYZӱzv+48?FOX^gkt} {z 8 ?F-1kjta`{ 0|}+-0z/xy YOYOY3OYMOYfOYOYOYOYOY O^Y_abccd(Ye0Yf0,C- Yg0zAKS\z kj'@