@NotNull
    CharSegment createPersistentCopy(boolean asBytes) {
      CharSequence string = (CharSequence)encodedString;
      Object newEncodedString;
      if (asBytes) {
        byte[] bytes = ArrayUtil.newByteArray(length());
        for (int i = 0; i < bytes.length; i++) {
          bytes[i] = (byte)string.charAt(i + start);
        }
        newEncodedString = bytes;
      }
      else {
        newEncodedString = string.subSequence(start, end);
      }
      return new CharSegment(newEncodedString, computedHc);
    }
@NotNull
    CharSegment createPersistentCopy(boolean asBytes)