code: private static int specialChar(char ch) {
          if ((ch > '\u0621' && ch < '\u0626') ||
              (ch == '\u0627') ||
              (ch > '\u062E' && ch < '\u0633') ||
              (ch > '\u0647' && ch < '\u064A') ||
              (ch == '\u0629')) {
              return 1;
          } else if (ch >= '\u064B' && ch<= '\u0652') {
              return 2;
          } else if (ch >= 0x0653 && ch <= 0x0655 ||
                     ch == 0x0670 ||
                     ch >= 0xFE70 && ch <= 0xFE7F) {
              return 3;
          } else {
              return 0;
          }
      }
docs: /*
  Name    : specialChar
  Function: Special Arabic characters need special handling in the shapeUnicode
  function, this function returns 1 or 2 for these special characters