/**
 * @license AngularJS v1.5.8
 * (c) 2010-2016 Google, Inc. http://angularjs.org
 * License: MIT
 */
(function(window, angular) {'use strict';

/******************************************************
 *         Generated file, do not modify              *
 *                                                    *
 *****************************************************/

function IDS_Y(cp) {
  if (0x0041 <= cp && cp <= 0x005A) return true;
  if (0x0061 <= cp && cp <= 0x007A) return true;
  if (cp === 0x00AA) return true;
  if (cp === 0x00B5) return true;
  if (cp === 0x00BA) return true;
  if (0x00C0 <= cp && cp <= 0x00D6) return true;
  if (0x00D8 <= cp && cp <= 0x00F6) return true;
  if (0x00F8 <= cp && cp <= 0x02C1) return true;
  if (0x02C6 <= cp && cp <= 0x02D1) return true;
  if (0x02E0 <= cp && cp <= 0x02E4) return true;
  if (cp === 0x02EC) return true;
  if (cp === 0x02EE) return true;
  if (0x0370 <= cp && cp <= 0x0374) return true;
  if (0x0376 <= cp && cp <= 0x0377) return true;
  if (0x037A <= cp && cp <= 0x037D) return true;
  if (cp === 0x037F) return true;
  if (cp === 0x0386) return true;
  if (0x0388 <= cp && cp <= 0x038A) return true;
  if (cp === 0x038C) return true;
  if (0x038E <= cp && cp <= 0x03A1) return true;
  if (0x03A3 <= cp && cp <= 0x03F5) return true;
  if (0x03F7 <= cp && cp <= 0x0481) return true;
  if (0x048A <= cp && cp <= 0x052F) return true;
  if (0x0531 <= cp && cp <= 0x0556) return true;
  if (cp === 0x0559) return true;
  if (0x0561 <= cp && cp <= 0x0587) return true;
  if (0x05D0 <= cp && cp <= 0x05EA) return true;
  if (0x05F0 <= cp && cp <= 0x05F2) return true;
  if (0x0620 <= cp && cp <= 0x064A) return true;
  if (0x066E <= cp && cp <= 0x066F) return true;
  if (0x0671 <= cp && cp <= 0x06D3) return true;
  if (cp === 0x06D5) return true;
  if (0x06E5 <= cp && cp <= 0x06E6) return true;
  if (0x06EE <= cp && cp <= 0x06EF) return true;
  if (0x06FA <= cp && cp <= 0x06FC) return true;
  if (cp === 0x06FF) return true;
  if (cp === 0x0710) return true;
  if (0x0712 <= cp && cp <= 0x072F) return true;
  if (0x074D <= cp && cp <= 0x07A5) return true;
  if (cp === 0x07B1) return true;
  if (0x07CA <= cp && cp <= 0x07EA) return true;
  if (0x07F4 <= cp && cp <= 0x07F5) return true;
  if (cp === 0x07FA) return true;
  if (0x0800 <= cp && cp <= 0x0815) return true;
  if (cp === 0x081A) return true;
  if (cp === 0x0824) return true;
  if (cp === 0x0828) return true;
  if (0x0840 <= cp && cp <= 0x0858) return true;
  if (0x08A0 <= cp && cp <= 0x08B4) return true;
  if (0x0904 <= cp && cp <= 0x0939) return true;
  if (cp === 0x093D) return true;
  if (cp === 0x0950) return true;
  if (0x0958 <= cp && cp <= 0x0961) return true;
  if (0x0971 <= cp && cp <= 0x0980) return true;
  if (0x0985 <= cp && cp <= 0x098C) return true;
  if (0x098F <= cp && cp <= 0x0990) return true;
  if (0x0993 <= cp && cp <= 0x09A8) return true;
  if (0x09AA <= cp && cp <= 0x09B0) return true;
  if (cp === 0x09B2) return true;
  if (0x09B6 <= cp && cp <= 0x09B9) return true;
  if (cp === 0x09BD) return true;
  if (cp === 0x09CE) return true;
  if (0x09DC <= cp && cp <= 0x09DD) return true;
  if (0x09DF <= cp && cp <= 0x09E1) return true;
  if (0x09F0 <= cp && cp <= 0x09F1) return true;
  if (0x0A05 <= cp && cp <= 0x0A0A) return true;
  if (0x0A0F <= cp && cp <= 0x0A10) return true;
  if (0x0A13 <= cp && cp <= 0x0A28) return true;
  if (0x0A2A <= cp && cp <= 0x0A30) return true;
  if (0x0A32 <= cp && cp <= 0x0A33) return true;
  if (0x0A35 <= cp && cp <= 0x0A36) return true;
  if (0x0A38 <= cp && cp <= 0x0A39) return true;
  if (0x0A59 <= cp && cp <= 0x0A5C) return true;
  if (cp === 0x0A5E) return true;
  if (0x0A72 <= cp && cp <= 0x0A74) return true;
  if (0x0A85 <= cp && cp <= 0x0A8D) return true;
  if (0x0A8F <= cp && cp <= 0x0A91) return true;
  if (0x0A93 <= cp && cp <= 0x0AA8) return true;
  if (0x0AAA <= cp && cp <= 0x0AB0) return true;
  if (0x0AB2 <= cp && cp <= 0x0AB3) return true;
  if (0x0AB5 <= cp && cp <= 0x0AB9) return true;
  if (cp === 0x0ABD) return true;
  if (cp === 0x0AD0) return true;
  if (0x0AE0 <= cp && cp <= 0x0AE1) return true;
  if (cp === 0x0AF9) return true;
  if (0x0B05 <= cp && cp <= 0x0B0C) return true;
  if (0x0B0F <= cp && cp <= 0x0B10) return true;
  if (0x0B13 <= cp && cp <= 0x0B28) return true;
  if (0x0B2A <= cp && cp <= 0x0B30) return true;
  if (0x0B32 <= cp && cp <= 0x0B33) return true;
  if (0x0B35 <= cp && cp <= 0x0B39) return true;
  if (cp === 0x0B3D) return true;
  if (0x0B5C <= cp && cp <= 0x0B5D) return true;
  if (0x0B5F <= cp && cp <= 0x0B61) return true;
  if (cp === 0x0B71) return true;
  if (cp === 0x0B83) return true;
  if (0x0B85 <= cp && cp <= 0x0B8A) return true;
  if (0x0B8E <= cp && cp <= 0x0B90) return true;
  if (0x0B92 <= cp && cp <= 0x0B95) return true;
  if (0x0B99 <= cp && cp <= 0x0B9A) return true;
  if (cp === 0x0B9C) return true;
  if (0x0B9E <= cp && cp <= 0x0B9F) return true;
  if (0x0BA3 <= cp && cp <= 0x0BA4) return true;
  if (0x0BA8 <= cp && cp <= 0x0BAA) return true;
  if (0x0BAE <= cp && cp <= 0x0BB9) return true;
  if (cp === 0x0BD0) return true;
  if (0x0C05 <= cp && cp <= 0x0C0C) return true;
  if (0x0C0E <= cp && cp <= 0x0C10) return true;
  if (0x0C12 <= cp && cp <= 0x0C28) return true;
  if (0x0C2A <= cp && cp <= 0x0C39) return true;
  if (cp === 0x0C3D) return true;
  if (0x0C58 <= cp && cp <= 0x0C5A) return true;
  if (0x0C60 <= cp && cp <= 0x0C61) return true;
  if (0x0C85 <= cp && cp <= 0x0C8C) return true;
  if (0x0C8E <= cp && cp <= 0x0C90) return true;
  if (0x0C92 <= cp && cp <= 0x0CA8) return true;
  if (0x0CAA <= cp && cp <= 0x0CB3) return true;
  if (0x0CB5 <= cp && cp <= 0x0CB9) return true;
  if (cp === 0x0CBD) return true;
  if (cp === 0x0CDE) return true;
  if (0x0CE0 <= cp && cp <= 0x0CE1) return true;
  if (0x0CF1 <= cp && cp <= 0x0CF2) return true;
  if (0x0D05 <= cp && cp <= 0x0D0C) return true;
  if (0x0D0E <= cp && cp <= 0x0D10) return true;
  if (0x0D12 <= cp && cp <= 0x0D3A) return true;
  if (cp === 0x0D3D) return true;
  if (cp === 0x0D4E) return true;
  if (0x0D5F <= cp && cp <= 0x0D61) return true;
  if (0x0D7A <= cp && cp <= 0x0D7F) return true;
  if (0x0D85 <= cp && cp <= 0x0D96) return true;
  if (0x0D9A <= cp && cp <= 0x0DB1) return true;
  if (0x0DB3 <= cp && cp <= 0x0DBB) return true;
  if (cp === 0x0DBD) return true;
  if (0x0DC0 <= cp && cp <= 0x0DC6) return true;
  if (0x0E01 <= cp && cp <= 0x0E30) return true;
  if (0x0E32 <= cp && cp <= 0x0E33) return true;
  if (0x0E40 <= cp && cp <= 0x0E46) return true;
  if (0x0E81 <= cp && cp <= 0x0E82) return true;
  if (cp === 0x0E84) return true;
  if (0x0E87 <= cp && cp <= 0x0E88) return true;
  if (cp === 0x0E8A) return true;
  if (cp === 0x0E8D) return true;
  if (0x0E94 <= cp && cp <= 0x0E97) return true;
  if (0x0E99 <= cp && cp <= 0x0E9F) return true;
  if (0x0EA1 <= cp && cp <= 0x0EA3) return true;
  if (cp === 0x0EA5) return true;
  if (cp === 0x0EA7) return true;
  if (0x0EAA <= cp && cp <= 0x0EAB) return true;
  if (0x0EAD <= cp && cp <= 0x0EB0) return true;
  if (0x0EB2 <= cp && cp <= 0x0EB3) return true;
  if (cp === 0x0EBD) return true;
  if (0x0EC0 <= cp && cp <= 0x0EC4) return true;
  if (cp === 0x0EC6) return true;
  if (0x0EDC <= cp && cp <= 0x0EDF) return true;
  if (cp === 0x0F00) return true;
  if (0x0F40 <= cp && cp <= 0x0F47) return true;
  if (0x0F49 <= cp && cp <= 0x0F6C) return true;
  if (0x0F88 <= cp && cp <= 0x0F8C) return true;
  if (0x1000 <= cp && cp <= 0x102A) return true;
  if (cp === 0x103F) return true;
  if (0x1050 <= cp && cp <= 0x1055) return true;
  if (0x105A <= cp && cp <= 0x105D) return true;
  if (cp === 0x1061) return true;
  if (0x1065 <= cp && cp <= 0x1066) return true;
  if (0x106E <= cp && cp <= 0x1070) return true;
  if (0x1075 <= cp && cp <= 0x1081) return true;
  if (cp === 0x108E) return true;
  if (0x10A0 <= cp && cp <= 0x10C5) return true;
  if (cp === 0x10C7) return true;
  if (cp === 0x10CD) return true;
  if (0x10D0 <= cp && cp <= 0x10FA) return true;
  if (0x10FC <= cp && cp <= 0x1248) return true;
  if (0x124A <= cp && cp <= 0x124D) return true;
  if (0x1250 <= cp && cp <= 0x1256) return true;
  if (cp === 0x1258) return true;
  if (0x125A <= cp && cp <= 0x125D) return true;
  if (0x1260 <= cp && cp <= 0x1288) return true;
  if (0x128A <= cp && cp <= 0x128D) return true;
  if (0x1290 <= cp && cp <= 0x12B0) return true;
  if (0x12B2 <= cp && cp <= 0x12B5) return true;
  if (0x12B8 <= cp && cp <= 0x12BE) return true;
  if (cp === 0x12C0) return true;
  if (0x12C2 <= cp && cp <= 0x12C5) return true;
  if (0x12C8 <= cp && cp <= 0x12D6) return true;
  if (0x12D8 <= cp && cp <= 0x1310) return true;
  if (0x1312 <= cp && cp <= 0x1315) return true;
  if (0x1318 <= cp && cp <= 0x135A) return true;
  if (0x1380 <= cp && cp <= 0x138F) return true;
  if (0x13A0 <= cp && cp <= 0x13F5) return true;
  if (0x13F8 <= cp && cp <= 0x13FD) return true;
  if (0x1401 <= cp && cp <= 0x166C) return true;
  if (0x166F <= cp && cp <= 0x167F) return true;
  if (0x1681 <= cp && cp <= 0x169A) return true;
  if (0x16A0 <= cp && cp <= 0x16EA) return true;
  if (0x16EE <= cp && cp <= 0x16F8) return true;
  if (0x1700 <= cp && cp <= 0x170C) return true;
  if (0x170E <= cp && cp <= 0x1711) return true;
  if (0x1720 <= cp && cp <= 0x1731) return true;
  if (0x1740 <= cp && cp <= 0x1751) return true;
  if (0x1760 <= cp && cp <= 0x176C) return true;
  if (0x176E <= cp && cp <= 0x1770) return true;
  if (0x1780 <= cp && cp <= 0x17B3) return true;
  if (cp === 0x17D7) return true;
  if (cp === 0x17DC) return true;
  if (0x1820 <= cp && cp <= 0x1877) return true;
  if (0x1880 <= cp && cp <= 0x18A8) return true;
  if (cp === 0x18AA) return true;
  if (0x18B0 <= cp && cp <= 0x18F5) return true;
  if (0x1900 <= cp && cp <= 0x191E) return true;
  if (0x1950 <= cp && cp <= 0x196D) return true;
  if (0x1970 <= cp && cp <= 0x1974) return true;
  if (0x1980 <= cp && cp <= 0x19AB) return true;
  if (0x19B0 <= cp && cp <= 0x19C9) return true;
  if (0x1A00 <= cp && cp <= 0x1A16) return true;
  if (0x1A20 <= cp && cp <= 0x1A54) return true;
  if (cp === 0x1AA7) return true;
  if (0x1B05 <= cp && cp <= 0x1B33) return true;
  if (0x1B45 <= cp && cp <= 0x1B4B) return true;
  if (0x1B83 <= cp && cp <= 0x1BA0) return true;
  if (0x1BAE <= cp && cp <= 0x1BAF) return true;
  if (0x1BBA <= cp && cp <= 0x1BE5) return true;
  if (0x1C00 <= cp && cp <= 0x1C23) return true;
  if (0x1C4D <= cp && cp <= 0x1C4F) return true;
  if (0x1C5A <= cp && cp <= 0x1C7D) return true;
  if (0x1CE9 <= cp && cp <= 0x1CEC) return true;
  if (0x1CEE <= cp && cp <= 0x1CF1) return true;
  if (0x1CF5 <= cp && cp <= 0x1CF6) return true;
  if (0x1D00 <= cp && cp <= 0x1DBF) return true;
  if (0x1E00 <= cp && cp <= 0x1F15) return true;
  if (0x1F18 <= cp && cp <= 0x1F1D) return true;
  if (0x1F20 <= cp && cp <= 0x1F45) return true;
  if (0x1F48 <= cp && cp <= 0x1F4D) return true;
  if (0x1F50 <= cp && cp <= 0x1F57) return true;
  if (cp === 0x1F59) return true;
  if (cp === 0x1F5B) return true;
  if (cp === 0x1F5D) return true;
  if (0x1F5F <= cp && cp <= 0x1F7D) return true;
  if (0x1F80 <= cp && cp <= 0x1FB4) return true;
  if (0x1FB6 <= cp && cp <= 0x1FBC) return true;
  if (cp === 0x1FBE) return true;
  if (0x1FC2 <= cp && cp <= 0x1FC4) return true;
  if (0x1FC6 <= cp && cp <= 0x1FCC) return true;
  if (0x1FD0 <= cp && cp <= 0x1FD3) return true;
  if (0x1FD6 <= cp && cp <= 0x1FDB) return true;
  if (0x1FE0 <= cp && cp <= 0x1FEC) return true;
  if (0x1FF2 <= cp && cp <= 0x1FF4) return true;
  if (0x1FF6 <= cp && cp <= 0x1FFC) return true;
  if (cp === 0x2071) return true;
  if (cp === 0x207F) return true;
  if (0x2090 <= cp && cp <= 0x209C) return true;
  if (cp === 0x2102) return true;
  if (cp === 0x2107) return true;
  if (0x210A <= cp && cp <= 0x2113) return true;
  if (cp === 0x2115) return true;
  if (0x2118 <= cp && cp <= 0x211D) return true;
  if (cp === 0x2124) return true;
  if (cp === 0x2126) return true;
  if (cp === 0x2128) return true;
  if (0x212A <= cp && cp <= 0x2139) return true;
  if (0x213C <= cp && cp <= 0x213F) return true;
  if (0x2145 <= cp && cp <= 0x2149) return true;
  if (cp === 0x214E) return true;
  if (0x2160 <= cp && cp <= 0x2188) return true;
  if (0x2C00 <= cp && cp <= 0x2C2E) return true;
  if (0x2C30 <= cp && cp <= 0x2C5E) return true;
  if (0x2C60 <= cp && cp <= 0x2CE4) return true;
  if (0x2CEB <= cp && cp <= 0x2CEE) return true;
  if (0x2CF2 <= cp && cp <= 0x2CF3) return true;
  if (0x2D00 <= cp && cp <= 0x2D25) return true;
  if (cp === 0x2D27) return true;
  if (cp === 0x2D2D) return true;
  if (0x2D30 <= cp && cp <= 0x2D67) return true;
  if (cp === 0x2D6F) return true;
  if (0x2D80 <= cp && cp <= 0x2D96) return true;
  if (0x2DA0 <= cp && cp <= 0x2DA6) return true;
  if (0x2DA8 <= cp && cp <= 0x2DAE) return true;
  if (0x2DB0 <= cp && cp <= 0x2DB6) return true;
  if (0x2DB8 <= cp && cp <= 0x2DBE) return true;
  if (0x2DC0 <= cp && cp <= 0x2DC6) return true;
  if (0x2DC8 <= cp && cp <= 0x2DCE) return true;
  if (0x2DD0 <= cp && cp <= 0x2DD6) return true;
  if (0x2DD8 <= cp && cp <= 0x2DDE) return true;
  if (0x3005 <= cp && cp <= 0x3007) return true;
  if (0x3021 <= cp && cp <= 0x3029) return true;
  if (0x3031 <= cp && cp <= 0x3035) return true;
  if (0x3038 <= cp && cp <= 0x303C) return true;
  if (0x3041 <= cp && cp <= 0x3096) return true;
  if (0x309B <= cp && cp <= 0x309F) return true;
  if (0x30A1 <= cp && cp <= 0x30FA) return true;
  if (0x30FC <= cp && cp <= 0x30FF) return true;
  if (0x3105 <= cp && cp <= 0x312D) return true;
  if (0x3131 <= cp && cp <= 0x318E) return true;
  if (0x31A0 <= cp && cp <= 0x31BA) return true;
  if (0x31F0 <= cp && cp <= 0x31FF) return true;
  if (0x3400 <= cp && cp <= 0x4DB5) return true;
  if (0x4E00 <= cp && cp <= 0x9FD5) return true;
  if (0xA000 <= cp && cp <= 0xA48C) return true;
  if (0xA4D0 <= cp && cp <= 0xA4FD) return true;
  if (0xA500 <= cp && cp <= 0xA60C) return true;
  if (0xA610 <= cp && cp <= 0xA61F) return true;
  if (0xA62A <= cp && cp <= 0xA62B) return true;
  if (0xA640 <= cp && cp <= 0xA66E) return true;
  if (0xA67F <= cp && cp <= 0xA69D) return true;
  if (0xA6A0 <= cp && cp <= 0xA6EF) return true;
  if (0xA717 <= cp && cp <= 0xA71F) return true;
  if (0xA722 <= cp && cp <= 0xA788) return true;
  if (0xA78B <= cp && cp <= 0xA7AD) return true;
  if (0xA7B0 <= cp && cp <= 0xA7B7) return true;
  if (0xA7F7 <= cp && cp <= 0xA801) return true;
  if (0xA803 <= cp && cp <= 0xA805) return true;
  if (0xA807 <= cp && cp <= 0xA80A) return true;
  if (0xA80C <= cp && cp <= 0xA822) return true;
  if (0xA840 <= cp && cp <= 0xA873) return true;
  if (0xA882 <= cp && cp <= 0xA8B3) return true;
  if (0xA8F2 <= cp && cp <= 0xA8F7) return true;
  if (cp === 0xA8FB) return true;
  if (cp === 0xA8FD) return true;
  if (0xA90A <= cp && cp <= 0xA925) return true;
  if (0xA930 <= cp && cp <= 0xA946) return true;
  if (0xA960 <= cp && cp <= 0xA97C) return true;
  if (0xA984 <= cp && cp <= 0xA9B2) return true;
  if (cp === 0xA9CF) return true;
  if (0xA9E0 <= cp && cp <= 0xA9E4) return true;
  if (0xA9E6 <= cp && cp <= 0xA9EF) return true;
  if (0xA9FA <= cp && cp <= 0xA9FE) return true;
  if (0xAA00 <= cp && cp <= 0xAA28) return true;
  if (0xAA40 <= cp && cp <= 0xAA42) return true;
  if (0xAA44 <= cp && cp <= 0xAA4B) return true;
  if (0xAA60 <= cp && cp <= 0xAA76) return true;
  if (cp === 0xAA7A) return true;
  if (0xAA7E <= cp && cp <= 0xAAAF) return true;
  if (cp === 0xAAB1) return true;
  if (0xAAB5 <= cp && cp <= 0xAAB6) return true;
  if (0xAAB9 <= cp && cp <= 0xAABD) return true;
  if (cp === 0xAAC0) return true;
  if (cp === 0xAAC2) return true;
  if (0xAADB <= cp && cp <= 0xAADD) return true;
  if (0xAAE0 <= cp && cp <= 0xAAEA) return true;
  if (0xAAF2 <= cp && cp <= 0xAAF4) return true;
  if (0xAB01 <= cp && cp <= 0xAB06) return true;
  if (0xAB09 <= cp && cp <= 0xAB0E) return true;
  if (0xAB11 <= cp && cp <= 0xAB16) return true;
  if (0xAB20 <= cp && cp <= 0xAB26) return true;
  if (0xAB28 <= cp && cp <= 0xAB2E) return true;
  if (0xAB30 <= cp && cp <= 0xAB5A) return true;
  if (0xAB5C <= cp && cp <= 0xAB65) return true;
  if (0xAB70 <= cp && cp <= 0xABE2) return true;
  if (0xAC00 <= cp && cp <= 0xD7A3) return true;
  if (0xD7B0 <= cp && cp <= 0xD7C6) return true;
  if (0xD7CB <= cp && cp <= 0xD7FB) return true;
  if (0xF900 <= cp && cp <= 0xFA6D) return true;
  if (0xFA70 <= cp && cp <= 0xFAD9) return true;
  if (0xFB00 <= cp && cp <= 0xFB06) return true;
  if (0xFB13 <= cp && cp <= 0xFB17) return true;
  if (cp === 0xFB1D) return true;
  if (0xFB1F <= cp && cp <= 0xFB28) return true;
  if (0xFB2A <= cp && cp <= 0xFB36) return true;
  if (0xFB38 <= cp && cp <= 0xFB3C) return true;
  if (cp === 0xFB3E) return true;
  if (0xFB40 <= cp && cp <= 0xFB41) return true;
  if (0xFB43 <= cp && cp <= 0xFB44) return true;
  if (0xFB46 <= cp && cp <= 0xFBB1) return true;
  if (0xFBD3 <= cp && cp <= 0xFD3D) return true;
  if (0xFD50 <= cp && cp <= 0xFD8F) return true;
  if (0xFD92 <= cp && cp <= 0xFDC7) return true;
  if (0xFDF0 <= cp && cp <= 0xFDFB) return true;
  if (0xFE70 <= cp && cp <= 0xFE74) return true;
  if (0xFE76 <= cp && cp <= 0xFEFC) return true;
  if (0xFF21 <= cp && cp <= 0xFF3A) return true;
  if (0xFF41 <= cp && cp <= 0xFF5A) return true;
  if (0xFF66 <= cp && cp <= 0xFFBE) return true;
  if (0xFFC2 <= cp && cp <= 0xFFC7) return true;
  if (0xFFCA <= cp && cp <= 0xFFCF) return true;
  if (0xFFD2 <= cp && cp <= 0xFFD7) return true;
  if (0xFFDA <= cp && cp <= 0xFFDC) return true;
  if (0x10000 <= cp && cp <= 0x1000B) return true;
  if (0x1000D <= cp && cp <= 0x10026) return true;
  if (0x10028 <= cp && cp <= 0x1003A) return true;
  if (0x1003C <= cp && cp <= 0x1003D) return true;
  if (0x1003F <= cp && cp <= 0x1004D) return true;
  if (0x10050 <= cp && cp <= 0x1005D) return true;
  if (0x10080 <= cp && cp <= 0x100FA) return true;
  if (0x10140 <= cp && cp <= 0x10174) return true;
  if (0x10280 <= cp && cp <= 0x1029C) return true;
  if (0x102A0 <= cp && cp <= 0x102D0) return true;
  if (0x10300 <= cp && cp <= 0x1031F) return true;
  if (0x10330 <= cp && cp <= 0x1034A) return true;
  if (0x10350 <= cp && cp <= 0x10375) return true;
  if (0x10380 <= cp && cp <= 0x1039D) return true;
  if (0x103A0 <= cp && cp <= 0x103C3) return true;
  if (0x103C8 <= cp && cp <= 0x103CF) return true;
  if (0x103D1 <= cp && cp <= 0x103D5) return true;
  if (0x10400 <= cp && cp <= 0x1049D) return true;
  if (0x10500 <= cp && cp <= 0x10527) return true;
  if (0x10530 <= cp && cp <= 0x10563) return true;
  if (0x10600 <= cp && cp <= 0x10736) return true;
  if (0x10740 <= cp && cp <= 0x10755) return true;
  if (0x10760 <= cp && cp <= 0x10767) return true;
  if (0x10800 <= cp && cp <= 0x10805) return true;
  if (cp === 0x10808) return true;
  if (0x1080A <= cp && cp <= 0x10835) return true;
  if (0x10837 <= cp && cp <= 0x10838) return true;
  if (cp === 0x1083C) return true;
  if (0x1083F <= cp && cp <= 0x10855) return true;
  if (0x10860 <= cp && cp <= 0x10876) return true;
  if (0x10880 <= cp && cp <= 0x1089E) return true;
  if (0x108E0 <= cp && cp <= 0x108F2) return true;
  if (0x108F4 <= cp && cp <= 0x108F5) return true;
  if (0x10900 <= cp && cp <= 0x10915) return true;
  if (0x10920 <= cp && cp <= 0x10939) return true;
  if (0x10980 <= cp && cp <= 0x109B7) return true;
  if (0x109BE <= cp && cp <= 0x109BF) return true;
  if (cp === 0x10A00) return true;
  if (0x10A10 <= cp && cp <= 0x10A13) return true;
  if (0x10A15 <= cp && cp <= 0x10A17) return true;
  if (0x10A19 <= cp && cp <= 0x10A33) return true;
  if (0x10A60 <= cp && cp <= 0x10A7C) return true;
  if (0x10A80 <= cp && cp <= 0x10A9C) return true;
  if (0x10AC0 <= cp && cp <= 0x10AC7) return true;
  if (0x10AC9 <= cp && cp <= 0x10AE4) return true;
  if (0x10B00 <= cp && cp <= 0x10B35) return true;
  if (0x10B40 <= cp && cp <= 0x10B55) return true;
  if (0x10B60 <= cp && cp <= 0x10B72) return true;
  if (0x10B80 <= cp && cp <= 0x10B91) return true;
  if (0x10C00 <= cp && cp <= 0x10C48) return true;
  if (0x10C80 <= cp && cp <= 0x10CB2) return true;
  if (0x10CC0 <= cp && cp <= 0x10CF2) return true;
  if (0x11003 <= cp && cp <= 0x11037) return true;
  if (0x11083 <= cp && cp <= 0x110AF) return true;
  if (0x110D0 <= cp && cp <= 0x110E8) return true;
  if (0x11103 <= cp && cp <= 0x11126) return true;
  if (0x11150 <= cp && cp <= 0x11172) return true;
  if (cp === 0x11176) return true;
  if (0x11183 <= cp && cp <= 0x111B2) return true;
  if (0x111C1 <= cp && cp <= 0x111C4) return true;
  if (cp === 0x111DA) return true;
  if (cp === 0x111DC) return true;
  if (0x11200 <= cp && cp <= 0x11211) return true;
  if (0x11213 <= cp && cp <= 0x1122B) return true;
  if (0x11280 <= cp && cp <= 0x11286) return true;
  if (cp === 0x11288) return true;
  if (0x1128A <= cp && cp <= 0x1128D) return true;
  if (0x1128F <= cp && cp <= 0x1129D) return true;
  if (0x1129F <= cp && cp <= 0x112A8) return true;
  if (0x112B0 <= cp && cp <= 0x112DE) return true;
  if (0x11305 <= cp && cp <= 0x1130C) return true;
  if (0x1130F <= cp && cp <= 0x11310) return true;
  if (0x11313 <= cp && cp <= 0x11328) return true;
  if (0x1132A <= cp && cp <= 0x11330) return true;
  if (0x11332 <= cp && cp <= 0x11333) return true;
  if (0x11335 <= cp && cp <= 0x11339) return true;
  if (cp === 0x1133D) return true;
  if (cp === 0x11350) return true;
  if (0x1135D <= cp && cp <= 0x11361) return true;
  if (0x11480 <= cp && cp <= 0x114AF) return true;
  if (0x114C4 <= cp && cp <= 0x114C5) return true;
  if (cp === 0x114C7) return true;
  if (0x11580 <= cp && cp <= 0x115AE) return true;
  if (0x115D8 <= cp && cp <= 0x115DB) return true;
  if (0x11600 <= cp && cp <= 0x1162F) return true;
  if (cp === 0x11644) return true;
  if (0x11680 <= cp && cp <= 0x116AA) return true;
  if (0x11700 <= cp && cp <= 0x11719) return true;
  if (0x118A0 <= cp && cp <= 0x118DF) return true;
  if (cp === 0x118FF) return true;
  if (0x11AC0 <= cp && cp <= 0x11AF8) return true;
  if (0x12000 <= cp && cp <= 0x12399) return true;
  if (0x12400 <= cp && cp <= 0x1246E) return true;
  if (0x12480 <= cp && cp <= 0x12543) return true;
  if (0x13000 <= cp && cp <= 0x1342E) return true;
  if (0x14400 <= cp && cp <= 0x14646) return true;
  if (0x16800 <= cp && cp <= 0x16A38) return true;
  if (0x16A40 <= cp && cp <= 0x16A5E) return true;
  if (0x16AD0 <= cp && cp <= 0x16AED) return true;
  if (0x16B00 <= cp && cp <= 0x16B2F) return true;
  if (0x16B40 <= cp && cp <= 0x16B43) return true;
  if (0x16B63 <= cp && cp <= 0x16B77) return true;
  if (0x16B7D <= cp && cp <= 0x16B8F) return true;
  if (0x16F00 <= cp && cp <= 0x16F44) return true;
  if (cp === 0x16F50) return true;
  if (0x16F93 <= cp && cp <= 0x16F9F) return true;
  if (0x1B000 <= cp && cp <= 0x1B001) return true;
  if (0x1BC00 <= cp && cp <= 0x1BC6A) return true;
  if (0x1BC70 <= cp && cp <= 0x1BC7C) return true;
  if (0x1BC80 <= cp && cp <= 0x1BC88) return true;
  if (0x1BC90 <= cp && cp <= 0x1BC99) return true;
  if (0x1D400 <= cp && cp <= 0x1D454) return true;
  if (0x1D456 <= cp && cp <= 0x1D49C) return true;
  if (0x1D49E <= cp && cp <= 0x1D49F) return true;
  if (cp === 0x1D4A2) return true;
  if (0x1D4A5 <= cp && cp <= 0x1D4A6) return true;
  if (0x1D4A9 <= cp && cp <= 0x1D4AC) return true;
  if (0x1D4AE <= cp && cp <= 0x1D4B9) return true;
  if (cp === 0x1D4BB) return true;
  if (0x1D4BD <= cp && cp <= 0x1D4C3) return true;
  if (0x1D4C5 <= cp && cp <= 0x1D505) return true;
  if (0x1D507 <= cp && cp <= 0x1D50A) return true;
  if (0x1D50D <= cp && cp <= 0x1D514) return true;
  if (0x1D516 <= cp && cp <= 0x1D51C) return true;
  if (0x1D51E <= cp && cp <= 0x1D539) return true;
  if (0x1D53B <= cp && cp <= 0x1D53E) return true;
  if (0x1D540 <= cp && cp <= 0x1D544) return true;
  if (cp === 0x1D546) return true;
  if (0x1D54A <= cp && cp <= 0x1D550) return true;
  if (0x1D552 <= cp && cp <= 0x1D6A5) return true;
  if (0x1D6A8 <= cp && cp <= 0x1D6C0) return true;
  if (0x1D6C2 <= cp && cp <= 0x1D6DA) return true;
  if (0x1D6DC <= cp && cp <= 0x1D6FA) return true;
  if (0x1D6FC <= cp && cp <= 0x1D714) return true;
  if (0x1D716 <= cp && cp <= 0x1D734) return true;
  if (0x1D736 <= cp && cp <= 0x1D74E) return true;
  if (0x1D750 <= cp && cp <= 0x1D76E) return true;
  if (0x1D770 <= cp && cp <= 0x1D788) return true;
  if (0x1D78A <= cp && cp <= 0x1D7A8) return true;
  if (0x1D7AA <= cp && cp <= 0x1D7C2) return true;
  if (0x1D7C4 <= cp && cp <= 0x1D7CB) return true;
  if (0x1E800 <= cp && cp <= 0x1E8C4) return true;
  if (0x1EE00 <= cp && cp <= 0x1EE03) return true;
  if (0x1EE05 <= cp && cp <= 0x1EE1F) return true;
  if (0x1EE21 <= cp && cp <= 0x1EE22) return true;
  if (cp === 0x1EE24) return true;
  if (cp === 0x1EE27) return true;
  if (0x1EE29 <= cp && cp <= 0x1EE32) return true;
  if (0x1EE34 <= cp && cp <= 0x1EE37) return true;
  if (cp === 0x1EE39) return true;
  if (cp === 0x1EE3B) return true;
  if (cp === 0x1EE42) return true;
  if (cp === 0x1EE47) return true;
  if (cp === 0x1EE49) return true;
  if (cp === 0x1EE4B) return true;
  if (0x1EE4D <= cp && cp <= 0x1EE4F) return true;
  if (0x1EE51 <= cp && cp <= 0x1EE52) return true;
  if (cp === 0x1EE54) return true;
  if (cp === 0x1EE57) return true;
  if (cp === 0x1EE59) return true;
  if (cp === 0x1EE5B) return true;
  if (cp === 0x1EE5D) return true;
  if (cp === 0x1EE5F) return true;
  if (0x1EE61 <= cp && cp <= 0x1EE62) return true;
  if (cp === 0x1EE64) return true;
  if (0x1EE67 <= cp && cp <= 0x1EE6A) return true;
  if (0x1EE6C <= cp && cp <= 0x1EE72) return true;
  if (0x1EE74 <= cp && cp <= 0x1EE77) return true;
  if (0x1EE79 <= cp && cp <= 0x1EE7C) return true;
  if (cp === 0x1EE7E) return true;
  if (0x1EE80 <= cp && cp <= 0x1EE89) return true;
  if (0x1EE8B <= cp && cp <= 0x1EE9B) return true;
  if (0x1EEA1 <= cp && cp <= 0x1EEA3) return true;
  if (0x1EEA5 <= cp && cp <= 0x1EEA9) return true;
  if (0x1EEAB <= cp && cp <= 0x1EEBB) return true;
  if (0x20000 <= cp && cp <= 0x2A6D6) return true;
  if (0x2A700 <= cp && cp <= 0x2B734) return true;
  if (0x2B740 <= cp && cp <= 0x2B81D) return true;
  if (0x2B820 <= cp && cp <= 0x2CEA1) return true;
  if (0x2F800 <= cp && cp <= 0x2FA1D) return true;
  return false;
}
function IDC_Y(cp) {
  if (0x0030 <= cp && cp <= 0x0039) return true;
  if (0x0041 <= cp && cp <= 0x005A) return true;
  if (cp === 0x005F) return true;
  if (0x0061 <= cp && cp <= 0x007A) return true;
  if (cp === 0x00AA) return true;
  if (cp === 0x00B5) return true;
  if (cp === 0x00B7) return true;
  if (cp === 0x00BA) return true;
  if (0x00C0 <= cp && cp <= 0x00D6) return true;
  if (0x00D8 <= cp && cp <= 0x00F6) return true;
  if (0x00F8 <= cp && cp <= 0x02C1) return true;
  if (0x02C6 <= cp && cp <= 0x02D1) return true;
  if (0x02E0 <= cp && cp <= 0x02E4) return true;
  if (cp === 0x02EC) return true;
  if (cp === 0x02EE) return true;
  if (0x0300 <= cp && cp <= 0x0374) return true;
  if (0x0376 <= cp && cp <= 0x0377) return true;
  if (0x037A <= cp && cp <= 0x037D) return true;
  if (cp === 0x037F) return true;
  if (0x0386 <= cp && cp <= 0x038A) return true;
  if (cp === 0x038C) return true;
  if (0x038E <= cp && cp <= 0x03A1) return true;
  if (0x03A3 <= cp && cp <= 0x03F5) return true;
  if (0x03F7 <= cp && cp <= 0x0481) return true;
  if (0x0483 <= cp && cp <= 0x0487) return true;
  if (0x048A <= cp && cp <= 0x052F) return true;
  if (0x0531 <= cp && cp <= 0x0556) return true;
  if (cp === 0x0559) return true;
  if (0x0561 <= cp && cp <= 0x0587) return true;
  if (0x0591 <= cp && cp <= 0x05BD) return true;
  if (cp === 0x05BF) return true;
  if (0x05C1 <= cp && cp <= 0x05C2) return true;
  if (0x05C4 <= cp && cp <= 0x05C5) return true;
  if (cp === 0x05C7) return true;
  if (0x05D0 <= cp && cp <= 0x05EA) return true;
  if (0x05F0 <= cp && cp <= 0x05F2) return true;
  if (0x0610 <= cp && cp <= 0x061A) return true;
  if (0x0620 <= cp && cp <= 0x0669) return true;
  if (0x066E <= cp && cp <= 0x06D3) return true;
  if (0x06D5 <= cp && cp <= 0x06DC) return true;
  if (0x06DF <= cp && cp <= 0x06E8) return true;
  if (0x06EA <= cp && cp <= 0x06FC) return true;
  if (cp === 0x06FF) return true;
  if (0x0710 <= cp && cp <= 0x074A) return true;
  if (0x074D <= cp && cp <= 0x07B1) return true;
  if (0x07C0 <= cp && cp <= 0x07F5) return true;
  if (cp === 0x07FA) return true;
  if (0x0800 <= cp && cp <= 0x082D) return true;
  if (0x0840 <= cp && cp <= 0x085B) return true;
  if (0x08A0 <= cp && cp <= 0x08B4) return true;
  if (0x08E3 <= cp && cp <= 0x0963) return true;
  if (0x0966 <= cp && cp <= 0x096F) return true;
  if (0x0971 <= cp && cp <= 0x0983) return true;
  if (0x0985 <= cp && cp <= 0x098C) return true;
  if (0x098F <= cp && cp <= 0x0990) return true;
  if (0x0993 <= cp && cp <= 0x09A8) return true;
  if (0x09AA <= cp && cp <= 0x09B0) return true;
  if (cp === 0x09B2) return true;
  if (0x09B6 <= cp && cp <= 0x09B9) return true;
  if (0x09BC <= cp && cp <= 0x09C4) return true;
  if (0x09C7 <= cp && cp <= 0x09C8) return true;
  if (0x09CB <= cp && cp <= 0x09CE) return true;
  if (cp === 0x09D7) return true;
  if (0x09DC <= cp && cp <= 0x09DD) return true;
  if (0x09DF <= cp && cp <= 0x09E3) return true;
  if (0x09E6 <= cp && cp <= 0x09F1) return true;
  if (0x0A01 <= cp && cp <= 0x0A03) return true;
  if (0x0A05 <= cp && cp <= 0x0A0A) return true;
  if (0x0A0F <= cp && cp <= 0x0A10) return true;
  if (0x0A13 <= cp && cp <= 0x0A28) return true;
  if (0x0A2A <= cp && cp <= 0x0A30) return true;
  if (0x0A32 <= cp && cp <= 0x0A33) return true;
  if (0x0A35 <= cp && cp <= 0x0A36) return true;
  if (0x0A38 <= cp && cp <= 0x0A39) return true;
  if (cp === 0x0A3C) return true;
  if (0x0A3E <= cp && cp <= 0x0A42) return true;
  if (0x0A47 <= cp && cp <= 0x0A48) return true;
  if (0x0A4B <= cp && cp <= 0x0A4D) return true;
  if (cp === 0x0A51) return true;
  if (0x0A59 <= cp && cp <= 0x0A5C) return true;
  if (cp === 0x0A5E) return true;
  if (0x0A66 <= cp && cp <= 0x0A75) return true;
  if (0x0A81 <= cp && cp <= 0x0A83) return true;
  if (0x0A85 <= cp && cp <= 0x0A8D) return true;
  if (0x0A8F <= cp && cp <= 0x0A91) return true;
  if (0x0A93 <= cp && cp <= 0x0AA8) return true;
  if (0x0AAA <= cp && cp <= 0x0AB0) return true;
  if (0x0AB2 <= cp && cp <= 0x0AB3) return true;
  if (0x0AB5 <= cp && cp <= 0x0AB9) return true;
  if (0x0ABC <= cp && cp <= 0x0AC5) return true;
  if (0x0AC7 <= cp && cp <= 0x0AC9) return true;
  if (0x0ACB <= cp && cp <= 0x0ACD) return true;
  if (cp === 0x0AD0) return true;
  if (0x0AE0 <= cp && cp <= 0x0AE3) return true;
  if (0x0AE6 <= cp && cp <= 0x0AEF) return true;
  if (cp === 0x0AF9) return true;
  if (0x0B01 <= cp && cp <= 0x0B03) return true;
  if (0x0B05 <= cp && cp <= 0x0B0C) return true;
  if (0x0B0F <= cp && cp <= 0x0B10) return true;
  if (0x0B13 <= cp && cp <= 0x0B28) return true;
  if (0x0B2A <= cp && cp <= 0x0B30) return true;
  if (0x0B32 <= cp && cp <= 0x0B33) return true;
  if (0x0B35 <= cp && cp <= 0x0B39) return true;
  if (0x0B3C <= cp && cp <= 0x0B44) return true;
  if (0x0B47 <= cp && cp <= 0x0B48) return true;
  if (0x0B4B <= cp && cp <= 0x0B4D) return true;
  if (0x0B56 <= cp && cp <= 0x0B57) return true;
  if (0x0B5C <= cp && cp <= 0x0B5D) return true;
  if (0x0B5F <= cp && cp <= 0x0B63) return true;
  if (0x0B66 <= cp && cp <= 0x0B6F) return true;
  if (cp === 0x0B71) return true;
  if (0x0B82 <= cp && cp <= 0x0B83) return true;
  if (0x0B85 <= cp && cp <= 0x0B8A) return true;
  if (0x0B8E <= cp && cp <= 0x0B90) return true;
  if (0x0B92 <= cp && cp <= 0x0B95) return true;
  if (0x0B99 <= cp && cp <= 0x0B9A) return true;
  if (cp === 0x0B9C) return true;
  if (0x0B9E <= cp && cp <= 0x0B9F) return true;
  if (0x0BA3 <= cp && cp <= 0x0BA4) return true;
  if (0x0BA8 <= cp && cp <= 0x0BAA) return true;
  if (0x0BAE <= cp && cp <= 0x0BB9) return true;
  if (0x0BBE <= cp && cp <= 0x0BC2) return true;
  if (0x0BC6 <= cp && cp <= 0x0BC8) return true;
  if (0x0BCA <= cp && cp <= 0x0BCD) return true;
  if (cp === 0x0BD0) return true;
  if (cp === 0x0BD7) return true;
  if (0x0BE6 <= cp && cp <= 0x0BEF) return true;
  if (0x0C00 <= cp && cp <= 0x0C03) return true;
  if (0x0C05 <= cp && cp <= 0x0C0C) return true;
  if (0x0C0E <= cp && cp <= 0x0C10) return true;
  if (0x0C12 <= cp && cp <= 0x0C28) return true;
  if (0x0C2A <= cp && cp <= 0x0C39) return true;
  if (0x0C3D <= cp && cp <= 0x0C44) return true;
  if (0x0C46 <= cp && cp <= 0x0C48) return true;
  if (0x0C4A <= cp && cp <= 0x0C4D) return true;
  if (0x0C55 <= cp && cp <= 0x0C56) return true;
  if (0x0C58 <= cp && cp <= 0x0C5A) return true;
  if (0x0C60 <= cp && cp <= 0x0C63) return true;
  if (0x0C66 <= cp && cp <= 0x0C6F) return true;
  if (0x0C81 <= cp && cp <= 0x0C83) return true;
  if (0x0C85 <= cp && cp <= 0x0C8C) return true;
  if (0x0C8E <= cp && cp <= 0x0C90) return true;
  if (0x0C92 <= cp && cp <= 0x0CA8) return true;
  if (0x0CAA <= cp && cp <= 0x0CB3) return true;
  if (0x0CB5 <= cp && cp <= 0x0CB9) return true;
  if (0x0CBC <= cp && cp <= 0x0CC4) return true;
  if (0x0CC6 <= cp && cp <= 0x0CC8) return true;
  if (0x0CCA <= cp && cp <= 0x0CCD) return true;
  if (0x0CD5 <= cp && cp <= 0x0CD6) return true;
  if (cp === 0x0CDE) return true;
  if (0x0CE0 <= cp && cp <= 0x0CE3) return true;
  if (0x0CE6 <= cp && cp <= 0x0CEF) return true;
  if (0x0CF1 <= cp && cp <= 0x0CF2) return true;
  if (0x0D01 <= cp && cp <= 0x0D03) return true;
  if (0x0D05 <= cp && cp <= 0x0D0C) return true;
  if (0x0D0E <= cp && cp <= 0x0D10) return true;
  if (0x0D12 <= cp && cp <= 0x0D3A) return true;
  if (0x0D3D <= cp && cp <= 0x0D44) return true;
  if (0x0D46 <= cp && cp <= 0x0D48) return true;
  if (0x0D4A <= cp && cp <= 0x0D4E) return true;
  if (cp === 0x0D57) return true;
  if (0x0D5F <= cp && cp <= 0x0D63) return true;
  if (0x0D66 <= cp && cp <= 0x0D6F) return true;
  if (0x0D7A <= cp && cp <= 0x0D7F) return true;
  if (0x0D82 <= cp && cp <= 0x0D83) return true;
  if (0x0D85 <= cp && cp <= 0x0D96) return true;
  if (0x0D9A <= cp && cp <= 0x0DB1) return true;
  if (0x0DB3 <= cp && cp <= 0x0DBB) return true;
  if (cp === 0x0DBD) return true;
  if (0x0DC0 <= cp && cp <= 0x0DC6) return true;
  if (cp === 0x0DCA) return true;
  if (0x0DCF <= cp && cp <= 0x0DD4) return true;
  if (cp === 0x0DD6) return true;
  if (0x0DD8 <= cp && cp <= 0x0DDF) return true;
  if (0x0DE6 <= cp && cp <= 0x0DEF) return true;
  if (0x0DF2 <= cp && cp <= 0x0DF3) return true;
  if (0x0E01 <= cp && cp <= 0x0E3A) return true;
  if (0x0E40 <= cp && cp <= 0x0E4E) return true;
  if (0x0E50 <= cp && cp <= 0x0E59) return true;
  if (0x0E81 <= cp && cp <= 0x0E82) return true;
  if (cp === 0x0E84) return true;
  if (0x0E87 <= cp && cp <= 0x0E88) return true;
  if (cp === 0x0E8A) return true;
  if (cp === 0x0E8D) return true;
  if (0x0E94 <= cp && cp <= 0x0E97) return true;
  if (0x0E99 <= cp && cp <= 0x0E9F) return true;
  if (0x0EA1 <= cp && cp <= 0x0EA3) return true;
  if (cp === 0x0EA5) return true;
  if (cp === 0x0EA7) return true;
  if (0x0EAA <= cp && cp <= 0x0EAB) return true;
  if (0x0EAD <= cp && cp <= 0x0EB9) return true;
  if (0x0EBB <= cp && cp <= 0x0EBD) return true;
  if (0x0EC0 <= cp && cp <= 0x0EC4) return true;
  if (cp === 0x0EC6) return true;
  if (0x0EC8 <= cp && cp <= 0x0ECD) return true;
  if (0x0ED0 <= cp && cp <= 0x0ED9) return true;
  if (0x0EDC <= cp && cp <= 0x0EDF) return true;
  if (cp === 0x0F00) return true;
  if (0x0F18 <= cp && cp <= 0x0F19) return true;
  if (0x0F20 <= cp && cp <= 0x0F29) return true;
  if (cp === 0x0F35) return true;
  if (cp === 0x0F37) return true;
  if (cp === 0x0F39) return true;
  if (0x0F3E <= cp && cp <= 0x0F47) return true;
  if (0x0F49 <= cp && cp <= 0x0F6C) return true;
  if (0x0F71 <= cp && cp <= 0x0F84) return true;
  if (0x0F86 <= cp && cp <= 0x0F97) return true;
  if (0x0F99 <= cp && cp <= 0x0FBC) return true;
  if (cp === 0x0FC6) return true;
  if (0x1000 <= cp && cp <= 0x1049) return true;
  if (0x1050 <= cp && cp <= 0x109D) return true;
  if (0x10A0 <= cp && cp <= 0x10C5) return true;
  if (cp === 0x10C7) return true;
  if (cp === 0x10CD) return true;
  if (0x10D0 <= cp && cp <= 0x10FA) return true;
  if (0x10FC <= cp && cp <= 0x1248) return true;
  if (0x124A <= cp && cp <= 0x124D) return true;
  if (0x1250 <= cp && cp <= 0x1256) return true;
  if (cp === 0x1258) return true;
  if (0x125A <= cp && cp <= 0x125D) return true;
  if (0x1260 <= cp && cp <= 0x1288) return true;
  if (0x128A <= cp && cp <= 0x128D) return true;
  if (0x1290 <= cp && cp <= 0x12B0) return true;
  if (0x12B2 <= cp && cp <= 0x12B5) return true;
  if (0x12B8 <= cp && cp <= 0x12BE) return true;
  if (cp === 0x12C0) return true;
  if (0x12C2 <= cp && cp <= 0x12C5) return true;
  if (0x12C8 <= cp && cp <= 0x12D6) return true;
  if (0x12D8 <= cp && cp <= 0x1310) return true;
  if (0x1312 <= cp && cp <= 0x1315) return true;
  if (0x1318 <= cp && cp <= 0x135A) return true;
  if (0x135D <= cp && cp <= 0x135F) return true;
  if (0x1369 <= cp && cp <= 0x1371) return true;
  if (0x1380 <= cp && cp <= 0x138F) return true;
  if (0x13A0 <= cp && cp <= 0x13F5) return true;
  if (0x13F8 <= cp && cp <= 0x13FD) return true;
  if (0x1401 <= cp && cp <= 0x166C) return true;
  if (0x166F <= cp && cp <= 0x167F) return true;
  if (0x1681 <= cp && cp <= 0x169A) return true;
  if (0x16A0 <= cp && cp <= 0x16EA) return true;
  if (0x16EE <= cp && cp <= 0x16F8) return true;
  if (0x1700 <= cp && cp <= 0x170C) return true;
  if (0x170E <= cp && cp <= 0x1714) return true;
  if (0x1720 <= cp && cp <= 0x1734) return true;
  if (0x1740 <= cp && cp <= 0x1753) return true;
  if (0x1760 <= cp && cp <= 0x176C) return true;
  if (0x176E <= cp && cp <= 0x1770) return true;
  if (0x1772 <= cp && cp <= 0x1773) return true;
  if (0x1780 <= cp && cp <= 0x17D3) return true;
  if (cp === 0x17D7) return true;
  if (0x17DC <= cp && cp <= 0x17DD) return true;
  if (0x17E0 <= cp && cp <= 0x17E9) return true;
  if (0x180B <= cp && cp <= 0x180D) return true;
  if (0x1810 <= cp && cp <= 0x1819) return true;
  if (0x1820 <= cp && cp <= 0x1877) return true;
  if (0x1880 <= cp && cp <= 0x18AA) return true;
  if (0x18B0 <= cp && cp <= 0x18F5) return true;
  if (0x1900 <= cp && cp <= 0x191E) return true;
  if (0x1920 <= cp && cp <= 0x192B) return true;
  if (0x1930 <= cp && cp <= 0x193B) return true;
  if (0x1946 <= cp && cp <= 0x196D) return true;
  if (0x1970 <= cp && cp <= 0x1974) return true;
  if (0x1980 <= cp && cp <= 0x19AB) return true;
  if (0x19B0 <= cp && cp <= 0x19C9) return true;
  if (0x19D0 <= cp && cp <= 0x19DA) return true;
  if (0x1A00 <= cp && cp <= 0x1A1B) return true;
  if (0x1A20 <= cp && cp <= 0x1A5E) return true;
  if (0x1A60 <= cp && cp <= 0x1A7C) return true;
  if (0x1A7F <= cp && cp <= 0x1A89) return true;
  if (0x1A90 <= cp && cp <= 0x1A99) return true;
  if (cp === 0x1AA7) return true;
  if (0x1AB0 <= cp && cp <= 0x1ABD) return true;
  if (0x1B00 <= cp && cp <= 0x1B4B) return true;
  if (0x1B50 <= cp && cp <= 0x1B59) return true;
  if (0x1B6B <= cp && cp <= 0x1B73) return true;
  if (0x1B80 <= cp && cp <= 0x1BF3) return true;
  if (0x1C00 <= cp && cp <= 0x1C37) return true;
  if (0x1C40 <= cp && cp <= 0x1C49) return true;
  if (0x1C4D <= cp && cp <= 0x1C7D) return true;
  if (0x1CD0 <= cp && cp <= 0x1CD2) return true;
  if (0x1CD4 <= cp && cp <= 0x1CF6) return true;
  if (0x1CF8 <= cp && cp <= 0x1CF9) return true;
  if (0x1D00 <= cp && cp <= 0x1DF5) return true;
  if (0x1DFC <= cp && cp <= 0x1F15) return true;
  if (0x1F18 <= cp && cp <= 0x1F1D) return true;
  if (0x1F20 <= cp && cp <= 0x1F45) return true;
  if (0x1F48 <= cp && cp <= 0x1F4D) return true;
  if (0x1F50 <= cp && cp <= 0x1F57) return true;
  if (cp === 0x1F59) return true;
  if (cp === 0x1F5B) return true;
  if (cp === 0x1F5D) return true;
  if (0x1F5F <= cp && cp <= 0x1F7D) return true;
  if (0x1F80 <= cp && cp <= 0x1FB4) return true;
  if (0x1FB6 <= cp && cp <= 0x1FBC) return true;
  if (cp === 0x1FBE) return true;
  if (0x1FC2 <= cp && cp <= 0x1FC4) return true;
  if (0x1FC6 <= cp && cp <= 0x1FCC) return true;
  if (0x1FD0 <= cp && cp <= 0x1FD3) return true;
  if (0x1FD6 <= cp && cp <= 0x1FDB) return true;
  if (0x1FE0 <= cp && cp <= 0x1FEC) return true;
  if (0x1FF2 <= cp && cp <= 0x1FF4) return true;
  if (0x1FF6 <= cp && cp <= 0x1FFC) return true;
  if (0x203F <= cp && cp <= 0x2040) return true;
  if (cp === 0x2054) return true;
  if (cp === 0x2071) return true;
  if (cp === 0x207F) return true;
  if (0x2090 <= cp && cp <= 0x209C) return true;
  if (0x20D0 <= cp && cp <= 0x20DC) return true;
  if (cp === 0x20E1) return true;
  if (0x20E5 <= cp && cp <= 0x20F0) return true;
  if (cp === 0x2102) return true;
  if (cp === 0x2107) return true;
  if (0x210A <= cp && cp <= 0x2113) return true;
  if (cp === 0x2115) return true;
  if (0x2118 <= cp && cp <= 0x211D) return true;
  if (cp === 0x2124) return true;
  if (cp === 0x2126) return true;
  if (cp === 0x2128) return true;
  if (0x212A <= cp && cp <= 0x2139) return true;
  if (0x213C <= cp && cp <= 0x213F) return true;
  if (0x2145 <= cp && cp <= 0x2149) return true;
  if (cp === 0x214E) return true;
  if (0x2160 <= cp && cp <= 0x2188) return true;
  if (0x2C00 <= cp && cp <= 0x2C2E) return true;
  if (0x2C30 <= cp && cp <= 0x2C5E) return true;
  if (0x2C60 <= cp && cp <= 0x2CE4) return true;
  if (0x2CEB <= cp && cp <= 0x2CF3) return true;
  if (0x2D00 <= cp && cp <= 0x2D25) return true;
  if (cp === 0x2D27) return true;
  if (cp === 0x2D2D) return true;
  if (0x2D30 <= cp && cp <= 0x2D67) return true;
  if (cp === 0x2D6F) return true;
  if (0x2D7F <= cp && cp <= 0x2D96) return true;
  if (0x2DA0 <= cp && cp <= 0x2DA6) return true;
  if (0x2DA8 <= cp && cp <= 0x2DAE) return true;
  if (0x2DB0 <= cp && cp <= 0x2DB6) return true;
  if (0x2DB8 <= cp && cp <= 0x2DBE) return true;
  if (0x2DC0 <= cp && cp <= 0x2DC6) return true;
  if (0x2DC8 <= cp && cp <= 0x2DCE) return true;
  if (0x2DD0 <= cp && cp <= 0x2DD6) return true;
  if (0x2DD8 <= cp && cp <= 0x2DDE) return true;
  if (0x2DE0 <= cp && cp <= 0x2DFF) return true;
  if (0x3005 <= cp && cp <= 0x3007) return true;
  if (0x3021 <= cp && cp <= 0x302F) return true;
  if (0x3031 <= cp && cp <= 0x3035) return true;
  if (0x3038 <= cp && cp <= 0x303C) return true;
  if (0x3041 <= cp && cp <= 0x3096) return true;
  if (0x3099 <= cp && cp <= 0x309F) return true;
  if (0x30A1 <= cp && cp <= 0x30FA) return true;
  if (0x30FC <= cp && cp <= 0x30FF) return true;
  if (0x3105 <= cp && cp <= 0x312D) return true;
  if (0x3131 <= cp && cp <= 0x318E) return true;
  if (0x31A0 <= cp && cp <= 0x31BA) return true;
  if (0x31F0 <= cp && cp <= 0x31FF) return true;
  if (0x3400 <= cp && cp <= 0x4DB5) return true;
  if (0x4E00 <= cp && cp <= 0x9FD5) return true;
  if (0xA000 <= cp && cp <= 0xA48C) return true;
  if (0xA4D0 <= cp && cp <= 0xA4FD) return true;
  if (0xA500 <= cp && cp <= 0xA60C) return true;
  if (0xA610 <= cp && cp <= 0xA62B) return true;
  if (0xA640 <= cp && cp <= 0xA66F) return true;
  if (0xA674 <= cp && cp <= 0xA67D) return true;
  if (0xA67F <= cp && cp <= 0xA6F1) return true;
  if (0xA717 <= cp && cp <= 0xA71F) return true;
  if (0xA722 <= cp && cp <= 0xA788) return true;
  if (0xA78B <= cp && cp <= 0xA7AD) return true;
  if (0xA7B0 <= cp && cp <= 0xA7B7) return true;
  if (0xA7F7 <= cp && cp <= 0xA827) return true;
  if (0xA840 <= cp && cp <= 0xA873) return true;
  if (0xA880 <= cp && cp <= 0xA8C4) return true;
  if (0xA8D0 <= cp && cp <= 0xA8D9) return true;
  if (0xA8E0 <= cp && cp <= 0xA8F7) return true;
  if (cp === 0xA8FB) return true;
  if (cp === 0xA8FD) return true;
  if (0xA900 <= cp && cp <= 0xA92D) return true;
  if (0xA930 <= cp && cp <= 0xA953) return true;
  if (0xA960 <= cp && cp <= 0xA97C) return true;
  if (0xA980 <= cp && cp <= 0xA9C0) return true;
  if (0xA9CF <= cp && cp <= 0xA9D9) return true;
  if (0xA9E0 <= cp && cp <= 0xA9FE) return true;
  if (0xAA00 <= cp && cp <= 0xAA36) return true;
  if (0xAA40 <= cp && cp <= 0xAA4D) return true;
  if (0xAA50 <= cp && cp <= 0xAA59) return true;
  if (0xAA60 <= cp && cp <= 0xAA76) return true;
  if (0xAA7A <= cp && cp <= 0xAAC2) return true;
  if (0xAADB <= cp && cp <= 0xAADD) return true;
  if (0xAAE0 <= cp && cp <= 0xAAEF) return true;
  if (0xAAF2 <= cp && cp <= 0xAAF6) return true;
  if (0xAB01 <= cp && cp <= 0xAB06) return true;
  if (0xAB09 <= cp && cp <= 0xAB0E) return true;
  if (0xAB11 <= cp && cp <= 0xAB16) return true;
  if (0xAB20 <= cp && cp <= 0xAB26) return true;
  if (0xAB28 <= cp && cp <= 0xAB2E) return true;
  if (0xAB30 <= cp && cp <= 0xAB5A) return true;
  if (0xAB5C <= cp && cp <= 0xAB65) return true;
  if (0xAB70 <= cp && cp <= 0xABEA) return true;
  if (0xABEC <= cp && cp <= 0xABED) return true;
  if (0xABF0 <= cp && cp <= 0xABF9) return true;
  if (0xAC00 <= cp && cp <= 0xD7A3) return true;
  if (0xD7B0 <= cp && cp <= 0xD7C6) return true;
  if (0xD7CB <= cp && cp <= 0xD7FB) return true;
  if (0xF900 <= cp && cp <= 0xFA6D) return true;
  if (0xFA70 <= cp && cp <= 0xFAD9) return true;
  if (0xFB00 <= cp && cp <= 0xFB06) return true;
  if (0xFB13 <= cp && cp <= 0xFB17) return true;
  if (0xFB1D <= cp && cp <= 0xFB28) return true;
  if (0xFB2A <= cp && cp <= 0xFB36) return true;
  if (0xFB38 <= cp && cp <= 0xFB3C) return true;
  if (cp === 0xFB3E) return true;
  if (0xFB40 <= cp && cp <= 0xFB41) return true;
  if (0xFB43 <= cp && cp <= 0xFB44) return true;
  if (0xFB46 <= cp && cp <= 0xFBB1) return true;
  if (0xFBD3 <= cp && cp <= 0xFD3D) return true;
  if (0xFD50 <= cp && cp <= 0xFD8F) return true;
  if (0xFD92 <= cp && cp <= 0xFDC7) return true;
  if (0xFDF0 <= cp && cp <= 0xFDFB) return true;
  if (0xFE00 <= cp && cp <= 0xFE0F) return true;
  if (0xFE20 <= cp && cp <= 0xFE2F) return true;
  if (0xFE33 <= cp && cp <= 0xFE34) return true;
  if (0xFE4D <= cp && cp <= 0xFE4F) return true;
  if (0xFE70 <= cp && cp <= 0xFE74) return true;
  if (0xFE76 <= cp && cp <= 0xFEFC) return true;
  if (0xFF10 <= cp && cp <= 0xFF19) return true;
  if (0xFF21 <= cp && cp <= 0xFF3A) return true;
  if (cp === 0xFF3F) return true;
  if (0xFF41 <= cp && cp <= 0xFF5A) return true;
  if (0xFF66 <= cp && cp <= 0xFFBE) return true;
  if (0xFFC2 <= cp && cp <= 0xFFC7) return true;
  if (0xFFCA <= cp && cp <= 0xFFCF) return true;
  if (0xFFD2 <= cp && cp <= 0xFFD7) return true;
  if (0xFFDA <= cp && cp <= 0xFFDC) return true;
  if (0x10000 <= cp && cp <= 0x1000B) return true;
  if (0x1000D <= cp && cp <= 0x10026) return true;
  if (0x10028 <= cp && cp <= 0x1003A) return true;
  if (0x1003C <= cp && cp <= 0x1003D) return true;
  if (0x1003F <= cp && cp <= 0x1004D) return true;
  if (0x10050 <= cp && cp <= 0x1005D) return true;
  if (0x10080 <= cp && cp <= 0x100FA) return true;
  if (0x10140 <= cp && cp <= 0x10174) return true;
  if (cp === 0x101FD) return true;
  if (0x10280 <= cp && cp <= 0x1029C) return true;
  if (0x102A0 <= cp && cp <= 0x102D0) return true;
  if (cp === 0x102E0) return true;
  if (0x10300 <= cp && cp <= 0x1031F) return true;
  if (0x10330 <= cp && cp <= 0x1034A) return true;
  if (0x10350 <= cp && cp <= 0x1037A) return true;
  if (0x10380 <= cp && cp <= 0x1039D) return true;
  if (0x103A0 <= cp && cp <= 0x103C3) return true;
  if (0x103C8 <= cp && cp <= 0x103CF) return true;
  if (0x103D1 <= cp && cp <= 0x103D5) return true;
  if (0x10400 <= cp && cp <= 0x1049D) return true;
  if (0x104A0 <= cp && cp <= 0x104A9) return true;
  if (0x10500 <= cp && cp <= 0x10527) return true;
  if (0x10530 <= cp && cp <= 0x10563) return true;
  if (0x10600 <= cp && cp <= 0x10736) return true;
  if (0x10740 <= cp && cp <= 0x10755) return true;
  if (0x10760 <= cp && cp <= 0x10767) return true;
  if (0x10800 <= cp && cp <= 0x10805) return true;
  if (cp === 0x10808) return true;
  if (0x1080A <= cp && cp <= 0x10835) return true;
  if (0x10837 <= cp && cp <= 0x10838) return true;
  if (cp === 0x1083C) return true;
  if (0x1083F <= cp && cp <= 0x10855) return true;
  if (0x10860 <= cp && cp <= 0x10876) return true;
  if (0x10880 <= cp && cp <= 0x1089E) return true;
  if (0x108E0 <= cp && cp <= 0x108F2) return true;
  if (0x108F4 <= cp && cp <= 0x108F5) return true;
  if (0x10900 <= cp && cp <= 0x10915) return true;
  if (0x10920 <= cp && cp <= 0x10939) return true;
  if (0x10980 <= cp && cp <= 0x109B7) return true;
  if (0x109BE <= cp && cp <= 0x109BF) return true;
  if (0x10A00 <= cp && cp <= 0x10A03) return true;
  if (0x10A05 <= cp && cp <= 0x10A06) return true;
  if (0x10A0C <= cp && cp <= 0x10A13) return true;
  if (0x10A15 <= cp && cp <= 0x10A17) return true;
  if (0x10A19 <= cp && cp <= 0x10A33) return true;
  if (0x10A38 <= cp && cp <= 0x10A3A) return true;
  if (cp === 0x10A3F) return true;
  if (0x10A60 <= cp && cp <= 0x10A7C) return true;
  if (0x10A80 <= cp && cp <= 0x10A9C) return true;
  if (0x10AC0 <= cp && cp <= 0x10AC7) return true;
  if (0x10AC9 <= cp && cp <= 0x10AE6) return true;
  if (0x10B00 <= cp && cp <= 0x10B35) return true;
  if (0x10B40 <= cp && cp <= 0x10B55) return true;
  if (0x10B60 <= cp && cp <= 0x10B72) return true;
  if (0x10B80 <= cp && cp <= 0x10B91) return true;
  if (0x10C00 <= cp && cp <= 0x10C48) return true;
  if (0x10C80 <= cp && cp <= 0x10CB2) return true;
  if (0x10CC0 <= cp && cp <= 0x10CF2) return true;
  if (0x11000 <= cp && cp <= 0x11046) return true;
  if (0x11066 <= cp && cp <= 0x1106F) return true;
  if (0x1107F <= cp && cp <= 0x110BA) return true;
  if (0x110D0 <= cp && cp <= 0x110E8) return true;
  if (0x110F0 <= cp && cp <= 0x110F9) return true;
  if (0x11100 <= cp && cp <= 0x11134) return true;
  if (0x11136 <= cp && cp <= 0x1113F) return true;
  if (0x11150 <= cp && cp <= 0x11173) return true;
  if (cp === 0x11176) return true;
  if (0x11180 <= cp && cp <= 0x111C4) return true;
  if (0x111CA <= cp && cp <= 0x111CC) return true;
  if (0x111D0 <= cp && cp <= 0x111DA) return true;
  if (cp === 0x111DC) return true;
  if (0x11200 <= cp && cp <= 0x11211) return true;
  if (0x11213 <= cp && cp <= 0x11237) return true;
  if (0x11280 <= cp && cp <= 0x11286) return true;
  if (cp === 0x11288) return true;
  if (0x1128A <= cp && cp <= 0x1128D) return true;
  if (0x1128F <= cp && cp <= 0x1129D) return true;
  if (0x1129F <= cp && cp <= 0x112A8) return true;
  if (0x112B0 <= cp && cp <= 0x112EA) return true;
  if (0x112F0 <= cp && cp <= 0x112F9) return true;
  if (0x11300 <= cp && cp <= 0x11303) return true;
  if (0x11305 <= cp && cp <= 0x1130C) return true;
  if (0x1130F <= cp && cp <= 0x11310) return true;
  if (0x11313 <= cp && cp <= 0x11328) return true;
  if (0x1132A <= cp && cp <= 0x11330) return true;
  if (0x11332 <= cp && cp <= 0x11333) return true;
  if (0x11335 <= cp && cp <= 0x11339) return true;
  if (0x1133C <= cp && cp <= 0x11344) return true;
  if (0x11347 <= cp && cp <= 0x11348) return true;
  if (0x1134B <= cp && cp <= 0x1134D) return true;
  if (cp === 0x11350) return true;
  if (cp === 0x11357) return true;
  if (0x1135D <= cp && cp <= 0x11363) return true;
  if (0x11366 <= cp && cp <= 0x1136C) return true;
  if (0x11370 <= cp && cp <= 0x11374) return true;
  if (0x11480 <= cp && cp <= 0x114C5) return true;
  if (cp === 0x114C7) return true;
  if (0x114D0 <= cp && cp <= 0x114D9) return true;
  if (0x11580 <= cp && cp <= 0x115B5) return true;
  if (0x115B8 <= cp && cp <= 0x115C0) return true;
  if (0x115D8 <= cp && cp <= 0x115DD) return true;
  if (0x11600 <= cp && cp <= 0x11640) return true;
  if (cp === 0x11644) return true;
  if (0x11650 <= cp && cp <= 0x11659) return true;
  if (0x11680 <= cp && cp <= 0x116B7) return true;
  if (0x116C0 <= cp && cp <= 0x116C9) return true;
  if (0x11700 <= cp && cp <= 0x11719) return true;
  if (0x1171D <= cp && cp <= 0x1172B) return true;
  if (0x11730 <= cp && cp <= 0x11739) return true;
  if (0x118A0 <= cp && cp <= 0x118E9) return true;
  if (cp === 0x118FF) return true;
  if (0x11AC0 <= cp && cp <= 0x11AF8) return true;
  if (0x12000 <= cp && cp <= 0x12399) return true;
  if (0x12400 <= cp && cp <= 0x1246E) return true;
  if (0x12480 <= cp && cp <= 0x12543) return true;
  if (0x13000 <= cp && cp <= 0x1342E) return true;
  if (0x14400 <= cp && cp <= 0x14646) return true;
  if (0x16800 <= cp && cp <= 0x16A38) return true;
  if (0x16A40 <= cp && cp <= 0x16A5E) return true;
  if (0x16A60 <= cp && cp <= 0x16A69) return true;
  if (0x16AD0 <= cp && cp <= 0x16AED) return true;
  if (0x16AF0 <= cp && cp <= 0x16AF4) return true;
  if (0x16B00 <= cp && cp <= 0x16B36) return true;
  if (0x16B40 <= cp && cp <= 0x16B43) return true;
  if (0x16B50 <= cp && cp <= 0x16B59) return true;
  if (0x16B63 <= cp && cp <= 0x16B77) return true;
  if (0x16B7D <= cp && cp <= 0x16B8F) return true;
  if (0x16F00 <= cp && cp <= 0x16F44) return true;
  if (0x16F50 <= cp && cp <= 0x16F7E) return true;
  if (0x16F8F <= cp && cp <= 0x16F9F) return true;
  if (0x1B000 <= cp && cp <= 0x1B001) return true;
  if (0x1BC00 <= cp && cp <= 0x1BC6A) return true;
  if (0x1BC70 <= cp && cp <= 0x1BC7C) return true;
  if (0x1BC80 <= cp && cp <= 0x1BC88) return true;
  if (0x1BC90 <= cp && cp <= 0x1BC99) return true;
  if (0x1BC9D <= cp && cp <= 0x1BC9E) return true;
  if (0x1D165 <= cp && cp <= 0x1D169) return true;
  if (0x1D16D <= cp && cp <= 0x1D172) return true;
  if (0x1D17B <= cp && cp <= 0x1D182) return true;
  if (0x1D185 <= cp && cp <= 0x1D18B) return true;
  if (0x1D1AA <= cp && cp <= 0x1D1AD) return true;
  if (0x1D242 <= cp && cp <= 0x1D244) return true;
  if (0x1D400 <= cp && cp <= 0x1D454) return true;
  if (0x1D456 <= cp && cp <= 0x1D49C) return true;
  if (0x1D49E <= cp && cp <= 0x1D49F) return true;
  if (cp === 0x1D4A2) return true;
  if (0x1D4A5 <= cp && cp <= 0x1D4A6) return true;
  if (0x1D4A9 <= cp && cp <= 0x1D4AC) return true;
  if (0x1D4AE <= cp && cp <= 0x1D4B9) return true;
  if (cp === 0x1D4BB) return true;
  if (0x1D4BD <= cp && cp <= 0x1D4C3) return true;
  if (0x1D4C5 <= cp && cp <= 0x1D505) return true;
  if (0x1D507 <= cp && cp <= 0x1D50A) return true;
  if (0x1D50D <= cp && cp <= 0x1D514) return true;
  if (0x1D516 <= cp && cp <= 0x1D51C) return true;
  if (0x1D51E <= cp && cp <= 0x1D539) return true;
  if (0x1D53B <= cp && cp <= 0x1D53E) return true;
  if (0x1D540 <= cp && cp <= 0x1D544) return true;
  if (cp === 0x1D546) return true;
  if (0x1D54A <= cp && cp <= 0x1D550) return true;
  if (0x1D552 <= cp && cp <= 0x1D6A5) return true;
  if (0x1D6A8 <= cp && cp <= 0x1D6C0) return true;
  if (0x1D6C2 <= cp && cp <= 0x1D6DA) return true;
  if (0x1D6DC <= cp && cp <= 0x1D6FA) return true;
  if (0x1D6FC <= cp && cp <= 0x1D714) return true;
  if (0x1D716 <= cp && cp <= 0x1D734) return true;
  if (0x1D736 <= cp && cp <= 0x1D74E) return true;
  if (0x1D750 <= cp && cp <= 0x1D76E) return true;
  if (0x1D770 <= cp && cp <= 0x1D788) return true;
  if (0x1D78A <= cp && cp <= 0x1D7A8) return true;
  if (0x1D7AA <= cp && cp <= 0x1D7C2) return true;
  if (0x1D7C4 <= cp && cp <= 0x1D7CB) return true;
  if (0x1D7CE <= cp && cp <= 0x1D7FF) return true;
  if (0x1DA00 <= cp && cp <= 0x1DA36) return true;
  if (0x1DA3B <= cp && cp <= 0x1DA6C) return true;
  if (cp === 0x1DA75) return true;
  if (cp === 0x1DA84) return true;
  if (0x1DA9B <= cp && cp <= 0x1DA9F) return true;
  if (0x1DAA1 <= cp && cp <= 0x1DAAF) return true;
  if (0x1E800 <= cp && cp <= 0x1E8C4) return true;
  if (0x1E8D0 <= cp && cp <= 0x1E8D6) return true;
  if (0x1EE00 <= cp && cp <= 0x1EE03) return true;
  if (0x1EE05 <= cp && cp <= 0x1EE1F) return true;
  if (0x1EE21 <= cp && cp <= 0x1EE22) return true;
  if (cp === 0x1EE24) return true;
  if (cp === 0x1EE27) return true;
  if (0x1EE29 <= cp && cp <= 0x1EE32) return true;
  if (0x1EE34 <= cp && cp <= 0x1EE37) return true;
  if (cp === 0x1EE39) return true;
  if (cp === 0x1EE3B) return true;
  if (cp === 0x1EE42) return true;
  if (cp === 0x1EE47) return true;
  if (cp === 0x1EE49) return true;
  if (cp === 0x1EE4B) return true;
  if (0x1EE4D <= cp && cp <= 0x1EE4F) return true;
  if (0x1EE51 <= cp && cp <= 0x1EE52) return true;
  if (cp === 0x1EE54) return true;
  if (cp === 0x1EE57) return true;
  if (cp === 0x1EE59) return true;
  if (cp === 0x1EE5B) return true;
  if (cp === 0x1EE5D) return true;
  if (cp === 0x1EE5F) return true;
  if (0x1EE61 <= cp && cp <= 0x1EE62) return true;
  if (cp === 0x1EE64) return true;
  if (0x1EE67 <= cp && cp <= 0x1EE6A) return true;
  if (0x1EE6C <= cp && cp <= 0x1EE72) return true;
  if (0x1EE74 <= cp && cp <= 0x1EE77) return true;
  if (0x1EE79 <= cp && cp <= 0x1EE7C) return true;
  if (cp === 0x1EE7E) return true;
  if (0x1EE80 <= cp && cp <= 0x1EE89) return true;
  if (0x1EE8B <= cp && cp <= 0x1EE9B) return true;
  if (0x1EEA1 <= cp && cp <= 0x1EEA3) return true;
  if (0x1EEA5 <= cp && cp <= 0x1EEA9) return true;
  if (0x1EEAB <= cp && cp <= 0x1EEBB) return true;
  if (0x20000 <= cp && cp <= 0x2A6D6) return true;
  if (0x2A700 <= cp && cp <= 0x2B734) return true;
  if (0x2B740 <= cp && cp <= 0x2B81D) return true;
  if (0x2B820 <= cp && cp <= 0x2CEA1) return true;
  if (0x2F800 <= cp && cp <= 0x2FA1D) return true;
  if (0xE0100 <= cp && cp <= 0xE01EF) return true;
  return false;
}

/**
 * @ngdoc module
 * @name ngParseExt
 * @packageName angular-parse-ext
 * @description
 *
 * # ngParseExt
 *
 * The `ngParseExt` module provides functionality to allow Unicode characters in
 * identifiers inside Angular expressions.
 *
 *
 * <div doc-module-components="ngParseExt"></div>
 *
 * This module allows the usage of any identifier that follows ES6 identifier naming convention
 * to be used as an identifier in an Angular expression. ES6 delegates some of the identifier
 * rules definition to Unicode, this module uses ES6 and Unicode 8.0 identifiers convention.
 *
 */

/* global angularParseExtModule: true,
  IDS_Y,
  IDC_Y
*/

function isValidIdentifierStart(ch, cp) {
  return ch === '$' ||
         ch === '_' ||
         IDS_Y(cp);
}

function isValidIdentifierContinue(ch, cp) {
  return ch === '$' ||
         ch === '_' ||
         cp === 0x200C || // <ZWNJ>
         cp === 0x200D || // <ZWJ>
         IDC_Y(cp);
}

angular.module('ngParseExt', [])
  .config(['$parseProvider', function($parseProvider) {
    $parseProvider.setIdentifierFns(isValidIdentifierStart, isValidIdentifierContinue);
  }]);


})(window, window.angular);
