docs: private static byte[] encode3to4(byte[] source, int srcOffset, int numSigBytes, byte[] destination,
  									 int destOffset) {
  		//           1         2         3
  		// 01234567890123456789012345678901 Bit position
  		// --------000000001111111122222222 Array position from threeBytes
  		// --------|    ||    ||    ||    | Six bit groups to index ALPHABET
  		//          >>18  >>12  >> 6  >> 0  Right shift necessary
  		//                0x3f  0x3f  0x3f  Additional AND
  
  		// Create buffer with zero-padding if there are only one or two
  		// significant bytes passed in the array.
  		// We have to shift left 24 in order to flush out the 1's that appear
  		// when Java treats a value as negative that is cast from a byte to an int.
  		int inBuff = (numSigBytes > 0 ? ((source[srcOffset] << SHIFT_3B) >>> SHIFT_1B) : 0)
  				| (numSigBytes > 1 ? ((source[srcOffset + 1] << SHIFT_3B) >>> SHIFT_2B) : 0)
  				| (numSigBytes > 2 ? ((source[srcOffset + 2] << SHIFT_3B) >>> SHIFT_3B) : 0);
  
  		switch (numSigBytes) {
  			case 3: // NOSONAR
  				destination[destOffset] = ALPHABET[(inBuff >>> SHIFT_3S)];
  				destination[destOffset + 1] = ALPHABET[(inBuff >>> SHIFT_2S) & BITS_6];
  				destination[destOffset + 2] = ALPHABET[(inBuff >>> SHIFT_1S) & BITS_6];
  				destination[destOffset + 3] = ALPHABET[(inBuff) & BITS_6]; // NOSONAR
  				return destination;
  
  			case 2:
  				destination[destOffset] = ALPHABET[(inBuff >>> SHIFT_3S)];
  				destination[destOffset + 1] = ALPHABET[(inBuff >>> SHIFT_2S) & BITS_6];
  				destination[destOffset + 2] = ALPHABET[(inBuff >>> SHIFT_1S) & BITS_6];
  				destination[destOffset + 3] = EQUALS_SIGN; // NOSONAR
  				return destination;
  
  			case 1:
  				destination[destOffset] = ALPHABET[(inBuff >>> SHIFT_3S)];
  				destination[destOffset + 1] = ALPHABET[(inBuff >>> SHIFT_2S) & BITS_6];
  				destination[destOffset + 2] = EQUALS_SIGN;
  				destination[destOffset + 3] = EQUALS_SIGN; // NOSONAR
  				return destination;
  
  			default:
  				return destination;
  		}
  	}