code: @Pure
  	@SuppressWarnings("checkstyle:magicnumber")
  	public static char[] encode(byte[] in, int ilen) {
  		// output length without padding
  		final int oDataLen = (ilen * 4 + 2) / 3;
  		// output length including padding
  		final int oLen = ((ilen + 2) / 3) * 4;
  		final char[] out = new char[oLen];
  		int ip = 0;
  		int op = 0;
  		while (ip < ilen) {
  			final int i0 = in[ip++] & 0xff;
  			final int i1 = ip < ilen ? in[ip++] & 0xff : 0;
  			final int i2 = ip < ilen ? in[ip++] & 0xff : 0;
  			final int o0 = i0 >>> 2;
  			final int o1 = ((i0 &   3) << 4) | (i1 >>> 4);
  			final int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);
  			final int o3 = i2 & 0x3F;
  			out[op++] = map1[o0];
  			out[op++] = map1[o1];
  			out[op] = op < oDataLen ? map1[o2] : '=';
  			++op;
  			out[op] = op < oDataLen ? map1[o3] : '=';
  			++op;
  		}
  		return out;
  	}
docs: Encodes a byte array into Base64 format.
  No blanks or line breaks are inserted.
  @param in   an array containing the data bytes to be encoded.
  @param ilen number of bytes to process in <code>in</code>.
  @return     A character array with the Base64 encoded data.