disarm 0.15.0

Unicode canonicalization and TR39 visual confusable analysis: building blocks for text-security pipelines (homoglyph/bidi/zalgo handling) plus standards-based phonetic transliteration
Documentation
# Unicode UTS#39 confusables.txt 17.0.0, folded to Hebrew, plus disarm cross-script additions (#336). Generated by scripts/gen_confusables.py - see docs/provenance.md.
0022	\u{05F2}
0027	\u{05D9}
003A	\u{05C3}
0049	\u{05C0}
0060	\u{05D9}
006C	\u{05C0}
006F	\u{05E1}
0076	\u{05D8}
007C	\u{05C0}
00B4	\u{05D9}
0196	\u{05C0}
01C0	\u{05C0}
01C1	\u{05F0}
02B9	\u{05D9}
02BA	\u{05F2}
02BB	\u{05D9}
02BC	\u{05D9}
02BD	\u{05D9}
02BE	\u{05D9}
02C8	\u{05D9}
02CA	\u{05D9}
02CB	\u{05D9}
02D0	\u{05C3}
02DD	\u{05F2}
02EE	\u{05F2}
02F4	\u{05D9}
02F6	\u{05F2}
02F8	\u{05C3}
0374	\u{05D9}
0384	\u{05D9}
0399	\u{05C0}
03BD	\u{05D8}
03BF	\u{05E1}
03C3	\u{05E1}
03ED	\u{05E1}
0406	\u{05C0}
043E	\u{05E1}
0475	\u{05D8}
04C0	\u{05C0}
04CF	\u{05C0}
055A	\u{05D9}
055D	\u{05D9}
0585	\u{05E1}
0589	\u{05C3}
0627	\u{05C0}
0647	\u{05E1}
0661	1
0665	5
06BE	\u{05E1}
06C1	\u{05E1}
06D5	\u{05E1}
06F1	1
06F5	5
0703	\u{05C3}
0704	\u{05C3}
07CA	\u{05C0}
07F4	\u{05D9}
07F5	\u{05D9}
0903	\u{05C3}
0966	0
09E6	0
0A66	0
0A83	\u{05C3}
0AE6	0
0B66	0
0BE6	0
0C02	\u{05E1}
0C66	0
0C82	\u{05E1}
0D02	\u{05E1}
0D20	\u{05E1}
0D66	0
0D82	\u{05E1}
0E50	0
0ED0	0
101D	\u{05E1}
1040	0
10FF	\u{05E1}
144A	\u{05D9}
16C1	\u{05C0}
16CC	\u{05D9}
16EC	\u{05C3}
17E0	0
1803	\u{05C3}
1809	\u{05C3}
1CD3	\u{05F2}
1D0F	\u{05E1}
1D11	\u{05E1}
1D20	\u{05D8}
1FBD	\u{05D9}
1FBF	\u{05D9}
1FEF	\u{05D9}
1FFD	\u{05D9}
1FFE	\u{05D9}
2016	\u{05F0}
2018	\u{05D9}
2019	\u{05D9}
201B	\u{05D9}
201C	\u{05F2}
201D	\u{05F2}
201F	\u{05F2}
2032	\u{05D9}
2033	\u{05F2}
2035	\u{05D9}
2036	\u{05F2}
205A	\u{05C3}
2110	\u{05C0}
2111	\u{05C0}
2113	\u{05C0}
2134	\u{05E1}
2135	\u{05D0}
2136	\u{05D1}
2137	\u{05D2}
2138	\u{05D3}
2160	\u{05C0}
2161	\u{05F0}
2174	\u{05D8}
217C	\u{05C0}
2223	\u{05C0}
2225	\u{05F0}
2228	\u{05D8}
2236	\u{05C3}
2238	\u{FB29}
22C1	\u{05D8}
23FD	\u{05C0}
2C92	\u{05C0}
2C9F	\u{05E1}
2CB2	\u{FB29}
2CB3	\u{FB29}
2D4F	\u{05C0}
3003	\u{05F2}
A4F2	\u{05C0}
A4FD	\u{05C3}
A789	\u{05C3}
A78C	\u{05D9}
AB3D	\u{05E1}
ABA9	\u{05D8}
FBA6	\u{05E1}
FBA7	\u{05E1}
FBA8	\u{05E1}
FBA9	\u{05E1}
FBAA	\u{05E1}
FBAB	\u{05E1}
FBAC	\u{05E1}
FBAD	\u{05E1}
FE30	\u{05C3}
FE8D	\u{05C0}
FE8E	\u{05C0}
FEE9	\u{05E1}
FEEA	\u{05E1}
FEEB	\u{05E1}
FEEC	\u{05E1}
FF02	\u{05F2}
FF07	\u{05D9}
FF1A	\u{05C3}
FF29	\u{05C0}
FF40	\u{05D9}
FF4C	\u{05C0}
FF4F	\u{05E1}
FF56	\u{05D8}
FFE8	\u{05C0}
1028A	\u{05C0}
10309	\u{05C0}
10320	\u{05C0}
1042C	\u{05E1}
104EA	\u{05E1}
114D0	0
11706	\u{05D8}
118C0	\u{05D8}
118C8	\u{05E1}
118D7	\u{05E1}
11DD9	\u{05C3}
11DDA	\u{05C0}
11DE1	1
16EAA	\u{05C0}
16F28	\u{05C0}
16F51	\u{05D9}
16F52	\u{05D9}
1CCDE	\u{05C0}
1CCF1	1
1D408	\u{05C0}
1D425	\u{05C0}
1D428	\u{05E1}
1D42F	\u{05D8}
1D43C	\u{05C0}
1D459	\u{05C0}
1D45C	\u{05E1}
1D463	\u{05D8}
1D470	\u{05C0}
1D48D	\u{05C0}
1D490	\u{05E1}
1D497	\u{05D8}
1D4C1	\u{05C0}
1D4CB	\u{05D8}
1D4D8	\u{05C0}
1D4F5	\u{05C0}
1D4F8	\u{05E1}
1D4FF	\u{05D8}
1D529	\u{05C0}
1D52C	\u{05E1}
1D533	\u{05D8}
1D540	\u{05C0}
1D55D	\u{05C0}
1D560	\u{05E1}
1D567	\u{05D8}
1D574	\u{05C0}
1D591	\u{05C0}
1D594	\u{05E1}
1D59B	\u{05D8}
1D5A8	\u{05C0}
1D5C5	\u{05C0}
1D5C8	\u{05E1}
1D5CF	\u{05D8}
1D5DC	\u{05C0}
1D5F9	\u{05C0}
1D5FC	\u{05E1}
1D603	\u{05D8}
1D610	\u{05C0}
1D62D	\u{05C0}
1D630	\u{05E1}
1D637	\u{05D8}
1D644	\u{05C0}
1D661	\u{05C0}
1D664	\u{05E1}
1D66B	\u{05D8}
1D678	\u{05C0}
1D695	\u{05C0}
1D698	\u{05E1}
1D69F	\u{05D8}
1D6B0	\u{05C0}
1D6CE	\u{05D8}
1D6D0	\u{05E1}
1D6D4	\u{05E1}
1D6EA	\u{05C0}
1D708	\u{05D8}
1D70A	\u{05E1}
1D70E	\u{05E1}
1D724	\u{05C0}
1D742	\u{05D8}
1D744	\u{05E1}
1D748	\u{05E1}
1D75E	\u{05C0}
1D77C	\u{05D8}
1D77E	\u{05E1}
1D782	\u{05E1}
1D798	\u{05C0}
1D7B6	\u{05D8}
1D7B8	\u{05E1}
1D7BC	\u{05E1}
1D7CF	1
1D7D9	1
1D7E3	1
1D7ED	1
1D7F7	1
1E8C7	\u{05C0}
1EE00	\u{05C0}
1EE24	\u{05E1}
1EE64	\u{05E1}
1EE80	\u{05C0}
1EE84	\u{05E1}
1FBF1	1