6     static const char encoding[] = 
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 
   13         ret.resize(4 * size / 3 + 3);
 
   16         std::size_t chunks = size / 3;
 
   17         std::size_t remainder = size % 3;
 
   19         for(std::size_t i=0;i<chunks;i++, data += 3) {
 
   21             *
out++ = 
encoding[((data[0] & 0x3) << 4) | (data[1] >> 4)];
 
   22             *
out++ = 
encoding[((data[1] & 0xf) << 2) | (data[2] >> 6)];
 
   37                 *
out++ = 
encoding[((data[0] & 0x3) << 4) | (data[1] >> 4)];
 
   43         ret.resize(
out - &ret[0]);
 
   48         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   49         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   50         255,255,255,255,255,255,255,255,255,255,255, 62,255,255,255, 63,
 
   51          52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255,  0,255,255,
 
   52         255,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
 
   53          15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255,255,
 
   54         255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
 
   55          41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,255,255,255,255,255,
 
   56         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   57         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   58         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   59         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   60         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   61         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   62         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   63         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
 
   68         typedef std::vector<unsigned char> ret_type;
 
   72         ret_type ret(3 * input.size() / 4 + 1);
 
   73         unsigned char *
out = &ret[0];
 
   76         for(std::size_t i=0;i<input.size();i++) {
 
   77             unsigned char d = 
decoding[
static_cast<unsigned>(input[i])];
 
   81             value = (value << 6) | 
d;
 
   84                 if(i > 0 && input[i - 1] != 
'=')
 
   91         ret.resize(
out - &ret[0]);