PageRenderTime 70ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 2ms

/libs/ace.js

https://github.com/creesch/reddit-moderator-toolbox
JavaScript | 14302 lines | 13731 code | 539 blank | 32 comment | 885 complexity | 5358d8a162b6b7345464f1b1414f3364 MD5 | raw file
Possible License(s): Apache-2.0

Large files files are truncated, but you can click here to view the full file

  1. /* ***** BEGIN LICENSE BLOCK *****
  2. * Distributed under the BSD license:
  3. *
  4. * Copyright (c) 2010, Ajax.org B.V.
  5. * All rights reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions are met:
  9. * * Redistributions of source code must retain the above copyright
  10. * notice, this list of conditions and the following disclaimer.
  11. * * Redistributions in binary form must reproduce the above copyright
  12. * notice, this list of conditions and the following disclaimer in the
  13. * documentation and/or other materials provided with the distribution.
  14. * * Neither the name of Ajax.org B.V. nor the
  15. * names of its contributors may be used to endorse or promote products
  16. * derived from this software without specific prior written permission.
  17. *
  18. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  19. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  20. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  21. * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
  22. * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  23. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  24. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  25. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  26. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  27. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28. *
  29. * ***** END LICENSE BLOCK ***** */
  30. (function() {
  31. var ACE_NAMESPACE = "ace";
  32. var global = (function() {
  33. return this;
  34. })();
  35. if (!ACE_NAMESPACE && typeof requirejs !== "undefined")
  36. return;
  37. var _define = function(module, deps, payload) {
  38. if (typeof module !== 'string') {
  39. if (_define.original)
  40. _define.original.apply(window, arguments);
  41. else {
  42. console.error('dropping module because define wasn\'t a string.');
  43. console.trace();
  44. }
  45. return;
  46. }
  47. if (arguments.length == 2)
  48. payload = deps;
  49. if (!_define.modules) {
  50. _define.modules = {};
  51. _define.payloads = {};
  52. }
  53. _define.payloads[module] = payload;
  54. _define.modules[module] = null;
  55. };
  56. var _require = function(parentId, module, callback) {
  57. if (Object.prototype.toString.call(module) === "[object Array]") {
  58. var params = [];
  59. for (var i = 0, l = module.length; i < l; ++i) {
  60. var dep = lookup(parentId, module[i]);
  61. if (!dep && _require.original)
  62. return _require.original.apply(window, arguments);
  63. params.push(dep);
  64. }
  65. if (callback) {
  66. callback.apply(null, params);
  67. }
  68. }
  69. else if (typeof module === 'string') {
  70. var payload = lookup(parentId, module);
  71. if (!payload && _require.original)
  72. return _require.original.apply(window, arguments);
  73. if (callback) {
  74. callback();
  75. }
  76. return payload;
  77. }
  78. else {
  79. if (_require.original)
  80. return _require.original.apply(window, arguments);
  81. }
  82. };
  83. var normalizeModule = function(parentId, moduleName) {
  84. if (moduleName.indexOf("!") !== -1) {
  85. var chunks = moduleName.split("!");
  86. return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
  87. }
  88. if (moduleName.charAt(0) == ".") {
  89. var base = parentId.split("/").slice(0, -1).join("/");
  90. moduleName = base + "/" + moduleName;
  91. while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
  92. var previous = moduleName;
  93. moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
  94. }
  95. }
  96. return moduleName;
  97. };
  98. var lookup = function(parentId, moduleName) {
  99. moduleName = normalizeModule(parentId, moduleName);
  100. var module = _define.modules[moduleName];
  101. if (!module) {
  102. module = _define.payloads[moduleName];
  103. if (typeof module === 'function') {
  104. var exports = {};
  105. var mod = {
  106. id: moduleName,
  107. uri: '',
  108. exports: exports,
  109. packaged: true
  110. };
  111. var req = function(module, callback) {
  112. return _require(moduleName, module, callback);
  113. };
  114. var returnValue = module(req, exports, mod);
  115. exports = returnValue || mod.exports;
  116. _define.modules[moduleName] = exports;
  117. delete _define.payloads[moduleName];
  118. }
  119. module = _define.modules[moduleName] = exports || module;
  120. }
  121. return module;
  122. };
  123. function exportAce(ns) {
  124. var require = function(module, callback) {
  125. return _require("", module, callback);
  126. };
  127. var root = global;
  128. if (ns) {
  129. if (!global[ns])
  130. global[ns] = {};
  131. root = global[ns];
  132. }
  133. if (!root.define || !root.define.packaged) {
  134. _define.original = root.define;
  135. root.define = _define;
  136. root.define.packaged = true;
  137. }
  138. if (!root.require || !root.require.packaged) {
  139. _require.original = root.require;
  140. root.require = require;
  141. root.require.packaged = true;
  142. }
  143. }
  144. exportAce(ACE_NAMESPACE);
  145. })();
  146. ace.define('ace/ace', ['require', 'exports', 'module' , 'ace/lib/fixoldbrowsers', 'ace/lib/dom', 'ace/lib/event', 'ace/editor', 'ace/edit_session', 'ace/undomanager', 'ace/virtual_renderer', 'ace/worker/worker_client', 'ace/keyboard/hash_handler', 'ace/placeholder', 'ace/multi_select', 'ace/mode/folding/fold_mode', 'ace/theme/textmate', 'ace/ext/error_marker', 'ace/config'], function(require, exports, module) {
  147. require("./lib/fixoldbrowsers");
  148. var dom = require("./lib/dom");
  149. var event = require("./lib/event");
  150. var Editor = require("./editor").Editor;
  151. var EditSession = require("./edit_session").EditSession;
  152. var UndoManager = require("./undomanager").UndoManager;
  153. var Renderer = require("./virtual_renderer").VirtualRenderer;
  154. require("./worker/worker_client");
  155. require("./keyboard/hash_handler");
  156. require("./placeholder");
  157. require("./multi_select");
  158. require("./mode/folding/fold_mode");
  159. require("./theme/textmate");
  160. require("./ext/error_marker");
  161. exports.config = require("./config");
  162. exports.require = require;
  163. exports.edit = function(el) {
  164. if (typeof(el) == "string") {
  165. var _id = el;
  166. el = document.getElementById(_id);
  167. if (!el)
  168. throw new Error("ace.edit can't find div #" + _id);
  169. }
  170. if (el.env && el.env.editor instanceof Editor)
  171. return el.env.editor;
  172. var doc = exports.createEditSession(dom.getInnerText(el));
  173. el.innerHTML = '';
  174. var editor = new Editor(new Renderer(el));
  175. editor.setSession(doc);
  176. var env = {
  177. document: doc,
  178. editor: editor,
  179. onResize: editor.resize.bind(editor, null)
  180. };
  181. event.addListener(window, "resize", env.onResize);
  182. editor.on("destroy", function() {
  183. event.removeListener(window, "resize", env.onResize);
  184. });
  185. el.env = editor.env = env;
  186. return editor;
  187. };
  188. exports.createEditSession = function(text, mode) {
  189. var doc = new EditSession(text, mode);
  190. doc.setUndoManager(new UndoManager());
  191. return doc;
  192. }
  193. exports.EditSession = EditSession;
  194. exports.UndoManager = UndoManager;
  195. });
  196. ace.define('ace/mode/behaviour', ['require', 'exports', 'module' ], function(require, exports, module) {
  197. var Behaviour = function() {
  198. this.$behaviours = {};
  199. };
  200. (function () {
  201. this.add = function (name, action, callback) {
  202. switch (undefined) {
  203. case this.$behaviours:
  204. this.$behaviours = {};
  205. case this.$behaviours[name]:
  206. this.$behaviours[name] = {};
  207. }
  208. this.$behaviours[name][action] = callback;
  209. }
  210. this.addBehaviours = function (behaviours) {
  211. for (var key in behaviours) {
  212. for (var action in behaviours[key]) {
  213. this.add(key, action, behaviours[key][action]);
  214. }
  215. }
  216. }
  217. this.remove = function (name) {
  218. if (this.$behaviours && this.$behaviours[name]) {
  219. delete this.$behaviours[name];
  220. }
  221. }
  222. this.inherit = function (mode, filter) {
  223. if (typeof mode === "function") {
  224. var behaviours = new mode().getBehaviours(filter);
  225. } else {
  226. var behaviours = mode.getBehaviours(filter);
  227. }
  228. this.addBehaviours(behaviours);
  229. }
  230. this.getBehaviours = function (filter) {
  231. if (!filter) {
  232. return this.$behaviours;
  233. } else {
  234. var ret = {}
  235. for (var i = 0; i < filter.length; i++) {
  236. if (this.$behaviours[filter[i]]) {
  237. ret[filter[i]] = this.$behaviours[filter[i]];
  238. }
  239. }
  240. return ret;
  241. }
  242. }
  243. }).call(Behaviour.prototype);
  244. exports.Behaviour = Behaviour;
  245. });
  246. ace.define('ace/unicode', ['require', 'exports', 'module' ], function(require, exports, module) {
  247. exports.packages = {};
  248. addUnicodePackage({
  249. L: "0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",
  250. Ll: "0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",
  251. Lu: "0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",
  252. Lt: "01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",
  253. Lm: "02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",
  254. Lo: "01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",
  255. M: "0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",
  256. Mn: "0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",
  257. Mc: "0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",
  258. Me: "0488048906DE20DD-20E020E2-20E4A670-A672",
  259. N: "0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",
  260. Nd: "0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",
  261. Nl: "16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",
  262. No: "00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",
  263. P: "0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",
  264. Pd: "002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",
  265. Ps: "0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",
  266. Pe: "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",
  267. Pi: "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",
  268. Pf: "00BB2019201D203A2E032E052E0A2E0D2E1D2E21",
  269. Pc: "005F203F20402054FE33FE34FE4D-FE4FFF3F",
  270. Po: "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",
  271. S: "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",
  272. Sm: "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",
  273. Sc: "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",
  274. Sk: "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",
  275. So: "00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",
  276. Z: "002000A01680180E2000-200A20282029202F205F3000",
  277. Zs: "002000A01680180E2000-200A202F205F3000",
  278. Zl: "2028",
  279. Zp: "2029",
  280. C: "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",
  281. Cc: "0000-001F007F-009F",
  282. Cf: "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",
  283. Co: "E000-F8FF",
  284. Cs: "D800-DFFF",
  285. Cn: "03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"
  286. });
  287. function addUnicodePackage (pack) {
  288. var codePoint = /\w{4}/g;
  289. for (var name in pack)
  290. exports.packages[name] = pack[name].replace(codePoint, "\\u$&");
  291. };
  292. });
  293. ace.define('ace/token_iterator', ['require', 'exports', 'module' ], function(require, exports, module) {
  294. var TokenIterator = function(session, initialRow, initialColumn) {
  295. this.$session = session;
  296. this.$row = initialRow;
  297. this.$rowTokens = session.getTokens(initialRow);
  298. var token = session.getTokenAt(initialRow, initialColumn);
  299. this.$tokenIndex = token ? token.index : -1;
  300. };
  301. (function() {
  302. this.stepBackward = function() {
  303. this.$tokenIndex -= 1;
  304. while (this.$tokenIndex < 0) {
  305. this.$row -= 1;
  306. if (this.$row < 0) {
  307. this.$row = 0;
  308. return null;
  309. }
  310. this.$rowTokens = this.$session.getTokens(this.$row);
  311. this.$tokenIndex = this.$rowTokens.length - 1;
  312. }
  313. return this.$rowTokens[this.$tokenIndex];
  314. };
  315. this.stepForward = function() {
  316. this.$tokenIndex += 1;
  317. var rowCount;
  318. while (this.$tokenIndex >= this.$rowTokens.length) {
  319. this.$row += 1;
  320. if (!rowCount)
  321. rowCount = this.$session.getLength();
  322. if (this.$row >= rowCount) {
  323. this.$row = rowCount - 1;
  324. return null;
  325. }
  326. this.$rowTokens = this.$session.getTokens(this.$row);
  327. this.$tokenIndex = 0;
  328. }
  329. return this.$rowTokens[this.$tokenIndex];
  330. };
  331. this.getCurrentToken = function () {
  332. return this.$rowTokens[this.$tokenIndex];
  333. };
  334. this.getCurrentTokenRow = function () {
  335. return this.$row;
  336. };
  337. this.getCurrentTokenColumn = function() {
  338. var rowTokens = this.$rowTokens;
  339. var tokenIndex = this.$tokenIndex;
  340. var column = rowTokens[tokenIndex].start;
  341. if (column !== undefined)
  342. return column;
  343. column = 0;
  344. while (tokenIndex > 0) {
  345. tokenIndex -= 1;
  346. column += rowTokens[tokenIndex].value.length;
  347. }
  348. return column;
  349. };
  350. }).call(TokenIterator.prototype);
  351. exports.TokenIterator = TokenIterator;
  352. });
  353. ace.define('ace/mode/text_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) {
  354. var lang = require("../lib/lang");
  355. var TextHighlightRules = function() {
  356. this.$rules = {
  357. "start" : [{
  358. token : "empty_line",
  359. regex : '^$'
  360. }, {
  361. defaultToken : "text"
  362. }]
  363. };
  364. };
  365. (function() {
  366. this.addRules = function(rules, prefix) {
  367. if (!prefix) {
  368. for (var key in rules)
  369. this.$rules[key] = rules[key];
  370. return;
  371. }
  372. for (var key in rules) {
  373. var state = rules[key];
  374. for (var i = 0; i < state.length; i++) {
  375. var rule = state[i];
  376. if (rule.next) {
  377. if (typeof rule.next != "string") {
  378. if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)
  379. rule.nextState = prefix + rule.nextState;
  380. } else {
  381. if (rule.next.indexOf(prefix) !== 0)
  382. rule.next = prefix + rule.next;
  383. }
  384. }
  385. }
  386. this.$rules[prefix + key] = state;
  387. }
  388. };
  389. this.getRules = function() {
  390. return this.$rules;
  391. };
  392. this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {
  393. var embedRules = typeof HighlightRules == "function"
  394. ? new HighlightRules().getRules()
  395. : HighlightRules;
  396. if (states) {
  397. for (var i = 0; i < states.length; i++)
  398. states[i] = prefix + states[i];
  399. } else {
  400. states = [];
  401. for (var key in embedRules)
  402. states.push(prefix + key);
  403. }
  404. this.addRules(embedRules, prefix);
  405. if (escapeRules) {
  406. var addRules = Array.prototype[append ? "push" : "unshift"];
  407. for (var i = 0; i < states.length; i++)
  408. addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));
  409. }
  410. if (!this.$embeds)
  411. this.$embeds = [];
  412. this.$embeds.push(prefix);
  413. };
  414. this.getEmbeds = function() {
  415. return this.$embeds;
  416. };
  417. var pushState = function(currentState, stack) {
  418. if (currentState != "start" || stack.length)
  419. stack.unshift(this.nextState, currentState);
  420. return this.nextState;
  421. };
  422. var popState = function(currentState, stack) {
  423. stack.shift();
  424. return stack.shift() || "start";
  425. };
  426. this.normalizeRules = function() {
  427. var id = 0;
  428. var rules = this.$rules;
  429. function processState(key) {
  430. var state = rules[key];
  431. state.processed = true;
  432. for (var i = 0; i < state.length; i++) {
  433. var rule = state[i];
  434. if (!rule.regex && rule.start) {
  435. rule.regex = rule.start;
  436. if (!rule.next)
  437. rule.next = [];
  438. rule.next.push({
  439. defaultToken: rule.token
  440. }, {
  441. token: rule.token + ".end",
  442. regex: rule.end || rule.start,
  443. next: "pop"
  444. });
  445. rule.token = rule.token + ".start";
  446. rule.push = true;
  447. }
  448. var next = rule.next || rule.push;
  449. if (next && Array.isArray(next)) {
  450. var stateName = rule.stateName;
  451. if (!stateName) {
  452. stateName = rule.token;
  453. if (typeof stateName != "string")
  454. stateName = stateName[0] || "";
  455. if (rules[stateName])
  456. stateName += id++;
  457. }
  458. rules[stateName] = next;
  459. rule.next = stateName;
  460. processState(stateName);
  461. } else if (next == "pop") {
  462. rule.next = popState;
  463. }
  464. if (rule.push) {
  465. rule.nextState = rule.next || rule.push;
  466. rule.next = pushState;
  467. delete rule.push;
  468. }
  469. if (rule.rules) {
  470. for (var r in rule.rules) {
  471. if (rules[r]) {
  472. if (rules[r].push)
  473. rules[r].push.apply(rules[r], rule.rules[r]);
  474. } else {
  475. rules[r] = rule.rules[r];
  476. }
  477. }
  478. }
  479. if (rule.include || typeof rule == "string") {
  480. var includeName = rule.include || rule;
  481. var toInsert = rules[includeName];
  482. } else if (Array.isArray(rule))
  483. toInsert = rule;
  484. if (toInsert) {
  485. var args = [i, 1].concat(toInsert);
  486. if (rule.noEscape)
  487. args = args.filter(function(x) {return !x.next;});
  488. state.splice.apply(state, args);
  489. i--;
  490. toInsert = null;
  491. }
  492. if (rule.keywordMap) {
  493. rule.token = this.createKeywordMapper(
  494. rule.keywordMap, rule.defaultToken || "text", rule.caseInsensitive
  495. );
  496. delete rule.defaultToken;
  497. }
  498. }
  499. }
  500. Object.keys(rules).forEach(processState, this);
  501. };
  502. this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {
  503. var keywords = Object.create(null);
  504. Object.keys(map).forEach(function(className) {
  505. var a = map[className];
  506. if (ignoreCase)
  507. a = a.toLowerCase();
  508. var list = a.split(splitChar || "|");
  509. for (var i = list.length; i--; )
  510. keywords[list[i]] = className;
  511. });
  512. if (Object.getPrototypeOf(keywords)) {
  513. keywords.__proto__ = null;
  514. }
  515. this.$keywordList = Object.keys(keywords);
  516. map = null;
  517. return ignoreCase
  518. ? function(value) {return keywords[value.toLowerCase()] || defaultToken }
  519. : function(value) {return keywords[value] || defaultToken };
  520. };
  521. this.getKeywords = function() {
  522. return this.$keywords;
  523. };
  524. }).call(TextHighlightRules.prototype);
  525. exports.TextHighlightRules = TextHighlightRules;
  526. });
  527. ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
  528. var oop = require("./lib/oop");
  529. var EventEmitter = require("./lib/event_emitter").EventEmitter;
  530. var Anchor = exports.Anchor = function(doc, row, column) {
  531. this.$onChange = this.onChange.bind(this);
  532. this.attach(doc);
  533. if (typeof column == "undefined")
  534. this.setPosition(row.row, row.column);
  535. else
  536. this.setPosition(row, column);
  537. };
  538. (function() {
  539. oop.implement(this, EventEmitter);
  540. this.getPosition = function() {
  541. return this.$clipPositionToDocument(this.row, this.column);
  542. };
  543. this.getDocument = function() {
  544. return this.document;
  545. };
  546. this.$insertRight = false;
  547. this.onChange = function(e) {
  548. var delta = e.data;
  549. var range = delta.range;
  550. if (range.start.row == range.end.row && range.start.row != this.row)
  551. return;
  552. if (range.start.row > this.row)
  553. return;
  554. if (range.start.row == this.row && range.start.column > this.column)
  555. return;
  556. var row = this.row;
  557. var column = this.column;
  558. var start = range.start;
  559. var end = range.end;
  560. if (delta.action === "insertText") {
  561. if (start.row === row && start.column <= column) {
  562. if (start.column === column && this.$insertRight) {
  563. } else if (start.row === end.row) {
  564. column += end.column - start.column;
  565. } else {
  566. column -= start.column;
  567. row += end.row - start.row;
  568. }
  569. } else if (start.row !== end.row && start.row < row) {
  570. row += end.row - start.row;
  571. }
  572. } else if (delta.action === "insertLines") {
  573. if (start.row === row && column === 0 && this.$insertRight) {
  574. }
  575. else if (start.row <= row) {
  576. row += end.row - start.row;
  577. }
  578. } else if (delta.action === "removeText") {
  579. if (start.row === row && start.column < column) {
  580. if (end.column >= column)
  581. column = start.column;
  582. else
  583. column = Math.max(0, column - (end.column - start.column));
  584. } else if (start.row !== end.row && start.row < row) {
  585. if (end.row === row)
  586. column = Math.max(0, column - end.column) + start.column;
  587. row -= (end.row - start.row);
  588. } else if (end.row === row) {
  589. row -= end.row - start.row;
  590. column = Math.max(0, column - end.column) + start.column;
  591. }
  592. } else if (delta.action == "removeLines") {
  593. if (start.row <= row) {
  594. if (end.row <= row)
  595. row -= end.row - start.row;
  596. else {
  597. row = start.row;
  598. column = 0;
  599. }
  600. }
  601. }
  602. this.setPosition(row, column, true);
  603. };
  604. this.setPosition = function(row, column, noClip) {
  605. var pos;
  606. if (noClip) {
  607. pos = {
  608. row: row,
  609. column: column
  610. };
  611. } else {
  612. pos = this.$clipPositionToDocument(row, column);
  613. }
  614. if (this.row == pos.row && this.column == pos.column)
  615. return;
  616. var old = {
  617. row: this.row,
  618. column: this.column
  619. };
  620. this.row = pos.row;
  621. this.column = pos.column;
  622. this._signal("change", {
  623. old: old,
  624. value: pos
  625. });
  626. };
  627. this.detach = function() {
  628. this.document.removeEventListener("change", this.$onChange);
  629. };
  630. this.attach = function(doc) {
  631. this.document = doc || this.document;
  632. this.document.on("change", this.$onChange);
  633. };
  634. this.$clipPositionToDocument = function(row, column) {
  635. var pos = {};
  636. if (row >= this.document.getLength()) {
  637. pos.row = Math.max(0, this.document.getLength() - 1);
  638. pos.column = this.document.getLine(pos.row).length;
  639. }
  640. else if (row < 0) {
  641. pos.row = 0;
  642. pos.column = 0;
  643. }
  644. else {
  645. pos.row = row;
  646. pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
  647. }
  648. if (column < 0)
  649. pos.column = 0;
  650. return pos;
  651. };
  652. }).call(Anchor.prototype);
  653. });
  654. ace.define('ace/background_tokenizer', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
  655. var oop = require("./lib/oop");
  656. var EventEmitter = require("./lib/event_emitter").EventEmitter;
  657. var BackgroundTokenizer = function(tokenizer, editor) {
  658. this.running = false;
  659. this.lines = [];
  660. this.states = [];
  661. this.currentLine = 0;
  662. this.tokenizer = tokenizer;
  663. var self = this;
  664. this.$worker = function() {
  665. if (!self.running) { return; }
  666. var workerStart = new Date();
  667. var currentLine = self.currentLine;
  668. var endLine = -1;
  669. var doc = self.doc;
  670. while (self.lines[currentLine])
  671. currentLine++;
  672. var startLine = currentLine;
  673. var len = doc.getLength();
  674. var processedLines = 0;
  675. self.running = false;
  676. while (currentLine < len) {
  677. self.$tokenizeRow(currentLine);
  678. endLine = currentLine;
  679. do {
  680. currentLine++;
  681. } while (self.lines[currentLine]);
  682. processedLines ++;
  683. if ((processedLines % 5 == 0) && (new Date() - workerStart) > 20) {
  684. self.running = setTimeout(self.$worker, 20);
  685. self.currentLine = currentLine;
  686. return;
  687. }
  688. }
  689. self.currentLine = currentLine;
  690. if (startLin

Large files files are truncated, but you can click here to view the full file