4C ^D ^E ^F ^G dH I 'J I 'K L M N O 'P Q R R S T U ^V WX ^Y Z [\] ^_ ^` ab H ^c d ^e f ^gh 'H 'i 'a 'jkl ,m ^n 'op 1q H ^r a ^s ^t Wu vw x y ^z ^{ ,- g9 o} |}~ | S S [ S ^ S ^w  ^ ^  ^ '^  CachedXYZT InnerClasses CachedXYT PartialXYZTXYZTXYZSECRET_KEY_LENI ConstantValue PUBLIC_KEY_LEN SIGNATURE_LEN@CACHED_NEUTRAL1Lcom/google/crypto/tink/subtle/Ed25519$CachedXYT;NEUTRAL3Lcom/google/crypto/tink/subtle/Ed25519$PartialXYZT; GROUP_ORDER[B()VCodeLineNumberTableLocalVariableTablethis'Lcom/google/crypto/tink/subtle/Ed25519;add(Lcom/google/crypto/tink/subtle/Ed25519$PartialXYZT;Lcom/google/crypto/tink/subtle/Ed25519$XYZT;Lcom/google/crypto/tink/subtle/Ed25519$CachedXYT;)V partialXYZTextended,Lcom/google/crypto/tink/subtle/Ed25519$XYZT;cachedt[JMethodParameterssub doubleXYZa(Lcom/google/crypto/tink/subtle/Ed25519$PartialXYZT;Lcom/google/crypto/tink/subtle/Ed25519$XYZ;)Vp+Lcom/google/crypto/tink/subtle/Ed25519$XYZ;t0 doubleXYZTb(Lcom/google/crypto/tink/subtle/Ed25519$PartialXYZT;Lcom/google/crypto/tink/subtle/Ed25519$XYZT;)Veq(II)Iabrselect6(Lcom/google/crypto/tink/subtle/Ed25519$CachedXYT;IB)VposB bnegativebabsyPlusXyMinusXt2dminustscalarMultWithBase/([B)Lcom/google/crypto/tink/subtle/Ed25519$XYZ;iecarryretxyztxyzresult StackMapTablescalarMultWithBaseToBytes([B)[BslidekdoubleScalarMultVarTime]([BLcom/google/crypto/tink/subtle/Ed25519$XYZT;[B)Lcom/google/crypto/tink/subtle/Ed25519$XYZ;pointA pointAArray3[Lcom/google/crypto/tink/subtle/Ed25519$CachedXYZT;doubleAaSlidebSlideuisNonZeroVarTime([J)ZininCopybytesgetLsb([J)Ineg([J[J)Vout pow2252m3t1t2load3([BI)JidxJload4reduce([B)Vss0s1s2s3s4s5s6s7s8s9s10s11s12s13s14s15s16s17s18s19s20s21s22s23carry0carry1carry2carry3carry4carry5carry6carry7carry8carry9carry10carry11carry12carry13carry14carry15carry16mulAdd ([B[B[B[B)Vca0a1a2a3a4a5a6a7a8a9a10a11b0b1b2b3b4b5b6b7b8b9b10b11c0c1c2c3c4c5c6c7c8c9c10c11carry17carry18carry19carry20carry21carry22getHashedScalar privateKeydigestLjava/security/MessageDigest;h Exceptionssign ([B[B[B)[Bmessage publicKeyhashedPrivateKey messageCopyrBhramisSmallerThanGroupOrder([B)Zjverify ([B[B[B)Z signature negPublicKey expectedR access$000x0 access$100x1 access$200 access$300 SourceFile Ed25519.java(com/google/crypto/tink/subtle/Field25519 xy            /com/google/crypto/tink/subtle/Ed25519$CachedXYT x1com/google/crypto/tink/subtle/Ed25519$PartialXYZT tu x*com/google/crypto/tink/subtle/Ed25519$XYZT rs x  )com/google/crypto/tink/subtle/Ed25519$XYZ  java/lang/IllegalStateException)arithmetic error in scalar multiplication x 0com/google/crypto/tink/subtle/Ed25519$CachedXYZT x      SHA-512 java/security/MessageDigest  %   y   vw%com/google/crypto/tink/subtle/Ed25519 23  xjava/lang/Object&java/security/GeneralSecurityExceptionxysum ([J[J[J)VmultzmultByZsquare.com/google/crypto/tink/subtle/Ed25519ConstantsB_TABLE3[[Lcom/google/crypto/tink/subtle/Ed25519$CachedXYT;copyConditional5(Lcom/google/crypto/tink/subtle/Ed25519$CachedXYT;I)Vjava/util/ArrayscopyOf([JI)[J6(Lcom/google/crypto/tink/subtle/Ed25519$PartialXYZT;)V4(Lcom/google/crypto/tink/subtle/Ed25519$CachedXYT;)V access$400(Lcom/google/crypto/tink/subtle/Ed25519$XYZT;Lcom/google/crypto/tink/subtle/Ed25519$PartialXYZT;)Lcom/google/crypto/tink/subtle/Ed25519$XYZT;fromPartialXYZT(Lcom/google/crypto/tink/subtle/Ed25519$XYZ;Lcom/google/crypto/tink/subtle/Ed25519$PartialXYZT;)Lcom/google/crypto/tink/subtle/Ed25519$XYZ; isOnCurve()Z(Ljava/lang/String;)VtoBytes()[B/(Lcom/google/crypto/tink/subtle/Ed25519$XYZT;)VB22[Lcom/google/crypto/tink/subtle/Ed25519$CachedXYT;java/lang/System arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)VreduceCoefficients([J)Vcontract([J)[B+com/google/crypto/tink/subtle/EngineFactoryMESSAGE_DIGEST-Lcom/google/crypto/tink/subtle/EngineFactory; getInstance&(Ljava/lang/String;)Ljava/lang/Object;update([BII)V copyOfRange([BII)[Breset#com/google/crypto/tink/subtle/Bytesconcat([[B)[B access$5000([B)Lcom/google/crypto/tink/subtle/Ed25519$XYZT;0(Lcom/google/crypto/tink/subtle/Ed25519$XYZ;[J)V0^dklmnolmnplmqrstuvwxyz/*{-| }~ zV N*+ +  * + +  * * , **,*+,,*+ -** *** * ** *-* *-* {6 5J_n|*us  zV N*+ +  * + +  * * ,**, *+,,*+ -** *** * ** *-* *-* {6 5J_n|*us  z M*+*+ *+*** * ++ ,* * ** *** *,* *** {2 !,;MXp| u  zA *+ { | u   zq#~=x~=x~=x~=z~{ | #l#l l  z ~z>t~xd6*22*22*22*22*22*22*22*22*  :* :* :Y:*{F# $&$'5(F)W*h+z,-/012345|\ sl ll4)s  zC@L= 1+h`*3~z~T+h`*3~z~T=>+d&+\3`T+3`=z=+\3xdT++d\3`TYN Y!:6+.Y"#:l+3$--%&ѻ'Y(:--)--)--)--)6+.Y"#:l+3$--%&ѻ'Y-*:+ ,Y-.{"BC D!E5C;M=NGOOPVQZRdNjTuVW\]^_\defghklmnk$s.t6u@w| 4l?+ls2ls2lCw>w=lu|.1 [3*! 13'1'z2*/0{| w zL=+*z3~~z~T=+3>`}+`3o+3+`3x`+\3+`3x`T+`TH+3+`3xd>+\3+`3xdT`6+3 +T+Tze+{Z#)28IQaox|>!l"l:l+lww# [ ="  z C1N-1Y+2SY3:+4 Y5:6-*-d2&-1Y Y52S*6:,6:Y: Y!:6   3 3  'Y* 3%- 3l2&! 3%- 3tl27 3%8 3l2&# 3%8 3tl27 j'Y*{z +5BV\bht}39|p ..lCwCCw=)u+bwhw}l I .[ [ -% [ [ [[ 2!  z>*` L*+*9+:+;M,N-66-36{& /46<|*/>7%w"[[ z3 *;3~{|   zo=+*+/uP{| l   z"L M N :,+-,6---+-,,-,,,-,-,6--,-,-,6 ----,-6----6 --,-,-,62----,-6d----62--,-,,,6,,*,+{5   # ( .4:?EJSX^!d$i%s&x%~*-./.36787<?@A@EHIJIN QRS R&W,Z1[:\?[E`Ka|lMllllllll4lLLG B<T     zu+*3<A *`3~yA *`3~yA {h ij)k| +w+l "  z^*>A *`3~yA {rst| wl  zS ?*>@?*A{B?*>{7?*A{7?* A{7 ?* >{7 ?*A{7 ?*>{7?*>7?*A{7?*>{7?*A{7?*A{7?*">{7?*$A{7?*'>{7?**>7!?*,A{7#?*/>{7%?*1A{7'?*4A{7)?*7>{7+?*9A{7-*<A{7//Bia7/Dia7/Fia7/Hie7/Jia7!/Lie7!-Bia7-Dia7-Fia7-Hie7-Jia7-Lie7+Bia7+Dia7+Fia7+Hie7+Jia7+Lie7)Bia7)Dia7)Fia7)Hie7)Jia7)Lie7'Bia7'Dia7'Fia7'Hie7'Jia7'Lie7 %Bia7 %Dia7%Fia7%Hie7%Jia7%Lie7 Na{7==a7 =ye7 Na{7AAa7Aye7Na{7EEa7Eye7Na{7IIa7Iye7Na{7MMa7Mye7!Na{7Q#Qa7#!Qye7!Na{7??a7?ye7Na{7CCa7Cye7Na{7GGa7Gye7Na{7KKa7Kye7Na{7O!Oa7!Oye7 #Bia7  #Dia7 #Fia7#Hie7#Jia7#Lie7 !Bia7  !Dia7  !Fia7 !Hie7!Jia7!Lie7Bia7 Dia7  Fia7  Hie7 Jia7Lie7Bia7Dia7 Fia7  Hie7  Jia7 Lie7!BiaBDia7Fia7 Hie7  Jia7  Lie7 Bia@!DiaBFia7Hie7 Jia7  Lie7 7Na{71!1aB1ye@Na{755a75ye7 Na{79 9a7  9ye7  Na{7==a7 =ye7 Na{7AAa7Aye7Na{7EEa7Eye7!Na{733a7!3yeBNa{77 7a7 7ye7 Na{7; ;a7  ;ye7 Na{7??a7?ye7Na{7CCa7Cye7Na{7GGa7Gye7Bia@!DiaBFia7Hie7 Jia7  Lie7 7{71!1aB1ye@!{733a7!3yeB{755a75ye7{77 7a7 7ye7 {79 9a7  9ye7  {7; ;a7  ;ye7  {7==a7 =ye7 {7??a7?ye7{7AAa7Aye7{7CCa7Cye7{7EEa7Eye7{7GGa7Gye7Bia@!DiaBFia7Hie7 Jia7  Lie7 {71!1aB1ye@!{733a7!3yeB{755a75ye7{77 7a7 7ye7 {79 9a7  9ye7  {7; ;a7  ;ye7  {7==a7 =ye7 {7??a7?ye7{7AAa7Aye7{7CCa7Cye7{7EEa7Eye7*T*{T*{!yT*!{T*! {T*!{yT*{T*{yT*{T*  {T* { yT*  {T*   {T*  { yT* {T* { yT* {T*  {T* {yT*{T* {T*T*{T*{yT*{T* {T*{yT*{T*{yT*{T* {T*{T{ #2@N]kw .=GR]hs~ #.9DOZep{ 'C_{(3>IT_ju   #.9DOXal w!"#&'()*+3-L.h/01245678 9:=,>A?Y@qABCDEFGH1K:LCMNNYOdPoSTUVWXY Z '[ ?\ W] o` ua ~b c d e f g h i j k l m n o ,p 6q Ar Qs [t fu nv yw x y z { | } ~  |* w  # 2 @ N ] k w t f X I ; -   ! # % ' ). += -G /Q1=395W79sx; =e?AICE-G2IKNMOjQ z5?+>7?+A{7?+>{7?+A{7 ?+ A{7 ?+ >{7?+A{7?+>{7?+>7?+A{7?+>{7+A{7?,>7?,A{7?,>{7 ?,A{7"?, A{7$?, >{7&?,A{7(?,>{7*?,>7,?,A{7.?,>{70,A{72?->74?-A{76?->{78?-A{7:?- A{7<?- >{7>?-A{7@?->{7B?->7D?-A{7F?->{7H-A{7J4ia7L6iaia7N8 iaiaia7P:"ia iaia ia7R<$ia"ia ia ia ia7T>&ia$ia"ia  ia iaia7V@(ia&ia$ia "ia  iaiaia7XB*ia(ia&ia $ia "ia iaiaia7ZD,ia*ia(ia &ia $ia"ia iaiaia7\F.ia,ia*ia (ia &ia$ia"ia iaiaia7^H0ia.ia,ia *ia (ia&ia$ia"ia iaiaia7`J2ia0ia.ia ,ia *ia(ia&ia$ia"ia iaiaia7b2i0ia .ia ,ia*ia(ia&ia$ia"ia iaia7d2i 0ia .ia,ia*ia(ia&ia$ia"ia ia7f 2i 0ia.ia,ia*ia(ia&ia$ia"ia7h 2i0ia.ia,ia*ia(ia&ia$ia7j2i0ia.ia,ia*ia(ia&ia7l2i0ia.ia,ia*ia(ia7n2i0ia.ia,ia*ia7p2i0ia.ia,ia7r2i0ia.ia7t2i0ia7v2i7x 7zLNa{7|N|a7NL|ye7LPNa{7Ra7RPye7PTNa{7Va7VTye7TXNa{7Za7ZXye7X\Na{7^a7^\ye7\`Na{7ba7b`ye7`dNa{7fa7fdye7dhNa{7ja7jhye7hlNa{7na7nlye7lpNa{7ra7rpye7ptNa{7va7vtye7txNa{7za7zxye7xNNa{7~P~a7PN~ye7NRNa{7Ta7TRye7RVNa{7Xa7XVye7VZNa{7\a7\Zye7Z^Na{7`a7`^ye7^bNa{7da7dbye7bfNa{7ha7hfye7fjNa{7la7ljye7jnNa{7pa7pnye7nrNa{7ta7trye7rvNa{7xa7xvye7vbzBia7bdzDia7dfzFia7fhzHie7hjzJia7jlzLie7l`xBia7`bxDia7bdxFia7dfxHie7fhxJia7hjxLie7j^vBia7^`vDia7`bvFia7bdvHie7dfvJia7fhvLie7h\tBia7\^tDia7^`tFia7`btHie7bdtJia7dftLie7fZrBia7Z\rDia7\^rFia7^`rHie7`brJia7bdrLie7dXpBia7XZpDia7Z\pFia7\^pHie7^`pJia7`bpLie7bXNa{7Za7ZXye7X\Na{7^a7^\ye7\`Na{7ba7b`ye7`dNa{7fa7fdye7dhNa{7ja7jhye7hlNa{7na7nlye7lZNa{7\a7\Zye7Z^Na{7`a7`^ye7^bNa{7da7dbye7bfNa{7ha7hfye7fjNa{7la7ljye7jVnBia7VXnDia7XZnFia7Z\nHie7\^nJia7^`nLie7`TlBia7TVlDia7VXlFia7XZlHie7Z\lJia7\^lLie7^RjBia7RTjDia7TVjFia7VXjHie7XZjJia7Z\jLie7\PhBia7PRhDia7RThFia7TVhHie7VXhJia7XZhLie7ZNfBia7NPfDia7PRfFia7RTfHie7TVfJia7VXfLie7XLdBia7LNdDia7NPdFia7PRdHie7RTdJia7TVdLie7V 7dLNa{7|N|a7NL|ye7LPNa{7Ra7RPye7PTNa{7Va7VTye7TXNa{7Za7ZXye7X\Na{7^a7^\ye7\`Na{7ba7b`ye7`NNa{7~P~a7PN~ye7NRNa{7Ta7TRye7RVNa{7Xa7XVye7VZNa{7\a7\Zye7Z^Na{7`a7`^ye7^bNa{7da7dbye7bLdBia7LNdDia7NPdFia7PRdHie7RTdJia7TVdLie7V 7dL{7|N|a7NL|ye7LN{7~P~a7PN~ye7NP{7Ra7RPye7PR{7Ta7TRye7RT{7Va7VTye7TV{7Xa7XVye7VX{7Za7ZXye7XZ{7\a7\Zye7Z\{7^a7^\ye7\^{7`a7`^ye7^`{7ba7b`ye7`b{7da7dbye7bLdBia7LNdDia7NPdFia7PRdHie7RTdJia7TVdLie7VL{7|N|a7NL|ye7LN{7~P~a7PN~ye7NP{7Ra7RPye7PR{7Ta7TRye7RT{7Va7VTye7TV{7Xa7XVye7VX{7Za7ZXye7XZ{7\a7\Zye7Z\{7^a7^\ye7\^{7`a7`^ye7^`{7ba7b`ye7`*LT*L{T*L{NyT*N{T*N {T*N{PyT*P{T*P{RyT*R{T* R {T* R{TyT* T{T* T {T* T{VyT*V{T*V{XyT*X{T*X {T*X{ZyT*Z{T*Z {T*\T*\{T*\{^yT*^{T*^ {T*^{`yT*`{T*`{byT*b{T*b {T*b{T{ %4BP_my '5@KXet,NvR'd;Tgt{~ & B ^ z  ">Zv #. 9!D$O%Z&e'p({),-./01456789 < = > +? 6@ AA LD WE bF mG xH I L M N O P Q 6S RT nU V W Y Z [ \ ] ^ a b c %d 0e ;f Fi Qj \k gl rm }n q r s t u v y z { | } ~   " - 8 C N Q m       1 M i          .F^v'2=H`x 8PWapy)9CNVaq{|hWwwww %4 B P_tmfyZL>3( " $ & (  * ,'.50@2K4X{6en8t_:Q<C>4@&BD FHJLNP,RNTv]V/XZ\R^;` b' dd of 8h j l n; pT rg ltt _v{ Xx~ Uz J| ~ .    -  I  e n1  RM  6i j  N  2  ! "#z>PQRSL+* T+UM,,3~T,,3~T,,3@T,{ $0<| >$w 2%&%'w()$*+z= **VNPQRS:,  T-WU:X/0 V:YW+W-WU:X :,Z[YSYS\{B%,1AFM S Y ` e ku|\ ,w-w.w/wr%&,[wAF0w`'1wkw() ,-. 23z1<+*3~=]3~>{$&'())$/,|*ll,4l1w#@56z +@+ @VN-_PQRS:+ T,W*WU:X,`:-a:0:6    3+ 3 {N89 ;<=?(@1A7B=CDDIFOGYH`IjJvKxI~N|f cl ,w7w-wnw(X%&D<'wO18Y'` 9w0 [G [[[[S[ '[() ,7-:z/*{-| ;<z:*+{-|;=>z/*{-| ;?z:*+{-|;=@yz> Y Y PY PY PY PY PY PY PY PY PY P Y PY PY PY PY PY PY PY PY PY P Y PY PY PY PY PY PY PY PY PY P"Y'Y Y PY PY PY PY PY PY PY PY PY P Y PY PY PY PY PY PY PY PY PY P Y PY PY PY PY PY PY PY PY PY Pb Y PY PY PY PY PY PY PY PY PY Pc YTYTYTY\TYTYcTYTYXTYTY TY TY TY TY TYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYT]{48kABf*1^e ^g^h ^i '^j