question: public static String encode ( byte [ ] input ) { if ( input . length == 0 ) { return "" ; } int zeros = 0 ; while ( zeros < input . length && input [ zeros ] == 0 ) { ++ zeros ; } input = Arrays . copyOf ( input , input . length ) ; char [ ] encoded = new char [ input . length * 2 ] ; int outputStart = encoded . length ; for ( int inputStart = zeros ; inputStart < input . length ; ) { encoded [ -- outputStart ] = ALPHABET [ divmod ( input , inputStart , 256 , 58 ) ] ; if ( input [ inputStart ] == 0 ) { ++ inputStart ; } } while ( outputStart < encoded . length && encoded [ outputStart ] == ENCODED_ZERO ) { ++ outputStart ; } while ( -- zeros >= 0 ) { encoded [ -- outputStart ] = ENCODED_ZERO ; } return new String ( encoded , outputStart , encoded . length - outputStart ) ; }
target:  Encodes the given bytes as a base58 string (no checksum is appended).