Skip to content

Instantly share code, notes, and snippets.

@latkin latkin/func.ps1
Created Oct 14, 2017

What would you like to do?
PowerShell engine stack overflow
# dot-source this function and try running `f 0`
# It work on Windows in Windows PowerShell and PowerShell Core
# On Mac the powershell process terminates with `Process is terminating due to StackOverflowException. Abort trap: 6`
# programmatically generated by parsing
function f { param($codepoint)
if(($codepoint -ge 0x0000) -and ($codepoint -le 0x0008)){ 'CM' }
elseif($codepoint -eq 0x0009) { 'BA' }
elseif($codepoint -eq 0x000A) { 'LF' }
elseif(($codepoint -ge 0x000B) -and ($codepoint -le 0x000C)){ 'BK' }
elseif($codepoint -eq 0x000D) { 'CR' }
elseif(($codepoint -ge 0x000E) -and ($codepoint -le 0x001F)){ 'CM' }
elseif($codepoint -eq 0x0020) { 'SP' }
elseif($codepoint -eq 0x0021) { 'EX' }
elseif($codepoint -eq 0x0022) { 'QU' }
elseif($codepoint -eq 0x0023) { 'AL' }
elseif($codepoint -eq 0x0024) { 'PR' }
elseif($codepoint -eq 0x0025) { 'PO' }
elseif($codepoint -eq 0x0026) { 'AL' }
elseif($codepoint -eq 0x0027) { 'QU' }
elseif($codepoint -eq 0x0028) { 'OP' }
elseif($codepoint -eq 0x0029) { 'CP' }
elseif($codepoint -eq 0x002A) { 'AL' }
elseif($codepoint -eq 0x002B) { 'PR' }
elseif($codepoint -eq 0x002C) { 'IS' }
elseif($codepoint -eq 0x002D) { 'HY' }
elseif($codepoint -eq 0x002E) { 'IS' }
elseif($codepoint -eq 0x002F) { 'SY' }
elseif(($codepoint -ge 0x0030) -and ($codepoint -le 0x0039)){ 'NU' }
elseif(($codepoint -ge 0x003A) -and ($codepoint -le 0x003B)){ 'IS' }
elseif(($codepoint -ge 0x003C) -and ($codepoint -le 0x003E)){ 'AL' }
elseif($codepoint -eq 0x003F) { 'EX' }
elseif($codepoint -eq 0x0040) { 'AL' }
elseif(($codepoint -ge 0x0041) -and ($codepoint -le 0x005A)){ 'AL' }
elseif($codepoint -eq 0x005B) { 'OP' }
elseif($codepoint -eq 0x005C) { 'PR' }
elseif($codepoint -eq 0x005D) { 'CP' }
elseif($codepoint -eq 0x005E) { 'AL' }
elseif($codepoint -eq 0x005F) { 'AL' }
elseif($codepoint -eq 0x0060) { 'AL' }
elseif(($codepoint -ge 0x0061) -and ($codepoint -le 0x007A)){ 'AL' }
elseif($codepoint -eq 0x007B) { 'OP' }
elseif($codepoint -eq 0x007C) { 'BA' }
elseif($codepoint -eq 0x007D) { 'CL' }
elseif($codepoint -eq 0x007E) { 'AL' }
elseif($codepoint -eq 0x007F) { 'CM' }
elseif(($codepoint -ge 0x0080) -and ($codepoint -le 0x0084)){ 'CM' }
elseif($codepoint -eq 0x0085) { 'NL' }
elseif(($codepoint -ge 0x0086) -and ($codepoint -le 0x009F)){ 'CM' }
elseif($codepoint -eq 0x00A0) { 'GL' }
elseif($codepoint -eq 0x00A1) { 'OP' }
elseif($codepoint -eq 0x00A2) { 'PO' }
elseif(($codepoint -ge 0x00A3) -and ($codepoint -le 0x00A5)){ 'PR' }
elseif($codepoint -eq 0x00A6) { 'AL' }
elseif($codepoint -eq 0x00A7) { 'AI' }
elseif($codepoint -eq 0x00A8) { 'AI' }
elseif($codepoint -eq 0x00A9) { 'AL' }
elseif($codepoint -eq 0x00AA) { 'AI' }
elseif($codepoint -eq 0x00AB) { 'QU' }
elseif($codepoint -eq 0x00AC) { 'AL' }
elseif($codepoint -eq 0x00AD) { 'BA' }
elseif($codepoint -eq 0x00AE) { 'AL' }
elseif($codepoint -eq 0x00AF) { 'AL' }
elseif($codepoint -eq 0x00B0) { 'PO' }
elseif($codepoint -eq 0x00B1) { 'PR' }
elseif(($codepoint -ge 0x00B2) -and ($codepoint -le 0x00B3)){ 'AI' }
elseif($codepoint -eq 0x00B4) { 'BB' }
elseif($codepoint -eq 0x00B5) { 'AL' }
elseif(($codepoint -ge 0x00B6) -and ($codepoint -le 0x00B7)){ 'AI' }
elseif($codepoint -eq 0x00B8) { 'AI' }
elseif($codepoint -eq 0x00B9) { 'AI' }
elseif($codepoint -eq 0x00BA) { 'AI' }
elseif($codepoint -eq 0x00BB) { 'QU' }
elseif(($codepoint -ge 0x00BC) -and ($codepoint -le 0x00BE)){ 'AI' }
elseif($codepoint -eq 0x00BF) { 'OP' }
elseif(($codepoint -ge 0x00C0) -and ($codepoint -le 0x00D6)){ 'AL' }
elseif($codepoint -eq 0x00D7) { 'AI' }
elseif(($codepoint -ge 0x00D8) -and ($codepoint -le 0x00F6)){ 'AL' }
elseif($codepoint -eq 0x00F7) { 'AI' }
elseif(($codepoint -ge 0x00F8) -and ($codepoint -le 0x00FF)){ 'AL' }
elseif(($codepoint -ge 0x0100) -and ($codepoint -le 0x017F)){ 'AL' }
elseif(($codepoint -ge 0x0180) -and ($codepoint -le 0x01BA)){ 'AL' }
elseif($codepoint -eq 0x01BB) { 'AL' }
elseif(($codepoint -ge 0x01BC) -and ($codepoint -le 0x01BF)){ 'AL' }
elseif(($codepoint -ge 0x01C0) -and ($codepoint -le 0x01C3)){ 'AL' }
elseif(($codepoint -ge 0x01C4) -and ($codepoint -le 0x024F)){ 'AL' }
elseif(($codepoint -ge 0x0250) -and ($codepoint -le 0x0293)){ 'AL' }
elseif($codepoint -eq 0x0294) { 'AL' }
elseif(($codepoint -ge 0x0295) -and ($codepoint -le 0x02AF)){ 'AL' }
elseif(($codepoint -ge 0x02B0) -and ($codepoint -le 0x02C1)){ 'AL' }
elseif(($codepoint -ge 0x02C2) -and ($codepoint -le 0x02C5)){ 'AL' }
elseif($codepoint -eq 0x02C6) { 'AL' }
elseif($codepoint -eq 0x02C7) { 'AI' }
elseif($codepoint -eq 0x02C8) { 'BB' }
elseif(($codepoint -ge 0x02C9) -and ($codepoint -le 0x02CB)){ 'AI' }
elseif($codepoint -eq 0x02CC) { 'BB' }
elseif($codepoint -eq 0x02CD) { 'AI' }
elseif(($codepoint -ge 0x02CE) -and ($codepoint -le 0x02CF)){ 'AL' }
elseif($codepoint -eq 0x02D0) { 'AI' }
elseif($codepoint -eq 0x02D1) { 'AL' }
elseif(($codepoint -ge 0x02D2) -and ($codepoint -le 0x02D7)){ 'AL' }
elseif(($codepoint -ge 0x02D8) -and ($codepoint -le 0x02DB)){ 'AI' }
elseif($codepoint -eq 0x02DC) { 'AL' }
elseif($codepoint -eq 0x02DD) { 'AI' }
elseif($codepoint -eq 0x02DE) { 'AL' }
elseif($codepoint -eq 0x02DF) { 'BB' }
elseif(($codepoint -ge 0x02E0) -and ($codepoint -le 0x02E4)){ 'AL' }
elseif(($codepoint -ge 0x02E5) -and ($codepoint -le 0x02EB)){ 'AL' }
elseif($codepoint -eq 0x02EC) { 'AL' }
elseif($codepoint -eq 0x02ED) { 'AL' }
elseif($codepoint -eq 0x02EE) { 'AL' }
elseif(($codepoint -ge 0x02EF) -and ($codepoint -le 0x02FF)){ 'AL' }
elseif(($codepoint -ge 0x0300) -and ($codepoint -le 0x034E)){ 'CM' }
elseif($codepoint -eq 0x034F) { 'GL' }
elseif(($codepoint -ge 0x0350) -and ($codepoint -le 0x035B)){ 'CM' }
elseif(($codepoint -ge 0x035C) -and ($codepoint -le 0x0362)){ 'GL' }
elseif(($codepoint -ge 0x0363) -and ($codepoint -le 0x036F)){ 'CM' }
elseif(($codepoint -ge 0x0370) -and ($codepoint -le 0x0373)){ 'AL' }
elseif($codepoint -eq 0x0374) { 'AL' }
elseif($codepoint -eq 0x0375) { 'AL' }
elseif(($codepoint -ge 0x0376) -and ($codepoint -le 0x0377)){ 'AL' }
elseif($codepoint -eq 0x037A) { 'AL' }
elseif(($codepoint -ge 0x037B) -and ($codepoint -le 0x037D)){ 'AL' }
elseif($codepoint -eq 0x037E) { 'IS' }
elseif($codepoint -eq 0x037F) { 'AL' }
elseif(($codepoint -ge 0x0384) -and ($codepoint -le 0x0385)){ 'AL' }
elseif($codepoint -eq 0x0386) { 'AL' }
elseif($codepoint -eq 0x0387) { 'AL' }
elseif(($codepoint -ge 0x0388) -and ($codepoint -le 0x038A)){ 'AL' }
elseif($codepoint -eq 0x038C) { 'AL' }
elseif(($codepoint -ge 0x038E) -and ($codepoint -le 0x03A1)){ 'AL' }
elseif(($codepoint -ge 0x03A3) -and ($codepoint -le 0x03F5)){ 'AL' }
elseif($codepoint -eq 0x03F6) { 'AL' }
elseif(($codepoint -ge 0x03F7) -and ($codepoint -le 0x03FF)){ 'AL' }
elseif(($codepoint -ge 0x0400) -and ($codepoint -le 0x0481)){ 'AL' }
elseif($codepoint -eq 0x0482) { 'AL' }
elseif(($codepoint -ge 0x0483) -and ($codepoint -le 0x0487)){ 'CM' }
elseif(($codepoint -ge 0x0488) -and ($codepoint -le 0x0489)){ 'CM' }
elseif(($codepoint -ge 0x048A) -and ($codepoint -le 0x04FF)){ 'AL' }
elseif(($codepoint -ge 0x0500) -and ($codepoint -le 0x052F)){ 'AL' }
elseif(($codepoint -ge 0x0531) -and ($codepoint -le 0x0556)){ 'AL' }
elseif($codepoint -eq 0x0559) { 'AL' }
elseif(($codepoint -ge 0x055A) -and ($codepoint -le 0x055F)){ 'AL' }
elseif(($codepoint -ge 0x0561) -and ($codepoint -le 0x0587)){ 'AL' }
elseif($codepoint -eq 0x0589) { 'IS' }
elseif($codepoint -eq 0x058A) { 'BA' }
elseif(($codepoint -ge 0x058D) -and ($codepoint -le 0x058E)){ 'AL' }
elseif($codepoint -eq 0x058F) { 'PR' }
elseif(($codepoint -ge 0x0591) -and ($codepoint -le 0x05BD)){ 'CM' }
elseif($codepoint -eq 0x05BE) { 'BA' }
elseif($codepoint -eq 0x05BF) { 'CM' }
elseif($codepoint -eq 0x05C0) { 'AL' }
elseif(($codepoint -ge 0x05C1) -and ($codepoint -le 0x05C2)){ 'CM' }
elseif($codepoint -eq 0x05C3) { 'AL' }
elseif(($codepoint -ge 0x05C4) -and ($codepoint -le 0x05C5)){ 'CM' }
elseif($codepoint -eq 0x05C6) { 'EX' }
elseif($codepoint -eq 0x05C7) { 'CM' }
elseif(($codepoint -ge 0x05D0) -and ($codepoint -le 0x05EA)){ 'HL' }
elseif(($codepoint -ge 0x05F0) -and ($codepoint -le 0x05F2)){ 'HL' }
elseif(($codepoint -ge 0x05F3) -and ($codepoint -le 0x05F4)){ 'AL' }
elseif(($codepoint -ge 0x0600) -and ($codepoint -le 0x0605)){ 'AL' }
elseif(($codepoint -ge 0x0606) -and ($codepoint -le 0x0608)){ 'AL' }
elseif(($codepoint -ge 0x0609) -and ($codepoint -le 0x060A)){ 'PO' }
elseif($codepoint -eq 0x060B) { 'PO' }
elseif(($codepoint -ge 0x060C) -and ($codepoint -le 0x060D)){ 'IS' }
elseif(($codepoint -ge 0x060E) -and ($codepoint -le 0x060F)){ 'AL' }
elseif(($codepoint -ge 0x0610) -and ($codepoint -le 0x061A)){ 'CM' }
elseif($codepoint -eq 0x061B) { 'EX' }
elseif($codepoint -eq 0x061C) { 'CM' }
elseif(($codepoint -ge 0x061E) -and ($codepoint -le 0x061F)){ 'EX' }
elseif(($codepoint -ge 0x0620) -and ($codepoint -le 0x063F)){ 'AL' }
elseif($codepoint -eq 0x0640) { 'AL' }
elseif(($codepoint -ge 0x0641) -and ($codepoint -le 0x064A)){ 'AL' }
elseif(($codepoint -ge 0x064B) -and ($codepoint -le 0x065F)){ 'CM' }
elseif(($codepoint -ge 0x0660) -and ($codepoint -le 0x0669)){ 'NU' }
elseif($codepoint -eq 0x066A) { 'PO' }
elseif(($codepoint -ge 0x066B) -and ($codepoint -le 0x066C)){ 'NU' }
elseif($codepoint -eq 0x066D) { 'AL' }
elseif(($codepoint -ge 0x066E) -and ($codepoint -le 0x066F)){ 'AL' }
elseif($codepoint -eq 0x0670) { 'CM' }
elseif(($codepoint -ge 0x0671) -and ($codepoint -le 0x06D3)){ 'AL' }
elseif($codepoint -eq 0x06D4) { 'EX' }
elseif($codepoint -eq 0x06D5) { 'AL' }
elseif(($codepoint -ge 0x06D6) -and ($codepoint -le 0x06DC)){ 'CM' }
elseif($codepoint -eq 0x06DD) { 'AL' }
elseif($codepoint -eq 0x06DE) { 'AL' }
elseif(($codepoint -ge 0x06DF) -and ($codepoint -le 0x06E4)){ 'CM' }
elseif(($codepoint -ge 0x06E5) -and ($codepoint -le 0x06E6)){ 'AL' }
elseif(($codepoint -ge 0x06E7) -and ($codepoint -le 0x06E8)){ 'CM' }
elseif($codepoint -eq 0x06E9) { 'AL' }
elseif(($codepoint -ge 0x06EA) -and ($codepoint -le 0x06ED)){ 'CM' }
elseif(($codepoint -ge 0x06EE) -and ($codepoint -le 0x06EF)){ 'AL' }
elseif(($codepoint -ge 0x06F0) -and ($codepoint -le 0x06F9)){ 'NU' }
elseif(($codepoint -ge 0x06FA) -and ($codepoint -le 0x06FC)){ 'AL' }
elseif(($codepoint -ge 0x06FD) -and ($codepoint -le 0x06FE)){ 'AL' }
elseif($codepoint -eq 0x06FF) { 'AL' }
elseif(($codepoint -ge 0x0700) -and ($codepoint -le 0x070D)){ 'AL' }
elseif($codepoint -eq 0x070F) { 'AL' }
elseif($codepoint -eq 0x0710) { 'AL' }
elseif($codepoint -eq 0x0711) { 'CM' }
elseif(($codepoint -ge 0x0712) -and ($codepoint -le 0x072F)){ 'AL' }
elseif(($codepoint -ge 0x0730) -and ($codepoint -le 0x074A)){ 'CM' }
elseif(($codepoint -ge 0x074D) -and ($codepoint -le 0x074F)){ 'AL' }
elseif(($codepoint -ge 0x0750) -and ($codepoint -le 0x077F)){ 'AL' }
elseif(($codepoint -ge 0x0780) -and ($codepoint -le 0x07A5)){ 'AL' }
elseif(($codepoint -ge 0x07A6) -and ($codepoint -le 0x07B0)){ 'CM' }
elseif($codepoint -eq 0x07B1) { 'AL' }
elseif(($codepoint -ge 0x07C0) -and ($codepoint -le 0x07C9)){ 'NU' }
elseif(($codepoint -ge 0x07CA) -and ($codepoint -le 0x07EA)){ 'AL' }
elseif(($codepoint -ge 0x07EB) -and ($codepoint -le 0x07F3)){ 'CM' }
elseif(($codepoint -ge 0x07F4) -and ($codepoint -le 0x07F5)){ 'AL' }
elseif($codepoint -eq 0x07F6) { 'AL' }
elseif($codepoint -eq 0x07F7) { 'AL' }
elseif($codepoint -eq 0x07F8) { 'IS' }
elseif($codepoint -eq 0x07F9) { 'EX' }
elseif($codepoint -eq 0x07FA) { 'AL' }
elseif(($codepoint -ge 0x0800) -and ($codepoint -le 0x0815)){ 'AL' }
elseif(($codepoint -ge 0x0816) -and ($codepoint -le 0x0819)){ 'CM' }
elseif($codepoint -eq 0x081A) { 'AL' }
elseif(($codepoint -ge 0x081B) -and ($codepoint -le 0x0823)){ 'CM' }
elseif($codepoint -eq 0x0824) { 'AL' }
elseif(($codepoint -ge 0x0825) -and ($codepoint -le 0x0827)){ 'CM' }
elseif($codepoint -eq 0x0828) { 'AL' }
elseif(($codepoint -ge 0x0829) -and ($codepoint -le 0x082D)){ 'CM' }
elseif(($codepoint -ge 0x0830) -and ($codepoint -le 0x083E)){ 'AL' }
elseif(($codepoint -ge 0x0840) -and ($codepoint -le 0x0858)){ 'AL' }
elseif(($codepoint -ge 0x0859) -and ($codepoint -le 0x085B)){ 'CM' }
elseif($codepoint -eq 0x085E) { 'AL' }
elseif(($codepoint -ge 0x0860) -and ($codepoint -le 0x086A)){ 'AL' }
elseif(($codepoint -ge 0x08A0) -and ($codepoint -le 0x08B4)){ 'AL' }
elseif(($codepoint -ge 0x08B6) -and ($codepoint -le 0x08BD)){ 'AL' }
elseif(($codepoint -ge 0x08D4) -and ($codepoint -le 0x08E1)){ 'CM' }
elseif($codepoint -eq 0x08E2) { 'AL' }
elseif(($codepoint -ge 0x08E3) -and ($codepoint -le 0x08FF)){ 'CM' }
elseif(($codepoint -ge 0x0900) -and ($codepoint -le 0x0902)){ 'CM' }
elseif($codepoint -eq 0x0903) { 'CM' }
elseif(($codepoint -ge 0x0904) -and ($codepoint -le 0x0939)){ 'AL' }
elseif($codepoint -eq 0x093A) { 'CM' }
elseif($codepoint -eq 0x093B) { 'CM' }
elseif($codepoint -eq 0x093C) { 'CM' }
elseif($codepoint -eq 0x093D) { 'AL' }
elseif(($codepoint -ge 0x093E) -and ($codepoint -le 0x0940)){ 'CM' }
elseif(($codepoint -ge 0x0941) -and ($codepoint -le 0x0948)){ 'CM' }
elseif(($codepoint -ge 0x0949) -and ($codepoint -le 0x094C)){ 'CM' }
elseif($codepoint -eq 0x094D) { 'CM' }
elseif(($codepoint -ge 0x094E) -and ($codepoint -le 0x094F)){ 'CM' }
elseif($codepoint -eq 0x0950) { 'AL' }
elseif(($codepoint -ge 0x0951) -and ($codepoint -le 0x0957)){ 'CM' }
elseif(($codepoint -ge 0x0958) -and ($codepoint -le 0x0961)){ 'AL' }
elseif(($codepoint -ge 0x0962) -and ($codepoint -le 0x0963)){ 'CM' }
elseif(($codepoint -ge 0x0964) -and ($codepoint -le 0x0965)){ 'BA' }
elseif(($codepoint -ge 0x0966) -and ($codepoint -le 0x096F)){ 'NU' }
elseif($codepoint -eq 0x0970) { 'AL' }
elseif($codepoint -eq 0x0971) { 'AL' }
elseif(($codepoint -ge 0x0972) -and ($codepoint -le 0x097F)){ 'AL' }
elseif($codepoint -eq 0x0980) { 'AL' }
elseif($codepoint -eq 0x0981) { 'CM' }
elseif(($codepoint -ge 0x0982) -and ($codepoint -le 0x0983)){ 'CM' }
elseif(($codepoint -ge 0x0985) -and ($codepoint -le 0x098C)){ 'AL' }
elseif(($codepoint -ge 0x098F) -and ($codepoint -le 0x0990)){ 'AL' }
elseif(($codepoint -ge 0x0993) -and ($codepoint -le 0x09A8)){ 'AL' }
elseif(($codepoint -ge 0x09AA) -and ($codepoint -le 0x09B0)){ 'AL' }
elseif($codepoint -eq 0x09B2) { 'AL' }
elseif(($codepoint -ge 0x09B6) -and ($codepoint -le 0x09B9)){ 'AL' }
elseif($codepoint -eq 0x09BC) { 'CM' }
elseif($codepoint -eq 0x09BD) { 'AL' }
elseif(($codepoint -ge 0x09BE) -and ($codepoint -le 0x09C0)){ 'CM' }
elseif(($codepoint -ge 0x09C1) -and ($codepoint -le 0x09C4)){ 'CM' }
elseif(($codepoint -ge 0x09C7) -and ($codepoint -le 0x09C8)){ 'CM' }
elseif(($codepoint -ge 0x09CB) -and ($codepoint -le 0x09CC)){ 'CM' }
elseif($codepoint -eq 0x09CD) { 'CM' }
elseif($codepoint -eq 0x09CE) { 'AL' }
elseif($codepoint -eq 0x09D7) { 'CM' }
elseif(($codepoint -ge 0x09DC) -and ($codepoint -le 0x09DD)){ 'AL' }
elseif(($codepoint -ge 0x09DF) -and ($codepoint -le 0x09E1)){ 'AL' }
elseif(($codepoint -ge 0x09E2) -and ($codepoint -le 0x09E3)){ 'CM' }
elseif(($codepoint -ge 0x09E6) -and ($codepoint -le 0x09EF)){ 'NU' }
elseif(($codepoint -ge 0x09F0) -and ($codepoint -le 0x09F1)){ 'AL' }
elseif(($codepoint -ge 0x09F2) -and ($codepoint -le 0x09F3)){ 'PO' }
elseif(($codepoint -ge 0x09F4) -and ($codepoint -le 0x09F8)){ 'AL' }
elseif($codepoint -eq 0x09F9) { 'PO' }
elseif($codepoint -eq 0x09FA) { 'AL' }
elseif($codepoint -eq 0x09FB) { 'PR' }
elseif($codepoint -eq 0x09FC) { 'AL' }
elseif($codepoint -eq 0x09FD) { 'AL' }
elseif(($codepoint -ge 0x0A01) -and ($codepoint -le 0x0A02)){ 'CM' }
elseif($codepoint -eq 0x0A03) { 'CM' }
elseif(($codepoint -ge 0x0A05) -and ($codepoint -le 0x0A0A)){ 'AL' }
elseif(($codepoint -ge 0x0A0F) -and ($codepoint -le 0x0A10)){ 'AL' }
elseif(($codepoint -ge 0x0A13) -and ($codepoint -le 0x0A28)){ 'AL' }
elseif(($codepoint -ge 0x0A2A) -and ($codepoint -le 0x0A30)){ 'AL' }
elseif(($codepoint -ge 0x0A32) -and ($codepoint -le 0x0A33)){ 'AL' }
elseif(($codepoint -ge 0x0A35) -and ($codepoint -le 0x0A36)){ 'AL' }
elseif(($codepoint -ge 0x0A38) -and ($codepoint -le 0x0A39)){ 'AL' }
elseif($codepoint -eq 0x0A3C) { 'CM' }
elseif(($codepoint -ge 0x0A3E) -and ($codepoint -le 0x0A40)){ 'CM' }
elseif(($codepoint -ge 0x0A41) -and ($codepoint -le 0x0A42)){ 'CM' }
elseif(($codepoint -ge 0x0A47) -and ($codepoint -le 0x0A48)){ 'CM' }
elseif(($codepoint -ge 0x0A4B) -and ($codepoint -le 0x0A4D)){ 'CM' }
elseif($codepoint -eq 0x0A51) { 'CM' }
elseif(($codepoint -ge 0x0A59) -and ($codepoint -le 0x0A5C)){ 'AL' }
elseif($codepoint -eq 0x0A5E) { 'AL' }
elseif(($codepoint -ge 0x0A66) -and ($codepoint -le 0x0A6F)){ 'NU' }
elseif(($codepoint -ge 0x0A70) -and ($codepoint -le 0x0A71)){ 'CM' }
elseif(($codepoint -ge 0x0A72) -and ($codepoint -le 0x0A74)){ 'AL' }
elseif($codepoint -eq 0x0A75) { 'CM' }
elseif(($codepoint -ge 0x0A81) -and ($codepoint -le 0x0A82)){ 'CM' }
elseif($codepoint -eq 0x0A83) { 'CM' }
elseif(($codepoint -ge 0x0A85) -and ($codepoint -le 0x0A8D)){ 'AL' }
elseif(($codepoint -ge 0x0A8F) -and ($codepoint -le 0x0A91)){ 'AL' }
elseif(($codepoint -ge 0x0A93) -and ($codepoint -le 0x0AA8)){ 'AL' }
elseif(($codepoint -ge 0x0AAA) -and ($codepoint -le 0x0AB0)){ 'AL' }
elseif(($codepoint -ge 0x0AB2) -and ($codepoint -le 0x0AB3)){ 'AL' }
elseif(($codepoint -ge 0x0AB5) -and ($codepoint -le 0x0AB9)){ 'AL' }
elseif($codepoint -eq 0x0ABC) { 'CM' }
elseif($codepoint -eq 0x0ABD) { 'AL' }
elseif(($codepoint -ge 0x0ABE) -and ($codepoint -le 0x0AC0)){ 'CM' }
elseif(($codepoint -ge 0x0AC1) -and ($codepoint -le 0x0AC5)){ 'CM' }
elseif(($codepoint -ge 0x0AC7) -and ($codepoint -le 0x0AC8)){ 'CM' }
elseif($codepoint -eq 0x0AC9) { 'CM' }
elseif(($codepoint -ge 0x0ACB) -and ($codepoint -le 0x0ACC)){ 'CM' }
elseif($codepoint -eq 0x0ACD) { 'CM' }
elseif($codepoint -eq 0x0AD0) { 'AL' }
elseif(($codepoint -ge 0x0AE0) -and ($codepoint -le 0x0AE1)){ 'AL' }
elseif(($codepoint -ge 0x0AE2) -and ($codepoint -le 0x0AE3)){ 'CM' }
elseif(($codepoint -ge 0x0AE6) -and ($codepoint -le 0x0AEF)){ 'NU' }
elseif($codepoint -eq 0x0AF0) { 'AL' }
elseif($codepoint -eq 0x0AF1) { 'PR' }
elseif($codepoint -eq 0x0AF9) { 'AL' }
elseif(($codepoint -ge 0x0AFA) -and ($codepoint -le 0x0AFF)){ 'CM' }
elseif($codepoint -eq 0x0B01) { 'CM' }
elseif(($codepoint -ge 0x0B02) -and ($codepoint -le 0x0B03)){ 'CM' }
elseif(($codepoint -ge 0x0B05) -and ($codepoint -le 0x0B0C)){ 'AL' }
elseif(($codepoint -ge 0x0B0F) -and ($codepoint -le 0x0B10)){ 'AL' }
elseif(($codepoint -ge 0x0B13) -and ($codepoint -le 0x0B28)){ 'AL' }
elseif(($codepoint -ge 0x0B2A) -and ($codepoint -le 0x0B30)){ 'AL' }
elseif(($codepoint -ge 0x0B32) -and ($codepoint -le 0x0B33)){ 'AL' }
elseif(($codepoint -ge 0x0B35) -and ($codepoint -le 0x0B39)){ 'AL' }
elseif($codepoint -eq 0x0B3C) { 'CM' }
elseif($codepoint -eq 0x0B3D) { 'AL' }
elseif($codepoint -eq 0x0B3E) { 'CM' }
elseif($codepoint -eq 0x0B3F) { 'CM' }
elseif($codepoint -eq 0x0B40) { 'CM' }
elseif(($codepoint -ge 0x0B41) -and ($codepoint -le 0x0B44)){ 'CM' }
elseif(($codepoint -ge 0x0B47) -and ($codepoint -le 0x0B48)){ 'CM' }
elseif(($codepoint -ge 0x0B4B) -and ($codepoint -le 0x0B4C)){ 'CM' }
elseif($codepoint -eq 0x0B4D) { 'CM' }
elseif($codepoint -eq 0x0B56) { 'CM' }
elseif($codepoint -eq 0x0B57) { 'CM' }
elseif(($codepoint -ge 0x0B5C) -and ($codepoint -le 0x0B5D)){ 'AL' }
elseif(($codepoint -ge 0x0B5F) -and ($codepoint -le 0x0B61)){ 'AL' }
elseif(($codepoint -ge 0x0B62) -and ($codepoint -le 0x0B63)){ 'CM' }
elseif(($codepoint -ge 0x0B66) -and ($codepoint -le 0x0B6F)){ 'NU' }
elseif($codepoint -eq 0x0B70) { 'AL' }
elseif($codepoint -eq 0x0B71) { 'AL' }
elseif(($codepoint -ge 0x0B72) -and ($codepoint -le 0x0B77)){ 'AL' }
elseif($codepoint -eq 0x0B82) { 'CM' }
elseif($codepoint -eq 0x0B83) { 'AL' }
elseif(($codepoint -ge 0x0B85) -and ($codepoint -le 0x0B8A)){ 'AL' }
elseif(($codepoint -ge 0x0B8E) -and ($codepoint -le 0x0B90)){ 'AL' }
elseif(($codepoint -ge 0x0B92) -and ($codepoint -le 0x0B95)){ 'AL' }
elseif(($codepoint -ge 0x0B99) -and ($codepoint -le 0x0B9A)){ 'AL' }
elseif($codepoint -eq 0x0B9C) { 'AL' }
elseif(($codepoint -ge 0x0B9E) -and ($codepoint -le 0x0B9F)){ 'AL' }
elseif(($codepoint -ge 0x0BA3) -and ($codepoint -le 0x0BA4)){ 'AL' }
elseif(($codepoint -ge 0x0BA8) -and ($codepoint -le 0x0BAA)){ 'AL' }
elseif(($codepoint -ge 0x0BAE) -and ($codepoint -le 0x0BB9)){ 'AL' }
elseif(($codepoint -ge 0x0BBE) -and ($codepoint -le 0x0BBF)){ 'CM' }
elseif($codepoint -eq 0x0BC0) { 'CM' }
elseif(($codepoint -ge 0x0BC1) -and ($codepoint -le 0x0BC2)){ 'CM' }
elseif(($codepoint -ge 0x0BC6) -and ($codepoint -le 0x0BC8)){ 'CM' }
elseif(($codepoint -ge 0x0BCA) -and ($codepoint -le 0x0BCC)){ 'CM' }
elseif($codepoint -eq 0x0BCD) { 'CM' }
elseif($codepoint -eq 0x0BD0) { 'AL' }
elseif($codepoint -eq 0x0BD7) { 'CM' }
elseif(($codepoint -ge 0x0BE6) -and ($codepoint -le 0x0BEF)){ 'NU' }
elseif(($codepoint -ge 0x0BF0) -and ($codepoint -le 0x0BF2)){ 'AL' }
elseif(($codepoint -ge 0x0BF3) -and ($codepoint -le 0x0BF8)){ 'AL' }
elseif($codepoint -eq 0x0BF9) { 'PR' }
elseif($codepoint -eq 0x0BFA) { 'AL' }
elseif($codepoint -eq 0x0C00) { 'CM' }
elseif(($codepoint -ge 0x0C01) -and ($codepoint -le 0x0C03)){ 'CM' }
elseif(($codepoint -ge 0x0C05) -and ($codepoint -le 0x0C0C)){ 'AL' }
elseif(($codepoint -ge 0x0C0E) -and ($codepoint -le 0x0C10)){ 'AL' }
elseif(($codepoint -ge 0x0C12) -and ($codepoint -le 0x0C28)){ 'AL' }
elseif(($codepoint -ge 0x0C2A) -and ($codepoint -le 0x0C39)){ 'AL' }
elseif($codepoint -eq 0x0C3D) { 'AL' }
elseif(($codepoint -ge 0x0C3E) -and ($codepoint -le 0x0C40)){ 'CM' }
elseif(($codepoint -ge 0x0C41) -and ($codepoint -le 0x0C44)){ 'CM' }
elseif(($codepoint -ge 0x0C46) -and ($codepoint -le 0x0C48)){ 'CM' }
elseif(($codepoint -ge 0x0C4A) -and ($codepoint -le 0x0C4D)){ 'CM' }
elseif(($codepoint -ge 0x0C55) -and ($codepoint -le 0x0C56)){ 'CM' }
elseif(($codepoint -ge 0x0C58) -and ($codepoint -le 0x0C5A)){ 'AL' }
elseif(($codepoint -ge 0x0C60) -and ($codepoint -le 0x0C61)){ 'AL' }
elseif(($codepoint -ge 0x0C62) -and ($codepoint -le 0x0C63)){ 'CM' }
elseif(($codepoint -ge 0x0C66) -and ($codepoint -le 0x0C6F)){ 'NU' }
elseif(($codepoint -ge 0x0C78) -and ($codepoint -le 0x0C7E)){ 'AL' }
elseif($codepoint -eq 0x0C7F) { 'AL' }
elseif($codepoint -eq 0x0C80) { 'AL' }
elseif($codepoint -eq 0x0C81) { 'CM' }
elseif(($codepoint -ge 0x0C82) -and ($codepoint -le 0x0C83)){ 'CM' }
elseif(($codepoint -ge 0x0C85) -and ($codepoint -le 0x0C8C)){ 'AL' }
elseif(($codepoint -ge 0x0C8E) -and ($codepoint -le 0x0C90)){ 'AL' }
elseif(($codepoint -ge 0x0C92) -and ($codepoint -le 0x0CA8)){ 'AL' }
elseif(($codepoint -ge 0x0CAA) -and ($codepoint -le 0x0CB3)){ 'AL' }
elseif(($codepoint -ge 0x0CB5) -and ($codepoint -le 0x0CB9)){ 'AL' }
elseif($codepoint -eq 0x0CBC) { 'CM' }
elseif($codepoint -eq 0x0CBD) { 'AL' }
elseif($codepoint -eq 0x0CBE) { 'CM' }
elseif($codepoint -eq 0x0CBF) { 'CM' }
elseif(($codepoint -ge 0x0CC0) -and ($codepoint -le 0x0CC4)){ 'CM' }
elseif($codepoint -eq 0x0CC6) { 'CM' }
elseif(($codepoint -ge 0x0CC7) -and ($codepoint -le 0x0CC8)){ 'CM' }
elseif(($codepoint -ge 0x0CCA) -and ($codepoint -le 0x0CCB)){ 'CM' }
elseif(($codepoint -ge 0x0CCC) -and ($codepoint -le 0x0CCD)){ 'CM' }
elseif(($codepoint -ge 0x0CD5) -and ($codepoint -le 0x0CD6)){ 'CM' }
elseif($codepoint -eq 0x0CDE) { 'AL' }
elseif(($codepoint -ge 0x0CE0) -and ($codepoint -le 0x0CE1)){ 'AL' }
elseif(($codepoint -ge 0x0CE2) -and ($codepoint -le 0x0CE3)){ 'CM' }
elseif(($codepoint -ge 0x0CE6) -and ($codepoint -le 0x0CEF)){ 'NU' }
elseif(($codepoint -ge 0x0CF1) -and ($codepoint -le 0x0CF2)){ 'AL' }
elseif(($codepoint -ge 0x0D00) -and ($codepoint -le 0x0D01)){ 'CM' }
elseif(($codepoint -ge 0x0D02) -and ($codepoint -le 0x0D03)){ 'CM' }
elseif(($codepoint -ge 0x0D05) -and ($codepoint -le 0x0D0C)){ 'AL' }
elseif(($codepoint -ge 0x0D0E) -and ($codepoint -le 0x0D10)){ 'AL' }
elseif(($codepoint -ge 0x0D12) -and ($codepoint -le 0x0D3A)){ 'AL' }
elseif(($codepoint -ge 0x0D3B) -and ($codepoint -le 0x0D3C)){ 'CM' }
elseif($codepoint -eq 0x0D3D) { 'AL' }
elseif(($codepoint -ge 0x0D3E) -and ($codepoint -le 0x0D40)){ 'CM' }
elseif(($codepoint -ge 0x0D41) -and ($codepoint -le 0x0D44)){ 'CM' }
elseif(($codepoint -ge 0x0D46) -and ($codepoint -le 0x0D48)){ 'CM' }
elseif(($codepoint -ge 0x0D4A) -and ($codepoint -le 0x0D4C)){ 'CM' }
elseif($codepoint -eq 0x0D4D) { 'CM' }
elseif($codepoint -eq 0x0D4E) { 'AL' }
elseif($codepoint -eq 0x0D4F) { 'AL' }
elseif(($codepoint -ge 0x0D54) -and ($codepoint -le 0x0D56)){ 'AL' }
elseif($codepoint -eq 0x0D57) { 'CM' }
elseif(($codepoint -ge 0x0D58) -and ($codepoint -le 0x0D5E)){ 'AL' }
elseif(($codepoint -ge 0x0D5F) -and ($codepoint -le 0x0D61)){ 'AL' }
elseif(($codepoint -ge 0x0D62) -and ($codepoint -le 0x0D63)){ 'CM' }
elseif(($codepoint -ge 0x0D66) -and ($codepoint -le 0x0D6F)){ 'NU' }
elseif(($codepoint -ge 0x0D70) -and ($codepoint -le 0x0D78)){ 'AL' }
elseif($codepoint -eq 0x0D79) { 'PO' }
elseif(($codepoint -ge 0x0D7A) -and ($codepoint -le 0x0D7F)){ 'AL' }
elseif(($codepoint -ge 0x0D82) -and ($codepoint -le 0x0D83)){ 'CM' }
elseif(($codepoint -ge 0x0D85) -and ($codepoint -le 0x0D96)){ 'AL' }
elseif(($codepoint -ge 0x0D9A) -and ($codepoint -le 0x0DB1)){ 'AL' }
elseif(($codepoint -ge 0x0DB3) -and ($codepoint -le 0x0DBB)){ 'AL' }
elseif($codepoint -eq 0x0DBD) { 'AL' }
elseif(($codepoint -ge 0x0DC0) -and ($codepoint -le 0x0DC6)){ 'AL' }
elseif($codepoint -eq 0x0DCA) { 'CM' }
elseif(($codepoint -ge 0x0DCF) -and ($codepoint -le 0x0DD1)){ 'CM' }
elseif(($codepoint -ge 0x0DD2) -and ($codepoint -le 0x0DD4)){ 'CM' }
elseif($codepoint -eq 0x0DD6) { 'CM' }
elseif(($codepoint -ge 0x0DD8) -and ($codepoint -le 0x0DDF)){ 'CM' }
elseif(($codepoint -ge 0x0DE6) -and ($codepoint -le 0x0DEF)){ 'NU' }
elseif(($codepoint -ge 0x0DF2) -and ($codepoint -le 0x0DF3)){ 'CM' }
elseif($codepoint -eq 0x0DF4) { 'AL' }
elseif(($codepoint -ge 0x0E01) -and ($codepoint -le 0x0E30)){ 'SA' }
elseif($codepoint -eq 0x0E31) { 'SA' }
elseif(($codepoint -ge 0x0E32) -and ($codepoint -le 0x0E33)){ 'SA' }
elseif(($codepoint -ge 0x0E34) -and ($codepoint -le 0x0E3A)){ 'SA' }
elseif($codepoint -eq 0x0E3F) { 'PR' }
elseif(($codepoint -ge 0x0E40) -and ($codepoint -le 0x0E45)){ 'SA' }
elseif($codepoint -eq 0x0E46) { 'SA' }
elseif(($codepoint -ge 0x0E47) -and ($codepoint -le 0x0E4E)){ 'SA' }
elseif($codepoint -eq 0x0E4F) { 'AL' }
elseif(($codepoint -ge 0x0E50) -and ($codepoint -le 0x0E59)){ 'NU' }
elseif(($codepoint -ge 0x0E5A) -and ($codepoint -le 0x0E5B)){ 'BA' }
elseif(($codepoint -ge 0x0E81) -and ($codepoint -le 0x0E82)){ 'SA' }
elseif($codepoint -eq 0x0E84) { 'SA' }
elseif(($codepoint -ge 0x0E87) -and ($codepoint -le 0x0E88)){ 'SA' }
elseif($codepoint -eq 0x0E8A) { 'SA' }
elseif($codepoint -eq 0x0E8D) { 'SA' }
elseif(($codepoint -ge 0x0E94) -and ($codepoint -le 0x0E97)){ 'SA' }
elseif(($codepoint -ge 0x0E99) -and ($codepoint -le 0x0E9F)){ 'SA' }
elseif(($codepoint -ge 0x0EA1) -and ($codepoint -le 0x0EA3)){ 'SA' }
elseif($codepoint -eq 0x0EA5) { 'SA' }
elseif($codepoint -eq 0x0EA7) { 'SA' }
elseif(($codepoint -ge 0x0EAA) -and ($codepoint -le 0x0EAB)){ 'SA' }
elseif(($codepoint -ge 0x0EAD) -and ($codepoint -le 0x0EB0)){ 'SA' }
elseif($codepoint -eq 0x0EB1) { 'SA' }
elseif(($codepoint -ge 0x0EB2) -and ($codepoint -le 0x0EB3)){ 'SA' }
elseif(($codepoint -ge 0x0EB4) -and ($codepoint -le 0x0EB9)){ 'SA' }
elseif(($codepoint -ge 0x0EBB) -and ($codepoint -le 0x0EBC)){ 'SA' }
elseif($codepoint -eq 0x0EBD) { 'SA' }
elseif(($codepoint -ge 0x0EC0) -and ($codepoint -le 0x0EC4)){ 'SA' }
elseif($codepoint -eq 0x0EC6) { 'SA' }
elseif(($codepoint -ge 0x0EC8) -and ($codepoint -le 0x0ECD)){ 'SA' }
elseif(($codepoint -ge 0x0ED0) -and ($codepoint -le 0x0ED9)){ 'NU' }
elseif(($codepoint -ge 0x0EDC) -and ($codepoint -le 0x0EDF)){ 'SA' }
elseif($codepoint -eq 0x0F00) { 'AL' }
elseif(($codepoint -ge 0x0F01) -and ($codepoint -le 0x0F03)){ 'BB' }
elseif($codepoint -eq 0x0F04) { 'BB' }
elseif($codepoint -eq 0x0F05) { 'AL' }
elseif(($codepoint -ge 0x0F06) -and ($codepoint -le 0x0F07)){ 'BB' }
elseif($codepoint -eq 0x0F08) { 'GL' }
elseif(($codepoint -ge 0x0F09) -and ($codepoint -le 0x0F0A)){ 'BB' }
elseif($codepoint -eq 0x0F0B) { 'BA' }
elseif($codepoint -eq 0x0F0C) { 'GL' }
elseif(($codepoint -ge 0x0F0D) -and ($codepoint -le 0x0F11)){ 'EX' }
elseif($codepoint -eq 0x0F12) { 'GL' }
elseif($codepoint -eq 0x0F13) { 'AL' }
elseif($codepoint -eq 0x0F14) { 'EX' }
elseif(($codepoint -ge 0x0F15) -and ($codepoint -le 0x0F17)){ 'AL' }
elseif(($codepoint -ge 0x0F18) -and ($codepoint -le 0x0F19)){ 'CM' }
elseif(($codepoint -ge 0x0F1A) -and ($codepoint -le 0x0F1F)){ 'AL' }
elseif(($codepoint -ge 0x0F20) -and ($codepoint -le 0x0F29)){ 'NU' }
elseif(($codepoint -ge 0x0F2A) -and ($codepoint -le 0x0F33)){ 'AL' }
elseif($codepoint -eq 0x0F34) { 'BA' }
elseif($codepoint -eq 0x0F35) { 'CM' }
elseif($codepoint -eq 0x0F36) { 'AL' }
elseif($codepoint -eq 0x0F37) { 'CM' }
elseif($codepoint -eq 0x0F38) { 'AL' }
elseif($codepoint -eq 0x0F39) { 'CM' }
elseif($codepoint -eq 0x0F3A) { 'OP' }
elseif($codepoint -eq 0x0F3B) { 'CL' }
elseif($codepoint -eq 0x0F3C) { 'OP' }
elseif($codepoint -eq 0x0F3D) { 'CL' }
elseif(($codepoint -ge 0x0F3E) -and ($codepoint -le 0x0F3F)){ 'CM' }
elseif(($codepoint -ge 0x0F40) -and ($codepoint -le 0x0F47)){ 'AL' }
elseif(($codepoint -ge 0x0F49) -and ($codepoint -le 0x0F6C)){ 'AL' }
elseif(($codepoint -ge 0x0F71) -and ($codepoint -le 0x0F7E)){ 'CM' }
elseif($codepoint -eq 0x0F7F) { 'BA' }
elseif(($codepoint -ge 0x0F80) -and ($codepoint -le 0x0F84)){ 'CM' }
elseif($codepoint -eq 0x0F85) { 'BA' }
elseif(($codepoint -ge 0x0F86) -and ($codepoint -le 0x0F87)){ 'CM' }
elseif(($codepoint -ge 0x0F88) -and ($codepoint -le 0x0F8C)){ 'AL' }
elseif(($codepoint -ge 0x0F8D) -and ($codepoint -le 0x0F97)){ 'CM' }
elseif(($codepoint -ge 0x0F99) -and ($codepoint -le 0x0FBC)){ 'CM' }
elseif(($codepoint -ge 0x0FBE) -and ($codepoint -le 0x0FBF)){ 'BA' }
elseif(($codepoint -ge 0x0FC0) -and ($codepoint -le 0x0FC5)){ 'AL' }
elseif($codepoint -eq 0x0FC6) { 'CM' }
elseif(($codepoint -ge 0x0FC7) -and ($codepoint -le 0x0FCC)){ 'AL' }
elseif(($codepoint -ge 0x0FCE) -and ($codepoint -le 0x0FCF)){ 'AL' }
elseif(($codepoint -ge 0x0FD0) -and ($codepoint -le 0x0FD1)){ 'BB' }
elseif($codepoint -eq 0x0FD2) { 'BA' }
elseif($codepoint -eq 0x0FD3) { 'BB' }
elseif($codepoint -eq 0x0FD4) { 'AL' }
elseif(($codepoint -ge 0x0FD5) -and ($codepoint -le 0x0FD8)){ 'AL' }
elseif(($codepoint -ge 0x0FD9) -and ($codepoint -le 0x0FDA)){ 'GL' }
elseif(($codepoint -ge 0x1000) -and ($codepoint -le 0x102A)){ 'SA' }
elseif(($codepoint -ge 0x102B) -and ($codepoint -le 0x102C)){ 'SA' }
elseif(($codepoint -ge 0x102D) -and ($codepoint -le 0x1030)){ 'SA' }
elseif($codepoint -eq 0x1031) { 'SA' }
elseif(($codepoint -ge 0x1032) -and ($codepoint -le 0x1037)){ 'SA' }
elseif($codepoint -eq 0x1038) { 'SA' }
elseif(($codepoint -ge 0x1039) -and ($codepoint -le 0x103A)){ 'SA' }
elseif(($codepoint -ge 0x103B) -and ($codepoint -le 0x103C)){ 'SA' }
elseif(($codepoint -ge 0x103D) -and ($codepoint -le 0x103E)){ 'SA' }
elseif($codepoint -eq 0x103F) { 'SA' }
elseif(($codepoint -ge 0x1040) -and ($codepoint -le 0x1049)){ 'NU' }
elseif(($codepoint -ge 0x104A) -and ($codepoint -le 0x104B)){ 'BA' }
elseif(($codepoint -ge 0x104C) -and ($codepoint -le 0x104F)){ 'AL' }
elseif(($codepoint -ge 0x1050) -and ($codepoint -le 0x1055)){ 'SA' }
elseif(($codepoint -ge 0x1056) -and ($codepoint -le 0x1057)){ 'SA' }
elseif(($codepoint -ge 0x1058) -and ($codepoint -le 0x1059)){ 'SA' }
elseif(($codepoint -ge 0x105A) -and ($codepoint -le 0x105D)){ 'SA' }
elseif(($codepoint -ge 0x105E) -and ($codepoint -le 0x1060)){ 'SA' }
elseif($codepoint -eq 0x1061) { 'SA' }
elseif(($codepoint -ge 0x1062) -and ($codepoint -le 0x1064)){ 'SA' }
elseif(($codepoint -ge 0x1065) -and ($codepoint -le 0x1066)){ 'SA' }
elseif(($codepoint -ge 0x1067) -and ($codepoint -le 0x106D)){ 'SA' }
elseif(($codepoint -ge 0x106E) -and ($codepoint -le 0x1070)){ 'SA' }
elseif(($codepoint -ge 0x1071) -and ($codepoint -le 0x1074)){ 'SA' }
elseif(($codepoint -ge 0x1075) -and ($codepoint -le 0x1081)){ 'SA' }
elseif($codepoint -eq 0x1082) { 'SA' }
elseif(($codepoint -ge 0x1083) -and ($codepoint -le 0x1084)){ 'SA' }
elseif(($codepoint -ge 0x1085) -and ($codepoint -le 0x1086)){ 'SA' }
elseif(($codepoint -ge 0x1087) -and ($codepoint -le 0x108C)){ 'SA' }
elseif($codepoint -eq 0x108D) { 'SA' }
elseif($codepoint -eq 0x108E) { 'SA' }
elseif($codepoint -eq 0x108F) { 'SA' }
elseif(($codepoint -ge 0x1090) -and ($codepoint -le 0x1099)){ 'NU' }
elseif(($codepoint -ge 0x109A) -and ($codepoint -le 0x109C)){ 'SA' }
elseif($codepoint -eq 0x109D) { 'SA' }
elseif(($codepoint -ge 0x109E) -and ($codepoint -le 0x109F)){ 'SA' }
elseif(($codepoint -ge 0x10A0) -and ($codepoint -le 0x10C5)){ 'AL' }
elseif($codepoint -eq 0x10C7) { 'AL' }
elseif($codepoint -eq 0x10CD) { 'AL' }
elseif(($codepoint -ge 0x10D0) -and ($codepoint -le 0x10FA)){ 'AL' }
elseif($codepoint -eq 0x10FB) { 'AL' }
elseif($codepoint -eq 0x10FC) { 'AL' }
elseif(($codepoint -ge 0x10FD) -and ($codepoint -le 0x10FF)){ 'AL' }
elseif(($codepoint -ge 0x1100) -and ($codepoint -le 0x115F)){ 'JL' }
elseif(($codepoint -ge 0x1160) -and ($codepoint -le 0x11A7)){ 'JV' }
elseif(($codepoint -ge 0x11A8) -and ($codepoint -le 0x11FF)){ 'JT' }
elseif(($codepoint -ge 0x1200) -and ($codepoint -le 0x1248)){ 'AL' }
elseif(($codepoint -ge 0x124A) -and ($codepoint -le 0x124D)){ 'AL' }
elseif(($codepoint -ge 0x1250) -and ($codepoint -le 0x1256)){ 'AL' }
elseif($codepoint -eq 0x1258) { 'AL' }
elseif(($codepoint -ge 0x125A) -and ($codepoint -le 0x125D)){ 'AL' }
elseif(($codepoint -ge 0x1260) -and ($codepoint -le 0x1288)){ 'AL' }
elseif(($codepoint -ge 0x128A) -and ($codepoint -le 0x128D)){ 'AL' }
elseif(($codepoint -ge 0x1290) -and ($codepoint -le 0x12B0)){ 'AL' }
elseif(($codepoint -ge 0x12B2) -and ($codepoint -le 0x12B5)){ 'AL' }
elseif(($codepoint -ge 0x12B8) -and ($codepoint -le 0x12BE)){ 'AL' }
elseif($codepoint -eq 0x12C0) { 'AL' }
elseif(($codepoint -ge 0x12C2) -and ($codepoint -le 0x12C5)){ 'AL' }
elseif(($codepoint -ge 0x12C8) -and ($codepoint -le 0x12D6)){ 'AL' }
elseif(($codepoint -ge 0x12D8) -and ($codepoint -le 0x1310)){ 'AL' }
elseif(($codepoint -ge 0x1312) -and ($codepoint -le 0x1315)){ 'AL' }
elseif(($codepoint -ge 0x1318) -and ($codepoint -le 0x135A)){ 'AL' }
elseif(($codepoint -ge 0x135D) -and ($codepoint -le 0x135F)){ 'CM' }
elseif($codepoint -eq 0x1360) { 'AL' }
elseif($codepoint -eq 0x1361) { 'BA' }
elseif(($codepoint -ge 0x1362) -and ($codepoint -le 0x1368)){ 'AL' }
elseif(($codepoint -ge 0x1369) -and ($codepoint -le 0x137C)){ 'AL' }
elseif(($codepoint -ge 0x1380) -and ($codepoint -le 0x138F)){ 'AL' }
elseif(($codepoint -ge 0x1390) -and ($codepoint -le 0x1399)){ 'AL' }
elseif(($codepoint -ge 0x13A0) -and ($codepoint -le 0x13F5)){ 'AL' }
elseif(($codepoint -ge 0x13F8) -and ($codepoint -le 0x13FD)){ 'AL' }
elseif($codepoint -eq 0x1400) { 'BA' }
elseif(($codepoint -ge 0x1401) -and ($codepoint -le 0x166C)){ 'AL' }
elseif(($codepoint -ge 0x166D) -and ($codepoint -le 0x166E)){ 'AL' }
elseif(($codepoint -ge 0x166F) -and ($codepoint -le 0x167F)){ 'AL' }
elseif($codepoint -eq 0x1680) { 'BA' }
elseif(($codepoint -ge 0x1681) -and ($codepoint -le 0x169A)){ 'AL' }
elseif($codepoint -eq 0x169B) { 'OP' }
elseif($codepoint -eq 0x169C) { 'CL' }
elseif(($codepoint -ge 0x16A0) -and ($codepoint -le 0x16EA)){ 'AL' }
elseif(($codepoint -ge 0x16EB) -and ($codepoint -le 0x16ED)){ 'BA' }
elseif(($codepoint -ge 0x16EE) -and ($codepoint -le 0x16F0)){ 'AL' }
elseif(($codepoint -ge 0x16F1) -and ($codepoint -le 0x16F8)){ 'AL' }
elseif(($codepoint -ge 0x1700) -and ($codepoint -le 0x170C)){ 'AL' }
elseif(($codepoint -ge 0x170E) -and ($codepoint -le 0x1711)){ 'AL' }
elseif(($codepoint -ge 0x1712) -and ($codepoint -le 0x1714)){ 'CM' }
elseif(($codepoint -ge 0x1720) -and ($codepoint -le 0x1731)){ 'AL' }
elseif(($codepoint -ge 0x1732) -and ($codepoint -le 0x1734)){ 'CM' }
elseif(($codepoint -ge 0x1735) -and ($codepoint -le 0x1736)){ 'BA' }
elseif(($codepoint -ge 0x1740) -and ($codepoint -le 0x1751)){ 'AL' }
elseif(($codepoint -ge 0x1752) -and ($codepoint -le 0x1753)){ 'CM' }
elseif(($codepoint -ge 0x1760) -and ($codepoint -le 0x176C)){ 'AL' }
elseif(($codepoint -ge 0x176E) -and ($codepoint -le 0x1770)){ 'AL' }
elseif(($codepoint -ge 0x1772) -and ($codepoint -le 0x1773)){ 'CM' }
elseif(($codepoint -ge 0x1780) -and ($codepoint -le 0x17B3)){ 'SA' }
elseif(($codepoint -ge 0x17B4) -and ($codepoint -le 0x17B5)){ 'SA' }
elseif($codepoint -eq 0x17B6) { 'SA' }
elseif(($codepoint -ge 0x17B7) -and ($codepoint -le 0x17BD)){ 'SA' }
elseif(($codepoint -ge 0x17BE) -and ($codepoint -le 0x17C5)){ 'SA' }
elseif($codepoint -eq 0x17C6) { 'SA' }
elseif(($codepoint -ge 0x17C7) -and ($codepoint -le 0x17C8)){ 'SA' }
elseif(($codepoint -ge 0x17C9) -and ($codepoint -le 0x17D3)){ 'SA' }
elseif(($codepoint -ge 0x17D4) -and ($codepoint -le 0x17D5)){ 'BA' }
elseif($codepoint -eq 0x17D6) { 'NS' }
elseif($codepoint -eq 0x17D7) { 'SA' }
elseif($codepoint -eq 0x17D8) { 'BA' }
elseif($codepoint -eq 0x17D9) { 'AL' }
elseif($codepoint -eq 0x17DA) { 'BA' }
elseif($codepoint -eq 0x17DB) { 'PR' }
elseif($codepoint -eq 0x17DC) { 'SA' }
elseif($codepoint -eq 0x17DD) { 'SA' }
elseif(($codepoint -ge 0x17E0) -and ($codepoint -le 0x17E9)){ 'NU' }
elseif(($codepoint -ge 0x17F0) -and ($codepoint -le 0x17F9)){ 'AL' }
elseif(($codepoint -ge 0x1800) -and ($codepoint -le 0x1801)){ 'AL' }
elseif(($codepoint -ge 0x1802) -and ($codepoint -le 0x1803)){ 'EX' }
elseif(($codepoint -ge 0x1804) -and ($codepoint -le 0x1805)){ 'BA' }
elseif($codepoint -eq 0x1806) { 'BB' }
elseif($codepoint -eq 0x1807) { 'AL' }
elseif(($codepoint -ge 0x1808) -and ($codepoint -le 0x1809)){ 'EX' }
elseif($codepoint -eq 0x180A) { 'AL' }
elseif(($codepoint -ge 0x180B) -and ($codepoint -le 0x180D)){ 'CM' }
elseif($codepoint -eq 0x180E) { 'GL' }
elseif(($codepoint -ge 0x1810) -and ($codepoint -le 0x1819)){ 'NU' }
elseif(($codepoint -ge 0x1820) -and ($codepoint -le 0x1842)){ 'AL' }
elseif($codepoint -eq 0x1843) { 'AL' }
elseif(($codepoint -ge 0x1844) -and ($codepoint -le 0x1877)){ 'AL' }
elseif(($codepoint -ge 0x1880) -and ($codepoint -le 0x1884)){ 'AL' }
elseif(($codepoint -ge 0x1885) -and ($codepoint -le 0x1886)){ 'CM' }
elseif(($codepoint -ge 0x1887) -and ($codepoint -le 0x18A8)){ 'AL' }
elseif($codepoint -eq 0x18A9) { 'CM' }
elseif($codepoint -eq 0x18AA) { 'AL' }
elseif(($codepoint -ge 0x18B0) -and ($codepoint -le 0x18F5)){ 'AL' }
elseif(($codepoint -ge 0x1900) -and ($codepoint -le 0x191E)){ 'AL' }
elseif(($codepoint -ge 0x1920) -and ($codepoint -le 0x1922)){ 'CM' }
elseif(($codepoint -ge 0x1923) -and ($codepoint -le 0x1926)){ 'CM' }
elseif(($codepoint -ge 0x1927) -and ($codepoint -le 0x1928)){ 'CM' }
elseif(($codepoint -ge 0x1929) -and ($codepoint -le 0x192B)){ 'CM' }
elseif(($codepoint -ge 0x1930) -and ($codepoint -le 0x1931)){ 'CM' }
elseif($codepoint -eq 0x1932) { 'CM' }
elseif(($codepoint -ge 0x1933) -and ($codepoint -le 0x1938)){ 'CM' }
elseif(($codepoint -ge 0x1939) -and ($codepoint -le 0x193B)){ 'CM' }
elseif($codepoint -eq 0x1940) { 'AL' }
elseif(($codepoint -ge 0x1944) -and ($codepoint -le 0x1945)){ 'EX' }
elseif(($codepoint -ge 0x1946) -and ($codepoint -le 0x194F)){ 'NU' }
elseif(($codepoint -ge 0x1950) -and ($codepoint -le 0x196D)){ 'SA' }
elseif(($codepoint -ge 0x1970) -and ($codepoint -le 0x1974)){ 'SA' }
elseif(($codepoint -ge 0x1980) -and ($codepoint -le 0x19AB)){ 'SA' }
elseif(($codepoint -ge 0x19B0) -and ($codepoint -le 0x19C9)){ 'SA' }
elseif(($codepoint -ge 0x19D0) -and ($codepoint -le 0x19D9)){ 'NU' }
elseif($codepoint -eq 0x19DA) { 'SA' }
elseif(($codepoint -ge 0x19DE) -and ($codepoint -le 0x19DF)){ 'SA' }
elseif(($codepoint -ge 0x19E0) -and ($codepoint -le 0x19FF)){ 'AL' }
elseif(($codepoint -ge 0x1A00) -and ($codepoint -le 0x1A16)){ 'AL' }
elseif(($codepoint -ge 0x1A17) -and ($codepoint -le 0x1A18)){ 'CM' }
elseif(($codepoint -ge 0x1A19) -and ($codepoint -le 0x1A1A)){ 'CM' }
elseif($codepoint -eq 0x1A1B) { 'CM' }
elseif(($codepoint -ge 0x1A1E) -and ($codepoint -le 0x1A1F)){ 'AL' }
elseif(($codepoint -ge 0x1A20) -and ($codepoint -le 0x1A54)){ 'SA' }
elseif($codepoint -eq 0x1A55) { 'SA' }
elseif($codepoint -eq 0x1A56) { 'SA' }
elseif($codepoint -eq 0x1A57) { 'SA' }
elseif(($codepoint -ge 0x1A58) -and ($codepoint -le 0x1A5E)){ 'SA' }
elseif($codepoint -eq 0x1A60) { 'SA' }
elseif($codepoint -eq 0x1A61) { 'SA' }
elseif($codepoint -eq 0x1A62) { 'SA' }
elseif(($codepoint -ge 0x1A63) -and ($codepoint -le 0x1A64)){ 'SA' }
elseif(($codepoint -ge 0x1A65) -and ($codepoint -le 0x1A6C)){ 'SA' }
elseif(($codepoint -ge 0x1A6D) -and ($codepoint -le 0x1A72)){ 'SA' }
elseif(($codepoint -ge 0x1A73) -and ($codepoint -le 0x1A7C)){ 'SA' }
elseif($codepoint -eq 0x1A7F) { 'CM' }
elseif(($codepoint -ge 0x1A80) -and ($codepoint -le 0x1A89)){ 'NU' }
elseif(($codepoint -ge 0x1A90) -and ($codepoint -le 0x1A99)){ 'NU' }
elseif(($codepoint -ge 0x1AA0) -and ($codepoint -le 0x1AA6)){ 'SA' }
elseif($codepoint -eq 0x1AA7) { 'SA' }
elseif(($codepoint -ge 0x1AA8) -and ($codepoint -le 0x1AAD)){ 'SA' }
elseif(($codepoint -ge 0x1AB0) -and ($codepoint -le 0x1ABD)){ 'CM' }
elseif($codepoint -eq 0x1ABE) { 'CM' }
elseif(($codepoint -ge 0x1B00) -and ($codepoint -le 0x1B03)){ 'CM' }
elseif($codepoint -eq 0x1B04) { 'CM' }
elseif(($codepoint -ge 0x1B05) -and ($codepoint -le 0x1B33)){ 'AL' }
elseif($codepoint -eq 0x1B34) { 'CM' }
elseif($codepoint -eq 0x1B35) { 'CM' }
elseif(($codepoint -ge 0x1B36) -and ($codepoint -le 0x1B3A)){ 'CM' }
elseif($codepoint -eq 0x1B3B) { 'CM' }
elseif($codepoint -eq 0x1B3C) { 'CM' }
elseif(($codepoint -ge 0x1B3D) -and ($codepoint -le 0x1B41)){ 'CM' }
elseif($codepoint -eq 0x1B42) { 'CM' }
elseif(($codepoint -ge 0x1B43) -and ($codepoint -le 0x1B44)){ 'CM' }
elseif(($codepoint -ge 0x1B45) -and ($codepoint -le 0x1B4B)){ 'AL' }
elseif(($codepoint -ge 0x1B50) -and ($codepoint -le 0x1B59)){ 'NU' }
elseif(($codepoint -ge 0x1B5A) -and ($codepoint -le 0x1B5B)){ 'BA' }
elseif($codepoint -eq 0x1B5C) { 'AL' }
elseif(($codepoint -ge 0x1B5D) -and ($codepoint -le 0x1B60)){ 'BA' }
elseif(($codepoint -ge 0x1B61) -and ($codepoint -le 0x1B6A)){ 'AL' }
elseif(($codepoint -ge 0x1B6B) -and ($codepoint -le 0x1B73)){ 'CM' }
elseif(($codepoint -ge 0x1B74) -and ($codepoint -le 0x1B7C)){ 'AL' }
elseif(($codepoint -ge 0x1B80) -and ($codepoint -le 0x1B81)){ 'CM' }
elseif($codepoint -eq 0x1B82) { 'CM' }
elseif(($codepoint -ge 0x1B83) -and ($codepoint -le 0x1BA0)){ 'AL' }
elseif($codepoint -eq 0x1BA1) { 'CM' }
elseif(($codepoint -ge 0x1BA2) -and ($codepoint -le 0x1BA5)){ 'CM' }
elseif(($codepoint -ge 0x1BA6) -and ($codepoint -le 0x1BA7)){ 'CM' }
elseif(($codepoint -ge 0x1BA8) -and ($codepoint -le 0x1BA9)){ 'CM' }
elseif($codepoint -eq 0x1BAA) { 'CM' }
elseif(($codepoint -ge 0x1BAB) -and ($codepoint -le 0x1BAD)){ 'CM' }
elseif(($codepoint -ge 0x1BAE) -and ($codepoint -le 0x1BAF)){ 'AL' }
elseif(($codepoint -ge 0x1BB0) -and ($codepoint -le 0x1BB9)){ 'NU' }
elseif(($codepoint -ge 0x1BBA) -and ($codepoint -le 0x1BBF)){ 'AL' }
elseif(($codepoint -ge 0x1BC0) -and ($codepoint -le 0x1BE5)){ 'AL' }
elseif($codepoint -eq 0x1BE6) { 'CM' }
elseif($codepoint -eq 0x1BE7) { 'CM' }
elseif(($codepoint -ge 0x1BE8) -and ($codepoint -le 0x1BE9)){ 'CM' }
elseif(($codepoint -ge 0x1BEA) -and ($codepoint -le 0x1BEC)){ 'CM' }
elseif($codepoint -eq 0x1BED) { 'CM' }
elseif($codepoint -eq 0x1BEE) { 'CM' }
elseif(($codepoint -ge 0x1BEF) -and ($codepoint -le 0x1BF1)){ 'CM' }
elseif(($codepoint -ge 0x1BF2) -and ($codepoint -le 0x1BF3)){ 'CM' }
elseif(($codepoint -ge 0x1BFC) -and ($codepoint -le 0x1BFF)){ 'AL' }
elseif(($codepoint -ge 0x1C00) -and ($codepoint -le 0x1C23)){ 'AL' }
elseif(($codepoint -ge 0x1C24) -and ($codepoint -le 0x1C2B)){ 'CM' }
elseif(($codepoint -ge 0x1C2C) -and ($codepoint -le 0x1C33)){ 'CM' }
elseif(($codepoint -ge 0x1C34) -and ($codepoint -le 0x1C35)){ 'CM' }
elseif(($codepoint -ge 0x1C36) -and ($codepoint -le 0x1C37)){ 'CM' }
elseif(($codepoint -ge 0x1C3B) -and ($codepoint -le 0x1C3F)){ 'BA' }
elseif(($codepoint -ge 0x1C40) -and ($codepoint -le 0x1C49)){ 'NU' }
elseif(($codepoint -ge 0x1C4D) -and ($codepoint -le 0x1C4F)){ 'AL' }
elseif(($codepoint -ge 0x1C50) -and ($codepoint -le 0x1C59)){ 'NU' }
elseif(($codepoint -ge 0x1C5A) -and ($codepoint -le 0x1C77)){ 'AL' }
elseif(($codepoint -ge 0x1C78) -and ($codepoint -le 0x1C7D)){ 'AL' }
elseif(($codepoint -ge 0x1C7E) -and ($codepoint -le 0x1C7F)){ 'BA' }
elseif(($codepoint -ge 0x1C80) -and ($codepoint -le 0x1C88)){ 'AL' }
elseif(($codepoint -ge 0x1CC0) -and ($codepoint -le 0x1CC7)){ 'AL' }
elseif(($codepoint -ge 0x1CD0) -and ($codepoint -le 0x1CD2)){ 'CM' }
elseif($codepoint -eq 0x1CD3) { 'AL' }
elseif(($codepoint -ge 0x1CD4) -and ($codepoint -le 0x1CE0)){ 'CM' }
elseif($codepoint -eq 0x1CE1) { 'CM' }
elseif(($codepoint -ge 0x1CE2) -and ($codepoint -le 0x1CE8)){ 'CM' }
elseif(($codepoint -ge 0x1CE9) -and ($codepoint -le 0x1CEC)){ 'AL' }
elseif($codepoint -eq 0x1CED) { 'CM' }
elseif(($codepoint -ge 0x1CEE) -and ($codepoint -le 0x1CF1)){ 'AL' }
elseif(($codepoint -ge 0x1CF2) -and ($codepoint -le 0x1CF3)){ 'CM' }
elseif($codepoint -eq 0x1CF4) { 'CM' }
elseif(($codepoint -ge 0x1CF5) -and ($codepoint -le 0x1CF6)){ 'AL' }
elseif($codepoint -eq 0x1CF7) { 'CM' }
elseif(($codepoint -ge 0x1CF8) -and ($codepoint -le 0x1CF9)){ 'CM' }
elseif(($codepoint -ge 0x1D00) -and ($codepoint -le 0x1D2B)){ 'AL' }
elseif(($codepoint -ge 0x1D2C) -and ($codepoint -le 0x1D6A)){ 'AL' }
elseif(($codepoint -ge 0x1D6B) -and ($codepoint -le 0x1D77)){ 'AL' }
elseif($codepoint -eq 0x1D78) { 'AL' }
elseif(($codepoint -ge 0x1D79) -and ($codepoint -le 0x1D7F)){ 'AL' }
elseif(($codepoint -ge 0x1D80) -and ($codepoint -le 0x1D9A)){ 'AL' }
elseif(($codepoint -ge 0x1D9B) -and ($codepoint -le 0x1DBF)){ 'AL' }
elseif(($codepoint -ge 0x1DC0) -and ($codepoint -le 0x1DF9)){ 'CM' }
elseif(($codepoint -ge 0x1DFB) -and ($codepoint -le 0x1DFF)){ 'CM' }
elseif(($codepoint -ge 0x1E00) -and ($codepoint -le 0x1EFF)){ 'AL' }
elseif(($codepoint -ge 0x1F00) -and ($codepoint -le 0x1F15)){ 'AL' }
elseif(($codepoint -ge 0x1F18) -and ($codepoint -le 0x1F1D)){ 'AL' }
elseif(($codepoint -ge 0x1F20) -and ($codepoint -le 0x1F45)){ 'AL' }
elseif(($codepoint -ge 0x1F48) -and ($codepoint -le 0x1F4D)){ 'AL' }
elseif(($codepoint -ge 0x1F50) -and ($codepoint -le 0x1F57)){ 'AL' }
elseif($codepoint -eq 0x1F59) { 'AL' }
elseif($codepoint -eq 0x1F5B) { 'AL' }
elseif($codepoint -eq 0x1F5D) { 'AL' }
elseif(($codepoint -ge 0x1F5F) -and ($codepoint -le 0x1F7D)){ 'AL' }
elseif(($codepoint -ge 0x1F80) -and ($codepoint -le 0x1FB4)){ 'AL' }
elseif(($codepoint -ge 0x1FB6) -and ($codepoint -le 0x1FBC)){ 'AL' }
elseif($codepoint -eq 0x1FBD) { 'AL' }
elseif($codepoint -eq 0x1FBE) { 'AL' }
elseif(($codepoint -ge 0x1FBF) -and ($codepoint -le 0x1FC1)){ 'AL' }
elseif(($codepoint -ge 0x1FC2) -and ($codepoint -le 0x1FC4)){ 'AL' }
elseif(($codepoint -ge 0x1FC6) -and ($codepoint -le 0x1FCC)){ 'AL' }
elseif(($codepoint -ge 0x1FCD) -and ($codepoint -le 0x1FCF)){ 'AL' }
elseif(($codepoint -ge 0x1FD0) -and ($codepoint -le 0x1FD3)){ 'AL' }
elseif(($codepoint -ge 0x1FD6) -and ($codepoint -le 0x1FDB)){ 'AL' }
elseif(($codepoint -ge 0x1FDD) -and ($codepoint -le 0x1FDF)){ 'AL' }
elseif(($codepoint -ge 0x1FE0) -and ($codepoint -le 0x1FEC)){ 'AL' }
elseif(($codepoint -ge 0x1FED) -and ($codepoint -le 0x1FEF)){ 'AL' }
elseif(($codepoint -ge 0x1FF2) -and ($codepoint -le 0x1FF4)){ 'AL' }
elseif(($codepoint -ge 0x1FF6) -and ($codepoint -le 0x1FFC)){ 'AL' }
elseif($codepoint -eq 0x1FFD) { 'BB' }
elseif($codepoint -eq 0x1FFE) { 'AL' }
elseif(($codepoint -ge 0x2000) -and ($codepoint -le 0x2006)){ 'BA' }
elseif($codepoint -eq 0x2007) { 'GL' }
elseif(($codepoint -ge 0x2008) -and ($codepoint -le 0x200A)){ 'BA' }
elseif($codepoint -eq 0x200B) { 'ZW' }
elseif($codepoint -eq 0x200C) { 'CM' }
elseif($codepoint -eq 0x200D) { 'ZWJ' }
elseif(($codepoint -ge 0x200E) -and ($codepoint -le 0x200F)){ 'CM' }
elseif($codepoint -eq 0x2010) { 'BA' }
elseif($codepoint -eq 0x2011) { 'GL' }
elseif(($codepoint -ge 0x2012) -and ($codepoint -le 0x2013)){ 'BA' }
elseif($codepoint -eq 0x2015) { 'AI' }
elseif($codepoint -eq 0x2016) { 'AI' }
elseif($codepoint -eq 0x2017) { 'AL' }
elseif($codepoint -eq 0x2018) { 'QU' }
elseif($codepoint -eq 0x2019) { 'QU' }
elseif($codepoint -eq 0x201A) { 'OP' }
elseif(($codepoint -ge 0x201B) -and ($codepoint -le 0x201C)){ 'QU' }
elseif($codepoint -eq 0x201D) { 'QU' }
elseif($codepoint -eq 0x201E) { 'OP' }
elseif($codepoint -eq 0x201F) { 'QU' }
elseif(($codepoint -ge 0x2020) -and ($codepoint -le 0x2021)){ 'AI' }
elseif(($codepoint -ge 0x2022) -and ($codepoint -le 0x2023)){ 'AL' }
elseif(($codepoint -ge 0x2024) -and ($codepoint -le 0x2026)){ 'IN' }
elseif($codepoint -eq 0x2027) { 'BA' }
elseif($codepoint -eq 0x2028) { 'BK' }
elseif($codepoint -eq 0x2029) { 'BK' }
elseif(($codepoint -ge 0x202A) -and ($codepoint -le 0x202E)){ 'CM' }
elseif($codepoint -eq 0x202F) { 'GL' }
elseif(($codepoint -ge 0x2030) -and ($codepoint -le 0x2037)){ 'PO' }
elseif($codepoint -eq 0x2038) { 'AL' }
elseif($codepoint -eq 0x2039) { 'QU' }
elseif($codepoint -eq 0x203A) { 'QU' }
elseif($codepoint -eq 0x203B) { 'AI' }
elseif(($codepoint -ge 0x203C) -and ($codepoint -le 0x203D)){ 'NS' }
elseif($codepoint -eq 0x203E) { 'AL' }
elseif(($codepoint -ge 0x203F) -and ($codepoint -le 0x2040)){ 'AL' }
elseif(($codepoint -ge 0x2041) -and ($codepoint -le 0x2043)){ 'AL' }
elseif($codepoint -eq 0x2044) { 'IS' }
elseif($codepoint -eq 0x2045) { 'OP' }
elseif($codepoint -eq 0x2046) { 'CL' }
elseif(($codepoint -ge 0x2047) -and ($codepoint -le 0x2049)){ 'NS' }
elseif(($codepoint -ge 0x204A) -and ($codepoint -le 0x2051)){ 'AL' }
elseif($codepoint -eq 0x2052) { 'AL' }
elseif($codepoint -eq 0x2053) { 'AL' }
elseif($codepoint -eq 0x2054) { 'AL' }
elseif($codepoint -eq 0x2055) { 'AL' }
elseif($codepoint -eq 0x2056) { 'BA' }
elseif($codepoint -eq 0x2057) { 'AL' }
elseif(($codepoint -ge 0x2058) -and ($codepoint -le 0x205B)){ 'BA' }
elseif($codepoint -eq 0x205C) { 'AL' }
elseif(($codepoint -ge 0x205D) -and ($codepoint -le 0x205E)){ 'BA' }
elseif($codepoint -eq 0x205F) { 'BA' }
elseif($codepoint -eq 0x2060) { 'WJ' }
elseif(($codepoint -ge 0x2061) -and ($codepoint -le 0x2064)){ 'AL' }
elseif(($codepoint -ge 0x2066) -and ($codepoint -le 0x206F)){ 'CM' }
elseif($codepoint -eq 0x2070) { 'AL' }
elseif($codepoint -eq 0x2071) { 'AL' }
elseif($codepoint -eq 0x2074) { 'AI' }
elseif(($codepoint -ge 0x2075) -and ($codepoint -le 0x2079)){ 'AL' }
elseif(($codepoint -ge 0x207A) -and ($codepoint -le 0x207C)){ 'AL' }
elseif($codepoint -eq 0x207D) { 'OP' }
elseif($codepoint -eq 0x207E) { 'CL' }
elseif($codepoint -eq 0x207F) { 'AI' }
elseif($codepoint -eq 0x2080) { 'AL' }
elseif(($codepoint -ge 0x2081) -and ($codepoint -le 0x2084)){ 'AI' }
elseif(($codepoint -ge 0x2085) -and ($codepoint -le 0x2089)){ 'AL' }
elseif(($codepoint -ge 0x208A) -and ($codepoint -le 0x208C)){ 'AL' }
elseif($codepoint -eq 0x208D) { 'OP' }
elseif($codepoint -eq 0x208E) { 'CL' }
elseif(($codepoint -ge 0x2090) -and ($codepoint -le 0x209C)){ 'AL' }
elseif(($codepoint -ge 0x20A0) -and ($codepoint -le 0x20A6)){ 'PR' }
elseif($codepoint -eq 0x20A7) { 'PO' }
elseif(($codepoint -ge 0x20A8) -and ($codepoint -le 0x20B5)){ 'PR' }
elseif($codepoint -eq 0x20B6) { 'PO' }
elseif(($codepoint -ge 0x20B7) -and ($codepoint -le 0x20BA)){ 'PR' }
elseif($codepoint -eq 0x20BB) { 'PO' }
elseif(($codepoint -ge 0x20BC) -and ($codepoint -le 0x20BD)){ 'PR' }
elseif($codepoint -eq 0x20BE) { 'PO' }
elseif($codepoint -eq 0x20BF) { 'PR' }
elseif(($codepoint -ge 0x20C0) -and ($codepoint -le 0x20CF)){ 'PR' }
elseif(($codepoint -ge 0x20D0) -and ($codepoint -le 0x20DC)){ 'CM' }
elseif(($codepoint -ge 0x20DD) -and ($codepoint -le 0x20E0)){ 'CM' }
elseif($codepoint -eq 0x20E1) { 'CM' }
elseif(($codepoint -ge 0x20E2) -and ($codepoint -le 0x20E4)){ 'CM' }
elseif(($codepoint -ge 0x20E5) -and ($codepoint -le 0x20F0)){ 'CM' }
elseif(($codepoint -ge 0x2100) -and ($codepoint -le 0x2101)){ 'AL' }
elseif($codepoint -eq 0x2102) { 'AL' }
elseif($codepoint -eq 0x2103) { 'PO' }
elseif($codepoint -eq 0x2104) { 'AL' }
elseif($codepoint -eq 0x2105) { 'AI' }
elseif($codepoint -eq 0x2106) { 'AL' }
elseif($codepoint -eq 0x2107) { 'AL' }
elseif($codepoint -eq 0x2108) { 'AL' }
elseif($codepoint -eq 0x2109) { 'PO' }
elseif(($codepoint -ge 0x210A) -and ($codepoint -le 0x2112)){ 'AL' }
elseif($codepoint -eq 0x2113) { 'AI' }
elseif($codepoint -eq 0x2114) { 'AL' }
elseif($codepoint -eq 0x2115) { 'AL' }
elseif($codepoint -eq 0x2116) { 'PR' }
elseif($codepoint -eq 0x2117) { 'AL' }
elseif($codepoint -eq 0x2118) { 'AL' }
elseif(($codepoint -ge 0x2119) -and ($codepoint -le 0x211D)){ 'AL' }
elseif(($codepoint -ge 0x211E) -and ($codepoint -le 0x2120)){ 'AL' }
elseif(($codepoint -ge 0x2121) -and ($codepoint -le 0x2122)){ 'AI' }
elseif($codepoint -eq 0x2123) { 'AL' }
elseif($codepoint -eq 0x2124) { 'AL' }
elseif($codepoint -eq 0x2125) { 'AL' }
elseif($codepoint -eq 0x2126) { 'AL' }
elseif($codepoint -eq 0x2127) { 'AL' }
elseif($codepoint -eq 0x2128) { 'AL' }
elseif($codepoint -eq 0x2129) { 'AL' }
elseif($codepoint -eq 0x212A) { 'AL' }
elseif($codepoint -eq 0x212B) { 'AI' }
elseif(($codepoint -ge 0x212C) -and ($codepoint -le 0x212D)){ 'AL' }
elseif($codepoint -eq 0x212E) { 'AL' }
elseif(($codepoint -ge 0x212F) -and ($codepoint -le 0x2134)){ 'AL' }
elseif(($codepoint -ge 0x2135) -and ($codepoint -le 0x2138)){ 'AL' }
elseif($codepoint -eq 0x2139) { 'AL' }
elseif(($codepoint -ge 0x213A) -and ($codepoint -le 0x213B)){ 'AL' }
elseif(($codepoint -ge 0x213C) -and ($codepoint -le 0x213F)){ 'AL' }
elseif(($codepoint -ge 0x2140) -and ($codepoint -le 0x2144)){ 'AL' }
elseif(($codepoint -ge 0x2145) -and ($codepoint -le 0x2149)){ 'AL' }
elseif($codepoint -eq 0x214A) { 'AL' }
elseif($codepoint -eq 0x214B) { 'AL' }
elseif(($codepoint -ge 0x214C) -and ($codepoint -le 0x214D)){ 'AL' }
elseif($codepoint -eq 0x214E) { 'AL' }
elseif($codepoint -eq 0x214F) { 'AL' }
elseif(($codepoint -ge 0x2150) -and ($codepoint -le 0x2153)){ 'AL' }
elseif(($codepoint -ge 0x2154) -and ($codepoint -le 0x2155)){ 'AI' }
elseif(($codepoint -ge 0x2156) -and ($codepoint -le 0x215A)){ 'AL' }
elseif($codepoint -eq 0x215B) { 'AI' }
elseif(($codepoint -ge 0x215C) -and ($codepoint -le 0x215D)){ 'AL' }
elseif($codepoint -eq 0x215E) { 'AI' }
elseif($codepoint -eq 0x215F) { 'AL' }
elseif(($codepoint -ge 0x2160) -and ($codepoint -le 0x216B)){ 'AI' }
elseif(($codepoint -ge 0x216C) -and ($codepoint -le 0x216F)){ 'AL' }
elseif(($codepoint -ge 0x2170) -and ($codepoint -le 0x2179)){ 'AI' }
elseif(($codepoint -ge 0x217A) -and ($codepoint -le 0x2182)){ 'AL' }
elseif(($codepoint -ge 0x2183) -and ($codepoint -le 0x2184)){ 'AL' }
elseif(($codepoint -ge 0x2185) -and ($codepoint -le 0x2188)){ 'AL' }
elseif($codepoint -eq 0x2189) { 'AI' }
elseif(($codepoint -ge 0x218A) -and ($codepoint -le 0x218B)){ 'AL' }
elseif(($codepoint -ge 0x2190) -and ($codepoint -le 0x2194)){ 'AI' }
elseif(($codepoint -ge 0x2195) -and ($codepoint -le 0x2199)){ 'AI' }
elseif(($codepoint -ge 0x219A) -and ($codepoint -le 0x219B)){ 'AL' }
elseif(($codepoint -ge 0x219C) -and ($codepoint -le 0x219F)){ 'AL' }
elseif($codepoint -eq 0x21A0) { 'AL' }
elseif(($codepoint -ge 0x21A1) -and ($codepoint -le 0x21A2)){ 'AL' }
elseif($codepoint -eq 0x21A3) { 'AL' }
elseif(($codepoint -ge 0x21A4) -and ($codepoint -le 0x21A5)){ 'AL' }
elseif($codepoint -eq 0x21A6) { 'AL' }
elseif(($codepoint -ge 0x21A7) -and ($codepoint -le 0x21AD)){ 'AL' }
elseif($codepoint -eq 0x21AE) { 'AL' }
elseif(($codepoint -ge 0x21AF) -and ($codepoint -le 0x21CD)){ 'AL' }
elseif(($codepoint -ge 0x21CE) -and ($codepoint -le 0x21CF)){ 'AL' }
elseif(($codepoint -ge 0x21D0) -and ($codepoint -le 0x21D1)){ 'AL' }
elseif($codepoint -eq 0x21D2) { 'AI' }
elseif($codepoint -eq 0x21D3) { 'AL' }
elseif($codepoint -eq 0x21D4) { 'AI' }
elseif(($codepoint -ge 0x21D5) -and ($codepoint -le 0x21F3)){ 'AL' }
elseif(($codepoint -ge 0x21F4) -and ($codepoint -le 0x21FF)){ 'AL' }
elseif($codepoint -eq 0x2200) { 'AI' }
elseif($codepoint -eq 0x2201) { 'AL' }
elseif(($codepoint -ge 0x2202) -and ($codepoint -le 0x2203)){ 'AI' }
elseif(($codepoint -ge 0x2204) -and ($codepoint -le 0x2206)){ 'AL' }
elseif(($codepoint -ge 0x2207) -and ($codepoint -le 0x2208)){ 'AI' }
elseif(($codepoint -ge 0x2209) -and ($codepoint -le 0x220A)){ 'AL' }
elseif($codepoint -eq 0x220B) { 'AI' }
elseif(($codepoint -ge 0x220C) -and ($codepoint -le 0x220E)){ 'AL' }
elseif($codepoint -eq 0x220F) { 'AI' }
elseif($codepoint -eq 0x2210) { 'AL' }
elseif($codepoint -eq 0x2211) { 'AI' }
elseif(($codepoint -ge 0x2212) -and ($codepoint -le 0x2213)){ 'PR' }
elseif($codepoint -eq 0x2214) { 'AL' }
elseif($codepoint -eq 0x2215) { 'AI' }
elseif(($codepoint -ge 0x2216) -and ($codepoint -le 0x2219)){ 'AL' }
elseif($codepoint -eq 0x221A) { 'AI' }
elseif(($codepoint -ge 0x221B) -and ($codepoint -le 0x221C)){ 'AL' }
elseif(($codepoint -ge 0x221D) -and ($codepoint -le 0x2220)){ 'AI' }
elseif(($codepoint -ge 0x2221) -and ($codepoint -le 0x2222)){ 'AL' }
elseif($codepoint -eq 0x2223) { 'AI' }
elseif($codepoint -eq 0x2224) { 'AL' }
elseif($codepoint -eq 0x2225) { 'AI' }
elseif($codepoint -eq 0x2226) { 'AL' }
elseif(($codepoint -ge 0x2227) -and ($codepoint -le 0x222C)){ 'AI' }
elseif($codepoint -eq 0x222D) { 'AL' }
elseif($codepoint -eq 0x222E) { 'AI' }
elseif(($codepoint -ge 0x222F) -and ($codepoint -le 0x2233)){ 'AL' }
elseif(($codepoint -ge 0x2234) -and ($codepoint -le 0x2237)){ 'AI' }
elseif(($codepoint -ge 0x2238) -and ($codepoint -le 0x223B)){ 'AL' }
elseif(($codepoint -ge 0x223C) -and ($codepoint -le 0x223D)){ 'AI' }
elseif(($codepoint -ge 0x223E) -and ($codepoint -le 0x2247)){ 'AL' }
elseif($codepoint -eq 0x2248) { 'AI' }
elseif(($codepoint -ge 0x2249) -and ($codepoint -le 0x224B)){ 'AL' }
elseif($codepoint -eq 0x224C) { 'AI' }
elseif(($codepoint -ge 0x224D) -and ($codepoint -le 0x2251)){ 'AL' }
elseif($codepoint -eq 0x2252) { 'AI' }
elseif(($codepoint -ge 0x2253) -and ($codepoint -le 0x225F)){ 'AL' }
elseif(($codepoint -ge 0x2260) -and ($codepoint -le 0x2261)){ 'AI' }
elseif(($codepoint -ge 0x2262) -and ($codepoint -le 0x2263)){ 'AL' }
elseif(($codepoint -ge 0x2264) -and ($codepoint -le 0x2267)){ 'AI' }
elseif(($codepoint -ge 0x2268) -and ($codepoint -le 0x2269)){ 'AL' }
elseif(($codepoint -ge 0x226A) -and ($codepoint -le 0x226B)){ 'AI' }
elseif(($codepoint -ge 0x226C) -and ($codepoint -le 0x226D)){ 'AL' }
elseif(($codepoint -ge 0x226E) -and ($codepoint -le 0x226F)){ 'AI' }
elseif(($codepoint -ge 0x2270) -and ($codepoint -le 0x2281)){ 'AL' }
elseif(($codepoint -ge 0x2282) -and ($codepoint -le 0x2283)){ 'AI' }
elseif(($codepoint -ge 0x2284) -and ($codepoint -le 0x2285)){ 'AL' }
elseif(($codepoint -ge 0x2286) -and ($codepoint -le 0x2287)){ 'AI' }
elseif(($codepoint -ge 0x2288) -and ($codepoint -le 0x2294)){ 'AL' }
elseif($codepoint -eq 0x2295) { 'AI' }
elseif(($codepoint -ge 0x2296) -and ($codepoint -le 0x2298)){ 'AL' }
elseif($codepoint -eq 0x2299) { 'AI' }
elseif(($codepoint -ge 0x229A) -and ($codepoint -le 0x22A4)){ 'AL' }
elseif($codepoint -eq 0x22A5) { 'AI' }
elseif(($codepoint -ge 0x22A6) -and ($codepoint -le 0x22BE)){ 'AL' }
elseif($codepoint -eq 0x22BF) { 'AI' }
elseif(($codepoint -ge 0x22C0) -and ($codepoint -le 0x22EE)){ 'AL' }
elseif($codepoint -eq 0x22EF) { 'IN' }
elseif(($codepoint -ge 0x22F0) -and ($codepoint -le 0x22FF)){ 'AL' }
elseif(($codepoint -ge 0x2300) -and ($codepoint -le 0x2307)){ 'AL' }
elseif($codepoint -eq 0x2308) { 'OP' }
elseif($codepoint -eq 0x2309) { 'CL' }
elseif($codepoint -eq 0x230A) { 'OP' }
elseif($codepoint -eq 0x230B) { 'CL' }
elseif(($codepoint -ge 0x230C) -and ($codepoint -le 0x2311)){ 'AL' }
elseif($codepoint -eq 0x2312) { 'AI' }
elseif(($codepoint -ge 0x2313) -and ($codepoint -le 0x2319)){ 'AL' }
elseif(($codepoint -ge 0x231A) -and ($codepoint -le 0x231B)){ 'ID' }
elseif(($codepoint -ge 0x231C) -and ($codepoint -le 0x231F)){ 'AL' }
elseif(($codepoint -ge 0x2320) -and ($codepoint -le 0x2321)){ 'AL' }
elseif(($codepoint -ge 0x2322) -and ($codepoint -le 0x2328)){ 'AL' }
elseif($codepoint -eq 0x2329) { 'OP' }
elseif($codepoint -eq 0x232A) { 'CL' }
elseif(($codepoint -ge 0x232B) -and ($codepoint -le 0x237B)){ 'AL' }
elseif($codepoint -eq 0x237C) { 'AL' }
elseif(($codepoint -ge 0x237D) -and ($codepoint -le 0x239A)){ 'AL' }
elseif(($codepoint -ge 0x239B) -and ($codepoint -le 0x23B3)){ 'AL' }
elseif(($codepoint -ge 0x23B4) -and ($codepoint -le 0x23DB)){ 'AL' }
elseif(($codepoint -ge 0x23DC) -and ($codepoint -le 0x23E1)){ 'AL' }
elseif(($codepoint -ge 0x23E2) -and ($codepoint -le 0x23EF)){ 'AL' }
elseif(($codepoint -ge 0x23F0) -and ($codepoint -le 0x23F3)){ 'ID' }
elseif(($codepoint -ge 0x23F4) -and ($codepoint -le 0x23FF)){ 'AL' }
elseif(($codepoint -ge 0x2400) -and ($codepoint -le 0x2426)){ 'AL' }
elseif(($codepoint -ge 0x2440) -and ($codepoint -le 0x244A)){ 'AL' }
elseif(($codepoint -ge 0x2460) -and ($codepoint -le 0x249B)){ 'AI' }
elseif(($codepoint -ge 0x249C) -and ($codepoint -le 0x24E9)){ 'AI' }
elseif(($codepoint -ge 0x24EA) -and ($codepoint -le 0x24FE)){ 'AI' }
elseif($codepoint -eq 0x24FF) { 'AL' }
elseif(($codepoint -ge 0x2500) -and ($codepoint -le 0x254B)){ 'AI' }
elseif(($codepoint -ge 0x254C) -and ($codepoint -le 0x254F)){ 'AL' }
elseif(($codepoint -ge 0x2550) -and ($codepoint -le 0x2574)){ 'AI' }
elseif(($codepoint -ge 0x2575) -and ($codepoint -le 0x257F)){ 'AL' }
elseif(($codepoint -ge 0x2580) -and ($codepoint -le 0x258F)){ 'AI' }
elseif(($codepoint -ge 0x2590) -and ($codepoint -le 0x2591)){ 'AL' }
elseif(($codepoint -ge 0x2592) -and ($codepoint -le 0x2595)){ 'AI' }
elseif(($codepoint -ge 0x2596) -and ($codepoint -le 0x259F)){ 'AL' }
elseif(($codepoint -ge 0x25A0) -and ($codepoint -le 0x25A1)){ 'AI' }
elseif($codepoint -eq 0x25A2) { 'AL' }
elseif(($codepoint -ge 0x25A3) -and ($codepoint -le 0x25A9)){ 'AI' }
elseif(($codepoint -ge 0x25AA) -and ($codepoint -le 0x25B1)){ 'AL' }
elseif(($codepoint -ge 0x25B2) -and ($codepoint -le 0x25B3)){ 'AI' }
elseif(($codepoint -ge 0x25B4) -and ($codepoint -le 0x25B5)){ 'AL' }
elseif($codepoint -eq 0x25B6) { 'AI' }
elseif($codepoint -eq 0x25B7) { 'AI' }
elseif(($codepoint -ge 0x25B8) -and ($codepoint -le 0x25BB)){ 'AL' }
elseif(($codepoint -ge 0x25BC) -and ($codepoint -le 0x25BD)){ 'AI' }
elseif(($codepoint -ge 0x25BE) -and ($codepoint -le 0x25BF)){ 'AL' }
elseif($codepoint -eq 0x25C0) { 'AI' }
elseif($codepoint -eq 0x25C1) { 'AI' }
elseif(($codepoint -ge 0x25C2) -and ($codepoint -le 0x25C5)){ 'AL' }
elseif(($codepoint -ge 0x25C6) -and ($codepoint -le 0x25C8)){ 'AI' }
elseif(($codepoint -ge 0x25C9) -and ($codepoint -le 0x25CA)){ 'AL' }
elseif($codepoint -eq 0x25CB) { 'AI' }
elseif(($codepoint -ge 0x25CC) -and ($codepoint -le 0x25CD)){ 'AL' }
elseif(($codepoint -ge 0x25CE) -and ($codepoint -le 0x25D1)){ 'AI' }
elseif(($codepoint -ge 0x25D2) -and ($codepoint -le 0x25E1)){ 'AL' }
elseif(($codepoint -ge 0x25E2) -and ($codepoint -le 0x25E5)){ 'AI' }
elseif(($codepoint -ge 0x25E6) -and ($codepoint -le 0x25EE)){ 'AL' }
elseif($codepoint -eq 0x25EF) { 'AI' }
elseif(($codepoint -ge 0x25F0) -and ($codepoint -le 0x25F7)){ 'AL' }
elseif(($codepoint -ge 0x25F8) -and ($codepoint -le 0x25FF)){ 'AL' }
elseif(($codepoint -ge 0x2600) -and ($codepoint -le 0x2603)){ 'ID' }
elseif($codepoint -eq 0x2604) { 'AL' }
elseif(($codepoint -ge 0x2605) -and ($codepoint -le 0x2606)){ 'AI' }
elseif(($codepoint -ge 0x2607) -and ($codepoint -le 0x2608)){ 'AL' }
elseif($codepoint -eq 0x2609) { 'AI' }
elseif(($codepoint -ge 0x260A) -and ($codepoint -le 0x260D)){ 'AL' }
elseif(($codepoint -ge 0x260E) -and ($codepoint -le 0x260F)){ 'AI' }
elseif(($codepoint -ge 0x2610) -and ($codepoint -le 0x2613)){ 'AL' }
elseif(($codepoint -ge 0x2614) -and ($codepoint -le 0x2615)){ 'ID' }
elseif(($codepoint -ge 0x2616) -and ($codepoint -le 0x2617)){ 'AI' }
elseif($codepoint -eq 0x2618) { 'ID' }
elseif($codepoint -eq 0x2619) { 'AL' }
elseif(($codepoint -ge 0x261A) -and ($codepoint -le 0x261C)){ 'ID' }
elseif($codepoint -eq 0x261D) { 'EB' }
elseif(($codepoint -ge 0x261E) -and ($codepoint -le 0x261F)){ 'ID' }
elseif(($codepoint -ge 0x2620) -and ($codepoint -le 0x2638)){ 'AL' }
elseif(($codepoint -ge 0x2639) -and ($codepoint -le 0x263B)){ 'ID' }
elseif(($codepoint -ge 0x263C) -and ($codepoint -le 0x263F)){ 'AL' }
elseif($codepoint -eq 0x2640) { 'AI' }
elseif($codepoint -eq 0x2641) { 'AL' }
elseif($codepoint -eq 0x2642) { 'AI' }
elseif(($codepoint -ge 0x2643) -and ($codepoint -le 0x265F)){ 'AL' }
elseif(($codepoint -ge 0x2660) -and ($codepoint -le 0x2661)){ 'AI' }
elseif($codepoint -eq 0x2662) { 'AL' }
elseif(($codepoint -ge 0x2663) -and ($codepoint -le 0x2665)){ 'AI' }
elseif($codepoint -eq 0x2666) { 'AL' }
elseif($codepoint -eq 0x2667) { 'AI' }
elseif($codepoint -eq 0x2668) { 'ID' }
elseif(($codepoint -ge 0x2669) -and ($codepoint -le 0x266A)){ 'AI' }
elseif($codepoint -eq 0x266B) { 'AL' }
elseif(($codepoint -ge 0x266C) -and ($codepoint -le 0x266D)){ 'AI' }
elseif($codepoint -eq 0x266E) { 'AL' }
elseif($codepoint -eq 0x266F) { 'AI' }
elseif(($codepoint -ge 0x2670) -and ($codepoint -le 0x267E)){ 'AL' }
elseif($codepoint -eq 0x267F) { 'ID' }
elseif(($codepoint -ge 0x2680) -and ($codepoint -le 0x269D)){ 'AL' }
elseif(($codepoint -ge 0x269E) -and ($codepoint -le 0x269F)){ 'AI' }
elseif(($codepoint -ge 0x26A0) -and ($codepoint -le 0x26BC)){ 'AL' }
elseif(($codepoint -ge 0x26BD) -and ($codepoint -le 0x26C8)){ 'ID' }
elseif(($codepoint -ge 0x26C9) -and ($codepoint -le 0x26CC)){ 'AI' }
elseif($codepoint -eq 0x26CD) { 'ID' }
elseif($codepoint -eq 0x26CE) { 'AL' }
elseif(($codepoint -ge 0x26CF) -and ($codepoint -le 0x26D1)){ 'ID' }
elseif($codepoint -eq 0x26D2) { 'AI' }
elseif(($codepoint -ge 0x26D3) -and ($codepoint -le 0x26D4)){ 'ID' }
elseif(($codepoint -ge 0x26D5) -and ($codepoint -le 0x26D7)){ 'AI' }
elseif(($codepoint -ge 0x26D8) -and ($codepoint -le 0x26D9)){ 'ID' }
elseif(($codepoint -ge 0x26DA) -and ($codepoint -le 0x26DB)){ 'AI' }
elseif($codepoint -eq 0x26DC) { 'ID' }
elseif(($codepoint -ge 0x26DD) -and ($codepoint -le 0x26DE)){ 'AI' }
elseif(($codepoint -ge 0x26DF) -and ($codepoint -le 0x26E1)){ 'ID' }
elseif($codepoint -eq 0x26E2) { 'AL' }
elseif($codepoint -eq 0x26E3) { 'AI' }
elseif(($codepoint -ge 0x26E4) -and ($codepoint -le 0x26E7)){ 'AL' }
elseif(($codepoint -ge 0x26E8) -and ($codepoint -le 0x26E9)){ 'AI' }
elseif($codepoint -eq 0x26EA) { 'ID' }
elseif(($codepoint -ge 0x26EB) -and ($codepoint -le 0x26F0)){ 'AI' }
elseif(($codepoint -ge 0x26F1) -and ($codepoint -le 0x26F5)){ 'ID' }
elseif($codepoint -eq 0x26F6) { 'AI' }
elseif(($codepoint -ge 0x26F7) -and ($codepoint -le 0x26F8)){ 'ID' }
elseif($codepoint -eq 0x26F9) { 'EB' }
elseif($codepoint -eq 0x26FA) { 'ID' }
elseif(($codepoint -ge 0x26FB) -and ($codepoint -le 0x26FC)){ 'AI' }
elseif(($codepoint -ge 0x26FD) -and ($codepoint -le 0x26FF)){ 'ID' }
elseif(($codepoint -ge 0x2700) -and ($codepoint -le 0x2704)){ 'ID' }
elseif(($codepoint -ge 0x2705) -and ($codepoint -le 0x2707)){ 'AL' }
elseif(($codepoint -ge 0x2708) -and ($codepoint -le 0x2709)){ 'ID' }
elseif(($codepoint -ge 0x270A) -and ($codepoint -le 0x270D)){ 'EB' }
elseif(($codepoint -ge 0x270E) -and ($codepoint -le 0x2756)){ 'AL' }
elseif($codepoint -eq 0x2757) { 'AI' }
elseif(($codepoint -ge 0x2758) -and ($codepoint -le 0x275A)){ 'AL' }
elseif(($codepoint -ge 0x275B) -and ($codepoint -le 0x2760)){ 'QU' }
elseif($codepoint -eq 0x2761) { 'AL' }
elseif(($codepoint -ge 0x2762) -and ($codepoint -le 0x2763)){ 'EX' }
elseif($codepoint -eq 0x2764) { 'ID' }
elseif(($codepoint -ge 0x2765) -and ($codepoint -le 0x2767)){ 'AL' }
elseif($codepoint -eq 0x2768) { 'OP' }
elseif($codepoint -eq 0x2769) { 'CL' }
elseif($codepoint -eq 0x276A) { 'OP' }
elseif($codepoint -eq 0x276B) { 'CL' }
elseif($codepoint -eq 0x276C) { 'OP' }
elseif($codepoint -eq 0x276D) { 'CL' }
elseif($codepoint -eq 0x276E) { 'OP' }
elseif($codepoint -eq 0x276F) { 'CL' }
elseif($codepoint -eq 0x2770) { 'OP' }
elseif($codepoint -eq 0x2771) { 'CL' }
elseif($codepoint -eq 0x2772) { 'OP' }
elseif($codepoint -eq 0x2773) { 'CL' }
elseif($codepoint -eq 0x2774) { 'OP' }
elseif($codepoint -eq 0x2775) { 'CL' }
elseif(($codepoint -ge 0x2776) -and ($codepoint -le 0x2793)){ 'AI' }
elseif(($codepoint -ge 0x2794) -and ($codepoint -le 0x27BF)){ 'AL' }
elseif(($codepoint -ge 0x27C0) -and ($codepoint -le 0x27C4)){ 'AL' }
elseif($codepoint -eq 0x27C5) { 'OP' }
elseif($codepoint -eq 0x27C6) { 'CL' }
elseif(($codepoint -ge 0x27C7) -and ($codepoint -le 0x27E5)){ 'AL' }
elseif($codepoint -eq 0x27E6) { 'OP' }
elseif($codepoint -eq 0x27E7) { 'CL' }
elseif($codepoint -eq 0x27E8) { 'OP' }
elseif($codepoint -eq 0x27E9) { 'CL' }
elseif($codepoint -eq 0x27EA) { 'OP' }
elseif($codepoint -eq 0x27EB) { 'CL' }
elseif($codepoint -eq 0x27EC) { 'OP' }
elseif($codepoint -eq 0x27ED) { 'CL' }
elseif($codepoint -eq 0x27EE) { 'OP' }
elseif($codepoint -eq 0x27EF) { 'CL' }
elseif(($codepoint -ge 0x27F0) -and ($codepoint -le 0x27FF)){ 'AL' }
elseif(($codepoint -ge 0x2800) -and ($codepoint -le 0x28FF)){ 'AL' }
elseif(($codepoint -ge 0x2900) -and ($codepoint -le 0x297F)){ 'AL' }
elseif(($codepoint -ge 0x2980) -and ($codepoint -le 0x2982)){ 'AL' }
elseif($codepoint -eq 0x2983) { 'OP' }
elseif($codepoint -eq 0x2984) { 'CL' }
elseif($codepoint -eq 0x2985) { 'OP' }
elseif($codepoint -eq 0x2986) { 'CL' }
elseif($codepoint -eq 0x2987) { 'OP' }
elseif($codepoint -eq 0x2988) { 'CL' }
elseif($codepoint -eq 0x2989) { 'OP' }
elseif($codepoint -eq 0x298A) { 'CL' }
elseif($codepoint -eq 0x298B) { 'OP' }
elseif($codepoint -eq 0x298C) { 'CL' }
elseif($codepoint -eq 0x298D) { 'OP' }
elseif($codepoint -eq 0x298E) { 'CL' }
elseif($codepoint -eq 0x298F) { 'OP' }
elseif($codepoint -eq 0x2990) { 'CL' }
elseif($codepoint -eq 0x2991) { 'OP' }
elseif($codepoint -eq 0x2992) { 'CL' }
elseif($codepoint -eq 0x2993) { 'OP' }
elseif($codepoint -eq 0x2994) { 'CL' }
elseif($codepoint -eq 0x2995) { 'OP' }
elseif($codepoint -eq 0x2996) { 'CL' }
elseif($codepoint -eq 0x2997) { 'OP' }
elseif($codepoint -eq 0x2998) { 'CL' }
elseif(($codepoint -ge 0x2999) -and ($codepoint -le 0x29D7)){ 'AL' }
elseif($codepoint -eq 0x29D8) { 'OP' }
elseif($codepoint -eq 0x29D9) { 'CL' }
elseif($codepoint -eq 0x29DA) { 'OP' }
elseif($codepoint -eq 0x29DB) { 'CL' }
elseif(($codepoint -ge 0x29DC) -and ($codepoint -le 0x29FB)){ 'AL' }
elseif($codepoint -eq 0x29FC) { 'OP' }
elseif($codepoint -eq 0x29FD) { 'CL' }
elseif(($codepoint -ge 0x29FE) -and ($codepoint -le 0x29FF)){ 'AL' }
elseif(($codepoint -ge 0x2A00) -and ($codepoint -le 0x2AFF)){ 'AL' }
elseif(($codepoint -ge 0x2B00) -and ($codepoint -le 0x2B2F)){ 'AL' }
elseif(($codepoint -ge 0x2B30) -and ($codepoint -le 0x2B44)){ 'AL' }
elseif(($codepoint -ge 0x2B45) -and ($codepoint -le 0x2B46)){ 'AL' }
elseif(($codepoint -ge 0x2B47) -and ($codepoint -le 0x2B4C)){ 'AL' }
elseif(($codepoint -ge 0x2B4D) -and ($codepoint -le 0x2B54)){ 'AL' }
elseif(($codepoint -ge 0x2B55) -and ($codepoint -le 0x2B59)){ 'AI' }
elseif(($codepoint -ge 0x2B5A) -and ($codepoint -le 0x2B73)){ 'AL' }
elseif(($codepoint -ge 0x2B76) -and ($codepoint -le 0x2B95)){ 'AL' }
elseif(($codepoint -ge 0x2B98) -and ($codepoint -le 0x2BB9)){ 'AL' }
elseif(($codepoint -ge 0x2BBD) -and ($codepoint -le 0x2BC8)){ 'AL' }
elseif(($codepoint -ge 0x2BCA) -and ($codepoint -le 0x2BD2)){ 'AL' }
elseif(($codepoint -ge 0x2BEC) -and ($codepoint -le 0x2BEF)){ 'AL' }
elseif(($codepoint -ge 0x2C00) -and ($codepoint -le 0x2C2E)){ 'AL' }
elseif(($codepoint -ge 0x2C30) -and ($codepoint -le 0x2C5E)){ 'AL' }
elseif(($codepoint -ge 0x2C60) -and ($codepoint -le 0x2C7B)){ 'AL' }
elseif(($codepoint -ge 0x2C7C) -and ($codepoint -le 0x2C7D)){ 'AL' }
elseif(($codepoint -ge 0x2C7E) -and ($codepoint -le 0x2C7F)){ 'AL' }
elseif(($codepoint -ge 0x2C80) -and ($codepoint -le 0x2CE4)){ 'AL' }
elseif(($codepoint -ge 0x2CE5) -and ($codepoint -le 0x2CEA)){ 'AL' }
elseif(($codepoint -ge 0x2CEB) -and ($codepoint -le 0x2CEE)){ 'AL' }
elseif(($codepoint -ge 0x2CEF) -and ($codepoint -le 0x2CF1)){ 'CM' }
elseif(($codepoint -ge 0x2CF2) -and ($codepoint -le 0x2CF3)){ 'AL' }
elseif($codepoint -eq 0x2CF9) { 'EX' }
elseif(($codepoint -ge 0x2CFA) -and ($codepoint -le 0x2CFC)){ 'BA' }
elseif($codepoint -eq 0x2CFD) { 'AL' }
elseif($codepoint -eq 0x2CFE) { 'EX' }
elseif($codepoint -eq 0x2CFF) { 'BA' }
elseif(($codepoint -ge 0x2D00) -and ($codepoint -le 0x2D25)){ 'AL' }
elseif($codepoint -eq 0x2D27) { 'AL' }
elseif($codepoint -eq 0x2D2D) { 'AL' }
elseif(($codepoint -ge 0x2D30) -and ($codepoint -le 0x2D67)){ 'AL' }
elseif($codepoint -eq 0x2D6F) { 'AL' }
elseif($codepoint -eq 0x2D70) { 'BA' }
elseif($codepoint -eq 0x2D7F) { 'CM' }
elseif(($codepoint -ge 0x2D80) -and ($codepoint -le 0x2D96)){ 'AL' }
elseif(($codepoint -ge 0x2DA0) -and ($codepoint -le 0x2DA6)){ 'AL' }
elseif(($codepoint -ge 0x2DA8) -and ($codepoint -le 0x2DAE)){ 'AL' }
elseif(($codepoint -ge 0x2DB0) -and ($codepoint -le 0x2DB6)){ 'AL' }
elseif(($codepoint -ge 0x2DB8) -and ($codepoint -le 0x2DBE)){ 'AL' }
elseif(($codepoint -ge 0x2DC0) -and ($codepoint -le 0x2DC6)){ 'AL' }
elseif(($codepoint -ge 0x2DC8) -and ($codepoint -le 0x2DCE)){ 'AL' }
elseif(($codepoint -ge 0x2DD0) -and ($codepoint -le 0x2DD6)){ 'AL' }
elseif(($codepoint -ge 0x2DD8) -and ($codepoint -le 0x2DDE)){ 'AL' }
elseif(($codepoint -ge 0x2DE0) -and ($codepoint -le 0x2DFF)){ 'CM' }
elseif(($codepoint -ge 0x2E00) -and ($codepoint -le 0x2E01)){ 'QU' }
elseif($codepoint -eq 0x2E02) { 'QU' }
elseif($codepoint -eq 0x2E03) { 'QU' }
elseif($codepoint -eq 0x2E04) { 'QU' }
elseif($codepoint -eq 0x2E05) { 'QU' }
elseif(($codepoint -ge 0x2E06) -and ($codepoint -le 0x2E08)){ 'QU' }
elseif($codepoint -eq 0x2E09) { 'QU' }
elseif($codepoint -eq 0x2E0A) { 'QU' }
elseif($codepoint -eq 0x2E0B) { 'QU' }
elseif($codepoint -eq 0x2E0C) { 'QU' }
elseif($codepoint -eq 0x2E0D) { 'QU' }
elseif(($codepoint -ge 0x2E0E) -and ($codepoint -le 0x2E15)){ 'BA' }
elseif($codepoint -eq 0x2E16) { 'AL' }
elseif($codepoint -eq 0x2E17) { 'BA' }
elseif($codepoint -eq 0x2E18) { 'OP' }
elseif($codepoint -eq 0x2E19) { 'BA' }
elseif($codepoint -eq 0x2E1A) { 'AL' }
elseif($codepoint -eq 0x2E1B) { 'AL' }
elseif($codepoint -eq 0x2E1C) { 'QU' }
elseif($codepoint -eq 0x2E1D) { 'QU' }
elseif(($codepoint -ge 0x2E1E) -and ($codepoint -le 0x2E1F)){ 'AL' }
elseif($codepoint -eq 0x2E20) { 'QU' }
elseif($codepoint -eq 0x2E21) { 'QU' }
elseif($codepoint -eq 0x2E22) { 'OP' }
elseif($codepoint -eq 0x2E23) { 'CL' }
elseif($codepoint -eq 0x2E24) { 'OP' }
elseif($codepoint -eq 0x2E25) { 'CL' }
elseif($codepoint -eq 0x2E26) { 'OP' }
elseif($codepoint -eq 0x2E27) { 'CL' }
elseif($codepoint -eq 0x2E28) { 'OP' }
elseif($codepoint -eq 0x2E29) { 'CL' }
elseif(($codepoint -ge 0x2E2A) -and ($codepoint -le 0x2E2D)){ 'BA' }
elseif($codepoint -eq 0x2E2E) { 'EX' }
elseif($codepoint -eq 0x2E2F) { 'AL' }
elseif(($codepoint -ge 0x2E30) -and ($codepoint -le 0x2E31)){ 'BA' }
elseif($codepoint -eq 0x2E32) { 'AL' }
elseif(($codepoint -ge 0x2E33) -and ($codepoint -le 0x2E34)){ 'BA' }
elseif(($codepoint -ge 0x2E35) -and ($codepoint -le 0x2E39)){ 'AL' }
elseif(($codepoint -ge 0x2E3C) -and ($codepoint -le 0x2E3E)){ 'BA' }
elseif($codepoint -eq 0x2E3F) { 'AL' }
elseif($codepoint -eq 0x2E40) { 'BA' }
elseif($codepoint -eq 0x2E41) { 'BA' }
elseif($codepoint -eq 0x2E42) { 'OP' }
elseif(($codepoint -ge 0x2E43) -and ($codepoint -le 0x2E49)){ 'BA' }
elseif(($codepoint -ge 0x2E80) -and ($codepoint -le 0x2E99)){ 'ID' }
elseif(($codepoint -ge 0x2E9B) -and ($codepoint -le 0x2EF3)){ 'ID' }
elseif(($codepoint -ge 0x2F00) -and ($codepoint -le 0x2FD5)){ 'ID' }
elseif(($codepoint -ge 0x2FF0) -and ($codepoint -le 0x2FFB)){ 'ID' }
elseif($codepoint -eq 0x3000) { 'BA' }
elseif(($codepoint -ge 0x3001) -and ($codepoint -le 0x3002)){ 'CL' }
elseif($codepoint -eq 0x3003) { 'ID' }
elseif($codepoint -eq 0x3004) { 'ID' }
elseif($codepoint -eq 0x3005) { 'NS' }
elseif($codepoint -eq 0x3006) { 'ID' }
elseif($codepoint -eq 0x3007) { 'ID' }
elseif($codepoint -eq 0x3008) { 'OP' }
elseif($codepoint -eq 0x3009) { 'CL' }
elseif($codepoint -eq 0x300A) { 'OP' }
elseif($codepoint -eq 0x300B) { 'CL' }
elseif($codepoint -eq 0x300C) { 'OP' }
elseif($codepoint -eq 0x300D) { 'CL' }
elseif($codepoint -eq 0x300E) { 'OP' }
elseif($codepoint -eq 0x300F) { 'CL' }
elseif($codepoint -eq 0x3010) { 'OP' }
elseif($codepoint -eq 0x3011) { 'CL' }
elseif(($codepoint -ge 0x3012) -and ($codepoint -le 0x3013)){ 'ID' }
elseif($codepoint -eq 0x3014) { 'OP' }
elseif($codepoint -eq 0x3015) { 'CL' }
elseif($codepoint -eq 0x3016) { 'OP' }
elseif($codepoint -eq 0x3017) { 'CL' }
elseif($codepoint -eq 0x3018) { 'OP' }
elseif($codepoint -eq 0x3019) { 'CL' }
elseif($codepoint -eq 0x301A) { 'OP' }
elseif($codepoint -eq 0x301B) { 'CL' }
elseif($codepoint -eq 0x301C) { 'NS' }
elseif($codepoint -eq 0x301D) { 'OP' }
elseif(($codepoint -ge 0x301E) -and ($codepoint -le 0x301F)){ 'CL' }
elseif($codepoint -eq 0x3020) { 'ID' }
elseif(($codepoint -ge 0x3021) -and ($codepoint -le 0x3029)){ 'ID' }
elseif(($codepoint -ge 0x302A) -and ($codepoint -le 0x302D)){ 'CM' }
elseif(($codepoint -ge 0x302E) -and ($codepoint -le 0x302F)){ 'CM' }
elseif($codepoint -eq 0x3030) { 'ID' }
elseif(($codepoint -ge 0x3031) -and ($codepoint -le 0x3034)){ 'ID' }
elseif($codepoint -eq 0x3035) { 'CM' }
elseif(($codepoint -ge 0x3036) -and ($codepoint -le 0x3037)){ 'ID' }
elseif(($codepoint -ge 0x3038) -and ($codepoint -le 0x303A)){ 'ID' }
elseif($codepoint -eq 0x303B) { 'NS' }
elseif($codepoint -eq 0x303C) { 'NS' }
elseif($codepoint -eq 0x303D) { 'ID' }
elseif(($codepoint -ge 0x303E) -and ($codepoint -le 0x303F)){ 'ID' }
elseif($codepoint -eq 0x3041) { 'CJ' }
elseif($codepoint -eq 0x3042) { 'ID' }
elseif($codepoint -eq 0x3043) { 'CJ' }
elseif($codepoint -eq 0x3044) { 'ID' }
elseif($codepoint -eq 0x3045) { 'CJ' }
elseif($codepoint -eq 0x3046) { 'ID' }
elseif($codepoint -eq 0x3047) { 'CJ' }
elseif($codepoint -eq 0x3048) { 'ID' }
elseif($codepoint -eq 0x3049) { 'CJ' }
elseif(($codepoint -ge 0x304A) -and ($codepoint -le 0x3062)){ 'ID' }
elseif($codepoint -eq 0x3063) { 'CJ' }
elseif(($codepoint -ge 0x3064) -and ($codepoint -le 0x3082)){ 'ID' }
elseif($codepoint -eq 0x3083) { 'CJ' }
elseif($codepoint -eq 0x3084) { 'ID' }
elseif($codepoint -eq 0x3085) { 'CJ' }
elseif($codepoint -eq 0x3086) { 'ID' }
elseif($codepoint -eq 0x3087) { 'CJ' }
elseif(($codepoint -ge 0x3088) -and ($codepoint -le 0x308D)){ 'ID' }
elseif($codepoint -eq 0x308E) { 'CJ' }
elseif(($codepoint -ge 0x308F) -and ($codepoint -le 0x3094)){ 'ID' }
elseif(($codepoint -ge 0x3095) -and ($codepoint -le 0x3096)){ 'CJ' }
elseif(($codepoint -ge 0x3099) -and ($codepoint -le 0x309A)){ 'CM' }
elseif(($codepoint -ge 0x309B) -and ($codepoint -le 0x309C)){ 'NS' }
elseif(($codepoint -ge 0x309D) -and ($codepoint -le 0x309E)){ 'NS' }
elseif($codepoint -eq 0x309F) { 'ID' }
elseif($codepoint -eq 0x30A0) { 'NS' }
elseif($codepoint -eq 0x30A1) { 'CJ' }
elseif($codepoint -eq 0x30A2) { 'ID' }
elseif($codepoint -eq 0x30A3) { 'CJ' }
elseif($codepoint -eq 0x30A4) { 'ID' }
elseif($codepoint -eq 0x30A5) { 'CJ' }
elseif($codepoint -eq 0x30A6) { 'ID' }
elseif($codepoint -eq 0x30A7) { 'CJ' }
elseif($codepoint -eq 0x30A8) { 'ID' }
elseif($codepoint -eq 0x30A9) { 'CJ' }
elseif(($codepoint -ge 0x30AA) -and ($codepoint -le 0x30C2)){ 'ID' }
elseif($codepoint -eq 0x30C3) { 'CJ' }
elseif(($codepoint -ge 0x30C4) -and ($codepoint -le 0x30E2)){ 'ID' }
elseif($codepoint -eq 0x30E3) { 'CJ' }
elseif($codepoint -eq 0x30E4) { 'ID' }
elseif($codepoint -eq 0x30E5) { 'CJ' }
elseif($codepoint -eq 0x30E6) { 'ID' }
elseif($codepoint -eq 0x30E7) { 'CJ' }
elseif(($codepoint -ge 0x30E8) -and ($codepoint -le 0x30ED)){ 'ID' }
elseif($codepoint -eq 0x30EE) { 'CJ' }
elseif(($codepoint -ge 0x30EF) -and ($codepoint -le 0x30F4)){ 'ID' }
elseif(($codepoint -ge 0x30F5) -and ($codepoint -le 0x30F6)){ 'CJ' }
elseif(($codepoint -ge 0x30F7) -and ($codepoint -le 0x30FA)){ 'ID' }
elseif($codepoint -eq 0x30FB) { 'NS' }
elseif($codepoint -eq 0x30FC) { 'CJ' }
elseif(($codepoint -ge 0x30FD) -and ($codepoint -le 0x30FE)){ 'NS' }
elseif($codepoint -eq 0x30FF) { 'ID' }
elseif(($codepoint -ge 0x3105) -and ($codepoint -le 0x312E)){ 'ID' }
elseif(($codepoint -ge 0x3131) -and ($codepoint -le 0x318E)){ 'ID' }
elseif(($codepoint -ge 0x3190) -and ($codepoint -le 0x3191)){ 'ID' }
elseif(($codepoint -ge 0x3192) -and ($codepoint -le 0x3195)){ 'ID' }
elseif(($codepoint -ge 0x3196) -and ($codepoint -le 0x319F)){ 'ID' }
elseif(($codepoint -ge 0x31A0) -and ($codepoint -le 0x31BA)){ 'ID' }
elseif(($codepoint -ge 0x31C0) -and ($codepoint -le 0x31E3)){ 'ID' }
elseif(($codepoint -ge 0x31F0) -and ($codepoint -le 0x31FF)){ 'CJ' }
elseif(($codepoint -ge 0x3200) -and ($codepoint -le 0x321E)){ 'ID' }
elseif(($codepoint -ge 0x3220) -and ($codepoint -le 0x3229)){ 'ID' }
elseif(($codepoint -ge 0x322A) -and ($codepoint -le 0x3247)){ 'ID' }
elseif(($codepoint -ge 0x3248) -and ($codepoint -le 0x324F)){ 'AI' }
elseif($codepoint -eq 0x3250) { 'ID' }
elseif(($codepoint -ge 0x3251) -and ($codepoint -le 0x325F)){ 'ID' }
elseif(($codepoint -ge 0x3260) -and ($codepoint -le 0x327F)){ 'ID' }
elseif(($codepoint -ge 0x3280) -and ($codepoint -le 0x3289)){ 'ID' }
elseif(($codepoint -ge 0x328A) -and ($codepoint -le 0x32B0)){ 'ID' }
elseif(($codepoint -ge 0x32B1) -and ($codepoint -le 0x32BF)){ 'ID' }
elseif(($codepoint -ge 0x32C0) -and ($codepoint -le 0x32FE)){ 'ID' }
elseif(($codepoint -ge 0x3300) -and ($codepoint -le 0x33FF)){ 'ID' }
elseif(($codepoint -ge 0x3400) -and ($codepoint -le 0x4DB5)){ 'ID' }
elseif(($codepoint -ge 0x4DB6) -and ($codepoint -le 0x4DBF)){ 'ID' }
elseif(($codepoint -ge 0x4DC0) -and ($codepoint -le 0x4DFF)){ 'AL' }
elseif(($codepoint -ge 0x4E00) -and ($codepoint -le 0x9FEA)){ 'ID' }
elseif(($codepoint -ge 0x9FEB) -and ($codepoint -le 0x9FFF)){ 'ID' }
elseif(($codepoint -ge 0xA000) -and ($codepoint -le 0xA014)){ 'ID' }
elseif($codepoint -eq 0xA015) { 'NS' }
elseif(($codepoint -ge 0xA016) -and ($codepoint -le 0xA48C)){ 'ID' }
elseif(($codepoint -ge 0xA490) -and ($codepoint -le 0xA4C6)){ 'ID' }
elseif(($codepoint -ge 0xA4D0) -and ($codepoint -le 0xA4F7)){ 'AL' }
elseif(($codepoint -ge 0xA4F8) -and ($codepoint -le 0xA4FD)){ 'AL' }
elseif(($codepoint -ge 0xA4FE) -and ($codepoint -le 0xA4FF)){ 'BA' }
elseif(($codepoint -ge 0xA500) -and ($codepoint -le 0xA60B)){ 'AL' }
elseif($codepoint -eq 0xA60C) { 'AL' }
elseif($codepoint -eq 0xA60D) { 'BA' }
elseif($codepoint -eq 0xA60E) { 'EX' }
elseif($codepoint -eq 0xA60F) { 'BA' }
elseif(($codepoint -ge 0xA610) -and ($codepoint -le 0xA61F)){ 'AL' }
elseif(($codepoint -ge 0xA620) -and ($codepoint -le 0xA629)){ 'NU' }
elseif(($codepoint -ge 0xA62A) -and ($codepoint -le 0xA62B)){ 'AL' }
elseif(($codepoint -ge 0xA640) -and ($codepoint -le 0xA66D)){ 'AL' }
elseif($codepoint -eq 0xA66E) { 'AL' }
elseif($codepoint -eq 0xA66F) { 'CM' }
elseif(($codepoint -ge 0xA670) -and ($codepoint -le 0xA672)){ 'CM' }
elseif($codepoint -eq 0xA673) { 'AL' }
elseif(($codepoint -ge 0xA674) -and ($codepoint -le 0xA67D)){ 'CM' }
elseif($codepoint -eq 0xA67E) { 'AL' }
elseif($codepoint -eq 0xA67F) { 'AL' }
elseif(($codepoint -ge 0xA680) -and ($codepoint -le 0xA69B)){ 'AL' }
elseif(($codepoint -ge 0xA69C) -and ($codepoint -le 0xA69D)){ 'AL' }
elseif(($codepoint -ge 0xA69E) -and ($codepoint -le 0xA69F)){ 'CM' }
elseif(($codepoint -ge 0xA6A0) -and ($codepoint -le 0xA6E5)){ 'AL' }
elseif(($codepoint -ge 0xA6E6) -and ($codepoint -le 0xA6EF)){ 'AL' }
elseif(($codepoint -ge 0xA6F0) -and ($codepoint -le 0xA6F1)){ 'CM' }
elseif($codepoint -eq 0xA6F2) { 'AL' }
elseif(($codepoint -ge 0xA6F3) -and ($codepoint -le 0xA6F7)){ 'BA' }
elseif(($codepoint -ge 0xA700) -and ($codepoint -le 0xA716)){ 'AL' }
elseif(($codepoint -ge 0xA717) -and ($codepoint -le 0xA71F)){ 'AL' }
elseif(($codepoint -ge 0xA720) -and ($codepoint -le 0xA721)){ 'AL' }
elseif(($codepoint -ge 0xA722) -and ($codepoint -le 0xA76F)){ 'AL' }
elseif($codepoint -eq 0xA770) { 'AL' }
elseif(($codepoint -ge 0xA771) -and ($codepoint -le 0xA787)){ 'AL' }
elseif($codepoint -eq 0xA788) { 'AL' }
elseif(($codepoint -ge 0xA789) -and ($codepoint -le 0xA78A)){ 'AL' }
elseif(($codepoint -ge 0xA78B) -and ($codepoint -le 0xA78E)){ 'AL' }
elseif($codepoint -eq 0xA78F) { 'AL' }
elseif(($codepoint -ge 0xA790) -and ($codepoint -le 0xA7AE)){ 'AL' }
elseif(($codepoint -ge 0xA7B0) -and ($codepoint -le 0xA7B7)){ 'AL' }
elseif($codepoint -eq 0xA7F7) { 'AL' }
elseif(($codepoint -ge 0xA7F8) -and ($codepoint -le 0xA7F9)){ 'AL' }
elseif($codepoint -eq 0xA7FA) { 'AL' }
elseif(($codepoint -ge 0xA7FB) -and ($codepoint -le 0xA7FF)){ 'AL' }
elseif(($codepoint -ge 0xA800) -and ($codepoint -le 0xA801)){ 'AL' }
elseif($codepoint -eq 0xA802) { 'CM' }
elseif(($codepoint -ge 0xA803) -and ($codepoint -le 0xA805)){ 'AL' }
elseif($codepoint -eq 0xA806) { 'CM' }
elseif(($codepoint -ge 0xA807) -and ($codepoint -le 0xA80A)){ 'AL' }
elseif($codepoint -eq 0xA80B) { 'CM' }
elseif(($codepoint -ge 0xA80C) -and ($codepoint -le 0xA822)){ 'AL' }
elseif(($codepoint -ge 0xA823) -and ($codepoint -le 0xA824)){ 'CM' }
elseif(($codepoint -ge 0xA825) -and ($codepoint -le 0xA826)){ 'CM' }
elseif($codepoint -eq 0xA827) { 'CM' }
elseif(($codepoint -ge 0xA828) -and ($codepoint -le 0xA82B)){ 'AL' }
elseif(($codepoint -ge 0xA830) -and ($codepoint -le 0xA835)){ 'AL' }
elseif(($codepoint -ge 0xA836) -and ($codepoint -le 0xA837)){ 'AL' }
elseif($codepoint -eq 0xA838) { 'PO' }
elseif($codepoint -eq 0xA839) { 'AL' }
elseif(($codepoint -ge 0xA840) -and ($codepoint -le 0xA873)){ 'AL' }
elseif(($codepoint -ge 0xA874) -and ($codepoint -le 0xA875)){ 'BB' }
elseif(($codepoint -ge 0xA876) -and ($codepoint -le 0xA877)){ 'EX' }
elseif(($codepoint -ge 0xA880) -and ($codepoint -le 0xA881)){ 'CM' }
elseif(($codepoint -ge 0xA882) -and ($codepoint -le 0xA8B3)){ 'AL' }
elseif(($codepoint -ge 0xA8B4) -and ($codepoint -le 0xA8C3)){ 'CM' }
elseif(($codepoint -ge 0xA8C4) -and ($codepoint -le 0xA8C5)){ 'CM' }
elseif(($codepoint -ge 0xA8CE) -and ($codepoint -le 0xA8CF)){ 'BA' }
elseif(($codepoint -ge 0xA8D0) -and ($codepoint -le 0xA8D9)){ 'NU' }
elseif(($codepoint -ge 0xA8E0) -and ($codepoint -le 0xA8F1)){ 'CM' }
elseif(($codepoint -ge 0xA8F2) -and ($codepoint -le 0xA8F7)){ 'AL' }
elseif(($codepoint -ge 0xA8F8) -and ($codepoint -le 0xA8FA)){ 'AL' }
elseif($codepoint -eq 0xA8FB) { 'AL' }
elseif($codepoint -eq 0xA8FC) { 'BB' }
elseif($codepoint -eq 0xA8FD) { 'AL' }
elseif(($codepoint -ge 0xA900) -and ($codepoint -le 0xA909)){ 'NU' }
elseif(($codepoint -ge 0xA90A) -and ($codepoint -le 0xA925)){ 'AL' }
elseif(($codepoint -ge 0xA926) -and ($codepoint -le 0xA92D)){ 'CM' }
elseif(($codepoint -ge 0xA92E) -and ($codepoint -le 0xA92F)){ 'BA' }
elseif(($codepoint -ge 0xA930) -and ($codepoint -le 0xA946)){ 'AL' }
elseif(($codepoint -ge 0xA947) -and ($codepoint -le 0xA951)){ 'CM' }
elseif(($codepoint -ge 0xA952) -and ($codepoint -le 0xA953)){ 'CM' }
elseif($codepoint -eq 0xA95F) { 'AL' }
elseif(($codepoint -ge 0xA960) -and ($codepoint -le 0xA97C)){ 'JL' }
elseif(($codepoint -ge 0xA980) -and ($codepoint -le 0xA982)){ 'CM' }
elseif($codepoint -eq 0xA983) { 'CM' }
elseif(($codepoint -ge 0xA984) -and ($codepoint -le 0xA9B2)){ 'AL' }
elseif($codepoint -eq 0xA9B3) { 'CM' }
elseif(($codepoint -ge 0xA9B4) -and ($codepoint -le 0xA9B5)){ 'CM' }
elseif(($codepoint -ge 0xA9B6) -and ($codepoint -le 0xA9B9)){ 'CM' }
elseif(($codepoint -ge 0xA9BA) -and ($codepoint -le 0xA9BB)){ 'CM' }
elseif($codepoint -eq 0xA9BC) { 'CM' }
elseif(($codepoint -ge 0xA9BD) -and ($codepoint -le 0xA9C0)){ 'CM' }
elseif(($codepoint -ge 0xA9C1) -and ($codepoint -le 0xA9C6)){ 'AL' }
elseif(($codepoint -ge 0xA9C7) -and ($codepoint -le 0xA9C9)){ 'BA' }
elseif(($codepoint -ge 0xA9CA) -and ($codepoint -le 0xA9CD)){ 'AL' }
elseif($codepoint -eq 0xA9CF) { 'AL' }
elseif(($codepoint -ge 0xA9D0) -and ($codepoint -le 0xA9D9)){ 'NU' }
elseif(($codepoint -ge 0xA9DE) -and ($codepoint -le 0xA9DF)){ 'AL' }
elseif(($codepoint -ge 0xA9E0) -and ($codepoint -le 0xA9E4)){ 'SA' }
elseif($codepoint -eq 0xA9E5) { 'SA' }
elseif($codepoint -eq 0xA9E6) { 'SA' }
elseif(($codepoint -ge 0xA9E7) -and ($codepoint -le 0xA9EF)){ 'SA' }
elseif(($codepoint -ge 0xA9F0) -and ($codepoint -le 0xA9F9)){ 'NU' }
elseif(($codepoint -ge 0xA9FA) -and ($codepoint -le 0xA9FE)){ 'SA' }
elseif(($codepoint -ge 0xAA00) -and ($codepoint -le 0xAA28)){ 'AL' }
elseif(($codepoint -ge 0xAA29) -and ($codepoint -le 0xAA2E)){ 'CM' }
elseif(($codepoint -ge 0xAA2F) -and ($codepoint -le 0xAA30)){ 'CM' }
elseif(($codepoint -ge 0xAA31) -and ($codepoint -le 0xAA32)){ 'CM' }
elseif(($codepoint -ge 0xAA33) -and ($codepoint -le 0xAA34)){ 'CM' }
elseif(($codepoint -ge 0xAA35) -and ($codepoint -le 0xAA36)){ 'CM' }
elseif(($codepoint -ge 0xAA40) -and ($codepoint -le 0xAA42)){ 'AL' }
elseif($codepoint -eq 0xAA43) { 'CM' }
elseif(($codepoint -ge 0xAA44) -and ($codepoint -le 0xAA4B)){ 'AL' }
elseif($codepoint -eq 0xAA4C) { 'CM' }
elseif($codepoint -eq 0xAA4D) { 'CM' }
elseif(($codepoint -ge 0xAA50) -and ($codepoint -le 0xAA59)){ 'NU' }
elseif($codepoint -eq 0xAA5C) { 'AL' }
elseif(($codepoint -ge 0xAA5D) -and ($codepoint -le 0xAA5F)){ 'BA' }
elseif(($codepoint -ge 0xAA60) -and ($codepoint -le 0xAA6F)){ 'SA' }
elseif($codepoint -eq 0xAA70) { 'SA' }
elseif(($codepoint -ge 0xAA71) -and ($codepoint -le 0xAA76)){ 'SA' }
elseif(($codepoint -ge 0xAA77) -and ($codepoint -le 0xAA79)){ 'SA' }
elseif($codepoint -eq 0xAA7A) { 'SA' }
elseif($codepoint -eq 0xAA7B) { 'SA' }
elseif($codepoint -eq 0xAA7C) { 'SA' }
elseif($codepoint -eq 0xAA7D) { 'SA' }
elseif(($codepoint -ge 0xAA7E) -and ($codepoint -le 0xAA7F)){ 'SA' }
elseif(($codepoint -ge 0xAA80) -and ($codepoint -le 0xAAAF)){ 'SA' }
elseif($codepoint -eq 0xAAB0) { 'SA' }
elseif($codepoint -eq 0xAAB1) { 'SA' }
elseif(($codepoint -ge 0xAAB2) -and ($codepoint -le 0xAAB4)){ 'SA' }
elseif(($codepoint -ge 0xAAB5) -and ($codepoint -le 0xAAB6)){ 'SA' }
elseif(($codepoint -ge 0xAAB7) -and ($codepoint -le 0xAAB8)){ 'SA' }
elseif(($codepoint -ge 0xAAB9) -and ($codepoint -le 0xAABD)){ 'SA' }
elseif(($codepoint -ge 0xAABE) -and ($codepoint -le 0xAABF)){ 'SA' }
elseif($codepoint -eq 0xAAC0) { 'SA' }
elseif($codepoint -eq 0xAAC1) { 'SA' }
elseif($codepoint -eq 0xAAC2) { 'SA' }
elseif(($codepoint -ge 0xAADB) -and ($codepoint -le 0xAADC)){ 'SA' }
elseif($codepoint -eq 0xAADD) { 'SA' }
elseif(($codepoint -ge 0xAADE) -and ($codepoint -le 0xAADF)){ 'SA' }
elseif(($codepoint -ge 0xAAE0) -and ($codepoint -le 0xAAEA)){ 'AL' }
elseif($codepoint -eq 0xAAEB) { 'CM' }
elseif(($codepoint -ge 0xAAEC) -and ($codepoint -le 0xAAED)){ 'CM' }
elseif(($codepoint -ge 0xAAEE) -and ($codepoint -le 0xAAEF)){ 'CM' }
elseif(($codepoint -ge 0xAAF0) -and ($codepoint -le 0xAAF1)){ 'BA' }
elseif($codepoint -eq 0xAAF2) { 'AL' }
elseif(($codepoint -ge 0xAAF3) -and ($codepoint -le 0xAAF4)){ 'AL' }
elseif($codepoint -eq 0xAAF5) { 'CM' }
elseif($codepoint -eq 0xAAF6) { 'CM' }
elseif(($codepoint -ge 0xAB01) -and ($codepoint -le 0xAB06)){ 'AL' }
elseif(($codepoint -ge 0xAB09) -and ($codepoint -le 0xAB0E)){ 'AL' }
elseif(($codepoint -ge 0xAB11) -and ($codepoint -le 0xAB16)){ 'AL' }
elseif(($codepoint -ge 0xAB20) -and ($codepoint -le 0xAB26)){ 'AL' }
elseif(($codepoint -ge 0xAB28) -and ($codepoint -le 0xAB2E)){ 'AL' }
elseif(($codepoint -ge 0xAB30) -and ($codepoint -le 0xAB5A)){ 'AL' }
elseif($codepoint -eq 0xAB5B) { 'AL' }
elseif(($codepoint -ge 0xAB5C) -and ($codepoint -le 0xAB5F)){ 'AL' }
elseif(($codepoint -ge 0xAB60) -and ($codepoint -le 0xAB65)){ 'AL' }
elseif(($codepoint -ge 0xAB70) -and ($codepoint -le 0xABBF)){ 'AL' }
elseif(($codepoint -ge 0xABC0) -and ($codepoint -le 0xABE2)){ 'AL' }
elseif(($codepoint -ge 0xABE3) -and ($codepoint -le 0xABE4)){ 'CM' }
elseif($codepoint -eq 0xABE5) { 'CM' }
elseif(($codepoint -ge 0xABE6) -and ($codepoint -le 0xABE7)){ 'CM' }
elseif($codepoint -eq 0xABE8) { 'CM' }
elseif(($codepoint -ge 0xABE9) -and ($codepoint -le 0xABEA)){ 'CM' }
elseif($codepoint -eq 0xABEB) { 'BA' }
elseif($codepoint -eq 0xABEC) { 'CM' }
elseif($codepoint -eq 0xABED) { 'CM' }
elseif(($codepoint -ge 0xABF0) -and ($codepoint -le 0xABF9)){ 'NU' }
elseif(($codepoint -ge 0xD7B0) -and ($codepoint -le 0xD7C6)){ 'JV' }
elseif(($codepoint -ge 0xD7CB) -and ($codepoint -le 0xD7FB)){ 'JT' }
elseif(($codepoint -ge 0xD800) -and ($codepoint -le 0xDB7F)){ 'SG' }
elseif(($codepoint -ge 0xDB80) -and ($codepoint -le 0xDBFF)){ 'SG' }
elseif(($codepoint -ge 0xDC00) -and ($codepoint -le 0xDFFF)){ 'SG' }
elseif(($codepoint -ge 0xE000) -and ($codepoint -le 0xF8FF)){ 'XX' }
elseif(($codepoint -ge 0xF900) -and ($codepoint -le 0xFA6D)){ 'ID' }
elseif(($codepoint -ge 0xFA6E) -and ($codepoint -le 0xFA6F)){ 'ID' }
elseif(($codepoint -ge 0xFA70) -and ($codepoint -le 0xFAD9)){ 'ID' }
elseif(($codepoint -ge 0xFADA) -and ($codepoint -le 0xFAFF)){ 'ID' }
elseif(($codepoint -ge 0xFB00) -and ($codepoint -le 0xFB06)){ 'AL' }
elseif(($codepoint -ge 0xFB13) -and ($codepoint -le 0xFB17)){ 'AL' }
elseif($codepoint -eq 0xFB1D) { 'HL' }
elseif($codepoint -eq 0xFB1E) { 'CM' }
elseif(($codepoint -ge 0xFB1F) -and ($codepoint -le 0xFB28)){ 'HL' }
elseif($codepoint -eq 0xFB29) { 'AL' }
elseif(($codepoint -ge 0xFB2A) -and ($codepoint -le 0xFB36)){ 'HL' }
elseif(($codepoint -ge 0xFB38) -and ($codepoint -le 0xFB3C)){ 'HL' }
elseif($codepoint -eq 0xFB3E) { 'HL' }
elseif(($codepoint -ge 0xFB40) -and ($codepoint -le 0xFB41)){ 'HL' }
elseif(($codepoint -ge 0xFB43) -and ($codepoint -le 0xFB44)){ 'HL' }
elseif(($codepoint -ge 0xFB46) -and ($codepoint -le 0xFB4F)){ 'HL' }
elseif(($codepoint -ge 0xFB50) -and ($codepoint -le 0xFBB1)){ 'AL' }
elseif(($codepoint -ge 0xFBB2) -and ($codepoint -le 0xFBC1)){ 'AL' }
elseif(($codepoint -ge 0xFBD3) -and ($codepoint -le 0xFD3D)){ 'AL' }
elseif($codepoint -eq 0xFD3E) { 'CL' }
elseif($codepoint -eq 0xFD3F) { 'OP' }
elseif(($codepoint -ge 0xFD50) -and ($codepoint -le 0xFD8F)){ 'AL' }
elseif(($codepoint -ge 0xFD92) -and ($codepoint -le 0xFDC7)){ 'AL' }
elseif(($codepoint -ge 0xFDF0) -and ($codepoint -le 0xFDFB)){ 'AL' }
elseif($codepoint -eq 0xFDFC) { 'PO' }
elseif($codepoint -eq 0xFDFD) { 'AL' }
elseif(($codepoint -ge 0xFE00) -and ($codepoint -le 0xFE0F)){ 'CM' }
elseif($codepoint -eq 0xFE10) { 'IS' }
elseif(($codepoint -ge 0xFE11) -and ($codepoint -le 0xFE12)){ 'CL' }
elseif(($codepoint -ge 0xFE13) -and ($codepoint -le 0xFE14)){ 'IS' }
elseif(($codepoint -ge 0xFE15) -and ($codepoint -le 0xFE16)){ 'EX' }
elseif($codepoint -eq 0xFE17) { 'OP' }
elseif($codepoint -eq 0xFE18) { 'CL' }
elseif($codepoint -eq 0xFE19) { 'IN' }
elseif(($codepoint -ge 0xFE20) -and ($codepoint -le 0xFE2F)){ 'CM' }
elseif($codepoint -eq 0xFE30) { 'ID' }
elseif(($codepoint -ge 0xFE31) -and ($codepoint -le 0xFE32)){ 'ID' }
elseif(($codepoint -ge 0xFE33) -and ($codepoint -le 0xFE34)){ 'ID' }
elseif($codepoint -eq 0xFE35) { 'OP' }
elseif($codepoint -eq 0xFE36) { 'CL' }
elseif($codepoint -eq 0xFE37) { 'OP' }
elseif($codepoint -eq 0xFE38) { 'CL' }
elseif($codepoint -eq 0xFE39) { 'OP' }
elseif($codepoint -eq 0xFE3A) { 'CL' }
elseif($codepoint -eq 0xFE3B) { 'OP' }
elseif($codepoint -eq 0xFE3C) { 'CL' }
elseif($codepoint -eq 0xFE3D) { 'OP' }
elseif($codepoint -eq 0xFE3E) { 'CL' }
elseif($codepoint -eq 0xFE3F) { 'OP' }
elseif($codepoint -eq 0xFE40) { 'CL' }
elseif($codepoint -eq 0xFE41) { 'OP' }
elseif($codepoint -eq 0xFE42) { 'CL' }
elseif($codepoint -eq 0xFE43) { 'OP' }
elseif($codepoint -eq 0xFE44) { 'CL' }
elseif(($codepoint -ge 0xFE45) -and ($codepoint -le 0xFE46)){ 'ID' }
elseif($codepoint -eq 0xFE47) { 'OP' }
elseif($codepoint -eq 0xFE48) { 'CL' }
elseif(($codepoint -ge 0xFE49) -and ($codepoint -le 0xFE4C)){ 'ID' }
elseif(($codepoint -ge 0xFE4D) -and ($codepoint -le 0xFE4F)){ 'ID' }
elseif($codepoint -eq 0xFE50) { 'CL' }
elseif($codepoint -eq 0xFE51) { 'ID' }
elseif($codepoint -eq 0xFE52) { 'CL' }
elseif(($codepoint -ge 0xFE54) -and ($codepoint -le 0xFE55)){ 'NS' }
elseif(($codepoint -ge 0xFE56) -and ($codepoint -le 0xFE57)){ 'EX' }
elseif($codepoint -eq 0xFE58) { 'ID' }
elseif($codepoint -eq 0xFE59) { 'OP' }
elseif($codepoint -eq 0xFE5A) { 'CL' }
elseif($codepoint -eq 0xFE5B) { 'OP' }
elseif($codepoint -eq 0xFE5C) { 'CL' }
elseif($codepoint -eq 0xFE5D) { 'OP' }
elseif($codepoint -eq 0xFE5E) { 'CL' }
elseif(($codepoint -ge 0xFE5F) -and ($codepoint -le 0xFE61)){ 'ID' }
elseif($codepoint -eq 0xFE62) { 'ID' }
elseif($codepoint -eq 0xFE63) { 'ID' }
elseif(($codepoint -ge 0xFE64) -and ($codepoint -le 0xFE66)){ 'ID' }
elseif($codepoint -eq 0xFE68) { 'ID' }
elseif($codepoint -eq 0xFE69) { 'PR' }
elseif($codepoint -eq 0xFE6A) { 'PO' }
elseif($codepoint -eq 0xFE6B) { 'ID' }
elseif(($codepoint -ge 0xFE70) -and ($codepoint -le 0xFE74)){ 'AL' }
elseif(($codepoint -ge 0xFE76) -and ($codepoint -le 0xFEFC)){ 'AL' }
elseif($codepoint -eq 0xFEFF) { 'WJ' }
elseif($codepoint -eq 0xFF01) { 'EX' }
elseif(($codepoint -ge 0xFF02) -and ($codepoint -le 0xFF03)){ 'ID' }
elseif($codepoint -eq 0xFF04) { 'PR' }
elseif($codepoint -eq 0xFF05) { 'PO' }
elseif(($codepoint -ge 0xFF06) -and ($codepoint -le 0xFF07)){ 'ID' }
elseif($codepoint -eq 0xFF08) { 'OP' }
elseif($codepoint -eq 0xFF09) { 'CL' }
elseif($codepoint -eq 0xFF0A) { 'ID' }
elseif($codepoint -eq 0xFF0B) { 'ID' }
elseif($codepoint -eq 0xFF0C) { 'CL' }
elseif($codepoint -eq 0xFF0D) { 'ID' }
elseif($codepoint -eq 0xFF0E) { 'CL' }
elseif($codepoint -eq 0xFF0F) { 'ID' }
elseif(($codepoint -ge 0xFF10) -and ($codepoint -le 0xFF19)){ 'ID' }
elseif(($codepoint -ge 0xFF1A) -and ($codepoint -le 0xFF1B)){ 'NS' }
elseif(($codepoint -ge 0xFF1C) -and ($codepoint -le 0xFF1E)){ 'ID' }
elseif($codepoint -eq 0xFF1F) { 'EX' }
elseif($codepoint -eq 0xFF20) { 'ID' }
elseif(($codepoint -ge 0xFF21) -and ($codepoint -le 0xFF3A)){ 'ID' }
elseif($codepoint -eq 0xFF3B) { 'OP' }
elseif($codepoint -eq 0xFF3C) { 'ID' }
elseif($codepoint -eq 0xFF3D) { 'CL' }
elseif($codepoint -eq 0xFF3E) { 'ID' }
elseif($codepoint -eq 0xFF3F) { 'ID' }
elseif($codepoint -eq 0xFF40) { 'ID' }
elseif(($codepoint -ge 0xFF41) -and ($codepoint -le 0xFF5A)){ 'ID' }
elseif($codepoint -eq 0xFF5B) { 'OP' }
elseif($codepoint -eq 0xFF5C) { 'ID' }
elseif($codepoint -eq 0xFF5D) { 'CL' }
elseif($codepoint -eq 0xFF5E) { 'ID' }
elseif($codepoint -eq 0xFF5F) { 'OP' }
elseif($codepoint -eq 0xFF60) { 'CL' }
elseif($codepoint -eq 0xFF61) { 'CL' }
elseif($codepoint -eq 0xFF62) { 'OP' }
elseif($codepoint -eq 0xFF63) { 'CL' }
elseif($codepoint -eq 0xFF64) { 'CL' }
elseif($codepoint -eq 0xFF65) { 'NS' }
elseif($codepoint -eq 0xFF66) { 'ID' }
elseif(($codepoint -ge 0xFF67) -and ($codepoint -le 0xFF6F)){ 'CJ' }
elseif($codepoint -eq 0xFF70) { 'CJ' }
elseif(($codepoint -ge 0xFF71) -and ($codepoint -le 0xFF9D)){ 'ID' }
elseif(($codepoint -ge 0xFF9E) -and ($codepoint -le 0xFF9F)){ 'NS' }
elseif(($codepoint -ge 0xFFA0) -and ($codepoint -le 0xFFBE)){ 'ID' }
elseif(($codepoint -ge 0xFFC2) -and ($codepoint -le 0xFFC7)){ 'ID' }
elseif(($codepoint -ge 0xFFCA) -and ($codepoint -le 0xFFCF)){ 'ID' }
elseif(($codepoint -ge 0xFFD2) -and ($codepoint -le 0xFFD7)){ 'ID' }
elseif(($codepoint -ge 0xFFDA) -and ($codepoint -le 0xFFDC)){ 'ID' }
elseif($codepoint -eq 0xFFE0) { 'PO' }
elseif($codepoint -eq 0xFFE1) { 'PR' }
elseif($codepoint -eq 0xFFE2) { 'ID' }
elseif($codepoint -eq 0xFFE3) { 'ID' }
elseif($codepoint -eq 0xFFE4) { 'ID' }
elseif(($codepoint -ge 0xFFE5) -and ($codepoint -le 0xFFE6)){ 'PR' }
elseif($codepoint -eq 0xFFE8) { 'AL' }
elseif(($codepoint -ge 0xFFE9) -and ($codepoint -le 0xFFEC)){ 'AL' }
elseif(($codepoint -ge 0xFFED) -and ($codepoint -le 0xFFEE)){ 'AL' }
elseif(($codepoint -ge 0xFFF9) -and ($codepoint -le 0xFFFB)){ 'CM' }
elseif($codepoint -eq 0xFFFC) { 'CB' }
elseif($codepoint -eq 0xFFFD) { 'AI' }
elseif(($codepoint -ge 0x10000) -and ($codepoint -le 0x1000B)){ 'AL' }
elseif(($codepoint -ge 0x1000D) -and ($codepoint -le 0x10026)){ 'AL' }
elseif(($codepoint -ge 0x10028) -and ($codepoint -le 0x1003A)){ 'AL' }
elseif(($codepoint -ge 0x1003C) -and ($codepoint -le 0x1003D)){ 'AL' }
elseif(($codepoint -ge 0x1003F) -and ($codepoint -le 0x1004D)){ 'AL' }
elseif(($codepoint -ge 0x10050) -and ($codepoint -le 0x1005D)){ 'AL' }
elseif(($codepoint -ge 0x10080) -and ($codepoint -le 0x100FA)){ 'AL' }
elseif(($codepoint -ge 0x10100) -and ($codepoint -le 0x10102)){ 'BA' }
elseif(($codepoint -ge 0x10107) -and ($codepoint -le 0x10133)){ 'AL' }
elseif(($codepoint -ge 0x10137) -and ($codepoint -le 0x1013F)){ 'AL' }
elseif(($codepoint -ge 0x10140) -and ($codepoint -le 0x10174)){ 'AL' }
elseif(($codepoint -ge 0x10175) -and ($codepoint -le 0x10178)){ 'AL' }
elseif(($codepoint -ge 0x10179) -and ($codepoint -le 0x10189)){ 'AL' }
elseif(($codepoint -ge 0x1018A) -and ($codepoint -le 0x1018B)){ 'AL' }
elseif(($codepoint -ge 0x1018C) -and ($codepoint -le 0x1018E)){ 'AL' }
elseif(($codepoint -ge 0x10190) -and ($codepoint -le 0x1019B)){ 'AL' }
elseif($codepoint -eq 0x101A0) { 'AL' }
elseif(($codepoint -ge 0x101D0) -and ($codepoint -le 0x101FC)){ 'AL' }
elseif($codepoint -eq 0x101FD) { 'CM' }
elseif(($codepoint -ge 0x10280) -and ($codepoint -le 0x1029C)){ 'AL' }
elseif(($codepoint -ge 0x102A0) -and ($codepoint -le 0x102D0)){ 'AL' }
elseif($codepoint -eq 0x102E0) { 'CM' }
elseif(($codepoint -ge 0x102E1) -and ($codepoint -le 0x102FB)){ 'AL' }
elseif(($codepoint -ge 0x10300) -and ($codepoint -le 0x1031F)){ 'AL' }
elseif(($codepoint -ge 0x10320) -and ($codepoint -le 0x10323)){ 'AL' }
elseif(($codepoint -ge 0x1032D) -and ($codepoint -le 0x1032F)){ 'AL' }
elseif(($codepoint -ge 0x10330) -and ($codepoint -le 0x10340)){ 'AL' }
elseif($codepoint -eq 0x10341) { 'AL' }
elseif(($codepoint -ge 0x10342) -and ($codepoint -le 0x10349)){ 'AL' }
elseif($codepoint -eq 0x1034A) { 'AL' }
elseif(($codepoint -ge 0x10350) -and ($codepoint -le 0x10375)){ 'AL' }
elseif(($codepoint -ge 0x10376) -and ($codepoint -le 0x1037A)){ 'CM' }
elseif(($codepoint -ge 0x10380) -and ($codepoint -le 0x1039D)){ 'AL' }
elseif($codepoint -eq 0x1039F) { 'BA' }
elseif(($codepoint -ge 0x103A0) -and ($codepoint -le 0x103C3)){ 'AL' }
elseif(($codepoint -ge 0x103C8) -and ($codepoint -le 0x103CF)){ 'AL' }
elseif($codepoint -eq 0x103D0) { 'BA' }
elseif(($codepoint -ge 0x103D1) -and ($codepoint -le 0x103D5)){ 'AL' }
elseif(($codepoint -ge 0x10400) -and ($codepoint -le 0x1044F)){ 'AL' }
elseif(($codepoint -ge 0x10450) -and ($codepoint -le 0x1047F)){ 'AL' }
elseif(($codepoint -ge 0x10480) -and ($codepoint -le 0x1049D)){ 'AL' }
elseif(($codepoint -ge 0x104A0) -and ($codepoint -le 0x104A9)){ 'NU' }
elseif(($codepoint -ge 0x104B0) -and ($codepoint -le 0x104D3)){ 'AL' }
elseif(($codepoint -ge 0x104D8) -and ($codepoint -le 0x104FB)){ 'AL' }
elseif(($codepoint -ge 0x10500) -and ($codepoint -le 0x10527)){ 'AL' }
elseif(($codepoint -ge 0x10530) -and ($codepoint -le 0x10563)){ 'AL' }
elseif($codepoint -eq 0x1056F) { 'AL' }
elseif(($codepoint -ge 0x10600) -and ($codepoint -le 0x10736)){ 'AL' }
elseif(($codepoint -ge 0x10740) -and ($codepoint -le 0x10755)){ 'AL' }
elseif(($codepoint -ge 0x10760) -and ($codepoint -le 0x10767)){ 'AL' }
elseif(($codepoint -ge 0x10800) -and ($codepoint -le 0x10805)){ 'AL' }
elseif($codepoint -eq 0x10808) { 'AL' }
elseif(($codepoint -ge 0x1080A) -and ($codepoint -le 0x10835)){ 'AL' }
elseif(($codepoint -ge 0x10837) -and ($codepoint -le 0x10838)){ 'AL' }
elseif($codepoint -eq 0x1083C) { 'AL' }
elseif($codepoint -eq 0x1083F) { 'AL' }
elseif(($codepoint -ge 0x10840) -and ($codepoint -le 0x10855)){ 'AL' }
elseif($codepoint -eq 0x10857) { 'BA' }
elseif(($codepoint -ge 0x10858) -and ($codepoint -le 0x1085F)){ 'AL' }
elseif(($codepoint -ge 0x10860) -and ($codepoint -le 0x10876)){ 'AL' }
elseif(($codepoint -ge 0x10877) -and ($codepoint -le 0x10878)){ 'AL' }
elseif(($codepoint -ge 0x10879) -and ($codepoint -le 0x1087F)){ 'AL' }
elseif(($codepoint -ge 0x10880) -and ($codepoint -le 0x1089E)){ 'AL' }
elseif(($codepoint -ge 0x108A7) -and ($codepoint -le 0x108AF)){ 'AL' }
elseif(($codepoint -ge 0x108E0) -and ($codepoint -le 0x108F2)){ 'AL' }
elseif(($codepoint -ge 0x108F4) -and ($codepoint -le 0x108F5)){ 'AL' }
elseif(($codepoint -ge 0x108FB) -and ($codepoint -le 0x108FF)){ 'AL' }
elseif(($codepoint -ge 0x10900) -and ($codepoint -le 0x10915)){ 'AL' }
elseif(($codepoint -ge 0x10916) -and ($codepoint -le 0x1091B)){ 'AL' }
elseif($codepoint -eq 0x1091F) { 'BA' }
elseif(($codepoint -ge 0x10920) -and ($codepoint -le 0x10939)){ 'AL' }
elseif($codepoint -eq 0x1093F) { 'AL' }
elseif(($codepoint -ge 0x10980) -and ($codepoint -le 0x1099F)){ 'AL' }
elseif(($codepoint -ge 0x109A0) -and ($codepoint -le 0x109B7)){ 'AL' }
elseif(($codepoint -ge 0x109BC) -and ($codepoint -le 0x109BD)){ 'AL' }
elseif(($codepoint -ge 0x109BE) -and ($codepoint -le 0x109BF)){ 'AL' }
elseif(($codepoint -ge 0x109C0) -and ($codepoint -le 0x109CF)){ 'AL' }
elseif(($codepoint -ge 0x109D2) -and ($codepoint -le 0x109FF)){ 'AL' }
elseif($codepoint -eq 0x10A00) { 'AL' }
elseif(($codepoint -ge 0x10A01) -and ($codepoint -le 0x10A03)){ 'CM' }
elseif(($codepoint -ge 0x10A05) -and ($codepoint -le 0x10A06)){ 'CM' }
elseif(($codepoint -ge 0x10A0C) -and ($codepoint -le 0x10A0F)){ 'CM' }
elseif(($codepoint -ge 0x10A10) -and ($codepoint -le 0x10A13)){ 'AL' }
elseif(($codepoint -ge 0x10A15) -and ($codepoint -le 0x10A17)){ 'AL' }
elseif(($codepoint -ge 0x10A19) -and ($codepoint -le 0x10A33)){ 'AL' }
elseif(($codepoint -ge 0x10A38) -and ($codepoint -le 0x10A3A)){ 'CM' }
elseif($codepoint -eq 0x10A3F) { 'CM' }
elseif(($codepoint -ge 0x10A40) -and ($codepoint -le 0x10A47)){ 'AL' }
elseif(($codepoint -ge 0x10A50) -and ($codepoint -le 0x10A57)){ 'BA' }
elseif($codepoint -eq 0x10A58) { 'AL' }
elseif(($codepoint -ge 0x10A60) -and ($codepoint -le 0x10A7C)){ 'AL' }
elseif(($codepoint -ge 0x10A7D) -and ($codepoint -le 0x10A7E)){ 'AL' }
elseif($codepoint -eq 0x10A7F) { 'AL' }
elseif(($codepoint -ge 0x10A80) -and ($codepoint -le 0x10A9C)){ 'AL' }
elseif(($codepoint -ge 0x10A9D) -and ($codepoint -le 0x10A9F)){ 'AL' }
elseif(($codepoint -ge 0x10AC0) -and ($codepoint -le 0x10AC7)){ 'AL' }
elseif($codepoint -eq 0x10AC8) { 'AL' }
elseif(($codepoint -ge 0x10AC9) -and ($codepoint -le 0x10AE4)){ 'AL' }
elseif(($codepoint -ge 0x10AE5) -and ($codepoint -le 0x10AE6)){ 'CM' }
elseif(($codepoint -ge 0x10AEB) -and ($codepoint -le 0x10AEF)){ 'AL' }
elseif(($codepoint -ge 0x10AF0) -and ($codepoint -le 0x10AF5)){ 'BA' }
elseif($codepoint -eq 0x10AF6) { 'IN' }
elseif(($codepoint -ge 0x10B00) -and ($codepoint -le 0x10B35)){ 'AL' }
elseif(($codepoint -ge 0x10B39) -and ($codepoint -le 0x10B3F)){ 'BA' }
elseif(($codepoint -ge 0x10B40) -and ($codepoint -le 0x10B55)){ 'AL' }
elseif(($codepoint -ge 0x10B58) -and ($codepoint -le 0x10B5F)){ 'AL' }
elseif(($codepoint -ge 0x10B60) -and ($codepoint -le 0x10B72)){ 'AL' }
elseif(($codepoint -ge 0x10B78) -and ($codepoint -le 0x10B7F)){ 'AL' }
elseif(($codepoint -ge 0x10B80) -and ($codepoint -le 0x10B91)){ 'AL' }
elseif(($codepoint -ge 0x10B99) -and ($codepoint -le 0x10B9C)){ 'AL' }
elseif(($codepoint -ge 0x10BA9) -and ($codepoint -le 0x10BAF)){ 'AL' }
elseif(($codepoint -ge 0x10C00) -and ($codepoint -le 0x10C48)){ 'AL' }
elseif(($codepoint -ge 0x10C80) -and ($codepoint -le 0x10CB2)){ 'AL' }
elseif(($codepoint -ge 0x10CC0) -and ($codepoint -le 0x10CF2)){ 'AL' }
elseif(($codepoint -ge 0x10CFA) -and ($codepoint -le 0x10CFF)){ 'AL' }
elseif(($codepoint -ge 0x10E60) -and ($codepoint -le 0x10E7E)){ 'AL' }
elseif($codepoint -eq 0x11000) { 'CM' }
elseif($codepoint -eq 0x11001) { 'CM' }
elseif($codepoint -eq 0x11002) { 'CM' }
elseif(($codepoint -ge 0x11003) -and ($codepoint -le 0x11037)){ 'AL' }
elseif(($codepoint -ge 0x11038) -and ($codepoint -le 0x11046)){ 'CM' }
elseif(($codepoint -ge 0x11047) -and ($codepoint -le 0x11048)){ 'BA' }
elseif(($codepoint -ge 0x11049) -and ($codepoint -le 0x1104D)){ 'AL' }
elseif(($codepoint -ge 0x11052) -and ($codepoint -le 0x11065)){ 'AL' }
elseif(($codepoint -ge 0x11066) -and ($codepoint -le 0x1106F)){ 'NU' }
elseif($codepoint -eq 0x1107F) { 'CM' }
elseif(($codepoint -ge 0x11080) -and ($codepoint -le 0x11081)){ 'CM' }
elseif($codepoint -eq 0x11082) { 'CM' }
elseif(($codepoint -ge 0x11083) -and ($codepoint -le 0x110AF)){ 'AL' }
elseif(($codepoint -ge 0x110B0) -and ($codepoint -le 0x110B2)){ 'CM' }
elseif(($codepoint -ge 0x110B3) -and ($codepoint -le 0x110B6)){ 'CM' }
elseif(($codepoint -ge 0x110B7) -and ($codepoint -le 0x110B8)){ 'CM' }
elseif(($codepoint -ge 0x110B9) -and ($codepoint -le 0x110BA)){ 'CM' }
elseif(($codepoint -ge 0x110BB) -and ($codepoint -le 0x110BC)){ 'AL' }
elseif($codepoint -eq 0x110BD) { 'AL' }
elseif(($codepoint -ge 0x110BE) -and ($codepoint -le 0x110C1)){ 'BA' }
elseif(($codepoint -ge 0x110D0) -and ($codepoint -le 0x110E8)){ 'AL' }
elseif(($codepoint -ge 0x110F0) -and ($codepoint -le 0x110F9)){ 'NU' }
elseif(($codepoint -ge 0x11100) -and ($codepoint -le 0x11102)){ 'CM' }
elseif(($codepoint -ge 0x11103) -and ($codepoint -le 0x11126)){ 'AL' }
elseif(($codepoint -ge 0x11127) -and ($codepoint -le 0x1112B)){ 'CM' }
elseif($codepoint -eq 0x1112C) { 'CM' }
elseif(($codepoint -ge 0x1112D) -and ($codepoint -le 0x11134)){ 'CM' }
elseif(($codepoint -ge 0x11136) -and ($codepoint -le 0x1113F)){ 'NU' }
elseif(($codepoint -ge 0x11140) -and ($codepoint -le 0x11143)){ 'BA' }
elseif(($codepoint -ge 0x11150) -and ($codepoint -le 0x11172)){ 'AL' }
elseif($codepoint -eq 0x11173) { 'CM' }
elseif($codepoint -eq 0x11174) { 'AL' }
elseif($codepoint -eq 0x11175) { 'BB' }
elseif($codepoint -eq 0x11176) { 'AL' }
elseif(($codepoint -ge 0x11180) -and ($codepoint -le 0x11181)){ 'CM' }
elseif($codepoint -eq 0x11182) { 'CM' }
elseif(($codepoint -ge 0x11183) -and ($codepoint -le 0x111B2)){ 'AL' }
elseif(($codepoint -ge 0x111B3) -and ($codepoint -le 0x111B5)){ 'CM' }
elseif(($codepoint -ge 0x111B6) -and ($codepoint -le 0x111BE)){ 'CM' }
elseif(($codepoint -ge 0x111BF) -and ($codepoint -le 0x111C0)){ 'CM' }
elseif(($codepoint -ge 0x111C1) -and ($codepoint -le 0x111C4)){ 'AL' }
elseif(($codepoint -ge 0x111C5) -and ($codepoint -le 0x111C6)){ 'BA' }
elseif($codepoint -eq 0x111C7) { 'AL' }
elseif($codepoint -eq 0x111C8) { 'BA' }
elseif($codepoint -eq 0x111C9) { 'AL' }
elseif(($codepoint -ge 0x111CA) -and ($codepoint -le 0x111CC)){ 'CM' }
elseif($codepoint -eq 0x111CD) { 'AL' }
elseif(($codepoint -ge 0x111D0) -and ($codepoint -le 0x111D9)){ 'NU' }
elseif($codepoint -eq 0x111DA) { 'AL' }