// Metro module 14711 (f14712). const calculateJaroWinklerDistance = function calculateJaroWinklerDistance(a0, a1) { let r48, r82, r110, length2, length4, length6, length7; const r1 = Math.floor(Math.max(a0.length, a1.length) / 2) - 1; const r30 = []; const r12 = 0 < a0.length; let r2 = 0; let r32 = 0; let r10 = 0; if (r12) { do { let r35 = Math.max(0, r2 - r1); const r36 = Math; const length = a1.length; const r6 = r2 + r1; const r39 = r36.min(length, r6); const r40 = r2; const r5 = r32; let r4 = r5; if (r35 <= r39) { do { const r41 = a0[r40]; const r42 = a1[r35]; const r43 = r35; if (r41 === r42 && !r30[r43]) { r30[r43] = true; r4 = r5 + 1; break; } r35 = r43 + 1; r48 = Math.min(a1.length, r6); r4 = r5; } while (r35 <= r48); } r2 = r40 + 1; length2 = a0.length; r32 = r4; r10 = r32; } while (r2 < length2); } if (!(0 < r10)) { return 0; } const r59 = Math.floor(Math.max(a0.length, a1.length) / 2) - 1; const r60 = []; const r62 = 0 < a0.length; let r64 = ""; let r65 = 0; let r66 = ""; if (r62) { do { let r23 = Math.max(0, r65 - r59); const r24 = Math; const length3 = a1.length; const r72 = r65 + r59; const r73 = r24.min(length3, r72); const r74 = r64; const r75 = r65; let r76 = r74; if (r23 <= r73) { do { const r26 = a0[r75]; const r25 = a1[r23]; const r77 = r23; if (r26 === r25 && !r60[r77]) { r76 = r74 + a0[r75]; r60[r77] = true; break; } r23 = r77 + 1; r82 = Math.min(a1.length, r72); r76 = r74; } while (r23 <= r82); } r65 = r75 + 1; length4 = a0.length; r64 = r76; r66 = r64; } while (r65 < length4); } const r84 = []; const r86 = 0 < a1.length; let r87 = ""; let r88 = 0; let r89 = ""; if (r86) { do { let r93 = Math.max(0, r88 - r59); const r94 = Math; const length5 = a0.length; const r97 = r88 + r59; const r98 = r94.min(length5, r97); const r99 = r87; const r100 = r88; let r101 = r99; if (r93 <= r98) { do { const r102 = a1[r100]; const r103 = a0[r93]; const r104 = r93; if (r102 === r103 && !r84[r104]) { r101 = r99 + a1[r100]; r84[r104] = true; break; } r93 = r104 + 1; r110 = Math.min(a0.length, r97); r101 = r99; } while (r93 <= r110); } r88 = r100 + 1; length6 = a1.length; r87 = r101; r89 = r87; } while (r88 < length6); } const r113 = 0 < r66.length; let r114 = 0; let r115 = 0; let r116 = 0; if (r113) { do { const r117 = r66[r114]; const r118 = r89[r114]; const r119 = r114; const r120 = r115; const r121 = r117 !== r118 ? r120 + 1 : r120; r114 = r119 + 1; length7 = r66.length; r115 = r121; r116 = r115; } while (r114 < length7); } const r136 = (r10 / a0.length + r10 / a1.length + (r10 - Math.floor(r116 / 2)) / r10) / 3; let r139 = 0; if (r136 < 0.7) { return r136; } while (true) { const r140 = a0[r139]; const r141 = a1[r139]; const r142 = r139; let r143 = r142; if (r140 === r141) { const r144 = r142 + 1; r139 = r144; if (r139 < 4) { continue; } r143 = r144 + 1; } return r136 + 0.1 * r143 * (1 - r136); } }; export function calculateJaroWinklerSimilarity(a0, a1, a2) { const caseSensitive = (a2 == null ? {} : a2).caseSensitive; return caseSensitive !== void 0 && caseSensitive ? calculateJaroWinklerDistance(a0, a1) : calculateJaroWinklerDistance(a0.toLowerCase(), a1.toLowerCase()); }