code: public static byte[] decode(final String s) {
          int delta = s.endsWith("==") ? 2 : s.endsWith("=") ? 1 : 0;
          byte[] buffer = new byte[s.length() * BYTES_PER_UNENCODED_BLOCK / BYTES_PER_ENCODED_BLOCK - delta];
          int mask = 0xFF;
          int pos = 0;
          for (int i = 0; i < s.length(); i += BYTES_PER_ENCODED_BLOCK) {
              int c0 = DECODE_TABLE[s.charAt(i)];
              int c1 = DECODE_TABLE[s.charAt(i + 1)];
              buffer[pos++] = (byte) (((c0 << 2) | (c1 >> 4)) & mask);
              if (pos >= buffer.length) {
                  return buffer;
              }
              int c2 = DECODE_TABLE[s.charAt(i + 2)];
              buffer[pos++] = (byte) (((c1 << 4) | (c2 >> 2)) & mask);
              if (pos >= buffer.length) {
                  return buffer;
              }
              int c3 = DECODE_TABLE[s.charAt(i + 3)];
              buffer[pos++] = (byte) (((c2 << 6) | c3) & mask);
          }
          return buffer;
      }
docs: Decodes the given Base64-encoded string.
  
  @param s the Base64-encoded string
  @return the decoded byte array