private static byte[] UrlEncodeNonAscii(byte[] bytes, int offset, int count, bool alwaysCreateNewReturnValue) { if (!XmlaHttpUtility.ValidateUrlEncodingParameters(bytes, offset, count)) { return(null); } int num = 0; for (int i = 0; i < count; i++) { if (XmlaHttpUtility.IsNonAsciiByte(bytes[offset + i])) { num++; } } if (!alwaysCreateNewReturnValue && num == 0) { return(bytes); } byte[] array = new byte[count + num * 2]; int num2 = 0; for (int j = 0; j < count; j++) { byte b = bytes[offset + j]; if (XmlaHttpUtility.IsNonAsciiByte(b)) { array[num2++] = 37; array[num2++] = (byte)XmlaHttpUtility.IntToHex(b >> 4 & 15); array[num2++] = (byte)XmlaHttpUtility.IntToHex((int)(b & 15)); } else { array[num2++] = b; } } return(array); }