urdu-text-utils
Version:
Comprehensive Urdu NLP & text processing toolkit: normalization, Roman Urdu transliteration, stop words, script detection, digits, diacritics (aerab), sorting, search, and statistics. Zero dependencies, ESM + CJS.
4,761 lines • 181 kB
JavaScript
'use strict';
// src/chars.ts
var DIACRITIC_RANGES = "\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06ED";
var DIACRITICS_RE = new RegExp(`[${DIACRITIC_RANGES}]`, "gu");
var TATWEEL_RE = /ـ/gu;
var INVISIBLE_RE = /[----]/gu;
var ZWNJ_RE = //gu;
var ARABIC_LETTER_RANGES = "\\u0620-\\u063F\\u0641-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFC";
var ARABIC_LETTER_RE = new RegExp(`[${ARABIC_LETTER_RANGES}]`, "u");
var ANY_LETTER_RE_G = /\p{L}/gu;
var URDU_DIGITS = "\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9";
var ARABIC_INDIC_DIGITS = "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669";
var ASCII_DIGITS = "0123456789";
var ANY_DIGIT_RE_G = new RegExp(`[${ASCII_DIGITS}${URDU_DIGITS}${ARABIC_INDIC_DIGITS}]`, "gu");
var SENTENCE_SPLIT_RE = /[۔؟?!.…]+/u;
var WORD_SPLIT_RE = /[\s،؛؟۔٫٬…!-\/:-@\[-`{-~‐-‧«»‘’“”]+/u;
var URDU_LETTERS = [
{ ch: "\u0627", roman: "a", vowel: true, aliases: ["\u0623", "\u0625", "\u0671", "\u0672", "\u0673"] },
// alef + hamza/wasla forms
{ ch: "\u0622", roman: "aa", vowel: true },
// alef madda — a real Urdu letter
{ ch: "\u0628", roman: "b" },
{ ch: "\u067E", roman: "p" },
{ ch: "\u062A", roman: "t" },
{ ch: "\u0679", roman: "t" },
{ ch: "\u062B", roman: "s" },
{ ch: "\u062C", roman: "j" },
{ ch: "\u0686", roman: "ch" },
{ ch: "\u062D", roman: "h" },
{ ch: "\u062E", roman: "kh" },
{ ch: "\u062F", roman: "d" },
{ ch: "\u0688", roman: "d" },
{ ch: "\u0630", roman: "z" },
{ ch: "\u0631", roman: "r" },
{ ch: "\u0691", roman: "r" },
{ ch: "\u0632", roman: "z" },
{ ch: "\u0698", roman: "zh" },
{ ch: "\u0633", roman: "s" },
{ ch: "\u0634", roman: "sh" },
{ ch: "\u0635", roman: "s" },
{ ch: "\u0636", roman: "z" },
{ ch: "\u0637", roman: "t" },
{ ch: "\u0638", roman: "z" },
{ ch: "\u0639", roman: "a", vowel: true },
{ ch: "\u063A", roman: "gh" },
{ ch: "\u0641", roman: "f" },
{ ch: "\u0642", roman: "q" },
{ ch: "\u06A9", roman: "k", aliases: ["\u0643", "\u06AA"] },
// arabic kaf, swash kaf
{ ch: "\u06AF", roman: "g" },
{ ch: "\u0644", roman: "l" },
{ ch: "\u0645", roman: "m" },
{ ch: "\u0646", roman: "n" },
{ ch: "\u06BA", roman: "n" },
// noon ghunna
{ ch: "\u0648", roman: "o", vowel: true, aliases: ["\u06CB", "\u06C6", "\u06C7"] },
// ve, oe, u
{ ch: "\u0624", roman: "o", vowel: true, variantOf: "\u0648" },
// waw with hamza — kept, hamza is meaningful
{ ch: "\u06C1", roman: "h", aliases: ["\u0647", "\u06C0", "\u0629", "\u06C3", "\u06D5"] },
// arabic heh, heh-yeh-above, teh marbuta, ae
{ ch: "\u06C2", roman: "h", vowel: true, variantOf: "\u06C1" },
// heh goal with hamza above
{ ch: "\u06BE", roman: "h" },
// do-chashmi heh — distinct letter, aspirates the consonant before it
{ ch: "\u0621", roman: "" },
// hamza
{ ch: "\u06CC", roman: "i", vowel: true, aliases: ["\u064A", "\u0649", "\u06CD", "\u06D0", "\u0620"] },
// arabic yeh, alef maksura, yeh-with-tail, pashto e, kashmiri yeh
{ ch: "\u0626", roman: "i", vowel: true, variantOf: "\u06CC" },
// yeh with hamza above
{ ch: "\u06D2", roman: "e", vowel: true },
// bari ye — distinct letter
{ ch: "\u06D3", roman: "e", vowel: true, variantOf: "\u06D2" }
// bari ye with hamza
];
// src/normalize.ts
var LETTER_MAP = {};
for (const { ch, aliases } of URDU_LETTERS) {
for (const alias of aliases ?? []) {
LETTER_MAP[alias] = ch;
}
}
var digitTargets = {
urdu: URDU_DIGITS,
english: ASCII_DIGITS,
arabic: ARABIC_INDIC_DIGITS
};
var PUNCTUATION_MAP = {
",": "\u060C",
// ،
";": "\u061B",
// ؛
"?": "\u061F"
// ؟
};
var DIGIT_LOOKUP = /* @__PURE__ */ new Map();
for (const set of [ASCII_DIGITS, URDU_DIGITS, ARABIC_INDIC_DIGITS]) {
for (let i = 0; i < 10; i++) DIGIT_LOOKUP.set(set[i], i);
}
function normalizeUrdu(input, options = {}) {
if (!input) return "";
const {
compatibility = true,
stripDiacritics = false,
stripTatweel = true,
stripZwnj = false,
collapseWhitespace = true,
digits = "preserve",
urduPunctuation = false
} = options;
let text = compatibility ? input.normalize("NFKC") : input.normalize("NFC");
text = text.replace(INVISIBLE_RE, "");
if (stripZwnj) text = text.replace(ZWNJ_RE, "");
if (stripTatweel) text = text.replace(TATWEEL_RE, "");
if (stripDiacritics) text = text.replace(DIACRITICS_RE, "");
const digitTarget = digits === "preserve" ? null : digitTargets[digits];
let out = "";
for (const ch of text) {
const mapped = LETTER_MAP[ch];
if (mapped !== void 0) {
out += mapped;
continue;
}
if (digitTarget) {
const value = DIGIT_LOOKUP.get(ch);
if (value !== void 0) {
out += digitTarget[value];
continue;
}
}
if (urduPunctuation) {
const punct = PUNCTUATION_MAP[ch];
if (punct !== void 0) {
out += punct;
continue;
}
}
out += ch;
}
if (collapseWhitespace) out = out.replace(/\s+/gu, " ").trim();
return out;
}
function removeDiacritics(input) {
if (!input) return "";
return input.normalize("NFC").replace(DIACRITICS_RE, "");
}
function foldUrdu(input) {
return normalizeUrdu(input, {
stripDiacritics: true,
stripZwnj: true,
collapseWhitespace: true
}).toLowerCase();
}
// src/numbers.ts
var SETS = {
urdu: URDU_DIGITS,
english: ASCII_DIGITS,
arabic: ARABIC_INDIC_DIGITS
};
var VALUE_OF = /* @__PURE__ */ new Map();
for (const set of Object.values(SETS)) {
for (let i = 0; i < 10; i++) VALUE_OF.set(set[i], i);
}
function convert(input, target) {
if (!input) return "";
const digits = SETS[target];
let out = "";
for (const ch of input) {
const value = VALUE_OF.get(ch);
out += value === void 0 ? ch : digits[value];
}
return out;
}
function toUrduDigits(input) {
return convert(input, "urdu");
}
function toEnglishDigits(input) {
return convert(input, "english");
}
function toArabicIndicDigits(input) {
return convert(input, "arabic");
}
function convertNumbers(input, to = "urdu") {
return convert(input, to);
}
function parseUrduNumber(input) {
if (!input) return NaN;
const ascii = toEnglishDigits(input).replace(/[٬,\s]/gu, "").replace(/٫/gu, ".");
if (!/^[+-]?(\d+(\.\d*)?|\.\d+)$/u.test(ascii)) return NaN;
return Number(ascii);
}
var ONES = ["", "\u0627\u06CC\u06A9", "\u062F\u0648", "\u062A\u06CC\u0646", "\u0686\u0627\u0631", "\u067E\u0627\u0646\u0686", "\u0686\u06BE", "\u0633\u0627\u062A", "\u0622\u0679\u06BE", "\u0646\u0648"];
var TEENS_AND_TENS = {
10: "\u062F\u0633",
11: "\u06AF\u06CC\u0627\u0631\u06C1",
12: "\u0628\u0627\u0631\u06C1",
13: "\u062A\u06CC\u0631\u06C1",
14: "\u0686\u0648\u062F\u06C1",
15: "\u067E\u0646\u062F\u0631\u06C1",
16: "\u0633\u0648\u0644\u06C1",
17: "\u0633\u062A\u0631\u06C1",
18: "\u0627\u0679\u06BE\u0627\u0631\u06C1",
19: "\u0627\u0646\u06CC\u0633",
20: "\u0628\u06CC\u0633",
30: "\u062A\u06CC\u0633",
40: "\u0686\u0627\u0644\u06CC\u0633",
50: "\u067E\u0686\u0627\u0633",
60: "\u0633\u0627\u0679\u06BE",
70: "\u0633\u062A\u0631",
80: "\u0627\u0633\u06CC",
90: "\u0646\u0648\u06D2",
100: "\u0633\u0648"
};
function numberToUrduWords(value) {
if (!Number.isFinite(value)) return "";
if (!Number.isInteger(value)) throw new TypeError("numberToUrduWords expects an integer");
if (value < 0) return `\u0645\u0646\u0641\u06CC ${numberToUrduWords(-value)}`;
if (value === 0) return "\u0635\u0641\u0631";
const scales = [
[1e7, "\u06A9\u0631\u0648\u0691"],
[1e5, "\u0644\u0627\u06A9\u06BE"],
[1e3, "\u06C1\u0632\u0627\u0631"],
[100, "\u0633\u0648"]
];
const parts = [];
let rest = value;
for (const [size, name] of scales) {
if (rest >= size) {
const count = Math.floor(rest / size);
rest %= size;
parts.push(`${numberToUrduWords(count)} ${name}`);
}
}
if (rest > 0) {
if (TEENS_AND_TENS[rest]) {
parts.push(TEENS_AND_TENS[rest]);
} else if (rest < 10) {
parts.push(ONES[rest]);
} else {
const tens = Math.floor(rest / 10) * 10;
parts.push(`${TEENS_AND_TENS[tens] ?? ""} ${ONES[rest % 10] ?? ""}`.trim());
}
}
return parts.join(" ").replace(/\s+/gu, " ").trim();
}
// src/detect.ts
function urduRatio(input) {
if (!input) return 0;
let letters = 0;
let urdu = 0;
for (const ch of input.match(ANY_LETTER_RE_G) ?? []) {
letters++;
if (ARABIC_LETTER_RE.test(ch)) urdu++;
}
return letters === 0 ? 0 : urdu / letters;
}
function isUrdu(input, options = {}) {
const { threshold = 0.5, minLetters = 1 } = options;
if (!input) return false;
let letters = 0;
let urdu = 0;
for (const ch of input.match(ANY_LETTER_RE_G) ?? []) {
letters++;
if (ARABIC_LETTER_RE.test(ch)) urdu++;
}
if (urdu < minLetters) return false;
return letters > 0 && urdu / letters >= threshold;
}
var URDU_ONLY = /* @__PURE__ */ new Set([
"\u0679",
// ٹ tteh
"\u0688",
// ڈ ddal
"\u0691",
// ڑ rreh
"\u06BA",
// ں noon ghunna
"\u06D2",
// ے bari ye
"\u06D3",
// ۓ bari ye with hamza
"\u06C1",
// ہ heh goal
"\u06BE",
// ھ do-chashmi heh
"\u06A9",
// ک keheh
"\u06AF",
// گ gaf
"\u0686",
// چ tcheh
"\u067E",
// پ peh
"\u0698",
// ژ jeh
"\u06CC"
// ی farsi yeh
]);
function hasUrduSpecificLetters(input) {
for (const ch of input) if (URDU_ONLY.has(ch)) return true;
return false;
}
// src/stats.ts
function countWords(input) {
return splitWords(input).length;
}
function splitWords(input) {
if (!input) return [];
return input.split(WORD_SPLIT_RE).map((w) => w.trim()).filter((w) => w.length > 0);
}
var ABBREVIATIONS = [
"\u0688\u0627\u06A9\u0679\u0631",
"\u067E\u0631\u0648\u0641\u06CC\u0633\u0631",
"\u0627\u0646\u062C\u06CC\u0646\u0626\u0631",
"\u0627\u06CC\u0688\u0648\u0648\u06A9\u06CC\u0679",
"\u062C\u0646\u0627\u0628",
"\u0635\u0627\u062D\u0628",
"\u0635\u0627\u062D\u0628\u06C1",
"\u0645\u062D\u062A\u0631\u0645",
"\u0645\u062D\u062A\u0631\u0645\u06C1",
"\u0645\u0648\u0644\u0627\u0646\u0627",
"\u0645\u0641\u062A\u06CC",
"\u0639\u0644\u0627\u0645\u06C1",
"\u0628\u06CC\u06AF\u0645",
"\u0648\u063A\u06CC\u0631\u06C1",
"\u0631\u062D\u0645\u062A\u06C1",
"\u0631\u0636\u06CC",
"\u062A\u0639\u0627\u0644\u06CC",
"\u062A\u0639\u0627\u0644\u06CC\u0670",
"\u0639\u0644\u06CC\u06C1",
"\u0627\u0644\u0633\u0644\u0627\u0645",
"\u0635\u0644\u06CC",
"\u0648\u0633\u0644\u0645"
];
var ABBREV_PATTERN = new RegExp(`(?:${ABBREVIATIONS.join("|")})[.\u06D4]`, "gu");
function countSentences(input, options) {
return splitSentences(input, options).length;
}
function splitSentences(input, options = {}) {
if (!input) return [];
const { preserveTerminators = false } = options;
const PROTECTED_DOT = "\uE000";
const PROTECTED_URDU_FULL_STOP = "\uE001";
let sanitized = input.replace(/(\d)\.(\d)/gu, `$1${PROTECTED_DOT}$2`).replace(ABBREV_PATTERN, (match) => {
return match.replace(/\./g, PROTECTED_DOT).replace(/۔/g, PROTECTED_URDU_FULL_STOP);
});
if (preserveTerminators) {
const matches = sanitized.match(/[^۔؟?!.…]+[۔؟?!.…]+|[^۔؟?!.…]+$/gu) ?? [];
return matches.map(
(s) => s.replace(new RegExp(PROTECTED_DOT, "gu"), ".").replace(new RegExp(PROTECTED_URDU_FULL_STOP, "gu"), "\u06D4").trim()
).filter((s) => s.length > 0);
}
return sanitized.split(SENTENCE_SPLIT_RE).map(
(s) => s.replace(new RegExp(PROTECTED_DOT, "gu"), ".").replace(new RegExp(PROTECTED_URDU_FULL_STOP, "gu"), "\u06D4").trim()
).filter((s) => s.length > 0);
}
function analyzeUrdu(input) {
const text = input ?? "";
const characters = [...text].length;
const charactersNoSpaces = [...text.replace(/\s/gu, "")].length;
const words = countWords(text);
const sentences = countSentences(text);
const paragraphs = text.split(/\n\s*\n/u).map((p) => p.trim()).filter((p) => p.length > 0).length;
return {
characters,
charactersNoSpaces,
words,
sentences,
paragraphs,
urduPercentage: Math.round(urduRatio(text) * 100),
diacritics: (text.match(DIACRITICS_RE) ?? []).length,
digits: (text.match(ANY_DIGIT_RE_G) ?? []).length,
averageWordsPerSentence: sentences === 0 ? 0 : Math.round(words / sentences * 10) / 10,
readingTimeMinutes: Math.round(words / 180 * 10) / 10
};
}
// src/stopwords.ts
var URDU_STOP_WORDS = /* @__PURE__ */ new Set([
// Tense auxiliaries & copulas
"\u06C1\u06D2",
"\u06C1\u06CC\u06BA",
"\u06C1\u0648\u06BA",
"\u06C1\u0648",
"\u062A\u06BE\u0627",
"\u062A\u06BE\u06CC",
"\u062A\u06BE\u06D2",
"\u062A\u06BE\u06CC\u06BA",
"\u06C1\u0648\u06AF\u0627",
"\u06C1\u0648\u06AF\u06CC",
"\u06C1\u0648\u0646\u06AF\u06D2",
"\u06C1\u0648\u06BA\u06AF\u06D2",
"\u06C1\u0648\u0646\u0627",
"\u06C1\u0648\u0646\u06D2",
"\u06C1\u0648\u0627",
"\u06C1\u0648\u0626\u06CC",
"\u06C1\u0648\u0626\u06D2",
// Postpositions, relations & prepositions
"\u06A9\u0627",
"\u06A9\u06CC",
"\u06A9\u06D2",
"\u06A9\u0648",
"\u0646\u06D2",
"\u0633\u06D2",
"\u067E\u0631",
"\u062A\u06A9",
"\u0645\u06CC\u06BA",
"\u0644\u06CC\u06D2",
"\u0633\u0627\u062A\u06BE",
"\u0628\u063A\u06CC\u0631",
"\u0637\u0631\u062D",
"\u0637\u0631\u0641",
"\u0628\u0627\u0631\u06D2",
"\u0628\u0639\u062F",
"\u067E\u06C1\u0644\u06D2",
"\u062F\u0648\u0631\u0627\u0646",
"\u062F\u0631\u0645\u06CC\u0627\u0646",
"\u0639\u0644\u0627\u0648\u06C1",
"\u0633\u0648\u0627\u0626\u06D2",
"\u0633\u0648\u0627",
"\u0645\u0637\u0627\u0628\u0642",
"\u0628\u0627\u0639\u062B",
"\u0630\u0631\u06CC\u0639\u06D2",
"\u062A\u062D\u062A",
"\u0627\u0648\u067E\u0631",
"\u0646\u06CC\u0686\u06D2",
"\u0622\u06AF\u06D2",
"\u067E\u06CC\u0686\u06BE\u06D2",
"\u0627\u0646\u062F\u0631",
"\u0628\u0627\u06C1\u0631",
"\u067E\u0627\u0633",
"\u0642\u0631\u06CC\u0628",
"\u0646\u0632\u062F\u06CC\u06A9",
// Conjunctions & discourse markers
"\u0627\u0648\u0631",
"\u06CC\u0627",
"\u0627\u06AF\u0631",
"\u0644\u06CC\u06A9\u0646",
"\u0645\u06AF\u0631",
"\u062A\u0648",
"\u0628\u06BE\u06CC",
"\u06C1\u06CC",
"\u0646\u06C1",
"\u0646\u06C1\u06CC\u06BA",
"\u0645\u062A",
"\u0646\u0627",
"\u0628\u0644\u06A9\u06C1",
"\u062D\u0627\u0644\u0627\u0646\u06A9\u06C1",
"\u0686\u0648\u0646\u06A9\u06C1",
"\u06A9\u06CC\u0648\u0646\u06A9\u06C1",
"\u062A\u0627\u06A9\u06C1",
"\u0648\u0631\u0646\u06C1",
"\u0627\u0644\u0628\u062A\u06C1",
"\u0645\u062B\u0644\u0627\u064B",
"\u06CC\u0639\u0646\u06CC",
"\u062E\u0635\u0648\u0635\u0627\u064B",
"\u0639\u0645\u0648\u0645\u0627\u064B",
"\u0686\u0646\u0627\u0646\u0686\u06C1",
"\u062E\u0648\u0627\u06C1",
"\u0686\u0627\u06C1\u06D2",
"\u06AF\u0648\u06CC\u0627",
"\u062A\u0627\u06C1\u0645",
"\u0646\u06CC\u0632",
"\u062D\u062A\u06CC",
"\u0648\u063A\u06CC\u0631\u06C1",
"\u0635\u0631\u0641",
"\u0645\u062D\u0636",
"\u0641\u0642\u0637",
// Pronouns, determiners & question words
"\u06C1\u0645",
"\u062A\u0645",
"\u0622\u067E",
"\u0648\u06C1",
"\u06CC\u06C1",
"\u0645\u06CC\u0631\u0627",
"\u0645\u06CC\u0631\u06CC",
"\u0645\u06CC\u0631\u06D2",
"\u06C1\u0645\u0627\u0631\u0627",
"\u06C1\u0645\u0627\u0631\u06CC",
"\u06C1\u0645\u0627\u0631\u06D2",
"\u062A\u0645\u06C1\u0627\u0631\u0627",
"\u062A\u0645\u06C1\u0627\u0631\u06CC",
"\u062A\u0645\u06C1\u0627\u0631\u06D2",
"\u0622\u067E\u06A9\u0627",
"\u0622\u067E\u06A9\u06CC",
"\u0622\u067E\u06A9\u06D2",
"\u0627\u0633",
"\u0627\u0633\u06A9\u0627",
"\u0627\u0633\u06A9\u06CC",
"\u0627\u0633\u06A9\u06D2",
"\u0627\u0633\u06D2",
"\u0627\u0646",
"\u0627\u0646\u06A9\u0627",
"\u0627\u0646\u06A9\u06CC",
"\u0627\u0646\u06A9\u06D2",
"\u0627\u0646\u06C1\u06CC\u06BA",
"\u0645\u062C\u06BE\u06D2",
"\u06C1\u0645\u06CC\u06BA",
"\u062A\u0645\u06C1\u06CC\u06BA",
"\u062C\u0633",
"\u062C\u0633\u06A9\u0627",
"\u062C\u0633\u06A9\u06CC",
"\u062C\u0633\u06A9\u06D2",
"\u062C\u0633\u06D2",
"\u062C\u0646",
"\u062C\u0646\u06A9\u0627",
"\u062C\u0646\u06A9\u06CC",
"\u062C\u0646\u06A9\u06D2",
"\u062C\u0646\u06C1\u0648\u06BA",
"\u0627\u0646\u06C1\u0648\u06BA",
"\u06A9\u0633",
"\u06A9\u0633\u06A9\u0627",
"\u06A9\u0633\u06A9\u06CC",
"\u06A9\u0633\u06A9\u06D2",
"\u06A9\u0633\u06D2",
"\u06A9\u0633\u06A9\u0648",
"\u06A9\u0648\u0646",
"\u06A9\u06CC\u0627",
"\u06A9\u06C1\u0627\u06BA",
"\u06A9\u062F\u06BE\u0631",
"\u0627\u062F\u06BE\u0631",
"\u062C\u062F\u06BE\u0631",
"\u06A9\u0628",
"\u06A9\u06CC\u0648\u06BA",
"\u06A9\u06CC\u0633\u06D2",
"\u06A9\u06CC\u0633\u0627",
"\u06A9\u06CC\u0633\u06CC",
"\u06A9\u062A\u0646\u0627",
"\u06A9\u062A\u0646\u06CC",
"\u06A9\u062A\u0646\u06D2",
"\u062C\u0648",
"\u0633\u0628",
"\u0633\u0628\u06BE\u06CC",
"\u06A9\u0648\u0626\u06CC",
"\u06A9\u0686\u06BE",
"\u06C1\u0631",
"\u0627\u06CC\u06A9",
"\u0627\u067E\u0646\u0627",
"\u0627\u067E\u0646\u06CC",
"\u0627\u067E\u0646\u06D2",
"\u062E\u0648\u062F",
// Common light/auxiliary verb forms
"\u06A9\u0631\u0646\u0627",
"\u06A9\u0631\u062A\u0627",
"\u06A9\u0631\u062A\u06CC",
"\u06A9\u0631\u062A\u06D2",
"\u06A9\u0631\u06CC\u06BA",
"\u06A9\u0631\u0648",
"\u06A9\u0631",
"\u06A9\u0631\u0646\u06D2",
"\u06A9\u06CC\u06D2",
"\u062C\u0627\u0646\u0627",
"\u062C\u0627\u062A\u0627",
"\u062C\u0627\u062A\u06CC",
"\u062C\u0627\u062A\u06D2",
"\u062C\u0627\u0626\u06D2",
"\u062C\u0627\u0626\u06CC\u06BA",
"\u062C\u0627\u0624",
"\u062C\u0627",
"\u062C\u0627\u0646\u06D2",
"\u06AF\u06CC\u0627",
"\u06AF\u0626\u06CC",
"\u06AF\u0626\u06D2",
"\u0622\u0646\u0627",
"\u0622\u062A\u0627",
"\u0622\u062A\u06CC",
"\u0622\u062A\u06D2",
"\u0622\u0626\u06D2",
"\u0622\u0626\u06CC\u06BA",
"\u0622\u06CC\u0627",
"\u0622\u0626\u06CC",
"\u0622\u0646\u06D2",
"\u0622\u0624",
"\u0622",
"\u062F\u06CC\u0646\u0627",
"\u062F\u06CC\u062A\u0627",
"\u062F\u06CC\u062A\u06CC",
"\u062F\u06CC\u062A\u06D2",
"\u062F\u06CC\u0627",
"\u062F\u06CC\u06D2",
"\u062F\u06D2",
"\u062F\u0648",
"\u062F\u06CC\u06BA",
"\u062F\u06CC\u0646\u06D2",
"\u0644\u06CC\u0646\u0627",
"\u0644\u06CC\u062A\u0627",
"\u0644\u06CC\u062A\u06CC",
"\u0644\u06CC\u062A\u06D2",
"\u0644\u06CC\u0627",
"\u0644\u06D2",
"\u0644\u0648",
"\u0644\u06CC\u06BA",
"\u0644\u06CC\u0646\u06D2",
"\u0631\u06C1\u0646\u0627",
"\u0631\u06C1\u0627",
"\u0631\u06C1\u06CC",
"\u0631\u06C1\u06D2",
"\u0631\u06C1\u062A\u0627",
"\u0631\u06C1\u062A\u06CC",
"\u0631\u06C1\u062A\u06D2",
"\u0631\u06C1\u0646\u06D2",
"\u0633\u06A9\u0646\u0627",
"\u0633\u06A9\u062A\u0627",
"\u0633\u06A9\u062A\u06CC",
"\u0633\u06A9\u062A\u06D2",
"\u0648\u0627\u0644\u0627",
"\u0648\u0627\u0644\u06CC",
"\u0648\u0627\u0644\u06D2"
]);
function toStopWordSet(custom) {
if (!custom) return URDU_STOP_WORDS;
if (custom instanceof Set) return custom;
return new Set(custom.map((w) => normalizeUrdu(w.trim())));
}
function isStopWord(word, customStopWords) {
if (!word) return false;
const normalized = normalizeUrdu(word.trim());
const stopSet = toStopWordSet(customStopWords);
return stopSet.has(normalized);
}
function filterStopWords(words, customStopWords) {
if (!words || words.length === 0) return [];
const stopSet = toStopWordSet(customStopWords);
return words.filter((w) => {
const normalized = normalizeUrdu(w.trim());
return normalized.length > 0 && !stopSet.has(normalized);
});
}
function removeStopWords(text, customStopWords) {
if (!text) return "";
const words = splitWords(text);
const filtered = filterStopWords(words, customStopWords);
return filtered.join(" ");
}
// src/collate.ts
var PRIMARY_LETTERS = URDU_LETTERS.filter((letter) => letter.variantOf === void 0);
var WEIGHTS = /* @__PURE__ */ new Map();
PRIMARY_LETTERS.forEach((letter, index) => WEIGHTS.set(letter.ch, [(index + 1) * 10, 0]));
for (const letter of URDU_LETTERS) {
if (letter.variantOf === void 0) continue;
const baseWeight = WEIGHTS.get(letter.variantOf);
if (baseWeight) WEIGHTS.set(letter.ch, [baseWeight[0], 1]);
}
var NON_LETTER_BASE = (PRIMARY_LETTERS.length + 1) * 10;
function weightsOf(text) {
const out = [];
for (const ch of text) {
const weight = WEIGHTS.get(ch);
if (weight) {
out.push(weight[0], weight[1]);
} else if (ch === " ") {
out.push(1, 0);
} else {
out.push(NON_LETTER_BASE + (ch.codePointAt(0) ?? 0), 0);
}
}
return out;
}
function compareUrdu(a, b) {
const left = weightsOf(foldUrdu(a));
const right = weightsOf(foldUrdu(b));
const length = Math.min(left.length, right.length);
for (let i = 0; i < length; i++) {
const diff = left[i] - right[i];
if (diff !== 0) return diff;
}
return left.length - right.length;
}
function sortUrdu(items, options = {}) {
const { descending = false, getText } = options;
const key = getText ?? ((item) => String(item));
const sorted = [...items].sort((a, b) => compareUrdu(key(a), key(b)));
return descending ? sorted.reverse() : sorted;
}
// src/search.ts
function editDistance(a, b, limit = Infinity) {
if (a === b) return 0;
if (Math.abs(a.length - b.length) > limit) return limit + 1;
let previous = Array.from({ length: b.length + 1 }, (_, i) => i);
let current = new Array(b.length + 1);
for (let i = 1; i <= a.length; i++) {
current[0] = i;
let rowMin = current[0];
for (let j = 1; j <= b.length; j++) {
const cost = a[i - 1] === b[j - 1] ? 0 : 1;
current[j] = Math.min(current[j - 1] + 1, previous[j] + 1, previous[j - 1] + cost);
rowMin = Math.min(rowMin, current[j]);
}
if (rowMin > limit) return limit + 1;
[previous, current] = [current, previous];
}
return previous[b.length];
}
function scoreOf(query, text, options) {
if (!query) return 0;
if (text === query) return 1;
if (text.startsWith(query)) return 0.9;
if (text.includes(query)) return 0.8;
if (!options.fuzzy) return 0;
const queryWords = splitWords(query);
const textWords = splitWords(text);
if (queryWords.length === 0 || textWords.length === 0) return 0;
let matched = 0;
for (const qw of queryWords) {
const limit = Math.min(options.maxDistance, Math.max(1, Math.floor(qw.length / 3)));
const hit = textWords.some(
(tw) => tw.includes(qw) || editDistance(qw, tw, limit) <= limit
);
if (hit) matched++;
}
if (matched === 0) return 0;
return matched / queryWords.length * 0.7;
}
function searchUrdu(query, items, options = {}) {
return searchUrduRanked(query, items, options).map((r) => r.item);
}
function searchUrduRanked(query, items, options = {}) {
const { getText, fuzzy = false, maxDistance = 1, limit, sortByScore = true } = options;
const read = getText ?? ((item) => String(item));
const folded = foldUrdu(query);
if (!folded) return [];
const results = [];
for (const item of items) {
const score = scoreOf(folded, foldUrdu(read(item)), { fuzzy, maxDistance });
if (score > 0) results.push({ item, score });
}
if (sortByScore) results.sort((a, b) => b.score - a.score);
return limit === void 0 ? results : results.slice(0, limit);
}
function highlightUrdu(text, query, wrap = (m) => `<mark>${m}</mark>`) {
const foldedQuery = foldUrdu(query);
if (!foldedQuery || !text) return text;
const sourceChars = [...text];
const foldedChars = [];
const sourceIndexOf = [];
sourceChars.forEach((ch, i) => {
const folded = normalizeUrdu(ch, {
stripDiacritics: true,
stripZwnj: true,
collapseWhitespace: false
}).toLowerCase();
for (const f of folded) {
foldedChars.push(f);
sourceIndexOf.push(i);
}
});
const haystack = foldedChars.join("");
let out = "";
let cursor = 0;
let from = 0;
for (; ; ) {
const hit = haystack.indexOf(foldedQuery, from);
if (hit === -1) break;
const startSource = sourceIndexOf[hit];
const endSource = (sourceIndexOf[hit + foldedQuery.length - 1] ?? startSource) + 1;
out += sourceChars.slice(cursor, startSource).join("");
out += wrap(sourceChars.slice(startSource, endSource).join(""));
cursor = endSource;
from = hit + foldedQuery.length;
}
out += sourceChars.slice(cursor).join("");
return out;
}
// src/dictionary.ts
var WORD_DICTIONARY = {
// ---- pronouns, determiners, question words ----
"\u0645\u06CC\u06BA": "mein",
"\u06C1\u0645": "hum",
"\u062A\u0645": "tum",
"\u0622\u067E": "aap",
"\u0648\u06C1": "woh",
"\u06CC\u06C1": "yeh",
"\u0645\u06CC\u0631\u0627": "mera",
"\u0645\u06CC\u0631\u06CC": "meri",
"\u0645\u06CC\u0631\u06D2": "mere",
"\u06C1\u0645\u0627\u0631\u0627": "hamara",
"\u06C1\u0645\u0627\u0631\u06CC": "hamari",
"\u06C1\u0645\u0627\u0631\u06D2": "hamaray",
"\u062A\u0645\u06C1\u0627\u0631\u0627": "tumhara",
"\u062A\u0645\u06C1\u0627\u0631\u06CC": "tumhari",
"\u062A\u0645\u06C1\u0627\u0631\u06D2": "tumharay",
"\u0622\u067E\u06A9\u0627": "aapka",
"\u0622\u067E\u06A9\u06CC": "aapki",
"\u0622\u067E\u06A9\u06D2": "aapke",
"\u0627\u0633": "is",
"\u0627\u0633\u06A9\u0627": "iska",
"\u0627\u0633\u06A9\u06CC": "iski",
"\u0627\u0633\u06A9\u06D2": "iske",
"\u0627\u0646": "un",
"\u0627\u0646\u06A9\u0627": "unka",
"\u0627\u0646\u06A9\u06CC": "unki",
"\u0627\u0646\u06A9\u06D2": "unke",
"\u0645\u062C\u06BE\u06D2": "mujhe",
"\u06C1\u0645\u06CC\u06BA": "humein",
"\u062A\u0645\u06C1\u06CC\u06BA": "tumhein",
"\u0627\u0646\u06C1\u06CC\u06BA": "unhein",
"\u0627\u0633\u06D2": "isay",
"\u062C\u0633\u06D2": "jisay",
"\u06A9\u0633\u06D2": "kisay",
"\u06A9\u0633": "kis",
"\u06A9\u0633\u06A9\u0627": "kiska",
"\u06A9\u0633\u06A9\u06CC": "kiski",
"\u06A9\u0633\u06A9\u06D2": "kiske",
"\u06A9\u0633\u06A9\u0648": "kisko",
"\u062C\u0646": "jin",
"\u062C\u0646\u06A9\u0627": "jinka",
"\u062C\u0646\u06A9\u06CC": "jinki",
"\u062C\u0646\u06A9\u06D2": "jinke",
"\u062C\u0646\u06C1\u0648\u06BA": "jinhon",
"\u0627\u0646\u06C1\u0648\u06BA": "unhon",
"\u0627\u067E\u0646\u0627": "apna",
"\u0627\u067E\u0646\u06CC": "apni",
"\u0627\u067E\u0646\u06D2": "apnay",
"\u062E\u0648\u062F": "khud",
"\u06A9\u0648\u0646": "kaun",
"\u06A9\u06CC\u0627": "kya",
"\u06A9\u06C1\u0627\u06BA": "kahan",
"\u06A9\u062F\u06BE\u0631": "kidhar",
"\u0627\u062F\u06BE\u0631": "idhar",
"\u062C\u062F\u06BE\u0631": "jidhar",
"\u06A9\u0628": "kab",
"\u06A9\u06CC\u0648\u06BA": "kyun",
"\u06A9\u06CC\u0633\u06D2": "kaisay",
"\u06A9\u06CC\u0633\u0627": "kaisa",
"\u06A9\u06CC\u0633\u06CC": "kaisi",
"\u06A9\u062A\u0646\u0627": "kitna",
"\u06A9\u062A\u0646\u06CC": "kitni",
"\u06A9\u062A\u0646\u06D2": "kitnay",
"\u062C\u0648": "jo",
"\u062C\u0633": "jis",
"\u062C\u0633\u06A9\u0648": "jisko",
"\u062C\u0633\u06A9\u0627": "jiska",
"\u062C\u0633\u06A9\u06CC": "jiski",
"\u062C\u0633\u06A9\u06D2": "jiske",
"\u0633\u0628": "sab",
"\u0633\u0628\u06BE\u06CC": "sabhi",
"\u06A9\u0648\u0626\u06CC": "koi",
"\u06A9\u0686\u06BE": "kuch",
"\u06C1\u0631": "har",
"\u0627\u06CC\u06A9": "aik",
// ---- function words, prepositions, conjunctions ----
"\u0627\u0648\u0631": "aur",
"\u06CC\u0627": "ya",
"\u0627\u06AF\u0631": "agar",
"\u0644\u06CC\u06A9\u0646": "lekin",
"\u0645\u06AF\u0631": "magar",
"\u062A\u0648": "to",
"\u0628\u06BE\u06CC": "bhi",
"\u0646\u06C1": "na",
"\u0646\u06C1\u06CC\u06BA": "nahi",
"\u0645\u062A": "mat",
"\u06A9\u0627": "ka",
"\u06A9\u06CC": "ki",
"\u06A9\u06D2": "ke",
"\u06A9\u0648": "ko",
"\u0646\u06D2": "ne",
"\u0633\u06D2": "se",
"\u067E\u0631": "par",
"\u062A\u06A9": "tak",
"\u0644\u06CC\u06D2": "liye",
"\u0633\u0627\u062A\u06BE": "sath",
"\u0628\u063A\u06CC\u0631": "baghair",
"\u0648\u062C\u06C1": "wajah",
"\u0637\u0631\u062D": "tarah",
"\u0637\u0631\u0641": "taraf",
"\u0628\u0627\u0631\u06D2": "baray",
"\u0628\u0639\u062F": "baad",
"\u067E\u06C1\u0644\u06D2": "pehlay",
"\u062F\u0648\u0631\u0627\u0646": "doran",
"\u062F\u0631\u0645\u06CC\u0627\u0646": "darmiyan",
"\u0639\u0644\u0627\u0648\u06C1": "alawa",
"\u0633\u0648\u0627\u0626\u06D2": "siwaye",
"\u0633\u0648\u0627": "siwa",
"\u0645\u0637\u0627\u0628\u0642": "mutabiq",
"\u0628\u0627\u0639\u062B": "baais",
"\u0630\u0631\u06CC\u0639\u06D2": "zariye",
"\u062A\u062D\u062A": "tehat",
"\u062E\u0644\u0627\u0641": "khilaf",
"\u062D\u0642": "haq",
"\u062D\u062A\u06CC": "hatta",
"\u06AF\u0648\u06CC\u0627": "goya",
"\u0686\u0646\u0627\u0646\u0686\u06C1": "chunancha",
"\u062E\u0648\u0627\u06C1": "khwah",
"\u0686\u0627\u06C1\u06D2": "chahe",
"\u0628\u0644\u06A9\u06C1": "balkeh",
"\u062D\u0627\u0644\u0627\u0646\u06A9\u06C1": "halankeh",
"\u0686\u0648\u0646\u06A9\u06C1": "chunkeh",
"\u06A9\u06CC\u0648\u0646\u06A9\u06C1": "kyunkeh",
"\u062A\u0627\u06A9\u06C1": "taakeh",
"\u0648\u0631\u0646\u06C1": "warna",
"\u0627\u0644\u0628\u062A\u06C1": "albatta",
"\u0645\u062B\u0644\u0627\u064B": "maslan",
"\u06CC\u0639\u0646\u06CC": "yaani",
"\u062E\u0635\u0648\u0635\u0627\u064B": "khasosan",
"\u0639\u0645\u0648\u0645\u0627\u064B": "amuman",
"\u0641\u0648\u0631\u0627\u064B": "fauran",
"\u062F\u0648\u0628\u0627\u0631\u06C1": "dobara",
"\u06CC\u0642\u06CC\u0646\u0627\u064B": "yaqeenan",
"\u062A\u0642\u0631\u06CC\u0628\u0627\u064B": "taqreeban",
"\u0628\u0639\u0636": "baaz",
"\u062A\u0645\u0627\u0645": "tamam",
"\u067E\u0648\u0631\u0627": "poora",
"\u067E\u0648\u0631\u06CC": "poori",
"\u067E\u0648\u0631\u06D2": "pooray",
"\u0622\u062F\u06BE\u0627": "aadha",
"\u062F\u0648\u0646\u0648\u06BA": "donon",
"\u062A\u06CC\u0646\u0648\u06BA": "teenon",
"\u0686\u0627\u0631\u0648\u06BA": "charon",
"\u0633\u0627\u0631\u0627": "sara",
"\u0633\u0627\u0631\u06CC": "sari",
"\u0633\u0627\u0631\u06D2": "saray",
"\u0628\u0627\u0642\u06CC": "baqi",
// ---- place and direction ----
"\u06CC\u06C1\u0627\u06BA": "yahan",
"\u0648\u06C1\u0627\u06BA": "wahan",
"\u06A9\u06C1\u06CC\u06BA": "kahin",
"\u0648\u06C1\u06CC\u06BA": "wahin",
"\u06CC\u06C1\u06CC\u06BA": "yahin",
"\u0633\u0627\u0645\u0646\u06D2": "samnay",
"\u067E\u06CC\u0686\u06BE\u06D2": "peechay",
"\u0622\u06AF\u06D2": "agay",
"\u0627\u0648\u067E\u0631": "oopar",
"\u0646\u06CC\u0686\u06D2": "neechay",
"\u0627\u0646\u062F\u0631": "andar",
"\u0628\u0627\u06C1\u0631": "bahar",
"\u067E\u0627\u0633": "paas",
"\u062F\u0648\u0631": "door",
"\u0642\u0631\u06CC\u0628": "qareeb",
"\u062F\u0627\u0626\u06CC\u06BA": "dayen",
"\u0628\u0627\u0626\u06CC\u06BA": "bayen",
"\u0633\u06CC\u062F\u06BE\u0627": "seedha",
"\u0627\u0644\u0679\u0627": "ulta",
"\u0634\u0645\u0627\u0644": "shumal",
"\u062C\u0646\u0648\u0628": "janoob",
"\u0645\u0634\u0631\u0642": "mashriq",
"\u0645\u063A\u0631\u0628": "maghrib",
"\u0648\u0633\u0637": "wast",
// ---- to be, and tense auxiliaries ----
"\u06C1\u06D2": "hai",
"\u06C1\u06CC\u06BA": "hain",
"\u06C1\u0648\u06BA": "hoon",
"\u06C1\u0648": "ho",
"\u062A\u06BE\u0627": "tha",
"\u062A\u06BE\u06CC": "thi",
"\u062A\u06BE\u06D2": "thay",
"\u062A\u06BE\u06CC\u06BA": "thein",
"\u06C1\u0648\u06AF\u0627": "hoga",
"\u06C1\u0648\u06AF\u06CC": "hogi",
"\u06C1\u0648\u0646\u06AF\u06D2": "honge",
"\u06C1\u0648\u06BA\u06AF\u06D2": "honge",
"\u06C1\u0648\u0646\u0627": "hona",
"\u06C1\u0648\u0627": "hua",
"\u06C1\u0648\u0626\u06CC": "hui",
"\u06C1\u0648\u0626\u06D2": "hue",
// ---- common verbs & inflections ----
"\u06A9\u0631\u0646\u0627": "karna",
"\u06A9\u0631\u062A\u0627": "karta",
"\u06A9\u0631\u062A\u06CC": "karti",
"\u06A9\u0631\u062A\u06D2": "karte",
"\u06A9\u0631\u06CC\u06BA": "karain",
"\u06A9\u0631\u0648": "karo",
"\u06A9\u0631": "kar",
"\u06A9\u0631\u0646\u06D2": "karne",
"\u06A9\u06CC\u06D2": "kiye",
"\u062C\u0627\u0646\u0627": "jana",
"\u062C\u0627\u062A\u0627": "jata",
"\u062C\u0627\u062A\u06CC": "jati",
"\u062C\u0627\u062A\u06D2": "jate",
"\u062C\u0627\u0626\u06D2": "jaye",
"\u062C\u0627\u0626\u06CC\u06BA": "jayen",
"\u062C\u0627\u0624": "jao",
"\u062C\u0627": "ja",
"\u062C\u0627\u0646\u06D2": "jane",
"\u06AF\u06CC\u0627": "gaya",
"\u06AF\u0626\u06CC": "gayi",
"\u06AF\u0626\u06D2": "gaye",
"\u0622\u0646\u0627": "aana",
"\u0622\u062A\u0627": "aata",
"\u0622\u062A\u06CC": "aati",
"\u0622\u062A\u06D2": "aate",
"\u0622\u0626\u06D2": "aaye",
"\u0622\u0626\u06CC\u06BA": "aayen",
"\u0622\u06CC\u0627": "aaya",
"\u0622\u0626\u06CC": "aayi",
"\u0622\u0646\u06D2": "aane",
"\u0622\u0624": "aao",
"\u0622": "aa",
"\u062F\u06CC\u0646\u0627": "dena",
"\u062F\u06CC\u062A\u0627": "deta",
"\u062F\u06CC\u062A\u06CC": "deti",
"\u062F\u06CC\u062A\u06D2": "dete",
"\u062F\u06CC\u0627": "diya",
"\u062F\u06CC\u06D2": "diye",
"\u062F\u06D2": "de",
"\u062F\u0648": "do",
"\u062F\u06CC\u06BA": "dain",
"\u062F\u06CC\u0646\u06D2": "dene",
"\u0644\u06CC\u0646\u0627": "lena",
"\u0644\u06CC\u062A\u0627": "leta",
"\u0644\u06CC\u062A\u06CC": "leti",
"\u0644\u06CC\u062A\u06D2": "lete",
"\u0644\u06CC\u0627": "liya",
"\u0644\u06D2": "le",
"\u0644\u0648": "lo",
"\u0644\u06CC\u06BA": "lain",
"\u0644\u06CC\u0646\u06D2": "lene",
"\u06A9\u06C1\u0646\u0627": "kehna",
"\u06A9\u06C1\u0627": "kaha",
"\u06A9\u06C1\u062A\u0627": "kehta",
"\u06A9\u06C1\u062A\u06CC": "kehti",
"\u06A9\u06C1\u062A\u06D2": "kehte",
"\u06A9\u06C1\u0648": "kaho",
"\u06A9\u06C1\u0646\u06D2": "kehne",
"\u062F\u06CC\u06A9\u06BE\u0646\u0627": "dekhna",
"\u062F\u06CC\u06A9\u06BE\u0627": "dekha",
"\u062F\u06CC\u06A9\u06BE\u0648": "dekho",
"\u062F\u06CC\u06A9\u06BE\u062A\u0627": "dekhta",
"\u062F\u06CC\u06A9\u06BE\u062A\u06CC": "dekhti",
"\u062F\u06CC\u06A9\u06BE\u062A\u06D2": "dekhte",
"\u062F\u06CC\u06A9\u06BE\u0646\u06D2": "dekhne",
"\u0633\u0646\u0646\u0627": "sunna",
"\u0633\u0646\u0627": "suna",
"\u0633\u0646\u0648": "suno",
"\u0633\u0646\u062A\u0627": "sunta",
"\u0633\u0646\u062A\u06CC": "sunti",
"\u0633\u0646\u062A\u06D2": "sunte",
"\u0633\u0646\u0646\u06D2": "sunne",
"\u0628\u0648\u0644\u0646\u0627": "bolna",
"\u0628\u0648\u0644\u0627": "bola",
"\u0628\u0648\u0644\u0648": "bolo",
"\u0628\u0648\u0644\u062A\u0627": "bolta",
"\u067E\u0691\u06BE\u0646\u0627": "parhna",
"\u067E\u0691\u06BE\u0627": "parha",
"\u067E\u0691\u06BE\u0648": "parho",
"\u067E\u0691\u06BE\u062A\u0627": "parhta",
"\u067E\u0691\u06BE\u062A\u06CC": "parhti",
"\u067E\u0691\u06BE\u062A\u06D2": "parhte",
"\u067E\u0691\u06BE\u0646\u06D2": "parhne",
"\u0644\u06A9\u06BE\u0646\u0627": "likhna",
"\u0644\u06A9\u06BE\u0627": "likha",
"\u0644\u06A9\u06BE\u0648": "likho",
"\u0644\u06A9\u06BE\u062A\u0627": "likhta",
"\u0644\u06A9\u06BE\u062A\u06CC": "likhti",
"\u0644\u06A9\u06BE\u062A\u06D2": "likhte",
"\u0644\u06A9\u06BE\u0646\u06D2": "likhne",
"\u0633\u0645\u062C\u06BE\u0646\u0627": "samajhna",
"\u0633\u0645\u062C\u06BE\u0627": "samjha",
"\u0633\u0645\u062C\u06BE": "samajh",
"\u0633\u0645\u062C\u06BE\u0648": "samjho",
"\u0633\u0645\u062C\u06BE\u0646\u06D2": "samajhne",
"\u0633\u0645\u062C\u06BE\u0627\u0646\u0627": "samjhana",
"\u0633\u0645\u062C\u06BE\u0627\u06CC\u0627": "samjhaya",
"\u062C\u0627\u0646\u0646\u0627": "janna",
"\u062C\u0627\u0646\u062A\u0627": "janta",
"\u062C\u0627\u0646\u062A\u06CC": "janti",
"\u062C\u0627\u0646\u062A\u06D2": "jante",
"\u0645\u0639\u0644\u0648\u0645": "maloom",
"\u0686\u0627\u06C1\u0646\u0627": "chahna",
"\u0686\u0627\u06C1\u062A\u0627": "chahta",
"\u0686\u0627\u06C1\u062A\u06CC": "chahti",
"\u0686\u0627\u06C1\u062A\u06D2": "chahte",
"\u0686\u0627\u06C1\u06CC\u06D2": "chahiye",
"\u0633\u06A9\u0646\u0627": "sakna",
"\u0633\u06A9\u062A\u0627": "sakta",
"\u0633\u06A9\u062A\u06CC": "sakti",
"\u0633\u06A9\u062A\u06D2": "sakte",
"\u0631\u06C1\u0646\u0627": "rehna",
"\u0631\u06C1\u0627": "raha",
"\u0631\u06C1\u06CC": "rahi",
"\u0631\u06C1\u06D2": "rahe",
"\u0631\u06C1\u062A\u0627": "rehta",
"\u0631\u06C1\u062A\u06CC": "rehti",
"\u0631\u06C1\u062A\u06D2": "rehte",
"\u0631\u06C1\u0646\u06D2": "rehne",
"\u0628\u0646\u0646\u0627": "banna",
"\u0628\u0646\u0627\u0646\u0627": "banana",
"\u0628\u0646\u0627\u06CC\u0627": "banaya",
"\u0628\u0646\u0627\u0626\u06CC": "banayi",
"\u0628\u0646\u0627\u0626\u06D2": "banaye",
"\u0628\u0646\u0627": "bana",
"\u0645\u0644\u0646\u0627": "milna",
"\u0645\u0644\u0627": "mila",
"\u0645\u0644\u062A\u0627": "milta",
"\u0645\u0644\u062A\u06CC": "milti",
"\u0645\u0644\u062A\u06D2": "milte",
"\u0645\u0644\u06CC": "mili",
"\u0645\u0644\u06D2": "mile",
"\u0645\u0644\u0627\u0646\u0627": "milana",
"\u06A9\u06BE\u0627\u0646\u0627": "khana",
"\u06A9\u06BE\u0627\u06CC\u0627": "khaya",
"\u06A9\u06BE\u0627\u0624": "khao",
"\u06A9\u06BE\u0627\u062A\u0627": "khata",
"\u06A9\u06BE\u0627\u062A\u06CC": "khati",
"\u067E\u06CC\u0646\u0627": "peena",
"\u067E\u06CC\u0627": "piya",
"\u067E\u06CC\u0648": "peeyo",
"\u067E\u06CC\u062A\u0627": "peeta",
"\u0633\u0648\u0646\u0627": "sona",
"\u0633\u0648\u06CC\u0627": "soya",
"\u0633\u0648\u062A\u06D2": "sote",
"\u0627\u0679\u06BE\u0646\u0627": "uthna",
"\u0627\u0679\u06BE\u0627": "utha",
"\u0627\u0679\u06BE\u0648": "utho",
"\u0627\u0679\u06BE\u0627\u0646\u0627": "uthana",
"\u0627\u0679\u06BE\u0627\u06CC\u0627": "uthaya",
"\u0628\u06CC\u0679\u06BE\u0646\u0627": "baithna",
"\u0628\u06CC\u0679\u06BE\u0627": "baitha",
"\u0628\u06CC\u0679\u06BE\u0648": "baitho",
"\u0686\u0644\u0646\u0627": "chalna",
"\u0686\u0644\u0627": "chala",
"\u0686\u0644\u0648": "chalo",
"\u0686\u0644\u062A\u0627": "chalta",
"\u0686\u0644\u062A\u06CC": "chalti",
"\u0686\u0644\u062A\u06D2": "chalte",
"\u0686\u0644\u0627\u0646\u0627": "chalana",
"\u0686\u0644\u0627\u06CC\u0627": "chalaya",
"\u062F\u0648\u0691\u0646\u0627": "daurna",
"\u062F\u0648\u0691\u0627": "daura",
"\u0628\u06BE\u0627\u06AF\u0646\u0627": "bhagna",
"\u0628\u06BE\u0627\u06AF\u0627": "bhaga",
"\u0644\u0627\u0646\u0627": "lana",
"\u0644\u0627\u06CC\u0627": "laya",
"\u0644\u0627\u0626\u06D2": "laye",
"\u0644\u0627\u0626\u06CC": "layi",
"\u0644\u0627\u0624": "lao",
"\u0631\u06A9\u06BE\u0646\u0627": "rakhna",
"\u0631\u06A9\u06BE\u0627": "rakha",
"\u0631\u06A9\u06BE\u0648": "rakho",
"\u0631\u06A9\u06BE\u062A\u06D2": "rakhte",
"\u0645\u0627\u0646\u06AF\u0646\u0627": "mangna",
"\u0645\u0627\u0646\u06AF\u0627": "manga",
"\u067E\u0648\u0686\u06BE\u0646\u0627": "poochna",
"\u067E\u0648\u0686\u06BE\u0627": "poocha",
"\u067E\u0648\u0686\u06BE\u0648": "poocho",
"\u0628\u062A\u0627\u0646\u0627": "batana",
"\u0628\u062A\u0627\u06CC\u0627": "bataya",
"\u0628\u062A\u0627\u0624": "batao",
"\u06A9\u06BE\u0648\u0644\u0646\u0627": "kholna",
"\u06A9\u06BE\u0648\u0644\u0627": "khola",
"\u06A9\u06BE\u0644\u0627": "khula",
"\u0645\u0631\u0646\u0627": "marna",
"\u0645\u0631\u0627": "mara",
"\u0645\u0631\u06AF\u06CC\u0627": "margaya",
"\u062C\u06CC\u0646\u0627": "jeena",
"\u062C\u06CC\u0627": "jiya",
"\u0645\u0627\u0631\u0646\u0627": "maarna",
"\u0645\u0627\u0631\u0627": "maara",
"\u0645\u0627\u0631\u0648": "maaro",
"\u0628\u0686\u0627\u0646\u0627": "bachana",
"\u0628\u0686\u0627\u06CC\u0627": "bachaya",
"\u0628\u0686\u0646\u0627": "bachna",
"\u0628\u0686\u0627": "bacha",
"\u062C\u0644\u0627\u0646\u0627": "jalana",
"\u062C\u0644\u0627\u06CC\u0627": "jalaya",
"\u062C\u0644\u0646\u0627": "jalna",
"\u062C\u0644\u0627": "jala",
"\u0628\u062C\u06BE\u0627\u0646\u0627": "bujhana",
"\u0628\u062C\u06BE\u0646\u0627": "bujhna",
"\u0646\u0627\u0686\u0646\u0627": "nachna",
"\u06AF\u0627\u0646\u0627": "gana",
"\u06AF\u0627\u06CC\u0627": "gaya",
"\u0644\u0691\u0646\u0627": "larna",
"\u0644\u0691\u0627": "lara",
"\u062C\u06CC\u062A\u0646\u0627": "jeetna",
"\u062C\u06CC\u062A\u0627": "jeeta",
"\u06C1\u0627\u0631\u0646\u0627": "haarna",
"\u06C1\u0627\u0631\u0627": "haara",
"\u0686\u06BE\u067E\u0627\u0646\u0627": "chhupana",
"\u0686\u06BE\u067E\u0646\u0627": "chhupna",
"\u0688\u06BE\u0648\u0646\u0688\u0646\u0627": "dhoondna",
"\u0688\u06BE\u0648\u0646\u0688\u0627": "dhoonda",
"\u0628\u062F\u0644\u0646\u0627": "badalna",
"\u0628\u062F\u0644\u0627": "badla",
"\u0631\u06A9\u0646\u0627": "rukna",
"\u0631\u0648\u06A9\u0646\u0627": "rokna",
"\u0631\u0648\u06A9\u0627": "roka",
"\u0627\u0691\u0646\u0627": "urna",
"\u0627\u0691\u0627\u0646\u0627": "urana",
"\u062A\u06CC\u0631\u0646\u0627": "tairna",
"\u06A9\u06BE\u06CC\u0644\u0646\u0627": "khelna",
"\u06A9\u06BE\u06CC\u0644\u0627": "khela",
"\u06A9\u06BE\u06CC\u0644\u062A\u0627": "khelta",
"\u06C1\u0646\u0633\u0646\u0627": "hansna",
"\u06C1\u0646\u0633\u0627": "hansa",
"\u0631\u0648\u0646\u0627": "rona",
"\u0631\u0648\u06CC\u0627": "roya",
"\u0688\u0631\u0646\u0627": "darna",
"\u0688\u0631\u0627": "dara",
"\u0688\u0631\u0627\u0646\u0627": "darana",
"\u0628\u06BE\u0648\u0644\u0646\u0627": "bhoolna",
"\u0628\u06BE\u0648\u0644\u0627": "bhoola",
"\u06CC\u0627\u062F": "yaad",
"\u0633\u06CC\u06A9\u06BE\u0646\u0627": "seekhna",
"\u0633\u06CC\u06A9\u06BE\u0627": "seekha",
"\u0633\u06A9\u06BE\u0627\u0646\u0627": "sikhana",
"\u0633\u06A9\u06BE\u0627\u06CC\u0627": "sikhaya",
"\u067E\u06A9\u0627\u0646\u0627": "pakana",
"\u067E\u06A9\u0627\u06CC\u0627": "pakaya",
"\u067E\u06A9\u0646\u0627": "pakna",
"\u067E\u06A9\u0627": "paka",
"\u062F\u06BE\u0648\u0646\u0627": "dhona",
"\u062F\u06BE\u0648\u06CC\u0627": "dhoya",
"\u067E\u06C1\u0646\u0646\u0627": "pehanna",
"\u067E\u06C1\u0646\u0627": "pehna",
"\u0627\u062A\u0627\u0631\u0646\u0627": "utarna",
"\u0627\u062A\u0627\u0631\u0627": "utara",
"\u0627\u062A\u0631\u0648": "utro",
"\u0627\u062A\u0631\u0646\u0627": "utarna",
"\u0628\u06CC\u0686\u0646\u0627": "bechna",
"\u0628\u06CC\u0686\u0627": "becha",
"\u062E\u0631\u06CC\u062F\u0646\u0627": "khareedna",
"\u062E\u0631\u06CC\u062F\u0627": "khareeda",
"\u0628\u06BE\u06CC\u062C\u0646\u0627": "bhejna",
"\u0628\u06BE\u06CC\u062C\u0627": "bheja",
"\u067E\u06C1\u0646\u0686\u0646\u0627": "pohanchna",
"\u067E\u06C1\u0646\u0686\u0627": "pohancha",
"\u067E\u06C1\u0646\u0686\u0627\u0646\u0627": "pohonchana",
"\u0646\u06A9\u0644\u0646\u0627": "nikalna",
"\u0646\u06A9\u0644\u0627": "nikla",
"\u0646\u06A9\u0627\u0644\u0646\u0627": "nikalna",
"\u0646\u06A9\u0627\u0644\u0627": "nikala",
"\u06AF\u0631\u0646\u0627": "girna",
"\u06AF\u0631\u0627": "gira",
"\u06AF\u0631\u0627\u0646\u0627": "girana",
"\u067E\u06A9\u0691\u0646\u0627": "pakarna",
"\u067E\u06A9\u0691\u0627": "pakra",
"\u0686\u06BE\u0648\u0691\u0646\u0627": "chhorna",
"\u0686\u06BE\u0648\u0691\u0627": "chhora",
"\u062A\u0648\u0691\u0646\u0627": "torna",
"\u062A\u0648\u0691\u0627": "tora",
"\u0679\u0648\u0679\u0646\u0627": "tootna",
"\u062C\u0648\u0691\u0646\u0627": "jorna",
"\u062C\u0648\u0691\u0627": "jora",
"\u06A9\u0627\u0679\u0646\u0627": "katna",
"\u06A9\u0627\u0679\u0627": "kata",
"\u0688\u0627\u0644\u0646\u0627": "daalna",
"\u0688\u0627\u0644\u0627": "dala",
"\u0645\u0627\u0646\u0646\u0627": "manna",
"\u0645\u0627\u0646\u0627": "mana",
"\u067E\u06C1\u0686\u0627\u0646\u0646\u0627": "pehchanna",
"\u067E\u06C1\u0686\u0627\u0646\u0627": "pehchana",
"\u0628\u0644\u0627\u0646\u0627": "bulana",
"\u0628\u0644\u0627\u06CC\u0627": "bulaya",
"\u067E\u06A9\u0627\u0631\u0646\u0627": "pukarna",
"\u062F\u06A9\u06BE\u0627\u0646\u0627": "dikhana",
"\u062F\u06A9\u06BE\u0627\u06CC\u0627": "dikhaya",
"\u0633\u0646\u0627\u0646\u0627": "sunana",
"\u0633\u0646\u0627\u06CC\u0627": "sunaya",
"\u067E\u06BE\u06CC\u0646\u06A9\u0646\u0627": "phenkna",
"\u067E\u06BE\u06CC\u0646\u06A9\u0627": "phenka",
"\u06A9\u06BE\u06CC\u0646\u0686\u0646\u0627": "kheinchna",
"\u06A9\u06BE\u06CC\u0646\u0686\u0627": "kheincha",
"\u0644\u06CC\u0679\u0646\u0627": "letna",
"\u062C\u0627\u06AF\u0646\u0627": "jagna",
"\u062C\u06AF\u0627\u0646\u0627": "jagana",
"\u06A9\u06BE\u0644\u0627\u0646\u0627": "khilana",
"\u067E\u0644\u0627\u0646\u0627": "pilana",
"\u067E\u0644\u0679\u0646\u0627": "palatna",
"\u0644\u0648\u0679\u0646\u0627": "lautna",
"\u0679\u0648\u06A9\u0646\u0627": "tokna",
"\u06AF\u0632\u0627\u0631\u0646\u0627": "guzarna",
"\u06AF\u0632\u0631\u0646\u0627": "guzarna",
"\u06AF\u0632\u0631": "guzar",
"\u0628\u06CC\u062A\u0646\u0627": "beetna",
"\u062C\u06BE\u06AF\u0691\u0646\u0627": "jhagarna",
"\u0633\u06C1\u0646\u0627": "sehna",
"\u06A9\u0645\u0627\u0646\u0627": "kamana",
"\u06A9\u0645\u0627\u06CC\u0627": "kamaya",
"\u0686\u06BE\u0648\u0646\u0627": "chhoona",
"\u0686\u06A9\u06BE\u0646\u0627": "chakhna",
"\u0633\u0648\u0646\u06AF\u06BE\u0646\u0627": "soonghna",
"\u06AF\u0646\u0646\u0627": "ginna",
"\u062A\u0648\u0644\u0646\u0627": "tolna",
"\u0646\u0627\u067E\u0646\u0627": "naapna",
"\u0628\u0627\u0646\u062F\u06BE\u0646\u0627": "bandhna",
"\u0628\u0627\u0646\u062F\u06BE\u0627": "bandha",
"\u0628\u06BE\u0631\u0646\u0627": "bharna",
"\u0628\u06BE\u0631\u0627": "bhara",
"\u0688\u0648\u0628\u0646\u0627": "doobna",
"\u0688\u0648\u0628\u0627": "dooba",
"\u0686\u0645\u06A9\u0646\u0627": "chamakna",
"\u0686\u0645\u06A9\u0627": "chamka",
"\u0645\u06C1\u06A9\u0646\u0627": "mehakna",
"\u06AF\u06BE\u0648\u0645\u0646\u0627": "ghoomna",
"\u067E\u06BE\u0631\u0646\u0627": "phirna",
"\u0686\u06BE\u06CC\u0646\u0646\u0627": "chheenna",
"\u067E\u06BE\u06CC\u0644\u0646\u0627": "phailna",
"\u067E\u06BE\u06CC\u0644\u0627\u0646\u0627": "phailana",
"\u0633\u0645\u0679\u0646\u0627": "simatna",
"\u0648\u0627\u0644\u0627": "wala",
"\u0648\u0627\u0644\u06CC": "wali",
"\u0648\u0627\u0644\u06D2": "walay",
"\u0634\u0631\u0648\u0639": "shuru",
"\u062E\u062A\u0645": "khatam",
"\u0628\u0646\u062F": "band",
"\u067E\u06CC\u062F\u0627": "paida",
// ---- people and family ----
"\u0622\u062F\u0645\u06CC": "aadmi",
"\u0639\u0648\u0631\u062A": "aurat",
"\u0644\u0691\u06A9\u0627": "larka",
"\u0644\u0691\u06A9\u06CC": "larki",
"\u0644\u0691\u06A9\u06D2": "larke",
"\u0644\u0691\u06A9\u06CC\u0627\u06BA": "larkiyan",
"\u0628\u0686\u06C1": "bacha",
"\u0628\u0686\u06CC": "bachi",
"\u0628\u0686\u06D2": "bache",
"\u0628\u0686\u0648\u06BA": "bachon",
"\u0645\u0627\u06BA": "maan",
"\u0628\u0627\u067E": "baap",
"\u0648\u0627\u0644\u062F": "walid",
"\u0648\u0627\u0644\u062F\u06C1": "walida",
"\u0648\u0627\u0644\u062F\u06CC\u0646": "walidain",
"\u0627\u0645\u06CC": "ammi",
"\u0627\u0628\u0648": "abbu",
"\u0628\u06BE\u0627\u0626\u06CC": "bhai",
"\u0628\u06C1\u0646": "behan",
"\u0628\u0627\u062C\u06CC": "baji",
"\u0622\u067E\u06CC": "api",
"\u0628\u06CC\u0679\u0627": "beta",
"\u0628\u06CC\u0679\u06CC": "beti",
"\u0628\u06CC\u0679\u06D2": "bete",
"\u0628\u06CC\u0679\u06CC\u0627\u06BA": "betiyan",
"\u067E\u0648\u062A\u0627": "pota",
"\u067E\u0648\u062A\u06CC": "poti",
"\u0646\u0648\u0627\u0633\u0627": "nawasa",
"\u0646\u0648\u0627\u0633\u06CC": "nawasi",
"\u062F\u0627\u062F\u0627": "dada",
"\u062F\u0627\u062F\u06CC": "dadi",
"\u0646\u0627\u0646\u0627": "nana",
"\u0646\u0627\u0646\u06CC": "nani",
"\u0686\u0686\u0627": "chacha",
"\u0686\u0686\u06CC": "chachi",
"\u0645\u0627\u0645\u0648\u06BA": "mamoon",
"\u0645\u0645\u0627\u0646\u06CC": "mami",
"\u062E\u0627\u0644\u06C1": "khala",
"\u062E\u0627\u0644\u0648": "khalu",
"\u067E\u06BE\u0648\u067E\u06BE\u06CC": "phupi",
"\u067E\u06BE\u0648\u067E\u06BE\u0627": "phupha",
"\u0634\u0648\u06C1\u0631": "shauhar",
"\u0628\u06CC\u0648\u06CC": "biwi",
"\u062F\u0648\u0644\u06C1\u0627": "dulha",
"\u062F\u0644\u06C1\u0646": "dulhan",
"\u0634\u0627\u062F\u06CC": "shaadi",
"\u0646\u06A9\u0627\u062D": "nikah",
"\u0631\u0634\u062A\u06C1": "rishta",
"\u062E\u0627\u0646\u062F\u0627\u0646": "khandan",
"\u0645\u06C1\u0645\u0627\u0646": "mehman",
"\u0645\u06CC\u0632\u0628\u0627\u0646": "mezban",
"\u062F\u0648\u0633\u062A": "dost",
"\u062F\u0634\u0645\u0646": "dushman",
"\u067E\u0691\u0648\u0633\u06CC": "parosi",
"\u06C1\u0645\u0633\u0627\u06CC\u06C1": "humsaya",
"\u0633\u0627\u062A\u06BE\u06CC": "sathi",
"\u0628\u0632\u0631\u06AF": "buzurg",
"\u062C\u0648\u0627\u0646": "jawan",
"\u0646\u0648\u062C\u0648\u0627\u0646": "naujawan",
"\u0628\u0648\u0691\u06BE\u0627": "boorha",
"\u0628\u0648\u0691\u06BE\u06CC": "boorhi",
"\u0627\u0646\u0633\u0627\u0646": "insan",
"\u0644\u0648\u06AF": "log",
"\u0639\u0648\u0627\u0645": "awam",
"\u0634\u062E\u0635": "shakhs",
"\u0641\u0631\u062F": "fard",
// ---- professions & roles ----
"\u0627\u0633\u062A\u0627\u062F": "ustad",
"\u0627\u0633\u062A\u0627\u0646\u06CC": "ustani",
"\u0637\u0627\u0644\u0628": "talib",
"\u0634\u0627\u06AF\u0631\u062F": "shagird",
"\u0688\u0627\u06A9\u0679\u0631": "doctor",
"\u062D\u06A9\u06CC\u0645": "hakeem",
"\u0637\u0628\u06CC\u0628": "tabeeb",
"\u0646\u0631\u0633": "nurse",
"\u0633\u0631\u062C\u0646": "surgeon",
"\u0648\u06A9\u06CC\u0644": "wakeel",
"\u062C\u062C": "judge",
"\u0645\u0646\u0635\u0641": "munsif",
"\u06A9\u0633\u0627\u0646": "kisan",
"\u0632\u0645\u06CC\u0646\u062F\u0627\u0631": "zameendar",
"\u0645\u0632\u062F\u0648\u0631": "mazdoor",
"\u06A9\u0627\u0631\u06CC\u06AF\u0631": "karigar",
"\u062F\u0631\u0632\u06CC": "darzi",
"\u0645\u0648\u0686\u06CC": "mochi",
"\u062F\u06BE\u0648\u0628\u06CC": "dhobi",
"\u062D\u062C\u0627\u0645": "hajam",
"\u0646\u0627\u0626\u06CC": "nai",
"\u0628\u0627\u0648\u0631\u0686\u06CC": "bawarchi",
"\u062E\u0627\u0646\u0633\u0627\u0645\u0627\u06BA": "khansama",
"\u0686\u0648\u06A9\u06CC\u062F\u0627\u0631": "chowkidar",
"\u06AF\u0627\u0631\u0688": "guard",
"\u067E\u0648\u0644\u06CC\u0633": "police",
"\u0633\u067E\u0627\u06C1\u06CC": "sipahi",
"\u0641\u0648\u062C\u06CC": "fauji",
"\u0627\u0641\u0633\u0631": "afsar",
"\u0645\u06CC\u0646\u06CC\u062C\u0631": "manager",
"\u0688\u0627\u0626\u0631\u06CC\u06A9\u0679\u0631": "director",
"\u0635\u062F\u0631": "sadar",
"\u0648\u0632\u06CC\u0631": "wazeer",
"\u0633\u0641\u06CC\u0631": "safeer",
"\u062A\u0627\u062C\u0631": "tajir",
"\u062F\u06A9\u0627\u0646\u062F\u0627\u0631": "dukandar",
"\u0688\u0631\u0627\u0626\u06CC\u0648\u0631": "driver",
"\u067E\u0627\u0626\u0644\u0679": "pilot",
"\u0627\u0646\u062C\u06CC\u0646\u0626\u0631": "engineer",
"\u0633\u0627\u0626\u0646\u0633\u062F\u0627\u0646": "sciencedan",
"\u0634\u0627\u0639\u0631": "shair",
"\u0627\u062F\u06CC\u0628": "adeeb",
"\u0645\u0635\u0646\u0641": "musannif",
"\u0635\u062D\u0627\u0641\u06CC": "sahafi",
"\u0641\u0646\u06A9\u0627\u0631": "fankar",
"\u06AF\u0644\u0648\u06A9\u0627\u0631": "gulokar",
"\u0627\u062F\u0627\u06A9\u0627\u0631": "adakar",
"\u06A9\u06BE\u0644\u0627\u0691\u06CC": "khilari",
// ---- places & buildings ----
"\u06AF\u06BE\u0631": "ghar",
"\u0645\u06A9\u0627\u0646": "makan",
"\u06A9\u0645\u0631\u06C1": "kamra",
"\u062F\u0631\u0648\u0627\u0632\u06C1": "darwaza",
"\u06A9\u06BE\u0691\u06A9\u06CC": "khirki",
"\u0686\u06BE\u062A": "chhat",
"\u062F\u06CC\u0648\u0627\u0631": "deewar",
"\u0641\u0631\u0634": "farsh",
"\u0635\u062D\u0646": "sehan",
"\u062E\u0627\u0646\u06C1": "khana",
"\u0645\u062F\u0631\u0633\u06C1": "madrasa",
"\u0633\u06A9\u0648\u0644": "school",
"\u06A9\u0627\u0644\u062C": "college",
"\u06CC\u0648\u0646\u06CC\u0648\u0631\u0633\u0679\u06CC": "university",
"\u0645\u06A9\u062A\u0628": "maktab",
"\u062C\u0627\u0645\u0639\u06C1": "jamia",
"\u0644\u0627\u0626\u0628\u0631\u06CC\u0631\u06CC": "library",
"\u06C1\u0633\u067E\u062A\u0627\u0644": "hospital",
"\u0634\u0641\u0627\u062E\u0627\u0646\u06C1": "shifakhana",
"\u06A9\u0644\u06CC\u0646\u06A9": "clinic",
"\u062F\u0648\u0627\u062E\u0627\u0646\u06C1": "dawakhana",
"\u062F\u06A9\u0627\u0646": "dukan",
"\u0645\u0627\u0631\u06A9\u06CC\u0679": "market",
"\u0628\u0627\u0632\u0627\u0631": "bazaar",
"\u0645\u0627\u0644": "mall",
"\u067E\u0644\u0627\u0632\u06C1": "plaza",
"\u06C1\u0648\u0679\u0644": "hotel",
"\u0631\u06CC\u0633\u062A\u0648\u0631\u0627\u0646": "restaurant",
"\u0688\u06BE\u0627\u0628\u06C1": "dhaba",
"\u0645\u0633\u062C\u062F": "masjid",
"\u0645\u0646\u062F\u0631": "mandir",
"\u06AF\u0631\u062C\u0627": "girja",
"\u0645\u0632\u0627\u0631": "mazar",
"\u062F\u0631\u06AF\u0627\u06C1": "dargah",
"\u0642\u0628\u0631\u0633\u062A\u0627\u0646": "qabristan",
"\u0634\u06C1\u0631": "shehar",
"\u0642\u0635\u0628\u06C1": "qasba",
"\u06AF\u0627\u0624\u06BA": "gaon",
"\u062F\u06CC\u06C1\u0627\u062A": "dehat",
"\u0645\u0644\u06A9": "mulk",
"\u0648\u0637\u0646": "watan",
"\u062F\u0646\u06CC\u0627": "dunya",
"\u062C\u06C1\u0627\u06BA": "jahan",
"\u0631\u0627\u0633\u062A\u06C1": "rasta",
"\u0633\u0691\u06A9": "sarak",
"\u06AF\u0644\u06CC": "gali",
"\u06A9\u0648\u0686\u06C1": "koocha",
"\u0645\u062D\u0644\u06C1": "mohalla",
"\u0686\u0648\u06A9": "chowk",
"\u0634\u0627\u06C1\u0631\u0627\u06C1": "shahrah",
"\u067E\u0644": "pul",
"\u0628\u0627\u063A": "bagh",
"\u067E\u0627\u0631\u06A9": "park",
"\u0645\u06CC\u062F\u0627\u0646": "maidan",
"\u0627\u0633\u0679\u06CC\u0688\u06CC\u0645": "stadium",
"\u062F\u0641\u062A\u0631": "daftar",
"\u062A\u06BE\u0627\u0646\u06C1": "thana",
"\u0686\u0648\u06A9\u06CC": "chowki",
"\u062C\u06CC\u0644": "jail",
"\u0642\u06CC\u062F\u062E\u0627\u0646\u06C1": "qaidkhana",
"\u0639\u062F\u0627\u0644\u062A": "adalat",
"\u06A9\u0686\u06C1\u0631\u06CC": "kachehri",
"\u0627\u0633\u0679\u06CC\u0634\u0646": "station",
"\u0627\u06CC\u0626\u0631\u067E\u0648\u0631\u0679": "airport",
"\u0628\u0646\u062F\u0631\u06AF\u0627\u06C1": "bandargah",
"\u06A9\u0627\u0631\u062E\u0627\u0646\u06C1": "karkhana",
"\u0641\u06CC\u06A9\u0679\u0631\u06CC": "factory",
// ---- English loanwords in everyday Urdu ----
"\u06A9\u0645\u067E\u06CC\u0648\u0679\u0631": "computer",
"\u0645\u0648\u0628\u0627\u0626\u0644": "mobile",
"\u0641\u0648\u0646": "phone",
"\u0627\u0646\u0679\u0631\u0646\u06CC\u0679": "internet",
"\u0628\u0633": "bus",
"\u0679\u0631\u06CC\u0646": "train",
"\u06A9\u0627\u0631": "car",
"\u0633\u0627\u0626\u06CC\u06A9\u0644": "cycle",
"\u0645\u0648\u0679\u0631": "motor",
"\u0679\u0631\u06CC\u0641\u06A9": "traffic",
"\u0633\u06AF\u0646\u0644": "signal",
"\u067E\u06CC\u0679\u0631\u0648\u0644": "petrol",
"\u0688\u06CC\u0632\u0644": "diesel",
"\u06AF\u06CC\u0633": "gas",
"\u0628\u06CC\u0679\u0631\u06CC": "battery",
"\u0686\u0627\u0631\u062C\u0631": "charger",
"\u06A9\u06CC\u0645\u0631\u06C1": "camera",
"\u0631\u06CC\u0688\u06CC\u0648": "radio",
"\u0679\u06CC\u0644\u06CC\u0648\u06CC\u0698\u0646": "television",
"\u0679\u06CC\u0644\u06CC\u06AF\u0631\u0627\u0645": "telegram",
"\u0648\u06CC\u0688\u06CC\u0648": "video",
"\u0622\u0688\u06CC\u0648": "audio",
"\u0645\u0627\u0626\u06CC\u06A9": "mic",
"\u0633\u067E\u06CC\u06A9\u0631": "speaker",
"\u0633\u06A9\u0631\u06CC\u0646": "screen",
"\u0633\u0627\u0641\u0679\u0648\u06CC\u0626\u0631": "software",
"\u06C1\u0627\u0631\u0688\u0648\u06CC\u0626\u0631": "hardware",
"\u0648\u06CC\u0628": "web",
"\u0627\u06CC\u067E": "app",
"\u0627\u06CC\u067E\u0644\u06CC\u06A9\u06CC\u0634\u0646": "application",
"\u0627\u06CC\u0645\u06CC\u0644": "email",
"\u0645\u06CC\u0633\u062C": "message",
"\u0686\u06CC\u0679": "chat",
"\u0622\u0646\u0644\u0627\u0626\u0646": "online",
"\u0622\u0641\u0644\u0627\u0626\u0646": "offline",
"\u0627\u06A9\u0627\u0624\u0646\u0679": "account",
"\u067E\u0627\u0633\u0648\u0631\u0688": "password",
"\u0633\u06CC\u06A9\u06CC\u0648\u0631\u0679\u06CC": "security",
"\u0633\u0631\u0648\u0631": "server",
"\u0646\u06CC\u0679\u0648\u0631\u06A9": "network",
"\u0641\u0627\u0626\u0644": "file",
"\u0641\u0648\u0644\u0688\u0631": "folder",
"\u0644\u0646\u06A9": "link",
"\u067E\u0648\u0633\u0679": "post",
"\u06A9\u0645\u0646\u0679": "comment",
"\u0686\u06CC\u0646\u0644": "channel",
"\u06AF\u0631\u0648\u067E": "group",
"\u0688\u0627\u0624\u0646\u0644\u0648\u0688": "download",
"\u0627\u067E\u0644\u0648\u0688": "upload",
"\u0633\u0631\u0686": "search",
"\u06A9\u0644\u06A9": "click",
"\u0679\u0627\u0626\u067E": "type",
"\u0679\u06CC\u0633\u0679": "test",
"\u0646\u0645\u0628\u0631": "number",
"\u06A9\u0644\u0627\u0633": "class",
"\u0688\u06AF\u0631\u06CC": "degree",
"\u0633\u0633\u0679\u0645": "system",
"\u067E\u0631\u0648\u06AF\u0631\u0627\u0645": "program",
"\u0679\u06CC\u06A9\u0646\u0627\u0644\u0648\u062C\u06CC": "technology",
"\u0688\u06CC\u0679\u0627": "data",
"\u0679\u06A9\u0679": "ticket",
"\u067E\u0627\u0633\u067E\u0648\u0631\u0679": "passport",
"\u0648\u06CC\u0632\u0627": "visa",
"\u0628\u06CC\u0646\u06A9": "bank",
"\u0686\u06CC\u06A9": "cheque",
"\u06A9\u0627\u0631\u0688": "card",
"\u0679\u06CC\u06A9\u0633": "tax",
"\u0628\u0644": "bill",
"\u0648\u0627\u0631\u0688": "ward",
"\u0622\u067E\u0631\u06CC\u0634\u0646": "operation",
"\u0627\u06CC\u0645\u0628\u0648\u0644\u06CC\u0646\u0633": "ambulance",
// ---- time, calendar, days, months, weather ----
"\u062F\u0646": "din",
"\u0631\u0627\u062A": "raat",
"\u0635\u0628\u062D": "subah",
"\u0634\u0627\u0645": "shaam",
"\u0633\u062D\u0631": "sehar",
"\u062F\u0648\u067E\u06C1\u0631": "dopahar",
"\u067E\u06C1\u0631": "pehar",
"\u0648\u0642\u062A": "waqt",
"\u06AF\u06BE\u0646\u0679\u06C1": "ghanta",
"\u0645\u0646\u0679": "minute",
"\u0633\u06CC\u06A9\u0646\u0688": "second",
"\u0644\u0645\u062D\u06C1": "lamha",
"\u06C1\u0641\u062A\u06C1": "hafta",
"\u0645\u06C1\u06CC\u0646\u06C1": "maheena",
"\u0633\u0627\u0644": "saal",
"\u0635\u062F\u06CC": "sadi",
"\u0632\u0645\u0627\u0646\u06C1": "zamana",
"\u0645\u062F\u062A": "muddat",
"\u0639\u0645\u0631": "umar",
"\u0622\u062C": "aaj",
"\u06A9\u0644": "kal",
"\u067E\u0631\u0633\u0648\u06BA": "parson",
"\u062A\u0631\u0633\u0648\u06BA": "tarson",
"\u0627\u0628\u06BE\u06CC": "abhi",
"\u0627\u0628": "ab",
"\u067E\u06BE\u0631": "phir",
"\u062A\u0628": "tab",
"\u062C\u0628": "jab",
"\u06C1\u0645\u06CC\u0634\u06C1": "hamesha",
"\u06A9\u0628\u06BE\u06CC": "kabhi",
"\u0627\u06A9\u062B\u0631": "aksar",
"\u0631\u0648\u0632": "roz",
"\u0631\u0648\u0632\u0627\u0646\u06C1": "rozana",
"\u0645\u0627\u06C1\u0627\u0646\u06C1": "mahana",
"\u0633\u0627\u0644\u0627\u0646\u06C1": "salana",
"\u067E\u06CC\u0631": "peer",
"\u0645\u0646\u06AF\u0644": "mangal",
"\u0628\u062F\u06BE": "budh",
"\u062C\u0645\u0639\u0631\u0627\u062A": "jumeraat",
"\u062C\u0645\u0639\u06C1": "jumma",
"\u0627\u062A\u0648\u0627\u0631": "itwar",
"\u062C\u0646\u0648\u0631\u06CC": "january",
"\u0641\u0631\u0648\u0631\u06CC": "february",
"\u0645\u0627\u0631\u0686": "march",
"\u0627\u067E\u0631\u06CC\u0644": "april",
"\u0645\u0626\u06CC": "may",
"\u062C\u0648\u0646": "june",
"\u062C\u0648\u0644\u0627\u0626\u06CC": "july",
"\u0627\u06AF\u0633\u062A": "august",
"\u0633\u062A\u0645\u0628\u0631": "september",
"\u0627\u06A9\u062A\u0648\u0628\u0631": "october",
"\u0646\u0648\u0645\u0628\u0631": "november",
"\u062F\u0633\u0645\u0628\u0631": "december",
"\u0645\u0648\u0633\u0645": "mausam",
"\u06AF\u0631\u0645\u06CC": "garmi",
"\u0633\u0631\u062F\u06CC": "sardi",
"\u0628\u06C1\u0627\u0631": "bahaar",
"\u062E\u0632\u0627\u06BA": "khazan",
"\u0628\u0631\u0633\u0627\u062A": "barsaat",
"\u0628\u0627\u0631\u0634": "barish",
"\u062F\u06BE\u0648\u067E": "dhoop",
"\u0686\u06BE\u0627\u0624\u06BA": "chhaon",
"\u0628\u0627\u062F\u0644": "badal",
"\u0628\u0631\u0641": "baraf",
"\u0627\u0648\u0644\u06D2": "olay",
"\u06A9\u06C1\u0631": "kohar",
"\u062F\u06BE\u0646\u062F": "dhund",
"\u0622\u0646\u062F\u06BE\u06CC": "aandhi",
"\u0637\u0648\u0641\u0627\u0646": "toofan",
"\u0633\u06CC\u0644\u0627\u0628": "sailab",
"\u0632\u0644\u0632\u0644\u06C1": "zalzala",
"\u0622\u0633\u0645\u0627\u0646": "asman",
"\u0632\u0645\u06CC\u0646": "zameen",
"\u0633\u0648\u0631\u062C": "sooraj",
"\u0686\u0627\u0646\u062F": "chand",
"\u0633\u062A\u0627\u0631\u06C1": "sitara",
"\u06A9\u06C1\u06A9\u0634\u0627\u0646": "kahkashan",
// ---- household objects, clothing, tools ----
"\u06A9\u062A\u0627\u0628": "kitaab",
"\u0642\u0644\u0645": "qalam",
"\u06A9\u0627\u063A\u0630": "kaghaz",
"\u062F\u0648\u0627\u062A": "dawat",
"\u0633\u06CC\u0627\u06C1\u06CC": "siyahi",
"\u067E\u0646\u0633\u0644": "pencil",
"\u0628\u0633\u062A\u06C1": "basta",
"\u0628\u06CC\u06AF": "bag",
"\u0645\u06CC\u0632": "mez",
"\u06A9\u0631\u0633\u06CC": "kursi",
"\u0627\u0644\u0645\u0627\u0631\u06CC": "almari",
"\u0635\u0648\u0641\u06C1": "sofa",
"\u067E\u0644\u0646\u06AF": "palang",
"\u0628\u0633\u062A\u0631": "bistar",
"\u06AF\u062F\u0627": "gadda",
"\u0686\u0627\u062F\u0631": "chadar",
"\u062A\u06A9\u06CC\u06C1": "takiya",
"\u06A9\u0645\u0628\u0644": "kambal",
"\u0644\u062D\u0627\u0641": "lihaf",
"\u067E\u0631\u062F\u06C1": "parda",
"\u0642\u0627\u0644\u06CC\u0646": "qaleen",
"\u0686\u0679\u0627\u0626\u06CC": "chatai",
"\u067E\u0646\u06A9\u06BE\u0627": "pankha",
"\u0686\u0648\u0644\u06C1\u0627": "choolha",
"\u0641\u0631\u06CC\u062C": "fridge",
"\u0628\u0631\u062A\u0646": "bartan",
"\u0686\u0645\u0686": "chamach",
"\u06A9\u0627\u0646\u0679\u0627": "kanta",
"\u0686\u06BE\u0631\u06CC": "chhuri",
"\u0686\u0627\u0642\u0648": "chaqoo",
"\u067E\u0644\u06CC\u0679": "plate",
"\u067E\u06CC\u0627\u0644\u06CC": "pyali",
"\u067E\u06CC\u0627\u0644\u06C1": "pyala",
"\u06A9\u067E": "cup",
"\u06AF\u0644\u0627\u0633": "glass",
"\u062C\u06AF": "jug",
"\u0628\u0648\u062A\u0644": "botal",
"\u0688\u0628\u06C1": "dabba",
"\u0628\u0627\u0644\u0679\u06CC": "balti",
"\u0645\u06AF": "mug",
"\u062C\u06BE\u0627\u0691\u0648": "jharoo",
"\u0635\u0627\u0628\u0646": "sabun",
"\u062A\u0648\u0644\u06CC\u06C1": "toliya",
"\u0622\u0626\u06CC\u0646\u06C1": "aaina",
"\u0634\u06CC\u0634\u06C1": "sheesha",
"\u06A9\u0646\u06AF\u06BE\u06CC": "kanghi",
"\u0633\u0648\u0626\u06CC": "sui",
"\u062F\u06BE\u0627\u06AF\u06C1": "dhaga",
"\u0642\u06CC\u0646\u0686\u06CC": "qainchi",
"\u062A\u0627\u0644\u0627": "tala",
"\u0686\u0627\u0628\u06CC": "chabi",
"\u06AF\u06BE\u0691\u06CC": "ghari",
"\u0679\u0648\u067E\u06CC": "topi",
"\u067E\u06AF\u0691\u06CC": "pagri",
"\u0642\u0645\u06CC\u0636": "qameez",
"\u0634\u0644\u0648\u0627\u0631": "shalwar",
"\u067E\u0627\u062C\u0627\u0645\u06C1": "pajama",
"\u067E\u06CC\u0646\u0679": "pant",
"\u0634\u0631\u0679": "shirt",
"\u06A9\u0648\u0679": "coat",
"\u0648\u0627\u0633\u06A9\u0648\u0679": "waistcoat",
"\u0634\u0627\u0644": "shawl",
"\u062F\u0648\u067E\u0679\u06C1": "dupatta",
"\u062C\u0631\u0627\u0628": "jurab",
"\u062F\u0633\u062A\u0627\u0646\u06D2": "dastaney",
"\u062C\u0648\u062A\u0627": "joota",
"\u0686\u067E\u0644": "chappal",
"\u0635\u0646\u062F\u0644": "sandal",
"\u06A9\u067E\u0691\u0627": "kapra",
"\u0631\u06CC\u0634\u0645": "resham",
"\u0633\u0648\u062A": "soot",
"\u0627\u0648\u0646": "oon",
// ---- food, spices, ingredients, kitchen ----
"\u067E\u0627\u0646\u06CC": "paani",
"\u062F\u0648\u062F\u06BE": "doodh",
"\u062F\u06C1\u06CC": "dahi",
"\u0645\u06A9\u06BE\u0646": "makhan",
"\u06AF\u06BE\u06CC": "ghee",
"\u067E\u0646\u06CC\u0631": "paneer",
"\u0645\u0644\u0627\u0626\u06CC": "malai",
"\u0686\u0627\u0626\u06D2": "chai",
"\u0642\u06C1\u0648\u06C1": "qehwa",
"\u06A9\u0627\u0641\u06CC": "coffee",
"\u0634\u0631\u0628\u062A": "sharbat",
"\u0644\u0633\u06CC": "lassi",
"\u062C\u0648\u0633": "juice",
"\u0631\u0648\u0679\u06CC": "roti",
"\u0646\u0627\u0646": "naan",
"\u067E\u0631\u0627\u0679\u06BE\u0627": "paratha",
"\u06A9\u0644\u0686\u06C1": "kulcha",
"\u0686\u0627\u0648\u0644": "chawal",
"\u0628\u0631\u06CC\u0627\u0646\u06CC": "biryani",
"\u067E\u0644\u0627\u0624": "pulao",
"\u0633\u0627\u0644\u0646": "salan",
"\u0634\u0648\u0631\u0628\u06C1": "shorba",
"\u0642\u0648\u0631\u0645\u06C1": "qorma",
"\u06A9\u0691\u0627\u06C1\u06CC": "karahi",
"\u0646\u06C1\u0627\u0631\u06CC": "nihari",
"\u062D\u0644\u06CC\u0645": "haleem",
"\u06A9\u0628\u0627\u0628": "kabab",
"\u062A\u06A9\u06C1": "tikka",
"\u0633\u0645\u0648\u0633\u06C1": "samosa",
"\u067E\u06A9\u0648\u0691\u0627": "pakaura",
"\u0631\u0648\u0644": "roll",
"\u062F\u0627\u0644": "daal",
"\u06AF\u0648\u0634\u062A": "gosht",
"\u0642\u06CC\u0645\u06C1": "qeema",
"\u0645\u0631\u063A\u06CC": "murghi",
"\u0645\u0686\u06BE\u0644\u06CC": "machhli",
"\u0627\u0646\u0688\u0627": "anda",
"\u0633\u0628\u0632\u06CC": "sabzi",
"\u0622\u0679\u0627": "aata",
"\u0645\u06CC\u062F\u06C1": "maida",
"\u0633\u0648\u062C\u06CC": "sooji",
"\u0628\u06CC\u0633\u0646": "besan",
"\u062A\u06CC\u0644": "tel",
"\u0646\u0645\u06A9": "namak",
"\u0686\u06CC\u0646\u06CC": "cheeni",
"\u0634\u06A9\u0631": "shukr",
"\u06AF\u0691": "gur",
"\u0634\u06C1\u062F": "shehad",
"\u0645\u0631\u0686": "mirch",
"\u06C1\u0644\u062F\u06CC": "haldi",
"\u062F\u06BE\u0646\u06CC\u0627": "dhaniya",
"\u0632\u06CC\u0631\u06C1": "zeera",
"\u0644\u06C1\u0633\u0646": "lehsun",
"\u0627\u062F\u0631\u06A9": "adrak",
"\u067E\u06CC\u0627\u0632": "pyaz",
"\u0679\u0645\u0627\u0679\u0631": "tamatar",
"\u0622\u0644\u0648": "aloo",
"\u06AF\u0627\u062C\u0631": "gajar",
"\u0645\u0648\u0644\u06CC": "mooli",
"\u0634\u0644\u062C\u0645": "shaljam",
"\u0645\u0679\u0631": "matar",
"\u067E\u0627\u0644\u06A9": "palak",
"\u0645\u06CC\u062A\u06BE\u06CC": "methi",
"\u06AF\u0648\u0628\u06BE\u06CC": "gobhi",
"\u0628\u06CC\u0646\u06AF\u0646": "baingan",
"\u0628\u06BE\u0646\u0688\u06CC": "bhindi",
"\u06A9\u0631\u06CC\u0644\u0627": "karela",
"\u06A9\u062F\u0648": "kaddu",
"\u0644\u0648\u06A9\u06CC": "lauki",
"\u0679\u06CC\u0646\u0688\u0627": "tinda",
"\u06A9\u06BE\u06CC\u0631\u0627": "kheera",
"\u067E\u06BE\u0644": "phal",
"\u0622\u0645": "aam",
"\u0633\u06CC\u0628": "saib",
"\u06A9\u06CC\u0644\u0627": "kela",
"\u0627\u0646\u06AF\u0648\u0631": "angoor",
"\u0627\u0646\u0627\u0631": "anar",
"\u0627\u0645\u0631\u0648\u062F": "amrood",
"\u0645\u0627\u0644\u0679\u0627": "malta",
"\u06A9\u06CC\u0646\u0648": "kinnu",
"\u0644\u06CC\u0645\u0648": "leemo",
"\u0644\u06CC\u0645\u0648\u06BA": "leemo",
"\u062A\u0631\u0628\u0648\u0632": "tarbooz",
"\u062E\u0631\u0628\u0648\u0632\u06C1": "kharbooza",
"\u0622\u0691\u0648": "aadoo",
"\u062E\u0648\u0628\u0627\u0646\u06CC": "khubani",
"\u0646\u0627\u0634\u067E\u0627\u062A\u06CC": "nashpati",
"\u0686\u06CC\u0631\u06CC": "cherry",
"\u067E\u067E\u06CC\u062A\u0627": "papeeta",
"\u0644\u06CC\u0686\u06CC": "lychee",
"\u0628\u0627\u062F\u0627\u0645": "badam",
"\u067E\u0633\u062A\u06C1": "pista",
"\u0627\u062E\u0631\u0648\u0679": "akhrot",
"\u06A9\u0627\u062C\u0648": "kaju",
"\u0645\u0648\u0646\u06AF\u0641\u0644\u06CC": "moongphali",
"\u06A9\u0634\u0645\u0634": "kishmish",
"\u06A9\u06BE\u062C\u0648\u0631": "khajoor",
"\u06A9\u06BE\u06CC\u0631": "kheer",
"\u062D\u0644\u0648\u06C1": "halwa",
"\u0632\u0631\u062F\u06C1": "zarda",
"\u062C\u0627\u0645\u0646": "jamun",
"\u062C\u0644\u06CC\u0628\u06CC": "jalebi",
"\u0628\u0631\u0641\u06CC": "barfi",
"\u0631\u0633\u06AF\u0644\u06C1": "rasgulla",
"\u06A9\u0644\u0641\u06CC": "kulfi",
"\u0622\u0626\u0633\u06A9\u0631\u06CC\u0645": "icecream",
"\u06A9\u06CC\u06A9": "cake",
"\u0628\u0633\u06A9\u0679": "biscuit",
"\u0686\u0627\u06A9\u0644\u06CC\u0679": "chocolate",
"\u0645\u0679\u06BE\u0627\u0626\u06CC": "mithai",
"\u0633\u0644\u0627\u062F": "salad",
"\u0631\u0627\u0626\u062A\u06C1": "raita",
"\u0686\u0679\u0646\u06CC": "chatni",
"\u0627\u0686\u0627\u0631": "achaar",
"\u0645\u0631\u0628\u06C1": "murabba",
// ---- anatomy & health ----
"\u062F\u0644": "dil",
"\u062F\u0645\u0627\u063A": "dimagh",
"\u062C\u0633\u0645": "jism",
"\u0628\u062F\u0646": "badan",
"\u062C\u0627\u0646": "jaan",
"\u0631\u0648\u062D": "rooh",
"\u0633\u0631": "sar",
"\u06A9\u06BE\u0648\u067E\u0691\u06CC": "khopri",
"\u067E\u06CC\u0634\u0627\u0646\u06CC": "peshani",
"\u0645\u0627\u062A\u06BE\u0627": "matha",
"\u0622\u0646\u06A9\u06BE": "aankh",
"\u0622\u0646\u06A9\u06BE\u06CC\u06BA": "aankhein",
"\u067E\u0644\u06A9": "palak",
"\u0627\u0628\u0631\u0648": "abroo",
"\u06A9\u0627\u0646": "kaan",
"\u0646\u0627\u06A9": "naak",
"\u0645\u0646\u06C1": "munh",
"\u06C1\u0648\u0646\u0679": "hont",
"\u062F\u0627\u0646\u062A": "daant",
"\u0632\u0628\u0627\u0646": "zuban",
"\u06AF\u0644\u0627": "gala",
"\u06AF\u0631\u062F\u0646": "gardan",
"\u06A9\u0646\u062F\u06BE\u0627": "kandha",
"\u0628\u0627\u0632\u0648": "bazu",
"\u06A9\u06C1\u0646\u06CC": "kohni",
"\u06A9\u0644\u0627\u0626\u06CC": "kalai",
"\u06C1\u0627\u062A\u06BE": "hath",
"\u0627\u0646\u06AF\u0644\u06CC": "ungli",
"\u0627\u0646\u06AF\u0644\u06CC\u0627\u06BA": "ungliyan",
"\u0627\u0646\u06AF\u0648\u0679\u06BE\u0627": "angootha",
"\u0646\u0627\u062E\u0646": "nakhun",
"\u0633\u06CC\u0646\u06C1": "seena",
"\u0686\u06BE\u0627\u062A\u06CC": "chhati",
"\u067E\u06CC\u0679": "pet",
"\u06A9\u0645\u0631": "kamar",
"\u067E\u0634\u062A": "pusht",
"\u0631\u0627\u0646": "raan",
"\u06AF\u06BE\u0679\u0646\u0627": "ghutna",
"\u0679\u0627\u0646\u06AF": "taang",
"\u0679\u0627\u0646\u06AF\u06CC\u06BA": "taangein",
"\u067E\u0627\u0624\u06BA": "paon",
"\u0627\u06CC\u0691\u06CC": "eeri",
"\u062A\u0627\u0644\u0648": "talu",
"\u06C1\u0688\u06CC": "haddi",
"\u062E\u0648\u0646": "khoon",
"\u0631\u06AF": "rag",
"\u067E\u0679\u06BE\u0627": "pattha",
"\u062C\u0644\u062F": "jild",
"\u0686\u0645\u0691\u0627": "chamra",
"\u0628\u0627\u0644": "baal",
"\u062F\u0627\u0691\u06BE\u06CC": "darhi",
"\u0645\u0648\u0646\u0686\u06BE": "moochh",
"\u0686\u06C1\u0631\u06C1": "chehra",
"\u0631\u062E\u0633\u0627\u0631": "rukhsar",
"\u06AF\u0627\u0644": "gaal",
"\u0679\u06BE\u0648\u0691\u06CC": "thori",
"\u062C\u06AF\u0631": "jigar",
"\u06AF\u0631\u062F\u06C1": "gurda",
"\u067E\u06BE\u06CC\u067E\u06BE\u0691\u0627": "phepra",
"\u0645\u0639\u062F\u06C1": "maida",
"\u0635\u062D\u062A": "sehat",
"\u062A\u0646\u062F\u0631\u0633\u062A\u06CC": "tandurusti",
"\u0628\u06CC\u0645\u0627\u0631\u06CC": "beemari",
"\u0645\u0631\u0636": "marz",
"\u0645\u0631\u06CC\u0636": "mareez",
"\u0628\u062E\u0627\u0631": "bukhar",
"\u062F\u0631\u062F": "dard",
"\u062A\u06A9\u0644\u06CC\u0641": "takleef",
"\u06A9\u06BE\u0627\u0646\u0633\u06CC": "khansi",
"\u0646\u0632\u0644\u06C1": "nazla",
"\u0632\u06A9\u0627\u0645": "zukam",
"\u0627\u0644\u0631\u062C\u06CC": "allergy",
"\u0627\u0646\u0641\u06CC\u06A9\u0634\u0646": "infection",
"\u0648\u0627\u0626\u0631\u0633": "virus",
"\u0632\u062E\u0645": "zakhm",
"\u0686\u0648\u0679": "chot",
"\u0639\u0644\u0627\u062C": "ilaj",
"\u062F\u0648\u0627": "dawa",
"\u0627\u062F\u0648\u06CC\u0627\u062A": "adwiyat",
"\u0634\u0641\u0627": "shifa",
"\u06AF\u0648\u0644\u06CC": "goli",
"\u0679\u06CC\u06A9\u06C1": "teeka",
"\u0645\u0631\u06C1\u0645": "marham",
"\u067E\u0679\u06CC": "patti",
// ---- feelings, morals, abstraction ----
"\u0645\u062D\u0628\u062A": "mohabbat",
"\u0639\u0634\u0642": "ishq",
"\u067E\u06CC\u0627\u0631": "pyaar",
"\u0627\u0644\u0641\u062A": "ulfat",
"\u0686\u0627\u06C1\u062A": "chahat",
"\u0646\u0641\u0631\u062A": "nafrat",
"\u062D\u0633\u062F": "hasad",
"\u06A9\u06CC\u0646\u06C1": "keena",
"\u0628\u063A\u0636": "bughz",
"\u062E\u0648\u0634\u06CC": "khushi",
"\u0645\u0633\u0631\u062A": "musarrat",
"\u063A\u0645": "gham",
"\u062F\u06A9\u06BE": "dukh",
"\u0631\u0646\u062C": "ranj",
"\u0627\u0644\u0645": "alam",
"\u0627\u0641\u0633\u0648\u0633": "afsos",
"\u067E\u0686\u06BE\u062A\u0627\u0648\u0627": "pachtawa",
"\u0646\u062F\u0627\u0645\u062A": "nadamat",
"\u0688\u0631": "dar",
"\u062E\u0648\u0641": "khauf",
"\u062F\u06C1\u0634\u062A": "dehshat",
"\u0627\u0645\u06CC\u062F": "umeed",
"\u0622\u0633": "aas",
"\u06CC\u0627\u0633": "yaas",
"\u0645\u0627\u06CC\u0648\u0633\u06CC": "mayoosi",
"\u06CC\u0642\u06CC\u0646": "yaqeen",
"\u0627\u0639\u062A\u0645\u0627\u062F": "aitamad",
"\u0628\u06BE\u0631\u0648\u0633\u06C1": "bharosa",
"\u0634\u06A9": "shak",
"\u0633\u0686": "sach",
"\u062C\u06BE\u0648\u0679": "jhoot",
"\u0627\u0646\u0635\u0627\u0641": "insaf",
"\u0639\u062F\u0644": "adl",
"\u0638\u0644\u0645": "zulm",
"\u0633\u062A\u0645": "sitam",
"\u0639\u0632\u062A": "izzat",
"\u0627\u062D\u062A\u0631\u0627\u0645": "ehtiram",
"\u0628\u06D2\u0639\u0632\u062A\u06CC": "beizzati",
"\u0630\u0644\u062A": "zillat",
"\u0631\u0633\u0648\u0627\u0626\u06CC": "ruswai",
"\u0634\u06A9\u0631\u06CC\u06C1": "shukriya",
"\u0635\u0628\u0631": "sabr",
"\u0627\u062D\u0633\u0627\u0646": "ehsan",
"\u0645\u0639\u0627\u0641": "maaf",
"\u0645\u0639\u0627\u0641\u06CC": "maafi",
"\u062F\u0639\u0627": "dua",
"\u0628\u062F\u062F\u0639\u0627": "baddua",
"\u062E\u0648\u0627\u0628": "khwab",
"\u062E\u06CC\u0627\u0644": "khayal",
"\u0627\u0631\u0627\u062F\u06C1": "irada",
"\u062E\u0648\u0627\u06C1\u0634": "khwahish",
"\u062A\u0645\u0646\u0627": "tamanna",
"\u0622\u0631\u0632\u0648": "aarzoo",
"\u062D\u0633\u0631\u062A": "hasrat",
"\u0632\u0646\u062F\u06AF\u06CC": "zindagi",
"\u062D\u06CC\u0627\u062A": "hayat",
"\u0645\u0648\u062A": "maut",
"\u0648\u0641\u0627\u062A": "wafat",
"\u0637\u0627\u0642\u062A": "taqat",
"\u0642\u0648\u062A": "quwwat",
"\u0632\u0648\u0631": "zor",
"\u06C1\u0645\u062A": "himmat",
"\u062D\u0648\u0635\u0644\u06C1": "hosla",
"\u062C\u0630\u0628\u06C1": "jazba",
"\u0634\u0648\u0642": "shauq",
"\u06A9\u0645\u0632\u0648\u0631\u06CC": "kamzori",
"\u0646\u0627\u062A\u0648\u0627\u0646\u06CC": "natawani",
"\u0636\u0631\u0648\u0631\u062A": "zaroorat",
"\u062D\u0627\u062C\u062A": "hajat",
"\u0645\u062F\u062F": "madad",
"\u062A\u0639\u0627\u0648\u0646": "taawun",
"\u06A9\u0648\u0634\u0634": "koshish",
"\u062C\u062F\u0648\u062C\u06C1\u062F": "jaddojahad",
"\u0645\u062D\u0646\u062A": "mehnat",
"\u0645\u0634\u0642\u062A": "mushaqqat",
"\u06A9\u0627\u0645\u06CC\u0627\u0628\u06CC": "kamyabi",
"\u0641\u062A\u062D": "fateh",
"\u0646\u0627\u06A9\u0627\u0645\u06CC": "nakami",
"\u0634\u06A9\u0633\u062A": "shikast",
"\u06C1\u0627\u0631": "haar",
"\u062C\u06CC\u062A": "jeet",
"\u0641\u06CC\u0635\u0644\u06C1": "faisla",
"\u0631\u0627\u0626\u06D2": "raye",
"\u0645\u0634\u0648\u0631\u06C1": "mashwara",
"\u063A\u0635\u06C1": "ghussa",
"\u0637\u06CC\u0634": "taish",
"\u063A\u0631\u0648\u0631": "ghuroor",
"\u062A\u06A9\u0628\u0631": "takabbur",
"\u0639\u0627\u062C\u0632\u06CC": "aajzi",
"\u0627\u0646\u06A9\u0633\u0627\u0631\u06CC": "inkisari",
"\u0633\u0627\u062F\u06AF\u06CC": "sadgi",
"\u0635\u0641\u0627\u0626\u06CC": "safai",
"\u067E\u0627\u06A9\u06CC": "paki",
"\u0634\u0631\u0645": "sharm",
"\u062D\u06CC\u0627": "haya",
"\u063A\u06CC\u0631\u062A": "ghairat",
"\u062D\u0645\u06CC\u062A": "hameeyat",
"\u0627\u062E\u0644\u0627\u0642": "akhlaq",
"\u0634\u0631\u0627\u0641\u062A": "sharafat",
"\u062F\u06CC\u0627\u0646\u062A": "diyanat",
"\u0627\u0645\u0627\u0646\u062A": "amanat",
"\u062E\u06CC\u0627\u0646\u062A": "khiyanat",
"\u0648\u0641\u0627": "wafa",
"\u0628\u06D2\u0648\u0641\u0627\u0626\u06CC": "bewafai",
"\u062F\u0648\u0633\u062A\u06CC": "dosti",
"\u062F\u0634\u0645\u0646\u06CC": "dushmani",
"\u062D\u06CC\u0631\u062A": "hairat",
"\u062A\u0639\u062C\u0628": "taajjub",
"\u0631\u0627\u062D\u062A": "rahat",
"\u0633\u06A9\u0648\u0646": "sakoon",
"\u0627\u0637\u0645\u06CC\u0646\u0627\u0646": "itminan",
"\u0628\u06D2\u0686\u06CC\u0646\u06CC": "bechaini",
"\u0627\u0636\u0637\u0631\u0627\u0628": "iztirab",
"\u0627\u062D\u0633\u0627\u0633": "ehsas",
"\u0634\u0639\u0648\u0631": "shaoor",
"\u0644\u0627\u067E\u0631\u0648\u0627\u06C1\u06CC": "laparwahi",
"\u062D\u0642\u06CC\u0642\u062A": "haqeeqat",
"\u0631\u0627\u0632": "raaz",
"\u0628\u06BE\u06CC\u062F": "bhed",
// ---- knowledge, education, language, arts ----
"\u0639\u0644\u0645": "ilm",
"\u062A\u0639\u0644\u06CC\u0645": "taleem",
"\u062A\u0631\u0628\u06CC\u062A": "tarbiyat",
"\u0633\u0628\u0642": "sabaq",
"\u062F\u0631\u0633": "dars",
"\u0627\u0645\u062A\u062D\u0627\u0646": "imtihan",
"\u0622\u0632\u0645\u0627\u0626\u0634": "azmaish",
"\u0646\u062A\u06CC\u062C\u06C1": "nateeja",
"\u0645\u0633\u0626\u0644\u06C1": "masla",
"\u062D\u0644": "hal",
"\u0633\u0648\u0627\u0644": "sawal",
"\u062C\u0648\u0627\u0628": "jawab",
"\u0628\u062D\u062B": "behas",
"\u0645\u0628\u0627\u062D\u062B\u06C1": "mubahisa",
"\u0628\u0627\u062A": "baat",
"\u0628\u0627\u062A\u06CC\u06BA": "baatein",
"\u06AF\u0641\u062A\u06AF\u0648": "guftagu",
"\u06A9\u0644\u0627\u0645": "kalam",
"\u0644\u0641\u0638": "lafz",
"\u0627\u0644\u0641\u0627\u0638": "alfaz",
"\u062C\u0645\u0644\u06C1": "jumla",
"\u0641\u0642\u0631\u06C1": "fiqra",
"\u062D\u0631\u0641": "harf",
"\u062D\u0631\u0648\u0641": "haroof",
"\u0645\u0639\u0646\u06CC": "maani",
"\u0645\u0637\u0644\u0628": "matlab",
"\u0646\u0627\u0645": "naam",
"\u067E\u062A\u06C1": "pata",
"\u062E\u0628\u0631": "khabar",
"\u0627\u062E\u0628\u0627\u0631": "akhbar",
"\u0631\u0633\u0627\u0644\u06C1": "risala",
"\u0645\u062C\u0644\u06C1": "majalla",
"\u06A9\u06C1\u0627\u0646\u06CC": "kahani",
"\u0642\u0635\u06C1": "qissa",
"\u062F\u0627\u0633\u062A\u0627\u0646": "dastan",
"\u0646\u0627\u0648\u0644": "novel",
"\u0627\u0641\u0633\u0627\u0646\u06C1": "afsana",
"\u0645\u0636\u0645\u0648\u0646": "mazmoon",
"\u0645\u0642\u0627\u0644\u06C1": "maqala",
"\u0634\u0639\u0631": "sher",
"\u0627\u0634\u0639\u0627\u0631": "ashaar",
"\u063A\u0632\u0644": "ghazal",
"\u0646\u0638\u0645": "nazm",
"\u0645\u0631\u062B\u06CC\u06C1": "marsiya",
"\u0642\u0635\u06CC\u062F\u06C1": "qaseeda",
"\u0627\u062F\u0628": "adab",
"\u062A\u0627\u0631\u06CC\u062E": "tareekh",
"\u062C\u063A\u0631\u0627\u0641\u06CC\u06C1": "jughrafia",
"\u0631\u06CC\u0627\u0636\u06CC": "riyazi",
"\u0633\u0627\u0626\u0646\u0633": "science",
"\u0641\u0644\u0633\u0641\u06C1": "falsafa",
"\u0645\u0646\u0637\u0642": "mantiq",
"\u062B\u0642\u0627\u0641\u062A": "saqafat",
"\u062A\u06C1\u0630\u06CC\u0628": "tehzeeb",
"\u062A\u0645\u062F\u0646": "tamaddun",
"\u0631\u0633\u0645": "rasm",
"\u0631\u0648\u0627\u062C": "riwaj",
"\u0645\u0648\u0633\u06CC\u0642\u06CC": "moseeqi",
"\u0631\u0627\u06AF": "raag",
"\u0633\u0627\u0632": "saaz",
"\u062A\u0635\u0648\u06CC\u0631": "tasweer",
"\u0646\u0642\u0634\u06C1": "naqsha",
"\u0631\u0646\u06AF": "rang",
"\u0622\u0648\u0627\u0632": "awaz",
"\u0634\u0648\u0631": "shor",
"\u062E\u0627\u0645\u0648\u0634\u06CC": "khamoshi",
"\u0633\u06A9\u0648\u062A": "sakoot",
"\u062A\u062D\u0642\u06CC\u0642": "tehqeeq",
"\u062A\u0644\u0627\u0634": "talash",
"\u06A9\u06BE\u0648\u062C": "khoj",
// ---- religion & spiritual ----
"\u0646\u0645\u0627\u0632": "namaz",
"\u0635\u0644\u0648\u06C1": "salat",
"\u0631\u0648\u0632\u06C1": "roza",
"\u0635\u0648\u0645": "saum",
"\u0632\u06A9\u0648\u06C1": "zakat",
"\u062D\u062C": "hajj",
"\u0639\u0645\u0631\u06C1": "umrah",
"\u0639\u06CC\u062F": "eid",
"\u0642\u0631\u0628\u0627\u0646\u06CC": "qurbani",
"\u0645\u0630\u06C1\u0628": "mazhab",
"\u0627\u0633\u0644\u0627\u0645": "islam",
"\u0627\u0644\u0644\u06C1": "allah",
"\u0631\u0628": "rabb",
"\u062E\u062F\u0627": "khuda",
"\u0631\u0633\u0648\u0644": "rasool",
"\u0646\u0628\u06CC": "nabi",
"\u067E\u06CC\u063A\u0645\u0628\u0631": "paighambar",
"\u0635\u062D\u0627\u0628\u06CC": "sahabi",
"\u0635\u062D\u0627\u0628\u06C1": "sahaba",
"\u0627\u06C1\u0644": "ahl",
"\u0628\u06CC\u062A": "bait",
"\u0642\u0631\u0622\u0646": "quran",
"\u062D\u062F\u06CC\u062B": "hadees",
"\u0633\u0646\u062A": "sunnat",
"\u0634\u0631\u06CC\u0639\u062A": "shariat",
"\u0641\u0642\u06C1": "fiqh",
"\u062F\u06CC\u0646": "deen",
"\u0627\u06CC\u0645\u0627\u0646": "imaan",
"\u0639\u0642\u06CC\u062F\u06C1": "aqeeda",
"\u062C\u0646\u062A": "jannat",
"\u0641\u0631\u062F\u0648\u0633": "firdaus",
"\u062C\u06C1\u0646\u0645": "jahannum",
"\u062F\u0648\u0632\u062E": "dozakh",
"\u0641\u0631\u0634\u062A\u06C1": "farishta",
"\u0645\u0644\u0627\u0626\u06A9\u06C1": "malaika",
"\u0634\u06CC\u0637\u0627\u0646": "shaitan",
"\u0627\u0628\u0644\u06CC\u0633": "iblees",
"\u062C\u0646\u0627\u062A": "jinnat",
"\u0642\u06CC\u0627\u0645\u062A": "qayamat",
"\u062D\u0634\u0631": "hashr",
"\u062D\u0633\u0627\u0628": "hisaab",
"\u0645\u06CC\u0632\u0627\u0646": "meezan",
"\u0635\u0631\u0627\u0637": "sirat",
"\u0639\u0628\u0627\u062F\u062A": "ibadat",
"\u0628\u0646\u062F\u06AF\u06CC": "bandagi",
"\u0633\u062C\u062F\u06C1": "sajda",
"\u0631\u06A9\u0648\u0639": "rukoo",
"\u062A\u0644\u0627\u0648\u062A": "tilawat",
"\u062A\u0633\u0628\u06CC\u062D": "tasbeeh",
"\u0630\u06A9\u0631": "zikr",
"\u062A\u0648\u0628\u06C1": "tauba",
"\u0627\u0633\u062A\u063A\u0641\u0627\u0631": "istighfar",
"\u062B\u0648\u0627\u0628": "sawab",
"\u0627\u062C\u0631": "ajar",
"\u06AF\u0646\u0627\u06C1": "gunah",
"\u0645\u0639\u0635\u06CC\u062A": "masiyat",
"\u0639\u0630\u0627\u0628": "azaab",
"\u0631\u062D\u0645\u062A": "rehmat",
"\u0628\u0631\u06A9\u062A": "barkat",
"\u0641\u0636\u0644": "fazal",
"\u06A9\u0631\u0645": "karam",
"\u0646\u06CC\u06A9\u06CC": "naiki",
"\u0628\u062F\u06CC": "badi",
"\u062A\u0642\u0648\u06CC": "taqwa",
"\u067E\u0631\u06C1\u06CC\u0632\u06AF\u0627\u0631\u06CC": "parhezgari",
"\u0648\u0644\u0627\u06CC\u062A": "wilayat",
"\u0648\u0644\u06CC": "wali",
"\u0635\u0648\u0641\u06CC": "sufi",
"\u062F\u0631\u0648\u06CC\u0634": "darwesh",
"\u0641\u0642\u06CC\u0631": "faqeer",
// ---- news, politics, governance, law ----
"\u0633\u06CC\u0627\u0633\u062A": "siyasat",
"\u0633\u06CC\u0627\u0633\u06CC": "siyasi",
"\u0627\u0644\u06CC\u06A9\u0634\u0646": "election",
"\u0627\u0646\u062A\u062E\u0627\u0628": "intikhab",
"\u0627\u0646\u062A\u062E\u0627\u0628\u0627\u062A": "intikhabat",
"\u0648\u0648\u0679": "vote",
"\u0627\u0645\u06CC\u062F\u0648\u0627\u0631": "ummedwar",
"\u067E\u0627\u0631\u0679\u06CC": "party",
"\u062C\u0645\u0627\u0639\u062A": "jamaat",
"\u0627\u0633\u0645\u0628\u0644\u06CC": "assembly",
"\u067E\u0627\u0631\u0644\u06CC\u0645\u0646\u0679": "parliament",
"\u0627\u06CC\u0648\u0627\u0646": "aiwan",
"\u0633\u06CC\u0646\u06CC\u0679": "senate",
"\u0642\u0627\u0646\u0648\u0646": "qanoon",
"\u062F\u0633\u062A\u0648\u0631": "dastoor",
"\u0622\u0626\u06CC\u0646": "aaeen",
"\u062C\u0645\u06C1\u0648\u0631\u06CC\u062A": "jamhooriat",
"\u0622\u0645\u0631\u06CC\u062A": "aamriyat",
"\u062D\u06A9\u0648\u0645\u062A": "hukumat",
"\u0631\u06CC\u0627\u0633\u062A": "riyasat",
"\u0633\u0644\u0637\u0646\u062A": "saltanat",
"\u062D\u06A9\u0645\u0631\u0627\u0646": "hukmaran",
"\u0627\u067E\u0648\u0632\u06CC\u0634\u0646": "opposition",
"\u062D\u0632\u0628": "hizb",
"\u0627\u062E\u062A\u0644\u0627\u0641": "ikhtilaf",
"\u0627\u062A\u062D\u0627\u062F": "ittehad",
"\u062A\u0646\u0638\u06CC\u0645": "tanzeem",
"\u0627\u062F\u0627\u0631\u06C1": "idara",
"\u06A9\u0645\u067E\u0646\u06CC": "company",
"\u062C\u0631\u0645": "jurm",
"\u0645\u062C\u0631\u0645": "mujrim",
"\u0645\u0644\u0632\u0645": "mulzim",
"\u0642\u06CC\u062F\u06CC": "qaidi",
"\u06AF\u0648\u0627\u06C1": "gawah",
"\u0634\u06C1\u0627\u062F\u062A": "shahadat",
"\u062B\u0628\u0648\u062A": "saboot",
"\u0633\u0632\u0627": "saza",
"\u062C\u0631\u0645\u0627\u0646\u06C1": "jurmana",
"\u0641\u0648\u062C": "fauj",
"\u0644\u0634\u06A9\u0631": "lashkar",
"\u0639\u0633\u0627\u06A9\u0631": "asakir",
"\u062C\u0646\u06AF": "jang",
"\u0645\u0639\u0631\u06A9\u06C1": "maraka",
"\u0644\u0691\u0627\u0626\u06CC": "larai",
"\u0627\u0645\u0646": "aman",
"\u0635\u0644\u062D": "sulah",
"\u0645\u0639\u0627\u06C1\u062F\u06C1": "muahida",
"\u067E\u06CC\u0645\u0627\u0646": "paiman",
"\u0645\u0639\u06CC\u0634\u062A": "maeeshat",
"\u0627\u0642\u062A\u0635\u0627\u062F\u06CC\u0627\u062A": "iqtisadiyat",
"\u062A\u062C\u0627\u0631\u062A": "tijarat",
"\u06A9\u0627\u0631\u0648\u0628\u0627\u0631": "karobar",
"\u0635\u0646\u0639\u062A": "sanat",
"\u062D\u0631\u0641\u062A": "hirfat",
"\u0628\u062C\u0679": "budget",
"\u062E\u0633\u0627\u0631\u06C1": "khasara",
"\u0645\u0646\u0627\u0641\u0639": "munafa",
"\u0646\u0642\u0635\u0627\u0646": "nuqsan",
"\u062A\u0631\u0642\u06CC": "taraqqi",
"\u062A\u0646\u0632\u0644": "tanazzul",
"\u0645\u0646\u0635\u0648\u0628\u06C1": "mansooba",
"\u067E\u0631\u0648\u062C\u06CC\u06A9\u0679": "project",
"\u0627\u0639\u0644\u0627\u0646": "elaan",
"\u0627\u0634\u062A\u06C1\u0627\u0631": "ishtihar",
"\u0631\u067E\u0648\u0631\u0679": "report",
"\u0628\u06CC\u0627\u0646": "bayan",
"\u0627\u062C\u0644\u0627\u0633": "ijlas",
"\u06A9\u0627\u0646\u0641\u0631\u0646\u0633": "conference",
"\u062F\u0648\u0631\u06C1": "dora",
"\u0645\u0644\u0627\u0642\u0627\u062A": "mulaqat",
"\u0645\u0630\u0627\u06A9\u0631\u0627\u062A": "muzakrat",
"\u062A\u0642\u0631\u06CC\u0628": "taqreeb",
"\u062C\u0644\u0633\u06C1": "jalsa",
"\u062C\u0644\u0648\u0633": "juloos",
"\u06C1\u0691\u062A\u0627\u0644": "hartal",
"\u0645\u0638\u0627\u06C1\u0631\u06C1": "muzahira",
"\u0627\u062D\u062A\u062C\u0627\u062C": "ehtejaj",
"\u062A\u0642\u0631\u06CC\u0631": "taqreer",
"\u062E\u0637\u0627\u0628": "khitab",
"\u067E\u06CC\u063A\u0627\u0645": "paigham",
// ---- nature, environment, animals ----
"\u062F\u0631\u062E\u062A": "darakht",
"\u0634\u062C\u0631": "shajar",
"\u067E\u0648\u062F\u0627": "pauda",
"\u067E\u0648\u062F\u06D2": "pauday",
"\u067E\u062A\u06D2": "pattay",
"\u067E\u06BE\u0648\u0644": "phool",
"\u06A9\u0644\u06CC": "kali",
"\u0634\u0627\u062E": "shaakh",
"\u0679\u06C1\u0646\u06CC": "tahni",
"\u062C\u0691": "jar",
"\u062A\u0646\u0627": "tana",
"\u06AF\u06BE\u0627\u0633": "ghaas",
"\u0633\u0628\u0632\u06C1": "sabza",
"\u062C\u0646\u06AF\u0644": "jungle",
"\u0628\u06CC\u0627\u0628\u0627\u0646": "bayaban",
"\u0635\u062D\u0631\u0627": "sehra",
"\u0631\u06CC\u06AF\u0633\u062A\u0627\u0646": "registan",
"\u067E\u06C1\u0627\u0691": "pahar",
"\u06A9\u0648\u06C1": "koh",
"\u0686\u0648\u0679\u06CC": "choti",
"\u0648\u0627\u062F\u06CC": "wadi",
"\u062F\u0631\u06C1": "darra",
"\u063A\u0627\u0631": "ghaar",
"\u062F\u0631\u06CC\u0627": "darya",
"\u0646\u06C1\u0631": "nehar",
"\u0646\u062F\u06CC": "nadi",
"\u0646\u0627\u0644\u06C1": "nala",
"\u0633\u0645\u0646\u062F\u0631": "samandar",
"\u0628\u062D\u0631": "behar",
"\u0633\u0627\u062D\u0644": "sahil",
"\u06A9\u0646\u0627\u0631\u06C1": "kinara",
"\u062C\u0632\u06CC\u0631\u06C1": "jazeera",
"\u062C\u06BE\u06CC\u0644": "jheel",
"\u062A\u0627\u0644\u0627\u0628": "talab",
"\u062D\u0648\u0636": "hauz",
"\u06A9\u0646\u0648\u0627\u06BA": "kuan",
"\u0686\u0634\u0645\u06C1": "chashma",
"\u0622\u0628\u0634\u0627\u0631": "aabshar",
"\u0645\u0679\u06CC": "mitti",
"\u0631\u06CC\u062A": "rait",
"\u067E\u062A\u06BE\u0631": "patthar",
"\u0686\u0679\u0627\u0646": "chatan",
"\u0686\u0627\u0646\u062F\u06CC": "chandi",
"\u062A\u0627\u0646\u0628\u0627": "tanba",
"\u0644\u0648\u06C1\u0627": "loha",
"\u067E\u06CC\u062A\u0644": "peetal",
"\u06A9\u0648\u0626\u0644\u06C1": "koyla",
"\u0622\u06AF": "aag",
"\u0634\u0639\u0644\u06C1": "shola",
"\u062F\u06BE\u0648\u0627\u06BA": "dhuwan",
"\u0631\u0627\u06A9\u06BE": "raakh",
"\u0631\u0648\u0634\u0646\u06CC": "roshni",
"\u0646\u0648\u0631": "noor",
"\u0627\u0646\u062F\u06BE\u06CC\u0631\u0627": "andhera",
"\u062A\u0627\u0631\u06CC\u06A9\u06CC": "tareeki",
"\u0633\u0627\u06CC\u06C1": "saya",
"\u06A9\u062A\u0627": "kutta",
"\u06A9\u062A\u06CC\u0627": "kutiya",
"\u0628\u0644\u06CC": "billi",
"\u0628\u0644\u0627": "billa",
"\u06AF\u06BE\u0648\u0691\u0627": "ghora",
"\u06AF\u06BE\u0648\u0691\u06CC": "ghori",
"\u06AF\u062F\u06BE\u0627": "gadha",
"\u06AF\u062F\u06BE\u06CC": "gadhi",
"\u062E\u0686\u0631": "khachhar",
"\u06AF\u0627\u0626\u06D2": "gaye",
"\u0628\u06CC\u0644": "bail",
"\u0628\u0686\u06BE\u0691\u0627": "bachhra",
"\u0628\u06BE\u06CC\u0646\u0633": "bhains",
"\u0628\u06A9\u0631\u06CC": "bakri",
"\u0628\u06A9\u0631\u0627": "bakra",
"\u0628\u06BE\u06CC\u0691": "bheed",
"\u062F\u0646\u0628\u06C1": "dumbah",
"\u0634\u06CC\u0631": "sheer",
"\u0628\u0628\u0631": "babar",
"\u0686\u06CC\u062A\u0627": "cheeta",
"\u062A\u06CC\u0646\u062F\u0648\u0627": "tendwa",
"\u0628\u06BE\u06CC\u0691\u06CC\u0627": "bhediya",
"\u0644\u0648\u0645\u0691\u06CC": "lomri",
"\u0631\u06CC\u0686\u06BE": "reech",
"\u06C1\u0627\u062A\u06BE\u06CC": "hathi",
"\u06C1\u062A\u06BE\u0646\u06CC": "hathni",
"\u0627\u0648\u0646\u0679": "oont",
"\u0633\u0627\u0646\u0688\u0646\u06CC": "sandni",
"\u06C1\u0631\u0646": "hiran",
"\u0633\u0646\u06AF\u06BE\u0627": "singha",
"\u062E\u0631\u06AF\u0648\u0634": "khargosh",
"\u0628\u0646\u062F\u0631": "bandar",
"\u0686\u0648\u06C1\u0627": "chooha",
"\u0686\u0648\u06C1\u06CC\u0627": "chuhiya",
"\u067E\u0631\u0646\u062F\u06C1": "parinda",
"\u0686\u0631\u0646\u062F": "charand",
"\u067E\u0631\u0646\u062F": "parand",
"\u06A9\u0648\u0627": "kawa",
"\u0637\u0648\u0637\u0627": "tota",
"\u0645\u06CC\u0646\u0627": "maina",
"\u0686\u0691\u06CC\u0627": "chiriya",
"\u06A9\u0628\u0648\u062A\u0631": "kabootar",
"\u0641\u0627\u062E\u062A\u06C1": "fakhta",
"\u0639\u0642\u0627\u0628": "uqaab",
"\u0628\u0627\u0632": "baaz",
"\u0634\u0627\u06C1\u06CC\u0646": "shaheen",
"\u0686\u06CC\u0644": "cheel",
"\u06AF\u062F\u06BE": "gidh",
"\u0627\u0644\u0648": "ulloo",
"\u0628\u06AF\u0644\u0627": "bagla",
"\u0628\u0637\u062E": "battakh",
"\u06C1\u0646\u0633": "hans",
"\u0645\u0648\u0631": "mor",
"\u0645\u0631\u063A": "murgh",
"\u0645\u0631\u063A\u0627": "murgha",
"\u0645\u0631\u063A\u0627\u0628\u06CC": "murghabi",
"\u06A9\u0648\u0626\u0644": "koyal",
"\u0628\u0644\u0628\u0644": "bulbul",
"\u0633\u0627\u0646\u067E": "saanp",
"\u0646\u0627\u06AF": "naag",
"\u0686\u06BE\u067E\u06A9\u0644\u06CC": "chhipkali",
"\u0645\u06AF\u0631\u0645\u0686\u06BE": "magarmachh",
"\u06A9\u0686\u06BE\u0648\u0627": "kachhwa",
"\u0645\u06CC\u0646\u0688\u06A9": "maindak",
"\u0645\u0686\u06BE\u0631": "machhar",
"\u0645\u06A9\u06BE\u06CC": "makkhi",
"\u0645\u06A9\u0691\u06CC": "makri",
"\u062A\u062A\u0644\u06CC": "titli",
"\u06A9\u06CC\u0691\u0627": "keera",
"\u06A9\u06CC\u0691\u06D2": "keeray",
"\u067E\u062A\u0646\u06AF\u0627": "patanga",
"\u0686\u06CC\u0648\u0646\u0679\u06CC": "cheenti",
"\u0628\u0686\u06BE\u0648": "bichhoo",
// ---- adjectives ----
"\u0627\u0686\u06BE\u0627": "acha",
"\u0627\u0686\u06BE\u06CC": "achi",
"\u0627\u0686\u06BE\u06D2": "achay",
"\u0628\u0631\u0627": "bura",
"\u0628\u0631\u06CC": "buri",
"\u0628\u0631\u06D2": "buray",
"\u0628\u0691\u0627": "bara",
"\u0628\u0691\u06CC": "bari",
"\u0628\u0691\u06D2": "baray",
"\u0686\u06BE\u0648\u0679\u0627": "chhota",
"\u0686\u06BE\u0648\u0679\u06CC": "chhoti",
"\u0686\u06BE\u0648\u0679\u06D2": "chhotay",
"\u0646\u06CC\u0627": "naya",
"\u0646\u0626\u06CC": "nayi",
"\u0646\u0626\u06D2": "naye",
"\u067E\u0631\u0627\u0646\u0627": "purana",
"\u067E\u0631\u0627\u0646\u06CC": "purani",
"\u067E\u0631\u0627\u0646\u06D2": "puranay",
"\u0644\u0645\u0628\u0627": "lamba",
"\u0644\u0645\u0628\u06CC": "lambi",
"\u0644\u0645\u0628\u06D2": "lambay",
"\u0645\u0648\u0679\u0627": "mota",
"\u0645\u0648\u0679\u06CC": "moti",
"\u0645\u0648\u0679\u06D2": "motay",
"\u067E\u062A\u0644\u0627": "patla",
"\u067E\u062A\u0644\u06CC": "patli",
"\u067E\u062A\u0644\u06D2": "patlay",
"\u062F\u0628\u0644\u0627": "dubla",
"\u062A\u06CC\u0632": "tez",
"\u0633\u0633\u062A": "sust",
"\u0622\u06C1\u0633\u062A\u06C1": "ahista",
"\u06AF\u0631\u0645": "garam",
"\u0679\u06BE\u0646\u0688\u0627": "thanda",
"\u0679\u06BE\u0646\u0688\u06CC": "thandi",
"\u0679\u06BE\u0646\u0688\u06D2": "thanday",
"\u0633\u0631\u062F": "sard",
"\u062E\u0634\u06A9": "khushk",
"\u06AF\u06CC\u0644\u0627": "geela",
"\u06AF\u06CC\u0644\u06CC": "geeli",
"\u062A\u0631": "tarr",
"\u0645\u06CC\u0679\u06BE\u0627": "meetha",
"\u0645\u06CC\u0679\u06BE\u06CC": "meethi",
"\u0645\u06CC\u0679\u06BE\u06D2": "meethay",
"\u06A9\u0691\u0648\u0627": "karwa",
"\u06A9\u0691\u0648\u06CC": "karwi",
"\u06A9\u06BE\u0679\u0627": "khatta",
"\u06A9\u06BE\u0679\u06CC": "khatti",
"\u0646\u0645\u06A9\u06CC\u0646": "namkeen",
"\u067E\u06BE\u06CC\u06A9\u0627": "pheeka",
"\u0635\u0627\u0641": "saaf",
"\u0633\u062A\u06BE\u0631\u0627": "suthra",
"\u06AF\u0646\u062F\u0627": "ganda",
"\u06AF\u0646\u062F\u06CC": "gandi",
"\u062E\u0627\u0644\u06CC": "khali",
"\u0628\u06BE\u0631\u06CC": "bhari",
"\u0628\u06BE\u0631\u06D2": "bharay",
"\u0645\u0634\u06A9\u0644": "mushkil",
"\u062F\u0634\u0648\u0627\u0631": "dushwar",
"\u0622\u0633\u0627\u0646": "aasan",
"\u0633\u06C1\u0644": "sehal",
"\u0636\u0631\u0648\u0631\u06CC": "zaroori",
"\u0644\u0627\u0632\u0645\u06CC": "lazmi",
"\u0645\u06A9\u0645\u0644": "mukammal",
"\u0627\u062F\u06BE\u0648\u0631\u0627": "adhoora",
"\u062A\u06CC\u0627\u0631": "tayyar",
"\u062E\u0648\u0634": "khush",
"\u0646\u0627\u0631\u0627\u0636": "naraz",
"\u062E\u0641\u0627": "khafa",
"\u067E\u0631\u06CC\u0634\u0627\u0646": "pareshan",
"\u0627\u062F\u0627\u0633": "udaas",
"\u063A\u0645\u06AF\u06CC\u0646": "ghamgeen",
"\u062A\u06BE\u06A9\u0627": "thaka",
"\u062A\u06BE\u06A9\u06CC": "thaki",
"\u062A\u06BE\u06A9\u06D2": "thakay",
"\u0628\u06CC\u0645\u0627\u0631": "beemar",
"\u062A\u0646\u062F\u0631\u0633\u062A": "tandurust",
"\u0627\u0645\u06CC\u0631": "ameer",
"\u063A\u0631\u06CC\u0628": "ghareeb",
"\u0646\u0627\u062F\u0627\u0631": "nadar",
"\u0645\u0641\u0644\u0633": "muflis",
"\u0645\u0634\u06C1\u0648\u0631": "mashhoor",
"\u0645\u0639\u0631\u0648\u0641": "maroof",
"\u06AF\u0645\u0646\u0627\u0645": "gumnam",
"\u062E\u0648\u0628\u0635\u0648\u0631\u062A": "khoobsurat",
"\u0628\u062F\u0635\u0648\u0631\u062A": "badsurat",
"\u0642\u0628\u06CC\u062D": "qabeeh",
"\u0630\u06C1\u06CC\u0646": "zaheen",
"\u0639\u0642\u0644\u0645\u0646\u062F": "aqlmand",
"\u062F\u0627\u0646\u0627": "dana",
"\u06C1\u0648\u0634\u06CC\u0627\u0631": "hoshiyar",
"\u0686\u0627\u0644\u0627\u06A9": "chalak",
"\u0628\u06D2\u0648\u0642\u0648\u0641": "bewaqoof",
"\u0627\u062D\u0645\u0642": "ahmaq",
"\u0646\u0627\u062F\u0627\u0646": "nadan",
"\u0628\u06C1\u0627\u062F\u0631": "bahadur",
"\u0634\u062C\u0627\u0639": "shuja",
"\u062F\u0644\u06CC\u0631": "daler",
"\u0628\u0632\u062F\u0644": "buzdil",
"\u0688\u0631\u067E\u0648\u06A9": "darpok",
"\u0645\u062D\u0646\u062A\u06CC": "mehnati",
"\u0633\u0686\u0627": "sacha",
"\u0633\u0686\u06CC": "sachi",
"\u0633\u0686\u06D2": "sachay",
"\u062C\u06BE\u0648\u0679\u0627": "jhoota",
"\u062C\u06BE\u0648\u0679\u06CC": "jhooti",
"\u062C\u06BE\u0648\u0679\u06D2": "jhootay",
"\u0627\u06CC\u0645\u0627\u0646\u062F\u0627\u0631": "imandar",
"\u062F\u06CC\u0627\u0646\u062A\u062F\u0627\u0631": "diyanatdar",
"\u0628\u06D2\u0627\u06CC\u0645\u0627\u0646": "beiman",
"\u067E\u06CC\u0627\u0631\u0627": "pyara",
"\u067E\u06CC\u0627\u0631\u06CC": "pyari",
"\u067E\u06CC\u0627\u0631\u06D2": "pyaray",
"\u0639\u062C\u06CC\u0628": "ajeeb",
"\u0627\u0646\u0648\u06A9\u06BE\u0627": "anokha",
"\u0646\u0631\u0627\u0644\u0627": "nirala",
"\u062E\u0627\u0635": "khaas",
"\u0645\u062E\u0635\u0648\u0635": "makhsoos",
"\u0639\u0627\u0645": "aam",
"\u0633\u0633\u062A\u0627": "sasta",
"\u0633\u0633\u062A\u06CC": "sasti",
"\u0645\u06C1\u0646\u06AF\u0627": "mehanga",
"\u0645\u06C1\u0646\u06AF\u06CC": "mehangi",
"\u0628\u06BE\u0627\u0631\u06CC": "bhari",
"\u0648\u0632\u0646\u06CC": "wazni",
"\u06C1\u0644\u06A9\u0627": "halka",
"\u06C1\u0644\u06A9\u06CC": "halki",
"\u0633\u062E\u062A": "sakht",
"\u0646\u0631\u0645": "naram",
"\u0645\u0644\u0627\u0626\u0645": "mulaim",
"\u0631\u0648\u0634\u0646": "roshan",
"\u062A\u0627\u0631\u06CC\u06A9": "tareek",
"\u06AF\u06C1\u0631\u0627": "gehra",
"\u06AF\u06C1\u0631\u06CC": "gehri",
"\u0627\u0648\u0646\u0686\u0627": "ooncha",
"\u0627\u0648\u0646\u0686\u06CC": "oonchi",
"\u067E\u0633\u062A": "past",
"\u0686\u0648\u0691\u0627": "chaura",
"\u0686\u0648\u0691\u06CC": "chauri",
"\u062A\u0646\u06AF": "tang",
"\u0645\u0636\u0628\u0648\u0637": "mazboot",
"\u067E\u0627\u0626\u06CC\u062F\u0627\u0631": "paayedar",
"\u06A9\u0645\u0632\u0648\u0631": "kamzor",
"\u0646\u0627\u0632\u06A9": "nazuk",
// ---- colours ----
"\u0633\u0641\u06CC\u062F": "safaid",
"\u06A9\u0627\u0644\u0627": "kala",
"\u06A9\u0627\u0644\u06CC": "kali",
"\u06A9\u0627\u0644\u06D2": "kalay",
"\u0633\u06CC\u0627\u06C1": "siyah",
"\u0633\u0631\u062E": "surkh",
"\u0644\u0627\u0644": "laal",
"\u0646\u06CC\u0644\u0627": "neela",
"\u0646\u06CC\u0644\u06CC": "neeli",
"\u0646\u06CC\u0644\u06D2": "neelay",
"\u06C1\u0631\u0627": "hara",
"\u06C1\u0631\u06CC": "hari",
"\u06C1\u0631\u06D2": "haray",
"\u0633\u0628\u0632": "sabz",
"\u067E\u06CC\u0644\u0627": "peela",
"\u067E\u06CC\u0644\u06CC": "peeli",
"\u067E\u06CC\u0644\u06D2": "peelay",
"\u0632\u0631\u062F": "zard",
"\u0628\u06BE\u0648\u0631\u0627": "bhura",
"\u0628\u06BE\u0648\u0631\u06CC": "bhuri",
"\u06AF\u0644\u0627\u0628\u06CC": "gulabi",
"\u0646\u0627\u0631\u0646\u062C\u06CC": "naranji",
"\u062C\u0627\u0645\u0646\u06CC": "jamni",
"\u0628\u06CC\u06AF\u0646\u06CC": "baingani",
"\u0633\u0631\u0645\u0626\u06CC": "surmai",
"\u0633\u0646\u06C1\u0631\u06CC": "sunehri",
"\u0631\u0648\u067E\u06C1\u0644\u06CC": "rupahli",
// ---- numbers & ordinals ----
"\u0635\u0641\u0631": "sifar",
"\u062A\u06CC\u0646": "teen",
"\u0686\u0627\u0631": "char",
"\u067E\u0627\u0646\u0686": "panch",
"\u0686\u06BE": "chhe",
"\u0633\u0627\u062A": "saat",
"\u0622\u0679\u06BE": "aath",
"\u0646\u0648": "nau",
"\u062F\u0633": "das",
"\u06AF\u06CC\u0627\u0631\u06C1": "gyarah",
"\u0628\u0627\u0631\u06C1": "barah",
"\u062A\u06CC\u0631\u06C1": "terah",
"\u0686\u0648\u062F\u06C1": "chaudah",
"\u067E\u0646\u062F\u0631\u06C1": "pandrah",
"\u0633\u0648\u0644\u06C1": "solah",
"\u0633\u062A\u0631\u06C1": "satrah",
"\u0627\u0679\u06BE\u0627\u0631\u06C1": "atharah",
"\u0627\u0646\u06CC\u0633": "unnees",
"\u0628\u06CC\u0633": "bees",
"\u0627\u06A9\u06CC\u0633": "ikkees",
"\u0628\u0627\u0626\u06CC\u0633": "baees",
"\u062A\u06CC\u0626\u06CC\u0633": "taees",
"\u0686\u0648\u0628\u06CC\u0633": "chaubees",
"\u067E\u0686\u06CC\u0633": "pachees",
"\u0686\u06BE\u0628\u06CC\u0633": "chhabees",
"\u0633\u062A\u0627\u0626\u06CC\u0633": "sataees",
"\u0627\u0679\u0627\u0626\u06CC\u0633": "athaees",
"\u0627\u0646\u062A\u06CC\u0633": "untees",
"\u062A\u06CC\u0633": "tees",
"\u0686\u0627\u0644\u06CC\u0633": "chalees",
"\u067E\u0686\u0627\u0633": "pachas",
"\u0633\u0627\u0679\u06BE": "saath",
"\u0633\u062A\u0631": "sattar",
"\u0627\u0633\u06CC": "assi",
"\u0646\u0648\u06D2": "nabbay",
"\u0633\u0648": "so",
"\u06C1\u0632\u0627\u0631": "hazar",
"\u0644\u0627\u06A9\u06BE": "lakh",
"\u06A9\u0631\u0648\u0691": "karor",
"\u0627\u0631\u0628": "arab",
"\u067E\u06C1\u0644\u0627": "pehla",
"\u067E\u06C1\u0644\u06CC": "pehli",
"\u062F\u0648\u0633\u0631\u0627": "dosra",
"\u062F\u0648\u0633\u0631\u06CC": "dosri",
"\u062F\u0648\u0633\u0631\u06D2": "dosray",
"\u062A\u06CC\u0633\u0631\u0627": "teesra",
"\u062A\u06CC\u0633\u0631\u06CC": "teesri",
"\u062A\u06CC\u0633\u0631\u06D2": "teesray",
"\u0686\u0648\u062A\u06BE\u0627": "chautha",
"\u0686\u0648\u062A\u06BE\u06CC": "chauthi",
"\u0686\u0648\u062A\u06BE\u06D2": "chauthay",
"\u067E\u0627\u0646\u0686\u0648\u0627\u06BA": "panchwan",
"\u067E\u0627\u0646\u0686\u0648\u06CC\u06BA": "panchwein",
"\u0686\u06BE\u0679\u0627": "chhatta",
"\u0686\u06BE\u0679\u06CC": "chhatti",
"\u0633\u0627\u062A\u0648\u0627\u06BA": "saatwan",
"\u0633\u0627\u062A\u0648\u06CC\u06BA": "saatwein",
"\u0622\u0679\u06BE\u0648\u0627\u06BA": "aathwan",
"\u0622\u0679\u06BE\u0648\u06CC\u06BA": "aathwein",
"\u0646\u0648\u0627\u06BA": "nawwan",
"\u0646\u0648\u06CC\u06BA": "nawein",
"\u062F\u0633\u0648\u0627\u06BA": "daswan",
"\u062F\u0633\u0648\u06CC\u06BA": "daswein",
"\u0622\u062E\u0631\u06CC": "aakhri",
"\u0627\u0648\u0644": "awwal",
"\u062F\u0648\u0645": "dom",
"\u0633\u0648\u0645": "som",
// ---- greetings, discourse markers, interjections ----
"\u0633\u0644\u0627\u0645": "salam",
"\u062E\u062F\u0627\u062D\u0627\u0641\u0638": "khudahafiz",
"\u062D\u0627\u0641\u0638": "hafiz",
"\u0645\u06C1\u0631\u0628\u0627\u0646\u06CC": "meherbani",
"\u0645\u0628\u0627\u0631\u06A9": "mubarak",
"\u0645\u0628\u0627\u0631\u06A9\u0628\u0627\u062F": "mubarakbaad",
"\u062E\u0648\u0634\u0627\u0645\u062F": "khushamad",
"\u062E\u0648\u0634\u0627\u0645\u062F\u06CC\u062F": "khushamdeed",
"\u0627\u06C1\u0644\u0627\u064B": "ahlan",
"\u0648\u0633\u06C1\u0644\u0627\u064B": "wasahlan",
"\u06C1\u0627\u06BA": "haan",
"\u062C\u06CC": "ji",
"\u0679\u06BE\u06CC\u06A9": "theek",
"\u062F\u0631\u0633\u062A": "durust",
"\u0635\u062D\u06CC\u062D": "sahi",
"\u063A\u0644\u0637": "ghalat",
"\u0628\u0627\u0644\u06A9\u0644": "bilkul",
"\u0636\u0631\u0648\u0631": "zaroor",
"\u0634\u0627\u06CC\u062F": "shayad",
"\u06A9\u0627\u0634": "kaash",
"\u0648\u0627\u06C1": "waah",
"\u0634\u0627\u0628\u0627\u0634": "shabash",
"\u0622\u0641\u0631\u06CC\u0646": "aafreen",
"\u0645\u0631\u062D\u0628\u0627": "marhaba",
"\u0633\u0628\u062D\u0627\u0646": "subhan",
"\u0627\u0644\u062D\u0645\u062F": "alhamd",
"\u0645\u0627\u0634\u0627\u0621": "masha",
"\u0627\u0646\u0634\u0627\u0621": "insha",
"\u062C\u0644\u062F\u06CC": "jaldi",
"\u0634\u062A\u0627\u0628\u06CC": "shitabi",
"\u062F\u06CC\u0631": "der",
"\u062A\u0627\u062E\u06CC\u0631": "takheer",
"\u0622\u0631\u0627\u0645": "aaram",
"\u062A\u06BE\u0648\u0691\u0627": "thora",
"\u062A\u06BE\u0648\u0691\u06CC": "thori",
"\u062A\u06BE\u0648\u0691\u06D2": "thoray",
"\u0632\u06CC\u0627\u062F\u06C1": "ziyada",
"\u0628\u06C1\u062A": "bohat",
"\u06A9\u0645": "kam",
"\u0635\u0631\u0641": "sirf",
"\u0645\u062D\u0636": "mahez",
"\u0641\u0642\u0637": "faqat",
"\u0648\u0627\u0642\u0639\u06CC": "waqai",
"\u0645\u0686": "mach",
// ---- cities, regions, countries ----
"\u067E\u0627\u06A9\u0633\u062A\u0627\u0646": "pakistan",
"\u06A9\u0631\u0627\u0686\u06CC": "karachi",
"\u0644\u0627\u06C1\u0648\u0631": "lahore",
"\u0622\u0628\u0627\u062F": "abad",
"\u0631\u0627\u0648\u0644\u067E\u0646\u0688\u06CC": "rawalpindi",
"\u067E\u0634\u0627\u0648\u0631": "peshawar",
"\u06A9\u0648\u0626\u0679\u06C1": "quetta",
"\u0645\u0644\u062A\u0627\u0646": "multan",
"\u0641\u06CC\u0635\u0644": "faisal",
"\u0633\u06CC\u0627\u0644\u06A9\u0648\u0679": "sialkot",
"\u06AF\u0648\u062C\u0631\u0627\u0646\u0648\u0627\u0644\u06C1": "gujranwala",
"\u062D\u06CC\u062F\u0631\u0622\u0628\u0627\u062F": "hyderabad",
"\u0628\u06C1\u0627\u0648\u0644\u067E\u0648\u0631": "bahawalpur",
"\u0633\u0631\u06AF\u0648\u062F\u06BE\u0627": "sargodha",
"\u0633\u06A9\u06BE\u0631": "sukkur",
"\u0644\u0627\u0691\u06A9\u0627\u0646\u06C1": "larkana",
"\u0634\u06CC\u062E\u0648\u067E\u0648\u0631\u06C1": "sheikhupura",
"\u062C\u06BE\u0646\u06AF": "jhang",
"\u06AF\u062C\u0631\u0627\u062A": "gujrat",
"\u0645\u0631\u062F\u0627\u0646": "mardan",
"\u0642\u0635\u0648\u0631": "kasur",
"\u0635\u0648\u0627\u0628\u06CC": "swabi",
"\u0627\u06CC\u0628\u0679": "abbott",
"\u06AF\u0644\u06AF\u062A": "gilgit",
"\u0628\u0644\u062A\u0633\u062A\u0627\u0646": "baltistan",
"\u0645\u0638\u0641\u0631\u0622\u0628\u0627\u062F": "muzaffarabad",
"\u06AF\u0648\u0627\u062F\u0631": "gwadar",
"\u0633\u06A9\u0631\u062F\u0648": "skardu",
"\u0633\u0648\u0627\u062A": "swat",
"\u0686\u062A\u0631\u0627\u0644": "chitral",
"\u067E\u0646\u062C\u0627\u0628": "punjab",
"\u0633\u0646\u062F\u06BE": "sindh",
"\u0628\u0644\u0648\u0686\u0633\u062A\u0627\u0646": "balochistan",
"\u062E\u06CC\u0628\u0631": "khyber",
"\u067E\u062E\u062A\u0648\u0646\u062E\u0648\u0627": "pakhtunkhwa",
"\u06A9\u0634\u0645\u06CC\u0631": "kashmir",
"\u0628\u06BE\u0627\u0631\u062A": "bharat",
"\u06C1\u0646\u062F\u0648\u0633\u062A\u0627\u0646": "hindustan",
"\u0686\u06CC\u0646": "cheen",
"\u0627\u0641\u063A\u0627\u0646\u0633\u062A\u0627\u0646": "afghanistan",
"\u0627\u06CC\u0631\u0627\u0646": "iran",
"\u0633\u0639\u0648\u062F\u06CC": "saudi",
"\u0639\u0631\u0628": "arab",
"\u0627\u0645\u0627\u0631\u0627\u062A": "imarat",
"\u062F\u0628\u0626\u06CC": "dubai",
"\u0642\u0637\u0631": "qatar",
"\u06A9\u0648\u06CC\u062A": "kuwait",
"\u0628\u062D\u0631\u06CC\u0646": "bahrain",
"\u0639\u0645\u0627\u0646": "oman",
"\u0639\u0631\u0627\u0642": "iraq",
"\u0641\u0644\u0633\u0637\u06CC\u0646": "palestine",
"\u0627\u0631\u062F\u0646": "urdan",
"\u0645\u0635\u0631": "misr",
"\u062A\u0631\u06A9\u06CC": "turkey",
"\u0628\u0631\u0637\u0627\u0646\u06CC\u06C1": "bartania",
"\u0644\u0646\u062F\u0646": "london",
"\u0627\u0645\u0631\u06CC\u06A9\u06C1": "amreeka",
"\u0648\u0627\u0634\u0646\u06AF\u0679\u0646": "washington",
"\u0646\u06CC\u0648\u06CC\u0627\u0631\u06A9": "newyork",
"\u06A9\u06CC\u0646\u06CC\u0688\u0627": "canada",
"\u062C\u0631\u0645\u0646\u06CC": "germany",
"\u0641\u0631\u0627\u0646\u0633": "france",
"\u067E\u06CC\u0631\u0633": "paris",
"\u0627\u0679\u0644\u06CC": "italy",
"\u0631\u0648\u0633": "roos",
"\u0645\u0627\u0633\u06A9\u0648": "moscow",
"\u062C\u0627\u067E\u0627\u0646": "japan",
"\u0679\u0648\u06A9\u06CC\u0648": "tokyo",
"\u0622\u0633\u0679\u0631\u06CC\u0644\u06CC\u0627": "australia",
"\u0628\u06CC\u062C\u0646\u06AF": "beijing",
"\u062F\u06C1\u0644\u06CC": "delhi",
"\u0642\u0627\u06C1\u0631\u06C1": "cairo",
"\u0645\u06A9\u06C1": "makkah",
"\u0645\u062F\u06CC\u0646\u06C1": "madina",
"\u0645\u0642\u062F\u0633": "muqaddas",
// ---- names that appear constantly in Urdu content ----
"\u0645\u062D\u0645\u062F": "muhammad",
"\u0627\u062D\u0645\u062F": "ahmed",
"\u0639\u0644\u06CC": "ali",
"\u062E\u0627\u0646": "khan",
"\u0632\u06CC\u062F": "zaid",
"\u062D\u0633\u0646": "hasan",
"\u062D\u0633\u06CC\u0646": "hussain",
"\u0639\u062B\u0645\u0627\u0646": "usman",
"\u0627\u0628\u0648\u0628\u06A9\u0631": "abubakar",
"\u0628\u0644\u0627\u0644": "bilal",
"\u0627\u0633\u0644\u0645": "aslam",
"\u062D\u0645\u0632\u06C1": "hamza",
"\u0633\u0639\u062F": "saad",
"\u062E\u0627\u0644\u062F": "khalid",
"\u0637\u0627\u0631\u0642": "tariq",
"\u0648\u0644\u06CC\u062F": "waleed",
"\u0634\u0627\u06C1": "shah",
"\u0686\u0648\u06C1\u062F\u0631\u06CC": "chaudhary",
"\u0634\u06CC\u062E": "sheikh",
"\u0633\u06CC\u062F": "syed",
"\u0642\u0631\u06CC\u0634\u06CC": "qureshi",
"\u0628\u0679": "butt",
"\u0645\u063A\u0644": "mughal",
"\u0627\u0646\u0635\u0627\u0631\u06CC": "ansari",
"\u0641\u0627\u0631\u0648\u0642": "farooq",
"\u0633\u0644\u0645\u0627\u0646": "salman",
"\u0639\u0645\u0631\u0627\u0646": "imran",
"\u0646\u0648\u06CC\u062F": "naveed",
"\u06A9\u0627\u0645\u0631\u0627\u0646": "kamran",
"\u0627\u0631\u0633\u0644\u0627\u0646": "arslan",
"\u0639\u0631\u0641\u0627\u0646": "irfan",
"\u0631\u0636\u0648\u0627\u0646": "rizwan",
"\u0639\u062F\u0646\u0627\u0646": "adnan",
"\u0641\u06CC\u0636\u0627\u0646": "faizan",
"\u0634\u06C1\u0632\u0627\u062F": "shehzad",
"\u0648\u0642\u0627\u0631": "waqar",
"\u0628\u0627\u0628\u0631": "babar",
"\u0631\u0636\u0627": "raza",
"\u0637\u0627\u06C1\u0631": "tahir",
"\u0646\u0627\u0635\u0631": "nasir",
"\u0632\u0628\u06CC\u0631": "zubair",
"\u0633\u06C1\u06CC\u0644": "sohail",
"\u0646\u062F\u06CC\u0645": "nadeem",
"\u0648\u0633\u06CC\u0645": "waseem",
"\u0646\u0639\u06CC\u0645": "naeem",
"\u0633\u0644\u06CC\u0645": "saleem",
"\u062C\u0645\u06CC\u0644": "jameel",
"\u0631\u0627\u0634\u062F": "rashid",
"\u0633\u0627\u062C\u062F": "sajid",
"\u0645\u0627\u062C\u062F": "majid",
"\u0639\u0627\u0628\u062F": "abid",
"\u0632\u0627\u06C1\u062F": "zahid",
"\u0634\u0627\u06C1\u062F": "shahid",
"\u0632\u06CC\u0646": "zain",
"\u062D\u0627\u0631\u062B": "haris",
"\u0631\u06CC\u0627\u0646": "rayyan",
"\u0642\u0627\u0633\u0645": "qasim",
"\u0637\u06CC\u0628": "tayyab",
"\u0627\u0628\u0631\u0627\u06C1\u06CC\u0645": "ibrahim",
"\u0627\u0633\u0645\u0627\u0639\u06CC\u0644": "ismail",
"\u0627\u0633\u062D\u0627\u0642": "ishaq",
"\u06CC\u0639\u0642\u0648\u0628": "yaqoob",
"\u06CC\u0648\u0633\u0641": "yousuf",
"\u0645\u0648\u0633\u06CC": "musa",
"\u0639\u06CC\u0633\u06CC": "eesa",
"\u062F\u0627\u0624\u062F": "dawood",
"\u0633\u0644\u06CC\u0645\u0627\u0646": "sulaiman",
"\u06CC\u0648\u0646\u0633": "younus",
"\u0627\u06CC\u0648\u0628": "ayub",
"\u06C1\u0627\u0631\u0648\u0646": "haroon",
"\u06CC\u062D\u06CC\u06CC": "yahya",
"\u0641\u0627\u0637\u0645\u06C1": "fatima",
"\u0639\u0627\u0626\u0634\u06C1": "ayesha",
"\u0645\u0631\u06CC\u0645": "maryam",
"\u0632\u06CC\u0646\u0628": "zainab",
"\u062E\u062F\u06CC\u062C\u06C1": "khadija",
"\u062D\u0641\u0635\u06C1": "hafsa",
"\u0633\u0627\u0631\u06C1": "sara",
"\u06C1\u062F\u06CC": "huda",
"\u062B\u0646\u0627": "sana",
"\u062D\u0646\u0627": "hina",
"\u0627\u0642\u0631\u0627": "iqra",
"\u0633\u062F\u0631\u06C1": "sidra",
"\u0627\u0642\u0635\u06CC": "aqsa",
"\u0641\u0631\u062D": "farah",
"\u0646\u062F\u0627": "nida",
"\u0635\u0628\u0627": "saba",
"\u0645\u06C1\u0648\u0634": "mehwish",
"\u0627\u0646\u0639\u0645": "anam",
"\u0627\u0631\u0645": "iram",
"\u0628\u0634\u0631\u06CC": "bushra",
"\u0633\u0645\u06CC\u0631\u0627": "sumaira",
"\u0646\u0627\u0632\u06CC\u06C1": "nazia",
"\u0634\u0627\u0632\u06CC\u06C1": "shazia",
"\u0631\u0648\u0628\u06CC\u0646\u06C1": "rubina",
"\u0646\u0633\u0631\u06CC\u0646": "nasreen",
"\u06CC\u0627\u0633\u0645\u06CC\u0646": "yasmeen",
"\u062B\u0645\u06CC\u0646\u06C1": "samina",
"\u067E\u0631\u0648\u06CC\u0646": "parveen",
"\u0634\u0628\u0627\u0646\u06C1": "shabana",
"\u0641\u0631\u0632\u0627\u0646\u06C1": "farzana",
"\u0637\u0627\u06C1\u0631\u06C1": "tahira",
"\u0639\u0635\u0645\u062A": "ismat",
"\u0646\u0635\u0631\u062A": "nusrat",
// ---- classical, poetic and literary vocabulary ----
"\u06AF\u0644\u0633\u062A\u0627\u06BA": "gulistan",
"\u06AF\u0644\u0634\u0646": "gulshan",
"\u0628\u06C1\u0627\u0631\u0627\u06BA": "baharan",
"\u067E\u0631\u0648\u0627\u0646\u06C1": "parwana",
"\u0634\u0645\u0639": "shama",
"\u0633\u0627\u0642\u06CC": "saqi",
"\u0645\u06CC\u062E\u0627\u0646\u06C1": "maikhana",
"\u062C\u0627\u0645": "jaam",
"\u0635\u0631\u0627\u062D\u06CC": "surahi",
"\u0631\u0646\u062F": "rind",
"\u0645\u062D\u062A\u0633\u0628": "muhtasib",
"\u0642\u0627\u0635\u062F": "qasid",
"\u067E\u06CC\u0627\u0645\u0628\u0631": "payambar",
"\u0631\u0642\u06CC\u0628": "raqeeb",
"\u062D\u0628\u06CC\u0628": "habeeb",
"\u0645\u062D\u0628\u0648\u0628": "mahboob",
"\u0645\u0639\u0634\u0648\u0642": "mashooq",
"\u0635\u0646\u0645": "sanam",
"\u0633\u0646\u06AF\u062F\u0644": "sangdil",
"\u0628\u06CC\u062F\u0631\u062F": "bedard",
"\u063A\u0645\u06AF\u0633\u0627\u0631": "ghamgusar",
"\u0645\u0633\u06CC\u062D\u0627": "maseeha",
"\u0646\u0627\u0635\u062D": "nasih",
"\u0648\u0627\u0639\u0638": "waiz",
"\u062A\u0634\u0646\u06C1": "tishna",
"\u06AF\u06CC\u0633\u0648": "gesu",
"\u0632\u0644\u0641": "zulf",
"\u062F\u06CC\u062F\u0627\u0631": "deedar",
"\u062C\u0644\u0648\u06C1": "jalwa",
"\u062D\u062C\u0627\u0628": "hijab",
"\u0646\u0642\u0627\u0628": "niqab",
"\u0633\u0648\u0632": "soz",
"\u0622\u06C1\u0646\u06AF": "aahang",
"\u0646\u063A\u0645\u06C1": "naghma",
"\u062A\u0631\u0627\u0646\u06C1": "tarana",
"\u062F\u0627\u0633\u062A\u0627\u06BA": "dastan",
"\u062D\u0648\u0631": "hoor",
"\u067E\u0631\u06CC": "pari",
"\u062F\u06CC\u0648": "deo",
"\u062C\u0627\u062F\u0648": "jadoo",
"\u0637\u0644\u0633\u0645": "tilism",
"\u0627\u0641\u0633\u0648\u0646": "afsoon",
"\u0633\u062D\u0631\u0627\u0646\u06AF\u06CC\u0632": "sehrangeez",
"\u0641\u0633\u0648\u06BA": "fusoon",
"\u062C\u0646\u0648\u06BA": "junoon",
"\u0633\u0648\u062F\u0627": "sauda",
"\u0648\u062D\u0634\u062A": "wahshat",
"\u0627\u0631\u0645\u0627\u0646": "arman",
"\u0630\u0648\u0642": "zauq",
"\u0648\u062C\u062F": "wajd",
"\u0645\u0633\u062A\u06CC": "masti",
"\u06A9\u06CC\u0641": "kaif",
"\u062E\u0645\u0627\u0631": "khumar",
"\u0646\u0634\u06C1": "nasha",
"\u0628\u06D2\u062E\u0648\u062F\u06CC": "bekhudi",
// ---- commerce, finance and modern technology ----
"\u062E\u0631\u06CC\u062F\u0627\u0631\u06CC": "khareedari",
"\u0641\u0631\u0648\u062E\u062A": "farokht",
"\u0633\u0631\u0645\u0627\u06CC\u06C1": "sarmaya",
"\u0642\u0631\u0636\u06C1": "qarza",
"\u0628\u06CC\u0646\u06A9\u0627\u0631\u06CC": "bainkari",
"\u0642\u0633\u0637": "qist",
"\u0627\u062F\u0627\u0626\u06CC\u06AF\u06CC": "adaigi",
"\u0622\u0645\u062F\u0646\u06CC": "aamdani",
"\u062E\u0631\u0686\u06C1": "kharcha",
"\u0628\u0686\u062A": "bachat",
"\u0645\u062D\u0635\u0648\u0644": "mahsool",
"\u0645\u0627\u0644\u06CC\u062A": "maliyat",
"\u06A9\u062A\u0627\u0628\u062A": "kitabat",
"\u0645\u0646\u0688\u06CC": "mandi",
"\u0646\u06CC\u0644\u0627\u0645\u06CC": "neelami",
"\u0628\u0648\u0644\u06CC": "boli",
"\u0634\u0631\u0627\u06A9\u062A": "sharakat",
"\u062D\u0635\u0635": "hisas",
"\u0627\u0633\u0679\u0627\u06A9": "stock",
"\u062F\u0648\u0644\u062A": "daulat",
"\u062B\u0631\u0648\u062A": "sarwat",
"\u063A\u0631\u0628\u062A": "ghurbat",
"\u0627\u0641\u0644\u0627\u0633": "iflas",
"\u067E\u0631\u0648\u0641\u0627\u0626\u0644": "profile",
"\u0633\u06CC\u0679\u0646\u06AF\u0632": "settings",
"\u0646\u0648\u0679\u06CC\u0641\u06A9\u06CC\u0634\u0646": "notification",
"\u0633\u0627\u0626\u0679": "site",
"\u067E\u0648\u0631\u0679\u0644": "portal",
// ---- administration, law, governance and politics ----
"\u0639\u062F\u0644\u06CC\u06C1": "adliya",
"\u0645\u0642\u0646\u0646\u06C1": "muqannana",
"\u0627\u0646\u062A\u0638\u0627\u0645\u06CC\u06C1": "intizamia",
"\u062D\u06A9\u0645\u0631\u0627\u0646\u06CC": "hukmrani",
"\u062C\u0645\u06C1\u0648\u0631\u06CC\u06C1": "jamhooria",
"\u0635\u062F\u0627\u0631\u062A": "sadarat",
"\u0648\u0632\u0627\u0631\u062A": "wazarat",
"\u0633\u0641\u0627\u0631\u062A": "safarat",
"\u0642\u0648\u0646\u0635\u0644": "consul",
"\u0633\u0641\u0627\u0631\u062A\u062E\u0627\u0646\u06C1": "safaratkhana",
"\u0622\u0626\u06CC\u0646\u06CC": "aaeeni",
"\u062F\u0633\u062A\u0648\u0631\u06CC": "dastoori",
"\u0641\u0648\u062C\u062F\u0627\u0631\u06CC": "faujdari",
"\u062F\u06CC\u0648\u0627\u0646\u06CC": "deewani",
"\u0645\u0642\u062F\u0645\u06C1": "muqaddama",
"\u0633\u0645\u0627\u0639\u062A": "samaat",
"\u062F\u0631\u062E\u0648\u0627\u0633\u062A": "darkhwast",
"\u0627\u067E\u06CC\u0644": "appeal",
"\u0636\u0645\u0627\u0646\u062A": "zamanat",
"\u0628\u0631\u06CC\u062A": "bariyat",
"\u0639\u0645\u0631\u0642\u06CC\u062F": "umrqaid",
"\u067E\u06BE\u0627\u0646\u0633\u06CC": "phansi",
"\u0648\u06A9\u0627\u0644\u062A": "wukalat",
"\u062D\u0642\u0648\u0642": "huqooq",
"\u0641\u0631\u0627\u0626\u0636": "faraiz",
"\u0634\u06C1\u0631\u06CC": "shahri",
"\u0634\u06C1\u0631\u06CC\u062A": "shahriyat",
"\u0634\u0646\u0627\u062E\u062A": "shanakht",
"\u0646\u0627\u062F\u0631\u0627": "nadra",
"\u0645\u062C\u0644\u0633": "majlis",
"\u0634\u0648\u0631\u06CC": "shoora",
"\u062D\u0644\u06CC\u0641": "haleef",
"\u0645\u062E\u0627\u0644\u0641": "mukhalif",
"\u0628\u063A\u0627\u0648\u062A": "baghawat",
// ---- geography, nature and terrain ----
"\u062E\u0637\u06C1": "khitta",
"\u0635\u0648\u0628\u06C1": "sooba",
"\u0636\u0644\u0639": "zila",
"\u062A\u062D\u0635\u06CC\u0644": "tehsil",
"\u06CC\u0648\u0646\u06CC\u0646": "union",
"\u06A9\u0648\u0646\u0633\u0644": "council",
"\u0642\u0631\u06CC\u06C1": "qarya",
"\u0628\u0633\u062A\u06CC": "basti",
"\u0634\u06C1\u0631\u0633\u062A\u0627\u0646": "shehristan",
"\u0646\u062E\u0644\u0633\u062A\u0627\u0646": "nakhalistan",
"\u06A9\u0648\u06C1\u0633\u0627\u0631": "kohsar",
"\u06A9\u06C1\u0633\u0627\u0631": "kuhsar",
"\u06AF\u06BE\u0627\u0679\u06CC": "ghati",
"\u0648\u0627\u062F\u06CC\u0627\u06BA": "wadiyan",
"\u06A9\u06BE\u0627\u0626\u06CC": "khaai",
"\u062E\u0644\u06CC\u062C": "khaleej",
"\u0631\u0627\u0633": "raas",
// ---- verbs and verbal inflections ----
"\u0645\u0627\u0646\u062A\u06D2": "mante",
"\u0645\u0627\u0646\u062A\u06CC": "manti",
"\u0645\u0627\u0646\u0648": "mano",
"\u0679\u06BE\u06C1\u0631\u0646\u0627": "theharna",
"\u0679\u06BE\u06C1\u0631\u0627": "thehra",
"\u0679\u06BE\u06C1\u0631\u0648": "thehro",
"\u0679\u06BE\u06C1\u0631\u062A\u06D2": "thehrte",
"\u0633\u0645\u062C\u06BE\u0627\u0624": "samjhao",
"\u067E\u06C1\u0646\u0686\u0627\u0624": "pohonchao",
"\u0644\u0679\u0627\u0646\u0627": "lutana",
"\u0644\u0679\u0627\u06CC\u0627": "lutaya",
"\u0644\u0648\u0679\u0627": "loota",
"\u067E\u06A9\u0627\u0631\u0627": "pukara",
"\u067E\u06A9\u0627\u0631\u0648": "pukaro",
"\u062C\u06BE\u06A9\u0646\u0627": "jhukna",
"\u062C\u06BE\u06A9\u0627": "jhuka",
"\u062C\u06BE\u06A9\u0627\u0624": "jhukao",
"\u062C\u06BE\u06A9\u0627\u0646\u0627": "jhukana",
"\u062A\u06BE\u0627\u0645\u0646\u0627": "thamna",
"\u062A\u06BE\u0627\u0645\u0627": "thama",
"\u062A\u06BE\u0627\u0645\u0648": "thamo",
"\u0633\u0646\u0648\u0627\u0631\u0646\u0627": "sanwarna",
"\u0633\u0646\u0648\u0627\u0631\u0627": "sanwara",
"\u0646\u06A9\u06BE\u0627\u0631\u0646\u0627": "nikharna",
"\u0646\u06A9\u06BE\u0627\u0631\u0627": "nikhara",
"\u0633\u0646\u0628\u06BE\u0627\u0644\u0646\u0627": "sambhalna",
"\u0633\u0646\u0628\u06BE\u0627\u0644\u0627": "sambhala",
"\u0633\u0646\u0628\u06BE\u0627\u0644\u0648": "sambhalo",
"\u067E\u0686\u06BE\u062A\u0627\u0646\u0627": "pachtana",
"\u067E\u0686\u06BE\u062A\u0627\u06CC\u0627": "pachtaya",
"\u06AF\u06BE\u0628\u0631\u0627\u0646\u0627": "ghabrana",
"\u06AF\u06BE\u0628\u0631\u0627\u06CC\u0627": "ghabraya",
"\u0645\u0633\u06A9\u0631\u0627\u0646\u0627": "muskurana",
"\u0645\u0633\u06A9\u0631\u0627\u06CC\u0627": "muskuraya",
"\u0645\u0633\u06A9\u0631\u0627\u06C1\u0679": "muskurahat",
"\u062C\u06BE\u0646\u062C\u06BE\u0644\u0627\u0646\u0627": "jhanjhlana",
"\u062A\u0644\u0645\u0644\u0627\u0646\u0627": "tilmilana",
"\u0628\u0644\u0628\u0644\u0627\u0646\u0627": "bilbilana",
"\u06A9\u06BE\u0644\u06A9\u06BE\u0644\u0627\u0646\u0627": "khilkhilana",
"\u06A9\u06BE\u0679\u06A9\u06BE\u0679\u0627\u0646\u0627": "khatkhatana",
"\u062C\u06BE\u0644\u0645\u0644\u0627\u0646\u0627": "jhilmilana",
"\u0686\u0645\u0686\u0645\u0627\u062A\u0627": "chamchamata",
"\u0644\u06C1\u0631\u0627\u0646\u0627": "lehrana",
"\u0644\u06C1\u0631\u0627\u06CC\u0627": "lehraya",
"\u0644\u06C1\u0631": "lehar"
};
var ROMAN_VARIANTS = {
hay: "\u06C1\u06D2",
he: "\u06C1\u06D2",
hei: "\u06C1\u06D2",
hein: "\u06C1\u06CC\u06BA",
hn: "\u06C1\u06CC\u06BA",
hain: "\u06C1\u06CC\u06BA",
hun: "\u06C1\u0648\u06BA",
hoon: "\u06C1\u0648\u06BA",
ap: "\u0622\u067E",
aap: "\u0622\u067E",
aapko: "\u0622\u067E\u06A9\u0648",
aapka: "\u0622\u067E\u06A9\u0627",
aapki: "\u0622\u067E\u06A9\u06CC",
aapke: "\u0622\u067E\u06A9\u06D2",
kaise: "\u06A9\u06CC\u0633\u06D2",
kese: "\u06A9\u06CC\u0633\u06D2",
kaisey: "\u06A9\u06CC\u0633\u06D2",
kaisa: "\u06A9\u06CC\u0633\u0627",
kaisi: "\u06A9\u06CC\u0633\u06CC",
nam: "\u0646\u0627\u0645",
naam: "\u0646\u0627\u0645",
mai: "\u0645\u06CC\u06BA",
main: "\u0645\u06CC\u06BA",
me: "\u0645\u06CC\u06BA",
mein: "\u0645\u06CC\u06BA",
mujhe: "\u0645\u062C\u06BE\u06D2",
mujhey: "\u0645\u062C\u06BE\u06D2",
mjhe: "\u0645\u062C\u06BE\u06D2",
mjhy: "\u0645\u062C\u06BE\u06D2",
mj: "\u0645\u062C\u06BE\u06D2",
humein: "\u06C1\u0645\u06CC\u06BA",
hume: "\u06C1\u0645\u06CC\u06BA",
hmein: "\u06C1\u0645\u06CC\u06BA",
hmain: "\u06C1\u0645\u06CC\u06BA",
tumhein: "\u062A\u0645\u06C1\u06CC\u06BA",
tumhe: "\u062A\u0645\u06C1\u06CC\u06BA",
tumhey: "\u062A\u0645\u06C1\u06CC\u06BA",
tmhein: "\u062A\u0645\u06C1\u06CC\u06BA",
tmhe: "\u062A\u0645\u06C1\u06CC\u06BA",
unhein: "\u0627\u0646\u06C1\u06CC\u06BA",
unhe: "\u0627\u0646\u06C1\u06CC\u06BA",
unhey: "\u0627\u0646\u06C1\u06CC\u06BA",
inhein: "\u0627\u0646\u06C1\u06CC\u06BA",
inhe: "\u0627\u0646\u06C1\u06CC\u06BA",
usey: "\u0627\u0633\u06D2",
usay: "\u0627\u0633\u06D2",
use: "\u0627\u0633\u06D2",
isay: "\u0627\u0633\u06D2",
ise: "\u0627\u0633\u06D2",
jisay: "\u062C\u0633\u06D2",
jise: "\u062C\u0633\u06D2",
kisay: "\u06A9\u0633\u06D2",
kise: "\u06A9\u0633\u06D2",
kyu: "\u06A9\u06CC\u0648\u06BA",
kyn: "\u06A9\u06CC\u0648\u06BA",
kyo: "\u06A9\u06CC\u0648\u06BA",
kyun: "\u06A9\u06CC\u0648\u06BA",
kyoon: "\u06A9\u06CC\u0648\u06BA",
kaha: "\u06A9\u06C1\u0627\u06BA",
kahan: "\u06A9\u06C1\u0627\u06BA",
khn: "\u06A9\u06C1\u0627\u06BA",
kidhar: "\u06A9\u062F\u06BE\u0631",
idhar: "\u0627\u062F\u06BE\u0631",
jidhar: "\u062C\u062F\u06BE\u0631",
kab: "\u06A9\u0628",
kya: "\u06A9\u06CC\u0627",
kia: "\u06A9\u06CC\u0627",
kiya: "\u06A9\u06CC\u0627",
kuch: "\u06A9\u0686\u06BE",
kuchh: "\u06A9\u0686\u06BE",
kch: "\u06A9\u0686\u06BE",
bhi: "\u0628\u06BE\u06CC",
b: "\u0628\u06BE\u06CC",
nahin: "\u0646\u06C1\u06CC\u06BA",
nahi: "\u0646\u06C1\u06CC\u06BA",
nai: "\u0646\u06C1\u06CC\u06BA",
nhi: "\u0646\u06C1\u06CC\u06BA",
nahe: "\u0646\u06C1\u06CC\u06BA",
nhn: "\u0646\u06C1\u06CC\u06BA",
bahut: "\u0628\u06C1\u062A",
bhot: "\u0628\u06C1\u062A",
bohot: "\u0628\u06C1\u062A",
bohat: "\u0628\u06C1\u062A",
bht: "\u0628\u06C1\u062A",
achha: "\u0627\u0686\u06BE\u0627",
acha: "\u0627\u0686\u06BE\u0627",
accha: "\u0627\u0686\u06BE\u0627",
achi: "\u0627\u0686\u06BE\u06CC",
achhi: "\u0627\u0686\u06BE\u06CC",
ache: "\u0627\u0686\u06BE\u06D2",
achay: "\u0627\u0686\u06BE\u06D2",
shukria: "\u0634\u06A9\u0631\u06CC\u06C1",
shukriya: "\u0634\u06A9\u0631\u06CC\u06C1",
thx: "\u0634\u06A9\u0631\u06CC\u06C1",
thanks: "\u0634\u06A9\u0631\u06CC\u06C1",
plz: "\u0645\u06C1\u0631\u0628\u0627\u0646\u06CC",
please: "\u0645\u06C1\u0631\u0628\u0627\u0646\u06CC",
salaam: "\u0633\u0644\u0627\u0645",
salam: "\u0633\u0644\u0627\u0645",
mohabat: "\u0645\u062D\u0628\u062A",
muhabbat: "\u0645\u062D\u0628\u062A",
mohabbat: "\u0645\u062D\u0628\u062A",
pyar: "\u067E\u06CC\u0627\u0631",
pyaar: "\u067E\u06CC\u0627\u0631",
zindagi: "\u0632\u0646\u062F\u06AF\u06CC",
zindgi: "\u0632\u0646\u062F\u06AF\u06CC",
dost: "\u062F\u0648\u0633\u062A",
dst: "\u062F\u0648\u0633\u062A",
khush: "\u062E\u0648\u0634",
khushi: "\u062E\u0648\u0634",
theak: "\u0679\u06BE\u06CC\u06A9",
thik: "\u0679\u06BE\u06CC\u06A9",
theek: "\u0679\u06BE\u06CC\u06A9",
bhai: "\u0628\u06BE\u0627\u0626\u06CC",
bhaiya: "\u0628\u06BE\u0627\u0626\u06CC",
behen: "\u0628\u06C1\u0646",
behan: "\u0628\u06C1\u0646",
baji: "\u0628\u0627\u062C\u06CC",
api: "\u0622\u067E\u06CC",
ammi: "\u0627\u0645\u06CC",
ami: "\u0627\u0645\u06CC",
abbu: "\u0627\u0628\u0648",
abu: "\u0627\u0628\u0648",
paisay: "\u067E\u06CC\u0633\u06D2",
paise: "\u067E\u06CC\u0633\u06D2",
paisa: "\u067E\u06CC\u0633\u06C1",
kaam: "\u06A9\u0627\u0645",
kam: "\u06A9\u0645",
ghar: "\u06AF\u06BE\u0631",
ghr: "\u06AF\u06BE\u0631",
pehle: "\u067E\u06C1\u0644\u06D2",
pehlay: "\u067E\u06C1\u0644\u06D2",
pehly: "\u067E\u06C1\u0644\u06D2",
baad: "\u0628\u0639\u062F",
bad: "\u0628\u0639\u062F",
lekin: "\u0644\u06CC\u06A9\u0646",
lkn: "\u0644\u06CC\u06A9\u0646",
magar: "\u0645\u06AF\u0631",
mgr: "\u0645\u06AF\u0631",
waqt: "\u0648\u0642\u062A",
wqt: "\u0648\u0642\u062A",
zroor: "\u0636\u0631\u0648\u0631",
zaroor: "\u0636\u0631\u0648\u0631",
zarur: "\u0636\u0631\u0648\u0631",
zroori: "\u0636\u0631\u0648\u0631\u06CC",
zaroori: "\u0636\u0631\u0648\u0631\u06CC",
chahiye: "\u0686\u0627\u06C1\u06CC\u06D2",
chahye: "\u0686\u0627\u06C1\u06CC\u06D2",
chaheye: "\u0686\u0627\u06C1\u06CC\u06D2",
khuda: "\u062E\u062F\u0627",
allah: "\u0627\u0644\u0644\u06C1",
hafiz: "\u062D\u0627\u0641\u0638",
haafiz: "\u062D\u0627\u0641\u0638",
khudahafiz: "\u062E\u062F\u0627\u062D\u0627\u0641\u0638",
// aam is both آم (mango) and عام (common); the fruit is the likelier query.
aam: "\u0622\u0645",
hawa: "\u06C1\u0648\u0627",
// sona is both سونا (to sleep) and سونا (gold) — same spelling, no conflict.
ho: "\u06C1\u0648",
hoga: "\u06C1\u0648\u06AF\u0627",
hogi: "\u06C1\u0648\u06AF\u06CC",
honge: "\u06C1\u0648\u06BA\u06AF\u06D2",
karna: "\u06A9\u0631\u0646\u0627",
krna: "\u06A9\u0631\u0646\u0627",
karo: "\u06A9\u0631\u0648",
kro: "\u06A9\u0631\u0648",
dekhna: "\u062F\u06CC\u06A9\u06BE\u0646\u0627",
dekho: "\u062F\u06CC\u06A9\u06BE\u0648",
sunna: "\u0633\u0646\u0646\u0627",
suno: "\u0633\u0646\u0648",
samajh: "\u0633\u0645\u062C\u06BE",
smjh: "\u0633\u0645\u062C\u06BE",
laikin: "\u0644\u06CC\u06A9\u0646",
shukr: "\u0634\u06A9\u0631",
sabr: "\u0635\u0628\u0631",
dil: "\u062F\u0644",
kitab: "\u06A9\u062A\u0627\u0628",
kitaab: "\u06A9\u062A\u0627\u0628",
school: "\u0633\u06A9\u0648\u0644",
college: "\u06A9\u0627\u0644\u062C",
hospital: "\u06C1\u0633\u067E\u062A\u0627\u0644",
pal: "\u067E\u0644",
daur: "\u062F\u0648\u0631",
kurta: "\u06A9\u0631\u062A\u0627",
haseen: "\u062D\u0633\u06CC\u0646",
malik: "\u0645\u0644\u06A9",
kidhr: "\u06A9\u062F\u06BE\u0631",
idhr: "\u0627\u062F\u06BE\u0631",
jdhr: "\u062C\u062F\u06BE\u0631",
thek: "\u0679\u06BE\u06CC\u06A9",
thk: "\u0679\u06BE\u06CC\u06A9",
sahi: "\u0635\u062D\u06CC\u062D",
galat: "\u063A\u0644\u0637",
ghalat: "\u063A\u0644\u0637",
sb: "\u0633\u0628",
hmsha: "\u06C1\u0645\u06CC\u0634\u06C1",
kbhi: "\u06A9\u0628\u06BE\u06CC",
aksar: "\u0627\u06A9\u062B\u0631",
behtareen: "\u0628\u06C1\u062A\u0631\u06CC\u0646",
zabardast: "\u0632\u0628\u0631\u062F\u0633\u062A",
shandar: "\u0634\u0627\u0646\u062F\u0627\u0631",
khoob: "\u062E\u0648\u0628",
khub: "\u062E\u0648\u0628",
sharam: "\u0634\u0631\u0645",
haya: "\u062D\u06CC\u0627",
ghairat: "\u063A\u06CC\u0631\u062A",
himmat: "\u06C1\u0645\u062A",
hosla: "\u062D\u0648\u0635\u0644\u06C1",
mashaallah: "\u0645\u0627\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
inshaallah: "\u0627\u0646\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
mashallah: "\u0645\u0627\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
inshallah: "\u0627\u0646\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
alhamdulillah: "\u0627\u0644\u062D\u0645\u062F\u0644\u0644\u06C1",
jazakallah: "\u062C\u0632\u0627\u06A9\u200C\u0627\u0644\u0644\u06C1",
// ---- additional Roman variants for common words ----
// verbs
hona: "\u06C1\u0648\u0646\u0627",
hua: "\u06C1\u0648\u0627",
hui: "\u06C1\u0648\u0626\u06CC",
hue: "\u06C1\u0648\u0626\u06D2",
jana: "\u062C\u0627\u0646\u0627",
jata: "\u062C\u0627\u062A\u0627",
jati: "\u062C\u0627\u062A\u06CC",
gaya: "\u06AF\u06CC\u0627",
gayi: "\u06AF\u0626\u06CC",
aana: "\u0622\u0646\u0627",
aati: "\u0622\u062A\u06CC",
aaya: "\u0622\u06CC\u0627",
aayi: "\u0622\u0626\u06CC",
dena: "\u062F\u06CC\u0646\u0627",
deta: "\u062F\u06CC\u062A\u0627",
deti: "\u062F\u06CC\u062A\u06CC",
diya: "\u062F\u06CC\u0627",
lena: "\u0644\u06CC\u0646\u0627",
leta: "\u0644\u06CC\u062A\u0627",
leti: "\u0644\u06CC\u062A\u06CC",
liya: "\u0644\u06CC\u0627",
kehna: "\u06A9\u06C1\u0646\u0627",
kehta: "\u06A9\u06C1\u062A\u0627",
kehti: "\u06A9\u06C1\u062A\u06CC",
dekhta: "\u062F\u06CC\u06A9\u06BE\u062A\u0627",
dekhti: "\u062F\u06CC\u06A9\u06BE\u062A\u06CC",
dekha: "\u062F\u06CC\u06A9\u06BE\u0627",
bolna: "\u0628\u0648\u0644\u0646\u0627",
bolta: "\u0628\u0648\u0644\u062A\u0627",
boli: "\u0628\u0648\u0644\u06CC",
bola: "\u0628\u0648\u0644\u0627",
padhna: "\u067E\u0691\u06BE\u0646\u0627",
padhta: "\u067E\u0691\u06BE\u062A\u0627",
padhti: "\u067E\u0691\u06BE\u062A\u06CC",
padha: "\u067E\u0691\u06BE\u0627",
likhna: "\u0644\u06A9\u06BE\u0646\u0627",
likhta: "\u0644\u06A9\u06BE\u062A\u0627",
likhti: "\u0644\u06A9\u06BE\u062A\u06CC",
likha: "\u0644\u06A9\u06BE\u0627",
samajhna: "\u0633\u0645\u062C\u06BE\u0646\u0627",
samjha: "\u0633\u0645\u062C\u06BE\u0627",
chahna: "\u0686\u0627\u06C1\u0646\u0627",
chahta: "\u0686\u0627\u06C1\u062A\u0627",
chahti: "\u0686\u0627\u06C1\u062A\u06CC",
sakna: "\u0633\u06A9\u0646\u0627",
sakta: "\u0633\u06A9\u062A\u0627",
sakti: "\u0633\u06A9\u062A\u06CC",
rehna: "\u0631\u06C1\u0646\u0627",
rehta: "\u0631\u06C1\u062A\u0627",
rehti: "\u0631\u06C1\u062A\u06CC",
raha: "\u0631\u06C1\u0627",
rahi: "\u0631\u06C1\u06CC",
banna: "\u0628\u0646\u0646\u0627",
bana: "\u0628\u0646\u0627",
banana: "\u0628\u0646\u0627\u0646\u0627",
banaya: "\u0628\u0646\u0627\u06CC\u0627",
milna: "\u0645\u0644\u0646\u0627",
milta: "\u0645\u0644\u062A\u0627",
milti: "\u0645\u0644\u062A\u06CC",
mila: "\u0645\u0644\u0627",
mili: "\u0645\u0644\u06CC",
khata: "\u06A9\u06BE\u0627\u062A\u0627",
khati: "\u06A9\u06BE\u0627\u062A\u06CC",
khaya: "\u06A9\u06BE\u0627\u06CC\u0627",
peena: "\u067E\u06CC\u0646\u0627",
peeta: "\u067E\u06CC\u062A\u0627",
piya: "\u067E\u06CC\u0627",
sota: "\u0633\u0648\u062A\u0627",
soti: "\u0633\u0648\u062A\u06CC",
soya: "\u0633\u0648\u06CC\u0627",
uthna: "\u0627\u0679\u06BE\u0646\u0627",
utha: "\u0627\u0679\u06BE\u0627",
baithna: "\u0628\u06CC\u0679\u06BE\u0646\u0627",
baitha: "\u0628\u06CC\u0679\u06BE\u0627",
chalta: "\u0686\u0644\u062A\u0627",
chalti: "\u0686\u0644\u062A\u06CC",
chala: "\u0686\u0644\u0627",
rakhna: "\u0631\u06A9\u06BE\u0646\u0627",
rakha: "\u0631\u06A9\u06BE\u0627",
maangna: "\u0645\u0627\u0646\u06AF\u0646\u0627",
manga: "\u0645\u0627\u0646\u06AF\u0627",
puchna: "\u067E\u0648\u0686\u06BE\u0646\u0627",
poocha: "\u067E\u0648\u0686\u06BE\u0627",
batana: "\u0628\u062A\u0627\u0646\u0627",
bataya: "\u0628\u062A\u0627\u06CC\u0627",
kholna: "\u06A9\u06BE\u0648\u0644\u0646\u0627",
khola: "\u06A9\u06BE\u0648\u0644\u0627",
marna: "\u0645\u0631\u0646\u0627",
mara: "\u0645\u0631\u0627",
jeetna: "\u062C\u06CC\u062A\u0646\u0627",
jeeta: "\u062C\u06CC\u062A\u0627",
haarna: "\u06C1\u0627\u0631\u0646\u0627",
haara: "\u06C1\u0627\u0631\u0627",
badalna: "\u0628\u062F\u0644\u0646\u0627",
badla: "\u0628\u062F\u0644\u0627",
rukna: "\u0631\u06A9\u0646\u0627",
rokna: "\u0631\u0648\u06A9\u0646\u0627",
roka: "\u0631\u0648\u06A9\u0627",
khelna: "\u06A9\u06BE\u06CC\u0644\u0646\u0627",
khela: "\u06A9\u06BE\u06CC\u0644\u0627",
hansna: "\u06C1\u0646\u0633\u0646\u0627",
hansa: "\u06C1\u0646\u0633\u0627",
rona: "\u0631\u0648\u0646\u0627",
roya: "\u0631\u0648\u06CC\u0627",
darna: "\u0688\u0631\u0646\u0627",
dara: "\u0688\u0631\u0627",
bhoolna: "\u0628\u06BE\u0648\u0644\u0646\u0627",
bhoola: "\u0628\u06BE\u0648\u0644\u0627",
seekhna: "\u0633\u06CC\u06A9\u06BE\u0646\u0627",
seekha: "\u0633\u06CC\u06A9\u06BE\u0627",
sikhana: "\u0633\u06A9\u06BE\u0627\u0646\u0627",
sikhaya: "\u0633\u06A9\u06BE\u0627\u06CC\u0627",
dhona: "\u062F\u06BE\u0648\u0646\u0627",
dhoya: "\u062F\u06BE\u0648\u06CC\u0627",
pehanna: "\u067E\u06C1\u0646\u0646\u0627",
pehna: "\u067E\u06C1\u0646\u0627",
bechna: "\u0628\u06CC\u0686\u0646\u0627",
becha: "\u0628\u06CC\u0686\u0627",
khareedna: "\u062E\u0631\u06CC\u062F\u0646\u0627",
khareeda: "\u062E\u0631\u06CC\u062F\u0627",
bhejna: "\u0628\u06BE\u06CC\u062C\u0646\u0627",
bheja: "\u0628\u06BE\u06CC\u062C\u0627",
nikalna: "\u0646\u06A9\u0644\u0646\u0627",
nikla: "\u0646\u06A9\u0644\u0627",
girna: "\u06AF\u0631\u0646\u0627",
gira: "\u06AF\u0631\u0627",
pakarna: "\u067E\u06A9\u0691\u0646\u0627",
pakra: "\u067E\u06A9\u0691\u0627",
chhorna: "\u0686\u06BE\u0648\u0691\u0646\u0627",
chhora: "\u0686\u06BE\u0648\u0691\u0627",
torna: "\u062A\u0648\u0691\u0646\u0627",
tora: "\u062A\u0648\u0691\u0627",
katna: "\u06A9\u0627\u0679\u0646\u0627",
kata: "\u06A9\u0627\u0679\u0627",
daalna: "\u0688\u0627\u0644\u0646\u0627",
dala: "\u0688\u0627\u0644\u0627",
manna: "\u0645\u0627\u0646\u0646\u0627",
mana: "\u0645\u0627\u0646\u0627",
bulana: "\u0628\u0644\u0627\u0646\u0627",
bulaya: "\u0628\u0644\u0627\u06CC\u0627",
dikhana: "\u062F\u06A9\u06BE\u0627\u0646\u0627",
dikhaya: "\u062F\u06A9\u06BE\u0627\u06CC\u0627",
phenkna: "\u067E\u06BE\u06CC\u0646\u06A9\u0646\u0627",
phenka: "\u067E\u06BE\u06CC\u0646\u06A9\u0627",
letna: "\u0644\u06CC\u0679\u0646\u0627",
jagna: "\u062C\u0627\u06AF\u0646\u0627",
lautna: "\u0644\u0648\u0679\u0646\u0627",
guzarna: "\u06AF\u0632\u0627\u0631\u0646\u0627",
kamana: "\u06A9\u0645\u0627\u0646\u0627",
kamaya: "\u06A9\u0645\u0627\u06CC\u0627",
ginna: "\u06AF\u0646\u0646\u0627",
bandhna: "\u0628\u0627\u0646\u062F\u06BE\u0646\u0627",
bandha: "\u0628\u0627\u0646\u062F\u06BE\u0627",
bharna: "\u0628\u06BE\u0631\u0646\u0627",
bhara: "\u0628\u06BE\u0631\u0627",
doobna: "\u0688\u0648\u0628\u0646\u0627",
chamakna: "\u0686\u0645\u06A9\u0646\u0627",
ghoomna: "\u06AF\u06BE\u0648\u0645\u0646\u0627",
phirna: "\u067E\u06BE\u0631\u0646\u0627",
phailna: "\u067E\u06BE\u06CC\u0644\u0646\u0627",
// nouns
insaan: "\u0627\u0646\u0633\u0627\u0646",
larka: "\u0644\u0691\u06A9\u0627",
larki: "\u0644\u0691\u06A9\u06CC",
bacha: "\u0628\u0686\u06C1",
bachi: "\u0628\u0686\u06CC",
maan: "\u0645\u0627\u06BA",
baap: "\u0628\u0627\u067E",
beta: "\u0628\u06CC\u0679\u0627",
beti: "\u0628\u06CC\u0679\u06CC",
dushman: "\u062F\u0634\u0645\u0646",
makaan: "\u0645\u06A9\u0627\u0646",
kamra: "\u06A9\u0645\u0631\u06C1",
darwaza: "\u062F\u0631\u0648\u0627\u0632\u06C1",
khirki: "\u06A9\u06BE\u0691\u06A9\u06CC",
chhat: "\u0686\u06BE\u062A",
deewar: "\u062F\u06CC\u0648\u0627\u0631",
farsh: "\u0641\u0631\u0634",
qalam: "\u0642\u0644\u0645",
kaghaz: "\u06A9\u0627\u063A\u0630",
mez: "\u0645\u06CC\u0632",
kursi: "\u06A9\u0631\u0633\u06CC",
almari: "\u0627\u0644\u0645\u0627\u0631\u06CC",
palang: "\u067E\u0644\u0646\u06AF",
bistar: "\u0628\u0633\u062A\u0631",
parda: "\u067E\u0631\u062F\u06C1",
qaleen: "\u0642\u0627\u0644\u06CC\u0646",
bartan: "\u0628\u0631\u062A\u0646",
chamach: "\u0686\u0645\u0686",
plate: "\u067E\u0644\u06CC\u0679",
pyali: "\u067E\u06CC\u0627\u0644\u06CC",
cup: "\u06A9\u067E",
glass: "\u06AF\u0644\u0627\u0633",
botal: "\u0628\u0648\u062A\u0644",
dabba: "\u0688\u0628\u06C1",
jharoo: "\u062C\u06BE\u0627\u0691\u0648",
sabun: "\u0635\u0627\u0628\u0646",
aaina: "\u0622\u0626\u06CC\u0646\u06C1",
sheesha: "\u0634\u06CC\u0634\u06C1",
kanghi: "\u06A9\u0646\u06AF\u06BE\u06CC",
sui: "\u0633\u0648\u0626\u06CC",
qainchi: "\u0642\u06CC\u0646\u0686\u06CC",
tala: "\u062A\u0627\u0644\u0627",
chabi: "\u0686\u0627\u0628\u06CC",
ghari: "\u06AF\u06BE\u0691\u06CC",
topi: "\u0679\u0648\u067E\u06CC",
pagri: "\u067E\u06AF\u0691\u06CC",
qameez: "\u0642\u0645\u06CC\u0636",
shalwar: "\u0634\u0644\u0648\u0627\u0631",
pajama: "\u067E\u0627\u062C\u0627\u0645\u06C1",
pant: "\u067E\u06CC\u0646\u0679",
shirt: "\u0634\u0631\u0679",
coat: "\u06A9\u0648\u0679",
shawl: "\u0634\u0627\u0644",
dupatta: "\u062F\u0648\u067E\u0679\u06C1",
joota: "\u062C\u0648\u062A\u0627",
chappal: "\u0686\u067E\u0644",
sandal: "\u0635\u0646\u062F\u0644",
kapra: "\u06A9\u067E\u0691\u0627",
doodh: "\u062F\u0648\u062F\u06BE",
dahi: "\u062F\u06C1\u06CC",
ghee: "\u06AF\u06BE\u06CC",
chai: "\u0686\u0627\u0626\u06D2",
qehwa: "\u0642\u06C1\u0648\u06C1",
coffee: "\u06A9\u0627\u0641\u06CC",
lassi: "\u0644\u0633\u06CC",
juice: "\u062C\u0648\u0633",
roti: "\u0631\u0648\u0679\u06CC",
naan: "\u0646\u0627\u0646",
paratha: "\u067E\u0631\u0627\u0679\u06BE\u0627",
chawal: "\u0686\u0627\u0648\u0644",
biryani: "\u0628\u0631\u06CC\u0627\u0646\u06CC",
pulao: "\u067E\u0644\u0627\u0624",
salan: "\u0633\u0627\u0644\u0646",
qorma: "\u0642\u0648\u0631\u0645\u06C1",
nihari: "\u0646\u06C1\u0627\u0631\u06CC",
haleem: "\u062D\u0644\u06CC\u0645",
kabab: "\u06A9\u0628\u0627\u0628",
tikka: "\u062A\u06A9\u06C1",
samosa: "\u0633\u0645\u0648\u0633\u06C1",
daal: "\u062F\u0627\u0644",
gosht: "\u06AF\u0648\u0634\u062A",
qeema: "\u0642\u06CC\u0645\u06C1",
murghi: "\u0645\u0631\u063A\u06CC",
machhli: "\u0645\u0686\u06BE\u0644\u06CC",
anda: "\u0627\u0646\u0688\u0627",
sabzi: "\u0633\u0628\u0632\u06CC",
maida: "\u0645\u06CC\u062F\u06C1",
namak: "\u0646\u0645\u06A9",
cheeni: "\u0686\u06CC\u0646\u06CC",
mirch: "\u0645\u0631\u0686",
haldi: "\u06C1\u0644\u062F\u06CC",
dhaniya: "\u062F\u06BE\u0646\u06CC\u0627",
zeera: "\u0632\u06CC\u0631\u06C1",
lehsun: "\u0644\u06C1\u0633\u0646",
adrak: "\u0627\u062F\u0631\u06A9",
pyaz: "\u067E\u06CC\u0627\u0632",
tamatar: "\u0679\u0645\u0627\u0679\u0631",
aloo: "\u0622\u0644\u0648",
gajar: "\u06AF\u0627\u062C\u0631",
matar: "\u0645\u0679\u0631",
palak: "\u067E\u0627\u0644\u06A9",
gobhi: "\u06AF\u0648\u0628\u06BE\u06CC",
bhindi: "\u0628\u06BE\u0646\u0688\u06CC",
karela: "\u06A9\u0631\u06CC\u0644\u0627",
kaddu: "\u06A9\u062F\u0648",
kheera: "\u06A9\u06BE\u06CC\u0631\u0627",
phal: "\u067E\u06BE\u0644",
saib: "\u0633\u06CC\u0628",
kela: "\u06A9\u06CC\u0644\u0627",
angoor: "\u0627\u0646\u06AF\u0648\u0631",
anar: "\u0627\u0646\u0627\u0631",
amrood: "\u0627\u0645\u0631\u0648\u062F",
tarbooz: "\u062A\u0631\u0628\u0648\u0632",
badam: "\u0628\u0627\u062F\u0627\u0645",
pista: "\u067E\u0633\u062A\u06C1",
kaju: "\u06A9\u0627\u062C\u0648",
kheer: "\u06A9\u06BE\u06CC\u0631",
halwa: "\u062D\u0644\u0648\u06C1",
zarda: "\u0632\u0631\u062F\u06C1",
jalebi: "\u062C\u0644\u06CC\u0628\u06CC",
kulfi: "\u06A9\u0644\u0641\u06CC",
cake: "\u06A9\u06CC\u06A9",
chocolate: "\u0686\u0627\u06A9\u0644\u06CC\u0679",
mithai: "\u0645\u0679\u06BE\u0627\u0626\u06CC",
salad: "\u0633\u0644\u0627\u062F",
raita: "\u0631\u0627\u0626\u062A\u06C1",
chatni: "\u0686\u0679\u0646\u06CC",
achaar: "\u0627\u0686\u0627\u0631",
dimagh: "\u062F\u0645\u0627\u063A",
jism: "\u062C\u0633\u0645",
sar: "\u0633\u0631",
aankh: "\u0622\u0646\u06A9\u06BE",
aankhein: "\u0622\u0646\u06A9\u06BE\u06CC\u06BA",
kaan: "\u06A9\u0627\u0646",
naak: "\u0646\u0627\u06A9",
munh: "\u0645\u0646\u06C1",
daant: "\u062F\u0627\u0646\u062A",
zuban: "\u0632\u0628\u0627\u0646",
gala: "\u06AF\u0644\u0627",
gardan: "\u06AF\u0631\u062F\u0646",
kandha: "\u06A9\u0646\u062F\u06BE\u0627",
bazu: "\u0628\u0627\u0632\u0648",
hath: "\u06C1\u0627\u062A\u06BE",
ungli: "\u0627\u0646\u06AF\u0644\u06CC",
seena: "\u0633\u06CC\u0646\u06C1",
pet: "\u067E\u06CC\u0679",
kamar: "\u06A9\u0645\u0631",
taang: "\u0679\u0627\u0646\u06AF",
paon: "\u067E\u0627\u0624\u06BA",
haddi: "\u06C1\u0688\u06CC",
khoon: "\u062E\u0648\u0646",
jild: "\u062C\u0644\u062F",
baal: "\u0628\u0627\u0644",
chehra: "\u0686\u06C1\u0631\u06C1",
sehat: "\u0635\u062D\u062A",
beemari: "\u0628\u06CC\u0645\u0627\u0631\u06CC",
dard: "\u062F\u0631\u062F",
ilaj: "\u0639\u0644\u0627\u062C",
dawa: "\u062F\u0648\u0627",
goli: "\u06AF\u0648\u0644\u06CC",
ishq: "\u0639\u0634\u0642",
nafrat: "\u0646\u0641\u0631\u062A",
gham: "\u063A\u0645",
dukh: "\u062F\u06A9\u06BE",
ummeed: "\u0627\u0645\u06CC\u062F",
yaqeen: "\u06CC\u0642\u06CC\u0646",
sach: "\u0633\u0686",
jhoot: "\u062C\u06BE\u0648\u0679",
insaf: "\u0627\u0646\u0635\u0627\u0641",
zulm: "\u0638\u0644\u0645",
izzat: "\u0639\u0632\u062A",
dua: "\u062F\u0639\u0627",
khwab: "\u062E\u0648\u0627\u0628",
khayal: "\u062E\u06CC\u0627\u0644",
maut: "\u0645\u0648\u062A",
taqat: "\u0637\u0642\u062A",
koshish: "\u06A9\u0648\u0634\u0634",
kamyabi: "\u06A9\u0627\u0645\u06CC\u0627\u0628\u06CC",
nakami: "\u0646\u0627\u06A9\u0627\u0645\u06CC",
faisla: "\u0641\u06CC\u0635\u0644\u06C1",
ghussa: "\u063A\u0635\u06C1",
akhlaq: "\u0627\u062E\u0644\u0627\u0642",
wafa: "\u0648\u0641\u0627",
dosti: "\u062F\u0648\u0633\u062A\u06CC",
sakoon: "\u0633\u06A9\u0648\u0646",
ilm: "\u0639\u0644\u0645",
taleem: "\u062A\u0639\u0644\u06CC\u0645",
sabaq: "\u0633\u0628\u0642",
imtihan: "\u0627\u0645\u062A\u062D\u0627\u0646",
masla: "\u0645\u0633\u0626\u0644\u06C1",
sawal: "\u0633\u0648\u0627\u0644",
jawab: "\u062C\u0648\u0627\u0628",
lafz: "\u0644\u0641\u0638",
jumla: "\u062C\u0645\u0644\u06C1",
maani: "\u0645\u0639\u0646\u06CC",
matlab: "\u0645\u0637\u0644\u0628",
khabar: "\u062E\u0628\u0631",
akhbar: "\u0627\u062E\u0628\u0627\u0631",
kahani: "\u06A9\u06C1\u0627\u0646\u06CC",
qissa: "\u0642\u0635\u06C1",
dastan: "\u062F\u0627\u0633\u062A\u0627\u0646",
novel: "\u0646\u0627\u0648\u0644",
mazmoon: "\u0645\u0636\u0645\u0648\u0646",
ghazal: "\u063A\u0632\u0644",
nazm: "\u0646\u0638\u0645",
adab: "\u0627\u062F\u0628",
tareekh: "\u062A\u0627\u0631\u06CC\u062E",
science: "\u0633\u0627\u0626\u0646\u0633",
falsafa: "\u0641\u0644\u0633\u0641\u06C1",
saqafat: "\u062B\u0642\u0627\u0641\u062A",
tehzeeb: "\u062A\u06C1\u0630\u06CC\u0628",
moseeqi: "\u0645\u0648\u0633\u06CC\u0642\u06CC",
tasweer: "\u062A\u0635\u0648\u06CC\u0631",
rang: "\u0631\u0646\u06AF",
awaz: "\u0622\u0648\u0627\u0632",
khamoshi: "\u062E\u0627\u0645\u0648\u0634\u06CC",
namaz: "\u0646\u0645\u0627\u0632",
roza: "\u0631\u0648\u0632\u06C1",
hajj: "\u062D\u062C",
eid: "\u0639\u06CC\u062F",
qurbani: "\u0642\u0631\u0628\u0627\u0646\u06CC",
mazhab: "\u0645\u0630\u06C1\u0628",
rasool: "\u0631\u0633\u0648\u0644",
nabi: "\u0646\u0628\u06CC",
quran: "\u0642\u0631\u0622\u0646",
hadees: "\u062D\u062F\u06CC\u062B",
deen: "\u062F\u06CC\u0646",
imaan: "\u0627\u06CC\u0645\u0627\u0646",
jannat: "\u062C\u0646\u062A",
dozakh: "\u062F\u0648\u0632\u062E",
farishta: "\u0641\u0631\u0634\u062A\u06C1",
qayamat: "\u0642\u06CC\u0627\u0645\u062A",
ibadat: "\u0639\u0628\u0627\u062F\u062A",
gunah: "\u06AF\u0646\u0627\u06C1",
rehmat: "\u0631\u062D\u0645\u062A",
barkat: "\u0628\u0631\u06A9\u062A",
naiki: "\u0646\u06CC\u06A9\u06CC",
siyasat: "\u0633\u06CC\u0627\u0633\u062A",
election: "\u0627\u0644\u06CC\u06A9\u0634\u0646",
intikhab: "\u0627\u0646\u062A\u062E\u0627\u0628",
vote: "\u0648\u0648\u0679",
party: "\u067E\u0627\u0631\u0679\u06CC",
jamaat: "\u062C\u0645\u0627\u0639\u062A",
qanoon: "\u0642\u0627\u0646\u0648\u0646",
dastoor: "\u062F\u0633\u062A\u0648\u0631",
hukumat: "\u062D\u06A9\u0648\u0645\u062A",
jurm: "\u062C\u0631\u0645",
mujrim: "\u0645\u062C\u0631\u0645",
saza: "\u0633\u0632\u0627",
fauj: "\u0641\u0648\u062C",
jang: "\u062C\u0646\u06AF",
larai: "\u0644\u0691\u0627\u0626\u06CC",
aman: "\u0627\u0645\u0646",
sulah: "\u0635\u0644\u062D",
tijarat: "\u062A\u062C\u0627\u0631\u062A",
karobar: "\u06A9\u0627\u0631\u0648\u0628\u0627\u0631",
sanat: "\u0635\u0646\u0639\u062A",
taraqqi: "\u062A\u0631\u0642\u06CC",
report: "\u0631\u067E\u0648\u0631\u0679",
conference: "\u06A9\u0627\u0646\u0641\u0631\u0646\u0633",
taqreer: "\u062A\u0642\u0631\u06CC\u0631",
aasman: "\u0622\u0633\u0645\u0627\u0646",
zameen: "\u0632\u0645\u06CC\u0646",
sooraj: "\u0633\u0648\u0631\u062C",
sitara: "\u0633\u062A\u0627\u0631\u06C1",
pahaar: "\u067E\u06C1\u0627\u0691",
nadi: "\u0646\u062F\u06CC",
darya: "\u062F\u0631\u06CC\u0627",
samundar: "\u0633\u0645\u0646\u062F\u0631",
jungle: "\u062C\u0646\u06AF\u0644",
bagh: "\u0628\u0627\u063A",
phool: "\u067E\u06BE\u0648\u0644",
darakht: "\u062F\u0631\u062E\u062A",
pattay: "\u067E\u062A\u0651\u06D2",
machli: "\u0645\u0686\u06BE\u0644\u06CC",
parinday: "\u067E\u0631\u0646\u062F\u06D2",
kutta: "\u06A9\u062A\u0627",
billi: "\u0628\u0644\u06CC",
ghora: "\u06AF\u06BE\u0648\u0691\u0627",
gaay: "\u06AF\u0627\u0626\u06D2",
bhains: "\u0628\u06BE\u06CC\u0633",
bakra: "\u0628\u06A9\u0631\u0627",
mendha: "\u0645\u06CC\u0688\u06BE\u0627",
khargosh: "\u062E\u0631\u06AF\u0648\u0634",
saanp: "\u0633\u0627\u0646\u067E",
cheel: "\u0686\u06CC\u0644",
kabootar: "\u06A9\u0628\u0648\u062A\u0631",
tota: "\u062A\u0648\u062A\u0627",
ullu: "\u0627\u0644\u0648",
chuha: "\u0686\u0648\u06C1\u0627"
};
// src/transliterate.ts
var DIGRAPHS = {
"\u0628\u06BE": "bh",
"\u067E\u06BE": "ph",
"\u062A\u06BE": "th",
"\u0679\u06BE": "th",
"\u062C\u06BE": "jh",
"\u0686\u06BE": "chh",
"\u062F\u06BE": "dh",
"\u0688\u06BE": "dh",
"\u0691\u06BE": "rh",
"\u06A9\u06BE": "kh",
"\u06AF\u06BE": "gh",
"\u0644\u06BE": "lh",
"\u0645\u06BE": "mh",
"\u0646\u06BE": "nh",
"\u0631\u06BE": "rh"
};
var LETTERS = {};
var VOWEL_LETTERS = /* @__PURE__ */ new Set();
for (const { ch, roman, vowel } of URDU_LETTERS) {
LETTERS[ch] = roman;
if (vowel) VOWEL_LETTERS.add(ch);
}
function romanizeWord(word) {
const dictionary = WORD_DICTIONARY[word];
if (dictionary) return dictionary;
const chars = [...word];
const pieces = [];
for (let i = 0; i < chars.length; i++) {
const last = i === chars.length - 1;
const pair = chars[i] + (chars[i + 1] ?? "");
const digraph = DIGRAPHS[pair];
if (digraph) {
pieces.push({ text: digraph, vowel: false });
i++;
continue;
}
const ch = chars[i];
if (i === 0 && ch === "\u0627") {
const next = chars[1];
if (next === "\u0648") {
pieces.push({ text: "o", vowel: true });
i++;
continue;
}
if (next === "\u06CC") {
pieces.push({ text: "i", vowel: true });
i++;
continue;
}
pieces.push({ text: "a", vowel: true });
continue;
}
if (i === 0 && ch === "\u0648") {
pieces.push({ text: "w", vowel: false });
continue;
}
if (i === 0 && ch === "\u06CC") {
pieces.push({ text: "y", vowel: false });
continue;
}
if (last && ch === "\u06C1" && pieces.length > 0) {
pieces.push({ text: "a", vowel: true });
continue;
}
if (ch === "\u06CC" && chars[i + 1] === "\u06BA" && i + 1 === chars.length - 1) {
pieces.push({ text: "ein", vowel: true });
i++;
continue;
}
if (ch === "\u06CC" && !last) {
pieces.push({ text: "e", vowel: true });
continue;
}
pieces.push({ text: LETTERS[ch] ?? ch, vowel: VOWEL_LETTERS.has(ch) });
}
if (pieces.length > 2 && !pieces[0].vowel && !pieces[1].vowel) {
pieces.splice(1, 0, { text: "a", vowel: true });
}
const out = pieces.map((p) => p.text).join("");
return out;
}
function romanize(input, options = {}) {
if (!input) return "";
const clean = removeDiacritics(normalizeUrdu(input));
const roman = clean.split(/(\s+)/u).map((chunk) => /^\s+$/u.test(chunk) ? chunk : romanizeWord(chunk)).join("");
if (!options.capitalize) return roman;
return roman.charAt(0).toUpperCase() + roman.slice(1);
}
var ROMAN_DICTIONARY = {};
for (const [urduWord, roman] of Object.entries(WORD_DICTIONARY)) {
ROMAN_DICTIONARY[roman] = urduWord;
}
Object.assign(ROMAN_DICTIONARY, ROMAN_VARIANTS);
var ROMAN_RULES = [
[/^kh/u, "\u06A9\u06BE"],
[/^gh/u, "\u06AF\u06BE"],
[/^chh/u, "\u0686\u06BE"],
[/^ch/u, "\u0686"],
[/^sh/u, "\u0634"],
[/^th/u, "\u062A\u06BE"],
[/^ph/u, "\u067E\u06BE"],
[/^bh/u, "\u0628\u06BE"],
[/^aa/u, "\u0622"],
[/^oo/u, "\u0648"],
[/^ee/u, "\u06CC"],
[/^ai/u, "\u06CC"],
[/^b/u, "\u0628"],
[/^p/u, "\u067E"],
[/^t/u, "\u062A"],
[/^j/u, "\u062C"],
[/^d/u, "\u062F"],
[/^r/u, "\u0631"],
[/^z/u, "\u0632"],
[/^s/u, "\u0633"],
[/^f/u, "\u0641"],
[/^q/u, "\u0642"],
[/^k/u, "\u06A9"],
[/^g/u, "\u06AF"],
[/^l/u, "\u0644"],
[/^m/u, "\u0645"],
[/^n/u, "\u0646"],
[/^v|^w/u, "\u0648"],
[/^h/u, "\u06C1"],
[/^y/u, "\u06CC"],
[/^a/u, "\u0627"],
[/^e/u, "\u06CC"],
[/^i/u, "\u06CC"],
[/^o/u, "\u0648"],
[/^u/u, "\u0648"]
];
function romanWordToUrdu(word) {
const lower = word.toLowerCase();
const dictionary = ROMAN_DICTIONARY[lower];
if (dictionary) return dictionary;
let rest = lower;
let out = "";
let position = 0;
while (rest.length > 0) {
let matched = false;
for (const [pattern, replacement] of ROMAN_RULES) {
const hit = pattern.exec(rest);
if (!hit) continue;
const isShortVowel = /^[aeiou]$/u.test(hit[0]);
const skip = isShortVowel && position > 0 && rest.length > 1;
if (!skip) out += replacement;
rest = rest.slice(hit[0].length);
position++;
matched = true;
break;
}
if (!matched) {
out += rest[0];
rest = rest.slice(1);
position++;
}
}
return out;
}
function romanToUrdu(input) {
if (!input) return "";
return input.split(/(\s+)/u).map((chunk) => /^\s+$/u.test(chunk) ? chunk : romanWordToUrdu(chunk)).join("");
}
function urduSlug(input, options = {}) {
const { separator = "-", maxLength, preserveUrdu = false } = options;
if (!input) return "";
const words = splitWords(removeDiacritics(normalizeUrdu(input)));
const parts = preserveUrdu ? words : words.map(romanizeWord);
const allowed = preserveUrdu ? /[^\p{L}\p{N}]+/gu : /[^a-z0-9]+/gu;
let slug = parts.map((part) => part.toLowerCase().replace(allowed, " ").trim()).flatMap((part) => part.split(/\s+/u)).filter((part) => part.length > 0).join(separator);
if (maxLength && slug.length > maxLength) {
slug = slug.slice(0, maxLength);
const lastSeparator = slug.lastIndexOf(separator);
if (lastSeparator > 0) slug = slug.slice(0, lastSeparator);
}
return slug;
}
// src/date.ts
var URDU_MONTHS_GREGORIAN = [
"\u062C\u0646\u0648\u0631\u06CC",
"\u0641\u0631\u0648\u0631\u06CC",
"\u0645\u0627\u0631\u0686",
"\u0627\u067E\u0631\u06CC\u0644",
"\u0645\u0626\u06CC",
"\u062C\u0648\u0646",
"\u062C\u0648\u0644\u0627\u0626\u06CC",
"\u0627\u06AF\u0633\u062A",
"\u0633\u062A\u0645\u0628\u0631",
"\u0627\u06A9\u062A\u0648\u0628\u0631",
"\u0646\u0648\u0645\u0628\u0631",
"\u062F\u0633\u0645\u0628\u0631"
];
var URDU_MONTHS_HIJRI = [
"\u0645\u062D\u0631\u0645",
"\u0635\u0641\u0631",
"\u0631\u0628\u06CC\u0639 \u0627\u0644\u0627\u0648\u0644",
"\u0631\u0628\u06CC\u0639 \u0627\u0644\u062B\u0627\u0646\u06CC",
"\u062C\u0645\u0627\u062F\u06CC \u0627\u0644\u0627\u0648\u0644",
"\u062C\u0645\u0627\u062F\u06CC \u0627\u0644\u062B\u0627\u0646\u06CC",
"\u0631\u062C\u0628",
"\u0634\u0639\u0628\u0627\u0646",
"\u0631\u0645\u0636\u0627\u0646 \u0627\u0644\u0645\u0628\u0627\u0631\u06A9",
"\u0634\u0648\u0627\u0644",
"\u0630\u06CC \u0627\u0644\u0642\u0639\u062F\u06C1",
"\u0630\u06CC \u0627\u0644\u062D\u062C\u06C1"
];
var URDU_WEEKDAYS = [
"\u0627\u062A\u0648\u0627\u0631",
"\u067E\u06CC\u0631",
"\u0645\u0646\u06AF\u0644",
"\u0628\u062F\u06BE",
"\u062C\u0645\u0639\u0631\u0627\u062A",
"\u062C\u0645\u0639\u06C1",
"\u06C1\u0641\u062A\u06C1"
];
function parseDateInput(input) {
if (input instanceof Date) {
return isNaN(input.getTime()) ? null : input;
}
const date = new Date(input);
return isNaN(date.getTime()) ? null : date;
}
function getUrduMonthName(monthIndex, calendar = "gregorian") {
const normalizedIndex = Math.floor(monthIndex) % 12;
const idx = normalizedIndex < 0 ? normalizedIndex + 12 : normalizedIndex;
return calendar === "hijri" ? URDU_MONTHS_HIJRI[idx] : URDU_MONTHS_GREGORIAN[idx];
}
function getUrduWeekdayName(dayIndex) {
const normalizedIndex = Math.floor(dayIndex) % 7;
const idx = normalizedIndex < 0 ? normalizedIndex + 7 : normalizedIndex;
return URDU_WEEKDAYS[idx];
}
function formatUrduDate(date, pattern = "DD MMMM YYYY", options = {}) {
const d = parseDateInput(date);
if (!d) return "";
const digits = options.digits ?? "urdu";
const calendar = options.calendar ?? "gregorian";
const year = d.getFullYear();
const month = d.getMonth();
const dayOfMonth = d.getDate();
const dayOfWeek = d.getDay();
const hours24 = d.getHours();
const hours12 = hours24 % 12 || 12;
const minutes = d.getMinutes();
const seconds = d.getSeconds();
const pad = (n) => n < 10 ? `0${n}` : `${n}`;
let periodDetailed;
let periodSimple;
if (hours24 >= 4 && hours24 < 12) {
periodDetailed = "\u0635\u0628\u062D";
periodSimple = "\u0635\u0628\u062D";
} else if (hours24 >= 12 && hours24 < 16) {
periodDetailed = "\u062F\u0648\u067E\u06C1\u0631";
periodSimple = "\u0634\u0627\u0645";
} else if (hours24 >= 16 && hours24 < 20) {
periodDetailed = "\u0634\u0627\u0645";
periodSimple = "\u0634\u0627\u0645";
} else {
periodDetailed = "\u0631\u0627\u062A";
periodSimple = "\u0631\u0627\u062A";
}
const tokenValues = {
YYYY: `${year}`,
YY: `${year}`.slice(-2),
MMMM: getUrduMonthName(month, calendar),
MMM: getUrduMonthName(month, calendar),
MM: pad(month + 1),
M: `${month + 1}`,
DD: pad(dayOfMonth),
D: `${dayOfMonth}`,
dddd: getUrduWeekdayName(dayOfWeek),
ddd: getUrduWeekdayName(dayOfWeek),
HH: pad(hours24),
H: `${hours24}`,
hh: pad(hours12),
h: `${hours12}`,
mm: pad(minutes),
m: `${minutes}`,
ss: pad(seconds),
s: `${seconds}`,
A: periodDetailed,
a: periodSimple
};
const regex = /YYYY|YY|MMMM|MMM|MM|M|DD|D|dddd|ddd|HH|H|hh|h|mm|m|ss|s|A|a/g;
const result = pattern.replace(regex, (match) => {
const val = tokenValues[match];
if (val === void 0) return match;
if (digits === "urdu" && /^\d+$/.test(val)) {
return toUrduDigits(val);
}
return val;
});
return result;
}
function timeAgoUrdu(date, relativeTo = /* @__PURE__ */ new Date(), options = {}) {
const d = parseDateInput(date);
const now = parseDateInput(relativeTo);
if (!d || !now) return "";
const digits = options.digits ?? "urdu";
const addSuffix = options.addSuffix ?? true;
const formatNum = (num) => {
const s = `${num}`;
return digits === "urdu" ? toUrduDigits(s) : s;
};
const diffMs = now.getTime() - d.getTime();
const isPast = diffMs >= 0;
const absDiffSeconds = Math.round(Math.abs(diffMs) / 1e3);
if (absDiffSeconds < 45) {
return isPast ? "\u0627\u0628\u06BE\u06CC" : "\u0686\u0646\u062F \u0644\u0645\u062D\u06D2 \u0628\u0639\u062F";
}
const minutes = Math.round(absDiffSeconds / 60);
if (minutes <= 45) {
if (minutes === 1) {
if (!addSuffix) return "\u0627\u06CC\u06A9 \u0645\u0646\u0679";
return isPast ? "\u0627\u06CC\u06A9 \u0645\u0646\u0679 \u067E\u06C1\u0644\u06D2" : "\u0627\u06CC\u06A9 \u0645\u0646\u0679 \u0628\u0639\u062F";
}
const count2 = formatNum(minutes);
if (!addSuffix) return `${count2} \u0645\u0646\u0679`;
return isPast ? `${count2} \u0645\u0646\u0679 \u067E\u06C1\u0644\u06D2` : `${count2} \u0645\u0646\u0679 \u0628\u0639\u062F`;
}
const hours = Math.round(minutes / 60);
if (hours <= 22) {
if (hours === 1) {
if (!addSuffix) return "\u0627\u06CC\u06A9 \u06AF\u06BE\u0646\u0679\u06C1";
return isPast ? "\u0627\u06CC\u06A9 \u06AF\u06BE\u0646\u0679\u06C1 \u067E\u06C1\u0644\u06D2" : "\u0627\u06CC\u06A9 \u06AF\u06BE\u0646\u0679\u06C1 \u0628\u0639\u062F";
}
const count2 = formatNum(hours);
if (!addSuffix) return `${count2} \u06AF\u06BE\u0646\u0679\u06D2`;
return isPast ? `${count2} \u06AF\u06BE\u0646\u0679\u06D2 \u067E\u06C1\u0644\u06D2` : `${count2} \u06AF\u06BE\u0646\u0679\u06D2 \u0628\u0639\u062F`;
}
const days = Math.round(hours / 24);
if (days === 1) {
return isPast ? "\u06A9\u0644" : "\u06A9\u0644";
}
if (days === 2) {
return isPast ? "\u067E\u0631\u0633\u0648\u06BA" : "\u067E\u0631\u0633\u0648\u06BA";
}
if (days <= 6) {
const count2 = formatNum(days);
if (!addSuffix) return `${count2} \u062F\u0646`;
return isPast ? `${count2} \u062F\u0646 \u067E\u06C1\u0644\u06D2` : `${count2} \u062F\u0646 \u0628\u0639\u062F`;
}
const weeks = Math.round(days / 7);
if (days <= 28) {
if (weeks === 1) {
if (!addSuffix) return "\u0627\u06CC\u06A9 \u06C1\u0641\u062A\u06C1";
return isPast ? "\u0627\u06CC\u06A9 \u06C1\u0641\u062A\u06C1 \u067E\u06C1\u0644\u06D2" : "\u0627\u06CC\u06A9 \u06C1\u0641\u062A\u06C1 \u0628\u0639\u062F";
}
const count2 = formatNum(weeks);
if (!addSuffix) return `${count2} \u06C1\u0641\u062A\u06D2`;
return isPast ? `${count2} \u06C1\u0641\u062A\u06D2 \u067E\u06C1\u0644\u06D2` : `${count2} \u06C1\u0641\u062A\u06D2 \u0628\u0639\u062F`;
}
const months = Math.round(days / 30.44);
if (days <= 320) {
if (months <= 1) {
if (!addSuffix) return "\u0627\u06CC\u06A9 \u0645\u0627\u06C1";
return isPast ? "\u0627\u06CC\u06A9 \u0645\u0627\u06C1 \u067E\u06C1\u0644\u06D2" : "\u0627\u06CC\u06A9 \u0645\u0627\u06C1 \u0628\u0639\u062F";
}
const count2 = formatNum(months);
if (!addSuffix) return `${count2} \u0645\u0627\u06C1`;
return isPast ? `${count2} \u0645\u0627\u06C1 \u067E\u06C1\u0644\u06D2` : `${count2} \u0645\u0627\u06C1 \u0628\u0639\u062F`;
}
const years = Math.round(days / 365.25);
if (years <= 1) {
if (!addSuffix) return "\u0627\u06CC\u06A9 \u0633\u0627\u0644";
return isPast ? "\u0627\u06CC\u06A9 \u0633\u0627\u0644 \u067E\u06C1\u0644\u06D2" : "\u0627\u06CC\u06A9 \u0633\u0627\u0644 \u0628\u0639\u062F";
}
const count = formatNum(years);
if (!addSuffix) return `${count} \u0633\u0627\u0644`;
return isPast ? `${count} \u0633\u0627\u0644 \u067E\u06C1\u0644\u06D2` : `${count} \u0633\u0627\u0644 \u0628\u0639\u062F`;
}
// src/stemmer.ts
var URDU_PREFIXES = [
"\u063A\u06CC\u0631",
"\u062E\u0648\u062F",
"\u0627\u06C1\u0644",
"\u0628\u06D2",
"\u0646\u0627",
"\u0644\u0627",
"\u0628\u062F",
"\u06A9\u0645",
"\u0627\u0646",
"\u06C1\u0645",
"\u0628\u0627",
"\u067E\u064F\u0631"
];
var URDU_SUFFIXES = [
// Compound / multi-syllable suffixes
"\u06CC\u06BA\u06AF\u06D2",
"\u06CC\u0646\u06AF\u06D2",
"\u06D2\u06AF\u0627",
"\u06D2\u06AF\u06CC",
"\u06CC\u0646\u06AF\u06CC",
"\u062F\u0627\u0631\u06CC",
"\u06AF\u0627\u0631\u06CC",
"\u06A9\u0627\u0631\u06CC",
"\u0633\u0627\u0632\u06CC",
"\u0628\u0627\u0632\u06CC",
"\u0645\u0646\u062F\u06CC",
"\u062A\u0631\u06CC\u0646",
"\u0633\u062A\u0627\u0646",
"\u062E\u0627\u0646\u06C1",
"\u0646\u0627\u0645\u06C1",
"\u062C\u0627\u062A",
"\u06AF\u0627\u0646",
// Adjectival / nominal / agentive suffixes
"\u062F\u0627\u0631",
"\u06AF\u0627\u0631",
"\u06A9\u0627\u0631",
"\u0633\u0627\u0632",
"\u0628\u0627\u0632",
"\u0645\u0646\u062F",
"\u0646\u0627\u06A9",
"\u0648\u0627\u0631",
"\u062F\u0627\u0646",
"\u0632\u0627\u0631",
"\u06CC\u062A",
"\u067E\u0646",
"\u0627\u0626\u06CC",
"\u062A\u0631",
// Plural & verbal inflections
"\u06CC\u0627\u06BA",
"\u0626\u06CC\u06BA",
"\u0624\u06BA",
"\u06CC\u0648\u06BA",
"\u0648\u06BA",
"\u06CC\u06BA",
"\u0627\u062A",
"\u06C1\u0627",
"\u06CC\u0646",
"\u062A\u06CC\u06BA",
"\u062A\u0627",
"\u062A\u06CC",
"\u062A\u06D2",
"\u0646\u0627"
];
var PROTECTED_WORDS = /* @__PURE__ */ new Set([
"\u06C1\u0645",
"\u0646\u0627",
"\u0644\u0627",
"\u0628\u06D2",
"\u06CC\u0627",
"\u062A\u0648",
"\u067E\u0631",
"\u0633\u06D2",
"\u06A9\u0648",
"\u06A9\u0627",
"\u06A9\u06CC",
"\u06A9\u06D2",
"\u0645\u06CC\u06BA",
"\u0646\u06D2",
"\u06C1\u06D2",
"\u06C1\u06CC\u06BA",
"\u06C1\u0648",
"\u062A\u06BE\u0627",
"\u062A\u06BE\u06CC",
"\u062A\u06BE\u06D2",
"\u062A\u06BE\u06CC\u06BA",
"\u0628\u0627\u063A",
"\u0646\u0627\u0645",
"\u0633\u0641\u0631",
"\u06C1\u0648\u0627",
"\u062F\u0644",
"\u0633\u0631",
"\u0644\u0628",
"\u062F\u0633\u062A",
"\u06A9\u0627\u0631",
"\u0628\u0627\u0631",
"\u0628\u0627\u0644",
"\u0628\u0627\u0646",
"\u0634\u0627\u0645",
"\u06A9\u0627\u0645",
"\u062F\u0627\u0645",
"\u062C\u0627\u0645",
"\u0639\u0627\u0645",
"\u0631\u0627\u0645",
"\u06AF\u0627\u0645",
"\u062A\u0627\u0631",
"\u06CC\u0627\u0631",
"\u0645\u0627\u0631",
"\u0646\u0627\u0631",
"\u062F\u0627\u0631",
"\u06C1\u0627\u0631",
"\u0632\u0627\u0631",
"\u063A\u0627\u0631",
"\u0631\u0627\u062A",
"\u0628\u0627\u062A",
"\u0645\u0627\u062A",
"\u0630\u0627\u062A",
"\u06C1\u0627\u062A\u06BE",
"\u0633\u0627\u062A\u06BE",
"\u062F\u06CC\u0646",
"\u062A\u06CC\u0646",
"\u0686\u06CC\u0646",
"\u0628\u06CC\u0646",
"\u0632\u0645\u06CC\u0646",
"\u0627\u0646\u0633\u0627\u0646",
"\u0627\u062D\u0633\u0627\u0646",
"\u0627\u06CC\u0645\u0627\u0646",
"\u0627\u0633\u0644\u0627\u0645",
"\u0627\u0639\u0644\u0627\u0646",
"\u0627\u0645\u06A9\u0627\u0646",
"\u0627\u0631\u0645\u0627\u0646",
"\u0627\u0641\u063A\u0627\u0646",
"\u0627\u06CC\u0631\u0627\u0646",
"\u0639\u0645\u0631\u0627\u0646",
"\u0639\u062B\u0645\u0627\u0646",
"\u0633\u0644\u0645\u0627\u0646",
"\u0639\u0631\u0641\u0627\u0646",
"\u0642\u0631\u0622\u0646",
"\u0637\u0648\u0641\u0627\u0646",
"\u067E\u06C1\u0686\u0627\u0646",
"\u062F\u06A9\u0627\u0646",
"\u0645\u06A9\u0627\u0646",
"\u0627\u0633\u0645\u0627\u0646",
"\u0622\u0633\u0645\u0627\u0646",
"\u0645\u06C1\u0645\u0627\u0646",
"\u0646\u0642\u0635\u0627\u0646"
]);
function applySuffixStripping(word, suffixes, minLen) {
if (word.length <= minLen) return { stem: word };
if (word.endsWith("\u06CC\u0627\u06BA") && word.length - 3 >= minLen) {
const base = word.slice(0, -3);
return { stem: `${base}\u06CC`, suffix: "\u06CC\u0627\u06BA" };
}
if (word.endsWith("\u06CC\u0648\u06BA") && word.length - 3 >= minLen) {
const base = word.slice(0, -3);
return { stem: `${base}\u06CC`, suffix: "\u06CC\u0648\u06BA" };
}
if (word.endsWith("\u0626\u06CC\u06BA") && word.length - 3 >= minLen) {
const base = word.slice(0, -3);
return { stem: base, suffix: "\u0626\u06CC\u06BA" };
}
if (word.endsWith("\u0624\u06BA") && word.length - 2 >= minLen) {
const base = word.slice(0, -2);
return { stem: base, suffix: "\u0624\u06BA" };
}
for (const suf of suffixes) {
if (word.endsWith(suf)) {
const remainder = word.slice(0, -suf.length).replace(/[\s\u200C\u200D]+$/, "");
if (remainder.length >= minLen && !PROTECTED_WORDS.has(word)) {
return { stem: remainder, suffix: suf };
}
}
}
return { stem: word };
}
function applyPrefixStripping(word, prefixes, minLen) {
if (word.length <= minLen) return { stem: word };
for (const pref of prefixes) {
if (word.startsWith(pref)) {
const remainder = word.slice(pref.length).replace(/^[\s\u200C\u200D]+/, "");
if (remainder.length >= minLen && !PROTECTED_WORDS.has(word)) {
return { stem: remainder, prefix: pref };
}
}
}
return { stem: word };
}
function getAffixes(input, options = {}) {
if (!input || typeof input !== "string") {
return { stem: "" };
}
const clean = removeDiacritics(normalizeUrdu(input.trim()));
if (!clean) return { stem: "" };
if (options.exceptions && options.exceptions[clean]) {
return { stem: options.exceptions[clean] };
}
if (PROTECTED_WORDS.has(clean)) {
return { stem: clean };
}
const minLen = options.minStemLength ?? 2;
const doSuffixes = options.stripSuffixes ?? true;
const doPrefixes = options.stripPrefixes ?? true;
const suffixes = options.customSuffixes ?? URDU_SUFFIXES;
const prefixes = options.customPrefixes ?? URDU_PREFIXES;
let current = clean;
let detectedSuffix;
let detectedPrefix;
if (doSuffixes) {
const sRes = applySuffixStripping(current, suffixes, minLen);
current = sRes.stem;
detectedSuffix = sRes.suffix;
}
if (doPrefixes) {
const pRes = applyPrefixStripping(current, prefixes, minLen);
current = pRes.stem;
detectedPrefix = pRes.prefix;
}
return {
prefix: detectedPrefix,
stem: current,
suffix: detectedSuffix
};
}
function stemUrdu(word, options = {}) {
return getAffixes(word, options).stem;
}
function stemUrduText(text, options = {}) {
if (!text || typeof text !== "string") return "";
const tokens = text.split(/([\s\p{P}\p{S}]+)/u);
return tokens.map((token) => {
if (/[\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(token)) {
return stemUrdu(token, options);
}
return token;
}).join("");
}
// src/names.ts
var URDU_FIRST_NAMES = {
// Male names
"\u0645\u062D\u0645\u062F": "Muhammad",
"\u0627\u062D\u0645\u062F": "Ahmed",
"\u0639\u0644\u06CC": "Ali",
"\u0639\u0645\u0631": "Umar",
"\u0639\u062B\u0645\u0627\u0646": "Usman",
"\u0627\u0628\u0648\u0628\u06A9\u0631": "Abubakar",
"\u06CC\u0648\u0633\u0641": "Yusuf",
"\u06CC\u0639\u0642\u0648\u0628": "Yaquob",
"\u0627\u0633\u0645\u0627\u0639\u06CC\u0644": "Ismail",
"\u0627\u0628\u0631\u0627\u06C1\u06CC\u0645": "Ibrahim",
"\u0627\u0633\u062D\u0627\u0642": "Ishaq",
"\u062D\u0633\u06CC\u0646": "Hussain",
"\u062D\u0633\u0646": "Hasan",
"\u0632\u06CC\u062F": "Zaid",
"\u062D\u0645\u0632\u06C1": "Hamza",
"\u0633\u0644\u0645\u0627\u0646": "Salman",
"\u0641\u0631\u062D\u0627\u0646": "Farhan",
"\u0627\u062F\u0646\u0627\u0646": "Adnan",
"\u0628\u0644\u0627\u0644": "Bilal",
"\u0637\u0627\u0631\u0642": "Tariq",
"\u062C\u0627\u0648\u06CC\u062F": "Javed",
"\u0639\u0631\u0641\u0627\u0646": "Irfan",
"\u06A9\u0627\u0634\u0641": "Kashif",
"\u0646\u062F\u06CC\u0645": "Nadeem",
"\u06CC\u0627\u0633\u0631": "Yasir",
"\u0631\u0636\u0648\u0627\u0646": "Rizwan",
"\u0641\u06CC\u0635\u0644": "Faisal",
"\u062E\u0627\u0644\u062F": "Khalid",
"\u0631\u0627\u0634\u062F": "Rashid",
"\u0634\u0627\u06C1\u062F": "Shahid",
"\u0633\u0639\u06CC\u062F": "Saeed",
"\u0646\u0639\u06CC\u0645": "Naeem",
"\u0648\u0633\u06CC\u0645": "Waseem",
"\u0631\u0641\u06CC\u0642": "Rafiq",
"\u062C\u0645\u06CC\u0644": "Jamil",
"\u0632\u0628\u06CC\u0631": "Zubair",
"\u0637\u0627\u06C1\u0631": "Tahir",
"\u0639\u0627\u0631\u0641": "Arif",
"\u0646\u0639\u0645\u0627\u0646": "Noman",
"\u062B\u0627\u0642\u0628": "Saqib",
"\u0639\u062F\u06CC\u0644": "Adeel",
"\u0639\u0645\u0631\u0627\u0646": "Imran",
"\u0641\u0648\u0627\u062F": "Fawad",
"\u0622\u0635\u0641": "Asif",
"\u0634\u0639\u06CC\u0628": "Shoaib",
"\u0632\u0627\u06C1\u062F": "Zahid",
"\u0639\u0627\u0645\u0631": "Amer",
"\u0645\u062C\u06CC\u062F": "Majid",
"\u0633\u0631\u0641\u0631\u0627\u0632": "Sarfraz",
"\u062D\u0645\u06CC\u062F": "Hamid",
"\u0646\u0638\u06CC\u0631": "Nazir",
"\u0642\u06CC\u0635\u0631": "Qaiser",
"\u0644\u0637\u06CC\u0641": "Latif",
"\u062A\u0646\u0648\u06CC\u0631": "Tanveer",
"\u0633\u0644\u06CC\u0645\u0627\u0646": "Suleman",
"\u0627\u0641\u062A\u062E\u0627\u0631": "Iftikhar",
"\u0634\u0628\u06CC\u0631": "Shabbir",
"\u0633\u0627\u062C\u062F": "Sajid",
"\u0645\u0646\u0635\u0648\u0631": "Mansoor",
"\u0633\u0644\u0637\u0627\u0646": "Sultan",
"\u0646\u0635\u06CC\u0631": "Nasir",
"\u062D\u0628\u06CC\u0628": "Habib",
"\u0645\u0642\u0635\u0648\u062F": "Maqsood",
"\u0645\u0633\u0639\u0648\u062F": "Masood",
"\u0633\u06C1\u06CC\u0644": "Sohail",
"\u0627\u0634\u0631\u0641": "Ashraf",
"\u0645\u0628\u0627\u0631\u06A9": "Mubarak",
"\u0641\u06C1\u062F": "Fahad",
"\u0627\u0638\u06C1\u0631": "Azhar",
"\u0648\u06A9\u06CC\u0644": "Wakeel",
"\u0631\u0624\u0641": "Rauf",
"\u062F\u0627\u0646\u06CC\u0627\u0644": "Daniyal",
"\u0630\u06CC\u0634\u0627\u0646": "Zeeshan",
"\u0645\u0635\u0637\u0641\u06CC": "Mustafa",
// Female names
"\u0641\u0627\u0637\u0645\u06C1": "Fatima",
"\u0639\u0627\u0626\u0634\u06C1": "Ayesha",
"\u062E\u062F\u06CC\u062C\u06C1": "Khadija",
"\u062D\u0633\u0646\u0627": "Husna",
"\u0632\u06CC\u0646\u0628": "Zainab",
"\u0622\u0645\u0646\u06C1": "Amina",
"\u0633\u0627\u0631\u0627": "Sara",
"\u0627\u062F\u06CC\u06C1": "Adia",
"\u0646\u0648\u0631": "Noor",
"\u062D\u0631\u0627": "Hira",
"\u0627\u0642\u0635\u06CC": "Aqsa",
"\u0645\u0627\u06C1\u0645": "Maham",
"\u0627\u06CC\u0645\u0627\u0646": "Iman",
"\u0644\u0627\u0626\u0628\u06C1": "Laiba",
"\u06C1\u0627\u0646\u06CC\u06C1": "Hania",
"\u0631\u0645\u0634\u06C1": "Rimsha",
"\u0645\u06CC\u0645\u0648\u0646\u06C1": "Memoona",
"\u062B\u0646\u0627": "Sana",
"\u062D\u0646\u0627": "Hina",
"\u0627\u0642\u0631\u0627": "Iqra",
"\u0641\u06CC\u0632\u0627": "Fiza",
"\u0641\u0636\u06C1": "Fizza",
"\u0633\u062F\u0631\u06C1": "Sidra",
"\u0631\u062F\u0627": "Rida",
"\u0646\u062F\u0627": "Nida",
"\u0645\u0648\u0645\u06CC\u0646\u06C1": "Momina",
"\u062B\u0648\u0628\u06CC\u06C1": "Sobia",
"\u0646\u0627\u0626\u0644\u06C1": "Naila",
"\u0628\u0634\u0631\u06CC": "Bushra",
"\u0631\u062E\u0633\u0627\u0646\u06C1": "Rukhsana",
"\u0634\u0627\u0632\u06CC\u06C1": "Shazia",
"\u0646\u0627\u06C1\u06CC\u062F": "Naheed",
"\u067E\u0631\u0648\u06CC\u0646": "Parveen",
"\u0641\u0631\u0632\u0627\u0646\u06C1": "Farzana",
"\u0646\u0627\u0632\u06CC\u06C1": "Nazia",
"\u0635\u0628\u06CC\u062D\u06C1": "Sabiha",
"\u0631\u0628\u0627\u0628": "Rubab",
"\u0635\u0627\u0626\u0645\u06C1": "Saima",
"\u0645\u06C1\u0631\u06CC\u0646": "Mehreen",
"\u0639\u0646\u0628\u0631\u06CC\u0646": "Ambreen",
"\u06A9\u0627\u0626\u0646\u0627\u062A": "Kainat",
"\u0637\u0627\u06C1\u0631\u06C1": "Tahira",
"\u0633\u0645\u06CC\u0639\u06C1": "Samia",
"\u0633\u0627\u0645\u06CC\u06C1": "Samiya",
"\u0633\u0644\u0645\u06CC": "Salma",
"\u0631\u0648\u0632\u06CC\u0646\u06C1": "Rozina",
"\u0645\u0631\u06CC\u0645": "Maryam",
"\u0631\u0627\u0628\u0639\u06C1": "Rabia",
"\u062A\u0633\u0644\u06CC\u0645": "Tasleem",
"\u0627\u0633\u0645\u0627\u0621": "Asma",
"\u0627\u0631\u0645": "Iram",
"\u0646\u0627\u0632": "Naaz",
"\u0641\u0631\u062D": "Farah",
"\u0646\u0627\u062F\u06CC\u06C1": "Nadia",
"\u0633\u06CC\u0645\u0627": "Seema",
"\u06C1\u0645\u0627": "Huma",
"\u0646\u0632\u06C1\u062A": "Nuzhat",
"\u0639\u0638\u0645\u06CC": "Uzma",
"\u06A9\u0631\u0646": "Kiran",
"\u0633\u0645\u06CC\u0631\u0627": "Sumaira",
"\u0641\u0631\u062E\u0646\u062F\u06C1": "Farkhanda",
"\u062A\u0633\u0646\u06CC\u0645": "Tasneem",
"\u0632\u0628\u06CC\u062F\u06C1": "Zubaida",
"\u062C\u0648\u06CC\u0631\u06CC\u06C1": "Javeria",
"\u0645\u06C1\u0648\u0634": "Mehwish",
"\u0639\u0627\u0644\u06CC\u06C1": "Alia"
};
var URDU_FAMILY_NAMES = {
"\u062E\u0627\u0646": "Khan",
"\u0634\u0627\u06C1": "Shah",
"\u0686\u0648\u06C1\u062F\u0631\u06CC": "Chaudhry",
"\u0645\u0644\u06A9": "Malik",
"\u0634\u06CC\u062E": "Sheikh",
"\u0642\u0631\u06CC\u0634\u06CC": "Qureshi",
"\u0633\u06CC\u062F": "Syed",
"\u0646\u06CC\u0627\u0632\u06CC": "Niazi",
"\u062C\u062F\u0648\u0646": "Jadoon",
"\u0633\u0648\u0627\u062A\u06CC": "Swati",
"\u06A9\u06BE\u0679\u06A9": "Khattak",
"\u06CC\u0648\u0633\u0641\u0632\u0626\u06CC": "Yusufzai",
"\u06A9\u06BE\u0648\u0633\u06C1": "Khosa",
"\u062A\u0627\u0644\u067E\u0648\u0631": "Talpur",
"\u062C\u0648\u0646\u06CC\u062C\u0648": "Junejo",
"\u0628\u06BE\u0679\u06CC": "Bhatti",
"\u0631\u0627\u062C\u067E\u0648\u062A": "Rajput",
"\u0633\u0648\u0645\u0631\u0648": "Soomro",
"\u062F\u06C1\u0627\u0631": "Dahar",
"\u06AF\u06CC\u0644\u0627\u0646\u06CC": "Gillani",
"\u0679\u0648\u0627\u0646\u0627\u0633": "Tiwanas",
"\u0679\u0648\u0627\u0646\u06C1": "Tiwana",
"\u062F\u0648\u0644\u062A\u0627\u0646\u06CC": "Doltani",
"\u062F\u0627\u0644\u062A\u0627\u0646\u06CC": "Daltani",
"\u06AF\u0648\u0631\u0686\u0627\u0646\u06CC": "Gurchani",
"\u0631\u0646\u062F": "Rind",
"\u0628\u06AF\u0679\u06CC": "Bugti",
"\u0645\u0631\u06CC": "Marri",
"\u0628\u0632\u06CC\u0646\u062C\u0648": "Bizenjo",
"\u0645\u06CC\u0646\u06AF\u0644": "Mengal",
"\u0632\u0631\u062F\u0627\u0631\u06CC": "Zardari",
"\u0628\u06BE\u0679\u0648": "Bhutto",
"\u0634\u0631\u06CC\u0641": "Sharif"
};
var HONORIFICS = {
"\u062C\u0646\u0627\u0628": "Janab",
"\u0635\u0627\u062D\u0628": "Sahib",
"\u0627\u0633\u062A\u0627\u062F": "Ustad",
"\u062D\u06A9\u06CC\u0645": "Hakim",
"\u0688\u0627\u06A9\u0679\u0631": "Dr.",
"\u067E\u0631\u0648\u0641\u06CC\u0633\u0631": "Prof.",
"\u0627\u0646\u062C\u06CC\u0646\u0626\u0631": "Eng.",
"\u0627\u06CC\u0688\u0648\u0648\u06A9\u06CC\u0679": "Adv.",
"\u0631\u06CC\u0679\u0627\u0626\u0631\u0688": "Retd.",
"\u0634\u06C1\u06CC\u062F": "Shaheed"
};
var NAME_PREFIXES = {
"\u0633\u06CC\u062F": "Syed",
"\u0634\u06CC\u062E": "Sheikh",
"\u0686\u0648\u06C1\u062F\u0631\u06CC": "Chowdhury",
"\u0645\u0644\u06A9": "Malik",
"\u0645\u06CC\u0627\u06BA": "Mian",
"\u062E\u0627\u0646": "Khan",
"\u0628\u06CC\u06AF\u0645": "Begum",
"\u0635\u0627\u062D\u0628": "Sahib"
};
var ENGLISH_TO_URDU = /* @__PURE__ */ new Map();
for (const table of [HONORIFICS, URDU_FIRST_NAMES, URDU_FAMILY_NAMES, NAME_PREFIXES]) {
for (const [urduWord, englishWord] of Object.entries(table)) {
ENGLISH_TO_URDU.set(englishWord.toLowerCase(), urduWord);
}
}
var ENGLISH_NAME_ALIASES = {
hassan: "\u062D\u0633\u0646",
// vs. canonical Hasan
omar: "\u0639\u0645\u0631",
// vs. canonical Umar
omer: "\u0639\u0645\u0631",
// vs. canonical Umar
yaqoob: "\u06CC\u0639\u0642\u0648\u0628",
// vs. canonical Yaquob
jameel: "\u062C\u0645\u06CC\u0644",
// vs. canonical Jamil
majeed: "\u0645\u062C\u06CC\u062F",
// vs. canonical Majid
amna: "\u0622\u0645\u0646\u06C1",
// vs. canonical Amina
gilani: "\u06AF\u06CC\u0644\u0627\u0646\u06CC",
// vs. canonical Gillani
sahab: "\u0635\u0627\u062D\u0628",
// vs. canonical Sahib
doctor: "\u0688\u0627\u06A9\u0679\u0631",
// vs. canonical Dr.
professor: "\u067E\u0631\u0648\u0641\u06CC\u0633\u0631",
// vs. canonical Prof.
engineer: "\u0627\u0646\u062C\u06CC\u0646\u0626\u0631",
// vs. canonical Eng.
advocate: "\u0627\u06CC\u0688\u0648\u0648\u06A9\u06CC\u0679",
// vs. canonical Adv.
retd: "\u0631\u06CC\u0679\u0627\u0626\u0631\u0688"
// vs. canonical Retd.
};
function transliterateSingleName(urduName) {
const normalized = removeDiacritics(normalizeUrdu(urduName));
const words = normalized.split(/\s+/).filter((w) => w.length > 0);
const result = [];
for (const word of words) {
const honorific = HONORIFICS[word];
if (honorific) {
result.push(honorific);
continue;
}
const firstName = URDU_FIRST_NAMES[word];
if (firstName) {
result.push(firstName);
continue;
}
const familyName = URDU_FAMILY_NAMES[word];
if (familyName) {
result.push(familyName);
continue;
}
const prefix = NAME_PREFIXES[word];
if (prefix) {
result.push(prefix);
continue;
}
result.push(transliterateNameWord(word));
}
return result.join(" ");
}
function transliterateNameWord(word) {
if (!word) return "";
const consonants = {
"\u0628": "b",
"\u067E": "p",
"\u062A": "t",
"\u0679": "t",
"\u062C": "j",
"\u0686": "ch",
"\u062D": "h",
"\u062E": "kh",
"\u062F": "d",
"\u0688": "d",
"\u0631": "r",
"\u0691": "r",
"\u0632": "z",
"\u0633": "s",
"\u0634": "sh",
"\u0635": "s",
"\u0636": "z",
"\u0637": "t",
"\u0638": "z",
"\u0639": "a",
"\u063A": "gh",
"\u0641": "f",
"\u0642": "q",
"\u06A9": "k",
"\u06AF": "g",
"\u0644": "l",
"\u0645": "m",
"\u0646": "n",
"\u0648": "w",
"\u06C1": "h",
"\u06BE": "h",
"\u06CC": "y"
};
let result = "";
const chars = [...word];
for (let i = 0; i < chars.length; i++) {
const ch = chars[i];
const next = chars[i + 1];
if (next === "\u06BE" && consonants[ch]) {
const base = consonants[ch];
result += base + "h";
i++;
continue;
}
if (ch === "\u0622") {
result += "Aa";
continue;
}
if (ch === "\u0627" && i === 0) {
result += "A";
continue;
}
if (ch === "\u0627") {
result += "a";
continue;
}
if (ch === "\u06CC" && i === chars.length - 1) {
result += "i";
continue;
}
if (ch === "\u06CC" && next === "\u06BA") {
result += "ain";
i++;
continue;
}
if (ch === "\u0648" && i === 0) {
result += "W";
continue;
}
if (ch === "\u0648") {
result += "o";
continue;
}
if (consonants[ch]) {
result += consonants[ch];
continue;
}
result += ch;
}
return result.charAt(0).toUpperCase() + result.slice(1);
}
function transliterateNameToEnglish(urduName, options = {}) {
if (!urduName) return "";
const { preserveCase = true, includeHonorifics = true } = options;
const result = transliterateSingleName(urduName);
if (!includeHonorifics) {
return result.split(/\s+/).filter((word) => !Object.values(HONORIFICS).includes(word)).join(" ");
}
return preserveCase ? result : result.toLowerCase();
}
function transliterateNameToUrdu(englishName) {
if (!englishName) return "";
const words = englishName.split(/\s+/).filter((w) => w.length > 0);
return words.map((word) => reverseTransliterateName(word)).join(" ");
}
function reverseTransliterateName(englishName) {
const lower = englishName.toLowerCase();
return ENGLISH_TO_URDU.get(lower) ?? ENGLISH_NAME_ALIASES[lower] ?? englishName;
}
function extractNameParts(fullName) {
const normalized = removeDiacritics(normalizeUrdu(fullName));
const words = normalized.split(/\s+/).filter((w) => w.length > 0);
const honorifics = Object.keys(HONORIFICS);
const suffixes = ["sahib", "sahab", "\u0628\u06CC\u06AF\u0645", "begum"];
let honorific;
let suffix;
const nameWords = [];
for (const word of words) {
if (honorifics.includes(word)) {
if (!honorific) {
honorific = word;
} else {
suffix = word;
}
} else if (suffixes.includes(word)) {
suffix = word;
} else {
nameWords.push(word);
}
}
const familyName = nameWords.length > 1 ? nameWords[nameWords.length - 1] : void 0;
const firstName = nameWords.length > 1 ? nameWords.slice(0, -1).join(" ") : nameWords[0] || "";
return { honorific, firstName, familyName, suffix };
}
exports.URDU_MONTHS_GREGORIAN = URDU_MONTHS_GREGORIAN;
exports.URDU_MONTHS_HIJRI = URDU_MONTHS_HIJRI;
exports.URDU_PREFIXES = URDU_PREFIXES;
exports.URDU_STOP_WORDS = URDU_STOP_WORDS;
exports.URDU_SUFFIXES = URDU_SUFFIXES;
exports.URDU_WEEKDAYS = URDU_WEEKDAYS;
exports.analyzeUrdu = analyzeUrdu;
exports.compareUrdu = compareUrdu;
exports.convertNumbers = convertNumbers;
exports.countSentences = countSentences;
exports.countWords = countWords;
exports.editDistance = editDistance;
exports.extractNameParts = extractNameParts;
exports.filterStopWords = filterStopWords;
exports.foldUrdu = foldUrdu;
exports.formatUrduDate = formatUrduDate;
exports.getAffixes = getAffixes;
exports.getUrduMonthName = getUrduMonthName;
exports.getUrduWeekdayName = getUrduWeekdayName;
exports.hasUrduSpecificLetters = hasUrduSpecificLetters;
exports.highlightUrdu = highlightUrdu;
exports.isStopWord = isStopWord;
exports.isUrdu = isUrdu;
exports.normalizeUrdu = normalizeUrdu;
exports.numberToUrduWords = numberToUrduWords;
exports.parseUrduNumber = parseUrduNumber;
exports.removeDiacritics = removeDiacritics;
exports.removeStopWords = removeStopWords;
exports.romanToUrdu = romanToUrdu;
exports.romanize = romanize;
exports.searchUrdu = searchUrdu;
exports.searchUrduRanked = searchUrduRanked;
exports.sortUrdu = sortUrdu;
exports.splitSentences = splitSentences;
exports.splitWords = splitWords;
exports.stemUrdu = stemUrdu;
exports.stemUrduText = stemUrduText;
exports.timeAgoUrdu = timeAgoUrdu;
exports.toArabicIndicDigits = toArabicIndicDigits;
exports.toEnglishDigits = toEnglishDigits;
exports.toUrduDigits = toUrduDigits;
exports.transliterateNameToEnglish = transliterateNameToEnglish;
exports.transliterateNameToUrdu = transliterateNameToUrdu;
exports.urduRatio = urduRatio;
exports.urduSlug = urduSlug;
//# sourceMappingURL=index.cjs.map
//# sourceMappingURL=index.cjs.map